|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Classes | |
| class | Setup_DM |
Typedefs | |
| typedef std::tuple< int, int, int, int > | key_tuple |
Functions | |
| template<typename T > | |
| void | DeePKS_init (const UnitCell &ucell, Parallel_Orbitals &pv, const int &nks, const LCAO_Orbitals &orb, LCAO_Deepks< T > &ld, std::ofstream &ofs) |
| template void | DeePKS_init< double > (const UnitCell &ucell, Parallel_Orbitals &pv, const int &nks, const LCAO_Orbitals &orb, LCAO_Deepks< double > &ld, std::ofstream &ofs) |
| template void | DeePKS_init< std::complex< double > > (const UnitCell &ucell, Parallel_Orbitals &pv, const int &nks, const LCAO_Orbitals &orb, LCAO_Deepks< std::complex< double > > &ld, std::ofstream &ofs) |
| void | init_basis_lcao (Parallel_Orbitals &pv, const double &onsite_radius, const double &lcao_ecut, const double &lcao_dk, const double &lcao_dr, const double &lcao_rmax, UnitCell &ucell, TwoCenterBundle &two_center_bundle, LCAO_Orbitals &orb) |
| void | build_Nonlocal_mu_new (const Parallel_Orbitals &pv, ForceStressArrays &fsr, double *HlocR, const bool &calc_deri, const UnitCell &ucell, const LCAO_Orbitals &orb, const TwoCenterIntegrator &intor_orb_beta, const Grid_Driver *GridD) |
| void | set_force (const Parallel_Orbitals &pv, const int &iw1_all, const int &iw2_all, const double &vx, const double &vy, const double &vz, const char &dtype, double *dsloc_x, double *dsloc_y, double *dsloc_z, double *dhloc_fixed_x, double *dhloc_fixed_y, double *dhloc_fixed_z) |
| set the elements of force-related matrices in LCAO method | |
| void | set_stress (const Parallel_Orbitals &pv, const int &iw1_all, const int &iw2_all, const double &vx, const double &vy, const double &vz, const char &dtype, const ModuleBase::Vector3< double > &dtau, double *dsloc_11, double *dsloc_12, double *dsloc_13, double *dsloc_22, double *dsloc_23, double *dsloc_33, double *dhloc_fixed_11, double *dhloc_fixed_12, double *dhloc_fixed_13, double *dhloc_fixed_22, double *dhloc_fixed_23, double *dhloc_fixed_33) |
| set the elements of stress-related matrices in LCAO method | |
| void | single_overlap (const LCAO_Orbitals &orb, const TwoCenterBundle &two_center_bundle, const Parallel_Orbitals &pv, const UnitCell &ucell, const int nspin, const bool cal_stress, const int iw1_all, const int iw2_all, const int m1, const int m2, const char &dtype, const int T1, const int L1, const int N1, const int T2, const int L2, const int N2, const ModuleBase::Vector3< double > &dtau, const ModuleBase::Vector3< double > &tau1, const ModuleBase::Vector3< double > &tau2, const int npol, const int jj, const int jj0, const int kk, const int kk0, int &nnr, int &total_nnr, double *olm, double *HSloc) |
| set each element without derivatives | |
| void | single_derivative (ForceStressArrays &fsr, const LCAO_Orbitals &orb, const TwoCenterBundle &two_center_bundle, const Parallel_Orbitals &pv, const UnitCell &ucell, const int nspin, const bool cal_stress, const int iw1_all, const int iw2_all, const int m1, const int m2, const char &dtype, const int T1, const int L1, const int N1, const int T2, const int L2, const int N2, const ModuleBase::Vector3< double > &dtau, const ModuleBase::Vector3< double > &tau1, const ModuleBase::Vector3< double > &tau2, const int npol, const int jj, const int jj0, const int kk, const int kk0, int &nnr, int &total_nnr, double *olm) |
| set each element of T matrices | |
| void | build_ST_new (ForceStressArrays &fsr, const char &dtype, const bool &cal_deri, const bool &cal_stress, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const TwoCenterBundle &two_center_bundle, const Grid_Driver *GridD, double *SHlocR, bool cal_syns=false, double dmax=0.0) |
| set the elements of S and T matrices | |
| void | zeros_HSR (const char &mtype, LCAO_HS_Arrays &HS_arrays) |
| set zeros for HSR matrices | |
| template<typename T > | |
| void | set_mat2d (const int &global_ir, const int &global_ic, const T &v, const Parallel_Orbitals &pv, T *mat) |
| template<typename TK > | |
| void | set_psi_occ_dm_chg (const K_Vectors &kv, psi::Psi< TK > *&psi, const Parallel_Orbitals &pv, elecstate::ElecState *pelec, LCAO_domain::Setup_DM< TK > &dmat, Charge &chr, const Input_para &inp) |
| set up wave functions, occupation numbers, density matrix and charge density | |
| template<typename TK > | |
| void | set_pot (UnitCell &ucell, K_Vectors &kv, Structure_Factor &sf, const ModulePW::PW_Basis &pw_rho, const ModulePW::PW_Basis &pw_rhod, elecstate::ElecState *pelec, const LCAO_Orbitals &orb, Parallel_Orbitals &pv, pseudopot_cell_vl &locpp, Plus_U &dftu, surchem &solvent, Exx_NAO< TK > &exx_nao, Setup_DeePKS< TK > &deepks, const Input_para &inp) |
| set up potentials, including local pseudopotentials, +U potential, solvent potential, exx potential and deepks potential | |
| template<typename TK > | |
| void | init_dm_from_file (const std::string &readin_dir, const int nspin, LCAO_domain::Setup_DM< TK > &dmat, const UnitCell &ucell, const Parallel_Orbitals *pv) |
| read in DMR from file, and save it into dmat | |
| template<typename TK > | |
| void | init_chg_dm (const std::string &readin_dir, const int nspin, LCAO_domain::Setup_DM< TK > &dmat, const UnitCell &ucell, const Parallel_Orbitals *pv, Charge *chr) |
| initialize charge density from density matrix file (init_chg=dm) This function reads DMR from file and converts it to charge density | |
| template<typename TK > | |
| void | init_hr_from_file (const std::string hrfile, hamilt::HContainer< TK > *hmat, const UnitCell &ucell, const Parallel_Orbitals *pv) |
| read in HR from file, and save it into hmat | |
| template<typename TK , typename TR > | |
| void | init_chg_hr (const std::string &readin_dir, const int nspin, hamilt::Hamilt< TK > *p_hamilt, const UnitCell &ucell, const Parallel_Orbitals *pv, psi::Psi< TK > &psi, elecstate::ElecState *pelec, elecstate::DensityMatrix< TK, double > &dm, Charge &chr, const std::string &ks_solver) |
| initialize charge density from Hamiltonian matrix file (init_chg=hr) Reads HR from file(s), diagonalizes to get wavefunctions, then computes charge density. For nspin=2, reads both hrs1_nao.csr (spin-up) and hrs2_nao.csr (spin-down) into the two halves of HamiltLCAO::hRS2. | |
| template void | set_mat2d< double > (const int &global_ir, const int &global_ic, const double &v, const Parallel_Orbitals &pv, double *HSloc) |
| template void | set_mat2d< std::complex< double > > (const int &global_ir, const int &global_ic, const std::complex< double > &v, const Parallel_Orbitals &pv, std::complex< double > *HSloc) |
| void | dm2rho (std::vector< hamilt::HContainer< double > * > &dmr, const int nspin, Charge *chr, bool skip_normalize=false) |
| void | dm2tau (std::vector< hamilt::HContainer< double > * > &dmr, const int nspin, Charge *chr) |
| typedef std::tuple<int, int, int, int> LCAO_domain::key_tuple |
| void LCAO_domain::build_Nonlocal_mu_new | ( | const Parallel_Orbitals & | pv, |
| ForceStressArrays & | fsr, | ||
| double * | HlocR, | ||
| const bool & | calc_deri, | ||
| const UnitCell & | ucell, | ||
| const LCAO_Orbitals & | orb, | ||
| const TwoCenterIntegrator & | intor_orb_beta, | ||
| const Grid_Driver * | GridD | ||
| ) |
calc_deri
calc_deri
| void LCAO_domain::build_ST_new | ( | ForceStressArrays & | fsr, |
| const char & | dtype, | ||
| const bool & | cal_deri, | ||
| const bool & | cal_stress, | ||
| const UnitCell & | ucell, | ||
| const LCAO_Orbitals & | orb, | ||
| const Parallel_Orbitals & | pv, | ||
| const TwoCenterBundle & | two_center_bundle, | ||
| const Grid_Driver * | GridD, | ||
| double * | SHlocR, | ||
| bool | cal_syns = false, |
||
| double | dmax = 0.0 |
||
| ) |
set the elements of S and T matrices
| void LCAO_domain::DeePKS_init | ( | const UnitCell & | ucell, |
| Parallel_Orbitals & | pv, | ||
| const int & | nks, | ||
| const LCAO_Orbitals & | orb, | ||
| LCAO_Deepks< T > & | ld, | ||
| std::ofstream & | ofs | ||
| ) |
| template void LCAO_domain::DeePKS_init< double > | ( | const UnitCell & | ucell, |
| Parallel_Orbitals & | pv, | ||
| const int & | nks, | ||
| const LCAO_Orbitals & | orb, | ||
| LCAO_Deepks< double > & | ld, | ||
| std::ofstream & | ofs | ||
| ) |
| template void LCAO_domain::DeePKS_init< std::complex< double > > | ( | const UnitCell & | ucell, |
| Parallel_Orbitals & | pv, | ||
| const int & | nks, | ||
| const LCAO_Orbitals & | orb, | ||
| LCAO_Deepks< std::complex< double > > & | ld, | ||
| std::ofstream & | ofs | ||
| ) |
| void LCAO_domain::dm2rho | ( | std::vector< hamilt::HContainer< double > * > & | dmr, |
| const int | nspin, | ||
| Charge * | chr, | ||
| bool | skip_normalize = false |
||
| ) |
| void LCAO_domain::dm2tau | ( | std::vector< hamilt::HContainer< double > * > & | dmr, |
| const int | nspin, | ||
| Charge * | chr | ||
| ) |
| void LCAO_domain::init_basis_lcao | ( | Parallel_Orbitals & | pv, |
| const double & | onsite_radius, | ||
| const double & | lcao_ecut, | ||
| const double & | lcao_dk, | ||
| const double & | lcao_dr, | ||
| const double & | lcao_rmax, | ||
| UnitCell & | ucell, | ||
| TwoCenterBundle & | two_center_bundle, | ||
| LCAO_Orbitals & | orb | ||
| ) |
| void LCAO_domain::init_chg_dm | ( | const std::string & | readin_dir, |
| const int | nspin, | ||
| LCAO_domain::Setup_DM< TK > & | dmat, | ||
| const UnitCell & | ucell, | ||
| const Parallel_Orbitals * | pv, | ||
| Charge * | chr | ||
| ) |
initialize charge density from density matrix file (init_chg=dm) This function reads DMR from file and converts it to charge density
| readin_dir | directory containing dmrs*_nao.csr files |
| nspin | number of spin components (1 or 2) |
| dmat | density matrix object |
| ucell | unit cell |
| pv | parallel orbitals |
| chr | charge density object |
| void LCAO_domain::init_chg_hr | ( | const std::string & | readin_dir, |
| const int | nspin, | ||
| hamilt::Hamilt< TK > * | p_hamilt, | ||
| const UnitCell & | ucell, | ||
| const Parallel_Orbitals * | pv, | ||
| psi::Psi< TK > & | psi, | ||
| elecstate::ElecState * | pelec, | ||
| elecstate::DensityMatrix< TK, double > & | dm, | ||
| Charge & | chr, | ||
| const std::string & | ks_solver | ||
| ) |
initialize charge density from Hamiltonian matrix file (init_chg=hr) Reads HR from file(s), diagonalizes to get wavefunctions, then computes charge density. For nspin=2, reads both hrs1_nao.csr (spin-up) and hrs2_nao.csr (spin-down) into the two halves of HamiltLCAO::hRS2.
| TK | k-space type (double or complex<double>) |
| TR | real-space type (double) |
| readin_dir | directory containing hrs*_nao.csr files |
| nspin | number of spin components |
| p_hamilt | pointer to Hamilt base class (will be dynamic_cast to HamiltLCAO) |
| ucell | unit cell |
| pv | parallel orbitals |
| psi | wave function object |
| pelec | electronic state |
| dm | density matrix |
| chr | charge density |
| ks_solver | solver method name |
| void LCAO_domain::init_dm_from_file | ( | const std::string & | readin_dir, |
| const int | nspin, | ||
| LCAO_domain::Setup_DM< TK > & | dmat, | ||
| const UnitCell & | ucell, | ||
| const Parallel_Orbitals * | pv | ||
| ) |
read in DMR from file, and save it into dmat
| readin_dir | directory containing dmrs*_nao.csr files |
| nspin | number of spin components (1 or 2) |
| void LCAO_domain::init_hr_from_file | ( | const std::string | hrfile, |
| hamilt::HContainer< TK > * | hmat, | ||
| const UnitCell & | ucell, | ||
| const Parallel_Orbitals * | pv | ||
| ) |
read in HR from file, and save it into hmat
| void LCAO_domain::set_force | ( | const Parallel_Orbitals & | pv, |
| const int & | iw1_all, | ||
| const int & | iw2_all, | ||
| const double & | vx, | ||
| const double & | vy, | ||
| const double & | vz, | ||
| const char & | dtype, | ||
| double * | dsloc_x, | ||
| double * | dsloc_y, | ||
| double * | dsloc_z, | ||
| double * | dhloc_fixed_x, | ||
| double * | dhloc_fixed_y, | ||
| double * | dhloc_fixed_z | ||
| ) |
set the elements of force-related matrices in LCAO method
| void LCAO_domain::set_mat2d | ( | const int & | global_ir, |
| const int & | global_ic, | ||
| const T & | v, | ||
| const Parallel_Orbitals & | pv, | ||
| T * | mat | ||
| ) |
| template void LCAO_domain::set_mat2d< double > | ( | const int & | global_ir, |
| const int & | global_ic, | ||
| const double & | v, | ||
| const Parallel_Orbitals & | pv, | ||
| double * | HSloc | ||
| ) |
| template void LCAO_domain::set_mat2d< std::complex< double > > | ( | const int & | global_ir, |
| const int & | global_ic, | ||
| const std::complex< double > & | v, | ||
| const Parallel_Orbitals & | pv, | ||
| std::complex< double > * | HSloc | ||
| ) |
| void LCAO_domain::set_pot | ( | UnitCell & | ucell, |
| K_Vectors & | kv, | ||
| Structure_Factor & | sf, | ||
| const ModulePW::PW_Basis & | pw_rho, | ||
| const ModulePW::PW_Basis & | pw_rhod, | ||
| elecstate::ElecState * | pelec, | ||
| const LCAO_Orbitals & | orb, | ||
| Parallel_Orbitals & | pv, | ||
| pseudopot_cell_vl & | locpp, | ||
| Plus_U & | dftu, | ||
| surchem & | solvent, | ||
| Exx_NAO< TK > & | exx_nao, | ||
| Setup_DeePKS< TK > & | deepks, | ||
| const Input_para & | inp | ||
| ) |
set up potentials, including local pseudopotentials, +U potential, solvent potential, exx potential and deepks potential
1) init local pseudopotentials
2) init potentials
3) initialize DFT+U
4) init exact exchange calculations
5) init deepks
| void LCAO_domain::set_psi_occ_dm_chg | ( | const K_Vectors & | kv, |
| psi::Psi< TK > *& | psi, | ||
| const Parallel_Orbitals & | pv, | ||
| elecstate::ElecState * | pelec, | ||
| LCAO_domain::Setup_DM< TK > & | dmat, | ||
| Charge & | chr, | ||
| const Input_para & | inp | ||
| ) |
set up wave functions, occupation numbers, density matrix and charge density
1) init electronic wave function psi
2) read psi from file
3) set occupations, tddft does not need to set occupations in the first scf
4) init DMK, but DMR is constructed in before_scf()
| void LCAO_domain::set_stress | ( | const Parallel_Orbitals & | pv, |
| const int & | iw1_all, | ||
| const int & | iw2_all, | ||
| const double & | vx, | ||
| const double & | vy, | ||
| const double & | vz, | ||
| const char & | dtype, | ||
| const ModuleBase::Vector3< double > & | dtau, | ||
| double * | dsloc_11, | ||
| double * | dsloc_12, | ||
| double * | dsloc_13, | ||
| double * | dsloc_22, | ||
| double * | dsloc_23, | ||
| double * | dsloc_33, | ||
| double * | dhloc_fixed_11, | ||
| double * | dhloc_fixed_12, | ||
| double * | dhloc_fixed_13, | ||
| double * | dhloc_fixed_22, | ||
| double * | dhloc_fixed_23, | ||
| double * | dhloc_fixed_33 | ||
| ) |
set the elements of stress-related matrices in LCAO method
| void LCAO_domain::single_derivative | ( | ForceStressArrays & | fsr, |
| const LCAO_Orbitals & | orb, | ||
| const TwoCenterBundle & | two_center_bundle, | ||
| const Parallel_Orbitals & | pv, | ||
| const UnitCell & | ucell, | ||
| const int | nspin, | ||
| const bool | cal_stress, | ||
| const int | iw1_all, | ||
| const int | iw2_all, | ||
| const int | m1, | ||
| const int | m2, | ||
| const char & | dtype, | ||
| const int | T1, | ||
| const int | L1, | ||
| const int | N1, | ||
| const int | T2, | ||
| const int | L2, | ||
| const int | N2, | ||
| const ModuleBase::Vector3< double > & | dtau, | ||
| const ModuleBase::Vector3< double > & | tau1, | ||
| const ModuleBase::Vector3< double > & | tau2, | ||
| const int | npol, | ||
| const int | jj, | ||
| const int | jj0, | ||
| const int | kk, | ||
| const int | kk0, | ||
| int & | nnr, | ||
| int & | total_nnr, | ||
| double * | olm | ||
| ) |
set each element of T matrices
| void LCAO_domain::single_overlap | ( | const LCAO_Orbitals & | orb, |
| const TwoCenterBundle & | two_center_bundle, | ||
| const Parallel_Orbitals & | pv, | ||
| const UnitCell & | ucell, | ||
| const int | nspin, | ||
| const bool | cal_stress, | ||
| const int | iw1_all, | ||
| const int | iw2_all, | ||
| const int | m1, | ||
| const int | m2, | ||
| const char & | dtype, | ||
| const int | T1, | ||
| const int | L1, | ||
| const int | N1, | ||
| const int | T2, | ||
| const int | L2, | ||
| const int | N2, | ||
| const ModuleBase::Vector3< double > & | dtau, | ||
| const ModuleBase::Vector3< double > & | tau1, | ||
| const ModuleBase::Vector3< double > & | tau2, | ||
| const int | npol, | ||
| const int | jj, | ||
| const int | jj0, | ||
| const int | kk, | ||
| const int | kk0, | ||
| int & | nnr, | ||
| int & | total_nnr, | ||
| double * | olm, | ||
| double * | HSloc | ||
| ) |
set each element without derivatives
| void LCAO_domain::zeros_HSR | ( | const char & | mtype, |
| LCAO_HS_Arrays & | HS_arrays | ||
| ) |
set zeros for HSR matrices