Go to the documentation of this file.
14 #ifndef ESYS_LSMCARTESIANGRID_H
15 #define ESYS_LSMCARTESIANGRID_H
27 #include <boost/pool/object_pool.hpp>
28 #include <boost/shared_ptr.hpp>
34 template <
typename TmplValue>
205 template <
typename TmplGr
idPo
inter,
typename TmplCellRef,
typename TmplCell>
302 const Vec3L index =
Vec3L(
int(nearbyint(relPos.
X())),
int(nearbyint(relPos.
Y())),
int(nearbyint(relPos.
Z())));
434 while (cellIt.hasNext())
436 cellIt.next().clear();
455 m_dimensions =
Vec3L(
int(nearbyint(dims[0])),
int(nearbyint(dims[1])),
int(nearbyint(dims[2])));
474 const Vec3L index(i, j, k);
477 if ((&(
getCell(pos))) == (&(cell)))
484 std::stringstream sStream;
486 <<
"Couldn't set grid location for cell ("
487 << i <<
"," << j <<
"," << k <<
"), pos = " << pos;
488 throw std::runtime_error(sStream.str());
497 typedef boost::object_pool<value_type>
Pool;
Vec3L m_maxIndex
Definition: CartesianGrid.h:504
ValueConstIterator getValueIterator() const
Definition: CartesianGrid.h:416
std::vector< Cell > CellVector
Definition: CartesianGrid.h:496
Vec3L m_minIndex
Definition: CartesianGrid.h:200
int getScalarIndex(int xIdx, int yIdx, int zIdx) const
Definition: CartesianGrid.h:289
const Long & Z() const
Definition: Vec3L.h:119
PosValuePair(const Vec3 &pos, reference value)
Definition: CartesianGrid.h:49
Definition: CartesianGrid.h:207
BoundingBox m_bBox
Definition: CartesianGrid.h:500
const Vec3 & getMinPt() const
Definition: CartesianGrid.h:284
TmplCellRef reference
Definition: CartesianGrid.h:210
value_type & reference
Definition: CartesianGrid.h:39
reference next()
Definition: StlIterator.h:112
PoolPtr m_valuePoolPtr
Definition: CartesianGrid.h:506
Vec3L m_index
Definition: CartesianGrid.h:202
CellIterator getCellIterator(const Vec3 &pos)
Definition: CartesianGrid.h:381
CellConstIterator getCellIterator() const
Definition: CartesianGrid.h:401
CellIterator getCellIterator(const Vec3 &pos, double radius)
Definition: CartesianGrid.h:361
const Cell & getCell(int scalarIndex) const
Definition: CartesianGrid.h:341
TmplValue value_type
Definition: CartesianGrid.h:38
Iterator getIterator()
Definition: CartesianGrid.h:148
boost::shared_ptr< Pool > PoolPtr
Definition: CartesianGrid.h:498
Cell & getCell(int scalarIndex)
Definition: CartesianGrid.h:346
VecIndexIterator m_idxIt
Definition: CartesianGrid.h:227
bool hasNext() const
Definition: CartesianGrid.h:217
CartesianGrid::const_reference next()
Definition: CartesianGrid.h:255
pointer m_pValue
Definition: CartesianGrid.h:72
Cell()
Definition: CartesianGrid.h:79
Vec3L next()
Definition: CartesianGrid.h:192
const Vec3L & getMaxVecIndex() const
Definition: CartesianGrid.h:331
reference next()
Definition: CartesianGrid.h:222
BoundingBox getBox() const
Definition: CartesianGrid.h:118
Definition: CartesianGrid.h:36
int getScalarIndex(const Vec3L &index) const
Definition: CartesianGrid.h:316
void insertRef(const Vec3 &pos, reference data)
Definition: CartesianGrid.h:443
Cell & getCell(const Vec3 &pos)
Definition: CartesianGrid.h:356
void insertRef(reference value)
Definition: CartesianGrid.h:83
TCellIterator< CartesianGrid *, Cell &, Cell > CellIterator
Definition: CartesianGrid.h:231
reference next()
Definition: StlIterator.h:60
const Long & X() const
Definition: Vec3L.h:99
void clear()
Definition: CartesianGrid.h:431
ValueConstIterator(const ValueVector &v)
Definition: CartesianGrid.h:251
Vec3 m_pos
Definition: CartesianGrid.h:71
CellVector m_cellVector
Definition: CartesianGrid.h:505
const CartesianGrid & getGrid() const
Definition: CartesianGrid.h:108
CartesianGrid::reference next()
Definition: CartesianGrid.h:242
VEC3_INLINE double & X()
Definition: vec3.h:119
3D bounding box
Definition: BoundingBox.h:28
const value_type & const_reference
Definition: CartesianGrid.h:40
Definition: CheckPointable.cpp:17
Definition: CartesianGrid.h:44
bool hasNext() const
Definition: CartesianGrid.h:169
Vec3L m_minIndex
Definition: CartesianGrid.h:503
int size() const
Definition: CartesianGrid.h:130
CellConstIterator getCellIterator(const Vec3 &pos, double radius) const
Definition: CartesianGrid.h:371
const_reference getValue() const
Definition: CartesianGrid.h:60
VEC3_INLINE double & Z()
Definition: vec3.h:121
void setPos(const Vec3 &pos)
Definition: CartesianGrid.h:93
#define NULL
Definition: t_list.h:17
boost::object_pool< value_type > Pool
Definition: CartesianGrid.h:497
const Vec3 & getMinPt() const
Definition: BoundingBox.hpp:40
CellIterator getCellIterator()
Definition: CartesianGrid.h:391
Vec3L m_maxIndex
Definition: CartesianGrid.h:201
TmplCell value_type
Definition: CartesianGrid.h:209
const Vec3 & getPos() const
Definition: CartesianGrid.h:55
void clear()
Definition: CartesianGrid.h:138
value_type * pointer
Definition: CartesianGrid.h:41
Vec3 m_pos
Definition: CartesianGrid.h:154
TmplGridPointer m_pGrid
Definition: CartesianGrid.h:228
CartesianGrid & getGrid()
Definition: CartesianGrid.h:103
double getGridSpacing() const
Definition: CartesianGrid.h:426
VEC3_INLINE double & Y()
Definition: vec3.h:120
CartesianGrid(const BoundingBox &bBox, double gridSpacing)
Definition: CartesianGrid.h:261
Definition: CartesianGrid.h:249
const Vec3L & getDimensions() const
Definition: CartesianGrid.h:274
reference getValue()
Definition: CartesianGrid.h:65
Definition: StressTensor.h:30
ConstIterator getIterator() const
Definition: CartesianGrid.h:143
void insert(const Vec3 &pos, const_reference data)
Definition: CartesianGrid.h:336
std::vector< pointer > ValueVector
Definition: CartesianGrid.h:234
Vec3L getVecIndex(const Vec3 &pt) const
Definition: CartesianGrid.h:299
Definition: CartesianGrid.h:236
std::vector< PosValuePair > PosValueVector
Definition: CartesianGrid.h:75
const BoundingBox & getBBox() const
Definition: CartesianGrid.h:279
Definition: StlIterator.h:30
const Long & Y() const
Definition: Vec3L.h:109
Definition: StlIterator.h:76
void increment()
Definition: CartesianGrid.h:179
Vec3 getPos(const Vec3L &index) const
Definition: CartesianGrid.h:306
Definition: CartesianGrid.h:47
int getScalarIndex(const Vec3 &pt) const
Definition: CartesianGrid.h:321
PosValueVector m_pointerVector
Definition: CartesianGrid.h:155
size_t size() const
Definition: CartesianGrid.h:421
Vec3L m_dimensions
Definition: CartesianGrid.h:502
ValueIterator getValueIterator()
Definition: CartesianGrid.h:411
void insertRef(const Vec3 &pos, reference value)
Definition: CartesianGrid.h:88
CellConstIterator getCellIterator(const Vec3 &pos) const
Definition: CartesianGrid.h:386
Vec3L max(const Vec3L &vec) const
Definition: Vec3L.h:140
const Vec3 & getPos() const
Definition: CartesianGrid.h:98
Vec3 getSizes() const
Definition: BoundingBox.hpp:78
const Vec3L & current()
Definition: CartesianGrid.h:174
double m_gridSpacing
Definition: CartesianGrid.h:501
ForwardConstIterator< PosValueVector > ConstIterator
Definition: CartesianGrid.h:77
ValueVector m_valueVector
Definition: CartesianGrid.h:507
ValueIterator(ValueVector &v)
Definition: CartesianGrid.h:238
VecIndexIterator(const Vec3L &minIdx, const Vec3L &maxIdx)
Definition: CartesianGrid.h:162
const Vec3L & getMinVecIndex() const
Definition: CartesianGrid.h:326
TCellIterator< const CartesianGrid *, const Cell &, Cell > CellConstIterator
Definition: CartesianGrid.h:232
void initialise(const BoundingBox &bBox, double gridSpacing)
Definition: CartesianGrid.h:449
void setGrid(CartesianGrid &grid)
Definition: CartesianGrid.h:113
Definition: CartesianGrid.h:160
ForwardIterator< PosValueVector > Iterator
Definition: CartesianGrid.h:76
CartesianGrid * m_pGrid
Definition: CartesianGrid.h:156
TCellIterator(const Vec3L &minIdx, const Vec3L &maxIdx, TmplGridPointer pGrid)
Definition: CartesianGrid.h:211
const Cell & getCell(const Vec3 &pos) const
Definition: CartesianGrid.h:351