ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Classes | Enumerations | Functions
hamilt Namespace Reference

Classes

class  AtomPair
 
class  BaseMatrix
 
struct  cal_dbecp_noevc_nl_op
 
struct  cal_dbecp_noevc_nl_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_density_real_op
 
struct  cal_density_real_op< T, base_device::DEVICE_CPU >
 
struct  cal_force_ew_op
 
struct  cal_force_loc_op
 
struct  cal_force_nl_op
 
struct  cal_force_nl_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_force_npw_op
 
struct  cal_force_npw_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_multi_dot_op
 
struct  cal_multi_dot_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_sk_op
 
struct  cal_sk_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_stress_drhoc_aux_op
 
struct  cal_stress_drhoc_aux_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_stress_mgga_op
 
struct  cal_stress_nl_op
 
struct  cal_stress_nl_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_vkb1_nl_op
 
struct  cal_vkb1_nl_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_vkb_deri_op
 
struct  cal_vkb_deri_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_vkb_op
 
struct  cal_vkb_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_vnl_op
 
struct  cal_vnl_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_vq_deri_op
 
struct  cal_vq_deri_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  cal_vq_op
 
struct  cal_vq_op< FPTYPE, base_device::DEVICE_CPU >
 
class  DeePKS
 
class  DeePKS< OperatorLCAO< TK, TR > >
 
class  DeltaSpin
 
class  DeltaSpin< OperatorLCAO< TK, TR > >
 
class  DFTU
 
class  DFTU< OperatorLCAO< TK, TR > >
 
class  Ekinetic
 
class  Ekinetic< OperatorPW< T, Device > >
 
struct  ekinetic_pw_op
 
struct  ekinetic_pw_op< FPTYPE, base_device::DEVICE_CPU >
 
class  EkineticNew
 
class  EkineticNew< OperatorLCAO< TK, TR > >
 
struct  exx_cal_energy_op
 
struct  exx_cal_energy_op< std::complex< FPTYPE >, base_device::DEVICE_CPU >
 
class  FS_Kin_tools
 
class  FS_Nonlocal_tools
 Nonlocal pseudopotential tools in plane wave basis set. used for calculating force and stress for different algorithm the main functions are: More...
 
class  Hamilt
 
class  HamiltLCAO
 
class  HamiltLIP
 
class  HamiltPW
 
class  HamiltSdftPW
 
class  HContainer
 
struct  hpsi_norm_op
 
struct  hpsi_norm_op< FPTYPE, base_device::DEVICE_CPU >
 
class  HS_Matrix_K
 
class  HTransPara
 
class  HTransSerial
 
struct  MatrixBlock
 
class  Meta
 
class  Meta< OperatorLCAO< TK, TR > >
 
class  Meta< OperatorPW< T, Device > >
 
struct  meta_pw_op
 
struct  meta_pw_op< FPTYPE, base_device::DEVICE_CPU >
 
struct  mul_potential_op
 
struct  mul_potential_op< std::complex< FPTYPE >, base_device::DEVICE_CPU >
 
class  Nonlocal
 
class  Nonlocal< OperatorPW< T, Device > >
 
class  Nonlocal_maths
 
struct  nonlocal_pw_op
 
struct  nonlocal_pw_op< FPTYPE, base_device::DEVICE_CPU >
 
class  NonlocalNew
 
class  NonlocalNew< OperatorLCAO< TK, TR > >
 
class  Onsite_Proj_tools
 Nonlocal pseudopotential tools in plane wave basis set. used for calculating force and stress for different algorithm the main functions are: More...
 
struct  onsite_ps_op
 
struct  onsite_ps_op< FPTYPE, base_device::DEVICE_CPU >
 
class  OnsiteProj
 
class  OnsiteProj< OperatorPW< T, Device > >
 
class  Operator
 
class  OperatorDFTU
 
class  OperatorDFTU< OperatorLCAO< TK, TR > >
 
class  OperatorEXXPW
 
class  OperatorLCAO
 
class  OperatorPW
 
class  Output_HContainer
 A class to output the HContainer. More...
 
class  OverlapNew
 
class  OverlapNew< OperatorLCAO< TK, TR > >
 
struct  pointer_array_malloc
 
class  StressMggaTest
 
struct  synchronize_ptrs
 
class  TD_pot_hybrid
 
class  TD_pot_hybrid< OperatorLCAO< TK, TR > >
 
class  TDEkinetic
 
class  TDEkinetic< OperatorLCAO< TK, TR > >
 
class  TDNonlocal
 
class  TDNonlocal< OperatorLCAO< TK, TR > >
 
struct  vec_mul_vec_complex_op
 
struct  vec_mul_vec_complex_op< std::complex< FPTYPE >, base_device::DEVICE_CPU >
 
class  Veff
 
class  Veff< OperatorLCAO< TK, TR > >
 Effective potential class, used for calculating Hamiltonian with grid integration tools If user want to separate the contribution of V_{eff} into V_{H} and V_{XC} and V_{local pseudopotential} and so on, the user can separate the Potential class into different parts, and construct different Veff class for each part. More...
 
class  Veff< OperatorPW< T, Device > >
 
struct  veff_pw_op
 
struct  veff_pw_op< FPTYPE, base_device::DEVICE_CPU >
 
class  Velocity
 
struct  xc_functional_grad_wfc_op
 
class  XC_FunctionalOpTest
 

Enumerations

enum class  calculation_type {
  no , pw_ekinetic , pw_nonlocal , pw_veff ,
  pw_meta , pw_onsite , pw_exx , lcao_overlap ,
  lcao_fixed , lcao_gint , lcao_deepks , lcao_exx ,
  lcao_dftu , lcao_sc_lambda , lcao_tddft_periodic
}
 

Functions

 TYPED_TEST_SUITE (XC_FunctionalOpTest, base::utils::ComplexTypes)
 
 TYPED_TEST (XC_FunctionalOpTest, xc_functional_grad_wfc_op)
 
template<typename TR >
void folding_HR (const hamilt::HContainer< TR > &hR, std::complex< double > *hk, const ModuleBase::Vector3< double > &kvec_d_in, const int hk_ld, const int hk_type)
 calculate the Hk matrix with specific k vector
 
template void folding_HR< std::complex< double > > (const hamilt::HContainer< std::complex< double > > &hR, std::complex< double > *hk, const ModuleBase::Vector3< double > &kvec_d_in, const int ncol, const int hk_type)
 
template void folding_HR< double > (const hamilt::HContainer< double > &hR, std::complex< double > *hk, const ModuleBase::Vector3< double > &kvec_d_in, const int ncol, const int hk_type)
 
void folding_HR (const hamilt::HContainer< double > &hR, double *hk, const ModuleBase::Vector3< double > &kvec_d_in, const int hk_ld, const int hk_type)
 
template<typename TR >
void transferSerial2Parallels (const hamilt::HContainer< TR > &hR_s, hamilt::HContainer< TR > *hR_p, const int serial_rank)
 transfer the HContainer from serial object to parallel object
 
template<typename TR >
void transferParallels2Serial (const hamilt::HContainer< TR > &hR_p, hamilt::HContainer< TR > *hR_s, const int serial_rank)
 transfer the HContainer from parallel object to serial object
 
template<typename TR >
void transferSerials2Parallels (const hamilt::HContainer< TR > &hR_s, hamilt::HContainer< TR > *hR_p)
 transfer the HContainer from all serial objects to all parallel objects
 
template<typename TR >
void transferParallels2Serials (const hamilt::HContainer< TR > &hR_p, hamilt::HContainer< TR > *hR_s)
 transfer the HContainer from all serial objects to all parallel objects
 
template<typename TR >
void gatherParallels (const hamilt::HContainer< TR > &hR_p, hamilt::HContainer< TR > *hR_s, const int serial_rank)
 gather the HContainer from all parallel objects to target serial object the serial object should be empty before gather
 
template void transferSerial2Parallels (const hamilt::HContainer< double > &hR_s, hamilt::HContainer< double > *hR_p, const int serial_rank)
 
template void transferSerial2Parallels (const hamilt::HContainer< std::complex< double > > &hR_s, hamilt::HContainer< std::complex< double > > *hR_p, const int serial_rank)
 
template void transferParallels2Serial (const hamilt::HContainer< double > &hR_p, hamilt::HContainer< double > *hR_s, const int serial_rank)
 
template void transferParallels2Serial (const hamilt::HContainer< std::complex< double > > &hR_p, hamilt::HContainer< std::complex< double > > *hR_s, const int serial_rank)
 
template void transferSerials2Parallels (const hamilt::HContainer< double > &hR_s, hamilt::HContainer< double > *hR_p)
 
template void transferSerials2Parallels (const hamilt::HContainer< std::complex< double > > &hR_s, hamilt::HContainer< std::complex< double > > *hR_p)
 
template void transferParallels2Serials (const hamilt::HContainer< double > &hR_p, hamilt::HContainer< double > *hR_s)
 
template void transferParallels2Serials (const hamilt::HContainer< std::complex< double > > &hR_p, hamilt::HContainer< std::complex< double > > *hR_s)
 
template void gatherParallels (const hamilt::HContainer< double > &hR_p, hamilt::HContainer< double > *hR_s, const int serial_rank)
 
template void gatherParallels (const hamilt::HContainer< std::complex< double > > &hR_p, hamilt::HContainer< std::complex< double > > *hR_s, const int serial_rank)
 
template<typename FPTYPE >
__device__ FPTYPE _polynomial_interpolation (const FPTYPE *table, const int &dim1, const int &dim2, const int &tab_2, const int &tab_3, const FPTYPE &table_interval, const FPTYPE &x)
 
template<typename FPTYPE >
__device__ FPTYPE _polynomial_interpolation_nl (const FPTYPE *table, const int &dim1, const int &dim2, const int &tab_2, const int &tab_3, const FPTYPE &table_interval, const FPTYPE &x)
 
template<typename FPTYPE >
void Simpson_Integral (const int mesh, FPTYPE *func, const FPTYPE *rab, FPTYPE &asum)
 
 TYPED_TEST_SUITE (StressMggaTest, base::utils::ComplexTypes)
 
 TYPED_TEST (StressMggaTest, cal_stress_mgga_op)
 
template<typename T >
bool is_finite (const T &val)
 
template<>
bool is_finite (const std::complex< float > &val)
 
template<>
bool is_finite (const std::complex< double > &val)
 

Enumeration Type Documentation

◆ calculation_type

enum class hamilt::calculation_type
strong
Enumerator
no 
pw_ekinetic 
pw_nonlocal 
pw_veff 
pw_meta 
pw_onsite 
pw_exx 
lcao_overlap 
lcao_fixed 
lcao_gint 
lcao_deepks 
lcao_exx 
lcao_dftu 
lcao_sc_lambda 
lcao_tddft_periodic 

Function Documentation

◆ _polynomial_interpolation()

template<typename FPTYPE >
__device__ FPTYPE hamilt::_polynomial_interpolation ( const FPTYPE *  table,
const int &  dim1,
const int &  dim2,
const int &  tab_2,
const int &  tab_3,
const FPTYPE &  table_interval,
const FPTYPE &  x 
)
Here is the caller graph for this function:

◆ _polynomial_interpolation_nl()

template<typename FPTYPE >
__device__ FPTYPE hamilt::_polynomial_interpolation_nl ( const FPTYPE *  table,
const int &  dim1,
const int &  dim2,
const int &  tab_2,
const int &  tab_3,
const FPTYPE &  table_interval,
const FPTYPE &  x 
)

◆ folding_HR() [1/2]

void hamilt::folding_HR ( const hamilt::HContainer< double > &  hR,
double *  hk,
const ModuleBase::Vector3< double > &  kvec_d_in,
const int  hk_ld,
const int  hk_type 
)
Here is the call graph for this function:

◆ folding_HR() [2/2]

template<typename TR >
void hamilt::folding_HR ( const hamilt::HContainer< TR > &  hR,
std::complex< double > *  hk,
const ModuleBase::Vector3< double > &  kvec_d_in,
const int  hk_ld,
const int  hk_type 
)

calculate the Hk matrix with specific k vector

Parameters
hRthe HContainer of <I,J,R> atom pairs
hkthe data pointer of Hk matrix, the size of hk would be nrow * ncol
kvec_d_inthe k vector in Direct coordinate
hk_ldthe leading dimension number of hk, ncol for row-major, nrow for column-major
hk_typethe data-type of hk, 0 is row-major, 1 is column-major
Here is the call graph for this function:
Here is the caller graph for this function:

◆ folding_HR< double >()

template void hamilt::folding_HR< double > ( const hamilt::HContainer< double > &  hR,
std::complex< double > *  hk,
const ModuleBase::Vector3< double > &  kvec_d_in,
const int  ncol,
const int  hk_type 
)

◆ folding_HR< std::complex< double > >()

template void hamilt::folding_HR< std::complex< double > > ( const hamilt::HContainer< std::complex< double > > &  hR,
std::complex< double > *  hk,
const ModuleBase::Vector3< double > &  kvec_d_in,
const int  ncol,
const int  hk_type 
)

◆ gatherParallels() [1/3]

template void hamilt::gatherParallels ( const hamilt::HContainer< double > &  hR_p,
hamilt::HContainer< double > *  hR_s,
const int  serial_rank 
)

◆ gatherParallels() [2/3]

template void hamilt::gatherParallels ( const hamilt::HContainer< std::complex< double > > &  hR_p,
hamilt::HContainer< std::complex< double > > *  hR_s,
const int  serial_rank 
)

◆ gatherParallels() [3/3]

template<typename TR >
void hamilt::gatherParallels ( const hamilt::HContainer< TR > &  hR_p,
hamilt::HContainer< TR > *  hR_s,
const int  serial_rank 
)

gather the HContainer from all parallel objects to target serial object the serial object should be empty before gather

Parameters
hR_pthe HContainer of <I,J,R> atom pairs in parallel object
hR_sthe empty HContainer of <I,J,R> atom pairs in serial object
serial_rankthe rank of target serial object
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_finite() [1/3]

template<>
bool hamilt::is_finite ( const std::complex< double > &  val)
inline

◆ is_finite() [2/3]

template<>
bool hamilt::is_finite ( const std::complex< float > &  val)
inline

◆ is_finite() [3/3]

template<typename T >
bool hamilt::is_finite ( const T val)
inline

◆ Simpson_Integral()

template<typename FPTYPE >
void hamilt::Simpson_Integral ( const int  mesh,
FPTYPE *  func,
const FPTYPE *  rab,
FPTYPE &  asum 
)
Here is the call graph for this function:

◆ transferParallels2Serial() [1/3]

template void hamilt::transferParallels2Serial ( const hamilt::HContainer< double > &  hR_p,
hamilt::HContainer< double > *  hR_s,
const int  serial_rank 
)

◆ transferParallels2Serial() [2/3]

template void hamilt::transferParallels2Serial ( const hamilt::HContainer< std::complex< double > > &  hR_p,
hamilt::HContainer< std::complex< double > > *  hR_s,
const int  serial_rank 
)

◆ transferParallels2Serial() [3/3]

template<typename TR >
void hamilt::transferParallels2Serial ( const hamilt::HContainer< TR > &  hR_p,
hamilt::HContainer< TR > *  hR_s,
const int  serial_rank 
)

transfer the HContainer from parallel object to serial object

Parameters
hR_pthe HContainer of <I,J,R> atom pairs in parallel object
hR_sthe HContainer of <I,J,R> atom pairs in serial object
my_rankthe rank of current process
Here is the call graph for this function:
Here is the caller graph for this function:

◆ transferParallels2Serials() [1/3]

template void hamilt::transferParallels2Serials ( const hamilt::HContainer< double > &  hR_p,
hamilt::HContainer< double > *  hR_s 
)

◆ transferParallels2Serials() [2/3]

template void hamilt::transferParallels2Serials ( const hamilt::HContainer< std::complex< double > > &  hR_p,
hamilt::HContainer< std::complex< double > > *  hR_s 
)

◆ transferParallels2Serials() [3/3]

template<typename TR >
void hamilt::transferParallels2Serials ( const hamilt::HContainer< TR > &  hR_p,
hamilt::HContainer< TR > *  hR_s 
)

transfer the HContainer from all serial objects to all parallel objects

Parameters
hR_pthe HContainer of <I,J,R> atom pairs in parallel object
hR_sthe HContainer of <I,J,R> atom pairs in serial object
Here is the call graph for this function:
Here is the caller graph for this function:

◆ transferSerial2Parallels() [1/3]

template void hamilt::transferSerial2Parallels ( const hamilt::HContainer< double > &  hR_s,
hamilt::HContainer< double > *  hR_p,
const int  serial_rank 
)

◆ transferSerial2Parallels() [2/3]

template void hamilt::transferSerial2Parallels ( const hamilt::HContainer< std::complex< double > > &  hR_s,
hamilt::HContainer< std::complex< double > > *  hR_p,
const int  serial_rank 
)

◆ transferSerial2Parallels() [3/3]

template<typename TR >
void hamilt::transferSerial2Parallels ( const hamilt::HContainer< TR > &  hR_s,
hamilt::HContainer< TR > *  hR_p,
const int  serial_rank 
)

transfer the HContainer from serial object to parallel object

Parameters
hR_sthe HContainer of <I,J,R> atom pairs in serial object
hR_pthe HContainer of <I,J,R> atom pairs in parallel object
my_rankthe rank of current process
Here is the call graph for this function:
Here is the caller graph for this function:

◆ transferSerials2Parallels() [1/3]

template void hamilt::transferSerials2Parallels ( const hamilt::HContainer< double > &  hR_s,
hamilt::HContainer< double > *  hR_p 
)

◆ transferSerials2Parallels() [2/3]

template void hamilt::transferSerials2Parallels ( const hamilt::HContainer< std::complex< double > > &  hR_s,
hamilt::HContainer< std::complex< double > > *  hR_p 
)

◆ transferSerials2Parallels() [3/3]

template<typename TR >
void hamilt::transferSerials2Parallels ( const hamilt::HContainer< TR > &  hR_s,
hamilt::HContainer< TR > *  hR_p 
)

transfer the HContainer from all serial objects to all parallel objects

Parameters
hR_sthe HContainer of <I,J,R> atom pairs in serial object
hR_pthe HContainer of <I,J,R> atom pairs in parallel object
Here is the call graph for this function:
Here is the caller graph for this function:

◆ TYPED_TEST() [1/2]

hamilt::TYPED_TEST ( StressMggaTest  ,
cal_stress_mgga_op   
)
Here is the call graph for this function:

◆ TYPED_TEST() [2/2]

hamilt::TYPED_TEST ( XC_FunctionalOpTest  ,
xc_functional_grad_wfc_op   
)
Here is the call graph for this function:

◆ TYPED_TEST_SUITE() [1/2]

hamilt::TYPED_TEST_SUITE ( StressMggaTest  ,
base::utils::ComplexTypes   
)

◆ TYPED_TEST_SUITE() [2/2]

hamilt::TYPED_TEST_SUITE ( XC_FunctionalOpTest  ,
base::utils::ComplexTypes   
)