Elastic scattering of ortho-H2

  • Hubert Jóźwiak
The first example covers elastic scattering of ortho-H2 with helium at \(E_{\mathrm{kin}}=100\) cm\(^{-1}\).

Input file

The input file can be found here.
Below, we provide the screenshot of this file.

input

In this test, we choose to define collision energy through kinetic energy by setting relative_energy_flag and initial_level to 1: variable energy is thus interpreted as kinetic energy, calculated with respect to the \(v=0, j=1\) level.
The total energy of the system is thus \(E_{\mathrm{tot}} = 218.4869\) cm\(^{-1}\).

Since jtot_max is set to -1, calculations will be performed until 4 consecutive blocks will contribute to the elastic state-to-state cross-section by less than \(10^{-4} Å^{2}\), as set by consecutive_blocks_threshold and elastic_xs_threshold.
Because no other levels are accessible at this kinetic energy, the other threshold condition, set by inelastic_xs_threshold will be ignored.

number_of_basis_levels = 3 indicates that there are only 3 rovibrational levels of H2 in the basis.
Vibrational and rotational quantum numbers, as well as corresponding internal energies of these levels are provided in the BASIS Namelist, through vib_levels, rot_levels and internal_energies arrays.

The next 6 variables provide information about the radial coupling terms file:

  • number_of_r_points = 1991 means that the grid of intermolecular distances cover 1991 points;
  • number_of_legendre_indices = 4 means that 4 terms in the Legendre expansion over \(\lambda)) are provided;
  • total_number_of_coupling_terms = 990 means that the file provides a total number of column-ordered 990 terms coupling different rovibrational levels. Note that this does not mean that all of them will be used in the calculations. In fact, since only 3 rovibrational levels are provided, only 6 terms will be used.
  • n_skip_lines = 17 means that the first 17 lines of the radial terms file will be skipped upon read.
  • coupling_terms_r_unit = "bohr".
  • coupling_terms_file_name - name of the file with the radial coupling terms of the PES.
Note that introducing these variables and ensuring a consistent format for the radial coupling terms file allows one to run the scattering code without another compilation of the program once a different radial coupling term is used.

S-matrices and partial state-to-state cross-sections will be saved to "smatrixH2He.dat" and "partialH2He.dat" files. The latter is a text-format file which can be accessed here.

Namelist POTENTIAL provides variables that handle interpreting radial coupling terms file.
l1tab is 4-element array which holds \(\lambda\) indices of the PES expansion (up to \(\lambda=6\)). The next four arrays allow for the identification of each column in the "oH2-He-radialterms.dat" file. For instance, the first column with the coupling terms, corresponds to the \(\eta = v=0, j=1\) and \(\eta^{\prime} = v^{\prime}=0, j^{\prime}=1\) term, which drives elastic scattering in the \( v=0, j=1\) level. Reading the four arrays element-by-element allows for a correct identification of each column in the "oH2-He-radialterms.dat" file.

Output file

The output file can be found here.

Input parameters are summarized at the beginning of the file:

output_1.

Note that out of 990 coupling terms provided in the "oH2-He-radialterms.dat" file, only 6 terms were used in the calculations (see reduce_radial_coupling_terms procedure).

Each total angular momentum block is succintly summarized as follows:

output_2.

More information (in particular, S-matrix elements) are provided if prntlvl is set to a larger value.

The loop over total angular momentum is terminated at \(J = 34\). Since only one level, \(v=0, j=1\) is energetically accessible, there is only one, elastic cross-section. Its total value is printed at the bottom of the output file.

output_3.

Other files

Apart from the output file, calculations prod uce the file with partial state-to-state cross-sections, which is available here, and the binary S-matrix file here. The latter one needs a post-processor to read and interpret the saved data.

Comparison with MOLSCAT

A correspodning MOLSCAT test is provided here.
Note that a different propagator is used which leads to a slightly different effective step on the \(R\) grid.

Due to MOLSCAT's large computational time for itype = 7 with a large number of coupling terms, I have run parallel calculations for each JTOT block.

pre_oH2He7.in is a template input file. Each task in the job array modifies "jtotl" and "jtotu" values, to run one JTOT block at a time.

out.*, where * = 0, 1, ... 34, provide the output of each JTOT block, see out.20 for example.

S-matrices resulting from parallel calculations were later combined into one file and state-to-state cross-sections were calculated using one of MOLSCAT's post-processors.

The output of the post-processor is given in final_output.dat file.

The results agree to within 0.001%:
\(\sigma = 47.02883\,Å^{2}\) (SCATTERING code, renormalized Numerov propagator, \(\Delta R = 0.05 a_{0}\))
\(\sigma = 47.02842\,Å^{2}\) (MOLSCAT, Johnson's log-derivative propagator, \(\Delta R = 0.07 a_{0}\))