ergo
|
#include <basisinfo.h>
Public Member Functions | |
BasisInfoStruct (int use_6_d_funcs_=0) | |
Initializes all the fields to sane values. More... | |
BasisInfoStruct (const BasisInfoStruct &b) | |
Copies values from another BasisInfoStruct. More... | |
~BasisInfoStruct () | |
void | addBasisfuncsForPoint (ergo_real x, ergo_real y, ergo_real z, int shellType, ergo_real exponent, const IntegralInfo &integralInfo, int print_raw, int do_normalization, int skip_sort_shells) |
void | addBasisfuncsForAtomList (const Atom *atomList, int noOfAtoms, const basisset_info &basissetDefault, int noOfRanges, const basis_set_range_struct *rangeList, const IntegralInfo &integralInfo, int print_raw, int do_normalization, int skip_sort_shells) |
int | addBasisfuncsForMolecule (const Molecule &molecule, const char *basisset_filename_default, int noOfRanges, const BasissetNameRange *rangeList, const IntegralInfo &integralInfo, int print_raw, int do_normalization, int skip_sort_shells) |
Fills in BasisInfoStruct for given molecule and basisset_filename. More... | |
BasisInfoStruct * | permuteShells (const int *shellMap, const IntegralInfo &ii) const |
a factory method generating new BasisInfo struct with permuted shells and basis functions. More... | |
int | normalizeShells (const IntegralInfo &integralInfo) |
Normalizes shells so that the overlap of each basis function with itself will be 1. More... | |
int | get_basis_funcs () |
creates list of 'basis functions', and set startIndexInMatrix for each shell. More... | |
int | getSimplePrimitivesAll (const IntegralInfo &integralInfo) |
void | write_to_buffer (char *dataBuffer, size_t const bufferSize) const |
Function needed for Chunks&Tasks usage. More... | |
size_t | get_size () const |
Function needed for Chunks&Tasks usage. More... | |
void | assign_from_buffer (char const *dataBuffer, size_t const bufferSize) |
Function needed for Chunks&Tasks usage. More... | |
Static Public Member Functions | |
static int | getNoOfBasisFuncsForAtomType (const basisset_info &basisset, const IntegralInfo &integralInfo, int atomCharge, int use_6_d_funcs) |
Public Attributes | |
int | use_6_d_funcs |
Whether to use 6 d-type basis functions instead of the usual 5 functions. More... | |
int | noOfShells |
ShellSpecStruct * | shellList |
int | noOfBasisFuncs |
BasisFuncStruct * | basisFuncList |
int | noOfSimplePrimitives |
DistributionSpecStruct * | simplePrimitiveList |
BasisInfoStruct::BasisInfoStruct | ( | int | use_6_d_funcs_ = 0 | ) |
Initializes all the fields to sane values.
Referenced by permuteShells().
BasisInfoStruct::BasisInfoStruct | ( | const BasisInfoStruct & | b | ) |
Copies values from another BasisInfoStruct.
References basisFuncList, noOfBasisFuncs, noOfShells, noOfSimplePrimitives, shellList, and simplePrimitiveList.
BasisInfoStruct::~BasisInfoStruct | ( | ) |
References basisFuncList, shellList, and simplePrimitiveList.
void BasisInfoStruct::addBasisfuncsForAtomList | ( | const Atom * | atomList, |
int | noOfAtoms, | ||
const basisset_info & | basissetDefault, | ||
int | noOfRanges, | ||
const basis_set_range_struct * | rangeList, | ||
const IntegralInfo & | integralInfo, | ||
int | print_raw, | ||
int | do_normalization, | ||
int | skip_sort_shells | ||
) |
References do_output(), get_basis_funcs(), getSimplePrimitivesAll(), LOG_AREA_INTEGRALS, LOG_CAT_INFO, noOfBasisFuncs, ShellSpecStruct::noOfContr, noOfShells, noOfSimplePrimitives, normalizeShells(), pi, setup_shells_multi_basis(), setup_shells_multi_basis_getcount(), shellList, ShellSpecStruct::sizeList, sort_shells(), template_blas_fabs(), template_blas_pow(), and use_6_d_funcs.
Referenced by addBasisfuncsForMolecule(), addBasisfuncsForPoint(), and getNoOfBasisFuncsForAtomType().
int BasisInfoStruct::addBasisfuncsForMolecule | ( | const Molecule & | molecule, |
const char * | basisset_filename_default, | ||
int | noOfRanges, | ||
const BasissetNameRange * | rangeList, | ||
const IntegralInfo & | integralInfo, | ||
int | print_raw, | ||
int | do_normalization, | ||
int | skip_sort_shells | ||
) |
Fills in BasisInfoStruct for given molecule and basisset_filename.
It can be called several times to add basis functions for ghost molecules.
molecule | contains the description of the molecule geometry. |
basisset_filename_default | contains the name of the basis set that will be used for atoms that have no basis set specified in rangeList. A number of directories will be searched for the given basis. |
noOfRanges | the length of rangeList. |
rangeList | is a list of basis sets associated with ranges of atoms that should get non-default basis set. |
integralInfo | - the core structure for integral evaluation, needed for basis set normalization. |
print_raw | - whether the basis set as read should be printed. |
do_normalization | - whether the contraction coefficients in front of exponentials are to be normalized. |
skip_sort_shells | disable the standard sorting of shells in the basis set with respect to atom type and exponent. |
References addBasisfuncsForAtomList(), BasissetNameRange::count, do_output(), ERGO_DATA_PREFIX, ERGO_SPREFIX, Molecule::getAtomListPtr(), Molecule::getNoOfAtoms(), LOG_AREA_INTEGRALS, LOG_CAT_ERROR, read_basisset_file(), and BasissetNameRange::startAtomIndex.
Referenced by calculation_shared(), es_run(), get_energy(), grid_test_scaling(), grid_test_synchronisation(), main(), test_gradient_by_explicit_comparison(), test_mol(), test_S_V_comparison(), test_small(), test_V_by_explicit_comparison(), test_V_by_explicit_comparison_tight(), and try_integral_diffs().
void BasisInfoStruct::addBasisfuncsForPoint | ( | ergo_real | x, |
ergo_real | y, | ||
ergo_real | z, | ||
int | shellType, | ||
ergo_real | exponent, | ||
const IntegralInfo & | integralInfo, | ||
int | print_raw, | ||
int | do_normalization, | ||
int | skip_sort_shells | ||
) |
References addBasisfuncsForAtomList(), basisset_info::atoms, Atom::charge, Atom::coords, and MAX_NO_OF_SHELLS_PER_ATOM.
void BasisInfoStruct::assign_from_buffer | ( | char const * | dataBuffer, |
size_t const | bufferSize | ||
) |
Function needed for Chunks&Tasks usage.
References basisFuncList, noOfBasisFuncs, noOfShells, noOfSimplePrimitives, shellList, simplePrimitiveList, and use_6_d_funcs.
int BasisInfoStruct::get_basis_funcs | ( | ) |
creates list of 'basis functions', and set startIndexInMatrix for each shell.
References basisFuncList, ShellSpecStruct::centerCoords, ShellSpecStruct::coeffList, BasisFuncStruct::coeffList, do_output(), ShellSpecStruct::exponentList, BasisFuncStruct::exponentList, LOG_AREA_INTEGRALS, LOG_CAT_ERROR, ShellSpecStruct::noOfBasisFuncs, noOfBasisFuncs, ShellSpecStruct::noOfContr, BasisFuncStruct::noOfContr, noOfShells, shellList, ShellSpecStruct::shellType, and ShellSpecStruct::startIndexInMatrix.
Referenced by addBasisfuncsForAtomList(), and permuteShells().
size_t BasisInfoStruct::get_size | ( | ) | const |
Function needed for Chunks&Tasks usage.
References noOfBasisFuncs, noOfShells, and noOfSimplePrimitives.
Referenced by write_to_buffer().
|
static |
References addBasisfuncsForAtomList(), Atom::charge, Atom::coords, noOfBasisFuncs, and use_6_d_funcs.
int BasisInfoStruct::getSimplePrimitivesAll | ( | const IntegralInfo & | integralInfo | ) |
References basisFuncList, do_output(), get_simple_primitives(), LOG_AREA_INTEGRALS, LOG_CAT_ERROR, noOfBasisFuncs, BasisFuncStruct::noOfSimplePrimitives, noOfSimplePrimitives, BasisFuncStruct::simplePrimitiveIndex, simplePrimitiveList, and use_6_d_funcs.
Referenced by addBasisfuncsForAtomList(), and permuteShells().
int BasisInfoStruct::normalizeShells | ( | const IntegralInfo & | integralInfo | ) |
Normalizes shells so that the overlap of each basis function with itself will be 1.
This is done by explicitly generating each basis function in each shell and computing the overlap. It is verified that all functions within the same shell have the same normalization factor.
References ShellSpecStruct::centerCoords, BasisFuncStruct::centerCoords, ShellSpecStruct::coeffList, BasisFuncStruct::coeffList, SquareFuncIntegrator::computeIntegralOfSquareOfBasisFunc(), do_output(), ShellSpecStruct::exponentList, BasisFuncStruct::exponentList, BasisFuncStruct::functionNumber, get_machine_epsilon(), LOG_AREA_INTEGRALS, LOG_CAT_ERROR, LOG_CAT_INFO, ShellSpecStruct::noOfBasisFuncs, ShellSpecStruct::noOfContr, BasisFuncStruct::noOfContr, noOfShells, shellList, ShellSpecStruct::shellType, BasisFuncStruct::shellType, template_blas_fabs(), template_blas_sqrt(), and use_6_d_funcs.
Referenced by addBasisfuncsForAtomList().
BasisInfoStruct * BasisInfoStruct::permuteShells | ( | const int * | shellMap, |
const IntegralInfo & | ii | ||
) | const |
a factory method generating new BasisInfo struct with permuted shells and basis functions.
shellMap | vector defining the permutation of shells. |
newShell(i) = this.shell(shellMap(i));
ii | IntegralInfo structure needed to reconstruct the primitive gaussian data. |
References BasisInfoStruct(), do_output(), get_basis_funcs(), getSimplePrimitivesAll(), LOG_AREA_INTEGRALS, LOG_CAT_ERROR, noOfShells, shellList, and use_6_d_funcs.
Referenced by grid_test_scaling(), and XCEvaluator::XCEvaluator().
void BasisInfoStruct::write_to_buffer | ( | char * | dataBuffer, |
size_t const | bufferSize | ||
) | const |
Function needed for Chunks&Tasks usage.
References basisFuncList, get_size(), noOfBasisFuncs, noOfShells, noOfSimplePrimitives, shellList, simplePrimitiveList, and use_6_d_funcs.
BasisFuncStruct* BasisInfoStruct::basisFuncList |
Referenced by assign_from_buffer(), BasisInfoStruct(), compute_extent_for_all_basis_funcs_1el(), compute_extent_for_all_basis_funcs_core(), compute_K_by_boxes(), compute_operator_matrix_sparse(), compute_T_matrix_sparse_linear(), compute_V_matrix_full(), create_mtx_files_with_different_orderings(), SCF_unrestricted::do_spin_flip(), get_basis_func_extent_list(), get_basis_func_pair_list_1el_for_V(), get_basis_func_pair_list_2el(), get_basis_func_pair_list_simple(), get_basis_funcs(), get_bf_vals(), get_bf_vals_derivs(), get_density(), get_largest_simple_integral(), ExponentList::get_list_of_available_exponents(), get_list_of_labeled_distrs(), get_list_of_labeled_distrs_maxLimitingFactor(), get_M(), get_max_basis_func_abs_value(), get_maxLimitingFactor(), get_mulliken_charges(), get_product_distrs(), get_product_simple_primitives(), getMatrixPermutation(), getMatrixPermutationOnlyFactor2(), getSafeMaxDistance(), getSimplePrimitivesAll(), write_basis_func_coord_file(), write_to_buffer(), and ~BasisInfoStruct().
int BasisInfoStruct::noOfBasisFuncs |
Referenced by SCF_restricted::add_random_disturbance_to_starting_guess(), SCF_unrestricted::add_random_disturbance_to_starting_guess(), addBasisfuncsForAtomList(), assign_from_buffer(), BasisInfoStruct(), calculation_shared(), compute_2e_matrix_list_explicit(), compute_2e_matrix_simple(), compute_extent_for_all_basis_funcs_1el(), compute_extent_for_all_basis_funcs_core(), compute_extent_for_shells(), compute_gradient_of_nucl_and_trDV(), compute_h_core_matrix_full(), compute_h_core_matrix_simple_dense(), compute_h_core_matrix_sparse(), compute_integral_from_points(), compute_J_and_K_integraldriven(), compute_J_by_boxes(), compute_J_by_boxes_linear(), compute_J_by_boxes_nosymm(), compute_J_by_boxes_sparse(), compute_JK_single_box(), compute_K_by_boxes(), compute_K_by_boxes_dense(), compute_K_by_boxes_sparse(), compute_K_by_boxes_sparse_nosymm(), compute_operator_matrix_full(), compute_operator_matrix_sparse(), compute_operator_matrix_sparse_symm(), compute_overlap_matrix_sparse(), compute_R_matrix_sparse(), compute_T_matrix_full(), compute_T_matrix_sparse_linear(), compute_T_sparse_linear(), compute_V_matrix_full(), compute_V_sparse(), compute_V_sparse_hierarchical(), computeFermiContact(), create_CSR_for_K(), SCF_restricted::create_eigvec_file(), SCF_unrestricted::create_eigvec_file(), SCF_restricted::create_gabedit_file(), SCF_unrestricted::create_gabedit_file(), create_mtx_files_with_different_orderings(), ddf_writeShellListAndDensityMatricesToFile(), ddf_writeShellListAndDensityMatricesToFile_sparse(), dft_get_uxc(), dft_get_xc(), dft_integrate(), dft_integrator_bl_new(), dft_lin_respao(), do_CI(), SCF_general::do_SCF_iterations(), SCF_unrestricted::do_spin_flip(), do_tdhf_dynamics(), es_get_polarisability(), es_getexc(), es_run(), get_2e_matrices_and_energy_restricted_open(), get_2e_matrices_and_energy_simple_sparse_unrestricted(), get_2e_matrices_and_energy_sparse_unrestricted(), get_2e_matrix_and_energy_simple_sparse(), get_2e_matrix_and_energy_sparse(), SCF_restricted::get_2e_part_and_energy(), SCF_unrestricted::get_2e_part_and_energy(), get_basis_func_extent_list(), get_basis_func_pair_list_1el_for_V(), get_basis_func_pair_list_2el(), get_basis_func_pair_list_simple(), get_basis_funcs(), get_bf_vals_derivs(), get_density(), get_dipole_moment_fullmat(), get_energy(), SCF_restricted::get_expected_values_pos_operator(), SCF_restricted::get_FDSminusSDF(), SCF_unrestricted::get_FDSminusSDF(), get_gradient_using_explicit_integrals(), get_JK_contribs_from_2_interacting_boxes(), get_largest_simple_integral(), ExponentList::get_list_of_available_exponents(), get_list_of_labeled_distrs(), get_list_of_labeled_distrs_maxLimitingFactor(), get_M(), get_max_basis_func_abs_value(), get_maxLimitingFactor(), get_mulliken_charges(), SCF_restricted::get_new_density_matrix(), get_no_of_primitives_for_density(), get_product_distrs(), get_size(), SCF_restricted::get_starting_guess_density(), SCF_unrestricted::get_starting_guess_density(), getMatrixPermutation(), getMatrixPermutationOnlyFactor2(), getNoOfBasisFuncsForAtomType(), getSafeMaxDistance(), getSimplePrimitivesAll(), grid_generate_sparse_pattern(), grid_test_scaling(), hicu_grid_generate(), integrate_density_and_energy(), SparsePattern::load(), load_density_and_project_full(), load_density_and_project_sparse(), main(), SCF_restricted::output_density_images(), SCF_unrestricted::output_density_images(), SCF_restricted::output_density_images_orbital(), output_orbital_coeffs_in_gabedit_order(), SCF_restricted::output_sparsity_S_F_D(), SCF_unrestricted::output_sparsity_S_F_D(), SCF::MatOptions::prepare(), preparePermutations(), preparePermutationsHML(), SparsePattern::save(), SCF_restricted::save_full_matrices_for_matlab(), save_symmetric_matrix(), SCF_general::SCF_general(), SparsePattern::size(), SparsePattern::sizeTotal(), test_gradient_by_explicit_comparison(), test_mol(), test_small(), test_V_by_explicit_comparison(), test_V_by_explicit_comparison_tight(), ErgoE2Evaluator::transform(), try_integral_diffs(), write_2el_integral_m_file(), write_basis_func_coord_file(), SCF_restricted::write_diag_dens_to_file(), SCF_unrestricted::write_diag_dens_to_file(), and write_to_buffer().
int BasisInfoStruct::noOfShells |
Referenced by addBasisfuncsForAtomList(), assign_from_buffer(), BasisInfoStruct(), compute_extent_for_shells(), computeFermiContact(), SCF_restricted::create_gabedit_file(), SCF_unrestricted::create_gabedit_file(), ddf_read_shells_and_density_matrices(), ddf_writeShellListAndDensityMatricesToFile(), ddf_writeShellListAndDensityMatricesToFile_sparse(), dft_integrator_bl_new(), ErgoMolInfo::ErgoMolInfo(), get_basis_funcs(), get_shell_list_with_extents(), get_size(), ErgoMolInfo::getBlocks1(), ErgoMolInfo::getExps(), grid_generate_sparse_pattern(), grid_test_scaling(), hicu_grid_generate(), main(), normalizeShells(), output_basisinfo(), output_orbital_coeffs_in_gabedit_order(), permuteShells(), prepareAOMap(), ErgoMolInfo::setShellRadii(), setupShellMap(), ShellTree::ShellTree(), write_to_buffer(), and XCEvaluator::XCEvaluator().
int BasisInfoStruct::noOfSimplePrimitives |
Referenced by addBasisfuncsForAtomList(), assign_from_buffer(), BasisInfoStruct(), get_size(), getSimplePrimitivesAll(), and write_to_buffer().
ShellSpecStruct* BasisInfoStruct::shellList |
Referenced by addBasisfuncsForAtomList(), assign_from_buffer(), BasisInfoStruct(), SCF_restricted::create_gabedit_file(), SCF_unrestricted::create_gabedit_file(), ddf_read_shells_and_density_matrices(), ddf_writeShellListAndDensityMatricesToFile(), ddf_writeShellListAndDensityMatricesToFile_sparse(), ergoShellsToOrbs(), get_basis_funcs(), get_shell_list_with_extents(), ErgoMolInfo::getBlocks1(), ErgoMolInfo::getExps(), main(), normalizeShells(), output_basisinfo(), output_orbital_coeffs_in_gabedit_order(), permuteShells(), prepareAOMap(), ErgoMolInfo::setShellRadii(), setupShellMap(), ShellTree::ShellTree(), write_to_buffer(), and ~BasisInfoStruct().
DistributionSpecStruct* BasisInfoStruct::simplePrimitiveList |
Referenced by assign_from_buffer(), BasisInfoStruct(), compute_extent_for_all_basis_funcs_1el(), compute_extent_for_all_basis_funcs_core(), compute_T_matrix_sparse_linear(), compute_V_matrix_full(), get_basis_func_extent_list(), get_largest_simple_integral(), ExponentList::get_list_of_available_exponents(), get_M(), get_max_basis_func_abs_value(), get_product_simple_primitives(), getSimplePrimitivesAll(), write_to_buffer(), and ~BasisInfoStruct().
int BasisInfoStruct::use_6_d_funcs |
Whether to use 6 d-type basis functions instead of the usual 5 functions.
This option exists to make it possible to get results compatible with other codes that have d-type functions defined in that way.
Referenced by addBasisfuncsForAtomList(), assign_from_buffer(), SCF_restricted::create_gabedit_file(), SCF_unrestricted::create_gabedit_file(), getNoOfBasisFuncsForAtomType(), getSimplePrimitivesAll(), normalizeShells(), permuteShells(), and write_to_buffer().