|
using | value_type = typename Field< T, fSize_ >::value_type |
|
using | iterator = typename Field< T, fSize_ >::iterator |
|
using | const_iterator = typename Field< T, fSize_ >::const_iterator |
|
using | reverse_iterator = typename Field< T, fSize_ >::reverse_iterator |
|
using | const_reverse_iterator = typename Field< T, fSize_ >::const_reverse_iterator |
|
using | base_iterator = typename Field< T, fSize_ >::base_iterator |
|
using | const_base_iterator = typename Field< T, fSize_ >::const_base_iterator |
|
using | Ptr = typename Field< T, fSize_ >::Ptr |
|
using | ConstPtr = typename Field< T, fSize_ >::ConstPtr |
|
using | FlattenedField = typename std::conditional< VectorTrait< T >::F_SIZE !=0, GhostLayerField< typename VectorTrait< T >::OutputType, VectorTrait< T >::F_SIZE *fSize_ >, GhostLayerField< T, fSize_ > >::type |
|
using | value_type = T |
|
using | iterator = ForwardFieldIterator< T, fSize_ > |
|
using | const_iterator = ForwardFieldIterator< const T, fSize_ > |
|
using | reverse_iterator = ReverseFieldIterator< T, fSize_ > |
|
using | const_reverse_iterator = ReverseFieldIterator< const T, fSize_ > |
|
using | base_iterator = FieldIterator< T, fSize_ > |
|
using | const_base_iterator = FieldIterator< const T, fSize_ > |
|
using | Ptr = FieldPointer< Field< T, fSize_ >, Field< T, fSize_ >, T > |
|
using | ConstPtr = FieldPointer< Field< T, fSize_ >, const Field< T, fSize_ >, const T > |
|
using | FlattenedField = typename std::conditional< VectorTrait< T >::F_SIZE !=0, Field< typename VectorTrait< T >::OutputType, VectorTrait< T >::F_SIZE *fSize_ >, Field< T, fSize_ > >::type |
|
using | MonitorFunction = std::function< void(cell_idx_t, cell_idx_t, cell_idx_t, cell_idx_t, const T &)> |
|
| GhostLayerField (uint_t xSize, uint_t ySize, uint_t zSize, uint_t gl, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >()) |
| Creates an uninitialized field of given size. More...
|
|
| GhostLayerField (uint_t xSize, uint_t ySize, uint_t zSize, uint_t gl, const T &initValue, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >()) |
| Creates a field and initializes it with constant value. More...
|
|
| GhostLayerField (uint_t xSize, uint_t ySize, uint_t zSize, uint_t gl, const std::vector< T > &fValues, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >()) |
| Creates a field and initializes f coordinate with vector values. More...
|
|
| ~GhostLayerField () override=default |
|
void | init (uint_t xSizeWithoutGhostLayer, uint_t ySizeWithoutGhostLayer, uint_t zSizeWithoutGhostLayer, uint_t nrGhostLayers, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >()) |
| Initializes a field, must be called exactly once. More...
|
|
void | resize (uint_t xSize, uint_t ySize, uint_t zSize) override |
| Deletes all stored data, and resizes the field. More...
|
|
void | resize (uint_t xSize, uint_t ySize, uint_t zSize, uint_t gl) |
| Deletes all stored data, and resizes the field. More...
|
|
GhostLayerField< T, fSize_ > * | clone () const |
|
GhostLayerField< T, fSize_ > * | cloneUninitialized () const |
|
GhostLayerField< T, fSize_ > * | cloneShallowCopy () const |
|
FlattenedField * | flattenedShallowCopy () const |
|
uint_t | xSizeWithGhostLayer () const |
|
uint_t | ySizeWithGhostLayer () const |
|
uint_t | zSizeWithGhostLayer () const |
|
uint_t | sizeWithGhostLayer (uint_t i) const |
|
uint_t | nrOfGhostLayers () const |
|
CellInterval | xyzSizeWithGhostLayer () const |
| Returns the x/y/z Size of the field with ghost layers. More...
|
|
void | setWithGhostLayer (const T &value) |
| Sets all entries (including the ghost layer) of the field to given value. More...
|
|
void | setWithGhostLayer (const std::vector< T > &fValues) |
| Initializes the f coordinate to values from vector, in all cells including the ghost layers Sets the entry (x,y,z,f) to fValues[f]. More...
|
|
iterator | beginWithGhostLayer () |
| Iterator over all cells, including the ghost layers. More...
|
|
const_iterator | beginWithGhostLayer () const |
|
iterator | beginWithGhostLayer (cell_idx_t numGhostLayers) |
|
const_iterator | beginWithGhostLayer (cell_idx_t numGhostLayers) const |
|
iterator | beginWithGhostLayerXYZ () |
| Iterates only over all cells including ghost layers of XYZ coordinate, f is always 0. More...
|
|
const_iterator | beginWithGhostLayerXYZ () const |
|
iterator | beginWithGhostLayerXYZ (cell_idx_t numGhostLayers) |
|
const_iterator | beginWithGhostLayerXYZ (cell_idx_t numGhostLayers) const |
|
iterator | beginGhostLayerOnly (stencil::Direction dir, bool fullSlice=false) |
| Iterates only over ghost layers of a given direction. More...
|
|
const_iterator | beginGhostLayerOnly (stencil::Direction dir, bool fullSlice=false) const |
| Const version of beginGhostLayersOnly() More...
|
|
iterator | beginGhostLayerOnly (uint_t thickness, stencil::Direction dir, bool fullSlice=false) |
| Iterates only over specified number of ghost layers of a given direction. More...
|
|
const_iterator | beginGhostLayerOnly (uint_t thickness, stencil::Direction dir, bool fullSlice=false) const |
| Const version of beginGhostLayersOnly(uint_t thickness, stencil::Direction) More...
|
|
iterator | beginGhostLayerOnlyXYZ (stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false) |
| Iterates only over ghost layers of a given direction, only over xyz coordinates, f is fixed. More...
|
|
const_iterator | beginGhostLayerOnlyXYZ (stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false) const |
| Const version of beginGhostLayersOnlyXYZ() More...
|
|
iterator | beginGhostLayerOnlyXYZ (uint_t thickness, stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false) |
| Iterates only over ghost layers of a given direction, only over xyz coordinates, f is fixed. More...
|
|
const_iterator | beginGhostLayerOnlyXYZ (uint_t thickness, stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false) const |
| Const version of beginGhostLayersOnlyXYZ() More...
|
|
iterator | beginSliceBeforeGhostLayer (stencil::Direction dir, cell_idx_t thickness=1, bool fullSlice=false) |
| Iterates only over the last slice before ghost layer. More...
|
|
const_iterator | beginSliceBeforeGhostLayer (stencil::Direction dir, cell_idx_t thickness=1, bool fullSlice=false) const |
| Const version of beginSliceBeforeGhostLayer() More...
|
|
iterator | beginSliceBeforeGhostLayerXYZ (stencil::Direction dir, cell_idx_t thickness=1, cell_idx_t f=0, bool fullSlice=false) |
| Iterates only over the last slice before ghost layer, only in XYZ direction, f is fixed. More...
|
|
const_iterator | beginSliceBeforeGhostLayerXYZ (stencil::Direction dir, cell_idx_t thickness=1, cell_idx_t f=0, bool fullSlice=false) const |
| Const version of beginSliceBeforeGhostLayerXYZ() More...
|
|
void | getGhostRegion (stencil::Direction dir, CellInterval &ghostAreaOut, cell_idx_t thickness, bool fullSlice=false) const |
|
void | getSliceBeforeGhostLayer (stencil::Direction d, CellInterval &ci, cell_idx_t thickness=1, bool fullSlice=false) const |
|
bool | isInInnerPart (const Cell &cell) const |
| Checks if a given cell is in the inner part of the field ( not in ghost region or outside ) More...
|
|
reverse_iterator | rbeginWithGhostLayer () |
| Reverse Iterator over all cells, including the ghost layers. More...
|
|
const_reverse_iterator | rbeginWithGhostLayer () const |
|
reverse_iterator | rbeginWithGhostLayerXYZ () |
| Iterates only over all cells including ghost layers of XYZ coordinate, f is always 0. More...
|
|
const_reverse_iterator | rbeginWithGhostLayerXYZ () const |
|
GhostLayerField< T, fSize_ > * | getSlicedField (const CellInterval &interval) const |
|
void | slice (const CellInterval &interval) override |
| Changes the coordinate system of the field. More...
|
|
void | shiftCoordinates (cell_idx_t cx, cell_idx_t cy, cell_idx_t cz) override |
|
uint8_t | advanceTimestep () |
|
uint8_t | getTimestep () const |
|
uint8_t | getTimestepPlusOne () const |
|
bool | isEvenTimeStep () const |
|
| Field (uint_t xSize, uint_t ySize, uint_t zSize, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >()) |
| Creates an uninitialized field of given size. More...
|
|
| Field (uint_t xSize, uint_t ySize, uint_t zSize, const T &initValue, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >()) |
| Creates a field and initializes it with constant. More...
|
|
| Field (uint_t xSize, uint_t ySize, uint_t zSize, const std::vector< T > &fValues, const Layout &layout=fzyx, const shared_ptr< FieldAllocator< T > > &alloc=shared_ptr< FieldAllocator< T > >()) |
| Creates a field and initializes f coordinate with vector values. More...
|
|
virtual | ~Field () |
| Destructor, using Allocator template parameter. More...
|
|
void | init (uint_t xSize, uint_t ySize, uint_t zSize, const Layout &layout=fzyx, shared_ptr< FieldAllocator< T > > alloc=shared_ptr< FieldAllocator< T > >(), uint_t innerGhostLayerSizeForAlignedAlloc=0) |
| Initializes the field with a given size, in a given layout. More...
|
|
Field< T, fSize_ > * | clone () const |
| Returns a deep copy of the current field. More...
|
|
Field< T, fSize_ > * | cloneUninitialized () const |
| Creates a new field that has equal size and layout as this field. More...
|
|
Field< T, fSize_ > * | cloneShallowCopy () const |
| Returns a shallow copy of the current field. More...
|
|
FlattenedField * | flattenedShallowCopy () const |
| Returns a flattened shallow copy of the current field. More...
|
|
T & | get (cell_idx_t x, cell_idx_t y, cell_idx_t z) |
| get function with only (x,y,z) coordinates, assumes fSize=1 More...
|
|
const T & | get (cell_idx_t x, cell_idx_t y, cell_idx_t z) const |
| get function with only (x,y,z) coordinates, assumes fSize=1 More...
|
|
T & | get (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) |
| Non-Const variant of get() More...
|
|
const T & | get (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const |
| Accesses the value at given coordinate. More...
|
|
T & | get (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f) |
| get() variant which takes a uint_t as last coordinate, as for example Stencil::toIdx() returns More...
|
|
const T & | get (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f) const |
| get() variant which takes a uint_t as last coordinate, as for example Stencil::toIdx() returns More...
|
|
T & | get (const Cell &cell) |
| get overload using a cell as input, only possible if fSize=1 More...
|
|
const T & | get (const Cell &cell) const |
| get overload using a cell as input, only possible if fSize=1 More...
|
|
T & | get (const Cell &c, cell_idx_t f) |
|
const T & | get (const Cell &c, cell_idx_t f) const |
|
T & | get (const Cell &c, uint_t f) |
|
const T & | get (const Cell &c, uint_t f) const |
|
T & | get (const base_iterator &iter) |
| get overload, where position is specified using an iterator of another field with equal size More...
|
|
const T & | get (const base_iterator &iter) const |
| get overload, where position is specified using an iterator of another field with equal size More...
|
|
T & | operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z) |
|
const T & | operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z) const |
|
T & | operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) |
|
const T & | operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const |
|
T & | operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f) |
|
const T & | operator() (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f) const |
|
T & | operator() (const Cell &cell) |
|
const T & | operator() (const Cell &cell) const |
|
T & | operator() (const Cell &cell, cell_idx_t f) |
|
const T & | operator() (const Cell &cell, cell_idx_t f) const |
|
T & | operator() (const Cell &cell, uint_t f) |
|
const T & | operator() (const Cell &cell, uint_t f) const |
|
T & | operator() (const base_iterator &iter) |
|
const T & | operator() (const base_iterator &iter) const |
|
T & | getNeighbor (cell_idx_t x, cell_idx_t y, cell_idx_t z, stencil::Direction d) |
| returns neighboring value of cell in the given direction More...
|
|
const T & | getNeighbor (cell_idx_t x, cell_idx_t y, cell_idx_t z, stencil::Direction d) const |
| returns neighboring value of cell in the given direction More...
|
|
T & | getNeighbor (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f, stencil::Direction d) |
| returns neighboring value of cell in the given direction More...
|
|
const T & | getNeighbor (cell_idx_t x, cell_idx_t y, cell_idx_t z, uint_t f, stencil::Direction d) const |
| returns neighboring value of cell in the given direction More...
|
|
T & | getNeighbor (const Cell &cell, stencil::Direction d) |
| get overload using a cell as input, only possible if fSize=1, with neighbor access More...
|
|
const T & | getNeighbor (const Cell &cell, stencil::Direction d) const |
| get overload using a cell as input, only possible if fSize=1, with neighbor access More...
|
|
T & | getF (T *const xyz0, const cell_idx_t f) |
|
const T & | getF (const T *const xyz0, const cell_idx_t f) const |
|
T & | getF (T *const xyz0, const uint_t f) |
|
const T & | getF (const T *const xyz0, const uint_t f) const |
|
void | set (const T &value) |
| Sets all entries of the field to given value. More...
|
|
void | set (const std::vector< T > &fValues) |
| Initializes the f coordinate to values from vector Sets the entry (x,y,z,f) to fValues[f]. More...
|
|
void | set (const Field< T, fSize_ > &other) |
| Copies all entries of the given field to this field. More...
|
|
void | set (const Field< T, fSize_ > *other) |
|
void | swapDataPointers (Field< T, fSize_ > &other) |
| Swap two fields efficiently by exchanging only values_ pointer The two fields have to have identical sizes and same layout. More...
|
|
void | swapDataPointers (Field< T, fSize_ > *other) |
|
bool | operator== (const Field< T, fSize_ > &other) const |
| Equality operator compares element-wise. More...
|
|
bool | operator!= (const Field< T, fSize_ > &other) const |
| Inequality operator compares element-wise. More...
|
|
bool | hasSameAllocSize (const Field< T, fSize_ > &other) const |
| True if allocation sizes of all dimensions match. More...
|
|
bool | hasSameSize (const Field< T, fSize_ > &other) const |
| True if sizes of all dimensions match. More...
|
|
iterator | begin () |
| Returns iterator, which can iterate over complete field in a suitable order depending on layout. More...
|
|
const_iterator | begin () const |
|
iterator | beginXYZ () |
| Iterates only over XYZ coordinate, f is always 0. More...
|
|
const_iterator | beginXYZ () const |
|
iterator | beginSlice (cell_idx_t xBeg, cell_idx_t yBeg, cell_idx_t zBeg, cell_idx_t fBeg, cell_idx_t xEnd, cell_idx_t yEnd, cell_idx_t zEnd, cell_idx_t fEnd) |
| Returns iterator which iterates over a sub-block of the field. More...
|
|
const_iterator | beginSlice (cell_idx_t xBeg, cell_idx_t yBeg, cell_idx_t zBeg, cell_idx_t fBeg, cell_idx_t xEnd, cell_idx_t yEnd, cell_idx_t zEnd, cell_idx_t fEnd) const |
| Const variant of beginSlice() More...
|
|
iterator | beginSliceXYZ (const CellInterval &interval, cell_idx_t f=0) |
| Returns iterator which iterates over a slice, but only in x,y,z coordinates. More...
|
|
const_iterator | beginSliceXYZ (const CellInterval &interval, cell_idx_t f=0) const |
| Const variant of beginSliceXYZ() More...
|
|
const iterator & | end () |
|
const const_iterator & | end () const |
|
reverse_iterator | rbegin () |
| Returns reverse iterator, which can iterate over complete field in a suitable order depending on layout. More...
|
|
const_reverse_iterator | rbegin () const |
|
reverse_iterator | rbeginXYZ () |
| Iterates only over XYZ coordinate, f is always 0. More...
|
|
const_reverse_iterator | rbeginXYZ () const |
|
const reverse_iterator & | rend () |
|
const const_reverse_iterator & | rend () const |
|
uint_t | xSize () const |
|
uint_t | ySize () const |
|
uint_t | zSize () const |
|
uint_t | fSize () const |
|
uint_t | size (uint_t coord) const |
|
uint_t | xAllocSize () const |
|
uint_t | yAllocSize () const |
|
uint_t | zAllocSize () const |
|
uint_t | fAllocSize () const |
|
uint_t | allocSize () const |
|
CellInterval | xyzSize () const |
|
CellInterval | xyzAllocSize () const |
|
Layout | layout () const |
|
int64_t | xStride () const |
|
int64_t | yStride () const |
|
int64_t | zStride () const |
|
int64_t | fStride () const |
|
cell_idx_t | xOff () const |
|
cell_idx_t | yOff () const |
|
cell_idx_t | zOff () const |
|
bool | coordinatesValid (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const |
|
Field< T, fSize_ > * | getSlicedField (const CellInterval &interval) const |
| Create a different "view" of the field, where the created field has the size of the given sliceInterval. More...
|
|
T * | data () |
|
const T * | data () const |
|
T * | dataAt (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) |
|
const T * | dataAt (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const |
|
T * | dataInner () |
|
const T * | dataInner () const |
|
shared_ptr< FieldAllocator< T > > | getAllocator () const |
| Returns internal data allocator. More...
|
|
void | addMonitoringFunction (const MonitorFunction &func) |
| Registers a monitoring function. More...
|
|
static const uint_t | F_SIZE = fSize_ |
|
static const const_iterator | staticConstEnd = ForwardFieldIterator<const T,fSize_>() |
| Const end iterator, see end() More...
|
|
static const iterator | staticEnd = ForwardFieldIterator<T,fSize_>() |
| End iterator, can be used with begin() and beginBlock() More...
|
|
static const const_reverse_iterator | staticConstREnd = ReverseFieldIterator<const T,fSize_>() |
| Const end iterator, see end() More...
|
|
static const reverse_iterator | staticREnd = ReverseFieldIterator<T,fSize_>() |
| End iterator, can be used with begin() and beginBlock() More...
|
|
| GhostLayerField () |
| Creates a field of zero size. More...
|
|
Field< T, fSize_ >::FlattenedField * | flattenedShallowCopyInternal () const override |
| See Field::flattenedShallowCopyInternal() Has to be re-implemented because a new GhostLayerField is created. More...
|
|
| GhostLayerField (const GhostLayerField< T, fSize_ > &other) |
| Private copy constructor, which does a shallow copy. More...
|
|
template<typename T2 , uint_t fSize2> |
| GhostLayerField (const GhostLayerField< T2, fSize2 > &other) |
| Private copy constructor, which does a flattened shallow copy. More...
|
|
| Field (const Field &other) |
| Private copy constructor that creates a shallow copy i.e. More...
|
|
template<typename T2 , uint_t fSize2> |
| Field (const Field< T2, fSize2 > &other) |
| Private copy constructor that creates a flattened shallow copy i.e. More...
|
|
virtual uint_t | referenceCount () const |
| Returns the number of objects that internally use the same data. More...
|
|
| Field () |
| Creates an uninitialized field of size zero (no allocated memory) More...
|
|
void | setOffsets (uint_t xOffset, uint_t xSize, uint_t yOffset, uint_t ySize, uint_t zOffset, uint_t zSizes) |
| Moves the coordinate system of the field. More...
|
|
shared_ptr< FieldAllocator< T > > | allocator () const |
|
bool | addressInsideAllocedSpace (const T *const value) const |
|
void | assertValidCoordinates (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) const |
|
uint_t | gl_ |
| Number of ghost layers. More...
|
|
uint8_t | timestepCounter_ |
|