OpenMCTDHB v2.3
Modules | Functions/Subroutines

modulecomputationcore.F90 File Reference

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.
 All Namespaces Files Functions Variables