SSAGES
0.1
A MetaDynamics Package
|
Base class for Grids. More...
#include <GridBase.h>
Public Member Functions | |
size_t | GetDimension () const |
Get the dimension. More... | |
const std::vector< int > & | GetNumPoints () const |
Get the number of points for all dimensions. More... | |
int | GetNumPoints (size_t dim) const |
Get the number of points for a specific dimension. More... | |
const std::vector< double > & | GetLower () const |
Return the lower edges of the Grid. More... | |
double | GetLower (size_t dim) const |
Get the lower edge for a specific dimension. More... | |
const std::vector< double > & | GetUpper () const |
Return the upper edges of the Grid. More... | |
double | GetUpper (size_t dim) const |
Get the upper edge for a specific dimension. More... | |
const std::vector< bool > & | GetPeriodic () const |
Return the periodicity of the Grid. More... | |
bool | GetPeriodic (size_t dim) const |
Get the periodicity in a specific dimension. More... | |
size_t | size () const |
Get the size of the internal storage vector. More... | |
T * | data () |
Get pointer to the internal data storage vector. More... | |
T const * | data () const |
Get pointer to const of the internal data storage vector. More... | |
std::vector< int > | GetIndices (const std::vector< double > &x) const |
Return the Grid indices for a given point. More... | |
double | GetInterpolated (const std::vector< double > &x) |
Return linear interpolation on a coordinate. More... | |
int | GetIndex (double x) const |
Return the Grid index for a one-dimensional grid. More... | |
std::vector< double > | GetCoordinates (const std::vector< int > &indices) |
Return coordinates of the grid center points. More... | |
double | GetCoordinate (int index) |
Return center point of 1d-grid. More... | |
const T & | at (const std::vector< int > &indices) const |
Access Grid element read-only. More... | |
T & | at (const std::vector< int > &indices) |
Access Grid element read/write. More... | |
template<typename R > | |
const T & | at (std::initializer_list< R > &&x) const |
Const access of Grid element via initializer list. More... | |
template<typename R > | |
T & | at (std::initializer_list< R > &&x) |
Access Grid element via initializer list. More... | |
const T & | at (int index) const |
Access 1d Grid by index, read-only. More... | |
T & | at (int index) |
Access 1d Grid by index, read-write. More... | |
const T & | at (const std::vector< double > &x) const |
Access Grid element pertaining to a specific point – read-only. More... | |
T & | at (const std::vector< double > &x) |
Access Grid element pertaining to a specific point – read/write. More... | |
const T & | at (double x) const |
Access 1d-Grid by point - read-only. More... | |
T & | at (double x) |
Access 1d-Grid by point - read-write. More... | |
const T & | operator[] (const std::vector< int > &indices) const |
Access Grid element per [] read-only. More... | |
T & | operator[] (const std::vector< int > &indices) |
Access Grid element per [] read-write. More... | |
template<typename R > | |
const T & | operator[] (std::initializer_list< R > &&x) const |
Const access of Grid element via initializer list. More... | |
template<typename R > | |
T & | operator[] (std::initializer_list< R > &&x) |
Access Grid element via initializer list. More... | |
const T & | operator[] (int index) const |
Access 1d-Grid per [] operator, read-only. More... | |
T & | operator[] (int index) |
Access 1d-Grid per [] operator, read-write. More... | |
const T & | operator[] (const std::vector< double > &x) const |
Access Grid element pertaining to a specific point per [] read-only. More... | |
T & | operator[] (const std::vector< double > &x) |
Access Grid element pertaining to a specific point per [] read-write. More... | |
const T & | operator[] (double x) const |
Access 1d-Grid via specific point, read-only. More... | |
T & | operator[] (double x) |
Access 1d-Grid via specific point, read-write. More... | |
Protected Member Functions | |
std::vector< int > | wrapIndices (const std::vector< int > &indices) const |
Wrap the index around periodic boundaries. | |
virtual size_t | mapTo1d (const std::vector< int > &indices) const =0 |
This function needs to be implemented by child classes. More... | |
GridBase (std::vector< int > numPoints, std::vector< double > lower, std::vector< double > upper, std::vector< bool > isPeriodic) | |
Constructor. More... | |
Protected Attributes | |
std::vector< T > | data_ |
Internal storage of the data. | |
size_t | dimension_ |
Dimension of the grid. | |
std::vector< int > | numPoints_ |
Number of points in each dimension. | |
std::pair< std::vector< double > , std::vector< double > > | edges_ |
Edges of the Grid in each dimension. | |
std::vector< bool > | isPeriodic_ |
Periodicity of the Grid. | |
Base class for Grids.
Type | of data stored on the grid |
Base class for all grids. Currently, these are 'Grid' and 'Histogram'.
Definition at line 38 of file GridBase.h.
|
inlineprotected |
Constructor.
numPoints | Number of grid points in each dimension. |
lower | Lower edges of the grid. |
upper | Upper edges of the grid. |
isPeriodic | Bools specifying the periodicity in the respective dimension. |
The constructor is protected by design. This makes sure that only child classes of GridBase are constructed.
Definition at line 97 of file GridBase.h.
|
inline |
Access Grid element read-only.
indices | Vector of integers specifying the grid point. |
In non-periodic dimensions, the index needs to be in the interval [-1, numPoints]. Grid::at(-1) accessed the underflow bin, Grid::at(numPoints) accesses the overflow bin.
In periodic dimensions, the index may take any integer value and will be mapped back to the interval [0, numPoints-1]. Thus, Grid::at(-1) will access the same value as Grid::at(numPoints-1).
Definition at line 452 of file GridBase.h.
Referenced by SSAGES::GridBase< int >::at(), SSAGES::GridBase< int >::GetCoordinate(), SSAGES::GridBase< int >::GetIndex(), SSAGES::GridBase< int >::GetInterpolated(), and SSAGES::GridBase< int >::operator[]().
|
inline |
Access Grid element read/write.
indices | Vector of integers specifying the grid point. |
Definition at line 468 of file GridBase.h.
|
inline |
Const access of Grid element via initializer list.
R | Datatype in the initializer list |
x | initializer list |
This function avoids abiguity if at() is called with a brace-enclosed initializer list. The template parameter makes sure that this function can be called with either ints, specifying a grid point, or doubles, specifying coordinates in space, inside the initializer list.
Definition at line 485 of file GridBase.h.
|
inline |
Access Grid element via initializer list.
R | Datatype in the initializer list |
x | initializer list |
This function avoids abiguity if at() is called with a brace-enclosed initializer list. The template parameter makes sure that this function can be called with either ints, specifying a grid point, or doubles, specifying coordinates in space, inside the initializer list.
Definition at line 502 of file GridBase.h.
|
inline |
Access 1d Grid by index, read-only.
index | Index specifying the grid point. |
Definition at line 514 of file GridBase.h.
|
inline |
Access 1d Grid by index, read-write.
index | Index specifying the grid point. |
Definition at line 530 of file GridBase.h.
|
inline |
Access Grid element pertaining to a specific point – read-only.
x | Vector of doubles specifying a point. |
This function is provided for convenience. It is identical to GridBase::at(GridBase::GetIndices(x)).
Definition at line 543 of file GridBase.h.
|
inline |
Access Grid element pertaining to a specific point – read/write.
x | Vector of doubles specifying a point. |
This function is provided for convenience. It is identical to GridBase::at(GridBase::GetIndices(x)).
Definition at line 556 of file GridBase.h.
|
inline |
Access 1d-Grid by point - read-only.
x | Access grid point pertaining to this value. |
Definition at line 569 of file GridBase.h.
|
inline |
Access 1d-Grid by point - read-write.
x | Access grid point pertaining to this value. |
Definition at line 585 of file GridBase.h.
|
inline |
Get pointer to the internal data storage vector.
It is discouraged to directly access the internal data storage. It might, however be necessary. For example when communicating the data over MPI.
Definition at line 262 of file GridBase.h.
Referenced by SSAGES::Basis::UpdateBias().
|
inline |
Get pointer to const of the internal data storage vector.
It is discouraged to directly access the internal data storage. It might, however be necessary. For example when communicating data over MPI.
Definition at line 274 of file GridBase.h.
|
inline |
Return center point of 1d-grid.
index | Index of the 1d grid. |
Definition at line 434 of file GridBase.h.
|
inline |
Return coordinates of the grid center points.
indices | Grid indices specifying a grid point. |
The grid is a discretization of real or cv space. Thus, each grid point is associated with an interval of the underlying space. This function returns the center point of this interval.
Definition at line 409 of file GridBase.h.
Referenced by SSAGES::GridBase< int >::GetCoordinate(), and SSAGES::GridBase< int >::GetInterpolated().
|
inline |
Get the dimension.
Definition at line 128 of file GridBase.h.
Referenced by SSAGES::GridBase< int >::at(), SSAGES::GridBase< int >::GetLower(), SSAGES::GridBase< int >::GetNumPoints(), SSAGES::GridBase< int >::GetPeriodic(), and SSAGES::GridBase< int >::GetUpper().
|
inline |
Return the Grid index for a one-dimensional grid.
x | Point in space. |
Return the Grid index pertaining to the given point in space. This function is for convenience when accessing 1d-Grids. For higher-dimensional grids, x needs to be a vector of doubles.
Definition at line 391 of file GridBase.h.
|
inline |
Return the Grid indices for a given point.
x | Point in space. |
The grid discretizes the continuous space. For a given point in this continuous space, this function will return the indices of the grid point covering the point in space.
If the grid is non-periodic in a given dimension and x is lower than the lower edge in this dimension, the function will return -1, the index of the underflow bin. Similarly, it will return numPoints, the index of the overflow bin, if x is larger than the upper edge.
In periodic dimensions, the index can take any integer value and will be wrapped to the interval [0, numPoints).
Definition at line 296 of file GridBase.h.
Referenced by SSAGES::GridBase< int >::at(), SSAGES::GridBase< int >::GetIndex(), and SSAGES::GridBase< int >::GetInterpolated().
|
inline |
Return linear interpolation on a coordinate.
x | Point in space. |
Definition at line 333 of file GridBase.h.
|
inline |
Return the lower edges of the Grid.
Definition at line 165 of file GridBase.h.
Referenced by SSAGES::GridBase< int >::GetCoordinates(), SSAGES::GridBase< int >::GetIndices(), SSAGES::GridBase< int >::GetInterpolated(), and SSAGES::GridBase< int >::GetLower().
|
inline |
Get the lower edge for a specific dimension.
dim | Index of the dimension. |
Definition at line 177 of file GridBase.h.
|
inline |
Get the number of points for all dimensions.
Definition at line 138 of file GridBase.h.
Referenced by SSAGES::Grid< int >::end(), SSAGES::Histogram< int >::end(), SSAGES::GridBase< int >::GetCoordinates(), SSAGES::GridBase< int >::GetIndices(), SSAGES::GridBase< int >::GetInterpolated(), SSAGES::Grid< int >::Grid(), SSAGES::Histogram< int >::Histogram(), SSAGES::Grid< int >::mapTo1d(), SSAGES::Histogram< int >::mapTo1d(), and SSAGES::GridBase< int >::wrapIndices().
|
inline |
Get the number of points for a specific dimension.
dim | Index of the dimension. |
Definition at line 150 of file GridBase.h.
|
inline |
Return the periodicity of the Grid.
True
(False
) if the grid is periodic (non-periodic) in the given dimension. Definition at line 219 of file GridBase.h.
Referenced by SSAGES::GridBase< int >::GetIndices(), SSAGES::GridBase< int >::GetPeriodic(), SSAGES::Histogram< int >::mapTo1d(), and SSAGES::GridBase< int >::wrapIndices().
|
inline |
Get the periodicity in a specific dimension.
dim | Index of the dimension. |
True
(False
) if the grid is periodic (non-periodic) in the specified dimension.Definition at line 232 of file GridBase.h.
|
inline |
Return the upper edges of the Grid.
Definition at line 191 of file GridBase.h.
Referenced by SSAGES::GridBase< int >::GetCoordinates(), SSAGES::GridBase< int >::GetIndices(), SSAGES::GridBase< int >::GetInterpolated(), and SSAGES::GridBase< int >::GetUpper().
|
inline |
Get the upper edge for a specific dimension.
dim | Index of the dimension. |
Definition at line 204 of file GridBase.h.
|
protectedpure virtual |
This function needs to be implemented by child classes.
indices | The indices specifying the grid point. |
mapTo1d maps the indices onto a single index to access the data stored in the data_ vector. This mapping will be different for different grid implementations.
Implemented in SSAGES::Histogram< T >, SSAGES::Histogram< int >, SSAGES::Grid< T >, SSAGES::Grid< double >, SSAGES::Grid< Vector >, and SSAGES::Grid< int >.
Referenced by SSAGES::GridBase< int >::at().
|
inline |
Access Grid element per [] read-only.
indices | Vector of integers specifying the grid point. |
Definition at line 595 of file GridBase.h.
|
inline |
Access Grid element per [] read-write.
indices | Vector of integers specifying the grid point. |
Definition at line 605 of file GridBase.h.
|
inline |
Const access of Grid element via initializer list.
R | Datatype in the initializer list |
x | initializer list |
This function avoids abiguity if operator[] is called with a brace-enclosed initializer list.
Example: grid[{0,1}] or grid[{-1.23, 4.2, 0.0}]
Definition at line 622 of file GridBase.h.
|
inline |
Access Grid element via initializer list.
R | Datatype in the initializer list |
x | initializer list |
This function avoids abiguity if operator[] is called with a brace-enclosed initializer list.
Example: grid[{0,1}]
Definition at line 639 of file GridBase.h.
|
inline |
Access 1d-Grid per [] operator, read-only.
index | Index of the grid point. |
Definition at line 651 of file GridBase.h.
|
inline |
Access 1d-Grid per [] operator, read-write.
index | Index of the grid point. |
Definition at line 663 of file GridBase.h.
|
inline |
Access Grid element pertaining to a specific point per [] read-only.
x | Vector of doubles specifying the point in space. |
Definition at line 673 of file GridBase.h.
|
inline |
Access Grid element pertaining to a specific point per [] read-write.
x | Vector of doubles specifying the point in space. |
Definition at line 683 of file GridBase.h.
|
inline |
Access 1d-Grid via specific point, read-only.
x | Point specifying the desired Grid point. |
Definition at line 695 of file GridBase.h.
|
inline |
Access 1d-Grid via specific point, read-write.
x | Point specifying the desired Grid point. |
Definition at line 707 of file GridBase.h.
|
inline |
Get the size of the internal storage vector.
This function returns the size of the internal storage vector. This is also the total number of grid points including the over/underflow bins in case of a histogram.
Definition at line 250 of file GridBase.h.