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

Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | Static Private Attributes
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:

## 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.
LocalData * | data
| The local data' values.
ProgData & | pdata
| 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

  nbAtomParam | number of atom counting both molecule
  nbAtomMolAParam | the number of atom in the first molecule
  pdataParam | the 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

  matrixHessianEigVec | input --> 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

  posGrid | current position in the grid on all three axis
  params | the 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

  posGrid | the current position in the grid
  index | index position in the grid
  results | objet containing the finale results
  params | parameters read at the beggining

Here is the call graph for this function:

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

- src/include/Node.h
- src/Node.cpp