MCTDH-X
v2.22
|
This module collects the routines needed for the evaluation of the local interaction potentials W_{sl}(r,r') in the right-hand-sides of the orbital equations of motion. More...
Public Member Functions | |
subroutine | get_interactionoperatoraction (PSI, OPSI, FromN, TillN, WSLTime) |
Routine to evaluate OpenMP-MPI-hybridly the matrix elements of all the two-body operators W and the action of the interaction on the orbitals. More... | |
subroutine | apply_interactionoperator (FromN, TillN, PSI, OPSI, ALL_WSL) |
Routine to evaluate OpenMP-MPI-hybridly the action of the interaction on the orbitals. More... | |
subroutine | compute_interactionelements (FromN, TillN, PSI, ALL_WSL, Interaction_Elements) |
Routine to evaluate OpenMP-MPI-hybridly the matrix elements of all the two-body operators W. More... | |
subroutine | compute_multilevelinteractionelements (FromN, TillN, PSI, ALL_WSL, Interaction_Elements, spindependent, Direction, Psi_Spin) |
subroutine | apply_multilevelinteractionoperator (FromN, TillN, PSI, OPSI, ALL_WSL, spindependent, Direction, Psi_Spin) |
Routine to evaluate OpenMP-MPI-hybridly the action of the interaction on the orbitals. More... | |
subroutine | get_multilevelinteractionoperatoraction (PSI, OPSI, FromN, TillN, WSLTime) |
Routine to evaluate OpenMP-MPI-hybridly the matrix elements of all the two-body operators W_sl for the multilevel case for a certain level. More... | |
subroutine | get_local_multilevelinteractionpotentials (WSL, psiS, psiL, WSLTime, spindependent) |
Wrapper routine to obtain W_{sl}. Calls subroutines according to the chosen form of the interparticle potential. More... | |
subroutine | get_local_interactionpotentials (WSL, psiS, psiL, WSLTime) |
Wrapper routine to obtain W_{sl}. Calls subroutines according to the chosen form of the interparticle potential. More... | |
subroutine | compute_localinteraction_fft (vtilde, wtilde) |
Routine to compute the fourier transform of the interaction potential needed for the IMEST evaluation of the matrix elements of the interaction. More... | |
subroutine | compute_localinteraction_imest (wsl, psi_s, psi_l, vtilde) |
Computes the W_{sl}(r',r) using the IMEST algorithm. Employs the Fourier transform of the interaction potential computed by Compute_LocalInteraction_FFT. More... | |
This module collects the routines needed for the evaluation of the local interaction potentials W_{sl}(r,r') in the right-hand-sides of the orbital equations of motion.
subroutine localinteractionpotential::apply_interactionoperator | ( | integer | FromN, |
integer | TillN, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb) | PSI, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb) | OPSI, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,tilln-fromn+1) | ALL_WSL | ||
) |
Routine to evaluate OpenMP-MPI-hybridly the action of the interaction on the orbitals.
References auxiliary_routines::get_ijk_from_m(), and addresses::rhoall().
Referenced by get_interactionoperatoraction().
subroutine localinteractionpotential::apply_multilevelinteractionoperator | ( | integer | FromN, |
integer | TillN, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb,nlevel) | PSI, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb,nlevel) | OPSI, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,tilln-fromn+1,nlevel) | ALL_WSL, | ||
logical, intent(in), optional | spindependent, | ||
integer, intent(in), optional | Direction, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb,nlevel), optional | Psi_Spin | ||
) |
Routine to evaluate OpenMP-MPI-hybridly the action of the interaction on the orbitals.
References addresses::rhoall().
Referenced by get_multilevelinteractionoperatoraction().
subroutine localinteractionpotential::compute_interactionelements | ( | integer | FromN, |
integer | TillN, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb) | PSI, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,tilln-fromn+1) | ALL_WSL, | ||
complex*16, dimension(rdim1) | Interaction_Elements | ||
) |
Routine to evaluate OpenMP-MPI-hybridly the matrix elements of all the two-body operators W.
References auxiliary_routines::get_ijk_from_m(), addresses::nadr(), and addresses::symmexp().
Referenced by get_interactionoperatoraction().
subroutine localinteractionpotential::compute_localinteraction_fft | ( | double complex, dimension(ndvr_x*ndvr_y*ndvr_z) | vtilde, |
double complex, dimension(ndvr_x*ndvr_y*ndvr_z) | wtilde | ||
) |
Routine to compute the fourier transform of the interaction potential needed for the IMEST evaluation of the matrix elements of the interaction.
References fft_laboratory::get_fft(), and auxiliary_routines::get_ijk_from_m().
Referenced by get_interparticle_potential().
subroutine localinteractionpotential::compute_localinteraction_imest | ( | double complex, dimension(ndvr_x*ndvr_y*ndvr_z) | wsl, |
double complex, dimension(ndvr_x*ndvr_y*ndvr_z) | psi_s, | ||
double complex, dimension(ndvr_x*ndvr_y*ndvr_z) | psi_l, | ||
double complex, dimension(ndvr_x*ndvr_y*ndvr_z) | vtilde | ||
) |
Computes the W_{sl}(r',r) using the IMEST algorithm. Employs the Fourier transform of the interaction potential computed by Compute_LocalInteraction_FFT.
References fft_laboratory::get_fft().
Referenced by get_local_interactionpotentials(), and get_local_multilevelinteractionpotentials().
subroutine localinteractionpotential::compute_multilevelinteractionelements | ( | integer | FromN, |
integer | TillN, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb,nlevel) | PSI, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,tilln-fromn+1,nlevel) | ALL_WSL, | ||
complex*16, dimension(rdim1) | Interaction_Elements, | ||
logical, intent(in), optional | spindependent, | ||
integer, intent(in), optional | Direction, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb,nlevel), optional | Psi_Spin | ||
) |
References addresses::nadr().
Referenced by get_multilevelinteractionoperatoraction().
subroutine localinteractionpotential::get_interactionoperatoraction | ( | complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb) | PSI, |
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb) | OPSI, | ||
integer | FromN, | ||
integer | TillN, | ||
real*8 | WSLTime | ||
) |
Routine to evaluate OpenMP-MPI-hybridly the matrix elements of all the two-body operators W and the action of the interaction on the orbitals.
References apply_interactionoperator(), compute_interactionelements(), and get_local_interactionpotentials().
Referenced by orbital_equationofmotion::func(), and master_slave_parallelization::slave_process_orbitals().
subroutine localinteractionpotential::get_local_interactionpotentials | ( | complex*16, dimension(ndvr_x*ndvr_y*ndvr_z) | WSL, |
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z) | psiS, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z) | psiL, | ||
real*8 | WSLTime | ||
) |
Wrapper routine to obtain W_{sl}. Calls subroutines according to the chosen form of the interparticle potential.
References compute_localinteraction_imest(), get_interparticle_potential(), and kineticenergyaction::get_kineticenergyaction().
Referenced by get_interactionoperatoraction(), and analysis_routines_manybody::write_hamiltonianelementsanalysis().
subroutine localinteractionpotential::get_local_multilevelinteractionpotentials | ( | complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,nlevel) | WSL, |
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,nlevel) | psiS, | ||
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,nlevel) | psiL, | ||
real*8 | WSLTime, | ||
logical, intent(in), optional | spindependent | ||
) |
Wrapper routine to obtain W_{sl}. Calls subroutines according to the chosen form of the interparticle potential.
References compute_localinteraction_imest(), and get_interparticle_potential().
Referenced by get_multilevelinteractionoperatoraction().
subroutine localinteractionpotential::get_multilevelinteractionoperatoraction | ( | complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb,nlevel) | PSI, |
complex*16, dimension(ndvr_x*ndvr_y*ndvr_z,morb,nlevel) | OPSI, | ||
integer | FromN, | ||
integer | TillN, | ||
real*8 | WSLTime | ||
) |
Routine to evaluate OpenMP-MPI-hybridly the matrix elements of all the two-body operators W_sl for the multilevel case for a certain level.
References apply_multilevelinteractionoperator(), auxiliary_routines::apply_spin(), compute_multilevelinteractionelements(), and get_local_multilevelinteractionpotentials().
Referenced by orbital_equationofmotion::func_nlevel(), and master_slave_parallelization::slave_process_nlevelorbitals().