28 void set_bgrid(std::shared_ptr<const BigGrid> biggrid);
42 void set_phi_dphi(
double* phi,
double* dphi_x,
double* dphi_y,
double* dphi_z)
const;
47 double* ddphi_xx,
double* ddphi_xy,
double* ddphi_xz,
48 double* ddphi_yy,
double* ddphi_yz,
double* ddphi_zz)
const;
56 T*
const phi_dm)
const;
64 T*
const result)
const;
99 const vector<int>& trace_lo,
104 const std::complex<double>* wfc,
105 const vector<int>& trace_lo,
110 const std::vector<Vec3d>& kvec_c,
111 const std::vector<Vec3d>& kvec_d,
121 int x = std::min(a, b);
122 int y = std::abs(a - b);
The class phiOperator is used to perform operations on the wave function matrix phi,...
Definition phi_operator.h:20
int get_rows() const
Definition phi_operator.h:31
bool is_atom_on_mgrid(int atom_idx, int mgrid_idx) const
Definition phi_operator.h:126
int get_cols() const
Definition phi_operator.h:32
void phi_dot_dphi_r(const double *phi, const double *dphi_x, const double *dphi_y, const double *dphi_z, ModuleBase::matrix *svl) const
Definition phi_operator.cpp:98
void cal_env_gamma(const double *phi, const double *wfc, const vector< int > &trace_lo, double *rho) const
Definition phi_operator.cpp:133
void phi_dot_dphi(const double *phi, const double *dphi_x, const double *dphi_y, const double *dphi_z, ModuleBase::matrix *fvl) const
Definition phi_operator.cpp:68
void phi_mul_phi(const T *const phi_i, const T *const phi_j, HContainer< T > &hr, const Triangular_Matrix triangular_matrix) const
Definition phi_operator.hpp:109
std::vector< bool > is_atom_on_mgrid_
Definition phi_operator.h:151
void set_phi_dphi(double *phi, double *dphi_x, double *dphi_y, double *dphi_z) const
Definition phi_operator.cpp:35
void phi_mul_vldr3(const T *const vl, const T dr3, const T *const phi, T *const result) const
Definition phi_operator.hpp:88
void phi_dot_phi(const T *const phi_i, const T *const phi_j, T *const rho) const
Definition phi_operator.hpp:176
std::shared_ptr< const BigGrid > biggrid_
Definition phi_operator.h:143
std::vector< std::vector< Vec3d > > atoms_relative_coords_
Definition phi_operator.h:147
const std::pair< int, int > & get_atom_pair_start_end_idx_(int a, int b) const
Definition phi_operator.h:119
std::vector< int > meshgrids_local_idx_
Definition phi_operator.h:140
void init_atom_pair_start_end_idx_()
Definition phi_operator.cpp:217
std::vector< int > atoms_phi_len_
Definition phi_operator.h:159
Triangular_Matrix
Definition phi_operator.h:22
void set_ddphi(double *ddphi_xx, double *ddphi_xy, double *ddphi_xz, double *ddphi_yy, double *ddphi_yz, double *ddphi_zz) const
Definition phi_operator.cpp:51
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
Definition phi_operator.cpp:160
void set_bgrid(std::shared_ptr< const BigGrid > biggrid)
Definition phi_operator.cpp:8
std::vector< int > atoms_startidx_
Definition phi_operator.h:154
void set_phi(T *phi) const
Definition phi_operator.hpp:11
std::vector< std::pair< int, int > > atom_pair_start_end_idx_
Definition phi_operator.h:162
int rows_
Definition phi_operator.h:133
void phi_mul_dm(const T *const phi, const HContainer< T > &dm, const bool is_symm, T *const phi_dm) const
Definition phi_operator.hpp:23
int cols_
Definition phi_operator.h:137
Definition hcontainer.h:144
#define T
Definition exp.cpp:237
Definition batch_biggrid.cpp:4