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