DIPELM
2.0
|
Transition moment container types. More...
Data Types | |
interface | bound |
Holds set of bound states. More... | |
interface | channels |
Holds set of partial wave channels. More... | |
interface | continuum |
Holds set of continuum states. More... | |
type | molecule |
Molecule details. More... | |
interface | moments |
Transition moments container type. More... | |
interface | operator(*) |
Used to apply tranformations to transition matrix elements (e.g. change of basis). More... | |
interface | operator(+) |
Add two members of a type More... | |
interface | operator(.eq.) |
Check if two members of a type are equal. More... | |
interface | operator(.samemodel.) |
Check for equality of photoionization model between two members of a type More... | |
Functions/Subroutines | |
subroutine | print_bound (this, iwrite) |
type(bound) function | new_bound (nb) |
logical function | eq_bound (b1, b2) |
subroutine | print_channels (this, iwrite) |
subroutine | channels_occupancy (this, occ, lmax) |
Assigns a single canonical index to a partial wave channel. More... | |
type(channels) function | new_channels (ni, nc) |
logical function | eq_channels (ch1, ch2) |
logical function | channels_from_same_model (ch1, ch2) |
type(channels) function | add_channels (ch1, ch2) |
type(continuum) function | new_continuum (nsym, ni, nc, ne, nmc) |
logical function | continuum_from_same_model (c1, c2) |
subroutine | print_continuum (this, iwrite, iprint) |
type(continuum) function | continuum_add (c1, c2) |
type(moments) function | new_moments (npw, nmc, ne, ni, nn, nc, nsym) |
logical function | moments_from_same_model (tm1, tm2) |
type(moments) function | add_moments (tm1, tm2) |
type(moments) function | left_matrix_multiply_moments (mat, tm) |
type(moments) function | right_matrix_multiply_moments (tm, mat) |
subroutine | print_moments (this, iwrite, iprint) |
subroutine | convert_moments (this, re_mom, im_mom) |
Converts moments from the format ouput by rsolve. More... | |
Variables | |
real(idp), parameter | e_thresh = 1.d-6 |
Transition moment container types.
Types for holding transition moments and associated information.
type(channels) function dipelm_types::add_channels | ( | type(channels), intent(in) | ch1, |
type(channels), intent(in) | ch2 | ||
) |
type(moments) function dipelm_types::add_moments | ( | type(moments), intent(in) | tm1, |
type(moments), intent(in) | tm2 | ||
) |
logical function dipelm_types::channels_from_same_model | ( | type(channels), intent(in) | ch1, |
type(channels), intent(in) | ch2 | ||
) |
subroutine dipelm_types::channels_occupancy | ( | class(channels) | this, |
integer, dimension(:), allocatable | occ, | ||
integer, optional | lmax | ||
) |
Assigns a single canonical index to a partial wave channel.
\( j = (i-1)N_\mathrm{p} + l(l+1)+(m+1) \)
where \( N_\mathrm{p} = (l_{\mathrm{max}} + 1)^2 \) and \( i \) is the ionic state index.
occ | = returned array where entries are 1 if the canonical channel is occupied and 0 if not. Size = \( N_\mathrm{i} \times N_\mathrm{p} \), where \( N_\mathrm{i} \) is the number of ionic states. |
lmax | = the maximum l value for partial wave expansion of the continuum (optional) |
type(continuum) function dipelm_types::continuum_add | ( | type(continuum), intent(in) | c1, |
type(continuum), intent(in) | c2 | ||
) |
logical function dipelm_types::continuum_from_same_model | ( | type(continuum), intent(in) | c1, |
type(continuum), intent(in) | c2 | ||
) |
subroutine dipelm_types::convert_moments | ( | class(moments) | this, |
real(idp), dimension(:,:,:,:) | re_mom, | ||
real(idp), dimension(:,:,:,:) | im_mom | ||
) |
Converts moments from the format ouput by rsolve.
Photoionization wave functions are kets in rsolve so dipole matrix elements have the form \( \langle \Phi_i| d |\Psi^{-}_f(E) \rangle \). Therefore matrix elements need to be conjugated.
logical function dipelm_types::eq_channels | ( | type(channels), intent(in) | ch1, |
type(channels), intent(in) | ch2 | ||
) |
type(moments) function dipelm_types::left_matrix_multiply_moments | ( | complex(idp), dimension(:,:), intent(in) | mat, |
type(moments), intent(in) | tm | ||
) |
logical function dipelm_types::moments_from_same_model | ( | type(moments), intent(in) | tm1, |
type(moments), intent(in) | tm2 | ||
) |
type(bound) function dipelm_types::new_bound | ( | integer | nb | ) |
type(channels) function dipelm_types::new_channels | ( | integer | ni, |
integer | nc | ||
) |
type(continuum) function dipelm_types::new_continuum | ( | integer | nsym, |
integer, optional | ni, | ||
integer, optional | nc, | ||
integer, optional | ne, | ||
integer, optional | nmc | ||
) |
type(moments) function dipelm_types::new_moments | ( | integer | npw, |
integer | nmc, | ||
integer | ne, | ||
integer | ni, | ||
integer | nn, | ||
integer | nc, | ||
integer | nsym | ||
) |
subroutine dipelm_types::print_bound | ( | class(bound) | this, |
integer | iwrite | ||
) |
subroutine dipelm_types::print_channels | ( | class(channels) | this, |
integer | iwrite | ||
) |
subroutine dipelm_types::print_continuum | ( | class(continuum) | this, |
integer | iwrite, | ||
integer | iprint | ||
) |
subroutine dipelm_types::print_moments | ( | class(moments) | this, |
integer | iwrite, | ||
integer | iprint | ||
) |
type(moments) function dipelm_types::right_matrix_multiply_moments | ( | type(moments), intent(in) | tm, |
complex(idp), dimension(:,:), intent(in) | mat | ||
) |
real(idp), parameter dipelm_types::e_thresh = 1.d-6 |