Program Description

  • Hubert Jóźwiak

The purpose of the SCATTERING code is to solve the coupled equations for a given scattering system, provide the scattering S-matrix elements, and calculate the state-to-state cross-sections.

Contrary to other publically available codes, such as MOLSCAT, or Hibridon, the SCATTERING code solves coupled equations in the body-fixed (BF) frame, where the coupling matrix exhibits a predominantly block-diagonal structure with blocks interconnected by centrifugal terms. This significantly reduces computational time and memory requirements.

The theory of non-reactive scattering in systems with arbitrary angular momenta in the BF frame was developed Launay, and was recently recalled in the context of scattering calculations for He-perturbed shape of HD rovibrational resonances (see Stankiewicz et al) and O2-perturbed resonances of HCl (see Olejnik et al).

We briefly summarize the theory in the Theoretical Background section.

Structure of the code

scattering_scheme

  • The user controls the code through the input file and by supplying properly-formatted radial coupling terms of the interaction potential.
  • The input file is interpreted by input_reader_mod module.
  • Radial coupling terms are read and interpolated by subroutines kept in radial_coupling_terms_mod module.
  • scattering is the central program.
  • After reading the input file and radial coupling terms, the code performs a loop over the total angular momentum and parity.
  • For each iteration, the code determines all expansion coefficients \( g_{\boldsymbol{\lambda},\gamma,\gamma'}^{Jp} \) (see Eq. (3) in the Coupling Matrix section).
  • In the next step, the propagation of the log-derivative matrix takes place through numerov that are kept in propagator_mod.
  • The resulting BF-log-derivative matrix is transformed to the SF-system using subroutines from boundary_conditions_mod module which also involves procedures that determine the scattering S-matrix (see Solution of the coupled equations section).
  • The main part of the code calls for the partial state-to-state cross sections calculated by subroutines kept in state_to_state_cross_sections_mod.
  • The results are written to the S-matrix file (see S-matrix file).
  • The output file contains the information about each \( J \)- and \( p \)-labeled block and, if needed, provides the accumulated state-to-state cross sections.