OpenMCTDHB v2.3
|
Go to the source code of this file.
Modules | |
module | modulecomputationcore |
This module contains core computational routines. | |
Functions/Subroutines | |
subroutine | modulecomputationcore::evaluate_error (Delta_CVec, Delta_Psi, rho_jk_zero, CVecError, PsiError, nConf) |
This routine estimates the error of a propagation/relaxation step. The error estimator is documented in [M.H. Beck, H.D. Meyer, Z. f. Phys. D 42 113 (1997)]. | |
subroutine | modulecomputationcore::FuncOrbs (AbsTime, Psi_WORK, DtPsi_WORK, CData, RData, IData, LData) |
This routine returns the RHS of the orbital equation of motion. The routine FuncOrbs is given to the ABM integrator of the abmlib of MCTDH. | |
subroutine | modulecomputationcore::FuncCVecBandMat (AbsTime, CVec, DtCVec, BandMat, RData, IData, LData) |
This routine returns the RHS of the coefficent equation of motion. The routine FuncCVec is given to the SIL integrator of the sillib of MCTDH returns -i H|CVec> or -H|CVec> as DtCVec using the Band Matrix routine to comply with the SILstep routine StdForm flag. | |
subroutine | modulecomputationcore::get_FullHamiltonianBandMatrix (NPar, MOrb, NDX, NDY, NDZ, Dims, nConf, nSuperDiags, lambda0, Psi, BandMat) |
This routine returns the Hamiltonian matrix <n|H|n'> for M=1,2 orbitals. The matrix is then a simple band matrix and can be given to the LAPACK routine ZHBMV. | |
subroutine | modulecomputationcore::projector_MCTDHB (Chi, projectedChi, Psi) |
This routine implements the MCTDHB projector P given a vector of MOrb orbitals Psi_j = Psi(:,k), j=k,...,M, the SUBROUTINE returns the projection. | |
subroutine | modulecomputationcore::get_hPsi (MOrb, NDX, NDY, NDZ, Dims, Psi, hPsi) |
This routine computes the vectors h|psi_1>, ..., h|psi_MOrb>, where the psi_j j=1,...,MOrb are the orbitals used. This function uses Fourier transform of the ACML library to compute the kinetic part of the one-body Hamiltonian. (the mass m and hbar are set to one, everywhere) | |
subroutine | modulecomputationcore::get_Wsl_IMEST (Wsl, psi_s, psi_l) |
This routine evaluates Wsl using the IMEST algorithm. It needs vtilde as an input, either from get_vtilde or calculated analytically. vtilde is nothing but the Fourier transform of the interaction potential times (2pi)^(D/2) / dV where dV is the volume element of a grid point in D dimensions. The vector is orderd in FFT order. | |
subroutine | modulecomputationcore::get_vtilde (NDX, NDY, NDZ, Dims, xi, xf, yi, yf, zi, zf, vtilde) |
This routine computes vtilde for the IMEST algorithm. It calls Wint_IMEST as interaction potential. vtilde is nothing but the Fourier transform W(k) of the interaction potential times (2pi)^(D/2) / dV. The vector is stored in FFT order. The following definition of the Fourier transform is used. | |
subroutine | modulecomputationcore::get_h_jk (Psi, h_jk, NDX, NDY, NDZ, Dims, MOrb) |
This routine returns the matrix elements h_jk = <Psi_j|h|Psi_k> of the one-body part of the many-body Hamiltonian. | |
subroutine | modulecomputationcore::get_Wsl (Wsl, s, l, Psi) |
This routine computes the vector Wsl(x) = Int[psi_s^*(x') W(x-x') psi_l(x')]. | |
subroutine | modulecomputationcore::get_Wsl_phi_q (Wsl, phi_q, Wsl_phi_q) |
This routine multiplies Wsl(x) with psi_q. | |
subroutine | modulecomputationcore::get_Wijkl (Wijkl, i, j, k, l, Psi) |
This routine computes the interaction matrix element W_ijkl. | |
subroutine | modulecomputationcore::get_rho_jk (nConf, MOrb, NPar, CVec, rho_jk) |
This routine computes the matrix elements of the reduced one-body density matrix rho_jk for MOrb=1,2 orbitals. | |
subroutine | modulecomputationcore::get_rho_ijkl (nConf, MOrb, NPar, CVec, rho_ijkl) |
This routine computes the matrix elements of the reduced two-body density matrix rho_ijkl for MOrb=1,2 orbitals. | |
subroutine | modulecomputationcore::get_mu_kj (AbsTime, mu_kj, Psi, rho_jk, rho_ijkl) |
This routine returns the chemical potentials mu_kj. |