ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
evolve_ofdft.h
Go to the documentation of this file.
1#ifndef Evolve_OFDFT_H
2#define Evolve_OFDFT_H
3#include <math.h>
4#include <stdio.h>
5
8#include "source_base/timer.h"
10#include "source_estate/elecstate.h" // electronic states
12
18{
19 public:
21 {
22 }
24 {
25 }
27 Charge& chr,
28 UnitCell& ucell,
29 std::vector<std::complex<double>>& pphi_,
30 ModulePW::PW_Basis* pw_rho);
31
33 Charge& chr,
34 UnitCell& ucell,
35 std::vector<std::complex<double>>& pphi_,
36 ModulePW::PW_Basis* pw_rho);
37
38 void renormalize_psi(Charge& chr, ModulePW::PW_Basis* pw_rho, std::vector<std::complex<double>>& pphi_);
39
40 private:
41 const double c_tf_
42 = 3.0 / 10.0 * std::pow(3 * std::pow(M_PI, 2.0), 2.0 / 3.0)
43 * 2; // 10/3*(3*pi^2)^{2/3}, multiply by 2 to convert unit from Hartree to Ry, finally in Ry*Bohr^(-2)
44
45 void cal_Hpsi(elecstate::ElecState* pelec,
46 Charge& chr,
47 UnitCell& ucell,
48 std::vector<std::complex<double>>& psi_,
49 ModulePW::PW_Basis* pw_rho,
50 std::vector<std::complex<double>>& Hpsi);
51 void cal_tf_potential(const double* const* prho,
52 ModulePW::PW_Basis* pw_rho,
53 ModuleBase::matrix& rpot);
54 void cal_vw_potential_phi(std::vector<std::complex<double>>& pphi,
55 ModulePW::PW_Basis* pw_rho,
56 std::vector<std::complex<double>>& Hpsi); // -1/2 \nabla^2 \phi
57 void cal_CD_potential(std::vector<std::complex<double>>& psi_,
58 ModulePW::PW_Basis* pw_rho,
60 double mCD_para);
61
62};
63#endif
Definition charge.h:17
TDOFDFT.
Definition evolve_ofdft.h:18
void cal_vw_potential_phi(std::vector< std::complex< double > > &pphi, ModulePW::PW_Basis *pw_rho, std::vector< std::complex< double > > &Hpsi)
Definition evolve_ofdft.cpp:111
void propagate_psi_RK2(elecstate::ElecState *pelec, Charge &chr, UnitCell &ucell, std::vector< std::complex< double > > &pphi_, ModulePW::PW_Basis *pw_rho)
Definition evolve_ofdft.cpp:355
void propagate_psi_RK4(elecstate::ElecState *pelec, Charge &chr, UnitCell &ucell, std::vector< std::complex< double > > &pphi_, ModulePW::PW_Basis *pw_rho)
Definition evolve_ofdft.cpp:274
void cal_tf_potential(const double *const *prho, ModulePW::PW_Basis *pw_rho, ModuleBase::matrix &rpot)
Definition evolve_ofdft.cpp:80
Evolve_OFDFT()
Definition evolve_ofdft.h:20
~Evolve_OFDFT()
Definition evolve_ofdft.h:23
void cal_CD_potential(std::vector< std::complex< double > > &psi_, ModulePW::PW_Basis *pw_rho, ModuleBase::matrix &rpot, double mCD_para)
Definition evolve_ofdft.cpp:168
const double c_tf_
Definition evolve_ofdft.h:42
void renormalize_psi(Charge &chr, ModulePW::PW_Basis *pw_rho, std::vector< std::complex< double > > &pphi_)
Definition evolve_ofdft.cpp:58
void cal_Hpsi(elecstate::ElecState *pelec, Charge &chr, UnitCell &ucell, std::vector< std::complex< double > > &psi_, ModulePW::PW_Basis *pw_rho, std::vector< std::complex< double > > &Hpsi)
Definition evolve_ofdft.cpp:14
Definition matrix.h:18
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
Definition unitcell.h:15
Definition elecstate.h:15