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 Tin > |
| void | phi_mul_dm (const Tin *const phi, const HContainer< Tin > &dm, const bool is_symm, double *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 Tin > |
| void | phi_mul_phi (const Tin *const phi_i, const Tin *const phi_j, HContainer< double > &hr, const TriPart part) const |
| |
| template<typename Tin > |
| void | phi_dot_phi (const Tin *const phi_i, const double *const phi_j, double *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.
◆ TriPart
| 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_idx_()
| void ModuleGint::PhiOperator::init_atom_pair_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()
template<typename Tin >
| void ModuleGint::PhiOperator::phi_dot_phi |
( |
const Tin *const |
phi_i, |
|
|
const double *const |
phi_j, |
|
|
double *const |
rho |
|
) |
| const |
◆ phi_mul_dm()
template<typename Tin >
| void ModuleGint::PhiOperator::phi_mul_dm |
( |
const Tin *const |
phi, |
|
|
const HContainer< Tin > & |
dm, |
|
|
const bool |
is_symm, |
|
|
double *const |
phi_dm |
|
) |
| const |
◆ phi_mul_phi()
template<typename Tin >
| void ModuleGint::PhiOperator::phi_mul_phi |
( |
const Tin *const |
phi_i, |
|
|
const Tin *const |
phi_j, |
|
|
HContainer< double > & |
hr, |
|
|
const TriPart |
part |
|
) |
| 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_range_
| std::vector<std::pair<int, int> > ModuleGint::PhiOperator::atom_pair_range_ |
|
private |
◆ atom_rcoords_
| std::vector<std::vector<Vec3d> > ModuleGint::PhiOperator::atom_rcoords_ |
|
private |
◆ atoms_phi_len_
| std::vector<int> ModuleGint::PhiOperator::atoms_phi_len_ |
|
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 |
◆ mgrid_lidx_
| std::vector<int> ModuleGint::PhiOperator::mgrid_lidx_ |
|
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/phi_operator.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_gint/phi_operator.cpp
- /home/runner/work/abacus-develop/abacus-develop/source/source_lcao/module_gint/phi_operator.hpp