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
9#include "source_base/timer.h"
11#include "source_estate/elecstate.h" // electronic states
13
19{
20 public:
22 {
23 }
25 {
26 }
28 Charge& chr,
29 UnitCell& ucell,
30 std::vector<std::complex<double>>& pphi_,
31 ModulePW::PW_Basis* pw_rho);
32
34 Charge& chr,
35 UnitCell& ucell,
36 std::vector<std::complex<double>>& pphi_,
37 ModulePW::PW_Basis* pw_rho);
38
39 void renormalize_psi(Charge& chr, ModulePW::PW_Basis* pw_rho, std::vector<std::complex<double>>& pphi_);
40
41 private:
42 const double c_tf_
43 = 3.0 / 10.0 * std::pow(3 * std::pow(M_PI, 2.0), 2.0 / 3.0)
44 * 2; // 10/3*(3*pi^2)^{2/3}, multiply by 2 to convert unit from Hartree to Ry, finally in Ry*Bohr^(-2)
45
46 void cal_Hpsi(elecstate::ElecState* pelec,
47 Charge& chr,
48 UnitCell& ucell,
49 std::vector<std::complex<double>>& psi_,
50 ModulePW::PW_Basis* pw_rho,
51 std::vector<std::complex<double>>& Hpsi);
52 void cal_tf_potential(const double* const* prho,
53 ModulePW::PW_Basis* pw_rho,
54 ModuleBase::matrix& rpot);
55 void cal_vw_potential_phi(std::vector<std::complex<double>>& pphi,
56 ModulePW::PW_Basis* pw_rho,
57 std::vector<std::complex<double>>& Hpsi); // -1/2 \nabla^2 \phi
58 void cal_CD_potential(std::vector<std::complex<double>>& psi_,
59 ModulePW::PW_Basis* pw_rho,
61 double mCD_para);
62
63};
64#endif
Definition charge.h:18
TDOFDFT.
Definition evolve_ofdft.h:19
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:96
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:327
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:246
void cal_tf_potential(const double *const *prho, ModulePW::PW_Basis *pw_rho, ModuleBase::matrix &rpot)
Definition evolve_ofdft.cpp:69
Evolve_OFDFT()
Definition evolve_ofdft.h:21
~Evolve_OFDFT()
Definition evolve_ofdft.h:24
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:147
const double c_tf_
Definition evolve_ofdft.h:43
void renormalize_psi(Charge &chr, ModulePW::PW_Basis *pw_rho, std::vector< std::complex< double > > &pphi_)
Definition evolve_ofdft.cpp:49
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:8
Definition matrix.h:19
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:17
Definition elecstate.h:15