IGMPlot: src/include/Results.h Source File

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

Loading...
Searching...
No Matches
Results.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
48
49#ifndef _RESULTS_H_
50#define _RESULTS_H_
51
52#ifndef No_OpenMP
53#include<omp.h>
54#endif
55
56// STL
57#include <algorithm>
58
59// LOCAL
60#include <ProgData.h>
61
62
63// PROMOLECULAR MODE
66 class Results
67{
68 private :
69
70 // Non delta related values
71
73 int nbAtom;
74
76 int fullSize;
77
78 // Cube values
79
81 double * cubedeltaGIntra;
82
84 double * cubedeltaGInter;
85
87 double * cubedeltaGIntraFC;
88
90 double * cubedeltaGInterFC;
91
92
94 double * cubeRho;
95
97 double * cubeRDG;
98
99 // NCI plot handling
100
102 bool * intermolecularCheck;
103
105 double sumdgInter;
106
108 double scoreInterac;
109
110 // Single atom related values
111
113 double **sumDeltaGInterAtom;
114
116 unsigned int nbThreads;
117
118 public :
119
125 Results(int nbAtomParam, int nbStepsParam);
126
130 ~Results();
131
136 int getNbAtom();
137
143 void updateCubePauli( int index, double &self);
144
145
153 void updateCube( int index, LocalData & data, double & rho, double & lambda);
154
160 void
161 updateCubeFC( int index, LocalData & data);
162
168 void updateAtom( int i, LocalData & data);
169
176 void update( int index, double rho, double value = 0.0 );
177
181 void sum();
182
186 void intermolecular(bool check, int pos);
187
188 /********************************************************************/
189 /**************************OUTPUT UTILITIES**************************/
190 /********************************************************************/
191
193 static const int DGSIE=16;
194
196 static const int DKSIE=17;
197
204 double get(int index, int type);
205
211 double* get(int type);
212
217 bool* getShouldPrint();
218
223 double getsumdgInter();
224
229 double getscoreInterac();
230
235 void setsumdgInter(double *newvalue);
236
237
241 void setscoreInterac(double newvalue);
242
243
244}; // end of C L A S S R E S U L T S .....................................................
245
246#endif
ProgData.h
Contains parameters of the instance.
LocalData
Class designed to store Gradient related values and provide some utilities concerning those.
Definition LocalData.h:61
Results::intermolecular
void intermolecular(bool check, int pos)
Function used to threads values together.
Definition Results.cpp:262
Results::~Results
~Results()
Destructor.
Definition Results.cpp:118
Results::intermolecularCheck
bool * intermolecularCheck
TO DOCUMENT.
Definition Results.h:102
Results::get
double get(int index, int type)
Gets the indicated value and given index.
Definition Results.cpp:268
Results::nbAtom
int nbAtom
Number of atom focused.
Definition Results.h:73
Results::updateCube
void updateCube(int index, LocalData &data, double &rho, double &lambda)
Function used to update the cube values using index and the vectors' norms.
Definition Results.cpp:163
Results::sumdgInter
double sumdgInter
result of the dgInter integration over the grid
Definition Results.h:105
Results::DGSIE
static const int DGSIE
TO DOCUMENT.
Definition Results.h:193
Results::cubeRho
double * cubeRho
TO DOCUMENT.
Definition Results.h:94
Results::updateCubeFC
void updateCubeFC(int index, LocalData &data)
Function used to update the cube values with basis change using index and the vectors' norms.
Definition Results.cpp:188
Results::Results
Results(int nbAtomParam, int nbStepsParam)
Basic constructor.
Definition Results.cpp:57
Results::updateAtom
void updateAtom(int i, LocalData &data)
Function used to update the atom values using index and the vectors' norms.
Definition Results.cpp:203
Results::getsumdgInter
double getsumdgInter()
returns the sumdgInter grid integration property
Definition Results.cpp:363
Results::nbThreads
unsigned int nbThreads
The number of threads for the current run.
Definition Results.h:116
Results::updateCubePauli
void updateCubePauli(int index, double &self)
Function used to store self descriptor for current grid node.
Definition Results.cpp:147
Results::setscoreInterac
void setscoreInterac(double newvalue)
Set the scoreInterac grid integration property.
Definition Results.cpp:395
Results::getNbAtom
int getNbAtom()
Returns the number of atom.
Definition Results.cpp:141
Results::cubedeltaGIntraFC
double * cubedeltaGIntraFC
Promolecular cube to store deltag INTRA with basis change.
Definition Results.h:87
Results::sumDeltaGInterAtom
double ** sumDeltaGInterAtom
TO DOCUMENT.
Definition Results.h:113
Results::cubedeltaGIntra
double * cubedeltaGIntra
Promolecular cube to store deltag INTRA.
Definition Results.h:81
Results::cubeRDG
double * cubeRDG
TO DOCUMENT.
Definition Results.h:97
Results::sum
void sum()
Function used to threads values together.
Definition Results.cpp:230
Results::cubedeltaGInterFC
double * cubedeltaGInterFC
Promolecular cube to store deltag INTER with basis change.
Definition Results.h:90
Results::cubedeltaGInter
double * cubedeltaGInter
Promolecular cube to store deltag INTER.
Definition Results.h:84
Results::DKSIE
static const int DKSIE
TO DOCUMENT.
Definition Results.h:196
Results::getscoreInterac
double getscoreInterac()
returns the scoreInterac grid integration property
Definition Results.cpp:370
Results::fullSize
int fullSize
Full number of iteration in the main loop.
Definition Results.h:76
Results::getShouldPrint
bool * getShouldPrint()
Gets the indicated values of intermolecular checking.
Definition Results.cpp:356
Results::update
void update(int index, double rho, double value=0.0)
Function used to update the values using a given value.
Definition Results.cpp:216
Results::setsumdgInter
void setsumdgInter(double *newvalue)
Set the sumdgInter grid integration property.
Definition Results.cpp:377
Results::scoreInterac
double scoreInterac
result of the dgInter*rho^4/3, integration over the grid
Definition Results.h:108