|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Classes | |
| class | Evolve_elec |
| struct | Matrix_g |
| class | Propagator |
Functions | |
| int | globalIndex (int localindex, int nblk, int nprocs, int myproc) |
| void | compute_ekb (const Parallel_Orbitals *pv, const int nband, const int nlocal, const std::complex< double > *Htmp, const std::complex< double > *psi_k, double *ekb, std::ofstream &ofs_running) |
| compute band energy ekb <psi_i|H|psi_i> | |
| void | compute_ekb_tensor (const Parallel_Orbitals *pv, const int nband, const int nlocal, const ct::Tensor &Htmp, const ct::Tensor &psi_k, ct::Tensor &ekb, std::ofstream &ofs_running) |
| template<typename Device > | |
| void | compute_ekb_tensor_lapack (const Parallel_Orbitals *pv, const int nband, const int nlocal, const ct::Tensor &Htmp, const ct::Tensor &psi_k, ct::Tensor &ekb, std::ofstream &ofs_running) |
| template void | compute_ekb_tensor_lapack< base_device::DEVICE_CPU > (const Parallel_Orbitals *pv, const int nband, const int nlocal, const ct::Tensor &Htmp, const ct::Tensor &psi_k, ct::Tensor &ekb, std::ofstream &ofs_running) |
| void | reset_matrix_boundary (const UnitCell &ucell, const K_Vectors &kv, const Parallel_Orbitals *pv, ct::Tensor &hk_last, ct::Tensor &sk_last, psi::Psi< std::complex< double > > *psi_last, const size_t len_hs) |
| Add phases to the matrix and coefficient from the previous step to correct the boundary discontinuity. | |
| void | boundary_shift_mat (const std::complex< double > &phase, std::complex< double > *matk, const Parallel_Orbitals *pv, const size_t iat) |
| Add extra phase to the matrix element belong to iat. | |
| void | boundary_shift_c (const std::complex< double > &phase, std::complex< double > *psi_k_last, const Parallel_Orbitals *pv, const size_t iat) |
| Add extra phase to the wfc coefficient belong to iat. | |
| void | evolve_psi (const int nband, const int nlocal, const Parallel_Orbitals *pv, hamilt::Hamilt< std::complex< double > > *p_hamilt, std::complex< double > *psi_k, std::complex< double > *psi_k_laststep, std::complex< double > *H_laststep, std::complex< double > *S_laststep, double *ekb, int propagator, std::ofstream &ofs_running, const int print_matrix) |
| template<typename Device > | |
| void | evolve_psi_tensor (const int nband, const int nlocal, const Parallel_Orbitals *pv, hamilt::Hamilt< std::complex< double > > *p_hamilt, ct::Tensor &psi_k, ct::Tensor &psi_k_laststep, ct::Tensor &H_laststep, ct::Tensor &S_laststep, ct::Tensor &ekb, int propagator, std::ofstream &ofs_running, const int print_matrix, const bool use_lapack) |
| template void | evolve_psi_tensor< base_device::DEVICE_CPU > (const int nband, const int nlocal, const Parallel_Orbitals *pv, hamilt::Hamilt< std::complex< double > > *p_hamilt, ct::Tensor &psi_k, ct::Tensor &psi_k_laststep, ct::Tensor &H_laststep, ct::Tensor &S_laststep, ct::Tensor &ekb, int propagator, std::ofstream &ofs_running, const int print_matrix, const bool use_lapack) |
| template<typename T > | |
| void | gatherMatrix (const int myid, const int root_proc, const hamilt::MatrixBlock< T > &mat_l, Matrix_g< T > &mat_g) |
| template<typename T > | |
| void | distributeMatrix (hamilt::MatrixBlock< T > &mat_l, const module_rt::Matrix_g< T > &mat_g) |
| template<typename T > | |
| void | gatherPsi (const int myid, const int root_proc, T *psi_l, const Parallel_Orbitals ¶_orb, module_rt::Matrix_g< T > &psi_g) |
| template<typename T > | |
| void | distributePsi (const Parallel_Orbitals ¶_orb, T *psi_l, const module_rt::Matrix_g< T > &psi_g) |
| void | half_Hmatrix (const Parallel_Orbitals *pv, const int nband, const int nlocal, std::complex< double > *Htmp, std::complex< double > *Stmp, const std::complex< double > *H_laststep, const std::complex< double > *S_laststep, std::ofstream &ofs_running, const int print_matrix) |
| compute H(t+dt/2) | |
| void | half_Hmatrix_tensor (const Parallel_Orbitals *pv, const int nband, const int nlocal, ct::Tensor &Htmp, ct::Tensor &Stmp, const ct::Tensor &H_laststep, const ct::Tensor &S_laststep, std::ofstream &ofs_running, const int print_matrix) |
| template<typename Device > | |
| void | half_Hmatrix_tensor_lapack (const Parallel_Orbitals *pv, const int nband, const int nlocal, ct::Tensor &Htmp, ct::Tensor &Stmp, const ct::Tensor &H_laststep, const ct::Tensor &S_laststep, std::ofstream &ofs_running, const int print_matrix) |
| template void | half_Hmatrix_tensor_lapack< base_device::DEVICE_CPU > (const Parallel_Orbitals *pv, const int nband, const int nlocal, ct::Tensor &Htmp, ct::Tensor &Stmp, const ct::Tensor &H_laststep, const ct::Tensor &S_laststep, std::ofstream &ofs_running, const int print_matrix) |
| void | norm_psi (const Parallel_Orbitals *pv, const int nband, const int nlocal, const std::complex< double > *Stmp, std::complex< double > *psi_k, std::ofstream &ofs_running, const int print_matrix) |
| normalize the wave function | |
| void | norm_psi_tensor (const Parallel_Orbitals *pv, const int nband, const int nlocal, const ct::Tensor &Stmp, ct::Tensor &psi_k, std::ofstream &ofs_running, const int print_matrix) |
| template<typename Device > | |
| void | norm_psi_tensor_lapack (const Parallel_Orbitals *pv, const int nband, const int nlocal, const ct::Tensor &Stmp, ct::Tensor &psi_k, std::ofstream &ofs_running, const int print_matrix) |
| template void | norm_psi_tensor_lapack< base_device::DEVICE_CPU > (const Parallel_Orbitals *pv, const int nband, const int nlocal, const ct::Tensor &Stmp, ct::Tensor &psi_k, std::ofstream &ofs_running, const int print_matrix) |
| template void | Propagator::compute_propagator_tensor< base_device::DEVICE_CPU > (const int nlocal, const ct::Tensor &Stmp, const ct::Tensor &Htmp, const ct::Tensor &H_laststep, ct::Tensor &U_operator, std::ofstream &ofs_running, const int print_matrix, const bool use_lapack) const |
| template<typename T > | |
| T | init_value (typename std::enable_if<!std::is_same< T, std::complex< float > >::value &&!std::is_same< T, std::complex< double > >::value >::type *=nullptr) |
| template<typename T > | |
| T | init_value (typename std::enable_if< std::is_same< T, std::complex< float > >::value||std::is_same< T, std::complex< double > >::value >::type *=nullptr) |
| template<typename T > | |
| ct::Tensor | create_identity_matrix (const int n, ct::DeviceType device=ct::DeviceType::CpuDevice) |
| template void | Propagator::compute_propagator_cn2_tensor_lapack< base_device::DEVICE_CPU > (const int nlocal, const ct::Tensor &Stmp, const ct::Tensor &Htmp, ct::Tensor &U_operator, std::ofstream &ofs_running, const int print_matrix) const |
| double | interpolate_radial (const double *psi, int mesh, double inv_dk, double distance) |
| Interpolate radial function value at a given distance using cubic interpolation. | |
| void | snap_psibeta_half_tddft (const LCAO_Orbitals &orb, const InfoNonlocal &infoNL_, std::vector< std::vector< std::complex< double > > > &nlm, const ModuleBase::Vector3< double > &R1, const int &T1, const int &L1, const int &m1, const int &N1, const ModuleBase::Vector3< double > &R0, const int &T0, const ModuleBase::Vector3< double > &A, const bool &calc_r) |
| Main function to calculate overlap integrals <phi|exp^{-iAr}|beta> and its derivatives (if calc_r is true). | |
| void | solve_propagation (const Parallel_Orbitals *pv, const int nband, const int nlocal, const double dt, const std::complex< double > *Stmp, const std::complex< double > *Htmp, const std::complex< double > *psi_k_laststep, std::complex< double > *psi_k) |
solve propagation equation A(t+dt) = B(t) | |
| template<typename TR > | |
| void | folding_HR_td (const hamilt::HContainer< TR > &hR, std::complex< double > *hk, const ModuleBase::Vector3< double > &kvec_d_in, const int ncol, const int hk_type, const UnitCell *ucell, const ModuleBase::Vector3< double > &cart_At) |
| template void | folding_HR_td< double > (const hamilt::HContainer< double > &hR, std::complex< double > *hk, const ModuleBase::Vector3< double > &kvec_d_in, const int ncol, const int hk_type, const UnitCell *ucell, const ModuleBase::Vector3< double > &At) |
| template void | folding_HR_td< std::complex< double > > (const hamilt::HContainer< std::complex< double > > &hR, std::complex< double > *hk, const ModuleBase::Vector3< double > &kvec_d_in, const int ncol, const int hk_type, const UnitCell *ucell, const ModuleBase::Vector3< double > &At) |
| void | upsi (const Parallel_Orbitals *pv, const int nband, const int nlocal, const std::complex< double > *U_operator, const std::complex< double > *psi_k_laststep, std::complex< double > *psi_k, std::ofstream &ofs_running, const int print_matrix) |
| apply U_operator to the wave function of the previous step for new wave function | |
| void | upsi_tensor (const Parallel_Orbitals *pv, const int nband, const int nlocal, const ct::Tensor &U_operator, const ct::Tensor &psi_k_laststep, ct::Tensor &psi_k, std::ofstream &ofs_running, const int print_matrix) |
| template<typename Device > | |
| void | upsi_tensor_lapack (const Parallel_Orbitals *pv, const int nband, const int nlocal, const ct::Tensor &U_operator, const ct::Tensor &psi_k_laststep, ct::Tensor &psi_k, std::ofstream &ofs_running, const int print_matrix) |
| template void | upsi_tensor_lapack< base_device::DEVICE_CPU > (const Parallel_Orbitals *pv, const int nband, const int nlocal, const ct::Tensor &U_operator, const ct::Tensor &psi_k_laststep, ct::Tensor &psi_k, std::ofstream &ofs_running, const int print_matrix) |
| void module_rt::boundary_shift_c | ( | const std::complex< double > & | phase, |
| std::complex< double > * | psi_k_last, | ||
| const Parallel_Orbitals * | pv, | ||
| const size_t | iat | ||
| ) |
Add extra phase to the wfc coefficient belong to iat.
| [in] | phase | extra phase |
| [in] | psi_k_last | psi of last step |
| [in] | pv | information of parallel |
| [in] | iat | atom index |
| [out] | psi_k_last | fixed psi of last step |
| void module_rt::boundary_shift_mat | ( | const std::complex< double > & | phase, |
| std::complex< double > * | matk, | ||
| const Parallel_Orbitals * | pv, | ||
| const size_t | iat | ||
| ) |
Add extra phase to the matrix element belong to iat.
| [in] | phase | extra phase |
| [in] | matk | the matrix need to be fixed |
| [in] | pv | information of parallel |
| [in] | iat | atom index |
| [out] | matk | the fixed matrix |
| void module_rt::compute_ekb | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const std::complex< double > * | Htmp, | ||
| const std::complex< double > * | psi_k, | ||
| double * | ekb, | ||
| std::ofstream & | ofs_running | ||
| ) |
compute band energy ekb <psi_i|H|psi_i>
| [in] | pv | information of parallel |
| [in] | nband | number of bands |
| [in] | nlocal | number of orbitals |
| [in] | Htmp | Hamiltonian |
| [in] | psi_k | psi of this step |
| [out] | ekb | band energy |
| void module_rt::compute_ekb_tensor | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const ct::Tensor & | Htmp, | ||
| const ct::Tensor & | psi_k, | ||
| ct::Tensor & | ekb, | ||
| std::ofstream & | ofs_running | ||
| ) |
| void module_rt::compute_ekb_tensor_lapack | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const ct::Tensor & | Htmp, | ||
| const ct::Tensor & | psi_k, | ||
| ct::Tensor & | ekb, | ||
| std::ofstream & | ofs_running | ||
| ) |
| template void module_rt::compute_ekb_tensor_lapack< base_device::DEVICE_CPU > | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const ct::Tensor & | Htmp, | ||
| const ct::Tensor & | psi_k, | ||
| ct::Tensor & | ekb, | ||
| std::ofstream & | ofs_running | ||
| ) |
| ct::Tensor module_rt::create_identity_matrix | ( | const int | n, |
| ct::DeviceType | device = ct::DeviceType::CpuDevice |
||
| ) |
| void module_rt::distributeMatrix | ( | hamilt::MatrixBlock< T > & | mat_l, |
| const module_rt::Matrix_g< T > & | mat_g | ||
| ) |
| void module_rt::distributePsi | ( | const Parallel_Orbitals & | para_orb, |
| T * | psi_l, | ||
| const module_rt::Matrix_g< T > & | psi_g | ||
| ) |
| void module_rt::evolve_psi | ( | const int | nband, |
| const int | nlocal, | ||
| const Parallel_Orbitals * | pv, | ||
| hamilt::Hamilt< std::complex< double > > * | p_hamilt, | ||
| std::complex< double > * | psi_k, | ||
| std::complex< double > * | psi_k_laststep, | ||
| std::complex< double > * | H_laststep, | ||
| std::complex< double > * | S_laststep, | ||
| double * | ekb, | ||
| int | propagator, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
compute H(t+dt/2) @input H_laststep, Htmp, print_matrix @output Htmp
compute U_operator @input Stmp, Htmp, print_matrix @output U_operator
apply U_operator to the wave function of the previous step for new wave function @input U_operator, psi_k_laststep, print_matrix @output psi_k
solve the propagation equation @input Stmp, Htmp, psi_k_laststep @output psi_k
normalize psi_k @input Stmp, psi_not_norm, psi_k, print_matrix @output psi_k
compute ekb @input Htmp, psi_k @output ekb
| void module_rt::evolve_psi_tensor | ( | const int | nband, |
| const int | nlocal, | ||
| const Parallel_Orbitals * | pv, | ||
| hamilt::Hamilt< std::complex< double > > * | p_hamilt, | ||
| ct::Tensor & | psi_k, | ||
| ct::Tensor & | psi_k_laststep, | ||
| ct::Tensor & | H_laststep, | ||
| ct::Tensor & | S_laststep, | ||
| ct::Tensor & | ekb, | ||
| int | propagator, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix, | ||
| const bool | use_lapack | ||
| ) |
compute H(t+dt/2) @input H_laststep, Htmp, print_matrix @output Htmp
compute U_operator @input Stmp, Htmp, print_matrix @output U_operator
apply U_operator to the wave function of the previous step for new wave function @input U_operator, psi_k_laststep, print_matrix @output psi_k
normalize psi_k @input Stmp, psi_not_norm, psi_k, print_matrix @output psi_k
compute ekb @input Htmp, psi_k @output ekb
| template void module_rt::evolve_psi_tensor< base_device::DEVICE_CPU > | ( | const int | nband, |
| const int | nlocal, | ||
| const Parallel_Orbitals * | pv, | ||
| hamilt::Hamilt< std::complex< double > > * | p_hamilt, | ||
| ct::Tensor & | psi_k, | ||
| ct::Tensor & | psi_k_laststep, | ||
| ct::Tensor & | H_laststep, | ||
| ct::Tensor & | S_laststep, | ||
| ct::Tensor & | ekb, | ||
| int | propagator, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix, | ||
| const bool | use_lapack | ||
| ) |
| void module_rt::folding_HR_td | ( | const hamilt::HContainer< TR > & | hR, |
| std::complex< double > * | hk, | ||
| const ModuleBase::Vector3< double > & | kvec_d_in, | ||
| const int | ncol, | ||
| const int | hk_type, | ||
| const UnitCell * | ucell, | ||
| const ModuleBase::Vector3< double > & | cart_At | ||
| ) |
| template void module_rt::folding_HR_td< double > | ( | const hamilt::HContainer< double > & | hR, |
| std::complex< double > * | hk, | ||
| const ModuleBase::Vector3< double > & | kvec_d_in, | ||
| const int | ncol, | ||
| const int | hk_type, | ||
| const UnitCell * | ucell, | ||
| const ModuleBase::Vector3< double > & | At | ||
| ) |
| template void module_rt::folding_HR_td< std::complex< double > > | ( | const hamilt::HContainer< std::complex< double > > & | hR, |
| std::complex< double > * | hk, | ||
| const ModuleBase::Vector3< double > & | kvec_d_in, | ||
| const int | ncol, | ||
| const int | hk_type, | ||
| const UnitCell * | ucell, | ||
| const ModuleBase::Vector3< double > & | At | ||
| ) |
| void module_rt::gatherMatrix | ( | const int | myid, |
| const int | root_proc, | ||
| const hamilt::MatrixBlock< T > & | mat_l, | ||
| Matrix_g< T > & | mat_g | ||
| ) |
| void module_rt::gatherPsi | ( | const int | myid, |
| const int | root_proc, | ||
| T * | psi_l, | ||
| const Parallel_Orbitals & | para_orb, | ||
| module_rt::Matrix_g< T > & | psi_g | ||
| ) |
|
inline |
| void module_rt::half_Hmatrix | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| std::complex< double > * | Htmp, | ||
| std::complex< double > * | Stmp, | ||
| const std::complex< double > * | H_laststep, | ||
| const std::complex< double > * | S_laststep, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
compute H(t+dt/2)
| [in] | pv | information of parallel |
| [in] | nband | number of bands |
| [in] | nlocal | number of orbitals |
| [in] | Htmp | H(t+dt) |
| [in] | H_laststep | H(t) |
| [in] | print_matirx | print internal matrix or not |
| [out] | Htmp | H(t+dt/2) |
| void module_rt::half_Hmatrix_tensor | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| ct::Tensor & | Htmp, | ||
| ct::Tensor & | Stmp, | ||
| const ct::Tensor & | H_laststep, | ||
| const ct::Tensor & | S_laststep, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
| void module_rt::half_Hmatrix_tensor_lapack | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| ct::Tensor & | Htmp, | ||
| ct::Tensor & | Stmp, | ||
| const ct::Tensor & | H_laststep, | ||
| const ct::Tensor & | S_laststep, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
| template void module_rt::half_Hmatrix_tensor_lapack< base_device::DEVICE_CPU > | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| ct::Tensor & | Htmp, | ||
| ct::Tensor & | Stmp, | ||
| const ct::Tensor & | H_laststep, | ||
| const ct::Tensor & | S_laststep, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
|
inline |
|
inline |
|
inline |
Interpolate radial function value at a given distance using cubic interpolation.
| psi | Pointer to radial function array |
| mesh | Number of mesh points |
| inv_dk | Inverse of grid spacing (1/dk) |
| distance | Distance to interpolate at |
| void module_rt::norm_psi | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const std::complex< double > * | Stmp, | ||
| std::complex< double > * | psi_k, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
normalize the wave function
| [in] | pv | information of parallel |
| [in] | nband | number of bands |
| [in] | nlocal | number of orbitals |
| [in] | Stmp | overlap matrix |
| [in] | psi_k | psi of this step |
| [in] | print_matirx | print internal matrix or not |
| [out] | psi_k | psi of this step after normalization |
| void module_rt::norm_psi_tensor | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const ct::Tensor & | Stmp, | ||
| ct::Tensor & | psi_k, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
| void module_rt::norm_psi_tensor_lapack | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const ct::Tensor & | Stmp, | ||
| ct::Tensor & | psi_k, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
| template void module_rt::norm_psi_tensor_lapack< base_device::DEVICE_CPU > | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const ct::Tensor & | Stmp, | ||
| ct::Tensor & | psi_k, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
| template void module_rt::Propagator::compute_propagator_cn2_tensor_lapack< base_device::DEVICE_CPU > | ( | const int | nlocal, |
| const ct::Tensor & | Stmp, | ||
| const ct::Tensor & | Htmp, | ||
| ct::Tensor & | U_operator, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) | const |
| template void module_rt::Propagator::compute_propagator_tensor< base_device::DEVICE_CPU > | ( | const int | nlocal, |
| const ct::Tensor & | Stmp, | ||
| const ct::Tensor & | Htmp, | ||
| const ct::Tensor & | H_laststep, | ||
| ct::Tensor & | U_operator, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix, | ||
| const bool | use_lapack | ||
| ) | const |
| void module_rt::reset_matrix_boundary | ( | const UnitCell & | ucell, |
| const K_Vectors & | kv, | ||
| const Parallel_Orbitals * | pv, | ||
| ct::Tensor & | hk_last, | ||
| ct::Tensor & | sk_last, | ||
| psi::Psi< std::complex< double > > * | psi_last, | ||
| const size_t | len_hs | ||
| ) |
Add phases to the matrix and coefficient from the previous step to correct the boundary discontinuity.
| [in] | ucell | Unitcell information |
| [in] | kv | K-point vectors |
| [in] | pv | information of parallel |
| [in] | hk_last | Hamiltonian matrix from last step |
| [in] | sk_last | Overlap matrix from last step |
| [in] | psi_last | Wavefunctions from last step |
| [in] | len_hs | size of matrix element in this processor |
| [out] | hk_last | the fixed hk matrix |
| [out] | sk_last | the fixed sk matrix |
| [out] | sk_last | the fixed wavefunctions |
| void module_rt::snap_psibeta_half_tddft | ( | const LCAO_Orbitals & | orb, |
| const InfoNonlocal & | infoNL_, | ||
| std::vector< std::vector< std::complex< double > > > & | nlm, | ||
| const ModuleBase::Vector3< double > & | R1, | ||
| const int & | T1, | ||
| const int & | L1, | ||
| const int & | m1, | ||
| const int & | N1, | ||
| const ModuleBase::Vector3< double > & | R0, | ||
| const int & | T0, | ||
| const ModuleBase::Vector3< double > & | A, | ||
| const bool & | calc_r | ||
| ) |
Main function to calculate overlap integrals <phi|exp^{-iAr}|beta> and its derivatives (if calc_r is true).
This function integrates the overlap between a local orbital phi (at R1) and a non-local projector beta (at R0), modulated by a plane-wave-like phase factor exp^{-iAr}, where A is a vector potential.
| orb | LCAO Orbitals information |
| infoNL_ | Non-local pseudopotential information |
| nlm | Output: nlm[0] : <phi|exp^{-iAr}|beta> nlm[1, 2, 3] : <phi|r_a * exp^{-iAr}|beta>, a = x, y, z (if calc_r=true) |
| R1 | Position of atom 1 (orbital phi) |
| T1 | Type of atom 1 |
| L1 | Angular momentum of orbital phi |
| m1 | Magnetic quantum number of orbital phi |
| N1 | Radial quantum number of orbital phi |
| R0 | Position of atom 0 (projector beta) |
| T0 | Type of atom 0 |
| A | Vector potential A (or related field vector) |
| calc_r | Whether to calculate position operator matrix elements |
| void module_rt::solve_propagation | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const double | dt, | ||
| const std::complex< double > * | Stmp, | ||
| const std::complex< double > * | Htmp, | ||
| const std::complex< double > * | psi_k_laststep, | ||
| std::complex< double > * | psi_k | ||
| ) |
solve propagation equation A(t+dt) = B(t)
| [in] | pv | information of parallel |
| [in] | nband | number of bands |
| [in] | nlocal | number of orbitals |
| [in] | dt | time interval |
| [in] | Stmp | overlap matrix S(t+dt/2) |
| [in] | Htmp | H(t+dt/2) |
| [in] | psi_k_laststep | psi of last step |
| [out] | psi_k | psi of this step |
| void module_rt::upsi | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const std::complex< double > * | U_operator, | ||
| const std::complex< double > * | psi_k_laststep, | ||
| std::complex< double > * | psi_k, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
apply U_operator to the wave function of the previous step for new wave function
| [in] | pv | information of parallel |
| [in] | nband | number of bands |
| [in] | nlocal | number of orbitals |
| [in] | U_operator | operator of propagator |
| [in] | psi_k_laststep | psi of last step |
| [in] | print_matirx | print internal matrix or not |
| [out] | psi_k | psi of this step |
| void module_rt::upsi_tensor | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const ct::Tensor & | U_operator, | ||
| const ct::Tensor & | psi_k_laststep, | ||
| ct::Tensor & | psi_k, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
| void module_rt::upsi_tensor_lapack | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const ct::Tensor & | U_operator, | ||
| const ct::Tensor & | psi_k_laststep, | ||
| ct::Tensor & | psi_k, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |
| template void module_rt::upsi_tensor_lapack< base_device::DEVICE_CPU > | ( | const Parallel_Orbitals * | pv, |
| const int | nband, | ||
| const int | nlocal, | ||
| const ct::Tensor & | U_operator, | ||
| const ct::Tensor & | psi_k_laststep, | ||
| ct::Tensor & | psi_k, | ||
| std::ofstream & | ofs_running, | ||
| const int | print_matrix | ||
| ) |