14#ifndef __EKINETICTEMPLATE
15#define __EKINETICTEMPLATE
36template <
typename TK,
typename TR>
44 const std::vector<ModuleBase::Vector3<double>>& kvec_d_in,
47 const std::vector<double>& orb_cutoff,
72 void cal_force_stress(
const bool cal_force,
73 const bool cal_stress,
88 bool allocated =
false;
90 bool HR_fixed_done =
false;
117 void cal_force_IJR(
const int& iat1,
120 const std::unordered_map<
int, std::vector<double>>& nlm1_all,
121 const std::unordered_map<
int, std::vector<double>>& nlm2_all,
129 void cal_stress_IJR(
const int& iat1,
132 const std::unordered_map<
int, std::vector<double>>& nlm1_all,
133 const std::unordered_map<
int, std::vector<double>>& nlm2_all,
Definition sltk_grid_driver.h:40
3 elements vector
Definition vector3.h:24
Definition parallel_orbitals.h:9
A class to compute two-center integrals.
Definition two_center_integrator.h:35
Definition base_matrix.h:20
virtual void set_HR_fixed(void *) override
set_HR_fixed() is used for pass HR_fixed matrix to the next node in sub-chain table not used in base ...
void calculate_HR()
calculate the electronic kinetic matrix with specific <I,J,R> atom-pairs use the adjs_all to calculat...
void initialize_HR(const Grid_Driver *GridD_in)
initialize HR, search the nearest neighbor atoms HContainer is used to store the electronic kinetic m...
virtual void contributeHR() override
contributeHR() is used to calculate the HR matrix <phi_{\mu, 0}|-\Nabla^2|phi_{\nu,...
void cal_HR_IJR(const int &iat1, const int &iat2, const Parallel_Orbitals *paraV, const ModuleBase::Vector3< double > &dtau, TR *data_pointer)
calculate the HR local matrix of <I,J,R> atom pair
std::vector< AdjacentAtomInfo > adjs_all
exact the nearest neighbor atoms from all adjacent atoms
Definition ekinetic.h:140
std::vector< double > orb_cutoff_
Definition ekinetic.h:80
Definition hcontainer.h:144
Definition hs_matrix_k.hpp:11
Definition operator_lcao.h:12
#define T
Definition exp.cpp:237