This module provides helper functions: "units_conversion", "total_energy" "wavevector_squared_from_energy", and functions that count and save open levels in the rovibrational basis.
counts the energetically accessible levels in the basis
checks if a channel/level is energetically accessible (open) by comparing energy with total_energy
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | energy_ |
level/channel energy |
returns the total energy
returns the squared wavevector, \(k_{a}^{2}\), given the energy of a given state, \(E_{a}\); calls etot() function; atomic units in the whole function \( k_{a} = \sqrt(2 \mu (E_{tot} - E_{a}) \) since it uses reduced_mass and total_energy(), the function checks if units are already converted
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | energy_ |
energy of a given state, \( E_{a} \), in a.u. |
wavevector, \(k_{a}\), in a.u.
saves indices to open levels in the basis and corresponding wavevectors (in A^2)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | number_of_open_basis_levels |
number of energetically accessible levels in the basis |
||
integer(kind=int32), | intent(inout), | allocatable | :: | open_basis_levels(:) |
array holding indices to energetically accessible levels in the basis |
|
real(kind=dp), | intent(inout), | allocatable | :: | basis_wavevectors(:) |
array holding wavevectors calculated w.r.t energetically accessible levels in the basis |
converts all physical quantities to atomic units