|
| 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 = std::conditional_t<VectorTrait<T>::F_SIZE != 0, GhostLayerField<typename VectorTrait<T>::OutputType, VectorTrait<T>::F_SIZE * fSize_>, GhostLayerField<T, fSize_>> |
| |
| 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 = std::conditional_t<VectorTrait<T>::F_SIZE != 0, Field<typename VectorTrait<T>::OutputType, VectorTrait<T>::F_SIZE * fSize_>, Field<T, fSize_>> |
| |
| 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.
|
| |
| | 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.
|
| |
| | 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.
|
| |
| | ~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.
|
| |
| void | resize (uint_t xSize, uint_t ySize, uint_t zSize) override |
| | Deletes all stored data, and resizes the field.
|
| |
| void | resize (uint_t xSize, uint_t ySize, uint_t zSize, uint_t gl) |
| | Deletes all stored data, and resizes the field.
|
| |
| 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.
|
| |
| void | setWithGhostLayer (const T &value) |
| | Sets all entries (including the ghost layer) of the field to given value.
|
| |
| 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].
|
| |
| iterator | beginWithGhostLayer () |
| | Iterator over all cells, including the ghost layers.
|
| |
| const_iterator | beginWithGhostLayer () const |
| | Returns const_iterator, see beginWithGhostLayer()
|
| |
| 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.
|
| |
| const_iterator | beginWithGhostLayerXYZ () const |
| | Const version of beginWithGhostLayerXYZ()
|
| |
| 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.
|
| |
| const_iterator | beginGhostLayerOnly (stencil::Direction dir, bool fullSlice=false) const |
| | Const version of beginGhostLayersOnly()
|
| |
| iterator | beginGhostLayerOnly (uint_t thickness, stencil::Direction dir, bool fullSlice=false) |
| | Iterates only over specified number of ghost layers of a given direction.
|
| |
| const_iterator | beginGhostLayerOnly (uint_t thickness, stencil::Direction dir, bool fullSlice=false) const |
| | Const version of beginGhostLayersOnly(uint_t thickness, stencil::Direction)
|
| |
| 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.
|
| |
| const_iterator | beginGhostLayerOnlyXYZ (stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false) const |
| | Const version of beginGhostLayersOnlyXYZ()
|
| |
| 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.
|
| |
| const_iterator | beginGhostLayerOnlyXYZ (uint_t thickness, stencil::Direction dir, cell_idx_t f=0, bool fullSlice=false) const |
| | Const version of beginGhostLayersOnlyXYZ()
|
| |
| iterator | beginSliceBeforeGhostLayer (stencil::Direction dir, cell_idx_t thickness=1, bool fullSlice=false) |
| | Iterates only over the last slice before ghost layer.
|
| |
| const_iterator | beginSliceBeforeGhostLayer (stencil::Direction dir, cell_idx_t thickness=1, bool fullSlice=false) const |
| | Const version of beginSliceBeforeGhostLayer()
|
| |
| 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.
|
| |
| const_iterator | beginSliceBeforeGhostLayerXYZ (stencil::Direction dir, cell_idx_t thickness=1, cell_idx_t f=0, bool fullSlice=false) const |
| | Const version of beginSliceBeforeGhostLayerXYZ()
|
| |
| 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 )
|
| |
| reverse_iterator | rbeginWithGhostLayer () |
| | Reverse Iterator over all cells, including the ghost layers.
|
| |
| const_reverse_iterator | rbeginWithGhostLayer () const |
| | Returns const_iterator, see beginWithGhostLayer()
|
| |
| reverse_iterator | rbeginWithGhostLayerXYZ () |
| | Iterates only over all cells including ghost layers of XYZ coordinate, f is always 0.
|
| |
| const_reverse_iterator | rbeginWithGhostLayerXYZ () const |
| | Const version of beginWithGhostLayerXYZ()
|
| |
| GhostLayerField< T, fSize_ > * | getSlicedField (const CellInterval &interval) const |
| |
| void | slice (const CellInterval &interval) override |
| | Changes the coordinate system of the field.
|
| |
| 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.
|
| |
| | 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.
|
| |
| | 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.
|
| |
| virtual | ~Field () |
| | Destructor, using Allocator template parameter.
|
| |
| 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.
|
| |
| Field< T, fSize_ > * | clone () const |
| | Returns a deep copy of the current field.
|
| |
| Field< T, fSize_ > * | cloneUninitialized () const |
| | Creates a new field that has equal size and layout as this field.
|
| |
| Field< T, fSize_ > * | cloneShallowCopy () const |
| | Returns a shallow copy of the current field.
|
| |
| FlattenedField * | flattenedShallowCopy () const |
| | Returns a flattened shallow copy of the current field.
|
| |
| Field & | operator= (const Field &)=delete |
| |
| 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
|
| |
| 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
|
| |
| T & | get (cell_idx_t x, cell_idx_t y, cell_idx_t z, cell_idx_t f) |
| | Non-Const variant of get()
|
| |
| 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.
|
| |
| 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
|
| |
| 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
|
| |
| T & | get (const Cell &cell) |
| | get overload using a cell as input, only possible if fSize=1
|
| |
| const T & | get (const Cell &cell) const |
| | get overload using a cell as input, only possible if fSize=1
|
| |
| 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
|
| |
| const T & | get (const base_iterator &iter) const |
| | get overload, where position is specified using an iterator of another field with equal size
|
| |
| 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
|
| |
| 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
|
| |
| 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
|
| |
| 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
|
| |
| T & | getNeighbor (const Cell &cell, stencil::Direction d) |
| | get overload using a cell as input, only possible if fSize=1, with neighbor access
|
| |
| 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
|
| |
| 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.
|
| |
| 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].
|
| |
| void | set (const Field< T, fSize_ > &other) |
| | Copies all entries of the given field to this field.
|
| |
| 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.
|
| |
| void | swapDataPointers (Field< T, fSize_ > *other) |
| |
| bool | operator== (const Field< T, fSize_ > &other) const |
| | Equality operator compares element-wise.
|
| |
| bool | operator!= (const Field< T, fSize_ > &other) const |
| | Inequality operator compares element-wise.
|
| |
| bool | hasSameAllocSize (const Field< T, fSize_ > &other) const |
| | True if allocation sizes of all dimensions match.
|
| |
| bool | hasSameSize (const Field< T, fSize_ > &other) const |
| | True if sizes of all dimensions match.
|
| |
| iterator | begin () |
| | Returns iterator, which can iterate over complete field in a suitable order depending on layout.
|
| |
| const_iterator | begin () const |
| | Returns const_iterator, see begin()
|
| |
| iterator | beginXYZ () |
| | Iterates only over XYZ coordinate, f is always 0.
|
| |
| const_iterator | beginXYZ () const |
| | Const version of beginXYZ()
|
| |
| 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.
|
| |
| 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()
|
| |
| iterator | beginSliceXYZ (const CellInterval &interval, cell_idx_t f=0) |
| | Returns iterator which iterates over a slice, but only in x,y,z coordinates.
|
| |
| const_iterator | beginSliceXYZ (const CellInterval &interval, cell_idx_t f=0) const |
| | Const variant of beginSliceXYZ()
|
| |
| 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.
|
| |
| const_reverse_iterator | rbegin () const |
| | Returns const_reverse_iterator, see begin()
|
| |
| reverse_iterator | rbeginXYZ () |
| | Iterates only over XYZ coordinate, f is always 0.
|
| |
| const_reverse_iterator | rbeginXYZ () const |
| | Const version of beginXYZ()
|
| |
| 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=0) const |
| |
| bool | coordinatesValid (const Cell &c, cell_idx_t f=0) 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.
|
| |
| 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.
|
| |
| void | addMonitoringFunction (const MonitorFunction &func) |
| | Registers a monitoring function.
|
| |
| static const uint_t | F_SIZE = fSize_ |
| |
| static const const_iterator | staticConstEnd = ForwardFieldIterator<const T,fSize_>() |
| | Const end iterator, see end()
|
| |
| static const iterator | staticEnd = ForwardFieldIterator<T,fSize_>() |
| | End iterator, can be used with begin() and beginBlock()
|
| |
| static const const_reverse_iterator | staticConstREnd = ReverseFieldIterator<const T,fSize_>() |
| | Const end iterator, see end()
|
| |
| static const reverse_iterator | staticREnd = ReverseFieldIterator<T,fSize_>() |
| | End iterator, can be used with begin() and beginBlock()
|
| |
| | GhostLayerField () |
| | Creates a field of zero size.
|
| |
| Field< T, fSize_ >::FlattenedField * | flattenedShallowCopyInternal () const override |
| | See Field::flattenedShallowCopyInternal() Has to be re-implemented because a new GhostLayerField is created.
|
| |
| | GhostLayerField (const GhostLayerField< T, fSize_ > &other) |
| | Private copy constructor, which does a shallow copy.
|
| |
| template<typename T2 , uint_t fSize2> |
| | GhostLayerField (const GhostLayerField< T2, fSize2 > &other) |
| | Private copy constructor, which does a flattened shallow copy.
|
| |
| | Field (const Field &other) |
| | Private copy constructor that creates a shallow copy i.e.
|
| |
| template<typename T2 , uint_t fSize2> |
| | Field (const Field< T2, fSize2 > &other) |
| | Private copy constructor that creates a flattened shallow copy i.e.
|
| |
| virtual uint_t | referenceCount () const |
| | Returns the number of objects that internally use the same data.
|
| |
| | Field () |
| | Creates an uninitialized field of size zero (no allocated memory)
|
| |
| 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.
|
| |
| 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.
|
| |
| uint8_t | timestepCounter_ |
| |