ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
rdmft::Veff_rdmft< TK, TR > Class Template Reference

this part of the code is copying from class Veff and do some modifications. More...

#include <rdmft_tools.h>

Inheritance diagram for rdmft::Veff_rdmft< TK, TR >:
Collaboration diagram for rdmft::Veff_rdmft< TK, TR >:

Public Member Functions

 Veff_rdmft (Gint_k *GK_in, hamilt::HS_Matrix_K< TK > *hsk_in, const std::vector< ModuleBase::Vector3< double > > &kvec_d_in, elecstate::Potential *pot_in, hamilt::HContainer< TR > *hR_in, const UnitCell *ucell_in, const std::vector< double > &orb_cutoff, const Grid_Driver *GridD_in, const int &nspin, const Charge *charge_in, const ModulePW::PW_Basis *rho_basis_in, const ModuleBase::matrix *vloc_in, const ModuleBase::ComplexMatrix *sf_in, const std::string potential_in, double *etxc_in=nullptr, double *vtxc_in=nullptr)
 Construct a new Veff object for multi-kpoint calculation.
 
 Veff_rdmft (Gint_Gamma *GG_in, hamilt::HS_Matrix_K< TK > *hsk_in, const std::vector< ModuleBase::Vector3< double > > &kvec_d_in, elecstate::Potential *pot_in, hamilt::HContainer< TR > *hR_in, const UnitCell *ucell_in, const std::vector< double > &orb_cutoff, const Grid_Driver *GridD_in, const int &nspin, const Charge *charge_in, const ModulePW::PW_Basis *rho_basis_in, const ModuleBase::matrix *vloc_in, const ModuleBase::ComplexMatrix *sf_in, const std::string potential_in, double *etxc_in=nullptr, double *vtxc_in=nullptr)
 
 ~Veff_rdmft ()
 
virtual void contributeHR () override
 contributeHR() is used to calculate the HR matrix <phi_{\mu, 0}|V_{eff}|phi_{\nu, R}> the contribution of V_{eff} is calculated by the contribution of V_{H} and V_{XC} and V_{local pseudopotential} and so on. grid integration is used to calculate the contribution Hamiltonian of effective potential
 
void contributeHR ()
 
void contributeHR ()
 
void contributeHR ()
 
- Public Member Functions inherited from hamilt::OperatorLCAO< TK, TR >
 OperatorLCAO (HS_Matrix_K< TK > *hsk_in, const std::vector< ModuleBase::Vector3< double > > &kvec_d_in, HContainer< TR > *hR_in)
 H(R) matrix, R is the Bravis lattice vector.
 
virtual ~OperatorLCAO ()
 
virtual void init (const int ik_in) override
 
void refresh_h ()
 
void matrixHk (MatrixBlock< TK > &hk_in, MatrixBlock< TK > &sk_in)
 
virtual void contributeHk (int ik)
 
virtual void set_HR_fixed (void *)
 set_HR_fixed() is used for pass HR_fixed matrix to the next node in sub-chain table not used in base class, only be override in fixed Hamiltonian Operators (e.g. Ekinetic and Nonlocal)
 
void set_hr_done (bool hr_done_in)
 reset the status of 'hr_done' (if H(R) is calculated)
 
void set_current_spin (const int current_spin_in)
 set current spin index
 
void contributeHk (int ik)
 
- Public Member Functions inherited from hamilt::Operator< TK >
 Operator ()
 
virtual ~Operator ()
 
virtual hpsi_info hPsi (hpsi_info &input) const
 
virtual void add (Operator *next)
 
virtual int get_ik () const
 
virtual void act (const int nbands, const int nbasis, const int npol, const TK *tmpsi_in, TK *tmhpsi, const int ngk_ik=0, const bool is_first_node=false) const
 
virtual void act (const psi::Psi< TK, base_device::DEVICE_CPU > &psi_in, psi::Psi< TK, base_device::DEVICE_CPU > &psi_out, const int nbands) const
 
int get_act_type () const
 
calculation_type get_cal_type () const
 

Public Attributes

const UnitCellucell
 
const Grid_Drivergd
 
- Public Attributes inherited from hamilt::OperatorLCAO< TK, TR >
HS_Matrix_K< TK > * hsk = nullptr
 
const std::vector< ModuleBase::Vector3< double > > & kvec_d
 
- Public Attributes inherited from hamilt::Operator< TK >
Operatornext_op
 interface type 3: return a Psi-type HPsi
 

Private Member Functions

void initialize_HR (const UnitCell *ucell_in, const Grid_Driver *GridD_in)
 initialize HR, search the nearest neighbor atoms HContainer is used to store the electronic kinetic matrix with specific <I,J,R> atom-pairs the size of HR will be fixed after initialization
 

Private Attributes

Gint_kGK = nullptr
 
Gint_GammaGG = nullptr
 
std::vector< double > orb_cutoff_
 
elecstate::Potentialpot = nullptr
 
int nspin = 1
 
int current_spin = 0
 
const Chargecharge_
 
std::string potential_
 
const ModulePW::PW_Basisrho_basis_
 
const ModuleBase::matrixvloc_
 
const ModuleBase::ComplexMatrixsf_
 
double * etxc
 
double * vtxc
 

Additional Inherited Members

- Public Types inherited from hamilt::Operator< TK >
typedef std::tuple< const psi::Psi< TK, base_device::DEVICE_CPU > *, const psi::Range, TK * > hpsi_info
 
- Protected Types inherited from hamilt::Operator< TK >
using set_memory_op = base_device::memory::set_memory_op< TK, base_device::DEVICE_CPU >
 
- Protected Member Functions inherited from hamilt::Operator< TK >
TK * get_hpsi (const hpsi_info &info) const
 
- Protected Attributes inherited from hamilt::OperatorLCAO< TK, TR >
bool new_e_iteration = true
 
hamilt::HContainer< TR > * hR = nullptr
 Real-space Hamiltonian pointer.
 
int current_spin = 0
 current spin index
 
bool hr_done = false
 if H(R) is calculated
 
- Protected Attributes inherited from hamilt::Operator< TK >
int ik
 
int act_type
 determine which act() interface would be called in hPsi()
 
bool in_place
 
enum calculation_type cal_type
 
Operatornext_sub_op
 
bool is_first_node
 
psi::Psi< TK, base_device::DEVICE_CPU > * hpsi
 
base_device::DEVICE_CPU * ctx
 

Detailed Description

template<typename TK, typename TR>
class rdmft::Veff_rdmft< TK, TR >

this part of the code is copying from class Veff and do some modifications.

Constructor & Destructor Documentation

◆ Veff_rdmft() [1/2]

template<typename TK , typename TR >
rdmft::Veff_rdmft< TK, TR >::Veff_rdmft ( Gint_k GK_in,
hamilt::HS_Matrix_K< TK > *  hsk_in,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d_in,
elecstate::Potential pot_in,
hamilt::HContainer< TR > *  hR_in,
const UnitCell ucell_in,
const std::vector< double > &  orb_cutoff,
const Grid_Driver GridD_in,
const int &  nspin,
const Charge charge_in,
const ModulePW::PW_Basis rho_basis_in,
const ModuleBase::matrix vloc_in,
const ModuleBase::ComplexMatrix sf_in,
const std::string  potential_in,
double *  etxc_in = nullptr,
double *  vtxc_in = nullptr 
)
inline

Construct a new Veff object for multi-kpoint calculation.

Parameters
GK_inthe pointer of Gint_k object, used for grid integration
Here is the call graph for this function:

◆ Veff_rdmft() [2/2]

template<typename TK , typename TR >
rdmft::Veff_rdmft< TK, TR >::Veff_rdmft ( Gint_Gamma GG_in,
hamilt::HS_Matrix_K< TK > *  hsk_in,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d_in,
elecstate::Potential pot_in,
hamilt::HContainer< TR > *  hR_in,
const UnitCell ucell_in,
const std::vector< double > &  orb_cutoff,
const Grid_Driver GridD_in,
const int &  nspin,
const Charge charge_in,
const ModulePW::PW_Basis rho_basis_in,
const ModuleBase::matrix vloc_in,
const ModuleBase::ComplexMatrix sf_in,
const std::string  potential_in,
double *  etxc_in = nullptr,
double *  vtxc_in = nullptr 
)
inline
Here is the call graph for this function:

◆ ~Veff_rdmft()

template<typename TK , typename TR >
rdmft::Veff_rdmft< TK, TR >::~Veff_rdmft ( )
inline

Member Function Documentation

◆ contributeHR() [1/4]

void rdmft::Veff_rdmft< std::complex< double >, double >::contributeHR ( )
virtual

Reimplemented from hamilt::OperatorLCAO< TK, TR >.

Here is the call graph for this function:

◆ contributeHR() [2/4]

void rdmft::Veff_rdmft< std::complex< double >, std::complex< double > >::contributeHR ( )
virtual

Reimplemented from hamilt::OperatorLCAO< TK, TR >.

◆ contributeHR() [3/4]

void rdmft::Veff_rdmft< double, double >::contributeHR ( )
virtual

Reimplemented from hamilt::OperatorLCAO< TK, TR >.

Here is the call graph for this function:

◆ contributeHR() [4/4]

template<typename TK , typename TR >
virtual void rdmft::Veff_rdmft< TK, TR >::contributeHR ( )
overridevirtual

contributeHR() is used to calculate the HR matrix <phi_{\mu, 0}|V_{eff}|phi_{\nu, R}> the contribution of V_{eff} is calculated by the contribution of V_{H} and V_{XC} and V_{local pseudopotential} and so on. grid integration is used to calculate the contribution Hamiltonian of effective potential

Reimplemented from hamilt::OperatorLCAO< TK, TR >.

◆ initialize_HR()

template<typename TK , typename TR >
void rdmft::Veff_rdmft< TK, TR >::initialize_HR ( const UnitCell ucell_in,
const Grid_Driver GridD_in 
)
private

initialize HR, search the nearest neighbor atoms HContainer is used to store the electronic kinetic matrix with specific <I,J,R> atom-pairs the size of HR will be fixed after initialization

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ charge_

template<typename TK , typename TR >
const Charge* rdmft::Veff_rdmft< TK, TR >::charge_
private

◆ current_spin

template<typename TK , typename TR >
int rdmft::Veff_rdmft< TK, TR >::current_spin = 0
private

◆ etxc

template<typename TK , typename TR >
double* rdmft::Veff_rdmft< TK, TR >::etxc
private

◆ gd

template<typename TK , typename TR >
const Grid_Driver* rdmft::Veff_rdmft< TK, TR >::gd

◆ GG

template<typename TK , typename TR >
Gint_Gamma* rdmft::Veff_rdmft< TK, TR >::GG = nullptr
private

◆ GK

template<typename TK , typename TR >
Gint_k* rdmft::Veff_rdmft< TK, TR >::GK = nullptr
private

◆ nspin

template<typename TK , typename TR >
int rdmft::Veff_rdmft< TK, TR >::nspin = 1
private

◆ orb_cutoff_

template<typename TK , typename TR >
std::vector<double> rdmft::Veff_rdmft< TK, TR >::orb_cutoff_
private

◆ pot

template<typename TK , typename TR >
elecstate::Potential* rdmft::Veff_rdmft< TK, TR >::pot = nullptr
private

◆ potential_

template<typename TK , typename TR >
std::string rdmft::Veff_rdmft< TK, TR >::potential_
private

◆ rho_basis_

template<typename TK , typename TR >
const ModulePW::PW_Basis* rdmft::Veff_rdmft< TK, TR >::rho_basis_
private

◆ sf_

template<typename TK , typename TR >
const ModuleBase::ComplexMatrix* rdmft::Veff_rdmft< TK, TR >::sf_
private

◆ ucell

template<typename TK , typename TR >
const UnitCell* rdmft::Veff_rdmft< TK, TR >::ucell

◆ vloc_

template<typename TK , typename TR >
const ModuleBase::matrix* rdmft::Veff_rdmft< TK, TR >::vloc_
private

◆ vtxc

template<typename TK , typename TR >
double* rdmft::Veff_rdmft< TK, TR >::vtxc
private

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