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

#include <gint_k.h>

Inheritance diagram for Gint_k:
Collaboration diagram for Gint_k:

Public Member Functions

Gint_koperator= (Gint_k &&rhs)
 move operator for the next ESolver to directly use its infomation
 
void allocate_pvdpR ()
 
void destroy_pvdpR ()
 
void transfer_pvpR (hamilt::HContainer< double > *hR, const UnitCell *ucell_in, const Grid_Driver *gd)
 transfer pvpR to this->hRGint then pass this->hRGint to Veff<OperatorLCAO>::hR
 
void transfer_pvpR (hamilt::HContainer< std::complex< double > > *hR, const UnitCell *ucell_in, const Grid_Driver *gd)
 
void cal_env_k (int ik, const std::complex< double > *psi_k, double *rho, const std::vector< ModuleBase::Vector3< double > > &kvec_c, const std::vector< ModuleBase::Vector3< double > > &kvec_d, const UnitCell &ucell)
 
void distribute_pvdpR_sparseMatrix (const int current_spin, const int dim, const double &sparse_threshold, const std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, double > > > &pvdpR_sparseMatrix, LCAO_HS_Arrays &HS_Arrays, const Parallel_Orbitals *pv)
 
void distribute_pvdpR_soc_sparseMatrix (const int dim, const double &sparse_threshold, const std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, std::complex< double > > > > &pvdpR_soc_sparseMatrix, LCAO_HS_Arrays &HS_Arrays, const Parallel_Orbitals *pv)
 
void cal_dvlocal_R_sparseMatrix (const int &current_spin, const double &sparse_threshold, LCAO_HS_Arrays &HS_Arrays, const Parallel_Orbitals *pv, const UnitCell &ucell, const Grid_Driver &gdriver)
 
- 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
 

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

◆ allocate_pvdpR()

void Gint_k::allocate_pvdpR ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cal_dvlocal_R_sparseMatrix()

void Gint_k::cal_dvlocal_R_sparseMatrix ( const int &  current_spin,
const double &  sparse_threshold,
LCAO_HS_Arrays HS_Arrays,
const Parallel_Orbitals pv,
const UnitCell ucell,
const Grid_Driver gdriver 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cal_env_k()

void Gint_k::cal_env_k ( int  ik,
const std::complex< double > *  psi_k,
double *  rho,
const std::vector< ModuleBase::Vector3< double > > &  kvec_c,
const std::vector< ModuleBase::Vector3< double > > &  kvec_d,
const UnitCell ucell 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ destroy_pvdpR()

void Gint_k::destroy_pvdpR ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ distribute_pvdpR_soc_sparseMatrix()

void Gint_k::distribute_pvdpR_soc_sparseMatrix ( const int  dim,
const double &  sparse_threshold,
const std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, std::complex< double > > > > &  pvdpR_soc_sparseMatrix,
LCAO_HS_Arrays HS_Arrays,
const Parallel_Orbitals pv 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ distribute_pvdpR_sparseMatrix()

void Gint_k::distribute_pvdpR_sparseMatrix ( const int  current_spin,
const int  dim,
const double &  sparse_threshold,
const std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, double > > > &  pvdpR_sparseMatrix,
LCAO_HS_Arrays HS_Arrays,
const Parallel_Orbitals pv 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

Gint_k & Gint_k::operator= ( Gint_k &&  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() [1/2]

void Gint_k::transfer_pvpR ( hamilt::HContainer< double > *  hR,
const UnitCell ucell_in,
const Grid_Driver gd 
)

transfer pvpR to this->hRGint then pass this->hRGint to Veff<OperatorLCAO>::hR

Here is the call graph for this function:

◆ transfer_pvpR() [2/2]

void Gint_k::transfer_pvpR ( hamilt::HContainer< std::complex< double > > *  hR,
const UnitCell ucell_in,
const Grid_Driver gd 
)
Here is the call graph for this function:

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