Jet  v1.3.3
Public Types | Public Member Functions | Protected Member Functions | List of all members
jet::VectorGrid3 Class Referenceabstract

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

#include <jet/vector_grid3.h>

Inheritance diagram for jet::VectorGrid3:
jet::VectorField3 jet::Grid3 jet::Field3 jet::Serializable jet::CollocatedVectorGrid3 jet::FaceCenteredGrid3 jet::CellCenteredVectorGrid3 jet::VertexCenteredVectorGrid3

Public Types

typedef ArrayAccessor3< Vector3DVectorDataAccessor
 Read-write array accessor type. More...
 
typedef ConstArrayAccessor3< Vector3DConstVectorDataAccessor
 Read-only array accessor type. More...
 
- Public Types inherited from jet::Grid3
typedef std::function< Vector3D(size_t, size_t, size_t)> DataPositionFunc
 Function type for mapping data index to actual position. More...
 

Public Member Functions

 VectorGrid3 ()
 Constructs an empty grid. More...
 
virtual ~VectorGrid3 ()
 Default destructor. More...
 
void clear ()
 Clears the contents of the grid. More...
 
void resize (size_t resolutionX, size_t resolutionY, size_t resolutionZ, double gridSpacingX=1.0, double gridSpacingY=1.0, double gridSpacingZ=1.0, double originX=0.0, double originY=0.0, double originZ=0.0, double initialValueX=0.0, double initialValueY=0.0, double initialValueZ=0.0)
 Resizes the grid using given parameters. More...
 
void resize (const Size3 &resolution, const Vector3D &gridSpacing=Vector3D(1, 1, 1), const Vector3D &origin=Vector3D(), const Vector3D &initialValue=Vector3D())
 Resizes the grid using given parameters. More...
 
void resize (double gridSpacingX, double gridSpacingY, double gridSpacingZ, double originX, double originY, double originZ)
 Resizes the grid using given parameters. More...
 
void resize (const Vector3D &gridSpacing, const Vector3D &origin)
 Resizes the grid using given parameters. More...
 
virtual void fill (const Vector3D &value, ExecutionPolicy policy=ExecutionPolicy::kParallel)=0
 Fills the grid with given value. More...
 
virtual void fill (const std::function< Vector3D(const Vector3D &)> &func, ExecutionPolicy policy=ExecutionPolicy::kParallel)=0
 Fills the grid with given position-to-value mapping function. More...
 
virtual std::shared_ptr< VectorGrid3clone () 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 jet::VectorField3
 VectorField3 ()
 Default constructor. More...
 
virtual ~VectorField3 ()
 Default destructor. More...
 
virtual Vector3D sample (const Vector3D &x) const =0
 Returns sampled value at given position x. More...
 
virtual double divergence (const Vector3D &x) const
 Returns divergence at given position x. More...
 
virtual Vector3D curl (const Vector3D &x) const
 Returns curl at given position x. More...
 
virtual std::function< Vector3D(const Vector3D &)> sampler () const
 Returns sampler function object. More...
 
- Public Member Functions inherited from jet::Field3
 Field3 ()
 
virtual ~Field3 ()
 
- Public Member Functions inherited from jet::Grid3
 Grid3 ()
 Constructs an empty grid. More...
 
virtual ~Grid3 ()
 Default destructor. More...
 
virtual std::string typeName () const =0
 Returns the type name of derived grid. More...
 
const Size3resolution () const
 Returns the grid resolution. More...
 
const Vector3Dorigin () const
 Returns the grid origin. More...
 
const Vector3DgridSpacing () const
 Returns the grid spacing. More...
 
const BoundingBox3DboundingBox () 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, size_t)> &func) const
 Invokes the given function func for each grid cell. More...
 
void parallelForEachCellIndex (const std::function< void(size_t, size_t, size_t)> &func) const
 Invokes the given function func for each grid cell parallelly. More...
 
bool hasSameShape (const Grid3 &other) const
 Returns true if resolution, grid-spacing and origin are same. More...
 
virtual void swap (Grid3 *other)=0
 Swaps the data with other grid. More...
 
- Public Member Functions inherited from jet::Serializable
 Serializable ()=default
 
virtual ~Serializable ()=default
 

Protected Member Functions

virtual void onResize (const Size3 &resolution, const Vector3D &gridSpacing, const Vector3D &origin, const Vector3D &initialValue)=0
 Invoked when the resizing happens. More...
 
- Protected Member Functions inherited from jet::Grid3
void setSizeParameters (const Size3 &resolution, const Vector3D &gridSpacing, const Vector3D &origin)
 
void swapGrid (Grid3 *other)
 Swaps the size parameters with given grid other. More...
 
void setGrid (const Grid3 &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 3-D vector grid structure.

Member Typedef Documentation

◆ ConstVectorDataAccessor

Read-only array accessor type.

◆ VectorDataAccessor

Read-write array accessor type.

Constructor & Destructor Documentation

◆ VectorGrid3()

jet::VectorGrid3::VectorGrid3 ( )

Constructs an empty grid.

◆ ~VectorGrid3()

virtual jet::VectorGrid3::~VectorGrid3 ( )
virtual

Default destructor.

Member Function Documentation

◆ clear()

void jet::VectorGrid3::clear ( )

Clears the contents of the grid.

◆ clone()

virtual std::shared_ptr<VectorGrid3> jet::VectorGrid3::clone ( ) const
pure virtual

Returns the copy of the grid instance.

Implemented in jet::FaceCenteredGrid3, jet::VertexCenteredVectorGrid3, and jet::CellCenteredVectorGrid3.

◆ deserialize()

void jet::VectorGrid3::deserialize ( const std::vector< uint8_t > &  buffer)
overridevirtual

Deserializes the input buffer to the grid instance.

Implements jet::Grid3.

◆ fill() [1/2]

virtual void jet::VectorGrid3::fill ( const std::function< Vector3D(const Vector3D &)> &  func,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)
pure virtual

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

Implemented in jet::FaceCenteredGrid3, jet::CellCenteredVectorGrid3, and jet::VertexCenteredVectorGrid3.

◆ fill() [2/2]

virtual void jet::VectorGrid3::fill ( const Vector3D value,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)
pure virtual

Fills the grid with given value.

Implemented in jet::FaceCenteredGrid3, jet::CellCenteredVectorGrid3, and jet::VertexCenteredVectorGrid3.

◆ onResize()

virtual void jet::VectorGrid3::onResize ( const Size3 resolution,
const Vector3D gridSpacing,
const Vector3D origin,
const Vector3D 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 jet::FaceCenteredGrid3.

◆ resize() [1/4]

void jet::VectorGrid3::resize ( const Size3 resolution,
const Vector3D gridSpacing = Vector3D(1, 1, 1),
const Vector3D origin = Vector3D(),
const Vector3D initialValue = Vector3D() 
)

Resizes the grid using given parameters.

◆ resize() [2/4]

void jet::VectorGrid3::resize ( const Vector3D gridSpacing,
const Vector3D origin 
)

Resizes the grid using given parameters.

◆ resize() [3/4]

void jet::VectorGrid3::resize ( double  gridSpacingX,
double  gridSpacingY,
double  gridSpacingZ,
double  originX,
double  originY,
double  originZ 
)

Resizes the grid using given parameters.

◆ resize() [4/4]

void jet::VectorGrid3::resize ( size_t  resolutionX,
size_t  resolutionY,
size_t  resolutionZ,
double  gridSpacingX = 1.0,
double  gridSpacingY = 1.0,
double  gridSpacingZ = 1.0,
double  originX = 0.0,
double  originY = 0.0,
double  originZ = 0.0,
double  initialValueX = 0.0,
double  initialValueY = 0.0,
double  initialValueZ = 0.0 
)

Resizes the grid using given parameters.

◆ serialize()

void jet::VectorGrid3::serialize ( std::vector< uint8_t > *  buffer) const
overridevirtual

Serializes the grid instance to the output buffer.

Implements jet::Grid3.


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