centrifugal_matrix_mod Module

This module calculates the centrifugal matrix - see the second term in Eq. 3 in "What are coupled equations?" section.


Uses

  • module~~centrifugal_matrix_mod~~UsesGraph module~centrifugal_matrix_mod centrifugal_matrix_mod module~array_operations_mod array_operations_mod module~centrifugal_matrix_mod->module~array_operations_mod module~global_variables_mod global_variables_mod module~centrifugal_matrix_mod->module~global_variables_mod iso_fortran_env iso_fortran_env module~centrifugal_matrix_mod->iso_fortran_env module~array_operations_mod->iso_fortran_env module~global_variables_mod->iso_fortran_env

Used by

  • module~~centrifugal_matrix_mod~~UsedByGraph module~centrifugal_matrix_mod centrifugal_matrix_mod module~propagator_mod propagator_mod module~propagator_mod->module~centrifugal_matrix_mod program~scattering SCATTERING program~scattering->module~propagator_mod

Contents


Functions

private function calculate_diagonal_centrifugal_element(total_angular_momentum_, j_, omega_) result(diagonal_element_)

calculates diagonal element of the centrifgual matrix, see Eq. 4 in "Coupling Matrix" section

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: total_angular_momentum_

total angular momentum

integer(kind=int32), intent(in) :: j_

rotational angular momentum

integer(kind=int32), intent(in) :: omega_

\(\bar{\Omega}\)

Return Value real(kind=dp)

(output) value of the diagonal element of the centrifgual matrix

private function calculate_offdiagonal_centrifugal_element(total_angular_momentum_, j_, omega_, omega_prime_, delta_1_, delta_2_) result(offdiagonal_element_)

calculates off-diagonal element of the centrifgual matrix, see Eq. 5 in "Coupling Matrix" section

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: total_angular_momentum_

total angular momentum

integer(kind=int32), intent(in) :: j_

rotational angular momentum

integer(kind=int32), intent(in) :: omega_

\(\bar{\Omega}\)

integer(kind=int32), intent(in) :: omega_prime_

\(\bar{\Omega}'\)

real(kind=dp), intent(in) :: delta_1_

Kronecker delta functions determined earlier

real(kind=dp), intent(in) :: delta_2_

Kronecker delta functions determined earlier

Return Value real(kind=dp)

(output) value of the off-diagonal element of the centrifgual matrix

private function delta_for_zero_omega(omega_) result(delta_)

Checks if the input value equals 0; used in the calculation of off-diagonal elements of the centrifugal matrix; see Eq. 5 in "Coupling Matrix" section

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: omega_

input value which is to be compared with 0

Return Value real(kind=dp)

(output) 1 if omega_ = 0, 0 otherwise


Subroutines

public subroutine calculate_centrifugal_matrix(total_angular_momentum_, channel_indices_, channels_omega_values_, centrifugal_matrix_)

calculates the (R*2)centrifugal matrix from the second term of Eq. 3 in "What are coupled equations?" section; Matrix elements are given in Eq. 4 and 6 of "Coupling Matrix" secion

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: total_angular_momentum_

total angular momentum

integer(kind=int32), intent(in) :: channel_indices_(:)

holds the indices pointing to the basis arrays

integer(kind=int32), intent(in) :: channels_omega_values_(:)

holds all values of \bar{\Omega}

real(kind=dp), intent(out) :: centrifugal_matrix_(:,:)

(output) - (R*2)centrifugal matrix