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/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