CubbyFlow::CollocatedVectorGrid2 Class Referenceabstract

Abstract base class for 2-D collocated vector grid structure. More...

#include <Core/Grid/CollocatedVectorGrid2.h>

Inheritance diagram for CubbyFlow::CollocatedVectorGrid2:
CubbyFlow::VectorGrid2 CubbyFlow::VectorField2 CubbyFlow::Grid2 CubbyFlow::Field2 CubbyFlow::Serializable CubbyFlow::CellCenteredVectorGrid2 CubbyFlow::VertexCenteredVectorGrid2

Public Member Functions

 CollocatedVectorGrid2 ()
 Constructs an empty grid. More...
 
virtual ~CollocatedVectorGrid2 ()
 Default destructor. More...
 
virtual Size2 GetDataSize () const =0
 Returns the actual data point size. More...
 
virtual Vector2D GetDataOrigin () const =0
 Returns data position for the grid point at (0, 0). More...
 
const Vector2Doperator() (size_t i, size_t j) const
 Returns the grid data at given data point. More...
 
Vector2Doperator() (size_t i, size_t j)
 Returns the grid data at given data point. More...
 
double DivergenceAtDataPoint (size_t i, size_t j) const
 Returns divergence at data point location. More...
 
double CurlAtDataPoint (size_t i, size_t j) const
 Returns curl at data point location. More...
 
VectorDataAccessor GetDataAccessor ()
 Returns the read-write data array accessor. More...
 
ConstVectorDataAccessor GetConstDataAccessor () const
 Returns the read-only data array accessor. More...
 
DataPositionFunc GetDataPosition () const
 Returns the function that maps data point to its position. More...
 
void ForEachDataPointIndex (const std::function< void(size_t, size_t)> &func) const
 Invokes the given function func for each data point. More...
 
void ParallelForEachDataPointIndex (const std::function< void(size_t, size_t)> &func) const
 Invokes the given function func for each data point in parallel. More...
 
Vector2D Sample (const Vector2D &x) const override
 Returns sampled value at given position x. More...
 
double Divergence (const Vector2D &x) const override
 Returns divergence at given position x. More...
 
double Curl (const Vector2D &x) const override
 Returns curl at given position x. More...
 
std::function< Vector2D(const Vector2D &)> Sampler () const override
 Returns the sampler function. More...
 
- Public Member Functions inherited from CubbyFlow::VectorGrid2
 VectorGrid2 ()
 Constructs an empty grid. More...
 
virtual ~VectorGrid2 ()
 Default destructor. More...
 
void Clear ()
 Clears the contents of the grid. More...
 
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 initialValueX=0.0, double initialValueY=0.0)
 Resizes the grid using given parameters. More...
 
void Resize (const Size2 &resolution, const Vector2D &gridSpacing=Vector2D(1, 1), const Vector2D &origin=Vector2D(), const Vector2D &initialValue=Vector2D())
 Resizes the grid using given parameters. More...
 
void Resize (double gridSpacingX, double gridSpacingY, double originX, double originY)
 Resizes the grid using given parameters. More...
 
void Resize (const Vector2D &gridSpacing, const Vector2D &origin)
 Resizes the grid using given parameters. More...
 
virtual void Fill (const Vector2D &value, ExecutionPolicy policy=ExecutionPolicy::Parallel)=0
 Fills the grid with given value. More...
 
virtual void Fill (const std::function< Vector2D(const Vector2D &)> &func, ExecutionPolicy policy=ExecutionPolicy::Parallel)=0
 Fills the grid with given position-to-value mapping function. More...
 
virtual std::shared_ptr< VectorGrid2Clone () const =0
 Returns the copy of the grid instance. More...
 
void Serialize (std::vector< uint8_t > *buffer) const override
 Serializes the grid instance to the output buffer. More...
 
void Deserialize (const std::vector< uint8_t > &buffer) override
 Deserializes the input buffer to the grid instance. More...
 
- Public Member Functions inherited from CubbyFlow::VectorField2
 VectorField2 ()
 Default constructor. More...
 
virtual ~VectorField2 ()
 Default destructor. More...
 
- Public Member Functions inherited from CubbyFlow::Field2
 Field2 ()
 
virtual ~Field2 ()
 
- Public Member Functions inherited from CubbyFlow::Grid2
 Grid2 ()
 Constructs an empty grid. More...
 
virtual ~Grid2 ()
 Default destructor. More...
 
virtual std::string TypeName () const =0
 Returns the type name of derived grid. More...
 
const Size2Resolution () const
 Returns the grid resolution. More...
 
const Vector2DOrigin () const
 Returns the grid origin. More...
 
const Vector2DGridSpacing () const
 Returns the grid spacing. More...
 
const BoundingBox2DBoundingBox () const
 Returns the bounding box of the grid. More...
 
DataPositionFunc CellCenterPosition () const
 Returns the function that maps grid index to the cell-center position. More...
 
void ForEachCellIndex (const std::function< void(size_t, size_t)> &func) const
 Invokes the given function func for each grid cell. More...
 
void ParallelForEachCellIndex (const std::function< void(size_t, size_t)> &func) const
 Invokes the given function func for each grid cell in parallel. More...
 
bool HasSameShape (const Grid2 &other) const
 Returns true if resolution, grid-spacing and origin are same. More...
 
virtual void Swap (Grid2 *other)=0
 Swaps the data with other grid. More...
 

Protected Member Functions

void SwapCollocatedVectorGrid (CollocatedVectorGrid2 *other)
 Swaps the data storage and predefined samplers with given grid. More...
 
void SetCollocatedVectorGrid (const CollocatedVectorGrid2 &other)
 Sets the data storage and predefined samplers with given grid. More...
 
void GetData (std::vector< double > *data) const override
 Fetches the data into a continuous linear array. More...
 
void SetData (const std::vector< double > &data) override
 Sets the data from a continuous linear array. More...
 
- Protected Member Functions inherited from CubbyFlow::Grid2
void SetSizeParameters (const Size2 &resolution, const Vector2D &gridSpacing, const Vector2D &origin)
 Sets the size parameters including the resolution, grid spacing, and origin. More...
 
void SwapGrid (Grid2 *other)
 Swaps the size parameters with given grid other. More...
 
void SetGrid (const Grid2 &other)
 Sets the size parameters with given grid other. More...
 

Additional Inherited Members

- Public Types inherited from CubbyFlow::VectorGrid2
using VectorDataAccessor = ArrayAccessor2< Vector2D >
 Read-write array accessor type. More...
 
using ConstVectorDataAccessor = ConstArrayAccessor2< Vector2D >
 Read-only array accessor type. More...
 
- Public Types inherited from CubbyFlow::Grid2
using DataPositionFunc = std::function< Vector2D(size_t, size_t)>
 Function type for mapping data index to actual position. More...
 

Detailed Description

Abstract base class for 2-D collocated vector grid structure.

Constructor & Destructor Documentation

◆ CollocatedVectorGrid2()

CubbyFlow::CollocatedVectorGrid2::CollocatedVectorGrid2 ( )

Constructs an empty grid.

◆ ~CollocatedVectorGrid2()

virtual CubbyFlow::CollocatedVectorGrid2::~CollocatedVectorGrid2 ( )
virtual

Default destructor.

Member Function Documentation

◆ Curl()

double CubbyFlow::CollocatedVectorGrid2::Curl ( const Vector2D x) const
overridevirtual

Returns curl at given position x.

Reimplemented from CubbyFlow::VectorField2.

◆ CurlAtDataPoint()

double CubbyFlow::CollocatedVectorGrid2::CurlAtDataPoint ( size_t  i,
size_t  j 
) const

Returns curl at data point location.

◆ Divergence()

double CubbyFlow::CollocatedVectorGrid2::Divergence ( const Vector2D x) const
overridevirtual

Returns divergence at given position x.

Reimplemented from CubbyFlow::VectorField2.

◆ DivergenceAtDataPoint()

double CubbyFlow::CollocatedVectorGrid2::DivergenceAtDataPoint ( size_t  i,
size_t  j 
) const

Returns divergence at data point location.

◆ ForEachDataPointIndex()

void CubbyFlow::CollocatedVectorGrid2::ForEachDataPointIndex ( const std::function< void(size_t, size_t)> &  func) const

Invokes the given function func for each data point.

This function invokes the given function object func for each data point in serial manner. The input parameters are i and j indices of a data point. The order of execution is i-first, j-last.

◆ GetConstDataAccessor()

ConstVectorDataAccessor CubbyFlow::CollocatedVectorGrid2::GetConstDataAccessor ( ) const

Returns the read-only data array accessor.

◆ GetData()

void CubbyFlow::CollocatedVectorGrid2::GetData ( std::vector< double > *  data) const
overrideprotectedvirtual

Fetches the data into a continuous linear array.

Implements CubbyFlow::Grid2.

◆ GetDataAccessor()

VectorDataAccessor CubbyFlow::CollocatedVectorGrid2::GetDataAccessor ( )

Returns the read-write data array accessor.

◆ GetDataOrigin()

virtual Vector2D CubbyFlow::CollocatedVectorGrid2::GetDataOrigin ( ) const
pure virtual

Returns data position for the grid point at (0, 0).

Note that this is different from origin() since origin() returns the lower corner point of the bounding box.

Implemented in CubbyFlow::CellCenteredVectorGrid2, and CubbyFlow::VertexCenteredVectorGrid2.

◆ GetDataPosition()

DataPositionFunc CubbyFlow::CollocatedVectorGrid2::GetDataPosition ( ) const

Returns the function that maps data point to its position.

◆ GetDataSize()

virtual Size2 CubbyFlow::CollocatedVectorGrid2::GetDataSize ( ) const
pure virtual

Returns the actual data point size.

Implemented in CubbyFlow::CellCenteredVectorGrid2, and CubbyFlow::VertexCenteredVectorGrid2.

◆ operator()() [1/2]

const Vector2D& CubbyFlow::CollocatedVectorGrid2::operator() ( size_t  i,
size_t  j 
) const

Returns the grid data at given data point.

◆ operator()() [2/2]

Vector2D& CubbyFlow::CollocatedVectorGrid2::operator() ( size_t  i,
size_t  j 
)

Returns the grid data at given data point.

◆ ParallelForEachDataPointIndex()

void CubbyFlow::CollocatedVectorGrid2::ParallelForEachDataPointIndex ( const std::function< void(size_t, size_t)> &  func) const

Invokes the given function func for each data point in parallel.

This function invokes the given function object func for each data point in parallel manner. The input parameters are i and j indices of a data point. The order of execution can be arbitrary since it's multi-threaded.

◆ Sample()

Vector2D CubbyFlow::CollocatedVectorGrid2::Sample ( const Vector2D x) const
overridevirtual

Returns sampled value at given position x.

Implements CubbyFlow::VectorField2.

◆ Sampler()

std::function<Vector2D(const Vector2D&)> CubbyFlow::CollocatedVectorGrid2::Sampler ( ) const
overridevirtual

Returns the sampler function.

This function returns the data sampler function object. The sampling function is linear.

Reimplemented from CubbyFlow::VectorField2.

◆ SetCollocatedVectorGrid()

void CubbyFlow::CollocatedVectorGrid2::SetCollocatedVectorGrid ( const CollocatedVectorGrid2 other)
protected

Sets the data storage and predefined samplers with given grid.

◆ SetData()

void CubbyFlow::CollocatedVectorGrid2::SetData ( const std::vector< double > &  data)
overrideprotectedvirtual

Sets the data from a continuous linear array.

Implements CubbyFlow::Grid2.

◆ SwapCollocatedVectorGrid()

void CubbyFlow::CollocatedVectorGrid2::SwapCollocatedVectorGrid ( CollocatedVectorGrid2 other)
protected

Swaps the data storage and predefined samplers with given grid.


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