Abstract based class for 2-D grid-based advection solver. More...
#include <Core/Solver/Advection/AdvectionSolver2.hpp>
Public Member Functions | |
AdvectionSolver2 ()=default | |
Default constructor. More... | |
AdvectionSolver2 (const AdvectionSolver2 &)=default | |
Default copy constructor. More... | |
AdvectionSolver2 (AdvectionSolver2 &&) noexcept=default | |
Default move constructor. More... | |
virtual | ~AdvectionSolver2 ()=default |
Default virtual destructor. More... | |
AdvectionSolver2 & | operator= (const AdvectionSolver2 &)=default |
Default copy assignment operator. More... | |
AdvectionSolver2 & | operator= (AdvectionSolver2 &&) noexcept=default |
Default move assignment operator. More... | |
virtual void | Advect (const ScalarGrid2 &input, const VectorField2 &flow, double dt, ScalarGrid2 *output, const ScalarField2 &boundarySDF=ConstantScalarField2(std::numeric_limits< double >::max()))=0 |
Solves advection equation for given scalar grid. More... | |
virtual void | Advect (const CollocatedVectorGrid2 &input, const VectorField2 &flow, double dt, CollocatedVectorGrid2 *output, const ScalarField2 &boundarySDF=ConstantScalarField2(std::numeric_limits< double >::max())) |
Solves advection equation for given collocated vector grid. More... | |
virtual void | Advect (const FaceCenteredGrid2 &input, const VectorField2 &flow, double dt, FaceCenteredGrid2 *output, const ScalarField2 &boundarySDF=ConstantScalarField2(std::numeric_limits< double >::max())) |
Solves advection equation for given face-centered vector grid. More... | |
Detailed Description
Abstract based class for 2-D grid-based advection solver.
The implementation of this abstract base class should solve 2-D advection equation for scalar and vector fields.
Constructor & Destructor Documentation
◆ AdvectionSolver2() [1/3]
|
default |
Default constructor.
◆ AdvectionSolver2() [2/3]
|
default |
Default copy constructor.
◆ AdvectionSolver2() [3/3]
|
defaultnoexcept |
Default move constructor.
◆ ~AdvectionSolver2()
|
virtualdefault |
Default virtual destructor.
Member Function Documentation
◆ Advect() [1/3]
|
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 (std::numeric_limits<double>::max()) is used, meaning no boundary.
- Parameters
-
input Input scalar grid. flow Vector field that advects the input field. dt Time-step for the advection. output Output scalar grid. boundarySDF Boundary interface defined by signed-distance field.
Implemented in CubbyFlow::SemiLagrangian2.
◆ Advect() [2/3]
|
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 (std::numeric_limits<double>::max()) is used, meaning no boundary.
- Parameters
-
input Input vector grid. flow Vector field that advects the input field. dt Time-step for the advection. output Output vector grid. boundarySDF Boundary interface defined by signed-distance field.
Reimplemented in CubbyFlow::SemiLagrangian2.
◆ Advect() [3/3]
|
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 (std::numeric_limits<double>::max()) is used, meaning no boundary.
- Parameters
-
input Input vector grid. flow Vector field that advects the input field. dt Time-step for the advection. output Output vector grid. boundarySDF Boundary interface defined by signed-distance field.
Reimplemented in CubbyFlow::SemiLagrangian2.
◆ operator=() [1/2]
|
default |
Default copy assignment operator.
◆ operator=() [2/2]
|
defaultnoexcept |
Default move assignment operator.
The documentation for this class was generated from the following file:
- Core/Solver/Advection/AdvectionSolver2.hpp