Loading [MathJax]/extensions/tex2jax.js
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
PLMD::GridBase Class Referenceabstract

#include <Grid.h>

Inheritance diagram for PLMD::GridBase:

Classes

class  AcceleratorBase
 Auxiliary class for accelerating grid calculations. More...
 
class  AcceleratorHandler
 Auxiliary class for managing AcceleratorBase. More...
 

Public Types

typedef std::size_t index_t
 

Public Member Functions

 GridBase (const std::string &funcl, const std::vector< std::string > &names, const std::vector< std::string > &gmin, const std::vector< std::string > &gmax, const std::vector< unsigned > &nbin, bool dospline, bool usederiv, const std::vector< bool > &isperiodic, const std::vector< std::string > &pmin, const std::vector< std::string > &pmax)
 this constructor here is not Value-aware
 
 GridBase (const std::string &funcl, const std::vector< Value * > &args, const std::vector< std::string > &gmin, const std::vector< std::string > &gmax, const std::vector< unsigned > &nbin, bool dospline, bool usederiv)
 this constructor here is Value-aware
 
virtual ~GridBase ()=default
 
void addKernel (const KernelFunctions &kernel)
 add a kernel function to the grid
 
void addValue (const std::vector< unsigned > &indices, double value)
 
virtual void addValue (index_t index, double value)=0
 add to grid value
 
void addValueAndDerivatives (const std::vector< unsigned > &indices, double value, std::vector< double > &der)
 
virtual void addValueAndDerivatives (index_t index, double value, std::vector< double > &der)=0
 add to grid value and derivatives
 
double findMaximalPathMinimum (const std::vector< double > &source, const std::vector< double > &sink)
 Find the maximum over paths of the minimum value of the gridded function along the paths for all paths of neighboring grid lattice points from a source point to a sink point.
 
std::vector< std::string > getArgNames () const
 get argument names of this grid
 
double getBinVolume () const
 get bin volume
 
unsigned getDimension () const
 get grid dimension
 
std::vector< double > getDx () const
 get bin size
 
double getDx (index_t j) const
 
index_t getIndex (const std::vector< double > &x) const
 
index_t getIndex (const std::vector< unsigned > &indices) const
 
index_t getIndex (const unsigned *indices, std::size_t indices_size) const
 
std::vector< unsigned > getIndices (const std::vector< double > &x) const
 
void getIndices (const std::vector< double > &x, std::vector< unsigned > &rindex) const
 
void getIndices (const std::vector< double > &x, unsigned *rindex_data, std::size_t rindex_size) const
 
std::vector< unsigned > getIndices (index_t index) const
 
void getIndices (index_t index, std::vector< unsigned > &rindex) const
 methods to handle grid indices
 
void getIndices (index_t index, unsigned *rindex_data, std::size_t rindex_size) const
 
std::vector< bool > getIsPeriodic () const
 get if periodic
 
std::vector< std::string > getMax () const
 get upper boundary
 
virtual double getMaxValue () const =0
 get maximum value
 
std::vector< std::string > getMin () const
 get lower boundary
 
virtual double getMinValue () const =0
 get minimum value
 
std::vector< unsigned > getNbin () const
 get number of bins
 
std::vector< index_tgetNearestNeighbors (const index_t index) const
 get nearest neighbors (those separated by exactly one lattice unit)
 
std::vector< index_tgetNearestNeighbors (const std::vector< unsigned > &indices) const
 
std::vector< index_tgetNeighbors (const std::vector< double > &x, const std::vector< unsigned > &neigh) const
 
std::vector< index_tgetNeighbors (const std::vector< unsigned > &indices, const std::vector< unsigned > &neigh) const
 
std::vector< index_tgetNeighbors (index_t index, const std::vector< unsigned > &neigh) const
 get neighbors
 
std::vector< double > getPoint (const std::vector< double > &x) const
 
void getPoint (const std::vector< double > &x, std::vector< double > &point) const
 
std::vector< double > getPoint (const std::vector< unsigned > &indices) const
 
void getPoint (const std::vector< unsigned > &indices, std::vector< double > &point) const
 
void getPoint (const unsigned *indices_data, std::size_t indices_size, double *point, std::size_t point_size) const
 
void getPoint (const unsigned *indices_data, std::size_t indices_size, std::vector< double > &point) const
 
std::vector< double > getPoint (index_t index) const
 
void getPoint (index_t index, std::vector< double > &point) const
 faster versions relying on preallocated vectors
 
virtual index_t getSize () const =0
 get grid size
 
double getValue (const std::vector< double > &x) const
 
double getValue (const std::vector< unsigned > &indices) const
 
virtual double getValue (index_t index) const =0
 get grid value
 
double getValueAndDerivatives (const std::vector< double > &x, std::vector< double > &der) const
 
double getValueAndDerivatives (const std::vector< unsigned > &indices, std::vector< double > &der) const
 
virtual double getValueAndDerivatives (index_t index, double *der, std::size_t der_size) const =0
 get grid value and derivatives
 
double getValueAndDerivatives (index_t index, std::vector< double > &der) const
 
bool hasDerivatives () const
 get if the grid has derivatives
 
void Init (const std::string &funcl, const std::vector< std::string > &names, const std::vector< std::string > &gmin, const std::vector< std::string > &gmax, const std::vector< unsigned > &nbin, bool dospline, bool usederiv, const std::vector< bool > &isperiodic, const std::vector< std::string > &pmin, const std::vector< std::string > &pmax)
 this is the real initializator
 
void resetToDefaultOutputFmt ()
 reset output format to the default %14.9f format
 
void setOutputFmt (const std::string &ss)
 set output format
 
void setValue (const std::vector< unsigned > &indices, double value)
 
virtual void setValue (index_t index, double value)=0
 set grid value
 
void setValueAndDerivatives (const std::vector< unsigned > &indices, double value, std::vector< double > &der)
 
virtual void setValueAndDerivatives (index_t index, double value, std::vector< double > &der)=0
 set grid value and derivatives
 
void writeCubeFile (OFile &, const double &lunit)
 dump grid to gaussian cube file
 
void writeHeader (OFile &file)
 write header for grid file
 
virtual void writeToFile (OFile &)=0
 dump grid on file
 

Static Public Member Functions

static std::unique_ptr< GridBasecreate (const std::string &, const std::vector< Value * > &, IFile &, bool, bool, bool)
 read grid from file
 
static std::unique_ptr< GridBasecreate (const std::string &, const std::vector< Value * > &, IFile &, const std::vector< std::string > &, const std::vector< std::string > &, const std::vector< unsigned > &, bool, bool, bool)
 read grid from file and check boundaries are what is expected from input
 

Static Public Attributes

static constexpr std::size_t maxdim =16
 Maximum dimension (exaggerated value).
 

Protected Member Functions

unsigned getSplineNeighbors (const unsigned *indices, std::size_t indices_size, index_t *neighbors, std::size_t neighbors_size) const
 get "neighbors" for spline
 

Protected Attributes

AcceleratorHandler accelerator
 
std::vector< std::string > argnames
 
unsigned dimension_
 
bool dospline_
 
std::vector< double > dx_
 
std::string fmt_
 
std::string funcname
 
std::vector< double > max_
 
index_t maxsize_
 
std::vector< double > min_
 
std::vector< unsigned > nbin_
 
std::vector< bool > pbc_
 
std::vector< std::string > str_max_
 
std::vector< std::string > str_min_
 
bool usederiv_
 

Member Typedef Documentation

◆ index_t

typedef std::size_t PLMD::GridBase::index_t

Constructor & Destructor Documentation

◆ GridBase() [1/2]

PLMD::GridBase::GridBase ( const std::string & funcl,
const std::vector< Value * > & args,
const std::vector< std::string > & gmin,
const std::vector< std::string > & gmax,
const std::vector< unsigned > & nbin,
bool dospline,
bool usederiv )

this constructor here is Value-aware

◆ GridBase() [2/2]

PLMD::GridBase::GridBase ( const std::string & funcl,
const std::vector< std::string > & names,
const std::vector< std::string > & gmin,
const std::vector< std::string > & gmax,
const std::vector< unsigned > & nbin,
bool dospline,
bool usederiv,
const std::vector< bool > & isperiodic,
const std::vector< std::string > & pmin,
const std::vector< std::string > & pmax )

this constructor here is not Value-aware

◆ ~GridBase()

virtual PLMD::GridBase::~GridBase ( )
virtualdefault

Member Function Documentation

◆ addKernel()

void PLMD::GridBase::addKernel ( const KernelFunctions & kernel)

add a kernel function to the grid

◆ addValue() [1/2]

void PLMD::GridBase::addValue ( const std::vector< unsigned > & indices,
double value )

◆ addValue() [2/2]

virtual void PLMD::GridBase::addValue ( index_t index,
double value )
pure virtual

add to grid value

Implemented in PLMD::Grid, and PLMD::SparseGrid.

◆ addValueAndDerivatives() [1/2]

void PLMD::GridBase::addValueAndDerivatives ( const std::vector< unsigned > & indices,
double value,
std::vector< double > & der )

◆ addValueAndDerivatives() [2/2]

virtual void PLMD::GridBase::addValueAndDerivatives ( index_t index,
double value,
std::vector< double > & der )
pure virtual

add to grid value and derivatives

Implemented in PLMD::Grid, and PLMD::SparseGrid.

◆ create() [1/2]

std::unique_ptr< GridBase > PLMD::GridBase::create ( const std::string & funcl,
const std::vector< Value * > & args,
IFile & ifile,
bool dosparse,
bool dospline,
bool doder )
static

read grid from file

◆ create() [2/2]

std::unique_ptr< GridBase > PLMD::GridBase::create ( const std::string & funcl,
const std::vector< Value * > & args,
IFile & ifile,
const std::vector< std::string > & gmin,
const std::vector< std::string > & gmax,
const std::vector< unsigned > & nbin,
bool dosparse,
bool dospline,
bool doder )
static

read grid from file and check boundaries are what is expected from input

◆ findMaximalPathMinimum()

double PLMD::GridBase::findMaximalPathMinimum ( const std::vector< double > & source,
const std::vector< double > & sink )

Find the maximum over paths of the minimum value of the gridded function along the paths for all paths of neighboring grid lattice points from a source point to a sink point.

◆ getArgNames()

std::vector< std::string > PLMD::GridBase::getArgNames ( ) const

get argument names of this grid

◆ getBinVolume()

double PLMD::GridBase::getBinVolume ( ) const

get bin volume

◆ getDimension()

unsigned PLMD::GridBase::getDimension ( ) const

get grid dimension

◆ getDx() [1/2]

std::vector< double > PLMD::GridBase::getDx ( ) const

get bin size

◆ getDx() [2/2]

double PLMD::GridBase::getDx ( index_t j) const

◆ getIndex() [1/3]

GridBase::index_t PLMD::GridBase::getIndex ( const std::vector< double > & x) const
inline

◆ getIndex() [2/3]

GridBase::index_t PLMD::GridBase::getIndex ( const std::vector< unsigned > & indices) const
inline

◆ getIndex() [3/3]

GridBase::index_t PLMD::GridBase::getIndex ( const unsigned * indices,
std::size_t indices_size ) const
inline

◆ getIndices() [1/6]

std::vector< unsigned > PLMD::GridBase::getIndices ( const std::vector< double > & x) const
inline

◆ getIndices() [2/6]

void PLMD::GridBase::getIndices ( const std::vector< double > & x,
std::vector< unsigned > & rindex ) const
inline

◆ getIndices() [3/6]

void PLMD::GridBase::getIndices ( const std::vector< double > & x,
unsigned * rindex_data,
std::size_t rindex_size ) const
inline

◆ getIndices() [4/6]

std::vector< unsigned > PLMD::GridBase::getIndices ( index_t index) const
inline

◆ getIndices() [5/6]

void PLMD::GridBase::getIndices ( index_t index,
std::vector< unsigned > & rindex ) const
inline

methods to handle grid indices

◆ getIndices() [6/6]

void PLMD::GridBase::getIndices ( index_t index,
unsigned * rindex_data,
std::size_t rindex_size ) const
inline

◆ getIsPeriodic()

std::vector< bool > PLMD::GridBase::getIsPeriodic ( ) const

get if periodic

◆ getMax()

std::vector< std::string > PLMD::GridBase::getMax ( ) const

get upper boundary

◆ getMaxValue()

virtual double PLMD::GridBase::getMaxValue ( ) const
pure virtual

get maximum value

Implemented in PLMD::Grid, and PLMD::SparseGrid.

◆ getMin()

std::vector< std::string > PLMD::GridBase::getMin ( ) const

get lower boundary

◆ getMinValue()

virtual double PLMD::GridBase::getMinValue ( ) const
pure virtual

get minimum value

Implemented in PLMD::Grid, and PLMD::SparseGrid.

◆ getNbin()

std::vector< unsigned > PLMD::GridBase::getNbin ( ) const

get number of bins

◆ getNearestNeighbors() [1/2]

std::vector< GridBase::index_t > PLMD::GridBase::getNearestNeighbors ( const index_t index) const

get nearest neighbors (those separated by exactly one lattice unit)

◆ getNearestNeighbors() [2/2]

std::vector< GridBase::index_t > PLMD::GridBase::getNearestNeighbors ( const std::vector< unsigned > & indices) const

◆ getNeighbors() [1/3]

std::vector< GridBase::index_t > PLMD::GridBase::getNeighbors ( const std::vector< double > & x,
const std::vector< unsigned > & neigh ) const
inline

◆ getNeighbors() [2/3]

std::vector< GridBase::index_t > PLMD::GridBase::getNeighbors ( const std::vector< unsigned > & indices,
const std::vector< unsigned > & neigh ) const
inline

◆ getNeighbors() [3/3]

std::vector< GridBase::index_t > PLMD::GridBase::getNeighbors ( index_t index,
const std::vector< unsigned > & neigh ) const
inline

get neighbors

◆ getPoint() [1/8]

std::vector< double > PLMD::GridBase::getPoint ( const std::vector< double > & x) const
inline

◆ getPoint() [2/8]

void PLMD::GridBase::getPoint ( const std::vector< double > & x,
std::vector< double > & point ) const
inline

◆ getPoint() [3/8]

std::vector< double > PLMD::GridBase::getPoint ( const std::vector< unsigned > & indices) const
inline

◆ getPoint() [4/8]

void PLMD::GridBase::getPoint ( const std::vector< unsigned > & indices,
std::vector< double > & point ) const
inline

◆ getPoint() [5/8]

void PLMD::GridBase::getPoint ( const unsigned * indices_data,
std::size_t indices_size,
double * point,
std::size_t point_size ) const
inline

◆ getPoint() [6/8]

void PLMD::GridBase::getPoint ( const unsigned * indices_data,
std::size_t indices_size,
std::vector< double > & point ) const
inline

◆ getPoint() [7/8]

std::vector< double > PLMD::GridBase::getPoint ( index_t index) const
inline

◆ getPoint() [8/8]

void PLMD::GridBase::getPoint ( index_t index,
std::vector< double > & point ) const
inline

faster versions relying on preallocated vectors

◆ getSize()

virtual index_t PLMD::GridBase::getSize ( ) const
pure virtual

get grid size

Implemented in PLMD::Grid, and PLMD::SparseGrid.

◆ getSplineNeighbors()

unsigned PLMD::GridBase::getSplineNeighbors ( const unsigned * indices,
std::size_t indices_size,
index_t * neighbors,
std::size_t neighbors_size ) const
protected

get "neighbors" for spline

◆ getValue() [1/3]

double PLMD::GridBase::getValue ( const std::vector< double > & x) const

◆ getValue() [2/3]

double PLMD::GridBase::getValue ( const std::vector< unsigned > & indices) const

◆ getValue() [3/3]

virtual double PLMD::GridBase::getValue ( index_t index) const
pure virtual

get grid value

Implemented in PLMD::Grid, and PLMD::SparseGrid.

◆ getValueAndDerivatives() [1/4]

double PLMD::GridBase::getValueAndDerivatives ( const std::vector< double > & x,
std::vector< double > & der ) const

◆ getValueAndDerivatives() [2/4]

double PLMD::GridBase::getValueAndDerivatives ( const std::vector< unsigned > & indices,
std::vector< double > & der ) const

◆ getValueAndDerivatives() [3/4]

virtual double PLMD::GridBase::getValueAndDerivatives ( index_t index,
double * der,
std::size_t der_size ) const
pure virtual

get grid value and derivatives

Implemented in PLMD::Grid, and PLMD::SparseGrid.

◆ getValueAndDerivatives() [4/4]

double PLMD::GridBase::getValueAndDerivatives ( index_t index,
std::vector< double > & der ) const

◆ hasDerivatives()

bool PLMD::GridBase::hasDerivatives ( ) const
inline

get if the grid has derivatives

◆ Init()

void PLMD::GridBase::Init ( const std::string & funcl,
const std::vector< std::string > & names,
const std::vector< std::string > & gmin,
const std::vector< std::string > & gmax,
const std::vector< unsigned > & nbin,
bool dospline,
bool usederiv,
const std::vector< bool > & isperiodic,
const std::vector< std::string > & pmin,
const std::vector< std::string > & pmax )

this is the real initializator

◆ resetToDefaultOutputFmt()

void PLMD::GridBase::resetToDefaultOutputFmt ( )
inline

reset output format to the default %14.9f format

◆ setOutputFmt()

void PLMD::GridBase::setOutputFmt ( const std::string & ss)
inline

set output format

◆ setValue() [1/2]

void PLMD::GridBase::setValue ( const std::vector< unsigned > & indices,
double value )

◆ setValue() [2/2]

virtual void PLMD::GridBase::setValue ( index_t index,
double value )
pure virtual

set grid value

Implemented in PLMD::Grid, and PLMD::SparseGrid.

◆ setValueAndDerivatives() [1/2]

void PLMD::GridBase::setValueAndDerivatives ( const std::vector< unsigned > & indices,
double value,
std::vector< double > & der )

◆ setValueAndDerivatives() [2/2]

virtual void PLMD::GridBase::setValueAndDerivatives ( index_t index,
double value,
std::vector< double > & der )
pure virtual

set grid value and derivatives

Implemented in PLMD::Grid, and PLMD::SparseGrid.

◆ writeCubeFile()

void PLMD::GridBase::writeCubeFile ( OFile & ofile,
const double & lunit )

dump grid to gaussian cube file

◆ writeHeader()

void PLMD::GridBase::writeHeader ( OFile & file)

write header for grid file

◆ writeToFile()

virtual void PLMD::GridBase::writeToFile ( OFile & )
pure virtual

dump grid on file

Implemented in PLMD::Grid, and PLMD::SparseGrid.

Member Data Documentation

◆ accelerator

AcceleratorHandler PLMD::GridBase::accelerator
protected

◆ argnames

std::vector<std::string> PLMD::GridBase::argnames
protected

◆ dimension_

unsigned PLMD::GridBase::dimension_
protected

◆ dospline_

bool PLMD::GridBase::dospline_
protected

◆ dx_

std::vector<double> PLMD::GridBase::dx_
protected

◆ fmt_

std::string PLMD::GridBase::fmt_
protected

◆ funcname

std::string PLMD::GridBase::funcname
protected

◆ max_

std::vector<double> PLMD::GridBase::max_
protected

◆ maxdim

std::size_t PLMD::GridBase::maxdim =16
staticconstexpr

Maximum dimension (exaggerated value).

Can be used to replace local std::vectors with std::arrays (allocated on stack).

◆ maxsize_

index_t PLMD::GridBase::maxsize_
protected

◆ min_

std::vector<double> PLMD::GridBase::min_
protected

◆ nbin_

std::vector<unsigned> PLMD::GridBase::nbin_
protected

◆ pbc_

std::vector<bool> PLMD::GridBase::pbc_
protected

◆ str_max_

std::vector<std::string> PLMD::GridBase::str_max_
protected

◆ str_min_

std::vector<std::string> PLMD::GridBase::str_min_
protected

◆ usederiv_

bool PLMD::GridBase::usederiv_
protected

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