CubbyFlow::VectorGrid2 Class Referenceabstract

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

#include <Core/Grid/VectorGrid2.h>

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

Public Types

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...
 

Public Member Functions

 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...
 
virtual Vector2D Sample (const Vector2D &x) const =0
 Returns sampled value at given position x. More...
 
virtual double Divergence (const Vector2D &x) const
 Returns divergence at given position x. More...
 
virtual double Curl (const Vector2D &x) const
 Returns curl at given position x. More...
 
virtual std::function< Vector2D(const Vector2D &)> Sampler () const
 Returns sampler function object. 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

virtual void OnResize (const Size2 &resolution, const Vector2D &gridSpacing, const Vector2D &origin, const Vector2D &initialValue)=0
 Invoked when the resizing happens. 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...
 
virtual void GetData (std::vector< double > *data) const =0
 Fetches the data into a continuous linear array. More...
 
virtual void SetData (const std::vector< double > &data)=0
 Sets the data from a continuous linear array. More...
 

Detailed Description

Abstract base class for 2-D vector grid structure.

Member Typedef Documentation

◆ ConstVectorDataAccessor

◆ VectorDataAccessor

Read-write array accessor type.

Constructor & Destructor Documentation

◆ VectorGrid2()

CubbyFlow::VectorGrid2::VectorGrid2 ( )

Constructs an empty grid.

◆ ~VectorGrid2()

virtual CubbyFlow::VectorGrid2::~VectorGrid2 ( )
virtual

Default destructor.

Member Function Documentation

◆ Clear()

void CubbyFlow::VectorGrid2::Clear ( )

Clears the contents of the grid.

◆ Clone()

virtual std::shared_ptr<VectorGrid2> CubbyFlow::VectorGrid2::Clone ( ) const
pure virtual

◆ Deserialize()

void CubbyFlow::VectorGrid2::Deserialize ( const std::vector< uint8_t > &  buffer)
overridevirtual

Deserializes the input buffer to the grid instance.

Implements CubbyFlow::Serializable.

◆ Fill() [1/2]

virtual void CubbyFlow::VectorGrid2::Fill ( const Vector2D value,
ExecutionPolicy  policy = ExecutionPolicy::Parallel 
)
pure virtual

◆ Fill() [2/2]

virtual void CubbyFlow::VectorGrid2::Fill ( const std::function< Vector2D(const Vector2D &)> &  func,
ExecutionPolicy  policy = ExecutionPolicy::Parallel 
)
pure virtual

Fills the grid with given position-to-value mapping function.

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

◆ OnResize()

virtual void CubbyFlow::VectorGrid2::OnResize ( const Size2 resolution,
const Vector2D gridSpacing,
const Vector2D origin,
const Vector2D initialValue 
)
protectedpure virtual

Invoked when the resizing happens.

This callback function is called when the grid gets resized. The overriding class should allocate the internal storage based on its data layout scheme.

Implemented in CubbyFlow::FaceCenteredGrid2.

◆ Resize() [1/4]

void CubbyFlow::VectorGrid2::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.

◆ Resize() [2/4]

void CubbyFlow::VectorGrid2::Resize ( const Size2 resolution,
const Vector2D gridSpacing = Vector2D(1, 1),
const Vector2D origin = Vector2D(),
const Vector2D initialValue = Vector2D() 
)

Resizes the grid using given parameters.

◆ Resize() [3/4]

void CubbyFlow::VectorGrid2::Resize ( double  gridSpacingX,
double  gridSpacingY,
double  originX,
double  originY 
)

Resizes the grid using given parameters.

◆ Resize() [4/4]

void CubbyFlow::VectorGrid2::Resize ( const Vector2D gridSpacing,
const Vector2D origin 
)

Resizes the grid using given parameters.

◆ Serialize()

void CubbyFlow::VectorGrid2::Serialize ( std::vector< uint8_t > *  buffer) const
overridevirtual

Serializes the grid instance to the output buffer.

Implements CubbyFlow::Serializable.


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