Tests the gradient computation. More...
#include "integrals_1el_potential.h"#include "integrals_1el_single.h"#include "integrals_general.h"#include "matrix_typedefs.h"#include "integral_matrix_wrappers.h"#include "matrix_utilities.h"#include "output.h"Functions | |
| static void | preparePermutations (const BasisInfoStruct &basisInfo, mat::SizesAndBlocks &sizeBlockInfo, std::vector< int > &permutation, std::vector< int > &inversePermutation) |
| static ergo_real | get_nucl_energy_for_given_mol_and_dens (const IntegralInfo &integralInfo, const Molecule &molecule, const BasisInfoStruct &basisInfo, const symmMatrix &D, ergo_real threshold_integrals_1el, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML) |
| static int | get_gradient_using_finite_differences (const IntegralInfo &integralInfo, const BasisInfoStruct &basisInfo, const Molecule &molecule, const symmMatrix &densityMatrix, ergo_real threshold_integrals_1el, const mat::SizesAndBlocks &matrix_size_block_info, const std::vector< int > &permutationHML, ergo_real *resultGradient) |
| static int | get_gradient_using_explicit_integrals (const IntegralInfo &integralInfo, const BasisInfoStruct &basisInfo, const Molecule &molecule, const symmMatrix &densityMatrix, ergo_real threshold_integrals_1el, const mat::SizesAndBlocks &matrix_size_block_info, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, ergo_real *resultGradient) |
| static int | test_gradient_by_explicit_comparison (const IntegralInfo &integralInfo) |
| int | main (int argc, char *argv[]) |
Tests the gradient computation.
| static int get_gradient_using_explicit_integrals | ( | const IntegralInfo & | integralInfo, | |
| const BasisInfoStruct & | basisInfo, | |||
| const Molecule & | molecule, | |||
| const symmMatrix & | densityMatrix, | |||
| ergo_real | threshold_integrals_1el, | |||
| const mat::SizesAndBlocks & | matrix_size_block_info, | |||
| const std::vector< int > & | permutationHML, | |||
| const std::vector< int > & | inversePermutationHML, | |||
| ergo_real * | resultGradient | |||
| ) | [static] |
References Atom::charge, Atom::coords, do_1e_repulsion_integral_derivatives_using_symb_info(), get_product_simple_primitives(), Molecule::getAtom(), Molecule::getNoOfAtoms(), Molecule::getNuclearRepulsionEnergyGradientContribQuadratic(), and BasisInfoStruct::noOfBasisFuncs.
Referenced by test_gradient_by_explicit_comparison().
| static int get_gradient_using_finite_differences | ( | const IntegralInfo & | integralInfo, | |
| const BasisInfoStruct & | basisInfo, | |||
| const Molecule & | molecule, | |||
| const symmMatrix & | densityMatrix, | |||
| ergo_real | threshold_integrals_1el, | |||
| const mat::SizesAndBlocks & | matrix_size_block_info, | |||
| const std::vector< int > & | permutationHML, | |||
| ergo_real * | resultGradient | |||
| ) | [static] |
References Atom::coords, get_nucl_energy_for_given_mol_and_dens(), Molecule::getAtom(), Molecule::getNoOfAtoms(), and Molecule::replaceAtom().
Referenced by test_gradient_by_explicit_comparison().
| static ergo_real get_nucl_energy_for_given_mol_and_dens | ( | const IntegralInfo & | integralInfo, | |
| const Molecule & | molecule, | |||
| const BasisInfoStruct & | basisInfo, | |||
| const symmMatrix & | D, | |||
| ergo_real | threshold_integrals_1el, | |||
| mat::SizesAndBlocks const & | matrix_size_block_info, | |||
| std::vector< int > const & | permutationHML | |||
| ) | [static] |
References get_electron_nuclear_attraction_energy(), and Molecule::getNuclearRepulsionEnergyQuadratic().
Referenced by get_gradient_using_finite_differences().
| int main | ( | int | argc, | |
| char * | argv[] | |||
| ) |
References test_gradient_by_explicit_comparison().
| static void preparePermutations | ( | const BasisInfoStruct & | basisInfo, | |
| mat::SizesAndBlocks & | sizeBlockInfo, | |||
| std::vector< int > & | permutation, | |||
| std::vector< int > & | inversePermutation | |||
| ) | [static] |
References getMatrixPermutation(), BasisInfoStruct::noOfBasisFuncs, and prepareMatrixSizesAndBlocks().
Referenced by test_gradient_by_explicit_comparison().
| static int test_gradient_by_explicit_comparison | ( | const IntegralInfo & | integralInfo | ) | [static] |
References Molecule::addAtom(), BasisInfoStruct::addBasisfuncsForMolecule(), compute_gradient_of_nucl_and_trDV(), get_gradient_using_explicit_integrals(), get_gradient_using_finite_differences(), Molecule::getNoOfAtoms(), BasisInfoStruct::noOfBasisFuncs, preparePermutations(), and template_blas_fabs().
Referenced by main().
1.6.1