ergo
|
Go to the source code of this file.
Classes | |
struct | variable |
describes a variable recognized by the scripting system. More... | |
Macros | |
#define | EXTERN_C |
Enumerations | |
enum | VarType { VAR_STRING, VAR_FLOAT, VAR_INT, VAR_LIST } |
VarType defines recognized variable types. More... | |
enum | MolType { MOL_MAIN, MOL_GHOST } |
MolType decides whether molecule data access routines modify the main or the ghost molecule. More... | |
Functions | |
EXTERN_C void | es_assign_num (struct variable *var, double val) |
es_assign_num assigns given numerical value to the variable. More... | |
EXTERN_C void | es_assign_str (struct variable *var, const char *str) |
es_assign_str assigns given string to the variable. More... | |
EXTERN_C int | es_assign_range (enum 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... | |
EXTERN_C struct variable * | es_find_var (struct variable *root, const char *name) |
finds the variable struct by More... | |
EXTERN_C void | es_mol_begin (enum MolType moleculeClass) |
starts processing the inline molecule input. More... | |
EXTERN_C void | es_add_atom (const char *name, double x, double y, double z) |
adds single atom at given coordinates and given name. More... | |
EXTERN_C void | es_mol_commit (void) |
Finish the inline definition of the molecule. More... | |
EXTERN_C void | es_mol_unit_angstrom (void) |
Selects the units for the inline molecule format to be Angtroms, as opposed to default atomic units. More... | |
EXTERN_C int | es_mol_read_molecule (const char *fname, enum MolType moleculeClass) |
reads molecule data in the MOLECULE.INP (Dalton) or XYZ format. More... | |
EXTERN_C void | es_print_help () |
EXTERN_C void | es_print_help_var (const struct variable *root) |
EXTERN_C void | es_print_list_dft_funcs () |
EXTERN_C void | es_print_is_cht_used () |
EXTERN_C void | es_print_precision () |
Print precision that was selected for building the program. More... | |
EXTERN_C int | es_run (const char *mode, int save_pot) |
called when an actual calculation is to be commenced. More... | |
EXTERN_C void | es_warranty (void) |
EXTERN_C int | es_getexc (const char *mode, int modes) |
Computes the specified number of excited states. More... | |
EXTERN_C int | es_get_polarisability (const char *mode, const char *opname, double freq) |
Computes a dynamical polarizability for an operator specified by the. More... | |
EXTERN_C int | es_set_nthreads (int nThreads) |
EXTERN_C int | es_set_nthreads_string (const char *str) |
Variables | |
int | ergo_scanner_lineno |
int | ergo_scanner_reading_stdin |
int | es_quit |
contains ergo input processor definitions. Currently it requires access to all the modules. It is trivial to make all the modules to register modifable variables etc settings. It is more complex to expose access to routines because some stub routines placing arguments on stack may be needed. Unless we skip arguments and always require that modules must be set up and then a "run" method is called.
#define EXTERN_C |
enum MolType |
enum VarType |
EXTERN_C 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.
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().
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, MOL_GHOST, MOL_MAIN, variable::name, Ergo::NO_OF_BASIS_SET_RANGES, and BasissetNameRange::startAtomIndex.
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, Ergo::GhostBasis, LOG_AREA_MAIN, LOG_CAT_INFO, variable::str, and variable::v.
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, Ergo::var_list, and VAR_LIST.
Referenced by es_find_var(), es_set_nthreads(), main(), var_get_int_template(), var_get_real_template(), and var_get_string().
EXTERN_C 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().
EXTERN_C 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().
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.
EXTERN_C 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.
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().
Referenced by main().
EXTERN_C 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.
EXTERN_C void es_print_help | ( | ) |
References ergo, Ergo::var_list, and var_print_tree().
Referenced by main().
References variable::description, and variable::name.
Referenced by main().
EXTERN_C void es_print_is_cht_used | ( | ) |
EXTERN_C void es_print_list_dft_funcs | ( | ) |
References dftlistfuncs_(), and dftlistfuncs_using_printf_().
EXTERN_C void es_print_precision | ( | ) |
Print precision that was selected for building the program.
EXTERN_C 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, SCF::Options::go_back_X_iter_proj_method, grid_free_files(), grid_set_tmpdir(), Dft::GridParams::gridType, SCF::MatOptions::inversePermutationHML, Ergo::jkOptions, jkparams_set_from_vars(), SCF::Options::jump_over_X_iter_proj_method, 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::number_of_occupied_eigenvectors, SCF::Options::number_of_unoccupied_eigenvectors, 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(), and es_getexc().
EXTERN_C int es_set_nthreads | ( | int | nThreads | ) |
References dft_set_num_threads(), es_assign_num(), and es_find_var().
Referenced by es_set_nthreads_string().
EXTERN_C int es_set_nthreads_string | ( | const char * | str | ) |
References es_set_nthreads(), and variable::str.
Referenced by main().
EXTERN_C void es_warranty | ( | void | ) |
References ERGO_LICENSE_TEXT_LONG.
int ergo_scanner_lineno |
Referenced by yyerror().
int ergo_scanner_reading_stdin |
Referenced by ergo_parse_file(), and yyerror().
int es_quit |