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 template<
typename Tin>
61 double*
const phi_dm)
const;
69 T*
const result)
const;
75 template<
typename Tin>
77 const Tin*
const phi_i,
78 const Tin*
const phi_j,
86 template<
typename Tin>
88 const Tin*
const phi_i,
89 const double*
const phi_j,
90 double*
const rho)
const;
101 const double* dphi_x,
102 const double* dphi_y,
103 const double* dphi_z,
109 const vector<int>& trace_lo,
114 const std::complex<double>* wfc,
115 const vector<int>& trace_lo,
120 const std::vector<Vec3d>& kvec_c,
121 const std::vector<Vec3d>& kvec_d,
131 int x = std::min(a, b);
132 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:136
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
std::vector< bool > is_atom_on_mgrid_
Definition phi_operator.h:161
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:121
std::shared_ptr< const BigGrid > biggrid_
Definition phi_operator.h:153
void init_atom_pair_idx_()
Definition phi_operator.cpp:217
void phi_dot_phi(const Tin *const phi_i, const double *const phi_j, double *const rho) const
Definition phi_operator.hpp:231
std::vector< std::pair< int, int > > atom_pair_range_
Definition phi_operator.h:172
const std::pair< int, int > & get_atom_pair_start_end_idx_(int a, int b) const
Definition phi_operator.h:129
void phi_mul_phi(const Tin *const phi_i, const Tin *const phi_j, HContainer< double > &hr, const TriPart part) const
Definition phi_operator.hpp:144
std::vector< std::vector< Vec3d > > atom_rcoords_
Definition phi_operator.h:157
TriPart
Definition phi_operator.h:22
std::vector< int > atoms_phi_len_
Definition phi_operator.h:169
std::vector< int > mgrid_lidx_
Definition phi_operator.h:150
void phi_mul_dm(const Tin *const phi, const HContainer< Tin > &dm, const bool is_symm, double *const phi_dm) const
Definition phi_operator.hpp:52
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:164
void set_phi(T *phi) const
Definition phi_operator.hpp:11
int rows_
Definition phi_operator.h:143
int cols_
Definition phi_operator.h:147
Definition hcontainer.h:144
#define T
Definition exp.cpp:237
Definition batch_biggrid.cpp:4