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
10#include "source_basis/module_pw/pw_basis.h" // plane wave basis
11#include "source_cell/module_symmetry/symmetry.h" // symmetry analysis
12#include "source_estate/elecstate.h" // electronic states
13#include "source_estate/module_charge/charge_extra.h" // charge extrapolation
14#include "source_hamilt/module_surchem/surchem.h" // solvation model
15#include "source_pw/module_pwdft/VL_in_pw.h" // local pseudopotential
16#include "source_pw/module_pwdft/structure_factor.h" // structure factor
17
18#include <fstream>
19
20
22
29namespace ModuleESolver
30{
31class ESolver_FP: public ESolver
32{
33 public:
34 ESolver_FP();
35
36 virtual ~ESolver_FP();
37
39 virtual void before_all_runners(UnitCell& ucell, const Input_para& inp) override;
40
41 virtual void after_all_runners(UnitCell& ucell) override;
42
43 protected:
44 virtual void before_scf(UnitCell& ucell, const int istep);
45
46 virtual void after_scf(UnitCell& ucell, const int istep, const bool conv_esolver);
47
48 virtual void iter_finish(UnitCell& ucell, const int istep, int& iter, bool &conv_esolver);
49
52
55
58
67
70
73
76
79
82
83 bool pw_rho_flag = false;
84
86 #ifdef __MPI
87 double iter_time;
88 #else
89 std::chrono::system_clock::time_point iter_time;
90 #endif
91};
92} // namespace ModuleESolver
93
94#endif
charge extrapolation method
Definition charge_extra.h:33
Definition charge.h:18
Definition klist.h:13
Definition esolver_fp.h:32
bool pw_rho_flag
flag for pw_rho, 0: not initialized, 1: initialized
Definition esolver_fp.h:83
Charge chr
Electorn charge density.
Definition esolver_fp.h:57
ModulePW::PW_Basis * pw_rhod
Definition esolver_fp.h:65
virtual void iter_finish(UnitCell &ucell, const int istep, int &iter, bool &conv_esolver)
Definition esolver_fp.cpp:152
ModulePW::PW_Basis_Big * pw_big
dense grid for USPP
Definition esolver_fp.h:66
double iter_time
the start time of scf iteration
Definition esolver_fp.h:87
pseudopot_cell_vl locpp
local pseudopotentials
Definition esolver_fp.h:75
K_Vectors kv
K points in Brillouin zone.
Definition esolver_fp.h:54
ESolver_FP()
Definition esolver_fp.cpp:25
surchem solvent
solvent model
Definition esolver_fp.h:81
virtual void after_scf(UnitCell &ucell, const int istep, const bool conv_esolver)
Definition esolver_fp.cpp:65
Charge_Extra CE
charge extrapolation method
Definition esolver_fp.h:78
virtual ~ESolver_FP()
Definition esolver_fp.cpp:29
ModulePW::PW_Basis * pw_rho
Definition esolver_fp.h:64
elecstate::ElecState * pelec
These pointers will be deleted in the free_pointers() function every ion step.
Definition esolver_fp.h:51
virtual void before_all_runners(UnitCell &ucell, const Input_para &inp) override
Initialize of the first-principels energy solver.
Definition esolver_fp.cpp:40
virtual void before_scf(UnitCell &ucell, const int istep)
Definition esolver_fp.cpp:84
Structure_Factor sf
Structure factors that used with plane-wave basis set.
Definition esolver_fp.h:72
virtual void after_all_runners(UnitCell &ucell) override
perform post processing calculations
Definition esolver_fp.cpp:196
Parallel_Grid Pgrid
parallel for rho grid
Definition esolver_fp.h:69
Definition esolver.h:11
bool conv_esolver
Definition esolver.h:47
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:17
Definition elecstate.h:15
Definition VL_in_pw.h:11
Definition surchem.h:15
The First-Principles (FP) Energy Solver Class.
Definition opt_test_tools.cpp:93
Definition input_parameter.h:13