ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
op_dftu_lcao.h
Go to the documentation of this file.
1#ifndef OPDFTULCAO_H
2#define OPDFTULCAO_H
3
4#include "source_base/timer.h"
5#include "operator_lcao.h"
6#include "source_lcao/module_dftu/dftu.h" // mohan add 20251107
7
8namespace hamilt
9{
10
11#ifndef __OPDFTUTEMPLATE
12#define __OPDFTUTEMPLATE
13
14template <class T>
15class OperatorDFTU : public T
16{
17};
18
19#endif
20
21template <typename TK, typename TR>
22class OperatorDFTU<OperatorLCAO<TK, TR>> : public OperatorLCAO<TK, TR>
23{
24 public:
26 const std::vector<ModuleBase::Vector3<double>>& kvec_d_in,
28 Plus_U* dftu_in, // mohan add 2025-11-05
29 const std::vector<int>& isk_in)
30 : isk(isk_in), OperatorLCAO<TK, TR>(hsk_in, kvec_d_in, hR_in)
31 {
32 this->cal_type = calculation_type::lcao_dftu;
33 this->dftu = dftu_in; // mohan add 2025-11-07
34 }
35
36 virtual void contributeHR() override;
37
38 virtual void contributeHk(int ik) override;
39
40 private:
41
42 Plus_U *dftu; // mohan add 20251107
43
44 bool HR_fixed_done = false;
45
46 const std::vector<int>& isk;
47};
48} // namespace hamilt
49#endif
Definition dftu.h:20
Definition hcontainer.h:144
Definition hs_matrix_k.hpp:11
virtual void contributeHk(int ik) override
Plus_U * dftu
Definition op_dftu_lcao.h:42
const std::vector< int > & isk
Definition op_dftu_lcao.h:46
Definition op_dftu_lcao.h:16
Definition operator_lcao.h:12
#define T
Definition exp.cpp:237
Definition hamilt.h:12
Plus_U dftu
Definition test_dftu.cpp:14