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

#include <gint_atom.h>

Collaboration diagram for ModuleGint::GintAtom:

Public Member Functions

 GintAtom (const Atom *atom, int it, int ia, int iat, Vec3i biggrid_idx, Vec3i unitcell_idx, Vec3d tau_in_biggrid, const Numerical_Orbital *orb, const UnitCell *ucell)
 
const Atomget_atom () const
 
int get_ia () const
 
int get_iat () const
 
int get_start_iw () const
 
const Vec3iget_bgrid_idx () const
 
const Vec3iget_unitcell_idx () const
 
const Vec3iget_R () const
 
const Vec3dget_tau_in_bgrid () const
 
const Numerical_Orbitalget_orb () const
 
int get_nw () const
 
double get_rcut () const
 
template<typename T >
void set_phi (const std::vector< Vec3d > &coords, const int stride, T *phi) const
 Get the wave function values of the atom at a meshgrid.
 
template<typename T >
void set_phi_dphi (const std::vector< Vec3d > &coords, const int stride, T *phi, T *dphi_x, T *dphi_y, T *dphi_z) const
 Get the wave function values and its derivative.
 
template<typename T >
void set_ddphi (const std::vector< Vec3d > &coords, const int stride, T *ddphi_xx, T *ddphi_xy, T *ddphi_xz, T *ddphi_yy, T *ddphi_yz, T *ddphi_zz) const
 Get the wave function values and its second derivative.
 

Private Attributes

const Atomatom_
 
int it_
 
int ia_
 
int iat_
 
Vec3i biggrid_idx_
 
Vec3i unitcell_idx_
 
Vec3d tau_in_biggrid_
 
const Numerical_Orbitalorb_
 
const UnitCellucell_
 
std::vector< const double * > p_psi_uniform_
 
std::vector< const double * > p_dpsi_uniform_
 
std::vector< const double * > p_ddpsi_uniform_
 

Constructor & Destructor Documentation

◆ GintAtom()

ModuleGint::GintAtom::GintAtom ( const Atom atom,
int  it,
int  ia,
int  iat,
Vec3i  biggrid_idx,
Vec3i  unitcell_idx,
Vec3d  tau_in_biggrid,
const Numerical_Orbital orb,
const UnitCell ucell 
)
Here is the call graph for this function:

Member Function Documentation

◆ get_atom()

const Atom * ModuleGint::GintAtom::get_atom ( ) const
inline

◆ get_bgrid_idx()

const Vec3i & ModuleGint::GintAtom::get_bgrid_idx ( ) const
inline
Here is the caller graph for this function:

◆ get_ia()

int ModuleGint::GintAtom::get_ia ( ) const
inline

◆ get_iat()

int ModuleGint::GintAtom::get_iat ( ) const
inline

◆ get_nw()

int ModuleGint::GintAtom::get_nw ( ) const
inline

◆ get_orb()

const Numerical_Orbital * ModuleGint::GintAtom::get_orb ( ) const
inline

◆ get_R()

const Vec3i & ModuleGint::GintAtom::get_R ( ) const
inline

◆ get_rcut()

double ModuleGint::GintAtom::get_rcut ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_start_iw()

int ModuleGint::GintAtom::get_start_iw ( ) const
inline
Here is the call graph for this function:

◆ get_tau_in_bgrid()

const Vec3d & ModuleGint::GintAtom::get_tau_in_bgrid ( ) const
inline
Here is the caller graph for this function:

◆ get_unitcell_idx()

const Vec3i & ModuleGint::GintAtom::get_unitcell_idx ( ) const
inline

◆ set_ddphi()

template<typename T >
template void ModuleGint::GintAtom::set_ddphi ( const std::vector< Vec3d > &  coords,
const int  stride,
T ddphi_xx,
T ddphi_xy,
T ddphi_xz,
T ddphi_yy,
T ddphi_yz,
T ddphi_zz 
) const

Get the wave function values and its second derivative.

ddphi[(n-1)*stride] ~ ddphi[(n-1)*stride + nw] store the second derivative of wave function values of the atom at the first meshgrid

Parameters
coordsthe cartesian coordinates of the meshgrids of a biggrid relative to the atom
stridethe stride of the phi array between two adjacent meshgrids
ddphi_xxarray to store the second derivative wave functions in xx direction
ddphi_xyarray to store the second derivative wave functions in xy direction
ddphi_xzarray to store the second derivative wave functions in xz direction
ddphi_yyarray to store the second derivative wave functions in yy direction
ddphi_yzarray to store the second derivative wave functions in yz direction
ddphi_zzarray to store the second derivative wave functions in zz direction
Here is the call graph for this function:

◆ set_phi()

template<typename T >
template void ModuleGint::GintAtom::set_phi ( const std::vector< Vec3d > &  coords,
const int  stride,
T phi 
) const

Get the wave function values of the atom at a meshgrid.

phi[(n-1)*stride] ~ phi[(n-1)*stride + nw] store the wave function values of the first atom at the nth meshgrid

Parameters
coordsthe cartesian coordinates of the meshgrids of a biggrid relative to the atom
stridethe stride of the phi array between two adjacent meshgrids
phiarray to store the wave function values
Here is the call graph for this function:

◆ set_phi_dphi()

template<typename T >
template void ModuleGint::GintAtom::set_phi_dphi ( const std::vector< Vec3d > &  coords,
const int  stride,
T phi,
T dphi_x,
T dphi_y,
T dphi_z 
) const

Get the wave function values and its derivative.

The reason for combining the functions to solve the wave function values and wave function derivatives into one function is to improve efficiency. phi[(n-1)*stride] ~ phi[(n-1)*stride + nw] store the wave function values of the first atom at the nth meshgrid

Parameters
coordsthe cartesian coordinates of the meshgrids of a biggrid relative to the atom
stridethe stride of the phi array between two adjacent meshgrids
phiarray to store the wave function values
dphi_xarray to store the derivative wave functions in x direction
dphi_yarray to store the derivative wave functions in y direction
dphi_zarray to store the derivative wave functions in z direction
Here is the call graph for this function:

Member Data Documentation

◆ atom_

const Atom* ModuleGint::GintAtom::atom_
private

◆ biggrid_idx_

Vec3i ModuleGint::GintAtom::biggrid_idx_
private

◆ ia_

int ModuleGint::GintAtom::ia_
private

◆ iat_

int ModuleGint::GintAtom::iat_
private

◆ it_

int ModuleGint::GintAtom::it_
private

◆ orb_

const Numerical_Orbital* ModuleGint::GintAtom::orb_
private

◆ p_ddpsi_uniform_

std::vector<const double*> ModuleGint::GintAtom::p_ddpsi_uniform_
private

◆ p_dpsi_uniform_

std::vector<const double*> ModuleGint::GintAtom::p_dpsi_uniform_
private

◆ p_psi_uniform_

std::vector<const double*> ModuleGint::GintAtom::p_psi_uniform_
private

◆ tau_in_biggrid_

Vec3d ModuleGint::GintAtom::tau_in_biggrid_
private

◆ ucell_

const UnitCell* ModuleGint::GintAtom::ucell_
private

◆ unitcell_idx_

Vec3i ModuleGint::GintAtom::unitcell_idx_
private

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