Tests the DFT XC matrix construction. More...
#include <stdio.h>
#include <unistd.h>
#include <memory>
#include <limits>
#include "integrals_1el_potential.h"
#include "integrals_2el.h"
#include "memorymanag.h"
#include "grid_reader.h"
#include "dft_common.h"
#include "xc_matrix.h"
Functions | |
static bool | compare_matrices (char mat_name, const real *computed, const long double *ref, int sz, ergo_real eps) |
static int | test_small (const IntegralInfo &ii, const char *functional, const Dft::GridParams::RadialScheme &gridScheme, const char *gridSchemeName, const int *charges, const real(*coords)[3], const long double(*XCRef)[2]) |
static int | test_small_both () |
static int | test_mol (const char *mol_fname, const char *basisSet, const char *xcFunc) |
int | main (int argc, char *argv[]) |
Tests the DFT XC matrix construction.
This test computes the XC energy many times and checks that the resulting energy is the same every time. If this fails, it is probably because of some bug related to synchronization of threads.
static bool compare_matrices | ( | char | mat_name, | |
const real * | computed, | |||
const long double * | ref, | |||
int | sz, | |||
ergo_real | eps | |||
) | [static] |
int main | ( | int | argc, | |
char * | argv[] | |||
) |
References ERGO_SPREFIX, test_mol(), and test_small_both().
static int test_mol | ( | const char * | mol_fname, | |
const char * | basisSet, | |||
const char * | xcFunc | |||
) | [static] |
References BasisInfoStruct::addBasisfuncsForMolecule(), dft_get_xc_mt(), dft_init(), dft_setfunc(), ergo_free(), ergo_new, Molecule::getNumberOfElectrons(), grid_free_files(), grid_set_tmpdir(), Functional_::is_gga, BasisInfoStruct::noOfBasisFuncs, selected_func, and Molecule::setFromMoleculeFile().
Referenced by main().
static int test_small | ( | const IntegralInfo & | ii, | |
const char * | functional, | |||
const Dft::GridParams::RadialScheme & | gridScheme, | |||
const char * | gridSchemeName, | |||
const int * | charges, | |||
const real(*) | coords[3], | |||
const long double(*) | XCRef[2] | |||
) | [static] |
References Molecule::addAtom(), BasisInfoStruct::addBasisfuncsForMolecule(), compare_matrices(), dft_get_uxc_mt(), dft_get_xc_mt(), dft_init(), dft_setfunc(), ergo_free(), ergo_new, ERGO_SPREFIX, grid_free_files(), grid_set_tmpdir(), Functional_::is_gga, BasisInfoStruct::noOfBasisFuncs, Dft::GridParams::radialGridScheme, and selected_func.
Referenced by test_small_both().
static int test_small_both | ( | ) | [static] |
References Dft::GridParams::GC2, Dft::GridParams::LMG, test_small(), and Dft::GridParams::TURBO.
Referenced by main().