OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
|
#include <Interpolator3dGridTo1d.h>
Public Member Functions | |
Interpolator3dGridTo1d (ThreeDGrid *grid, double ***F) | |
Interpolator3dGridTo1d () | |
virtual | ~Interpolator3dGridTo1d () |
virtual void | function (const Mesh::Iterator &point, double *value) const |
virtual void | function (const double Point[3], double Value[1]) const =0 |
virtual Interpolator3dGridTo1d * | clone () const =0 |
int | getNumberOfXCoords () const |
int | getNumberOfYCoords () const |
int | getNumberOfZCoords () const |
unsigned int | getPointDimension () const |
unsigned int | getValueDimension () const |
ThreeDGrid * | getMesh () const |
void | setGrid (ThreeDGrid *grid) |
void | setX (int nCoords, double *x) |
void | setY (int nCoords, double *y) |
void | setZ (int nCoords, double *z) |
void | setF (double ***inF) |
void | deleteFunc (double ***func) |
double *** | function () const |
void | setAll (ThreeDGrid *grid, double ***F) |
void | clear () |
Public Member Functions inherited from interpolation::VectorMap | |
virtual void | function (const double *point, double *value) const =0 |
virtual void | functionAppend (const std::vector< std::vector< double > > &point_vec, std::vector< std::vector< double > > &value_vec) const |
virtual bool | checkPoint (const std::vector< double > &point) const |
virtual bool | checkValue (const std::vector< double > &value) const |
virtual | ~VectorMap () |
Protected Attributes | |
ThreeDGrid * | coordinates_m |
double *** | f_m |
Interpolator3dGridTo1d is an abstraction for lookup on a 3D mesh to get a 1D value.
Interpolator3dGridTo1d abstracts the lookup from a 3D mesh to get a 1D value This is a building block for higher dimension (e.g. field vector lookup) where we can do multiple lookups one for each field, at the cost of doing multiple access/interpolation operations to the grid.
Definition at line 44 of file Interpolator3dGridTo1d.h.
|
inline |
Constructor for grids with constant spacing
grid | 3d mesh on which data is stored - adds a reference to *this into the mesh smart pointer thing. |
F | function data with points on each element of the grid. Indexing goes like [index_x][index_y][index_z]. Interpolator3dGridTo1d now owns this memory |
Definition at line 143 of file Interpolator3dGridTo1d.h.
References setAll().
|
inline |
Default constructor - initialises data to NULL
Note I have no NULL checking on most member functions so be careful
Definition at line 148 of file Interpolator3dGridTo1d.h.
|
inlinevirtual |
Deletes F data and removes *this from ThreeDGrid smart pointer thing.
Definition at line 152 of file Interpolator3dGridTo1d.h.
References clear().
|
inline |
Clear all private data
Definition at line 216 of file Interpolator3dGridTo1d.h.
References coordinates_m, deleteFunc(), f_m, and interpolation::ThreeDGrid::remove().
Referenced by ~Interpolator3dGridTo1d().
|
pure virtual |
Copy constructor
Implements interpolation::VectorMap.
Implemented in interpolation::TriLinearInterpolator.
Referenced by interpolation::Interpolator3dGridTo3d::Interpolator3dGridTo3d().
void interpolation::Interpolator3dGridTo1d::deleteFunc | ( | double *** | func | ) |
Delete any existing function data
Definition at line 31 of file Interpolator3dGridTo1d.cpp.
References getNumberOfXCoords(), and getNumberOfYCoords().
Referenced by clear(), and setF().
|
inline |
Return a pointer to the function data
Definition at line 207 of file Interpolator3dGridTo1d.h.
References f_m.
|
pure virtual |
Get the interpolated function data
Implemented in interpolation::TriLinearInterpolator.
|
inlinevirtual |
Call function at a particular point in the mesh
Reimplemented from interpolation::VectorMap.
Reimplemented in interpolation::TriLinearInterpolator.
Definition at line 66 of file Interpolator3dGridTo1d.h.
References interpolation::VectorMap::function().
Referenced by interpolation::Interpolator3dGridTo3d::function().
|
inlinevirtual |
Return a pointer to the mesh
Reimplemented from interpolation::VectorMap.
Definition at line 176 of file Interpolator3dGridTo1d.h.
References coordinates_m.
|
inline |
Number of x coordinates in the grid
Definition at line 156 of file Interpolator3dGridTo1d.h.
References coordinates_m, and interpolation::ThreeDGrid::xSize().
Referenced by deleteFunc().
|
inline |
Number of y coordinates in the grid
Definition at line 160 of file Interpolator3dGridTo1d.h.
References coordinates_m, and interpolation::ThreeDGrid::ySize().
Referenced by deleteFunc().
|
inline |
Number of z coordinates in the grid
Definition at line 164 of file Interpolator3dGridTo1d.h.
References coordinates_m, and interpolation::ThreeDGrid::zSize().
|
inlinevirtual |
Dimension of input points
Implements interpolation::VectorMap.
Definition at line 168 of file Interpolator3dGridTo1d.h.
|
inlinevirtual |
Dimension of output values
Implements interpolation::VectorMap.
Definition at line 172 of file Interpolator3dGridTo1d.h.
|
inline |
Set function and mesh data
Definition at line 211 of file Interpolator3dGridTo1d.h.
References setF(), and setGrid().
Referenced by Interpolator3dGridTo1d().
|
inline |
Set function data, deleting any existing function data
Definition at line 180 of file Interpolator3dGridTo1d.h.
References deleteFunc(), and f_m.
Referenced by setAll().
|
inline |
Reset the mesh
Removes reference to this from mesh smart pointer if appropriate
Definition at line 185 of file Interpolator3dGridTo1d.h.
References interpolation::ThreeDGrid::add(), coordinates_m, and interpolation::ThreeDGrid::remove().
Referenced by setAll().
|
inline |
Set x coordinates in the mesh to an arbitrary set of points
If mesh is NULL, does nothing
Definition at line 192 of file Interpolator3dGridTo1d.h.
References coordinates_m, and interpolation::ThreeDGrid::setX().
|
inline |
Set y coordinates in the mesh to an arbitrary set of points
If mesh is NULL, does nothing
Definition at line 197 of file Interpolator3dGridTo1d.h.
References coordinates_m, and interpolation::ThreeDGrid::setY().
|
inline |
Set z coordinates in the mesh to an arbitrary set of points
If mesh is NULL, does nothing
Definition at line 202 of file Interpolator3dGridTo1d.h.
References coordinates_m, and interpolation::ThreeDGrid::setZ().
|
protected |
Definition at line 139 of file Interpolator3dGridTo1d.h.
Referenced by clear(), interpolation::TriLinearInterpolator::function(), getMesh(), getNumberOfXCoords(), getNumberOfYCoords(), getNumberOfZCoords(), setGrid(), setX(), setY(), setZ(), and interpolation::TriLinearInterpolator::TriLinearInterpolator().
|
protected |
Definition at line 140 of file Interpolator3dGridTo1d.h.
Referenced by clear(), function(), interpolation::TriLinearInterpolator::function(), setF(), and interpolation::TriLinearInterpolator::TriLinearInterpolator().