#include <QCRepInterElec.hpp>
Inheritance diagram for QCRepInterElec:
classe de generateur des elements d une matrice representant la repulsion inter electronique entre 2 atomes.
remarque : La matrice contenant ces integrales sera toujours dense et asymetrique; ainsi, la classe courante n est pas template
Definition at line 46 of file QCRepInterElec.hpp.
Public Member Functions | |
QCIntgReader * | allocIntgReader (void) |
QCIntgWriter * | allocIntgWriter (void) |
template<class TPParam> | |
void | computeDerivatives (const TPParam *QCRestrict parameterA, const TPParam *QCRestrict parameterB, QCRepInterElec &QCRestrict workingIntg, QCDerivationType derivationType, const QCPoint3D &QCRestrict coordsA, const QCPoint3D &QCRestrict coordsB, const QCPoint3D &shift, bool ssACalc, bool ssBCalc, const QCFloat &QCRestrict inv2DeltaQ) |
template<class TPParam> | |
void | computeDerivatives (const TPParam *__restrict__ parameterA, const TPParam *__restrict__ parameterB, QCRepInterElec &__restrict__ workingIntg, QCDerivationType derivationType, const QCPoint3D &coordsA, const QCPoint3D &coordsB, const QCPoint3D &shift, bool ssACalc=false, bool ssBCalc=false, const QCFloat &__restrict__ inv2DeltaQ=QC_ZERO) |
template<class TPParam> | |
void | computeElems (const TPParam *QCRestrict parameterA, const TPParam *QCRestrict parameterB, const QCPoint3D &QCRestrict coordsA, const QCPoint3D &QCRestrict coordsB, QCFloat rAB, bool ssACalc, bool ssBCalc, bool compressedFormat, const QCIntgAcquisitionMethod &intgAcquisitionMethod, bool isItfirstCall) |
template<class TPParam> | |
void | computeElems (const TPParam *__restrict__ parameterA, const TPParam *__restrict__ parameterB, const QCPoint3D &__restrict__ coordsA, const QCPoint3D &__restrict__ coordsB, QCFloat rAB, bool ssACalc, bool ssBCalc, bool compressedFormat=false, const QCIntgAcquisitionMethod &intgAcquisitionMethod=QC_DIRECT_COMPUTATION, bool isItfirstCall=false) |
void | expandOverDim16 (const int &nbAOofA, const int &nbAOofB) |
QCIntgReader * | getIntgReader (void) const |
const string & | getIntgTmpFile (void) const |
QCIntgWriter * | getIntgWriter (void) const |
QCRepInterElec (const int &dim) | |
void | setIntgTmpFile (const string &extFile) |
virtual | ~QCRepInterElec (void) |
Private Attributes | |
QCIntgReader * | intgReader |
string | intgTmpFile |
QCIntgWriter * | intgWriter |
|
Constructor that enables the memory allocation of the nested matrix. Definition at line 53 of file QCRepInterElec.cpp. |
|
Definition at line 65 of file QCRepInterElec.cpp. References intgReader, intgTmpFile, and intgWriter. |
|
Definition at line 95 of file QCRepInterElec.cpp. References intgReader. Referenced by QCModelMatrices::prepareIterations(). |
|
Allocators Definition at line 82 of file QCRepInterElec.cpp. References intgWriter. Referenced by QCModelMatrices::buildMatrices(). |
|
Calcul des derivees des integrales de repulsion inter elec. On travaille en format compresse pour faire la difference sur le format compresse, ce qui represente moins de calcul avant d'expanser la matrice pour la rendre utilisable par les boucles de calcul. Si on n'envoie pas deltaQ, c'est qu il ne faut pas diviser. On retarde la division pour etre plus efficace en vitesse de calcul. Definition at line 373 of file QCRepInterElec.cpp. References QCMatrix::calculateNumericalDerivatives(), computeElems(), COORDX, COORDY, COORDZ, expandOverDim16(), QCMatElemGtr< QCMatrix >::matrix, QC_DIRECT_COMPUTATION, QC_NUMERICAL_DERIVATION, and QC_ZERO. Here is the call graph for this function: ![]() |
|
Calculation of the numerical derivatives of the inter-electronic repulsion integrals. |
|
calcul des integrales de repulsion inter elec qui sont stockees dans la matrice de CQCRepInterElec. Attention, pour le calcul de Hamilton, on n a besoin que du vecteur ss de B. => B apparait comme s il avait une seule OA pour repul. Et pour le calcul de l energie de repulsion core-core, on n a besoin que de l element <ss|ss> de la matrice de rep inter-elec. On evite de calculer tous les autres elements pour rien. Pas besoin de creer de ssACalcInt. Le param compressedFormatInt sert a controler le format de stockage de la matrice (10 ou 16 en longueur). Ce probleme ne se pose pas quand on demande un seul element. Calcul des integrales de repulsion inter-electroniques. Attention, A est le premier param de la fion, donc c est aussi celui dont l indice varie le plus vite. Definition at line 243 of file QCRepInterElec.cpp. References COORDX, COORDY, COORDZ, QCMatrix::getElems(), intgReader, intgWriter, QCIntgReader::loadIntegrals(), QCMatElemGtr< QCMatrix >::matrix, QCMatrix::pack(), QC_DIRECT_COMPUTATION, QC_INDIRECT_STORAGE, QCFortran, QCIntgWriter::storeIntegrals(), and QCMatrix::unpack(). Here is the call graph for this function: ![]() |
|
Calculation of the inter-electronic repulsion integrals stored in the nested matrix of the QCRepInterElec generator. Referenced by computeDerivatives(). |
|
Expand the inter-electornic repulsion integrals matrix in a QCMatrix whose size equal to 16. On output of the fortran code, we have a compressed format of size 10. This compressed format exploit symetry properties. On the other hand, the expanded format allow longer stride accesses in the calculations. Definition at line 109 of file QCRepInterElec.cpp. References QCMatrix::getDim(), QCMatElemGtr< QCMatrix >::matrix, px_px_10, px_px_16, px_py_10, px_py_16, px_pz_10, px_pz_16, px_s_16, py_px_16, py_py_10, py_py_16, py_pz_10, py_pz_16, py_s_16, pz_px_16, pz_py_16, pz_pz_10, pz_pz_16, pz_s_16, s_px_16, s_py_16, and s_pz_10. Referenced by computeDerivatives(). Here is the call graph for this function: ![]() |
|
Definition at line 81 of file QCRepInterElec.hpp. References intgReader. Referenced by QCMDSystem< TPSolver >::completeFockMatricesAndElecEnergy(), and QCModelMatrices::prepareIterations(). |
|
Accessors Definition at line 79 of file QCRepInterElec.hpp. References intgTmpFile. Referenced by QCModelMatrices::prepareIterations(). |
|
Definition at line 80 of file QCRepInterElec.hpp. References intgWriter. Referenced by QCModelMatrices::buildMatrices(), and QCModelMatrices::prepareIterations(). |
|
Mutators Definition at line 88 of file QCRepInterElec.hpp. References intgTmpFile. Referenced by QCModelMatrices::buildMatrices(). |
|
The pointer to the reader. It reads the integrals stored on the hard drive by integralsWriterPtr. Definition at line 178 of file QCRepInterElec.hpp. Referenced by allocIntgReader(), computeElems(), getIntgReader(), and ~QCRepInterElec(). |
|
The name of the repulsion integrals file on the hard drive. Definition at line 183 of file QCRepInterElec.hpp. Referenced by getIntgTmpFile(), setIntgTmpFile(), and ~QCRepInterElec(). |
|
The pointer to the writer that is in charge to write the integrals value on the hard drive in the case of Indirect_Storage tag is choosen for the QCPP INTEGRALS ACQUISITION METHOD field in the input file holding general infromations. Definition at line 172 of file QCRepInterElec.hpp. Referenced by allocIntgWriter(), computeElems(), getIntgWriter(), and ~QCRepInterElec(). |