ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
Gint_Gamma Class Reference

#include <gint_gamma.h>

Inheritance diagram for Gint_Gamma:
Collaboration diagram for Gint_Gamma:

Public Member Functions

Gint_Gammaoperator= (Gint_Gamma &&rhs)
 move operator for the next ESolver to directly use its infomation
 
void cal_vlocal (Gint_inout *inout, const bool new_e_iteration)
 
void cal_env (const double *wfc, double *rho, const UnitCell &ucell)
 
void transfer_pvpR (hamilt::HContainer< double > *hR, const UnitCell *ucell)
 transfer this->hRGint to Veff::hR
 
- Public Member Functions inherited from Gint
 ~Gint ()
 
Gintoperator= (Gint &&rhs)
 move operator for the next ESolver to directly use its infomation
 
hamilt::HContainer< double > * get_hRGint () const
 
std::vector< hamilt::HContainer< double > * > get_DMRGint () const
 
int get_ncxyz () const
 
void cal_gint (Gint_inout *inout)
 the unified interface to grid integration
 
void prep_grid (const Grid_Technique &gt, const int &nbx_in, const int &nby_in, const int &nbz_in, const int &nbz_start_in, const int &ncxyz_in, const int &bx_in, const int &by_in, const int &bz_in, const int &bxyz_in, const int &nbxx_in, const int &ny_in, const int &nplane_in, const int &startz_current_in, const UnitCell *ucell_in, const LCAO_Orbitals *orb_in)
 preparing FFT grid
 
void initialize_pvpR (const UnitCell &unitcell, const Grid_Driver *gd, const int &nspin)
 calculate the neighbor atoms of each atom in this processor size of BaseMatrix with be the non-parallel version
 
void reset_DMRGint (const int &nspin)
 resize DMRGint to nspin and reallocate the memory
 
void transfer_DM2DtoGrid (std::vector< hamilt::HContainer< double > * > DM2D)
 transfer DMR (2D para) to DMR (Grid para) in elecstate_lcao.cpp
 

Private Attributes

double *** DM = nullptr
 pointer to density matrix
 

Additional Inherited Members

- Public Types inherited from Gint
using T_psir_func = std::function< const ModuleBase::Array_Pool< double > &(const ModuleBase::Array_Pool< double > &psir_ylm, const Grid_Technique &gt, const int grid_index, const int is, const std::vector< int > &block_iw, const std::vector< int > &block_size, const std::vector< int > &block_index, const ModuleBase::Array_Pool< bool > &cal_flag)>
 
- Public Attributes inherited from Gint
const Grid_Techniquegridt = nullptr
 
const UnitCellucell
 
T_psir_func psir_func_1 = nullptr
 
T_psir_func psir_func_2 = nullptr
 
- Protected Member Functions inherited from Gint
void gpu_vlocal_interface (Gint_inout *inout)
 in cal_gint_gpu.cpp
 
void gpu_rho_interface (Gint_inout *inout)
 
void gpu_force_interface (Gint_inout *inout)
 
void gint_kernel_vlocal (Gint_inout *inout)
 in cal_gint_cpu.cpp
 
void gint_kernel_dvlocal (Gint_inout *inout)
 calculate H_mu_nu(local)=<phi_0|vlocal|dphi_R>
 
void gint_kernel_vlocal_meta (Gint_inout *inout)
 calculate vlocal in meta-GGA functionals
 
void gint_kernel_rho (Gint_inout *inout)
 calculate charge density rho(r)=\int D_munu \phi_mu \phi_nu
 
void gint_kernel_tau (Gint_inout *inout)
 used in meta-GGA functional
 
void gint_kernel_force (Gint_inout *inout)
 compute forces
 
void gint_kernel_force_meta (Gint_inout *inout)
 compute forces related to meta-GGA functionals
 
void cal_meshball_vlocal (const int na_grid, const int LD_pool, const int *const block_size, const int *const block_index, const int grid_index, const bool *const *const cal_flag, const double *const *const psir_ylm, const double *const *const psir_vlbr3, hamilt::HContainer< double > *hR)
 
void gint_kernel_force (const int na_grid, const int grid_index, const double delta_r, double *vldr3, const int is, const bool isforce, const bool isstress, ModuleBase::matrix *fvl_dphi, ModuleBase::matrix *svl_dphi, const UnitCell &ucell)
 
void gint_kernel_force_meta (const int na_grid, const int grid_index, const double delta_r, double *vldr3, double *vkdr3, const int is, const bool isforce, const bool isstress, ModuleBase::matrix *fvl_dphi, ModuleBase::matrix *svl_dphi, const UnitCell &ucell)
 
void cal_meshball_force (const int grid_index, const int na_grid, const int *const block_size, const int *const block_index, const double *const *const psir_vlbr3_DMR, const double *const *const dpsir_x, const double *const *const dpsir_y, const double *const *const dpsir_z, ModuleBase::matrix *force)
 
void cal_meshball_stress (const int na_grid, const int *const block_index, const double *const psir_vlbr3_DMR, const double *const dpsirr, ModuleBase::matrix *stress)
 
void gint_kernel_rho (const int na_grid, const int grid_index, const double delta_r, int *vindex, const int LD_pool, const UnitCell &ucell, Gint_inout *inout)
 
void cal_meshball_rho (const int na_grid, const int *const block_index, const int *const vindex, const double *const *const psir_ylm, const double *const *const psir_DMR, double *const rho)
 Use grid integrals to compute charge density in a meshball.
 
void gint_kernel_tau (const int na_grid, const int grid_index, const double delta_r, int *vindex, const int LD_pool, Gint_inout *inout, const UnitCell &ucell)
 Use grid integrals to compute kinetic energy density tau.
 
void cal_meshball_tau (const int na_grid, int *block_index, int *vindex, double **dpsix, double **dpsiy, double **dpsiz, double **dpsix_dm, double **dpsiy_dm, double **dpsiz_dm, double *rho)
 Use grid integrals to compute kinetic energy density tau.
 
- Protected Attributes inherited from Gint
int nbx
 variables related to FFT grid
 
int nby
 
int nbz
 
int ncxyz
 
int nbz_start
 
int bx
 
int by
 
int bz
 
int bxyz
 
int nbxx
 
int ny
 
int nplane
 
int startz_current
 
hamilt::HContainer< double > * hRGint = nullptr
 
std::vector< hamilt::HContainer< double > * > hRGint_tmp
 size of vec is 4, only used when nspin = 4
 
hamilt::HContainer< std::complex< double > > * hRGintCd = nullptr
 stores Hamiltonian in sparse format
 
std::vector< hamilt::HContainer< double > * > DMRGint
 stores DMR in sparse format
 
hamilt::HContainer< double > * DMRGint_full = nullptr
 tmp tools used in transfer_DM2DtoGrid
 
std::vector< hamilt::HContainer< double > > pvdpRx_reduced
 
std::vector< hamilt::HContainer< double > > pvdpRy_reduced
 
std::vector< hamilt::HContainer< double > > pvdpRz_reduced
 

Member Function Documentation

◆ cal_env()

void Gint_Gamma::cal_env ( const double *  wfc,
double *  rho,
const UnitCell ucell 
)

in gint_gamma_env.cpp calcualte the electronic wave functions via grid integral

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

◆ cal_vlocal()

void Gint_Gamma::cal_vlocal ( Gint_inout inout,
const bool  new_e_iteration 
)

in gint_gamma_vl.cpp there is an additional step in calculating vlocal for gamma point namely the redistribution of Hamiltonian from grid to 2D block format hence we have an additional layer outside the unified interface

Here is the call graph for this function:

◆ operator=()

Gint_Gamma & Gint_Gamma::operator= ( Gint_Gamma &&  rhs)

move operator for the next ESolver to directly use its infomation

Parameters
rhs
Returns
*this
Here is the call graph for this function:

◆ transfer_pvpR()

void Gint_Gamma::transfer_pvpR ( hamilt::HContainer< double > *  hR,
const UnitCell ucell 
)

transfer this->hRGint to Veff::hR

Here is the call graph for this function:

Member Data Documentation

◆ DM

double*** Gint_Gamma::DM = nullptr
private

pointer to density matrix


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