ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Types | List of all members
elecstate::ElecStatePW_SDFT< T, Device > Class Template Reference

#include <elecstate_pw_sdft.h>

Inheritance diagram for elecstate::ElecStatePW_SDFT< T, Device >:
Collaboration diagram for elecstate::ElecStatePW_SDFT< T, Device >:

Public Member Functions

 ElecStatePW_SDFT (ModulePW::PW_Basis_K *wfc_basis_in, Charge *chg_in, K_Vectors *pkv_in, UnitCell *ucell_in, pseudopot_cell_vnl *ppcell_in, ModulePW::PW_Basis *rhodpw_in, ModulePW::PW_Basis *rhopw_in, ModulePW::PW_Basis_Big *bigpw_in)
 
virtual void psiToRho (const psi::Psi< T, Device > &psi) override
 interface for HSolver to calculate rho from Psi
 
- Public Member Functions inherited from elecstate::ElecStatePW< T, Device >
 ElecStatePW (ModulePW::PW_Basis_K *wfc_basis_in, Charge *chg_in, K_Vectors *pkv_in, UnitCell *ucell_in, pseudopot_cell_vnl *ppcell_in, ModulePW::PW_Basis *rhodpw_in, ModulePW::PW_Basis *rhopw_in, ModulePW::PW_Basis_Big *bigpw_in)
 
 ~ElecStatePW ()
 
virtual void cal_tau (const psi::Psi< T, Device > &psi)
 
void cal_becsum (const psi::Psi< T, Device > &psi)
 calculate becsum for uspp
 
void init_rho_data ()
 init rho_data and kin_r_data
 
void init_rho_data ()
 
- Public Member Functions inherited from elecstate::ElecState
 ElecState ()
 
 ElecState (Charge *charge_in, ModulePW::PW_Basis *rhopw_in, ModulePW::PW_Basis_Big *bigpw_in)
 
virtual ~ElecState ()
 
void init_ks (Charge *chg_in, const K_Vectors *klist_in, int nk_in, ModulePW::PW_Basis *rhopw_in, const ModulePW::PW_Basis_Big *bigpw_in)
 
virtual const double * getRho (int spin) const
 
virtual void psiToRho (const psi::Psi< std::complex< double > > &psi)
 
virtual void psiToRho (const psi::Psi< double > &psi)
 
virtual void cal_tau (const psi::Psi< std::complex< double > > &psi)
 
virtual void cal_tau (const psi::Psi< double > &psi)
 
virtual void cal_tau (const psi::Psi< std::complex< float > > &psi)
 
virtual void getNewRho ()
 
void init_nelec_spin ()
 
virtual void print_psi (const psi::Psi< double > &psi_in, const int istep=-1)
 
virtual void print_psi (const psi::Psi< std::complex< double > > &psi_in, const int istep=-1)
 
void init_scf (const int istep, const UnitCell &ucell, const Parallel_Grid &pgrid, const ModuleBase::ComplexMatrix &strucfac, const bool *numeric, ModuleSymmetry::Symmetry &symm, const void *wfcpw=nullptr)
 Init rho_core, init rho, renormalize rho, init pot.
 
void cal_bandgap ()
 calculate band gap
 
void cal_bandgap_updw ()
 calculate spin up & down band gap
 
double cal_delta_eband (const UnitCell &ucell) const
 calculate deband
 
double cal_delta_escf () const
 calculate descf
 
void cal_converged ()
 calculation if converged
 
void cal_energies (const int type)
 calculate energies
 
void set_exx (const double &Eexx)
 calculation if converged
 
void set_exx (const std::complex< double > &Eexx)
 
double get_hartree_energy ()
 
double get_etot_efield ()
 
double get_etot_gatefield ()
 
double get_solvent_model_Ael ()
 
double get_solvent_model_Acav ()
 
virtual double get_spin_constrain_energy ()
 
double get_dftu_energy ()
 
double get_local_pp_energy ()
 

Private Types

using Real = typename GetTypeReal< T >::type
 
using setmem_var_op = base_device::memory::set_memory_op< Real, Device >
 
using castmem_var_d2h_op = base_device::memory::cast_memory_op< double, Real, base_device::DEVICE_CPU, Device >
 

Additional Inherited Members

- Public Attributes inherited from elecstate::ElecStatePW< T, Device >
Realbecsum
 
Real ** rho
 
T ** rhog
 
Real ** kin_r
 
ModulePW::PW_Basis_Kbasis
 
- Public Attributes inherited from elecstate::ElecState
std::vector< double > nelec_spin
 
std::string classname = "elecstate"
 
int iter = 0
 scf iteration
 
double omega = 0.0
 volume
 
Potentialpot = nullptr
 pointer to potential
 
Chargecharge = nullptr
 pointer to charge density
 
const K_Vectorsklist = nullptr
 pointer to k points lists
 
const ModulePW::PW_Basis_Bigbigpw = nullptr
 bigpw will be removed later
 
ModuleBase::matrix vnew
 
bool vnew_exist = false
 
fenergy f_en
 energies contribute to the total free energy
 
efermi eferm
 fermi energies
 
double bandgap = 0.0
 bandgap = E_{lumo} - E_{homo}
 
double bandgap_up = 0.0
 spin up bandgap
 
double bandgap_dw = 0.0
 spin down bandgap
 
ModuleBase::matrix ekb
 band energy at each k point, each band.
 
ModuleBase::matrix wg
 occupation weight for each k-point and band
 
bool skip_weights = false
 
- Protected Member Functions inherited from elecstate::ElecStatePW< T, Device >
void updateRhoK (const psi::Psi< T, Device > &psi)
 
void parallelK ()
 sum over all pools for rho and ebands
 
void rhoBandK (const psi::Psi< T, Device > &psi)
 calcualte rho for each k
 
void add_usrho (const psi::Psi< T, Device > &psi)
 add to the charge density in reciprocal space the part which is due to the US augmentation.
 
void addusdens_g (const Real *becsum, T **rhog)
 
- Protected Attributes inherited from elecstate::ElecStatePW< T, Device >
ModulePW::PW_Basisrhopw_smooth
 
UnitCellucell
 
const pseudopot_cell_vnlppcell
 
Device * ctx
 
bool init_rho
 
Tvkb
 
Realrho_data
 
Trhog_data
 
Realkin_r_data
 
Twfcr
 
Twfcr_another_spin
 

Member Typedef Documentation

◆ castmem_var_d2h_op

template<typename T , typename Device >
using elecstate::ElecStatePW_SDFT< T, Device >::castmem_var_d2h_op = base_device::memory::cast_memory_op<double, Real, base_device::DEVICE_CPU, Device>
private

◆ Real

template<typename T , typename Device >
using elecstate::ElecStatePW_SDFT< T, Device >::Real = typename GetTypeReal<T>::type
private

◆ setmem_var_op

template<typename T , typename Device >
using elecstate::ElecStatePW_SDFT< T, Device >::setmem_var_op = base_device::memory::set_memory_op<Real, Device>
private

Constructor & Destructor Documentation

◆ ElecStatePW_SDFT()

template<typename T , typename Device >
elecstate::ElecStatePW_SDFT< T, Device >::ElecStatePW_SDFT ( ModulePW::PW_Basis_K wfc_basis_in,
Charge chg_in,
K_Vectors pkv_in,
UnitCell ucell_in,
pseudopot_cell_vnl ppcell_in,
ModulePW::PW_Basis rhodpw_in,
ModulePW::PW_Basis rhopw_in,
ModulePW::PW_Basis_Big bigpw_in 
)
inline

Member Function Documentation

◆ psiToRho()

template<typename T , typename Device >
void elecstate::ElecStatePW_SDFT< T, Device >::psiToRho ( const psi::Psi< T, Device > &  psi)
overridevirtual

interface for HSolver to calculate rho from Psi

Reimplemented from elecstate::ElecStatePW< T, Device >.

Here is the call graph for this function:

The documentation for this class was generated from the following files: