1#ifndef MODULEHAMILTPW_ONSITE_PROJ_PW_H
2#define MODULEHAMILTPW_ONSITE_PROJ_PW_H
12#ifndef ONSITETEMPLATE_H
13#define ONSITETEMPLATE_H
21template<
typename T,
typename Device>
31 const bool cal_delta_spin,
34 template<
typename T_in,
typename Device_in = Device>
39 virtual void init(
const int ik_in)
override;
41 virtual void act(
const int nbands,
47 const bool is_first_node =
false)
const override;
49 const int *
get_isk()
const {
return this->isk;}
55 void cal_ps_dftu(
const int npol,
const int m)
const;
57 void update_becp(
const T* psi_in,
const int npol,
const int m)
const;
61 const int* isk =
nullptr;
67 mutable int* ip_iat =
nullptr;
68 mutable T* lambda_coeff =
nullptr;
69 mutable int* orb_l_iat =
nullptr;
70 mutable int* ip_m =
nullptr;
71 mutable int* vu_begin_iat =
nullptr;
72 mutable T* vu_device =
nullptr;
74 mutable int nkb_m = 0;
76 bool has_delta_spin =
false;
77 bool has_dftu =
false;
79 mutable bool init_dftu =
false;
80 mutable bool init_delta_spin =
false;
82 mutable T *ps =
nullptr;
85 base_device::DEVICE_CPU* cpu_ctx = {};
const int * get_isk() const
Definition onsite_proj_pw.h:49
typename GetTypeReal< T >::type Real
Definition onsite_proj_pw.h:25
const UnitCell * get_ucell() const
Definition onsite_proj_pw.h:50
Definition onsite_proj_pw.h:15
void add_onsite_proj(std::complex< float > *hpsi_in, const int npol, const int m) const
Definition onsite_proj_pw.cpp:362
void cal_ps_delta_spin(const int npol, const int m) const
Definition onsite_proj_pw.cpp:376
void update_becp(const std::complex< float > *psi_in, const int npol, const int m) const
Definition onsite_proj_pw.cpp:369
void cal_ps_dftu(const int npol, const int m) const
Definition onsite_proj_pw.cpp:382
Definition operator_pw.h:8
#define T
Definition exp.cpp:237
T type
Definition macros.h:8
Definition math_kernel_op.h:217
Definition math_kernel_op.h:192
Definition memory_op.h:115
Definition memory_op.h:17
Definition memory_op.h:31
Definition memory_op.h:61
Plus_U dftu
Definition test_dftu.cpp:14
const std::map< std::string, std::vector< double > > zero
Definition vdwd3_autoset_xcparam.cpp:326