Go to the documentation of this file.
7 #ifndef INCLUDE_JET_COLLOCATED_VECTOR_GRID3_H_
8 #define INCLUDE_JET_COLLOCATED_VECTOR_GRID3_H_
66 const std::function<
void(
size_t,
size_t,
size_t)>& func)
const;
78 const std::function<
void(
size_t,
size_t,
size_t)>& func)
const;
107 void getData(std::vector<double>* data)
const override;
110 void setData(
const std::vector<double>& data)
override;
121 const Vector3D& initialValue)
final;
131 #endif // INCLUDE_JET_COLLOCATED_VECTOR_GRID3_H_
3-D read-only array accessor class.
Definition: array_accessor3.h:270
void parallelForEachDataPointIndex(const std::function< void(size_t, size_t, size_t)> &func) const
Invokes the given function func for each data point parallelly.
CollocatedVectorGrid3()
Constructs an empty grid.
VectorDataAccessor dataAccessor()
Returns the read-write data array accessor.
ConstVectorDataAccessor constDataAccessor() const
Returns the read-only data array accessor.
void setData(const std::vector< double > &data) override
Sets the data from a continuous linear array.
Vector3D sample(const Vector3D &x) const override
Returns sampled value at given position x.
DataPositionFunc dataPosition() const
Returns the function that maps data point to its position.
virtual Vector3D dataOrigin() const =0
Returns data position for the grid point at (0, 0, 0).
Abstract base class for 3-D collocated vector grid structure.
Definition: collocated_vector_grid3.h:18
void swapCollocatedVectorGrid(CollocatedVectorGrid3 *other)
Swaps the data storage and predefined samplers with given grid.
virtual ~CollocatedVectorGrid3()
Default destructor.
virtual Size3 dataSize() const =0
Returns the actual data point size.
Vector3D curl(const Vector3D &x) const override
Returns curl at given position x.
Definition: advection_solver2.h:18
2-D linear array sampler class.
Definition: array_samplers3.h:77
const Vector3D & origin() const
Returns the grid origin.
const Size3 & resolution() const
Returns the grid resolution.
double divergenceAtDataPoint(size_t i, size_t j, size_t k) const
Returns divergence at data point location.
Vector3D & operator()(size_t i, size_t j, size_t k)
Returns the grid data at given data point.
void setCollocatedVectorGrid(const CollocatedVectorGrid3 &other)
Sets the data storage and predefined samplers with given grid.
const Vector3D & gridSpacing() const
Returns the grid spacing.
3-D size class.
Definition: size3.h:19
Abstract base class for 3-D vector grid structure.
Definition: vector_grid3.h:19
double divergence(const Vector3D &x) const override
Returns divergence at given position x.
3-D array accessor class.
Definition: array_accessor3.h:31
std::function< Vector3D(size_t, size_t, size_t)> DataPositionFunc
Function type for mapping data index to actual position.
Definition: grid3.h:33
std::function< Vector3D(const Vector3D &)> sampler() const override
Returns the sampler function.
Vector3< double > Vector3D
Double-type 3D vector.
Definition: vector3.h:349
Vector3D curlAtDataPoint(size_t i, size_t j, size_t k) const
Returns curl at data point location.
3-D vector class.
Definition: vector3.h:25
std::shared_ptr< CollocatedVectorGrid3 > CollocatedVectorGrid3Ptr
Shared pointer for the CollocatedVectorGrid3 type.
Definition: collocated_vector_grid3.h:127
void forEachDataPointIndex(const std::function< void(size_t, size_t, size_t)> &func) const
Invokes the given function func for each data point.
3-D array class.
Definition: array3.h:43
void getData(std::vector< double > *data) const override
Fetches the data into a continuous linear array.
const Vector3D & operator()(size_t i, size_t j, size_t k) const
Returns the grid data at given data point.