config_type Derived Type

type, public :: config_type

Derived type containing data from the namelist variables


Components

Type Visibility Attributes Name Initial
logical, public :: add_cd4 = .true.

Add centrifugal distortion for fourth order ?

logical, public :: add_cd6 = .true.

Add centrifugal distortion for sixth order ?

logical, public :: only_einsta

Whether to only calculate the Einstein A coefficients in the Coulomb-Born cross section routine

logical, public :: use_CDMS_einstA

Whether to use Einstein A coefficients obtained from the CDMS or calculate them ourselves Path for the file containing the CDMS data to be read (if use_CDMS_einstA is .true.)

logical, public :: analytic_total_cb(2)

Array of logicals that has the size 2. Choose whether to use the analytic equation describing the multipole expansions for the dipole (element 1) and the quadrupole (element 2, not yet available)

logical, public :: do_xtrap

Do the extrapolation of (de-)excitation cross sections as 1/E to the excitation threshold ?

logical, public :: do_dipole

Choose whether to use the dipole term of the potential expansion

logical, public :: do_quadrupole

Choose whether to use the quadrupole term of the potential expansion

logical, public :: use_kmat

Calculate (de-)excitation cross sections using precomputed K-matrices ?

logical, public :: use_cb

Calculate (de-)excitation cross sections using the Coulomb-Born approxiation ?

logical, public :: real_spherical_harmonics

Whether the input K-matrices are evaluated in a basis of real spherical harmonics for the scattering electron. If .true., it will be transformed to a basis of complex-valued spherical harmonics

integer, public :: spin_isomer_kind

Whether and how to enforce ortho/para symmetry for molecules with identical nuclei. 0: don't 1: Dsh linear rotor; basically, homonuclear diatomics 2: C2v rotor (H₂X-like): preserve Ka+Kc parity Note that this just disables certain transitions from bein calculated in the CB approx as well as from the S-matrix. This does not affect the RFT because higher J-blocks of the S-matrix are more affected by K-mixing (Ka and Kc are not exact quantum numbers)

integer, public :: nE

The number of scattering energies to consider. This does not need to be very high; the CB cross sections are very smooth and can easily be interpolated.

integer, public :: nE_xtrap

Number of extrapolation energies. Excitation cross sections are extrapolated as 1/E to the excitation threshold, de-excitation cross sections are extrapolated as 1/E to Ei_xtrap. If this is 0, no exptrapolation will be performed.

integer, public :: lmax_partial

The maximum value of l to consider in the contribution of the partial CB cross section from the dipole and the quadrupole. If you're replacing the low-l CB cross sections with other cross sections, set this to the max l that you have available.

integer, public :: lmax_total

The maximum value of l to consider in the contribution of the total CB cross section in the even that you're not using the analytic expression, from the dipole and the quadrupole

integer, public :: Nmin

The minimum value of the rotational quantum number (N) to consider

integer, public :: Nmax

The maximum value of the rotational quantum number (N) to consider

integer, public :: target_charge

The electric charge of the target

integer, public :: lmax_kmat

The max partial wave to be included in the K-matrix basis. Cannot exceed the available basis in the calculation, but can be smaller than the largest available partial wave

integer, public :: num_egrid_segs

Number of energy grid segments (evaluation energy for the cross sections)

integer, public, allocatable :: num_egrid(:)

Array of number of energies per grid segment (length num_egrid_segs)

integer, public, allocatable :: spinmults(:)

Array of spin multiplicities (2S+1) for which the system's (target + e⁻) K-matrices were calculated

real(kind=dp), public :: xs_zero_threshold

Any cross section with value only smaller than this (cm²) will be ignore and will not be printed

real(kind=dp), public :: eta_thresh

The largest value of η' allowed for evaluating the hypergeometric functions ₂F₁(a,b;c;z)

real(kind=dp), public :: Ef

The last electron energy for excitation to consider relative to the initial state's energy

real(kind=dp), public :: Ei_xtrap

The lowest electron energy for de-excitation relative to the initial state's energy. The results will be extrapolated from Ei down to this assuming a 1/E dependence for the cross section, i.e., constant excitation probablility. If this .le. 0, no extrapolation will not be performed. Units: (eV)

real(kind=dp), public :: kmat_energy_closest

Input K-matrices are evaluated at a specific energy. If this code is run energy-independently (most likely the case unless I add energy dependence in the future) The K-matrix that is selected will be the FIRST ONE whose evaluation energy is CLOSEST to this energy in (eV). NOTE: UKRMOL+ outputs K-matrix energies in the .kmat files in Rydberg.

real(kind=dp), public :: abc(3)

Array of reals of length 3 The rotational constants A, B, and C of the target molecule (cm⁻¹).

real(kind=dp), public :: B_rot

Only for linear rotors; the rotational constant B in the expansion of the rotational energy : E(N) = B N(N+1) - D[N(N+1)]² + H[N(N+1)]³ ... Cannot be 0 for a linear molecule

real(kind=dp), public :: D_rot

Only for linear rotors; the centrifugal distortion coefficient D in the expansion of the rotational energy : E(N) = B N(N+1) - D[N(N+1)]² + H[N(N+1)]³ ... 0 by default

real(kind=dp), public :: H_rot

Only for linear rotors; the centrifugal distortion coefficient D in the expansion of the rotational energy : E(N) = B N(N+1) - D[N(N+1)]² + H[N(N+1)]³ ... 0 by default

real(kind=dp), public :: cartesian_dipole_moments(3)

Array of cartesian dipole moments (Debye) in the order dx, dy, dz

real(kind=dp), public :: cartesian_quadrupole_moments(6)

Array of cartesian quadrupole moments (Debye) in the order Qxx, Qxy, Qxz, Qyy, Qyz, Qzz

real(kind=dp), public, allocatable :: egrid_segs(:)

Array of the bounds (non-degenerate) of the energy grid segments (length num_egrid_segs + 1)

character(len=1), public :: rotor_kind

The kind of rotor that describes the targer. Character(1). Choice of : "l"inear "a"symmetric top "s"ymmetric top

character(len=1), public :: zaxis

The molecular axis (a, b, or c) along which the z-axis is oriented This should also be the symmetry axis

character(len=1), public :: channel_energy_units_override

The units of the channel energies in the file that holds channels. Options are : - "r" for Rydberg, "h" for hartree, "e" for eV By default, this is not set and will allow the code to determine channel energies on its own based on KMAT_OUTPUT_TYPE, but can be forcibly overridden with this

character(len=1), public :: kmat_energy_units_override

The units of the K-matrix evaluation energies in the kmat file. Options are : - "r" for Rydberg, "h" for hartree, "e" for eV By default, this is not set and will allow the code to determine channel energies on its own based on KMAT_OUTPUT_TYPE, but can be forcibly overridden with this

character(len=3), public :: egrid_spacing

The kind of spacing for the energy grid segments. "lin" for linear and "log" for logarithmic

character(len=:), public, allocatable :: point_group

The point group in which the K-matrices were calculated

character(len=:), public, allocatable :: kmat_dir

Path for the file containing the K-matrix to be read. Absolute or relative

character(len=:), public, allocatable :: channels_dir

Path for the file containing the channels for the K-matrix to be read. Absolute or relative This is only used if kmat_output_type is ukrmol+ because the channel and K-matrix files are separate

character(len=:), public, allocatable :: output_directory

The directory in which to write the output data This directory must already exist

character(len=:), public, allocatable :: CDMS_file

The file containing CDMS transitions

character(len=7), public :: kmat_output_type

Determines what kind of K-matrices we're reading. Two possible values: 'UKRMOL+': default UKRmol+ .kmat file 'MQDTR2K': a specific format given in the writeup. K-matrices are generated directly from the R-matrix, possibly with channel elimination and differently normalized Coulomb wavefunctions

type(cd4_type), public :: cd4

Centrifugal distortion parameters (4th order) for the rigid rotor Hamiltonian correction

type(cd6_type), public :: cd6

Centrifugal distortion parameters (6th order) for the rigid rotor Hamiltonian correction