ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
esolver_fp.h
Go to the documentation of this file.
1#ifndef ESOLVER_FP_H
2#define ESOLVER_FP_H
3
4#include "esolver.h"
5
6#ifndef __MPI
7#include <chrono>
8#endif
9
12
15
18
21
24
27
30
31#include <fstream>
32
33
35
42namespace ModuleESolver
43{
44class ESolver_FP: public ESolver
45{
46 public:
48 ESolver_FP();
49
51 virtual ~ESolver_FP();
52
54 virtual void before_all_runners(UnitCell& ucell, const Input_para& inp) override;
55
56 virtual void after_all_runners(UnitCell& ucell) override;
57
58 protected:
60 virtual void before_scf(UnitCell& ucell, const int istep);
61
63 virtual void after_scf(UnitCell& ucell, const int istep, const bool conv_esolver);
64
66 virtual void iter_finish(UnitCell& ucell, const int istep, int& iter, bool &conv_esolver);
67
72
75
78
87
90
93
96
99
102
103 int pw_rho_flag = false;
104
106 #ifdef __MPI
107 double iter_time;
108 #else
109 std::chrono::system_clock::time_point iter_time;
110 #endif
111};
112} // namespace ModuleESolver
113
114#endif
charge extrapolation method
Definition charge_extra.h:33
Definition charge.h:20
Definition klist.h:13
Definition esolver_fp.h:45
Charge chr
Electorn charge density.
Definition esolver_fp.h:77
ModulePW::PW_Basis * pw_rhod
Definition esolver_fp.h:85
virtual void iter_finish(UnitCell &ucell, const int istep, int &iter, bool &conv_esolver)
Something to do after hamilt2rho function in each iter loop.
Definition esolver_fp.cpp:401
ModulePW::PW_Basis_Big * pw_big
dense grid for USPP
Definition esolver_fp.h:86
double iter_time
the start time of scf iteration
Definition esolver_fp.h:107
int pw_rho_flag
flag for pw_rho, 0: not initialized, 1: initialized
Definition esolver_fp.h:103
pseudopot_cell_vl locpp
local pseudopotentials
Definition esolver_fp.h:95
K_Vectors kv
K points in Brillouin zone.
Definition esolver_fp.h:74
ESolver_FP()
Constructor.
Definition esolver_fp.cpp:29
surchem solvent
solvent model
Definition esolver_fp.h:101
virtual void after_scf(UnitCell &ucell, const int istep, const bool conv_esolver)
Something to do after SCF iterations when SCF is converged or comes to the max iter step.
Definition esolver_fp.cpp:152
Charge_Extra CE
charge extrapolation method
Definition esolver_fp.h:98
virtual ~ESolver_FP()
Deconstructor.
Definition esolver_fp.cpp:33
ModulePW::PW_Basis * pw_rho
Definition esolver_fp.h:84
elecstate::ElecState * pelec
Electronic states.
Definition esolver_fp.h:71
virtual void before_all_runners(UnitCell &ucell, const Input_para &inp) override
Initialize of the first-principels energy solver.
Definition esolver_fp.cpp:47
virtual void before_scf(UnitCell &ucell, const int istep)
Something to do before SCF iterations.
Definition esolver_fp.cpp:281
Structure_Factor sf
Structure factors that used with plane-wave basis set.
Definition esolver_fp.h:92
virtual void after_all_runners(UnitCell &ucell) override
perform post processing calculations
Definition esolver_fp.cpp:445
Parallel_Grid Pgrid
parallel for rho grid
Definition esolver_fp.h:89
Definition esolver.h:11
bool conv_esolver
Definition esolver.h:44
Definition pw_basis_big.h:16
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
Definition parallel_grid.h:8
Definition structure_factor.h:11
Definition unitcell.h:16
Definition elecstate.h:15
Definition VL_in_pw.h:11
Definition surchem.h:15
plane wave basis
Definition opt_test_tools.cpp:93
Definition input_parameter.h:12