Control.h 1.86 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;
Francois Gygi committed
57 58 59
  double alpha_RSH;
  double beta_RSH;
  double mu_RSH;
60
  std::string spin;
Francois Gygi committed
61 62 63 64
  int delta_spin;

  double dt;
  int iprint;
65
  int timeout;
66

67 68
  double charge_mix_coeff;
  double charge_mix_rcut;
69
  int    charge_mix_ndim;
70 71 72

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

74 75
  double scf_tol;

Francois Gygi committed
76
  D3vector e_field;
77
  std::string polarization;
78 79 80

  std::string iter_cmd;
  int iter_cmd_period;
Francois Gygi committed
81 82
};
#endif