Generates Janev hydrogen cross section in LXCat format (understandable by Bolsig+).#

Fits from [JanevHydrogen] (Sec. 2.1). Parameters in data/kin/janev_cross_section_parameters/Hy/.

from rizer import __version__
from rizer.io.generate_janev_hydrogen_cross_section import JanevHydrogenCrossSection
from rizer.misc.utils import get_path_to_data

janev_h = JanevHydrogenCrossSection(
    energy_min=1e-2, energy_max=1e3, number_of_points=1000
)
janev_h.load_all_cross_sections()

janev_h.LX.header += """
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DATABASE:      Janev cross sections for atomic hydrogen H(1s), H(n=2), H(n=3), H(n=4).
REFERENCES:
.. [JanevHydrogen] R.K. Janev, D. Reiter, U. Samm; Collision Processes in Low-Temperature Hydrogen Plasmas.
SCRIPT:        rizer/io/generate_janev_hydrogen_cross_section.py
"""
janev_h.LX.header += f"Rizer version:       {__version__}\n"
janev_h.LX.header += f"Min energy:    {janev_h._energies.min()} eV\n"
janev_h.LX.header += f"Max energy:    {janev_h._energies.max()} eV\n"
janev_h.LX.header += f"Number of points: {len(janev_h._energies)}\n"
janev_h.LX.header += """
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

------------------------------------------------------------"""

# Rename H(1s) to H
janev_h.LX.rename_specie("H(1s)", "H")

# H^+ is only a reactant in recombination (rates, not LXCat target cross sections).
species = [
    "H",  # H(1s)
    "H(n=2)",
    "H(n=3)",
    "H(n=4)",
]

for specie in species:
    cross_sections_path = get_path_to_data(
        f"kin/cross_section/{specie}/janev_cross_sections_{specie}.txt",
        force_return=True,
    )
    cross_sections_path.parent.mkdir(parents=True, exist_ok=True)
    janev_h.LX.export(
        file_name=cross_sections_path,
        overwrite=True,
        species_names=[specie],
    )