ergo
|
The main program for the ergo project. More...
#include <dirent.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <memory>
#include <string>
#include <list>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/times.h>
#include <errno.h>
#include <sstream>
#include "atom_labels.h"
#include "density_description_file.h"
#include "ergo_scripted.h"
#include "grid_reader.h"
#include "dft_common.h"
#include "lin_trans.h"
#include "integrals_2el.h"
#include "integrals_2el_explicit.h"
#include "integrals_2el_boxed.h"
#include "integrals_2el_K.h"
#include "integrals_2el_J.h"
#include "integrals_general.h"
#include "operator_matrix.h"
#include "memorymanag.h"
#include "molecule.h"
#include "output.h"
#include "scf.h"
#include "scf_utils.h"
#include "slr.h"
#include "matrix_utilities.h"
#include "SCF_restricted.h"
#include "SCF_unrestricted.h"
#include "units.h"
#include "ci.h"
#include "license.h"
#include "xyz_file_parser.h"
#include "electron_dynamics.h"
#include "tdhf_dynamics.h"
Classes | |
class | Ergo |
An object representing the state of the input processor. More... | |
class | ErgoE2Evaluator |
ErgoE2Evaluator implements the linear tranformation of the trial vector/transition density matrix by the E[2] operator. More... | |
class | ErgoOperator |
struct | filename_or_string_struct |
Macros | |
#define | SKIP_UNOFFICIAL_INPUT_PARAMS |
#define | KW(kl, vname, type, defval, desc) kl = variable_new_ ##type(kl, (type), (#vname), (desc), (defval)) |
Macro for compact expression of recognized keywords. More... | |
#define | variable_new_VAR_STRING variable_new |
#define | variable_new_VAR_FLOAT(kl, t, n, h, v) variable_new(kl,t,n,h,double(v)) |
#define | variable_new_VAR_INT variable_new |
#define | variable_new_VAR_LIST variable_new |
#define | var_get_int(n) var_get_int_template(NULL, (n)) |
#define | var_get_intJK(n) var_get_int_template(ergo.J_K_params, (n)) |
#define | var_get_intLR(n) var_get_int_template(ergo.lr_params, (n)) |
#define | var_get_intED(n) var_get_int_template(ergo.ed_params, (n)) |
#define | var_get_intMA(n) var_get_int_template(ergo.mat_params, (n)) |
#define | var_get_intOU(n) var_get_int_template(ergo.output_params, (n)) |
#define | var_get_intSCF(n) var_get_int_template(ergo.scf_params, (n)) |
#define | var_get_intXC(n) var_get_int_template(ergo.XC_params, (n)) |
#define | var_get_real(n) var_get_real_template(NULL, (n)) |
#define | var_get_realJK(n) var_get_real_template(ergo.J_K_params, (n)) |
#define | var_get_realLR(n) var_get_real_template(ergo.lr_params, (n)) |
#define | var_get_realED(n) var_get_real_template(ergo.ed_params, (n)) |
#define | var_get_realMA(n) var_get_real_template(ergo.mat_params, (n)) |
#define | var_get_realOU(n) var_get_real_template(ergo.output_params, (n)) |
#define | var_get_realSCF(n) var_get_real_template(ergo.scf_params, (n)) |
#define | var_get_realXC(n) var_get_real_template(ergo.XC_params, (n)) |
#define | var_get_stringLR(n) var_get_string(ergo.lr_params, (n)) |
#define | var_get_stringED(n) var_get_string(ergo.ed_params, (n)) |
#define | var_get_stringSCF(n) var_get_string(ergo.scf_params, (n)) |
#define | var_get_stringOU(n) var_get_string(ergo.output_params, (n)) |
#define | var_get_stringXC(n) var_get_string(ergo.XC_params, (n)) |
#define | KL ergo.J_K_params |
#define | KWJK(n, type, d) KW(ergo.J_K_params,n,type,jkOptions.n,(d)) |
#define | KL ergo.XC_params |
#define | KL ergo.output_params |
#define | KL ergo.mat_params |
#define | KWMAT(n, type, d) KW(ergo.mat_params,n,type,matOptions.n,d) |
#define | KL ergo.lr_params |
#define | KL ergo.ed_params |
#define | KWED(n, type, d) KW(ergo.ed_params,n,type,edOptions.n,d) |
#define | KL ergo.scf_params |
#define | KWSCF(n, type, d) KW(ergo.scf_params,n,type,scfOptions.n,d) |
#define | KL ergo.var_list |
Functions | |
static void | variable_free (struct variable *v) |
release variable data structure and its children. More... | |
static struct variable * | variable_new (struct variable *tail, enum VarType type, const char *name, const char *description,...) |
creates new variable item. More... | |
void | es_assign_num (struct variable *v, double val) |
es_assign_num assigns given numerical value to the variable. More... | |
void | es_assign_str (struct variable *v, const char *str) |
es_assign_str assigns given string to the variable. More... | |
int | es_assign_range (MolType mt, int rangeNo, int start, int cnt, const char *name) |
Defines a range of atoms that will be assigned a specific basis set. More... | |
struct variable * | es_find_var (struct variable *root, const char *name) |
finds the variable struct by More... | |
static int | var_get_int_template (struct variable *root, const char *name) |
static double | var_get_real_template (struct variable *root, const char *name) |
static const char * | var_get_string (struct variable *root, const char *name) |
static void | var_print_tree (struct variable *tree, FILE *f, int indent) |
void | es_mol_begin (enum MolType moleculeClass) |
starts processing the inline molecule input. More... | |
void | es_add_atom (const char *name, double x, double y, double z) |
adds single atom at given coordinates and given name. More... | |
void | es_mol_commit (void) |
Finish the inline definition of the molecule. More... | |
void | es_mol_unit_angstrom (void) |
Selects the units for the inline molecule format to be Angtroms, as opposed to default atomic units. More... | |
int | es_mol_read_molecule (const char *fname, enum MolType moleculeClass) |
reads molecule data in the MOLECULE.INP (Dalton) or XYZ format. More... | |
int | es_set_nthreads (int nThreads) |
int | es_set_nthreads_string (const char *str) |
static void | jkparams_set_from_vars (JK::Params &jkp) |
void | es_print_help () |
void | es_print_help_var (const struct variable *var) |
void | es_print_list_dft_funcs () |
void | es_print_is_cht_used () |
void | es_print_precision () |
Print precision that was selected for building the program. More... | |
static int | es_rmdir_with_content (const char *dirname) |
int | es_run (const char *mode, int save_pot) |
called when an actual calculation is to be commenced. More... | |
int | es_getexc (const char *mode, int no_exc) |
Computes the specified number of excited states. More... | |
static const int * | getOperatorParams (int opname) |
static void | solveForRHS (LR::SetOfEqSolver &solver, ErgoE2Evaluator &e2, int opName, const char *tmpdir, ergo_real freq) |
int | es_get_polarisability (const char *mode, const char *opName, double freq) |
Computes a dynamical polarizability for an operator specified by the. More... | |
static void | benchmark_mm () |
int | yyparse (void) |
void * | yy_scan_string (const char *str) |
void * | yy_create_buffer (FILE *f, int sz) |
void | yy_switch_to_buffer (void *) |
void | yy_delete_buffer (void *) |
void | yylex_destroy (void) |
static void | ergo_parse_file (FILE *inputFile) |
static void | ergo_parse_string (const char *str) |
void | es_warranty (void) |
int | main (int argc, char *argv[]) |
Variables | |
static Ergo | ergo |
static IntegralInfo * | ergoIntegralInfo = NULL |
Molecule stores geometry of the current molecule. More... | |
static BasisInfoStruct * | Basis_info = NULL |
FILE * | yyin |
file used by the lex-generated parser. More... | |
The main program for the ergo project.
It enables scripting and more complex input forms.
#define KL ergo.J_K_params |
Referenced by Ergo::registerInputVariables().
#define KL ergo.XC_params |
#define KL ergo.output_params |
#define KL ergo.mat_params |
#define KL ergo.lr_params |
#define KL ergo.ed_params |
#define KL ergo.scf_params |
#define KL ergo.var_list |
#define KW | ( | kl, | |
vname, | |||
type, | |||
defval, | |||
desc | |||
) | kl = variable_new_ ##type(kl, (type), (#vname), (desc), (defval)) |
Macro for compact expression of recognized keywords.
We make some effort to convert all the floating-point default values to double type so that they can be passed through the stack without problem. The only potential problem is a potential loss of precision if sizeof(ergo_real) > sizeof(double) but this we can hopefully live with for input variables, can we?
Referenced by Ergo::registerInputVariables().
#define KWED | ( | n, | |
type, | |||
d | |||
) | KW(ergo.ed_params,n,type,edOptions.n,d) |
Referenced by Ergo::registerInputVariables().
#define KWJK | ( | n, | |
type, | |||
d | |||
) | KW(ergo.J_K_params,n,type,jkOptions.n,(d)) |
Referenced by Ergo::registerInputVariables().
#define KWMAT | ( | n, | |
type, | |||
d | |||
) | KW(ergo.mat_params,n,type,matOptions.n,d) |
Referenced by Ergo::registerInputVariables().
#define KWSCF | ( | n, | |
type, | |||
d | |||
) | KW(ergo.scf_params,n,type,scfOptions.n,d) |
Referenced by Ergo::registerInputVariables().
#define SKIP_UNOFFICIAL_INPUT_PARAMS |
#define var_get_int | ( | n | ) | var_get_int_template(NULL, (n)) |
Referenced by es_run().
#define var_get_intED | ( | n | ) | var_get_int_template(ergo.ed_params, (n)) |
#define var_get_intJK | ( | n | ) | var_get_int_template(ergo.J_K_params, (n)) |
Referenced by jkparams_set_from_vars().
#define var_get_intLR | ( | n | ) | var_get_int_template(ergo.lr_params, (n)) |
Referenced by es_get_polarisability(), and es_getexc().
#define var_get_intMA | ( | n | ) | var_get_int_template(ergo.mat_params, (n)) |
Referenced by es_run().
#define var_get_intOU | ( | n | ) | var_get_int_template(ergo.output_params, (n)) |
#define var_get_intSCF | ( | n | ) | var_get_int_template(ergo.scf_params, (n)) |
Referenced by es_run().
#define var_get_intXC | ( | n | ) | var_get_int_template(ergo.XC_params, (n)) |
Referenced by es_run(), and ErgoE2Evaluator::transform().
#define var_get_real | ( | n | ) | var_get_real_template(NULL, (n)) |
Referenced by es_run().
#define var_get_realED | ( | n | ) | var_get_real_template(ergo.ed_params, (n)) |
Referenced by es_run().
#define var_get_realJK | ( | n | ) | var_get_real_template(ergo.J_K_params, (n)) |
Referenced by es_run(), and jkparams_set_from_vars().
#define var_get_realLR | ( | n | ) | var_get_real_template(ergo.lr_params, (n)) |
Referenced by es_get_polarisability(), and es_getexc().
#define var_get_realMA | ( | n | ) | var_get_real_template(ergo.mat_params, (n)) |
Referenced by es_run().
#define var_get_realOU | ( | n | ) | var_get_real_template(ergo.output_params, (n)) |
#define var_get_realSCF | ( | n | ) | var_get_real_template(ergo.scf_params, (n)) |
Referenced by es_run().
#define var_get_realXC | ( | n | ) | var_get_real_template(ergo.XC_params, (n)) |
Referenced by es_run(), and ErgoE2Evaluator::transform().
#define var_get_stringED | ( | n | ) | var_get_string(ergo.ed_params, (n)) |
Referenced by es_run().
#define var_get_stringLR | ( | n | ) | var_get_string(ergo.lr_params, (n)) |
#define var_get_stringOU | ( | n | ) | var_get_string(ergo.output_params, (n)) |
#define var_get_stringSCF | ( | n | ) | var_get_string(ergo.scf_params, (n)) |
Referenced by es_run().
#define var_get_stringXC | ( | n | ) | var_get_string(ergo.XC_params, (n)) |
Referenced by es_run().
#define variable_new_VAR_FLOAT | ( | kl, | |
t, | |||
n, | |||
h, | |||
v | |||
) | variable_new(kl,t,n,h,double(v)) |
#define variable_new_VAR_INT variable_new |
#define variable_new_VAR_LIST variable_new |
#define variable_new_VAR_STRING variable_new |
|
static |
References BETA, and mat::gemm().
Referenced by main().
|
static |
References ergo_scanner_reading_stdin, fileno(), yy_create_buffer(), yy_delete_buffer(), yy_switch_to_buffer(), and yyparse().
Referenced by main().
|
static |
References yy_delete_buffer(), yy_scan_string(), yy_switch_to_buffer(), and yyparse().
Referenced by main().
void es_add_atom | ( | const char * | name, |
double | x, | ||
double | y, | ||
double | z | ||
) |
adds single atom at given coordinates and given name.
The charge is specified currently by the name of the element.
References Molecule::addAtom(), charge, do_output(), ergo, get_charge_int_from_atom_label(), Ergo::ghostMolecule, LOG_AREA_MAIN, LOG_CAT_INFO, MOL_GHOST, MOL_MAIN, Ergo::molecule, Ergo::moleculeUnit, variable::name, and Ergo::readingMoleculeClass.
Referenced by yyparse().
void es_assign_num | ( | struct variable * | v, |
double | val | ||
) |
es_assign_num assigns given numerical value to the variable.
References do_output(), LOG_AREA_MAIN, LOG_CAT_ERROR, LOG_CAT_INFO, variable::v, VAR_FLOAT, and VAR_INT.
Referenced by es_set_nthreads(), and yyparse().
int es_assign_range | ( | MolType | mt, |
int | rangeNo, | ||
int | start, | ||
int | cnt, | ||
const char * | name | ||
) |
Defines a range of atoms that will be assigned a specific basis set.
The range can be reset by specifying a empty count.
mt | chooses main or the ghost molecule. |
rangeNo | choose the range to be assigned (1 to 3). |
start | the start index. |
cnt | the count of atoms in the range. |
name | the name of the basis set file. |
References BasissetNameRange::basisSetFileName, Ergo::basissetRangeList, Ergo::basissetRangeListGhost, BasissetNameRange::count, ergo, free(), MOL_GHOST, MOL_MAIN, variable::name, Ergo::NO_OF_BASIS_SET_RANGES, and BasissetNameRange::startAtomIndex.
Referenced by yyparse().
void es_assign_str | ( | struct variable * | v, |
const char * | str | ||
) |
es_assign_str assigns given string to the variable.
It additionally clears some local variables if a value is assigned to one of the "special" variables like "output_basis or "basis".
References Ergo::Basis, Basis_info, do_output(), ergo, free(), Ergo::GhostBasis, LOG_AREA_MAIN, LOG_CAT_INFO, variable::str, and variable::v.
Referenced by yyparse().
finds the variable struct by
name | starting in the specified root. |
root | must be of type VAR_LIST. |
References do_output(), ergo, es_find_var(), variable::list, LOG_AREA_MAIN, LOG_CAT_ERROR, variable::name, variable::next, variable::type, variable::v, VAR_LIST, and Ergo::var_list.
Referenced by es_find_var(), es_set_nthreads(), main(), var_get_int_template(), var_get_real_template(), var_get_string(), and yyparse().
int es_get_polarisability | ( | const char * | mode, |
const char * | opName, | ||
double | freq | ||
) |
Computes a dynamical polarizability for an operator specified by the.
opName | and frequency |
freq | - please check what does the literature say about computing multiple operators and/or frequencies at the same time. Consider using enumerated constants for operators instead of arbitrary strings to enforce parameter checking. It can be too early in this place for that - the operator names should be checked down the execution pipeline. |
mode | is the type of Hamiltonian (HF, or the xc functional). |
freq | tells the frequency. |
References Basis_info, compute_overlap_matrix(), LR::LRSolver::convThreshold, ddf_load_density(), do_output(), ergo, ergo_free(), ergoIntegralInfo, es_run(), Molecule::getNumberOfElectrons(), getOperatorParams(), LR::SetOfEqSolver::increaseSubspaceLimit(), LOG_AREA_MAIN, LOG_CAT_ERROR, LOG_CAT_INFO, Ergo::molecule, BasisInfoStruct::noOfBasisFuncs, solveForRHS(), var_get_intLR, var_get_realLR, and var_get_string().
Referenced by yyparse().
int es_getexc | ( | const char * | mode, |
int | no_exc | ||
) |
Computes the specified number of excited states.
no_exc | specifies number of the excited states to be computed, |
mode | specifies the calculation type (HF, LDA, etc). |
FIXME: consider passing callback functions instead of entire matrices. The callback functions fill in specified blocks of data with overlap matrix and the Fock matrix. Current solution keeps these two potentially huge data blocks allocated all the time in memory.
References Basis_info, compute_overlap_matrix(), LR::EigenSolver::computeMoments(), LR::LRSolver::convThreshold, ddf_load_density(), do_output(), ergo, ergo_free(), ergoIntegralInfo, es_run(), LR::EigenSolver::getFreq(), Molecule::getNumberOfElectrons(), LR::EigenSolver::getTransitionMoment2(), grid_free_files(), LR::EigenSolver::increaseSubspaceLimit(), LOG_AREA_MAIN, LOG_CAT_ERROR, Ergo::molecule, BasisInfoStruct::noOfBasisFuncs, LR::LRSolver::solve(), var_get_intLR, var_get_realLR, and var_get_string().
Referenced by yyparse().
void es_mol_begin | ( | enum MolType | moleculeClass | ) |
starts processing the inline molecule input.
Call to this routine should be followed by calls to es_add_atom and es_mol_commit.
moleculeClass | selects the main molecule (MOL_MAIN) or the ghost molecule (MOL_GHOST). |
References Basis_info, Molecule::clear(), ergo, Ergo::ghostMolecule, MOL_GHOST, MOL_MAIN, Ergo::molecule, Ergo::moleculeUnit, and Ergo::readingMoleculeClass.
void es_mol_commit | ( | void | ) |
Finish the inline definition of the molecule.
References ergo, Molecule::getNoOfAtoms(), Ergo::ghostMolecule, MOL_GHOST, Ergo::molecule, and Ergo::readingMoleculeClass.
Referenced by yyparse().
int es_mol_read_molecule | ( | const char * | fname, |
enum MolType | moleculeClass | ||
) |
reads molecule data in the MOLECULE.INP (Dalton) or XYZ format.
fname | contains the file name to be opened and read. |
moleculeClass | determines whether it is the main molecule (MOL_MAIN) or the ghost molecule (MOL_GHOST) to be read. |
References Ergo::Basis, Basis_info, do_output(), ergo, ergo_free(), Ergo::GhostBasis, Ergo::ghostMolecule, LOG_AREA_MAIN, LOG_CAT_INFO, MOL_GHOST, MOL_MAIN, Ergo::molecule, and Molecule::setFromMoleculeFile().
void es_mol_unit_angstrom | ( | void | ) |
Selects the units for the inline molecule format to be Angtroms, as opposed to default atomic units.
References ergo, Ergo::moleculeUnit, and UNIT_one_Angstrom.
void es_print_help | ( | ) |
References ergo, Ergo::var_list, and var_print_tree().
void es_print_help_var | ( | const struct variable * | var | ) |
References variable::description, and variable::name.
void es_print_is_cht_used | ( | ) |
Referenced by yyparse().
void es_print_list_dft_funcs | ( | ) |
References dftlistfuncs_(), and dftlistfuncs_using_printf_().
Referenced by yyparse().
void es_print_precision | ( | ) |
Print precision that was selected for building the program.
Referenced by yyparse().
|
static |
Referenced by es_run().
int es_run | ( | const char * | mode, |
int | save_pot | ||
) |
called when an actual calculation is to be commenced.
mode | is the first specified keyword. Some calculation types - like response ones - require the Fock matrix. |
save_pot | tells whether saving it is required: The save_final_potential configuration parameter will be overriden if save_pot is true. |
References ED::Params::ac_pulse_max, ED::Params::ac_pulse_omega, mat::FileWritable::activate(), BasisInfoStruct::addBasisfuncsForMolecule(), JK::ExchWeights::alpha, Ergo::Basis, Basis_info, Ergo::basissetRangeList, Ergo::basissetRangeListGhost, JK::ExchWeights::beta, SCF::Options::box_size_for_V_and_T, SCF::Options::break_on_energy_increase, SCF::Options::calculation_identifier, Atom::charge, SCF::Options::checkpoint_IDstr, SCF::Options::cht_blocksize, SCF::Options::cht_leavesSizeMax, SCF::Options::compute_core_density, SCF::Options::compute_gradient_fixeddens, JK::ExchWeights::computeRangeSeparatedExchange, SCF::Options::convergence_threshold, SCF::Options::create_2el_integral_m_file, SCF::Options::create_basis_func_coord_file, SCF::Options::create_checkpoints, SCF::Options::create_mtx_file_H_core, SCF::Options::create_mtx_file_S, SCF::Options::create_mtx_files_D, SCF::Options::create_mtx_files_dipole, SCF::Options::create_mtx_files_F, SCF::Options::create_mtx_files_S_and_quit, ED::Params::dc_pulse_strength, ED::Params::dc_pulse_time, dft_setfunc(), dftreport_(), SCF::Options::do_acc_scan_J, SCF::Options::do_acc_scan_K, SCF::Options::do_acc_scan_Vxc, do_CI(), SCF::Options::do_f_thresh_verification, do_output(), do_output_time(), SCF::Options::do_report_density_diff, do_tdhf_dynamics(), Ergo::edOptions, SCF::Options::eigensolver_accuracy, SCF::Options::eigensolver_maxiter, SCF::Options::eigenvectors_iterative_method, SCF::Options::eigenvectors_method, SCF::Options::electric_field, SCF::Options::electronic_temperature, enable_memory_usage_output(), ergo, ergoIntegralInfo, SCF::Options::error_maxabs_for_diis, es_rmdir_with_content(), Ergo::extraChargesMolecule, ED::Params::field_type, SCF::Options::force_restricted, SCF::Options::force_unrestricted, SCF::Options::gap_expected_lower_bound, Dft::GridParams::GC2, get_hf_weight_and_cam_params(), Molecule::getAtom(), Molecule::getNoOfAtoms(), mat::getNormType(), Molecule::getNumberOfElectrons(), Ergo::GhostBasis, Ergo::ghostMolecule, grid_free_files(), grid_set_tmpdir(), Dft::GridParams::gridType, SCF::MatOptions::inversePermutationHML, Ergo::jkOptions, jkparams_set_from_vars(), Dft::GridParams::LMG, LOG_AREA_MAIN, LOG_AREA_SCF, LOG_CAT_ERROR, LOG_CAT_INFO, LOG_CAT_RESULTS, Ergo::matOptions, SCF::Options::max_no_of_diis_matrices, SCF::Options::max_number_of_iterations, SCF::Options::max_restart_count, ED::Params::max_time, SCF::Options::method_and_basis_set, SCF::Options::min_number_of_iterations, Ergo::molecule, JK::ExchWeights::mu, Ergo::NO_OF_BASIS_SET_RANGES, SCF::MatOptions::no_of_buffers_per_allocator, SCF::Options::no_of_careful_first_scf_steps, SCF::Options::no_of_core_electrons, SCF::Options::no_of_impr_req_for_diis, SCF::Options::no_of_threads_for_V, BasisInfoStruct::noOfBasisFuncs, SCF::Options::output_density_at_every_step, SCF::Options::output_density_images, SCF::Options::output_density_images_boxwidth, SCF::Options::output_density_images_only, SCF::Options::output_expected_values_pos_operator, SCF::Options::output_homo_and_lumo_eigenvectors, SCF::Options::output_mulliken_pop, SCF::Options::output_statistics_mfiles, SCF::MatOptions::parallelLevel, SCF::MatOptions::prepare(), SCF::Options::puri_compute_eigv_in_each_iteration, SCF::Options::puri_eig_acc_factor_for_guess, SCF::Options::purification_create_m_files, SCF::Options::purification_eigvalue_err_limit, SCF::Options::purification_ignore_failure, SCF::Options::purification_maxmul, SCF::Options::purification_stop_crit_norm, SCF::Options::purification_subspace_err_limit, SCF::Options::purification_truncation_norm, SCF::Options::purification_use_rand_perturbation_for_alleigsint, SCF::Options::purification_with_acceleration, Dft::GridParams::radialGridScheme, Molecule::replaceAtom(), SCF::Options::run_shift_and_square_method_on_F, SCF::Options::save_final_potential, SCF::Options::save_permuted_F_matrix_in_bin, SCF::Options::scan_no_of_steps, SCF::Options::scan_start_thresh, SCF::Options::scan_step_factor, Ergo::scfOptions, Molecule::setNetCharge(), mat::FileWritable::setPath(), SCF::Options::shift_using_prev_density_matrix, SCF::Options::skip_H_core, SCF::MatOptions::sparse_matrix_block_factor_1, SCF::MatOptions::sparse_matrix_block_factor_2, SCF::MatOptions::sparse_matrix_block_factor_3, SCF::MatOptions::sparse_matrix_block_size, SCF::MatOptions::sparse_threshold, SCF::Options::sparse_threshold_for_S, SCF::Options::sparse_threshold_for_Z, SCF::Options::starting_guess_disturbance, SCF::Options::step_length_giveup, SCF::Options::step_length_start, SCF::Options::store_all_eigenvalues_to_file, SCF::MatOptions::threads, SCF::MatOptions::threshold_inch, ED::Params::timestep, SCF::Options::try_eigv_on_next_iteration_if_fail, Dft::GridParams::TURBO, Dft::GridParams::TYPE_HICU, SCF::MatOptions::use_allocator_manager, SCF::Options::use_dft, SCF::Options::use_diag_on_error, SCF::Options::use_diag_on_error_guess, SCF::Options::use_diagonalization, SCF::Options::use_diis_always, SCF::Options::use_new_stopping_criterion, SCF::Options::use_prev_vector_as_initial_guess, SCF::Options::use_simple_dense_H_core, SCF::Options::use_simple_starting_guess, Vector3D::v, var_get_int, var_get_intMA, var_get_intSCF, var_get_intXC, var_get_real, var_get_realED, var_get_realJK, var_get_realMA, var_get_realSCF, var_get_realXC, var_get_string(), var_get_stringED, var_get_stringSCF, var_get_stringXC, SCF::Options::verify_gradient_fixeddens, SCF::Options::write_guess_density_only, and SCF::Options::write_overlap_matrix.
Referenced by es_get_polarisability(), es_getexc(), and yyparse().
int es_set_nthreads | ( | int | nThreads | ) |
References dft_set_num_threads(), es_assign_num(), and es_find_var().
Referenced by es_set_nthreads_string(), and yyparse().
int es_set_nthreads_string | ( | const char * | str | ) |
References es_set_nthreads(), and variable::str.
void es_warranty | ( | void | ) |
References ERGO_LICENSE_TEXT_LONG.
Referenced by yyparse().
|
static |
References do_output(), LOG_AREA_MAIN, and LOG_CAT_ERROR.
Referenced by es_get_polarisability(), and solveForRHS().
|
static |
References JK::Params::exchange_box_size, JK::Params::fmm_box_size, JK::Params::fmm_branch_splitter_extent_1, JK::Params::fmm_branch_splitter_extent_2, JK::Params::fmm_branch_splitter_extent_3, JK::Params::fmm_branch_splitter_extent_4, JK::Params::fmm_branch_splitter_extent_5, JK::Params::fmm_no_of_branches, JK::Params::multipole_threshold_factor, JK::Params::noOfThreads_J, JK::Params::noOfThreads_K, JK::Params::threshold_J, JK::Params::threshold_K, JK::Params::use_differential_density, JK::Params::use_fmm, JK::Params::use_naive_fockmat_constr, var_get_intJK, and var_get_realJK.
Referenced by es_run(), and ErgoE2Evaluator::transform().
int main | ( | int | argc, |
char * | argv[] | ||
) |
References Basis_info, benchmark_mm(), dft_init(), do_output(), do_output_time(), enable_output(), ergo, ERGO_LICENSE_TEXT_BRIEF, ERGO_LICENSE_TEXT_LONG, ergo_parse_file(), ergo_parse_string(), ergoIntegralInfo, es_find_var(), es_mol_read_molecule(), es_print_help(), es_print_help_var(), es_set_nthreads_string(), Ergo::extraChargesMolecule, filename_or_string_struct::filename, fileno(), Ergo::ghostMolecule, LOG_AREA_MAIN, LOG_CAT_ERROR, LOG_CAT_INFO, MOL_MAIN, readMoleculeFileInXyzFormat(), Ergo::registerInputVariables(), filename_or_string_struct::str, variable::v, VERSION, mat::Failure::what(), and yylex_destroy().
|
static |
|
inlinestatic |
References do_output(), es_find_var(), LOG_AREA_MAIN, LOG_CAT_ERROR, variable::name, variable::v, and VAR_INT.
|
inlinestatic |
References do_output(), es_find_var(), LOG_AREA_MAIN, LOG_CAT_ERROR, variable::name, variable::v, and VAR_FLOAT.
|
inlinestatic |
References es_find_var(), variable::name, variable::v, and VAR_STRING.
Referenced by es_get_polarisability(), es_getexc(), and es_run().
|
static |
References variable::list, variable::name, variable::next, variable::num, variable::str, variable::type, variable::v, VAR_FLOAT, VAR_INT, VAR_LIST, VAR_STRING, and variable::vint.
Referenced by es_print_help().
|
static |
release variable data structure and its children.
References do_output(), ergo_free(), free(), LOG_AREA_MAIN, LOG_CAT_ERROR, variable::v, VAR_FLOAT, VAR_INT, VAR_LIST, and VAR_STRING.
Referenced by Ergo::~Ergo().
|
static |
creates new variable item.
Such variable can be later assigned values etc.
tail | is a tail of the variable list, allowing easy variable list creation. |
type | is the variable type (string, int, or float). |
name | is the variable name. |
description | is a string with a few sentences describing what the variable is for. |
References variable::description, do_output(), ergo_new, LOG_AREA_MAIN, LOG_CAT_ERROR, variable::name, variable::type, variable::v, VAR_FLOAT, VAR_INT, VAR_LIST, and VAR_STRING.
void* yy_create_buffer | ( | FILE * | f, |
int | sz | ||
) |
Referenced by ergo_parse_file().
void yy_delete_buffer | ( | void * | ) |
Referenced by ergo_parse_file(), and ergo_parse_string().
void* yy_scan_string | ( | const char * | str | ) |
Referenced by ergo_parse_string().
void yy_switch_to_buffer | ( | void * | ) |
Referenced by ergo_parse_file(), and ergo_parse_string().
void yylex_destroy | ( | void | ) |
Referenced by main().
int yyparse | ( | void | ) |
References ergo_scanner_reading_stdin, es_add_atom(), es_assign_num(), es_assign_range(), es_assign_str(), es_find_var(), es_get_polarisability(), es_getexc(), es_mol_commit(), es_mol_read_molecule(), es_print_help(), es_print_help_var(), es_print_is_cht_used(), es_print_list_dft_funcs(), es_print_precision(), es_run(), es_set_nthreads(), es_set_nthreads_string(), es_warranty(), last_token, MOL_GHOST, MOL_MAIN, YYSTYPE::num, YYSTYPE::var, YY_, YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN, YY_IGNORE_MAYBE_UNINITIALIZED_END, YY_REDUCE_PRINT, YY_STACK_PRINT, YY_SYMBOL_PRINT, YYABORT, YYACCEPT, yychar, yycheck, yydefact, yydefgoto, yydestruct(), YYDPRINTF, YYEMPTY, YYEOF, yyerror(), YYERROR, YYFINAL, YYINITDEPTH, YYLAST, yylex(), yylval, YYMAXDEPTH, yynerrs, YYNTOKENS, yypact, yypact_value_is_default, yypgoto, YYPOPSTACK, yyr1, yyr2, YYSIZE_T, yyalloc::yyss_alloc, YYSTACK_ALLOC, YYSTACK_BYTES, YYSTACK_FREE, YYSTACK_RELOCATE, yystos, YYSYNTAX_ERROR, yytable, yytable_value_is_error, YYTERROR, YYTRANSLATE, and yyalloc::yyvs_alloc.
Referenced by ergo_parse_file(), and ergo_parse_string().
|
static |
Referenced by es_assign_str(), es_get_polarisability(), es_getexc(), es_mol_begin(), es_mol_read_molecule(), es_run(), ErgoOperator::getOper(), and main().
|
static |
|
static |
Molecule stores geometry of the current molecule.
Referenced by es_get_polarisability(), es_getexc(), es_run(), main(), and ErgoE2Evaluator::transform().
FILE* yyin |
file used by the lex-generated parser.