Go to the documentation of this file.
7 #ifndef INCLUDE_JET_SCALAR_GRID2_H_
8 #define INCLUDE_JET_SCALAR_GRID2_H_
53 virtual std::shared_ptr<ScalarGrid2>
clone()
const = 0;
62 double gridSpacingX = 1.0,
63 double gridSpacingY = 1.0,
66 double initialValue = 0.0);
73 double initialValue = 0.0);
122 const std::function<
void(
size_t,
size_t)>& func)
const;
134 const std::function<
void(
size_t,
size_t)>& func)
const;
161 void serialize(std::vector<uint8_t>* buffer)
const override;
174 void getData(std::vector<double>* data)
const override;
177 void setData(
const std::vector<double>& data)
override;
182 std::function<double(
const Vector2D&)> _sampler;
201 const Size2& resolution,
204 double initialVal)
const = 0;
212 #endif // INCLUDE_JET_SCALAR_GRID2_H_
void deserialize(const std::vector< uint8_t > &buffer) override
Deserializes the input buffer to the grid instance.
ExecutionPolicy
Execution policy tag.
Definition: parallel.h:13
void clear()
Clears the contents of the grid.
double laplacian(const Vector2D &x) const override
Returns the Laplacian at given position x.
ScalarDataAccessor dataAccessor()
Returns the read-write data array accessor.
const Vector2D & origin() const
Returns the grid origin.
Abstract base class for 2-D scalar grid builder.
Definition: scalar_grid2.h:191
Vector2< double > Vector2D
Double-type 2D vector.
Definition: vector2.h:340
ConstArrayAccessor2< double > ConstScalarDataAccessor
Read-only array accessor type.
Definition: scalar_grid2.h:27
double sample(const Vector2D &x) const override
Returns the sampled value at given position x.
ArrayAccessor2< double > ScalarDataAccessor
Read-write array accessor type.
Definition: scalar_grid2.h:24
void setScalarGrid(const ScalarGrid2 &other)
Sets the data storage and predefined samplers with given grid.
void setData(const std::vector< double > &data) override
Sets the data from a continuous linear array.
Abstract base class for 2-D scalar field.
Definition: scalar_field2.h:18
Abstract base class for 2-D cartesian grid structure.
Definition: grid2.h:30
std::function< Vector2D(size_t, size_t)> DataPositionFunc
Function type for mapping data index to actual position.
Definition: grid2.h:33
2-D array class.
Definition: array2.h:42
void getData(std::vector< double > *data) const override
Fetches the data into a continuous linear array.
void parallelForEachDataPointIndex(const std::function< void(size_t, size_t)> &func) const
Invokes the given function func for each data point parallelly.
2-D linear array sampler class.
Definition: array_samplers2.h:77
Definition: advection_solver2.h:18
2-D read-only array accessor class.
Definition: array_accessor2.h:261
void resize(double gridSpacingX, double gridSpacingY, double originX, double originY)
Resizes the grid using given parameters.
ScalarGrid2()
Constructs an empty grid.
Abstract base class for 2-D scalar grid structure.
Definition: scalar_grid2.h:21
virtual ~ScalarGrid2()
Default destructor.
2-D vector class.
Definition: vector2.h:24
std::shared_ptr< ScalarGridBuilder2 > ScalarGridBuilder2Ptr
Shared pointer for the ScalarGridBuilder2 type.
Definition: scalar_grid2.h:208
double & operator()(size_t i, size_t j)
Returns the grid data at given data point.
void fill(const std::function< double(const Vector2D &)> &func, ExecutionPolicy policy=ExecutionPolicy::kParallel)
Fills the grid with given position-to-value mapping function.
void resize(const Vector2D &gridSpacing, const Vector2D &origin)
Resizes the grid using given parameters.
ScalarGridBuilder2()
Creates a builder.
ConstScalarDataAccessor constDataAccessor() const
Returns the read-only data array accessor.
virtual ScalarGrid2Ptr build(const Size2 &resolution, const Vector2D &gridSpacing, const Vector2D &gridOrigin, double initialVal) const =0
Returns 2-D scalar grid with given parameters.
void serialize(std::vector< uint8_t > *buffer) const override
Serializes the grid instance to the output buffer.
void forEachDataPointIndex(const std::function< void(size_t, size_t)> &func) const
Invokes the given function func for each data point.
void fill(double value, ExecutionPolicy policy=ExecutionPolicy::kParallel)
Fills the grid with given value.
void resize(const Size2 &resolution, const Vector2D &gridSpacing=Vector2D(1, 1), const Vector2D &origin=Vector2D(), double initialValue=0.0)
Resizes the grid using given parameters.
std::shared_ptr< ScalarGrid2 > ScalarGrid2Ptr
Shared pointer for the ScalarGrid2 type.
Definition: scalar_grid2.h:188
2-D size class.
Definition: size2.h:19
2-D array accessor class.
Definition: array_accessor2.h:31
double laplacianAtDataPoint(size_t i, size_t j) const
Returns the Laplacian at given data point.
std::function< double(const Vector2D &)> sampler() const override
Returns the sampler function.
DataPositionFunc dataPosition() const
Returns the function that maps data point to its position.
void resize(size_t resolutionX, size_t resolutionY, double gridSpacingX=1.0, double gridSpacingY=1.0, double originX=0.0, double originY=0.0, double initialValue=0.0)
Resizes the grid using given parameters.
virtual ~ScalarGridBuilder2()
Default destructor.
void swapScalarGrid(ScalarGrid2 *other)
Swaps the data storage and predefined samplers with given grid.
const Size2 & resolution() const
Returns the grid resolution.
const Vector2D & gridSpacing() const
Returns the grid spacing.
const double & operator()(size_t i, size_t j) const
Returns the grid data at given data point.
virtual std::shared_ptr< ScalarGrid2 > clone() const =0
Returns the copy of the grid instance.
virtual Size2 dataSize() const =0
Returns the size of the grid data.
Vector2D gradient(const Vector2D &x) const override
Returns the gradient vector at given position x.
Vector2D gradientAtDataPoint(size_t i, size_t j) const
Returns the gradient vector at given data point.
virtual Vector2D dataOrigin() const =0
Returns the origin of the grid data.