Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | List of all members
util::details::GridContainerIndicesBase< DIMS > Class Template Reference

Index manager for a container of data arranged on a DIMS-dimension grid. More...

#include <GridContainerIndices.h>

Inheritance diagram for util::details::GridContainerIndicesBase< DIMS >:
util::GridContainerIndicesBase1D< DIMS > util::GridContainerIndicesBase2D< DIMS > util::GridContainerIndicesBase3D< DIMS >

Public Types

using CellIndex_t = typename IndexManager_t::LinIndex_t
 type of index for direct access to the cell More...
 
using CellIndexOffset_t = std::ptrdiff_t
 type of difference between indices More...
 
using CellDimIndex_t = CellIndexOffset_t
 type of difference between indices along a dimension More...
 
using CellID_t = std::array< CellDimIndex_t, dims()>
 type of cell coordinate (x, y, z) More...
 

Public Member Functions

 GridContainerIndicesBase (std::array< size_t, dims()> const &new_dims)
 Constructor: specifies the size of the container and allocates it. More...
 
Grid structure
bool has (CellIndexOffset_t index) const
 Returns whether the specified index is valid. More...
 
size_t size () const
 Returns the number of cells in the grid. More...
 
Indexing
CellIndex_t operator[] (CellID_t id) const
 Returns the index of the element from its cell coordinates (no check!) More...
 
CellIndexOffset_t offset (CellID_t const &origin, CellID_t const &cellID) const
 Returns the difference in index of cellID respect to origin. More...
 

Static Public Member Functions

static constexpr unsigned int dims ()
 Returns the number of dimensions in this object. More...
 

Protected Member Functions

CellIndex_t index (CellID_t id) const
 Returns the index of the element from its cell coordinates (no check!) More...
 

Protected Attributes

IndexManager_t indices
 the actual worker More...
 

Private Types

using IndexManager_t = util::TensorIndices< DIMS >
 

Detailed Description

template<unsigned int DIMS>
class util::details::GridContainerIndicesBase< DIMS >

Index manager for a container of data arranged on a DIMS-dimension grid.

Definition at line 36 of file GridContainerIndices.h.

Member Typedef Documentation

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::CellDimIndex_t = CellIndexOffset_t

type of difference between indices along a dimension

Definition at line 50 of file GridContainerIndices.h.

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::CellID_t = std::array<CellDimIndex_t, dims()>

type of cell coordinate (x, y, z)

Definition at line 53 of file GridContainerIndices.h.

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::CellIndex_t = typename IndexManager_t::LinIndex_t

type of index for direct access to the cell

Definition at line 44 of file GridContainerIndices.h.

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::CellIndexOffset_t = std::ptrdiff_t

type of difference between indices

Definition at line 47 of file GridContainerIndices.h.

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::IndexManager_t = util::TensorIndices<DIMS>
private

Definition at line 37 of file GridContainerIndices.h.

Constructor & Destructor Documentation

template<unsigned int DIMS>
util::details::GridContainerIndicesBase< DIMS >::GridContainerIndicesBase ( std::array< size_t, dims()> const &  new_dims)
inline

Constructor: specifies the size of the container and allocates it.

Definition at line 56 of file GridContainerIndices.h.

57  : indices(new_dims.begin())
58  {}
IndexManager_t indices
the actual worker

Member Function Documentation

template<unsigned int DIMS>
static constexpr unsigned int util::details::GridContainerIndicesBase< DIMS >::dims ( )
inlinestatic

Returns the number of dimensions in this object.

Definition at line 41 of file GridContainerIndices.h.

41 { return DIMS; }
template<unsigned int DIMS>
bool util::details::GridContainerIndicesBase< DIMS >::has ( CellIndexOffset_t  index) const
inline

Returns whether the specified index is valid.

Definition at line 64 of file GridContainerIndices.h.

65  { return indices.hasLinIndex(index); }
CellIndex_t index(CellID_t id) const
Returns the index of the element from its cell coordinates (no check!)
IndexManager_t indices
the actual worker
bool hasLinIndex(LinIndex_t linIndex) const
Returns whether the specified linear index is valid in this tensor.
template<unsigned int DIMS>
CellIndex_t util::details::GridContainerIndicesBase< DIMS >::index ( CellID_t  id) const
inlineprotected

Returns the index of the element from its cell coordinates (no check!)

Definition at line 89 of file GridContainerIndices.h.

90  { return indices(id.begin()); }
IndexManager_t indices
the actual worker
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
Definition: StdUtils.h:72
template<unsigned int DIMS>
CellIndexOffset_t util::details::GridContainerIndicesBase< DIMS >::offset ( CellID_t const &  origin,
CellID_t const &  cellID 
) const
inline

Returns the difference in index of cellID respect to origin.

Definition at line 80 of file GridContainerIndices.h.

81  { return index(cellID) - index(origin); }
CellIndex_t index(CellID_t id) const
Returns the index of the element from its cell coordinates (no check!)
constexpr Point origin()
Returns a origin position with a point of the specified type.
Definition: geo_vectors.h:227
template<unsigned int DIMS>
CellIndex_t util::details::GridContainerIndicesBase< DIMS >::operator[] ( CellID_t  id) const
inline

Returns the index of the element from its cell coordinates (no check!)

Definition at line 76 of file GridContainerIndices.h.

76 { return index(id); }
CellIndex_t index(CellID_t id) const
Returns the index of the element from its cell coordinates (no check!)
template<unsigned int DIMS>
size_t util::details::GridContainerIndicesBase< DIMS >::size ( void  ) const
inline

Returns the number of cells in the grid.

Definition at line 68 of file GridContainerIndices.h.

68 { return indices.size(); }
IndexManager_t indices
the actual worker
DimSize_t size() const
Returns the size of the minor tensor.

Member Data Documentation

template<unsigned int DIMS>
IndexManager_t util::details::GridContainerIndicesBase< DIMS >::indices
protected

the actual worker

Definition at line 86 of file GridContainerIndices.h.


The documentation for this class was generated from the following file: