JDFTx  1.2.0
Everything.h
1 /*-------------------------------------------------------------------
2 Copyright 2011 Ravishankar Sundararaman
3 Copyright 1996-2003 Sohrab Ismail-Beigi
4 
5 This file is part of JDFTx.
6 
7 JDFTx is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11 
12 JDFTx is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with JDFTx. If not, see <http://www.gnu.org/licenses/>.
19 -------------------------------------------------------------------*/
20 
21 #ifndef JDFTX_ELECTRONIC_EVERYTHING_H
22 #define JDFTX_ELECTRONIC_EVERYTHING_H
23 
24 #include <core/GridInfo.h>
25 #include <core/MinimizeParams.h>
26 #include <core/Coulomb.h>
27 #include <electronic/common.h>
28 #include <electronic/Control.h>
29 #include <electronic/Basis.h>
30 #include <electronic/IonInfo.h>
31 #include <electronic/Symmetries.h>
32 #include <electronic/ElecInfo.h>
33 #include <electronic/ElecVars.h>
34 #include <electronic/Energies.h>
35 #include <electronic/ExCorr.h>
36 #include <electronic/Dump.h>
37 #include <electronic/SCFparams.h>
38 #include <electronic/IonDynamicsParams.h>
39 #include <memory>
40 
42 {
43 public:
44  Control cntrl;
45  Dump dump;
46  GridInfo gInfo;
47  std::shared_ptr<GridInfo> gInfoWfns; //tighter grid sufficient for wavefunction operations
48  std::vector<Basis> basis;
49  IonInfo iInfo;
50  Symmetries symm;
51  Symmetries symmUnperturbed; //symmetries of unperturbed system in vibration calculations (symm is set to mode=SymmNone in these calculations)
53  std::vector<std::shared_ptr<ExCorr> > exCorrDiff;
54  std::shared_ptr<ExactExchange> exx;
55  ElecInfo eInfo;
56  ElecVars eVars;
57  Energies ener;
58 
66 
68  std::shared_ptr<Coulomb> coulomb;
69 
70  std::shared_ptr<VanDerWaals> vanDerWaals;
71  std::shared_ptr<Vibrations> vibrations;
72 
74  void setup();
75  void updateSupercell(bool force=false);
76 };
77 
78 #endif // JDFTX_ELECTRONIC_EVERYTHING_H
void updateSupercell(bool force=false)
(re-)initialize coulombParams.supercell if necessary (or if forced)
CoulombParams coulombParams
Coulomb truncation parameters.
Definition: Everything.h:67
MinimizeParams inverseKSminParams
Inverse Kohn-sham minimization parameters.
Definition: Everything.h:63
Simulation grid descriptor.
Definition: GridInfo.h:45
Definition: IonInfo.h:46
MinimizeParams latticeMinParams
lattice minimization parameters
Definition: Everything.h:62
std::shared_ptr< Vibrations > vibrations
Pair potential for vdw correction.
Definition: Everything.h:71
Parameters to control the minimization algorithm.
Definition: MinimizeParams.h:29
Definition: Energies.h:26
MinimizeParams ionicMinParams
ionic minimization parameters
Definition: Everything.h:60
void setup()
Vibrational mode calculator.
IonDynamicsParams ionDynamicsParams
Molecular dynamics parameters.
Definition: Everything.h:64
std::vector< std::shared_ptr< ExCorr > > exCorrDiff
Other exchange and correlation functionals for comparison.
Definition: Everything.h:53
Definition: Coulomb.h:29
Definition: ExCorr.h:72
Definition: SCFparams.h:27
ExCorr exCorr
Exchange and correlation functional.
Definition: Everything.h:52
std::shared_ptr< ExactExchange > exx
Exact exchange.
Definition: Everything.h:54
Definition: Everything.h:41
Geometry of the simulation grid.
Definition: ElecVars.h:30
Definition: Control.h:34
Definition: ElecInfo.h:49
Definition: Symmetries.h:32
MinimizeParams fluidMinParams
fluid minimization parameters
Definition: Everything.h:61
MinimizeParams elecMinParams
electronic minimization parameters
Definition: Everything.h:59
std::shared_ptr< Coulomb > coulomb
Coulomb interaction (optionally truncated)
Definition: Everything.h:68
SCFparams scfParams
Self-consistent field mixing parameters.
Definition: Everything.h:65
Stores the list of what to dump and when, and implements the functions to do so.
Definition: Dump.h:59
Parameters to control the Verlet algorithm.
Definition: IonDynamicsParams.h:37