densityfitting.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef DENSITYFITTING_HEADER
00029 #define DENSITYFITTING_HEADER
00030
00031 #include <stdio.h>
00032
00033 #include "basisinfo.h"
00034 #include "integrals_2el.h"
00035
00036
00037 typedef struct {
00038 ergo_real *ptr;
00039 FILE *f;
00040 unsigned using_file:1;
00041 } DensfitData;
00042
00043 DensfitData* densfit_init(const IntegralInfo* integralInfo,
00044 const BasisInfoStruct & basisInfoDensFit);
00045 void densfit_destroy(DensfitData *p);
00046
00047 int densfit_compute_alpha_beta_matrix_inverse(const IntegralInfo* integralInfo,
00048 const BasisInfoStruct & basisInfoDensFit,
00049 ergo_real* result_U_inverse);
00050
00051 int densfit_compute_gamma(const IntegralInfo* integralInfo,
00052 const BasisInfoStruct & basisInfoMain,
00053 const BasisInfoStruct & basisInfoDensFit,
00054 ergo_real* densityMatrix,
00055 ergo_real* result_gamma,
00056 ergo_real threshold);
00057
00058 int densfit_compute_c_vector(const IntegralInfo* integralInfo,
00059 const BasisInfoStruct & basisInfoDensFit,
00060 DensfitData* U_inverse,
00061 ergo_real* gamma,
00062 ergo_real* result_c_vector);
00063
00064 int densfit_compute_J(const IntegralInfo* integralInfo,
00065 const BasisInfoStruct & basisInfoMain,
00066 const BasisInfoStruct & basisInfoDensFit,
00067 ergo_real* c_vector,
00068 ergo_real* result_J,
00069 ergo_real threshold);
00070
00071 #endif