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

Abstract based class for 3-D grid-based advection solver. More...

#include <jet/advection_solver3.h>

Inheritance diagram for jet::AdvectionSolver3:
jet::SemiLagrangian3 jet::CubicSemiLagrangian3

Public Member Functions

 AdvectionSolver3 ()
 
virtual ~AdvectionSolver3 ()
 
virtual void advect (const ScalarGrid3 &input, const VectorField3 &flow, double dt, ScalarGrid3 *output, const ScalarField3 &boundarySdf=ConstantScalarField3(kMaxD))=0
 Solves advection equation for given scalar grid. More...
 
virtual void advect (const CollocatedVectorGrid3 &input, const VectorField3 &flow, double dt, CollocatedVectorGrid3 *output, const ScalarField3 &boundarySdf=ConstantScalarField3(kMaxD))
 Solves advection equation for given collocated vector grid. More...
 
virtual void advect (const FaceCenteredGrid3 &input, const VectorField3 &flow, double dt, FaceCenteredGrid3 *output, const ScalarField3 &boundarySdf=ConstantScalarField3(kMaxD))
 Solves advection equation for given face-centered vector grid. More...
 

Detailed Description

Abstract based class for 3-D grid-based advection solver.

The implementation of this abstract base class should solve 3-D advection equation for scalar and vector fields.

Constructor & Destructor Documentation

◆ AdvectionSolver3()

jet::AdvectionSolver3::AdvectionSolver3 ( )

◆ ~AdvectionSolver3()

virtual jet::AdvectionSolver3::~AdvectionSolver3 ( )
virtual

Member Function Documentation

◆ advect() [1/3]

virtual void jet::AdvectionSolver3::advect ( const CollocatedVectorGrid3 input,
const VectorField3 flow,
double  dt,
CollocatedVectorGrid3 output,
const ScalarField3 boundarySdf = ConstantScalarField3(kMaxD) 
)
virtual

Solves advection equation for given collocated vector grid.

The implementation of this virtual function should solve advection equation for given collocated vector grid input and underlying vector field flow that carries the input field. The solution after solving the equation for given time-step dt should be stored in vector field output. The boundary interface is given by a signed-distance field. The field is negative inside the boundary. By default, a constant field with max double value (kMaxD or std::numeric_limists<double>::max()) is used, meaning no boundary.

Parameters
inputInput vector grid.
flowVector field that advects the input field.
dtTime-step for the advection.
outputOutput vector grid.
boundarySdfBoundary interface defined by signed-distance field.

Reimplemented in jet::SemiLagrangian3.

◆ advect() [2/3]

virtual void jet::AdvectionSolver3::advect ( const FaceCenteredGrid3 input,
const VectorField3 flow,
double  dt,
FaceCenteredGrid3 output,
const ScalarField3 boundarySdf = ConstantScalarField3(kMaxD) 
)
virtual

Solves advection equation for given face-centered vector grid.

The implementation of this virtual function should solve advection equation for given face-centered vector field input and underlying vector field flow that carries the input field. The solution after solving the equation for given time-step dt should be stored in vector field output. The boundary interface is given by a signed-distance field. The field is negative inside the boundary. By default, a constant field with max double value (kMaxD or std::numeric_limists<double>::max()) is used, meaning no boundary.

Parameters
inputInput vector grid.
flowVector field that advects the input field.
dtTime-step for the advection.
outputOutput vector grid.
boundarySdfBoundary interface defined by signed-distance field.

Reimplemented in jet::SemiLagrangian3.

◆ advect() [3/3]

virtual void jet::AdvectionSolver3::advect ( const ScalarGrid3 input,
const VectorField3 flow,
double  dt,
ScalarGrid3 output,
const ScalarField3 boundarySdf = ConstantScalarField3(kMaxD) 
)
pure virtual

Solves advection equation for given scalar grid.

The implementation of this virtual function should solve advection equation for given scalar field input and underlying vector field flow that carries the input field. The solution after solving the equation for given time-step dt should be stored in scalar field output. The boundary interface is given by a signed-distance field. The field is negative inside the boundary. By default, a constant field with max double value (kMaxD or std::numeric_limists<double>::max()) is used, meaning no boundary.

Parameters
inputInput scalar grid.
flowVector field that advects the input field.
dtTime-step for the advection.
outputOutput scalar grid.
boundarySdfBoundary interface defined by signed-distance field.

Implemented in jet::SemiLagrangian3.


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