40#ifndef MADNESS_CHEM_CALCULATIONPARAMETERS_H__INCLUDED
41#define MADNESS_CHEM_CALCULATIONPARAMETERS_H__INCLUDED
52 static constexpr char const*
tag =
"dft";
70 initialize<std::string> (
"hfexalg",
"multiworld_row",
"hf exchange algorithm",{
"multiworld",
"multiworld_row",
"fetch_compute",
"smallmem",
"largemem"});
83 initialize<int> (
"nopen",0,
"number of unpaired electrons = nalpha-nbeta");
87 initialize<int> (
"plotlo",0,
"range of MOs to print (for both spins if polarized");
88 initialize<int> (
"plothi",-1,
"range of MOs to print (for both spins if polarized");
89 initialize<bool> (
"plotdens",
false,
"If true print the density at convergence");
90 initialize<bool> (
"plotcoul",
false,
"If true plot the total coulomb potential at convergence");
91 initialize<bool> (
"plotcube",
false,
"If true also write Gaussian .cube files (for Avogadro/VMD) alongside .dx");
93 initialize<std::string> (
"pointgroup",
"c1",
"use point (sub) group symmetry if not localized",{
"c1",
"c2",
"ci",
"cs",
"c2v",
"c2h",
"d2",
"d2h"});
95 initialize<bool> (
"restartao",
false,
"if true restart from orbitals projected into AO basis (STO3G) on disk");
96 initialize<bool> (
"no_compute",
false,
"if true use orbitals on disk, set value to computed");
98 initialize<int> (
"maxsub",10,
"size of iterative subspace ... set to 0 or 1 to disable");
99 initialize<double> (
"orbitalshift",0.0,
"scf orbital shift: shift the occ orbitals to lower energies");
100 initialize<int> (
"npt_plot",101,
"no. of points to use in each dim for plots");
103 initialize<std::string> (
"aobasis",
"6-31g",
"AO basis used for initial guess (6-31gss, 6-31g, 3-21g, sto-6g, sto-3g)");
104 initialize<bool> (
"derivatives",
false,
"if true calculate nuclear derivatives");
106 initialize<bool> (
"conv_only_dens",
false,
"if true remove bsh_residual from convergence criteria (deprecated)");
107 initialize<bool> (
"psp_calc",
false,
"pseudopotential calculation for all atoms");
109 initialize<std::string> (
"ac_data",
"none",
"do a calculation with asymptotic correction (see ACParameters class in chem/AC.h for details)");
110 initialize<bool> (
"pure_ae",
true,
"pure all electron calculation with no pseudo-atoms");
111 initialize<int> (
"print_level",3,
"0: no output; 1: final energy; 2: iterations; 3: timings; 10: debug");
112 initialize<std::string> (
"molecular_structure",
"inputfile",
"where to read the molecule from: inputfile or name from the library");
117 initialize<int> (
"nmo_alpha",-1,
"number of alpha spin molecular orbitals");
118 initialize<int> (
"nmo_beta",-1,
"number of beta spin molecular orbitals");
130 initialize<bool> (
"ginitial_hessian",
false,
"compute inital hessian for optimization");
132 initialize<int> (
"nv_factor",1,
"factor to multiply number of virtual orbitals with when automatically decreasing nvirt");
133 initialize<int> (
"vnucextra",2,
"load balance parameter for nuclear pot");
137 initialize<std::string> (
"nwfile",
"none",
"Base name of nwchem output files (.out and .movecs extensions) to read from");
255 for (
size_t iatom = 0; iatom <
molecule.natom(); iatom++) {
256 if (
molecule.get_pseudo_atom(iatom)){
274 double z =
molecule.total_nuclear_charge();
305 error(
"\n\nsymmetry and localization cannot be used at the same time\n"
306 "switch from local to canonical orbitals (keyword canon)\n\n");
310 if (
get<bool>(
"gopt") &&
nwfile() !=
"none")
error(
"NWchem initialization only supports single point energy calculations.");
Definition molecule.h:129
class for holding the parameters for calculation
Definition chem/QCCalculationParametersBase.h:296
void read_input_and_commandline_options(World &world, const commandlineparser &parser, const std::string tag)
Definition chem/QCCalculationParametersBase.h:332
void set_user_defined_value(const std::string &key, const T &value)
Definition chem/QCCalculationParametersBase.h:542
void set_derived_value(const std::string &key, const T &value)
Definition chem/QCCalculationParametersBase.h:429
A tensor is a multidimensional array.
Definition tensor.h:318
A parallel world class.
Definition world.h:132
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
void error(const char *msg)
Definition world.cc:143
static XNonlinearSolver< std::vector< Function< T, NDIM > >, T, vector_function_allocator< T, NDIM > > nonlinear_vector_solver(World &world, const long nvec)
Definition nonlinsol.h:371
Definition CalculationParameters.h:51
double gval() const
Definition CalculationParameters.h:233
bool converge_each_energy() const
Definition CalculationParameters.h:165
std::vector< double > protocol() const
Definition CalculationParameters.h:213
double charge() const
Definition CalculationParameters.h:196
CalculationParameters(const CalculationParameters &other)=default
void read_input_and_commandline_options(World &world, const commandlineparser &parser, const std::string tag)
Definition chem/QCCalculationParametersBase.h:332
bool converge_density() const
Definition CalculationParameters.h:153
int nv_factor() const
Definition CalculationParameters.h:176
bool do_symmetry() const
Definition CalculationParameters.h:195
bool localize_pm() const
Definition CalculationParameters.h:192
bool gopt() const
Definition CalculationParameters.h:229
void set_derived_values(const Molecule &molecule)
Definition CalculationParameters.h:253
int k() const
Definition CalculationParameters.h:188
bool converge_bsh_residual() const
Definition CalculationParameters.h:157
std::vector< std::string > memory() const
Definition CalculationParameters.h:209
CalculationParameters()
ctor reading out the input file
Definition CalculationParameters.h:66
bool converge_total_energy() const
Definition CalculationParameters.h:161
Tensor< double > plot_cell() const
Definition CalculationParameters.h:239
std::string nwfile() const
Definition CalculationParameters.h:237
static constexpr char const * tag
Definition CalculationParameters.h:52
std::string prefix() const
Definition CalculationParameters.h:148
std::string ac_data() const
Definition CalculationParameters.h:205
int nmo_alpha() const
Definition CalculationParameters.h:178
int nopen() const
Definition CalculationParameters.h:170
bool dipole() const
Definition CalculationParameters.h:227
bool save() const
Definition CalculationParameters.h:214
double dconv() const
Definition CalculationParameters.h:151
std::string algopt() const
Definition CalculationParameters.h:230
double econv() const
Definition CalculationParameters.h:150
int nvalpha() const
Definition CalculationParameters.h:174
int vnucextra() const
Definition CalculationParameters.h:222
int print_level() const
Definition CalculationParameters.h:197
std::string deriv() const
Definition CalculationParameters.h:202
bool do_localize() const
Definition CalculationParameters.h:191
std::string hfexalg() const
Definition CalculationParameters.h:207
double L() const
Definition CalculationParameters.h:187
int gmaxiter() const
Definition CalculationParameters.h:231
std::string localize_method() const
Definition CalculationParameters.h:190
bool ginitial_hessian() const
Definition CalculationParameters.h:235
int loadbalparts() const
Definition CalculationParameters.h:223
std::string aobasis() const
Definition CalculationParameters.h:211
int nalpha() const
Definition CalculationParameters.h:171
std::string dft_deriv() const
Definition CalculationParameters.h:203
int maxsub() const
Definition CalculationParameters.h:219
int nvbeta() const
Definition CalculationParameters.h:175
double gprec() const
Definition CalculationParameters.h:234
bool derivatives() const
Definition CalculationParameters.h:226
int nbeta() const
Definition CalculationParameters.h:172
int nmo_beta() const
Definition CalculationParameters.h:179
double gtol() const
Definition CalculationParameters.h:232
bool have_beta() const
Definition CalculationParameters.h:181
bool no_compute() const
Definition CalculationParameters.h:184
bool spin_restricted() const
Definition CalculationParameters.h:183
int maxiter() const
Definition CalculationParameters.h:199
double orbitalshift() const
Definition CalculationParameters.h:200
double lo() const
Definition CalculationParameters.h:186
std::string pcm_data() const
Definition CalculationParameters.h:204
bool restart() const
Definition CalculationParameters.h:215
bool restart_cphf() const
Definition CalculationParameters.h:217
bool restartao() const
Definition CalculationParameters.h:216
std::string get_tag() const override
Definition CalculationParameters.h:141
std::string pointgroup() const
Definition CalculationParameters.h:194
double maxrotn() const
Definition CalculationParameters.h:220
std::string xc() const
Definition CalculationParameters.h:206
CalculationParameters(World &world, const commandlineparser &parser)
Definition CalculationParameters.h:56
very simple command line parser
Definition commandlineparser.h:28
std::string value(const std::string key) const
Definition commandlineparser.h:84
bool key_exists(std::string key) const
Definition commandlineparser.h:80
void e()
Definition test_sig.cc:75
static Molecule molecule
Definition testperiodicdft.cc:39