ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
gint_k.h
Go to the documentation of this file.
1#ifndef W_ABACUS_DEVELOP_ABACUS_DEVELOP_SOURCE_MODULE_HAMILT_LCAO_MODULE_GINT_GINT_K_H
2#define W_ABACUS_DEVELOP_ABACUS_DEVELOP_SOURCE_MODULE_HAMILT_LCAO_MODULE_GINT_GINT_K_H
3
4#include "gint.h"
5#include "grid_technique.h"
9
10// add by jingan for map<> in 2021-12-2, will be deleted in the future
12
13class Gint_k : public Gint {
14 public:
18 Gint_k& operator=(Gint_k&& rhs);
19
20 //------------------------------------------------------
21 // in gint_k_pvpr.cpp
22 //------------------------------------------------------
23 // pvpR and reset_spin/get_spin : auxilliary methods
24 // for calculating hamiltonian
25
26 // allocate the <phi_0 | V | dphi_R> matrix element.
27 void allocate_pvdpR();
28 // destroy the temporary <phi_0 | V | dphi_R> matrix element.
29 void destroy_pvdpR();
30
35 void transfer_pvpR(hamilt::HContainer<double>* hR, const UnitCell* ucell_in, const Grid_Driver* gd);
36 void transfer_pvpR(hamilt::HContainer<std::complex<double>>* hR, const UnitCell* ucell_in, const Grid_Driver* gd);
37
38 //------------------------------------------------------
39 // in gint_k_env.cpp
40 //------------------------------------------------------
41 // calculate the envelop function via grid integrals
42 void cal_env_k(int ik,
43 const std::complex<double>* psi_k,
44 double* rho,
45 const std::vector<ModuleBase::Vector3<double>>& kvec_c,
46 const std::vector<ModuleBase::Vector3<double>>& kvec_d,
47 const UnitCell& ucell);
48
49 //------------------------------------------------------
50 // in gint_k_sparse1.cpp
51 //------------------------------------------------------
52 // similar to the above 3, just for the derivative
54 const int current_spin,
55 const int dim,
56 const double& sparse_threshold,
57 const std::map<Abfs::Vector3_Order<int>,
58 std::map<size_t, std::map<size_t, double>>>&
59 pvdpR_sparseMatrix,
60 LCAO_HS_Arrays& HS_Arrays,
61 const Parallel_Orbitals* pv);
62
64 const int dim,
65 const double& sparse_threshold,
66 const std::map<
68 std::map<size_t, std::map<size_t, std::complex<double>>>>&
69 pvdpR_soc_sparseMatrix,
70 LCAO_HS_Arrays& HS_Arrays,
71 const Parallel_Orbitals* pv);
72
73 void cal_dvlocal_R_sparseMatrix(const int& current_spin,
74 const double& sparse_threshold,
75 LCAO_HS_Arrays& HS_Arrays,
76 const Parallel_Orbitals* pv,
77 const UnitCell& ucell,
78 const Grid_Driver& gdriver);
79
80 private:
81 //----------------------------
82 // key variable
83 //----------------------------
84};
85
86#endif
Definition abfs-vector3_order.h:16
Definition gint_k.h:13
void cal_env_k(int ik, const std::complex< double > *psi_k, double *rho, const std::vector< ModuleBase::Vector3< double > > &kvec_c, const std::vector< ModuleBase::Vector3< double > > &kvec_d, const UnitCell &ucell)
Definition gint_k_env.cpp:11
void allocate_pvdpR()
Definition gint_k_pvdpr.cpp:14
void destroy_pvdpR()
Definition gint_k_pvdpr.cpp:40
void cal_dvlocal_R_sparseMatrix(const int &current_spin, const double &sparse_threshold, LCAO_HS_Arrays &HS_Arrays, const Parallel_Orbitals *pv, const UnitCell &ucell, const Grid_Driver &gdriver)
Definition gint_k_sparse1.cpp:321
Gint_k & operator=(Gint_k &&rhs)
move operator for the next ESolver to directly use its infomation
Definition gint_move.hpp:81
void distribute_pvdpR_soc_sparseMatrix(const int dim, const double &sparse_threshold, const std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, std::complex< double > > > > &pvdpR_soc_sparseMatrix, LCAO_HS_Arrays &HS_Arrays, const Parallel_Orbitals *pv)
Definition gint_k_sparse1.cpp:168
void distribute_pvdpR_sparseMatrix(const int current_spin, const int dim, const double &sparse_threshold, const std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, double > > > &pvdpR_sparseMatrix, LCAO_HS_Arrays &HS_Arrays, const Parallel_Orbitals *pv)
Definition gint_k_sparse1.cpp:14
void transfer_pvpR(hamilt::HContainer< double > *hR, const UnitCell *ucell_in, const Grid_Driver *gd)
transfer pvpR to this->hRGint then pass this->hRGint to Veff<OperatorLCAO>::hR
Definition gint_k_pvpr.cpp:21
Definition gint.h:20
const UnitCell * ucell
Definition gint.h:71
Definition sltk_grid_driver.h:43
Definition LCAO_HS_arrays.hpp:9
3 elements vector
Definition vector3.h:22
Definition parallel_orbitals.h:9
Definition unitcell.h:16
Definition hcontainer.h:144