24#ifndef _GEMA_PLUGIN_REGULAR_GRID_MESH_H_
25#define _GEMA_PLUGIN_REGULAR_GRID_MESH_H_
42 virtual const char*
pluginName()
const {
return "RegularGridMesh"; }
45 virtual const char*
pluginType()
const {
return "grid"; }
65 virtual int numNodes()
const {
return _nnodes; }
68 virtual double nodeSpacing(
int dim)
const { assert(dim >= 0 && dim < _ndim);
return _spacing[dim]; }
71 virtual int nodeCount(
int dim)
const { assert(dim >= 0 && dim < _ndim);
return _count[dim]; }
74 virtual bool nodeWrap(
int dim)
const { assert(dim >= 0 && dim < _ndim);
return _wrap[dim]; }
76 virtual int nodeFromIndex(
int x,
int y = -1,
int z = -1)
const;
78 virtual void indexFromNode(
int node,
int* x,
int* y = NULL,
int* z = NULL)
const;
80 virtual int neighbor(
int node,
int xoffset,
int yoffset = 0,
int zoffset = 0)
const;
88 virtual size_t nodeMemory()
const {
return 0.0; }
virtual int numNodes() const=0
virtual void printParameters(const GmLogCategory &logger)
virtual GmValueInfo * nodeCoordInfo() const=0
virtual size_t nodeMemory() const=0
virtual void pushProxy(lua_State *L, const GmLogCategory &logger)=0
virtual bool useDualVectors() const=0
virtual bool hasCapability(QString capabilityName) const=0
virtual size_t nodeSetsMemory() const=0
virtual GmValueAccessor * nodeCoordAccessor(Unit desiredUnit, const GmLogCategory &logger) const=0
virtual const QMap< QString, GmNodeSet * > & nodeSets() const=0
virtual const char * pluginType() const=0
virtual bool loadPrivateData(LuaTable &table)=0
virtual const char * pluginName() const=0
virtual void indexFromNode(int node, int *x, int *y=NULL, int *z=NULL) const=0
virtual int nodeFromIndex(int x, int y=-1, int z=-1) const=0
virtual double nodeSpacing(int dim) const=0
virtual bool nodeWrap(int dim) const=0
virtual int neighbor(int node, int xoffset, int yoffset=0, int zoffset=0) const=0
virtual int nodeCount(int dim) const=0
Auxiliary class implementing an accessor for mesh coordinate values.
Definition gmpRegularGridMeshCoordAccessor.h:36
Simple class implementing the GmRegularGridMesh interface.
Definition gmpRegularGridMesh.h:36
GmValueInfo * _coordInfo
Info object for coordinates.
Definition gmpRegularGridMesh.h:100
QVector< int > _count
Node count in each dimension.
Definition gmpRegularGridMesh.h:103
GmVector _origin
Vector with coordinates of the first mesh node.
Definition gmpRegularGridMesh.h:101
GmPCR * _pcr
The associated default PCR object.
Definition gmpRegularGridMesh.h:105
QVector< bool > _wrap
Does the mesh wraps (last node connected to first) in each dimension?
Definition gmpRegularGridMesh.h:104
QMap< QString, GmNodeSet * > _nodeSets
A map with the definition of each node set associated with the mesh. Map entries are instances of the...
Definition gmpRegularGridMesh.h:110
int _ndim
The mesh dimension.
Definition gmpRegularGridMesh.h:98
GmVector _spacing
Spacing between grid nodes in each dimension.
Definition gmpRegularGridMesh.h:102
virtual GmPCR * pcrObject() const
Returns a default empty PCR object.
Definition gmpRegularGridMesh.h:93
int _nnodes
The total number of nodes in the grid (equal to _count[0] * ... * _count[_ndim-1])
Definition gmpRegularGridMesh.h:99
Declaration of useful configuration definitions for the plugin library.