IGMPlot 3.16
Optimized IGMplot version able to use wfn/wfx/xyz files
Loading...
Searching...
No Matches
Node Class Reference

Class used to handle every node data storage and processing ; implemented for multiprocessing implementation ; therefore, thread proof. More...

#include <Node.h>

Collaboration diagram for Node:
Collaboration graph

Public Member Functions

 Node (int nbAtomParam, int nbAtomMolAParam, ProgData &pdataParam)
 Main constructor.
 
 ~Node ()
 Destructor.
 
void computeDensity (axis_t &__restrict posGrid, param_t &__restrict params)
 Computes density.
 
void computeGradHess ()
 Computes gradient and hessian's values.
 
void reComputeGrad ()
 Computes gradient only, ig ED gradiet have already been computed before.
 
void sortLambdas ()
 Sorting function used to sort lambdas' values.
 
void computeSortLambdas ()
 Function used to compute and sort lambdas' values.
 
void process (axis_t &posGrid, int index, Results &results, param_t &params)
 Process all the information for an entire line of the grid.
 
void basisChange (double matrixHessianEigVec[3][3])
 basis change for every vector of the IGM approach : ED gradient, ED IGM gradient, ...
 

Private Attributes

int nbAtom
 The number of atom, both molecule combined.
 
int nbAtomMolA
 The number of atom in molecule A.
 
LocalDatadata
 The local data' values.
 
ProgDatapdata
 The program's data.
 
double *__restrict diffX
 Differences between node position and atom's position over x axis.
 
double *__restrict diffY
 Differences between node position and atom's position over y axis.
 
double *__restrict diffZ
 Differences between node position and atom's position over z axis.
 
double *__restrict squareX
 Square of difference value "diffX" over the x axis.
 
double *__restrict squareY
 Square of difference value "diffY" over the y axis.
 
double *__restrict squareZ
 Square of difference value "diffZ" over the z axis.
 
double *__restrict rho1
 Rho value processed over the x axis.
 
double *__restrict rho2
 Rho value processed over the y axis.
 
double *__restrict rho3
 Rho value processed over the z axis.
 
double *__restrict distance
 Distance value between the node position and the atom.
 
double rho
 Rho value processed during density processing.
 
double contribution
 Contribution value processed during density processing.
 
bool shouldCompute
 Tells if the density matched the desired values.
 
double hess [6]
 Six hessian values.
 
double lambdas [3]
 Three lambda's values (eigenvalues of the ED hessian)
 
double eigV [3][3]
 Three eigenvectors.
 
axis_t partialGradient
 Partial gradients added to process gradient values.
 
double sumBRho
 Sum multiplications of rhos' values and B values.
 
double sumSquareBRho
 Sum multiplications of rhos' values and squares of B values.
 
double multInvR
 Multiplicative inverse of the distance.
 
double squareMultInvR
 Square of the multiplicative inverse of the distance.
 
double *__restrict opti
 Optimization value 1.
 
double opti2
 Optimization value 2.
 
double tmp
 Temporary value.
 
int lol2
 TO DOCUMENT.
 

Static Private Attributes

static const int X = 0
 Constant used for accessing x axis in three element's array.
 
static const int Y = 1
 Constant used for accessing y axis in three element's array.
 
static const int Z = 2
 Constant used for accessing z axis in three element's array.
 

Detailed Description

Class used to handle every node data storage and processing ; implemented for multiprocessing implementation ; therefore, thread proof.

Constructor & Destructor Documentation

◆ Node()

Node::Node ( int nbAtomParam,
int nbAtomMolAParam,
ProgData & pdataParam )

Main constructor.

Parameters
nbAtomParamnumber of atom counting both molecule
nbAtomMolAParamthe number of atom in the first molecule
pdataParamthe program's data

Member Function Documentation

◆ basisChange()

void Node::basisChange ( double matrixHessianEigVec[3][3])

basis change for every vector of the IGM approach : ED gradient, ED IGM gradient, ...

Parameters
matrixHessianEigVecinput --> the matrix for the basis change
Here is the caller graph for this function:

◆ computeDensity()

void Node::computeDensity ( axis_t &__restrict posGrid,
param_t &__restrict params )

Computes density.

Parameters
posGridcurrent position in the grid on all three axis
paramsthe parameters initially read at the beginning of the program
Returns
the value of rho
Here is the caller graph for this function:

◆ process()

void Node::process ( axis_t & posGrid,
int index,
Results & results,
param_t & params )

Process all the information for an entire line of the grid.

Parameters
posGridthe current position in the grid
indexindex position in the grid
resultsobjet containing the finale results
paramsparameters read at the beggining
Here is the call graph for this function:

The documentation for this class was generated from the following files: