Jet
v1.3.3
|
Abstract base class for 2-D grid-based pressure solver. More...
#include <jet/grid_pressure_solver2.h>
Public Member Functions | |
GridPressureSolver2 () | |
Default constructor. More... | |
virtual | ~GridPressureSolver2 () |
Default destructor. More... | |
virtual void | solve (const FaceCenteredGrid2 &input, double timeIntervalInSeconds, FaceCenteredGrid2 *output, const ScalarField2 &boundarySdf=ConstantScalarField2(kMaxD), const VectorField2 &boundaryVelocity=ConstantVectorField2({0, 0}), const ScalarField2 &fluidSdf=ConstantScalarField2(-kMaxD), bool useCompressed=false)=0 |
Solves the pressure term and apply it to the velocity field. More... | |
virtual GridBoundaryConditionSolver2Ptr | suggestedBoundaryConditionSolver () const =0 |
Returns the best boundary condition solver for this solver. More... | |
Abstract base class for 2-D grid-based pressure solver.
This class represents a 2-D grid-based pressure solver interface which can be used as a sub-step of GridFluidSolver2. Inheriting classes must implement the core GridPressureSolver2::solve function as well as the helper function GridPressureSolver2::suggestedBoundaryConditionSolver.
jet::GridPressureSolver2::GridPressureSolver2 | ( | ) |
Default constructor.
|
virtual |
Default destructor.
|
pure virtual |
Solves the pressure term and apply it to the velocity field.
This function takes input velocity field and outputs pressure-applied velocity field. It also accepts extra arguments such as boundarySdf
and fluidSdf
that represent signed-distance representation of the boundary and fluid area. The negative region of boundarySdf
means it is occupied by solid object. Also, the positive / negative area of the fluidSdf
means it is occupied by fluid / atmosphere. If not specified, constant scalar field with kMaxD will be used for boundarySdf
meaning that no boundary at all. Similarly, a constant field with -kMaxD will be used for fluidSdf
which means it's fully occupied with fluid without any atmosphere.
[in] | input | The input velocity field. |
[in] | timeIntervalInSeconds | The time interval for the sim. |
[in,out] | output | The output velocity field. |
[in] | boundarySdf | The SDF of the boundary. |
[in] | fluidSdf | The SDF of the fluid/atmosphere. |
[in] | useCompressed | True if it uses compressed system. |
Implemented in jet::GridFractionalSinglePhasePressureSolver2, and jet::GridSinglePhasePressureSolver2.
|
pure virtual |
Returns the best boundary condition solver for this solver.
This function returns the best boundary condition solver that works well with this pressure solver. Depending on the pressure solver implementation, different boundary condition solver might be used.
Implemented in jet::GridFractionalSinglePhasePressureSolver2, and jet::GridSinglePhasePressureSolver2.