GridFluidSolver2.h
Go to the documentation of this file.
391 class GridFluidSolver2::Builder final : public GridFluidSolverBuilderBase2<GridFluidSolver2::Builder>
void OnAdvanceTimeStep(double timeIntervalInSeconds) override
Called when advancing a single time-step.
virtual void OnEndAdvanceTimeStep(double timeIntervalInSeconds)
Called at the end of a time-step.
bool m_useDomainSize
Definition: GridFluidSolver2.h:331
void SetCollider(const Collider2Ptr &newCollider)
Sets the collider.
void SetEmitter(const GridEmitter2Ptr &newEmitter)
Sets the emitter.
Vector2D m_gridSpacing
Definition: GridFluidSolver2.h:328
virtual void ComputePressure(double timeIntervalInSeconds)
Computes the pressure term using the pressure solver.
std::shared_ptr< Collider2 > Collider2Ptr
Shared pointer type for the Collider2.
Definition: Collider2.h:112
const GridPressureSolver2Ptr & GetPressureSolver() const
Returns the pressure solver instance.
Base class for grid-based fluid solver builder.
Definition: GridFluidSolver2.h:303
DerivedBuilder & WithDomainSizeX(double domainSizeX)
Returns builder with domain size in x-direction.
Definition: GridFluidSolver2.h:361
void SetViscosityCoefficient(double newValue)
Sets the viscosity coefficient.
void SetUseCompressedLinearSystem(bool onoff)
Sets whether the solver should use compressed linear system.
const GridEmitter2Ptr & GetEmitter() const
Returns the emitter.
Size2 m_resolution
Definition: GridFluidSolver2.h:327
unsigned int GetNumberOfSubTimeSteps(double timeIntervalInSeconds) const override
Returns the required sub-time-steps for given time interval.
void SetClosedDomainBoundaryFlag(int flag)
Sets the closed domain boundary flag.
Abstract base class for 2-D collocated vector grid structure.
Definition: CollocatedVectorGrid2.h:19
std::shared_ptr< GridBoundaryConditionSolver2 > GridBoundaryConditionSolver2Ptr
Shared pointer type for the GridBoundaryConditionSolver2.
Definition: GridBoundaryConditionSolver2.h:104
virtual void ComputeExternalForces(double timeIntervalInSeconds)
Computes the external force terms.
static Builder GetBuilder()
Returns builder fox GridFluidSolver2.
double GetViscosityCoefficient() const
Returns the viscosity coefficient.
std::shared_ptr< GridSystemData2 > GridSystemData2Ptr
Shared pointer type of GridSystemData2.
Definition: GridSystemData2.h:224
DerivedBuilder & WithGridSpacing(const Vector2D &gridSpacing)
Returns builder with grid spacing.
Definition: GridFluidSolver2.h:344
std::shared_ptr< ScalarField2 > ScalarField2Ptr
Shared pointer for the ScalarField2 type.
Definition: ScalarField2.h:44
const Vector2D & GetGravity() const
Returns the gravity vector of the system.
2-D face-centered (a.k.a MAC or staggered) grid.
Definition: FaceCenteredGrid2.h:25
Vector2D GetGridSpacing() const
Returns the grid spacing of the grid system data.
const AdvectionSolver2Ptr & GetAdvectionSolver() const
Returns the advection solver instance.
virtual void ComputeViscosity(double timeIntervalInSeconds)
Computes the viscosity term using the diffusion solver.
int GetClosedDomainBoundaryFlag() const
Returns the closed domain boundary flag.
DerivedBuilder & WithResolution(const Size2 &resolution)
Returns builder with grid resolution.
Definition: GridFluidSolver2.h:337
std::shared_ptr< GridFluidSolver2 > GridFluidSolver2Ptr
Shared pointer type for the GridFluidSolver2.
Definition: GridFluidSolver2.h:297
void ExtrapolateIntoCollider(ScalarGrid2 *grid)
Extrapolates given field into the collider-occupied region.
VectorField2Ptr GetColliderVelocityField() const
Returns the velocity field of the collider.
Abstract base class for physics-based animation.
Definition: PhysicsAnimation.h:22
void ComputeGravity(double timeIntervalInSeconds)
Computes the gravity term.
const FaceCenteredGrid2Ptr & GetVelocity() const
Returns the velocity field.
std::shared_ptr< GridEmitter2 > GridEmitter2Ptr
Shared pointer type for the GridEmitter2.
Definition: GridEmitter2.h:63
Definition: pybind11Utils.h:24
virtual void OnBeginAdvanceTimeStep(double timeIntervalInSeconds)
Called at the beginning of a time-step.
void ApplyBoundaryCondition() const
Applies the boundary condition to the velocity field.
Vector2D GetGridSpacing() const
Definition: GridFluidSolver2.h:376
std::shared_ptr< AdvectionSolver2 > AdvectionSolver2Ptr
Shared pointer type for the 2-D advection solver.
Definition: AdvectionSolver2.h:111
const GridSystemData2Ptr & GetGridSystemData() const
Returns the grid system data.
void SetGravity(const Vector2D &newGravity)
Sets the gravity of the system.
virtual void ComputeAdvection(double timeIntervalInSeconds)
Computes the advection term using the advection solver.
void SetAdvectionSolver(const AdvectionSolver2Ptr &newSolver)
Sets the advection solver.
void Set(T s)
Set both x and y components to s.
Definition: Vector2-Impl.h:28
DerivedBuilder & WithOrigin(const Vector2D &gridOrigin)
Returns builder with grid origin.
Definition: GridFluidSolver2.h:369
std::shared_ptr< VectorField2 > VectorField2Ptr
Shared pointer for the VectorField2 type.
Definition: VectorField2.h:44
Front-end to create GridFluidSolver2 objects step by step.
Definition: GridFluidSolver2.h:391
void OnInitialize() override
Called when it needs to setup initial condition.
double m_domainSizeX
Definition: GridFluidSolver2.h:330
Vector2D m_gridOrigin
Definition: GridFluidSolver2.h:329
std::shared_ptr< FaceCenteredGrid2 > FaceCenteredGrid2Ptr
Shared pointer type for the FaceCenteredGrid2.
Definition: FaceCenteredGrid2.h:228
bool GetUseCompressedLinearSystem() const
Returns true if the solver is using compressed linear system.
void SetDiffusionSolver(const GridDiffusionSolver2Ptr &newSolver)
Sets the diffusion solver.
ScalarField2Ptr GetColliderSDF() const
Returns the signed-distance field representation of the collider.
Vector2D GetGridOrigin() const
Returns the origin of the grid system data.
Abstract base class for grid-based 2-D fluid solver.
Definition: GridFluidSolver2.h:33
std::shared_ptr< GridPressureSolver2 > GridPressureSolver2Ptr
Shared pointer type for the GridPressureSolver2.
Definition: GridPressureSolver2.h:78
const GridDiffusionSolver2Ptr & GetDiffusionSolver() const
Returns the diffusion solver instance.
const Collider2Ptr & GetCollider() const
Returns the collider.
Size2 GetResolution() const
Returns the resolution of the grid system data.
void SetPressureSolver(const GridPressureSolver2Ptr &newSolver)
Sets the pressure solver.
Abstract base class for 2-D scalar grid structure.
Definition: ScalarGrid2.h:21
void ResizeGrid(const Size2 &newSize, const Vector2D &newGridSpacing, const Vector2D &newGridOrigin) const
Resizes grid system data.
double GetCFL(double timeIntervalInSeconds) const
Returns the CFL number from the current velocity field for given time interval.
GridFluidSolver2Ptr MakeShared() const
Builds shared pointer of GridFluidSolver2 instance.
Definition: GridFluidSolver2.h:398
std::shared_ptr< GridDiffusionSolver2 > GridDiffusionSolver2Ptr
Shared pointer type for the GridDiffusionSolver2.
Definition: GridDiffusionSolver2.h:93
virtual ScalarField2Ptr GetFluidSDF() const
Returns the signed-distance representation of the fluid.