ergo
BasisInfoStruct Struct Reference

#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...
 
BasisInfoStructpermuteShells (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
 
ShellSpecStructshellList
 
int noOfBasisFuncs
 
BasisFuncStructbasisFuncList
 
int noOfSimplePrimitives
 
DistributionSpecStructsimplePrimitiveList
 

Constructor & Destructor Documentation

◆ BasisInfoStruct() [1/2]

BasisInfoStruct::BasisInfoStruct ( int  use_6_d_funcs_ = 0)

Initializes all the fields to sane values.

Referenced by permuteShells().

◆ BasisInfoStruct() [2/2]

BasisInfoStruct::BasisInfoStruct ( const BasisInfoStruct b)

◆ ~BasisInfoStruct()

BasisInfoStruct::~BasisInfoStruct ( )

Member Function Documentation

◆ addBasisfuncsForAtomList()

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 
)

◆ addBasisfuncsForMolecule()

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.

Parameters
moleculecontains the description of the molecule geometry.
basisset_filename_defaultcontains 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.
noOfRangesthe length of rangeList.
rangeListis 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_shellsdisable the standard sorting of shells in the basis set with respect to atom type and exponent.
Returns
0 on success, -1 on failure.

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().

◆ addBasisfuncsForPoint()

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 
)

◆ assign_from_buffer()

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.

◆ get_basis_funcs()

◆ get_size()

size_t BasisInfoStruct::get_size ( ) const

Function needed for Chunks&Tasks usage.

References noOfBasisFuncs, noOfShells, and noOfSimplePrimitives.

Referenced by write_to_buffer().

◆ getNoOfBasisFuncsForAtomType()

int BasisInfoStruct::getNoOfBasisFuncsForAtomType ( const basisset_info basisset,
const IntegralInfo integralInfo,
int  atomCharge,
int  use_6_d_funcs 
)
static

◆ getSimplePrimitivesAll()

◆ normalizeShells()

int BasisInfoStruct::normalizeShells ( const IntegralInfo integralInfo)

◆ permuteShells()

BasisInfoStruct * BasisInfoStruct::permuteShells ( const int *  shellMap,
const IntegralInfo ii 
) const

a factory method generating new BasisInfo struct with permuted shells and basis functions.

Parameters
shellMapvector defining the permutation of shells.

newShell(i) = this.shell(shellMap(i));

Parameters
iiIntegralInfo 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().

◆ write_to_buffer()

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.

Member Data Documentation

◆ basisFuncList

◆ noOfBasisFuncs

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().

◆ noOfShells

◆ noOfSimplePrimitives

◆ shellList

◆ simplePrimitiveList

◆ use_6_d_funcs

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().


The documentation for this struct was generated from the following files: