37#ifndef ijkAddressing_H
38#define ijkAddressing_H
71 inline ijkAddressing(
const label ni,
const label nj,
const label nk);
79 inline bool empty()
const;
88 inline label
size()
const;
97 inline void reset(
const label ni,
const label nj,
const label nk);
103 inline label
index(
const label i,
const label j,
const label
k)
const;
121 const bool allowExtra =
false
129 const bool allowExtra =
false
139 inline void checkSizes(
const label nTotal)
const;
Extracts the components of elements of a field and outputs the result into new fields,...
A simple i-j-k (row-major order) to linear addressing.
void checkIndex(const label i, const label j, const label k, const bool allowExtra=false) const
Check indices are within ni,nj,nk range.
labelVector & sizes()
Return the (i,j,k) dimensions for modification.
ijkAddressing()
Construct zero-size addressing.
label index(const label i, const label j, const label k) const
Linear addressing index (offset) for an (i,j,k) position.
label size() const
Return the total i*j*k size.
bool empty() const
Addressing is considered empty if any component is zero.
void checkSizes() const
Check that all components of sizes() are non-negative.
void reset(const label ni, const label nj, const label nk)
Change the sizing parameters.
void clear()
Reset to (0,0,0) sizing.