The class phiOperator is used to perform operations on the wave function matrix phi, dphi, etc.
More...
#include <phi_operator.h>
|
| PhiOperator ()=default |
|
void | set_bgrid (std::shared_ptr< const BigGrid > biggrid) |
|
int | get_rows () const |
|
int | get_cols () const |
|
template<typename T > |
void | set_phi (T *phi) const |
|
void | set_phi_dphi (double *phi, double *dphi_x, double *dphi_y, double *dphi_z) const |
|
void | set_ddphi (double *ddphi_xx, double *ddphi_xy, double *ddphi_xz, double *ddphi_yy, double *ddphi_yz, double *ddphi_zz) const |
|
template<typename T > |
void | phi_mul_dm (const T *const phi, const HContainer< T > &dm, const bool is_symm, T *const phi_dm) const |
|
template<typename T > |
void | phi_mul_vldr3 (const T *const vl, const T dr3, const T *const phi, T *const result) const |
|
template<typename T > |
void | phi_mul_phi (const T *const phi_i, const T *const phi_j, HContainer< T > &hr, const Triangular_Matrix triangular_matrix) const |
|
template<typename T > |
void | phi_dot_phi (const T *const phi_i, const T *const phi_j, T *const rho) const |
|
void | phi_dot_dphi (const double *phi, const double *dphi_x, const double *dphi_y, const double *dphi_z, ModuleBase::matrix *fvl) const |
|
void | phi_dot_dphi_r (const double *phi, const double *dphi_x, const double *dphi_y, const double *dphi_z, ModuleBase::matrix *svl) const |
|
void | cal_env_gamma (const double *phi, const double *wfc, const vector< int > &trace_lo, double *rho) const |
|
void | cal_env_k (const double *phi, const std::complex< double > *wfc, const vector< int > &trace_lo, const int ik, const int nspin, const int npol, const int lgd, const std::vector< Vec3d > &kvec_c, const std::vector< Vec3d > &kvec_d, double *rho) const |
|
The class phiOperator is used to perform operations on the wave function matrix phi, dphi, etc.
In fact, the variables and functions of this class could be placed in the BigGrid class, but the lifecycle of the BigGrid class is relatively long. We do not want the BigGrid to contain too many member variables, as this could lead to excessive memory usage. Therefore, we separate this class out, so it can be destroyed after use.
◆ Triangular_Matrix
Enumerator |
---|
Upper | |
Lower | |
Full | |
◆ PhiOperator()
ModuleGint::PhiOperator::PhiOperator |
( |
| ) |
|
|
default |
◆ cal_env_gamma()
void ModuleGint::PhiOperator::cal_env_gamma |
( |
const double * |
phi, |
|
|
const double * |
wfc, |
|
|
const vector< int > & |
trace_lo, |
|
|
double * |
rho |
|
) |
| const |
◆ cal_env_k()
void ModuleGint::PhiOperator::cal_env_k |
( |
const double * |
phi, |
|
|
const std::complex< double > * |
wfc, |
|
|
const vector< int > & |
trace_lo, |
|
|
const int |
ik, |
|
|
const int |
nspin, |
|
|
const int |
npol, |
|
|
const int |
lgd, |
|
|
const std::vector< Vec3d > & |
kvec_c, |
|
|
const std::vector< Vec3d > & |
kvec_d, |
|
|
double * |
rho |
|
) |
| const |
◆ get_atom_pair_start_end_idx_()
const std::pair< int, int > & ModuleGint::PhiOperator::get_atom_pair_start_end_idx_ |
( |
int |
a, |
|
|
int |
b |
|
) |
| const |
|
inlineprivate |
◆ get_cols()
int ModuleGint::PhiOperator::get_cols |
( |
| ) |
const |
|
inline |
◆ get_rows()
int ModuleGint::PhiOperator::get_rows |
( |
| ) |
const |
|
inline |
◆ init_atom_pair_start_end_idx_()
void ModuleGint::PhiOperator::init_atom_pair_start_end_idx_ |
( |
| ) |
|
|
private |
◆ is_atom_on_mgrid()
bool ModuleGint::PhiOperator::is_atom_on_mgrid |
( |
int |
atom_idx, |
|
|
int |
mgrid_idx |
|
) |
| const |
|
inlineprivate |
◆ phi_dot_dphi()
void ModuleGint::PhiOperator::phi_dot_dphi |
( |
const double * |
phi, |
|
|
const double * |
dphi_x, |
|
|
const double * |
dphi_y, |
|
|
const double * |
dphi_z, |
|
|
ModuleBase::matrix * |
fvl |
|
) |
| const |
◆ phi_dot_dphi_r()
void ModuleGint::PhiOperator::phi_dot_dphi_r |
( |
const double * |
phi, |
|
|
const double * |
dphi_x, |
|
|
const double * |
dphi_y, |
|
|
const double * |
dphi_z, |
|
|
ModuleBase::matrix * |
svl |
|
) |
| const |
◆ phi_dot_phi()
void ModuleGint::PhiOperator::phi_dot_phi |
( |
const T *const |
phi_i, |
|
|
const T *const |
phi_j, |
|
|
T *const |
rho |
|
) |
| const |
◆ phi_mul_dm()
void ModuleGint::PhiOperator::phi_mul_dm |
( |
const T *const |
phi, |
|
|
const HContainer< T > & |
dm, |
|
|
const bool |
is_symm, |
|
|
T *const |
phi_dm |
|
) |
| const |
◆ phi_mul_phi()
void ModuleGint::PhiOperator::phi_mul_phi |
( |
const T *const |
phi_i, |
|
|
const T *const |
phi_j, |
|
|
HContainer< T > & |
hr, |
|
|
const Triangular_Matrix |
triangular_matrix |
|
) |
| const |
◆ phi_mul_vldr3()
void ModuleGint::PhiOperator::phi_mul_vldr3 |
( |
const T *const |
vl, |
|
|
const T |
dr3, |
|
|
const T *const |
phi, |
|
|
T *const |
result |
|
) |
| const |
◆ set_bgrid()
void ModuleGint::PhiOperator::set_bgrid |
( |
std::shared_ptr< const BigGrid > |
biggrid | ) |
|
◆ set_ddphi()
void ModuleGint::PhiOperator::set_ddphi |
( |
double * |
ddphi_xx, |
|
|
double * |
ddphi_xy, |
|
|
double * |
ddphi_xz, |
|
|
double * |
ddphi_yy, |
|
|
double * |
ddphi_yz, |
|
|
double * |
ddphi_zz |
|
) |
| const |
◆ set_phi()
void ModuleGint::PhiOperator::set_phi |
( |
T * |
phi | ) |
const |
◆ set_phi_dphi()
void ModuleGint::PhiOperator::set_phi_dphi |
( |
double * |
phi, |
|
|
double * |
dphi_x, |
|
|
double * |
dphi_y, |
|
|
double * |
dphi_z |
|
) |
| const |
◆ atom_pair_start_end_idx_
std::vector<std::pair<int, int> > ModuleGint::PhiOperator::atom_pair_start_end_idx_ |
|
private |
◆ atoms_phi_len_
std::vector<int> ModuleGint::PhiOperator::atoms_phi_len_ |
|
private |
◆ atoms_relative_coords_
std::vector<std::vector<Vec3d> > ModuleGint::PhiOperator::atoms_relative_coords_ |
|
private |
◆ atoms_startidx_
std::vector<int> ModuleGint::PhiOperator::atoms_startidx_ |
|
private |
◆ biggrid_
std::shared_ptr<const BigGrid> ModuleGint::PhiOperator::biggrid_ |
|
private |
◆ cols_
int ModuleGint::PhiOperator::cols_ |
|
private |
◆ is_atom_on_mgrid_
std::vector<bool> ModuleGint::PhiOperator::is_atom_on_mgrid_ |
|
private |
◆ meshgrids_local_idx_
std::vector<int> ModuleGint::PhiOperator::meshgrids_local_idx_ |
|
private |
◆ rows_
int ModuleGint::PhiOperator::rows_ |
|
private |
The documentation for this class was generated from the following files:
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_gint/temp_gint/phi_operator.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_gint/temp_gint/phi_operator.cpp
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_gint/temp_gint/phi_operator.hpp