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
7
8#include "source_basis/module_pw/pw_basis.h" // plane wave basis
9#include "source_estate/elecstate.h" // electronic states
10#include "source_estate/module_charge/charge_extra.h" // charge extrapolation
11#include "source_hamilt/module_surchem/surchem.h" // solvation model
12#include "source_pw/module_pwdft/vl_pw.h" // local pseudopotential
13#include "source_pw/module_pwdft/structure_factor.h" // structure factor
14
15#include <fstream>
16
17
19
26namespace ModuleESolver
27{
28class ESolver_FP: public ESolver
29{
30 public:
31 ESolver_FP();
32
33 virtual ~ESolver_FP();
34
36 virtual void before_all_runners(UnitCell& ucell, const Input_para& inp) override;
37
38 virtual void after_all_runners(UnitCell& ucell) override;
39
40 protected:
41 virtual void before_scf(UnitCell& ucell, const int istep);
42
43 virtual void after_scf(UnitCell& ucell, const int istep, const bool conv_esolver);
44
45 virtual void iter_finish(UnitCell& ucell, const int istep, int& iter, bool &conv_esolver);
46
49
52
55
64
67
70
73
76
79
80 bool pw_rho_flag = false;
81
84};
85} // namespace ModuleESolver
86
87#endif
charge extrapolation method
Definition charge_extra.h:33
Definition charge.h:17
Definition klist.h:12
Definition esolver_fp.h:29
bool pw_rho_flag
flag for pw_rho, 0: not initialized, 1: initialized
Definition esolver_fp.h:80
Charge chr
Electorn charge density.
Definition esolver_fp.h:54
ModulePW::PW_Basis * pw_rhod
Definition esolver_fp.h:62
virtual void iter_finish(UnitCell &ucell, const int istep, int &iter, bool &conv_esolver)
Definition esolver_fp.cpp:185
ModulePW::PW_Basis_Big * pw_big
dense grid for USPP
Definition esolver_fp.h:63
pseudopot_cell_vl locpp
local pseudopotentials
Definition esolver_fp.h:72
K_Vectors kv
K points in Brillouin zone.
Definition esolver_fp.h:51
ESolver_FP()
Definition esolver_fp.cpp:25
surchem solvent
solvent model
Definition esolver_fp.h:78
virtual void after_scf(UnitCell &ucell, const int istep, const bool conv_esolver)
Definition esolver_fp.cpp:98
Charge_Extra CE
charge extrapolation method
Definition esolver_fp.h:75
virtual ~ESolver_FP()
Definition esolver_fp.cpp:29
ModulePW::PW_Basis * pw_rho
Definition esolver_fp.h:61
elecstate::ElecState * pelec
These pointers will be deleted in the free_pointers() function every ion step.
Definition esolver_fp.h:48
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:117
Structure_Factor sf
Structure factors that used with plane-wave basis set.
Definition esolver_fp.h:69
virtual void after_all_runners(UnitCell &ucell) override
perform post processing calculations
Definition esolver_fp.cpp:229
ModuleBase::TimePoint iter_time
the start time of scf iteration
Definition esolver_fp.h:83
Parallel_Grid Pgrid
parallel for rho grid
Definition esolver_fp.h:66
Definition esolver.h:12
bool conv_esolver
Definition esolver.h:48
Definition pw_basis_big.h:17
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:7
Definition structure_factor.h:10
Definition unitcell.h:15
Definition elecstate.h:15
Definition vl_pw.h:10
Definition surchem.h:13
double TimePoint
Time point type that works in both MPI and non-MPI environments.
Definition timer_wrapper.h:15
The First-Principles (FP) Energy Solver Class.
Definition opt_test_tools.cpp:93
Definition input_parameter.h:12