Go to the documentation of this file.
37 #if !defined(_XC_MATRIX_SPARSE_H_)
38 #define _XC_MATRIX_SPARSE_H_ 1
40 #define BEGIN_NAMESPACE(x) namespace x {
41 #define END_NAMESPACE(x) }
56 std::vector<int>
const & permutationHML);
62 std::vector<int>
const & permutationHML);
68 std::vector<int>
const & permutationHML);
74 std::vector<int>
const & permutationHML);
std::vector< int > const & permutationHML
Definition: xc_matrix_sparse.cc:78
int nThreads
Definition: xc_matrix_sparse.cc:242
ergo_real maxError
Definition: grid_params.h:47
real getXC_mt(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nElectrons, const symmMatrix &dens, symmMatrix &xcm, real *xcEnergy, std::vector< int > const &permutationHML)
Definition: xc_matrix_sparse.cc:274
Definition of the main floating-point datatype used; the ergo_real type.
Hierarchical Cubature (HiCu) grid generation.
Common DFT routines. Mostly functional mixing.
Dft::SparsePattern * pattern
Definition: xc_matrix_sparse.cc:81
The sparse XC matrix evaluator.
distributes a LDA-type xc potential over the XC-matrix elements, with optimization for a closed shell...
Definition: xc_evaluators.h:56
const Dft::GridParams * gss
Definition: xc_matrix.cc:523
void xcCallbackLdaU(DftIntegratorBl *grid, real *restrict tmp, int bllen, int blstart, int blend, UksData< Matrix > *d)
modifies data->excmat by adding LDA-type xc contributions, for a general unrestricted case.
Definition: xc_evaluators.h:322
#define LOG_CAT_ERROR
Definition: output.h:47
#define DFT_MAX_BLLEN
Limit for the number of grid point batch length.
Definition: aos.h:41
SparseMatrix * dMat[2]
Definition: xc_matrix_sparse.cc:344
symmMatrix * xcm
Definition: xc_matrix_sparse.cc:239
double ergo_real
Definition: realtype.h:69
static void xcCallbackGgaU(DftIntegratorBl *grid, real *restrict tmp, int bllen, int blstart, int blend, UksData< Matrix > *d)
modifes data->excmat by adding GGA-type xc contributions, for a general unrestricted case.
Definition: xc_evaluators.h:353
Ergo specific implementation of molecule-grid interface.
Definition: dft_common.h:95
structure describing the data needed by distributors.
Definition: xc_evaluators.h:36
Dft::Matrix * createGridMatrix(const Dft::FullMatrix &mat)
Definition: grid_reader.cc:78
~XCEvaluatorUnrestricted()
Definition: xc_matrix_sparse.cc:358
Sparse matrix structure optimized for XC data access pattern.
Definition: sparse_matrix.h:56
BasisInfoStruct * permuteShells(const int *shellMap, const IntegralInfo &ii) const
a factory method generating new BasisInfo struct with permuted shells and basis functions.
Definition: basisinfo.cc:683
int nElectrons
Definition: xc_matrix_sparse.cc:238
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
~XCEvaluatorRestricted()
Definition: xc_matrix_sparse.cc:180
const XCEvaluatorRestricted * xcEvaluator
Definition: xc_matrix_sparse.cc:237
real xcEnergy
Definition: xc_matrix_sparse.cc:240
const Dft::GridParams & gss
Definition: xc_matrix_sparse.cc:77
Definition: xc_evaluators.h:220
real energy
Definition: xc_evaluators.h:224
Definition: basisinfo.h:112
ergo_real real
Definition: test.cc:46
const BasisInfoStruct & bisOrig
Definition: xc_matrix_sparse.cc:74
const IntegralInfo & integralInfo
Definition: xc_matrix_sparse.cc:75
distributes a GGA-type xc potential over the XC-matrix elements.
Definition: xc_evaluators.h:126
void addSymmetrizedTo(symmMatrix &sMat, const int *aoMap, std::vector< int > const &permutationHML) const
Assigns itself to a given hierarchic matrix.
Definition: sparse_matrix.cc:239
BasisInfoStruct * bisPermuted
Definition: xc_matrix_sparse.cc:80
Definition: integrator.h:49
ergo_real start_box_size_debug
Definition: grid_params.h:49
real energy
Definition: xc_evaluators.h:40
A structure describing the grid settings.
Definition: grid_params.h:59
real getUXC_seq(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nElectrons, const symmMatrix &densA, const symmMatrix &densB, symmMatrix &xcA, symmMatrix &xcB, real *xcEnergy, std::vector< int > const &permutationHML)
Definition: xc_matrix_sparse.cc:418
HiCuGridParams hicuParams
Definition: grid_params.h:74
static pthread_mutex_t dft_hicu_grid_init_mutex
Definition: xc_matrix_sparse.cc:48
real el
Definition: xc_matrix_sparse.cc:241
EXTERN_C int dft_get_num_threads(void)
Definition: dft_common.cc:203
void(* DftBlockCallback)(DftIntegratorBl *grid, real *tmp, int bllen, int blstart, int blend, void *cb_data)
Definition: integrator.h:97
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
void grid_generate_sparse_pattern(const BasisInfoStruct &bis, ergo_real maxError, ergo_real boxSize, ergo_real startBoxSizeDebug, Dft::SparsePattern &sparsePattern)
Definition: grid_hicu.cc:2814
int noOfShells
Definition: basisinfo.h:118
ergo_real box_size
Definition: grid_params.h:48
int sync_threads(bool release, int nThreads)
creates or destroys a barrier for nThreads.
Definition: dft_common.cc:137
DftGridReader * grid_open_full(const class GridGenMolInfo *mol_info, const Dft::GridParams &gss, Dft::SparsePattern *pattern, const Dft::Matrix *dmat, const BasisInfoStruct &bis)
Returns a handle to a grid file.
Definition: grid_reader.cc:282
IsGGAFunc is_gga
Definition: functionals.h:403
A way to store sparse matrix patterns.
Definition: sparse_pattern.h:53
Definition: xc_matrix_sparse.cc:165
const Molecule * mol
Definition: xc_matrix.cc:522
void print(int area, const char *routine)
Definition: utilities.h:111
SparseMatrix * densityMatrix
Definition: xc_matrix_sparse.cc:166
ergo_real real
Definition: xc_matrix_sparse.h:48
Definition: xc_matrix_sparse.cc:236
Basic OS access utilities.
static void * xcWorker(void *data)
Definition: xc_matrix_sparse.cc:246
XCEvaluator(const BasisInfoStruct &bisOrig_, const IntegralInfo &integralInfo_, const Molecule &mol_, const Dft::GridParams &gss_, std::vector< int > const &permutationHML_, const symmMatrix &dens)
Definition: xc_matrix_sparse.cc:92
Definition: allocate.cc:39
#define LOG_CAT_INFO
Definition: output.h:49
Header file with typedefs for matrix and vector types. The levels of hierarchic matrices are defined ...
Code for setting up basis functions starting from shells.
~XCEvaluator()
Definition: xc_matrix_sparse.cc:158
#define BEGIN_NAMESPACE(x)
Definition: xc_matrix_sparse.h:40
Functional * selected_func
Definition: functionals.c:106
void setupShellMap(const BasisInfoStruct &bis, int *shellMap, int *aoMap)
Definition: sparse_pattern.cc:446
GridType gridType
Definition: grid_params.h:70
static pthread_mutex_t dft_prop_mutex
Definition: xc_matrix_sparse.cc:47
Definition: grid_reader.cc:166
real getXC(int nElectrons, symmMatrix &xcm, real *xcEnergy, int nThreads) const
Computes Fock matrix xcm corresponding to given density matrix dmat.
Definition: xc_matrix_sparse.cc:193
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
const Molecule & mol
Definition: xc_matrix_sparse.cc:76
XCEvaluatorRestricted(const BasisInfoStruct &bisOrig_, const IntegralInfo &integralInfo_, const Molecule &mol_, const Dft::GridParams &gss_, std::vector< int > const &permutationHML_, const symmMatrix &density)
Definition: xc_matrix_sparse.cc:168
real getXC_seq(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nElectrons, const symmMatrix &dens, symmMatrix &xcm, real *xcEnergy, std::vector< int > const &permutationHML)
Definition: xc_matrix_sparse.cc:330
real integrate(int ndmat, const FullMatrix *const *dmat, const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, int nThreads, DftBlockCallback cb, void *cb_data)
reads the grid and calls the callback function for each group of grid points.
Definition: integrator.cc:292
void grid_close(DftGridReader *rawgrid)
Closes the shared grid handle that is specifed as the argument.
Definition: grid_reader.cc:386
int * aoMap
Definition: xc_matrix_sparse.cc:79
#define END_NAMESPACE(x)
Definition: xc_matrix_sparse.h:41
Definition: grid_matrix.h:42
Definition: xc_matrix_sparse.cc:72
@ TYPE_HICU
Definition: grid_params.h:68
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
real getXC(int nElectrons, symmMatrix &xcA, symmMatrix &xcB, real *xcEnergy, int nThreads) const
Definition: xc_matrix_sparse.cc:369
void xcCallbackLdaR(DftIntegratorBl *grid, real *restrict tmp, int bllen, int blstart, int blend, KsData< Matrix > *data)
modifies data->excmat by adding LDA-type contributions from a given set of bllen grid points as saved...
Definition: xc_evaluators.h:100
Definition: grid_matrix.h:44
Grid Generator interface. Functions for opening grid file, reading chunks from it,...
#define LOG_AREA_DFT
Definition: output.h:62
Definition: xc_matrix_sparse.cc:343
real getXC_mt(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nElectrons, const symmMatrix &dens, symmMatrix &xcm, real *xcEnergy, std::vector< int > const &permutationHML)
Definition: xc_matrix_sparse.cc:274
Time-measuring class.
Definition: utilities.h:80
void xcCallbackGgaR(DftIntegratorBl *grid, real *restrict tmp, int bllen, int blstart, int blend, KsData< Matrix > *data)
modifies data->excmat by adding GGA-type contributions from a given set of bllen grid points as saved...
Definition: xc_evaluators.h:182
Functionality for writing output messages to a text file.
bool grid_is_ready()
Definition: grid_reader.cc:160
real getXC_seq(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nelectrons, const symmMatrix &dmat, symmMatrix &ksm, real *edfty, std::vector< int > const &permutationHML)
Definition: xc_matrix_sparse.cc:330
XCEvaluatorUnrestricted(const BasisInfoStruct &bisOrig_, const IntegralInfo &integralInfo_, const Molecule &mol_, const Dft::GridParams &gss_, std::vector< int > const &permutationHML_, const symmMatrix &densA, const symmMatrix &densB)
Definition: xc_matrix_sparse.cc:346
real getUXC_mt(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nElectrons, const symmMatrix &densA, const symmMatrix &densB, symmMatrix &xcA, symmMatrix &xcB, real *xcEnergy, std::vector< int > const &permutationHML)
#define BEGIN_NAMESPACE(x)
Definition: sparse_pattern.h:41
#define restrict
Definition: xc_matrix_sparse.cc:66