Go to the documentation of this file.
7 #ifndef INCLUDE_JET_GRID_FRACTIONAL_SINGLE_PHASE_PRESSURE_SOLVER3_H_
8 #define INCLUDE_JET_GRID_FRACTIONAL_SINGLE_PHASE_PRESSURE_SOLVER3_H_
79 bool useCompressed =
false)
override;
110 std::vector<Array3<float>> _uWeights;
111 std::vector<Array3<float>> _vWeights;
112 std::vector<Array3<float>> _wWeights;
113 std::vector<Array3<float>> _fluidSdf;
122 void decompressSolution();
132 typedef std::shared_ptr<GridFractionalSinglePhasePressureSolver3>
137 #endif // INCLUDE_JET_GRID_FRACTIONAL_SINGLE_PHASE_PRESSURE_SOLVER3_H_
Abstract base class for 3-D grid-based pressure solver.
Definition: grid_pressure_solver3.h:29
std::shared_ptr< GridFractionalSinglePhasePressureSolver3 > GridFractionalSinglePhasePressureSolver3Ptr
Shared pointer type for the GridFractionalSinglePhasePressureSolver3.
Definition: grid_fractional_single_phase_pressure_solver3.h:133
Abstract base class for 3-D scalar field.
Definition: scalar_field3.h:18
Multigrid-syle 3-D linear system.
Definition: fdm_mg_linear_system3.h:23
void setLinearSystemSolver(const FdmLinearSystemSolver3Ptr &solver)
Sets the linear system solver.
3-D constant vector field.
Definition: constant_vector_field3.h:16
Definition: advection_solver2.h:18
Abstract base class for 3-D vector field.
Definition: vector_field3.h:18
Compressed linear system (Ax=b) for 3-D finite differencing.
Definition: fdm_linear_system3.h:57
3-D face-centered (a.k.a MAC or staggered) grid.
Definition: face_centered_grid3.h:26
3-D constant scalar field.
Definition: constant_scalar_field3.h:15
std::shared_ptr< FdmMgSolver3 > FdmMgSolver3Ptr
Shared pointer type for the FdmMgSolver3.
Definition: fdm_mg_solver3.h:54
std::shared_ptr< GridBoundaryConditionSolver3 > GridBoundaryConditionSolver3Ptr
Shared pointer type for the GridBoundaryConditionSolver3.
Definition: grid_boundary_condition_solver3.h:104
constexpr double kMaxD
Max double.
Definition: constants.h:88
Linear system (Ax=b) for 3-D finite differencing.
Definition: fdm_linear_system3.h:39
Vector3< double > Vector3D
Double-type 3D vector.
Definition: vector3.h:349
GridFractionalSinglePhasePressureSolver3()
3-D vector class.
Definition: vector3.h:25
const FdmLinearSystemSolver3Ptr & linearSystemSolver() const
Returns the linear system solver.
const FdmVector3 & pressure() const
Returns the pressure field.
void solve(const FaceCenteredGrid3 &input, double timeIntervalInSeconds, FaceCenteredGrid3 *output, const ScalarField3 &boundarySdf=ConstantScalarField3(kMaxD), const VectorField3 &boundaryVelocity=ConstantVectorField3({0, 0, 0}), const ScalarField3 &fluidSdf=ConstantScalarField3(-kMaxD), bool useCompressed=false) override
Solves the pressure term and apply it to the velocity field.
GridBoundaryConditionSolver3Ptr suggestedBoundaryConditionSolver() const override
Returns the best boundary condition solver for this solver.
3-D array class.
Definition: array3.h:43
std::shared_ptr< FdmLinearSystemSolver3 > FdmLinearSystemSolver3Ptr
Shared pointer type for the FdmLinearSystemSolver3.
Definition: fdm_linear_system_solver3.h:31
3-D fractional single-phase pressure solver.
Definition: grid_fractional_single_phase_pressure_solver3.h:46
virtual ~GridFractionalSinglePhasePressureSolver3()