IGMPlot: src/include/LocalData.h Source File

IGMPlot 3.16 Optimized IGMplot version able to use wfn/wfx/xyz files

Loading...
Searching...
No Matches
LocalData.h
Go to the documentation of this file.
1/*
2 * Copyright University of Reims Champagne-Ardenne
3 * Authors and Contributors: Akilan RAJAMANI, Corentin LEFEBVRE, Johanna KLEIN,
4 * Emmanuel PLUOT, Hugo ROUSSEL, Gaetan RUBEZ, Hassan KHARTABIL,
5 * Jean-Charles BOISSON and Eric HENON
6 * (24/07/2017)
7 * jean-charles.boisson@univ-reims.fr, eric.henon@univ-reims.fr
8 *
9 * This software is a computer program whose purpose is to
10 * detect and quantify interactions from electron density
11 * obtained either internally from promolecular density or
12 * calculated from an input wave function input file. It also
13 * prepares for the visualization of isosurfaces representing
14 * several descriptors (dg) coming from the IGM methodology.
15 *
16 * This software is governed by the CeCILL-C license under French law and
17 * abiding by the rules of distribution of free software. You can use,
18 * modify and/ or redistribute the software under the terms of the CeCILL-C
19 * license as circulated by CEA, CNRS and INRIA at the following URL
20 * "http://www.cecill.info".
21 *
22 * As a counterpart to the access to the source code and rights to copy,
23 * modify and redistribute granted by the license, users are provided only
24 * with a limited warranty and the software's author, the holder of the
25 * economic rights, and the successive licensors have only limited
26 * liability.
27 *
28 * In this respect, the user's attention is drawn to the risks associated
29 * with loading, using, modifying and/or developing or reproducing the
30 * software by the user in light of its specific status of free software,
31 * that may mean that it is complicated to manipulate, and that also
32 * therefore means that it is reserved for developers and experienced
33 * professionals having in-depth computer knowledge. Users are therefore
34 * encouraged to load and test the software's suitability as regards their
35 * requirements in conditions enabling the security of their systems and/or
36 * data to be ensured and, more generally, to use and operate it in the
37 * same conditions as regards security.
38 *
39 * The fact that you are presently reading this means that you have had
40 * knowledge of the CeCILL-C license and that you accept its terms.
41 *
42 * */
43
49
50#ifndef _LOCAL_DATA_H_
51#define _LOCAL_DATA_H_
52
53// Local
54//#include <eig3.h>
55#include <toolbox.h>
56
60 class LocalData
61{
62
63 private :
64
65 // Non Gradient related values
66
68 int nbAtomInMolA;
70 int nbAtom;
71
72 // Gradient values
73
75 double grad[3];
76
78 double gradIGM[3];
79
81 double contributionInsideMoleculeA[3];
82
84 double contributionInsideMoleculeB[3];
85
87 axis_t * contributionAtomicAlone;
88
89 // Unique initialization gradient values
90
92 double gradIGMInter[3];
93
95 double gradIGMAbsOut[3];
96
98 double gradIGMAbsIn[3];
99
100 // Vectors' norms' values
101
103 double normGrad;
104
106 double normGradIGM;
107
109 double normGradIGMInter;
110
112 double normGradIGMInterAbsOut;
113
115 double normGradIGMInterAbsIn;
116
117 public :
118
124 LocalData(int nbAtomInMolAParam, int nbAtomParam);
125
129 ~LocalData();
130
134 void init();
135
139 void reinit();
140
146 void updateGrad( int i, axis_t partialGrad );
147
151 void updateIGMInter();
152
157 void updateIGMAbsOut(int atomIndex);
158
163 void updateIGMAbsIn(int atomIndex);
164
169 double getNormGrad();
170
174 void processNormGrad();
175
180 double getNormGradIGM();
181
185 void processNormGradIGM();
186
191 double getNormGradIGMInter();
192
196 void processNormGradIGMInter();
197
203 double getNormGradIGMAbsOut();
204
209 void processNormGradIGMAbsOut(int i);
210
216 double getNormGradIGMAbsIn();
217
222 void processNormGradIGMAbsIn(int i);
223
224
225 /********************************************************************/
226 /**************************OUTPUT UTILITIES**************************/
227 /********************************************************************/
228
234 double getGradVal(int index);
235
239 void setGradNull();
240
241}; // end of class LocalData
242
243#endif
LocalData::normGradIGMInterAbsOut
double normGradIGMInterAbsOut
Gradient IGM inter's vector's norm (| molA + Atom |)
Definition LocalData.h:112
LocalData::normGradIGMInterAbsIn
double normGradIGMInterAbsIn
Gradient IGM inter's vector's norm (|molA| + |Atom|)
Definition LocalData.h:115
LocalData::contributionAtomicAlone
axis_t * contributionAtomicAlone
Contribution ED gradient for focused atom alone or all.
Definition LocalData.h:87
LocalData::gradIGMInter
double gradIGMInter[3]
Axis values for IGM Inter.
Definition LocalData.h:92
LocalData::getNormGradIGMAbsIn
double getNormGradIGMAbsIn()
Gets the vector's norm for gradient inter with the sum of the absolute value of molecule A's interact...
Definition LocalData.cpp:290
LocalData::grad
double grad[3]
ED Gradient values.
Definition LocalData.h:75
LocalData::getNormGradIGMAbsOut
double getNormGradIGMAbsOut()
GEts the vector's norm for gradient inter with absolute value of the sum of molecule A's interactions...
Definition LocalData.cpp:276
LocalData::normGradIGMInter
double normGradIGMInter
Gradient IGM inter's vector's norm.
Definition LocalData.h:109
LocalData::updateIGMInter
void updateIGMInter()
Updates the IGM inter.
Definition LocalData.cpp:160
LocalData::nbAtomInMolA
int nbAtomInMolA
Number of atom in the first molecule.
Definition LocalData.h:68
LocalData::reinit
void reinit()
Function used to reinitialize values to 0.
Definition LocalData.cpp:94
LocalData::init
void init()
Function used to initialize values to 0.
Definition LocalData.cpp:69
LocalData::normGradIGM
double normGradIGM
Gradient IGM's vector's norm.
Definition LocalData.h:106
LocalData::processNormGrad
void processNormGrad()
Process the vector's norm for gradient.
Definition LocalData.cpp:242
LocalData::updateIGMAbsIn
void updateIGMAbsIn(int atomIndex)
Updates the IGM with the sum of the absolute value of the molecule A and the absolute value of the at...
Definition LocalData.cpp:202
LocalData::processNormGradIGM
void processNormGradIGM()
Process the vector's norm for gradient IGM.
Definition LocalData.cpp:254
LocalData::getGradVal
double getGradVal(int index)
Gets the gradient value at the index given.
Definition LocalData.cpp:305
LocalData::updateGrad
void updateGrad(int i, axis_t partialGrad)
Function used to update the values using index and partial gradients passed as arguments.
Definition LocalData.cpp:122
LocalData::normGrad
double normGrad
Gradient's vector's norm.
Definition LocalData.h:103
LocalData::getNormGradIGMInter
double getNormGradIGMInter()
Gets the vector's norm for gradient inter.
Definition LocalData.cpp:260
LocalData::setGradNull
void setGradNull()
Sets the gradient values to 0.
Definition LocalData.cpp:318
LocalData::nbAtom
int nbAtom
Number of atoms.
Definition LocalData.h:70
LocalData::updateIGMAbsOut
void updateIGMAbsOut(int atomIndex)
Updates the IGM with the absolute value of the interaction of molecule A and the atom alone summed up...
Definition LocalData.cpp:168
LocalData::gradIGMAbsOut
double gradIGMAbsOut[3]
Axis values for IGM Inter ( | molA + Atom | )
Definition LocalData.h:95
LocalData::gradIGMAbsIn
double gradIGMAbsIn[3]
Axis values for IGM Inter ( | molA | + | atom | )
Definition LocalData.h:98
LocalData::processNormGradIGMAbsIn
void processNormGradIGMAbsIn(int i)
Process the vector's norm for gradient inter with the sum of the absolute value of molecule A's inter...
Definition LocalData.cpp:296
LocalData::contributionInsideMoleculeB
double contributionInsideMoleculeB[3]
Contribution ED gradient inside molecule B.
Definition LocalData.h:84
LocalData::gradIGM
double gradIGM[3]
ED Gradient IGM values.
Definition LocalData.h:78
LocalData::getNormGradIGM
double getNormGradIGM()
Gets the vector's norm for gradient IGM.
Definition LocalData.cpp:248
LocalData::LocalData
LocalData(int nbAtomInMolAParam, int nbAtomParam)
Constructor.
Definition LocalData.cpp:54
LocalData::contributionInsideMoleculeA
double contributionInsideMoleculeA[3]
Contribution ED gradient inside molecule A.
Definition LocalData.h:81
LocalData::~LocalData
~LocalData()
Destructor that frees space for the atom's contribution.
Definition LocalData.cpp:63
LocalData::processNormGradIGMAbsOut
void processNormGradIGMAbsOut(int i)
Process the vector's norm for gradient inter with absolute value of the sum of molecule A's interacti...
Definition LocalData.cpp:282
LocalData::processNormGradIGMInter
void processNormGradIGMInter()
Process the vector's norm for gradient inter.
Definition LocalData.cpp:266
LocalData::getNormGrad
double getNormGrad()
GEts the vector's norm for gradient.
Definition LocalData.cpp:236
axis_t
Structure describing one axis.
Definition general.h:694
toolbox.h
generic methods