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, 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
 
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 &)
 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 (std::string ss)
 set output format More...
 
double integrate (std::vector< unsigned > &npoints)
 Integrate the function calculated on the grid. More...
 

Static Public Member Functions

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

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

Member Typedef Documentation

typedef size_t PLMD::Grid::index_t

Constructor & Destructor Documentation

PLMD::Grid::Grid ( const std::string &  funcl,
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

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

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

Member Function Documentation

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

add a kernel function to the grid

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

add to grid value

Reimplemented in PLMD::SparseGrid.

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

add to grid value and derivatives

Reimplemented in PLMD::SparseGrid.

void PLMD::Grid::addValueAndDerivatives ( const std::vector< unsigned > &  indices,
double  value,
std::vector< double > &  der 
)
virtual
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

void PLMD::Grid::clear ( )
virtual

clear grid

Reimplemented in PLMD::SparseGrid.

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

read grid from file

Grid * PLMD::Grid::create ( const std::string &  funcl,
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

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

get argument names of this grid

double PLMD::Grid::getBinVolume ( ) const

get bin volume

unsigned PLMD::Grid::getDimension ( ) const

get grid dimension

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

get bin size

Grid::index_t PLMD::Grid::getIndex ( const std::vector< unsigned > &  indices) const
Grid::index_t PLMD::Grid::getIndex ( const std::vector< double > &  x) const
vector< unsigned > PLMD::Grid::getIndices ( index_t  index) const

methods to handle grid indices

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

get if periodic

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

get upper boundary

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

get maximum value

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

get lower boundary

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

get minimum value

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

get number of bins

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

get neighbors

vector< Grid::index_t > PLMD::Grid::getNeighbors ( const std::vector< unsigned > &  indices,
const std::vector< unsigned > &  neigh 
) const
vector< Grid::index_t > PLMD::Grid::getNeighbors ( const std::vector< double > &  x,
const std::vector< unsigned > &  neigh 
) const
vector< double > PLMD::Grid::getPoint ( index_t  index) const
vector< double > PLMD::Grid::getPoint ( const std::vector< unsigned > &  indices) const
vector< double > PLMD::Grid::getPoint ( const std::vector< double > &  x) const
void PLMD::Grid::getPoint ( index_t  index,
std::vector< double > &  point 
) const

faster versions relying on preallocated vectors

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

get grid size

Reimplemented in PLMD::SparseGrid.

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

get "neighbors" for spline

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

get grid value

Reimplemented in PLMD::SparseGrid.

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

get grid value and derivatives

Reimplemented in PLMD::SparseGrid.

double PLMD::Grid::getValueAndDerivatives ( const std::vector< unsigned > &  indices,
std::vector< double > &  der 
) const
virtual
double PLMD::Grid::getValueAndDerivatives ( const std::vector< double > &  x,
std::vector< double > &  der 
) const
virtual
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

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

Integrate the function calculated on the grid.

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

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

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

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

Scale all grid values and derivatives by a constant factor.

void PLMD::Grid::setMinToZero ( )
virtual

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

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

set output format

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

set grid value

Reimplemented in PLMD::SparseGrid.

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

set grid value and derivatives

Reimplemented in PLMD::SparseGrid.

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

dump grid to gaussian cube file

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

write header for grid file

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

dump grid on file

Reimplemented in PLMD::SparseGrid.

Member Data Documentation

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

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