Control.h 1.76 KB
Newer Older
Francois Gygi committed
1 2
////////////////////////////////////////////////////////////////////////////////
//
Francois Gygi committed
3 4 5 6
// Copyright (c) 2008 The Regents of the University of California
//
// This file is part of Qbox
//
Francois Gygi committed
7 8
// Qbox is distributed under the terms of the GNU General Public License
// as published by the Free Software Foundation, either version 2 of
Francois Gygi committed
9 10 11 12 13 14
// the License, or (at your option) any later version.
// See the file COPYING in the root directory of this distribution
// or <http://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////////////////////
//
Francois Gygi committed
15 16 17 18 19 20 21 22
// Control.h:
//
////////////////////////////////////////////////////////////////////////////////

#ifndef CONTROL_H
#define CONTROL_H

#include <string>
23
#include <vector>
Francois Gygi committed
24
#include "D3vector.h"
Francois Gygi committed
25 26 27 28

struct Control
{
  // control variables
29
  std::string debug, timing;
30
  std::string wf_dyn, atoms_dyn; // dynamics string flags
31
  int nite;
32
  double emass;       // electron mass
33

34
  double fermi_temp;  // temperature of Fermi distribution
Francois Gygi committed
35 36
  double ecutprec;

37
  std::string wf_diag;
38

39
  std::string tcp;
Francois Gygi committed
40 41
  double tcp_rcut;
  double tcp_sigma;
42

Francois Gygi committed
43
  double gms_mix; // mixing factor for generalized minimum spread functions
44

45
  std::string thermostat;
46
  double th_temp,th_time, th_width; // thermostat control
47

48 49 50
  std::string stress;
  std::string cell_dyn;
  std::string cell_lock;
51
  double cell_mass;
52
  double ecuts;         // confinement potential energy cutoff
53
  double ext_stress[6]; // external stress tensor: xx,yy,zz,xy,yz,xz
54

55
  std::string xc;
56
  double alpha_PBE0;
57
  std::string spin;
Francois Gygi committed
58 59 60 61
  int delta_spin;

  double dt;
  int iprint;
62
  int timeout;
63

64 65
  double charge_mix_coeff;
  double charge_mix_rcut;
66
  int    charge_mix_ndim;
67 68 69

  int blHF[3];
  double btHF;
Francois Gygi committed
70

71 72
  double scf_tol;

Francois Gygi committed
73
  D3vector e_field;
74
  std::string polarization;
Francois Gygi committed
75 76
};
#endif