Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
PLMD::Grid Class Reference

#include <Grid.h>

Inheritance diagram for PLMD::Grid:
Inheritance graph
[legend]

Public Types

typedef size_t index_t
 

Public Member Functions

virtual void clear ()
 clear grid More...
 
 Grid (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, bool doclear=true)
 this constructor here is Value-aware More...
 
 Grid (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, bool doclear, const std::vector< bool > &isperiodic, const std::vector< std::string > &pmin, const std::vector< std::string > &pmax)
 this constructor here is not Value-aware More...
 
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, bool doclear, const std::vector< bool > &isperiodic, const std::vector< std::string > &pmin, const std::vector< std::string > &pmax)
 this is the real initializator More...
 
std::vector< std::string > getMin () const
 get lower boundary More...
 
std::vector< std::string > getMax () const
 get upper boundary More...
 
std::vector< double > getDx () const
 get bin size More...
 
double getBinVolume () const
 get bin volume More...
 
std::vector< unsigned > getNbin () const
 get number of bins More...
 
std::vector< bool > getIsPeriodic () const
 get if periodic More...
 
unsigned getDimension () const
 get grid dimension More...
 
std::vector< std::string > getArgNames () const
 get argument names of this grid More...
 
std::vector< unsigned > getIndices (index_t index) const
 methods to handle grid indices More...
 
std::vector< unsigned > getIndices (const std::vector< double > &x) const
 
index_t getIndex (const std::vector< unsigned > &indices) const
 
index_t getIndex (const std::vector< double > &x) const
 
std::vector< double > getPoint (index_t index) const
 
std::vector< double > getPoint (const std::vector< unsigned > &indices) const
 
std::vector< double > getPoint (const std::vector< double > &x) const
 
void getPoint (index_t index, std::vector< double > &point) const
 faster versions relying on preallocated vectors More...
 
void getPoint (const std::vector< unsigned > &indices, std::vector< double > &point) const
 
void getPoint (const std::vector< double > &x, std::vector< double > &point) const
 
std::vector< index_tgetNeighbors (index_t index, const std::vector< unsigned > &neigh) const
 get neighbors More...
 
std::vector< index_tgetNeighbors (const std::vector< unsigned > &indices, const std::vector< unsigned > &neigh) const
 
std::vector< index_tgetNeighbors (const std::vector< double > &x, const std::vector< unsigned > &neigh) const
 
void writeHeader (OFile &file)
 write header for grid file More...
 
virtual index_t getSize () const
 get grid size More...
 
virtual double getValue (index_t index) const
 get grid value More...
 
virtual double getValue (const std::vector< unsigned > &indices) const
 
virtual double getValue (const std::vector< double > &x) const
 
virtual double getMinValue () const
 get minimum value More...
 
virtual double getMaxValue () const
 get maximum value More...
 
virtual double getValueAndDerivatives (index_t index, std::vector< double > &der) const
 get grid value and derivatives More...
 
virtual double getValueAndDerivatives (const std::vector< unsigned > &indices, std::vector< double > &der) const
 
virtual double getValueAndDerivatives (const std::vector< double > &x, std::vector< double > &der) const
 
double getDifferenceFromContour (const std::vector< double > &x, std::vector< double > &der) const
 Get the difference from the contour. More...
 
void findSetOfPointsOnContour (const double &target, const std::vector< bool > &nosearch, unsigned &npoints, std::vector< std::vector< double > > &points)
 Find a set of points on a contour in the function. More...
 
virtual void setValue (index_t index, double value)
 set grid value More...
 
virtual void setValue (const std::vector< unsigned > &indices, double value)
 
virtual void setValueAndDerivatives (index_t index, double value, std::vector< double > &der)
 set grid value and derivatives More...
 
virtual void setValueAndDerivatives (const std::vector< unsigned > &indices, double value, std::vector< double > &der)
 
virtual void addValue (index_t index, double value)
 add to grid value More...
 
virtual void addValue (const std::vector< unsigned > &indices, double value)
 
virtual void addValueAndDerivatives (index_t index, double value, std::vector< double > &der)
 add to grid value and derivatives More...
 
virtual void addValueAndDerivatives (const std::vector< unsigned > &indices, double value, std::vector< double > &der)
 
virtual void scaleAllValuesAndDerivatives (const double &scalef)
 Scale all grid values and derivatives by a constant factor. More...
 
virtual void logAllValuesAndDerivatives (const double &scalef)
 Takes the scalef times the logarithm of all grid values and derivatives. More...
 
virtual void setMinToZero ()
 Set the minimum value of the grid to zero and translates accordingly. More...
 
virtual void applyFunctionAllValuesAndDerivatives (double(*func)(double val), double(*funcder)(double valder))
 apply function: takes pointer to function that accepts a double and apply More...
 
void addKernel (const KernelFunctions &kernel)
 add a kernel function to the grid More...
 
virtual void writeToFile (OFile &)
 dump grid on file More...
 
void writeCubeFile (OFile &, const double &lunit)
 dump grid to gaussian cube file More...
 
virtual ~Grid ()
 
Grid project (const std::vector< std::string > &proj, WeightBase *ptr2obj)
 project a high dimensional grid onto a low dimensional one: this should be changed at some time to enable many types of weighting More...
 
void projectOnLowDimension (double &val, std::vector< int > &varHigh, WeightBase *ptr2obj)
 
void setOutputFmt (const std::string &ss)
 set output format More...
 
double integrate (std::vector< unsigned > &npoints)
 Integrate the function calculated on the grid. More...
 
void mpiSumValuesAndDerivatives (Communicator &comm)
 

Static Public Member Functions

static Gridcreate (const std::string &, const std::vector< Value *> &, IFile &, bool, bool, bool)
 read grid from file More...
 
static Gridcreate (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 More...
 

Protected Member Functions

std::vector< index_tgetSplineNeighbors (const std::vector< unsigned > &indices) const
 get "neighbors" for spline More...
 

Protected Attributes

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

Private Attributes

double contour_location
 
std::vector< double > grid_
 
std::vector< std::vector< double > > der_
 

Member Typedef Documentation

◆ index_t

typedef size_t PLMD::Grid::index_t

Constructor & Destructor Documentation

◆ Grid() [1/2]

PLMD::Grid::Grid ( 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,
bool  doclear = true 
)

this constructor here is Value-aware

◆ Grid() [2/2]

PLMD::Grid::Grid ( 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,
bool  doclear,
const std::vector< bool > &  isperiodic,
const std::vector< std::string > &  pmin,
const std::vector< std::string > &  pmax 
)

this constructor here is not Value-aware

◆ ~Grid()

virtual PLMD::Grid::~Grid ( )
inlinevirtual

Member Function Documentation

◆ addKernel()

void PLMD::Grid::addKernel ( const KernelFunctions kernel)

add a kernel function to the grid

◆ addValue() [1/2]

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

add to grid value

Reimplemented in PLMD::SparseGrid.

◆ addValue() [2/2]

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

◆ addValueAndDerivatives() [1/2]

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

add to grid value and derivatives

Reimplemented in PLMD::SparseGrid.

◆ addValueAndDerivatives() [2/2]

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

◆ applyFunctionAllValuesAndDerivatives()

void PLMD::Grid::applyFunctionAllValuesAndDerivatives ( double(*)(double val)  func,
double(*)(double valder)  funcder 
)
virtual

apply function: takes pointer to function that accepts a double and apply

◆ clear()

void PLMD::Grid::clear ( )
virtual

clear grid

Reimplemented in PLMD::SparseGrid.

◆ create() [1/2]

Grid * PLMD::Grid::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]

Grid * PLMD::Grid::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

◆ findSetOfPointsOnContour()

void PLMD::Grid::findSetOfPointsOnContour ( const double &  target,
const std::vector< bool > &  nosearch,
unsigned &  npoints,
std::vector< std::vector< double > > &  points 
)

Find a set of points on a contour in the function.

◆ getArgNames()

vector< string > PLMD::Grid::getArgNames ( ) const

get argument names of this grid

◆ getBinVolume()

double PLMD::Grid::getBinVolume ( ) const

get bin volume

◆ getDifferenceFromContour()

double PLMD::Grid::getDifferenceFromContour ( const std::vector< double > &  x,
std::vector< double > &  der 
) const

Get the difference from the contour.

◆ getDimension()

unsigned PLMD::Grid::getDimension ( ) const

get grid dimension

◆ getDx()

vector< double > PLMD::Grid::getDx ( ) const

get bin size

◆ getIndex() [1/2]

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

◆ getIndex() [2/2]

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

◆ getIndices() [1/2]

vector< unsigned > PLMD::Grid::getIndices ( index_t  index) const

methods to handle grid indices

◆ getIndices() [2/2]

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

◆ getIsPeriodic()

vector< bool > PLMD::Grid::getIsPeriodic ( ) const

get if periodic

◆ getMax()

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

get upper boundary

◆ getMaxValue()

double PLMD::Grid::getMaxValue ( ) const
virtual

get maximum value

◆ getMin()

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

get lower boundary

◆ getMinValue()

double PLMD::Grid::getMinValue ( ) const
virtual

get minimum value

◆ getNbin()

vector< unsigned > PLMD::Grid::getNbin ( ) const

get number of bins

◆ getNeighbors() [1/3]

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

get neighbors

◆ getNeighbors() [2/3]

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

◆ getNeighbors() [3/3]

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

◆ getPoint() [1/6]

vector< double > PLMD::Grid::getPoint ( index_t  index) const

◆ getPoint() [2/6]

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

◆ getPoint() [3/6]

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

◆ getPoint() [4/6]

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

faster versions relying on preallocated vectors

◆ getPoint() [5/6]

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

◆ getPoint() [6/6]

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

◆ getSize()

Grid::index_t PLMD::Grid::getSize ( ) const
virtual

get grid size

Reimplemented in PLMD::SparseGrid.

◆ getSplineNeighbors()

vector< Grid::index_t > PLMD::Grid::getSplineNeighbors ( const std::vector< unsigned > &  indices) const
protected

get "neighbors" for spline

◆ getValue() [1/3]

double PLMD::Grid::getValue ( index_t  index) const
virtual

get grid value

Reimplemented in PLMD::SparseGrid.

◆ getValue() [2/3]

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

◆ getValue() [3/3]

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

◆ getValueAndDerivatives() [1/3]

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

get grid value and derivatives

Reimplemented in PLMD::SparseGrid.

◆ getValueAndDerivatives() [2/3]

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

◆ getValueAndDerivatives() [3/3]

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

◆ Init()

void PLMD::Grid::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,
bool  doclear,
const std::vector< bool > &  isperiodic,
const std::vector< std::string > &  pmin,
const std::vector< std::string > &  pmax 
)

this is the real initializator

◆ integrate()

double PLMD::Grid::integrate ( std::vector< unsigned > &  npoints)

Integrate the function calculated on the grid.

◆ logAllValuesAndDerivatives()

void PLMD::Grid::logAllValuesAndDerivatives ( const double &  scalef)
virtual

Takes the scalef times the logarithm of all grid values and derivatives.

◆ mpiSumValuesAndDerivatives()

void PLMD::Grid::mpiSumValuesAndDerivatives ( Communicator comm)

◆ project()

Grid PLMD::Grid::project ( const std::vector< std::string > &  proj,
WeightBase ptr2obj 
)

project a high dimensional grid onto a low dimensional one: this should be changed at some time to enable many types of weighting

◆ projectOnLowDimension()

void PLMD::Grid::projectOnLowDimension ( double &  val,
std::vector< int > &  varHigh,
WeightBase ptr2obj 
)

◆ scaleAllValuesAndDerivatives()

void PLMD::Grid::scaleAllValuesAndDerivatives ( const double &  scalef)
virtual

Scale all grid values and derivatives by a constant factor.

◆ setMinToZero()

void PLMD::Grid::setMinToZero ( )
virtual

Set the minimum value of the grid to zero and translates accordingly.

◆ setOutputFmt()

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

set output format

◆ setValue() [1/2]

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

set grid value

Reimplemented in PLMD::SparseGrid.

◆ setValue() [2/2]

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

◆ setValueAndDerivatives() [1/2]

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

set grid value and derivatives

Reimplemented in PLMD::SparseGrid.

◆ setValueAndDerivatives() [2/2]

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

◆ writeCubeFile()

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

dump grid to gaussian cube file

◆ writeHeader()

void PLMD::Grid::writeHeader ( OFile file)

write header for grid file

◆ writeToFile()

void PLMD::Grid::writeToFile ( OFile ofile)
virtual

dump grid on file

Reimplemented in PLMD::SparseGrid.

Member Data Documentation

◆ argnames

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

◆ contour_location

double PLMD::Grid::contour_location
private

◆ der_

std::vector< std::vector<double> > PLMD::Grid::der_
private

◆ dimension_

unsigned PLMD::Grid::dimension_
protected

◆ dospline_

bool PLMD::Grid::dospline_
protected

◆ dx_

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

◆ fmt_

std::string PLMD::Grid::fmt_
protected

◆ funcname

std::string PLMD::Grid::funcname
protected

◆ grid_

std::vector<double> PLMD::Grid::grid_
private

◆ max_

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

◆ maxsize_

index_t PLMD::Grid::maxsize_
protected

◆ min_

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

◆ nbin_

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

◆ pbc_

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

◆ str_max_

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

◆ str_min_

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

◆ usederiv_

bool PLMD::Grid::usederiv_
protected

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