Classes |
Public Member Functions |
Static Public Member Functions |
Protected Member Functions |
List of all members
CubbyFlow::APICSolver3 Class Reference
3-D Affine Particle-in-Cell (APIC) implementation More...
#include <Core/Solver/Hybrid/APIC/APICSolver3.hpp>
Inheritance diagram for CubbyFlow::APICSolver3:
Classes | |
class | Builder |
Front-end to create APICSolver3 objects step by step. More... | |
Public Member Functions | |
APICSolver3 () | |
Default constructor. More... | |
APICSolver3 (const Vector3UZ &resolution, const Vector3D &gridSpacing, const Vector3D &gridOrigin) | |
Constructs solver with initial grid size. More... | |
APICSolver3 (const APICSolver3 &)=delete | |
Deleted copy constructor. More... | |
APICSolver3 (APICSolver3 &&) noexcept=delete | |
Deleted move constructor. More... | |
~APICSolver3 () override=default | |
Default virtual destructor. More... | |
APICSolver3 & | operator= (const APICSolver3 &)=delete |
Deleted copy assignment operator. More... | |
APICSolver3 & | operator= (APICSolver3 &&) noexcept=delete |
Deleted move assignment operator. More... | |
Public Member Functions inherited from CubbyFlow::PICSolver3 | |
PICSolver3 () | |
Default constructor. More... | |
PICSolver3 (const Vector3UZ &resolution, const Vector3D &gridSpacing, const Vector3D &gridOrigin) | |
Constructs solver with initial grid size. More... | |
PICSolver3 (const PICSolver3 &)=delete | |
Deleted copy constructor. More... | |
PICSolver3 (PICSolver3 &&) noexcept=delete | |
Deleted move constructor. More... | |
~PICSolver3 () override=default | |
Default virtual destructor. More... | |
PICSolver3 & | operator= (const PICSolver3 &)=delete |
Deleted copy assignment operator. More... | |
PICSolver3 & | operator= (PICSolver3 &&) noexcept=delete |
Deleted move assignment operator. More... | |
ScalarGrid3Ptr | GetSignedDistanceField () const |
Returns the signed-distance field of particles. More... | |
const ParticleSystemData3Ptr & | GetParticleSystemData () const |
Returns the particle system data. More... | |
const ParticleEmitter3Ptr & | GetParticleEmitter () const |
Returns the particle emitter. More... | |
void | SetParticleEmitter (const ParticleEmitter3Ptr &newEmitter) |
Sets the particle emitter. More... | |
Public Member Functions inherited from CubbyFlow::GridFluidSolver3 | |
GridFluidSolver3 () | |
Default constructor. More... | |
GridFluidSolver3 (const Vector3UZ &resolution, const Vector3D &gridSpacing, const Vector3D &gridOrigin) | |
Constructs solver with initial grid size. More... | |
GridFluidSolver3 (const GridFluidSolver3 &)=delete | |
Deleted copy constructor. More... | |
GridFluidSolver3 (GridFluidSolver3 &&) noexcept=delete | |
Deleted move constructor. More... | |
~GridFluidSolver3 () override=default | |
Default virtual destructor. More... | |
GridFluidSolver3 & | operator= (const GridFluidSolver3 &)=delete |
Deleted copy assignment operator. More... | |
GridFluidSolver3 & | operator= (GridFluidSolver3 &&) noexcept=delete |
Deleted move assignment operator. More... | |
const Vector3D & | GetGravity () const |
Returns the gravity vector of the system. More... | |
void | SetGravity (const Vector3D &newGravity) |
Sets the gravity of the system. More... | |
double | GetViscosityCoefficient () const |
Returns the viscosity coefficient. More... | |
void | SetViscosityCoefficient (double newValue) |
Sets the viscosity coefficient. More... | |
double | GetCFL (double timeIntervalInSeconds) const |
Returns the CFL number from the current velocity field for given time interval. More... | |
double | GetMaxCFL () const |
Returns the max allowed CFL number. More... | |
void | SetMaxCFL (double newCFL) |
Sets the max allowed CFL number. More... | |
bool | GetUseCompressedLinearSystem () const |
Returns true if the solver is using compressed linear system. More... | |
void | SetUseCompressedLinearSystem (bool isOn) |
Sets whether the solver should use compressed linear system. More... | |
const AdvectionSolver3Ptr & | GetAdvectionSolver () const |
Returns the advection solver instance. More... | |
void | SetAdvectionSolver (const AdvectionSolver3Ptr &newSolver) |
Sets the advection solver. More... | |
const GridDiffusionSolver3Ptr & | GetDiffusionSolver () const |
Returns the diffusion solver instance. More... | |
void | SetDiffusionSolver (const GridDiffusionSolver3Ptr &newSolver) |
Sets the diffusion solver. More... | |
const GridPressureSolver3Ptr & | GetPressureSolver () const |
Returns the pressure solver instance. More... | |
void | SetPressureSolver (const GridPressureSolver3Ptr &newSolver) |
Sets the pressure solver. More... | |
int | GetClosedDomainBoundaryFlag () const |
Returns the closed domain boundary flag. More... | |
void | SetClosedDomainBoundaryFlag (int flag) |
Sets the closed domain boundary flag. More... | |
const GridSystemData3Ptr & | GetGridSystemData () const |
Returns the grid system data. More... | |
void | ResizeGrid (const Vector3UZ &newSize, const Vector3D &newGridSpacing, const Vector3D &newGridOrigin) const |
Resizes grid system data. More... | |
Vector3UZ | GetResolution () const |
Returns the resolution of the grid system data. More... | |
Vector3D | GetGridSpacing () const |
Returns the grid spacing of the grid system data. More... | |
Vector3D | GetGridOrigin () const |
Returns the origin of the grid system data. More... | |
const FaceCenteredGrid3Ptr & | GetVelocity () const |
Returns the velocity field. More... | |
const Collider3Ptr & | GetCollider () const |
Returns the collider. More... | |
void | SetCollider (const Collider3Ptr &newCollider) |
Sets the collider. More... | |
const GridEmitter3Ptr & | GetEmitter () const |
Returns the emitter. More... | |
void | SetEmitter (const GridEmitter3Ptr &newEmitter) |
Sets the emitter. More... | |
Public Member Functions inherited from CubbyFlow::PhysicsAnimation | |
PhysicsAnimation () | |
Default constructor. More... | |
PhysicsAnimation (const PhysicsAnimation &)=default | |
Default copy constructor. More... | |
PhysicsAnimation (PhysicsAnimation &&) noexcept=default | |
Default move constructor. More... | |
virtual | ~PhysicsAnimation ()=default |
Default virtual destructor. More... | |
PhysicsAnimation & | operator= (const PhysicsAnimation &)=default |
Default copy assignment operator. More... | |
PhysicsAnimation & | operator= (PhysicsAnimation &&) noexcept=default |
Default move assignment operator. More... | |
bool | GetIsUsingFixedSubTimeSteps () const |
Returns true if fixed sub-timestepping is used. More... | |
void | SetIsUsingFixedSubTimeSteps (bool isUsing) |
Sets true if fixed sub-timestepping is used. More... | |
unsigned int | GetNumberOfFixedSubTimeSteps () const |
Returns the number of fixed sub-timesteps. More... | |
void | SetNumberOfFixedSubTimeSteps (unsigned int numberOfSteps) |
Sets the number of fixed sub-timesteps. More... | |
void | AdvanceSingleFrame () |
Advances a single frame. More... | |
Frame | GetCurrentFrame () const |
Returns current frame. More... | |
void | SetCurrentFrame (const Frame &frame) |
Sets current frame cursor (but do not invoke update()). More... | |
double | GetCurrentTimeInSeconds () const |
Returns current time in seconds. More... | |
Public Member Functions inherited from CubbyFlow::Animation | |
Animation ()=default | |
Default constructor. More... | |
Animation (const Animation &)=default | |
Default copy constructor. More... | |
Animation (Animation &&) noexcept=default | |
Default move constructor. More... | |
virtual | ~Animation ()=default |
Default virtual destructor. More... | |
Animation & | operator= (const Animation &)=default |
Default copy assignment operator. More... | |
Animation & | operator= (Animation &&) noexcept=default |
Default move assignment operator. More... | |
void | Update (const Frame &frame) |
Updates animation state for given frame . More... | |
Static Public Member Functions | |
static Builder | GetBuilder () |
Returns builder fox APICSolver3. More... | |
Static Public Member Functions inherited from CubbyFlow::PICSolver3 | |
static Builder | GetBuilder () |
Returns builder fox PICSolver3. More... | |
Static Public Member Functions inherited from CubbyFlow::GridFluidSolver3 | |
static Builder | GetBuilder () |
Returns builder fox GridFluidSolver3. More... | |
Protected Member Functions | |
void | TransferFromParticlesToGrids () override |
Transfers velocity field from particles to grids. More... | |
void | TransferFromGridsToParticles () override |
Transfers velocity field from grids to particles. More... | |
Protected Member Functions inherited from CubbyFlow::PICSolver3 | |
void | OnInitialize () override |
Initializes the simulator. More... | |
void | OnBeginAdvanceTimeStep (double timeIntervalInSeconds) override |
Invoked before a simulation time-step begins. More... | |
void | ComputeAdvection (double timeIntervalInSeconds) override |
Computes the advection term of the fluid solver. More... | |
ScalarField3Ptr | GetFluidSDF () const override |
Returns the signed-distance field of the fluid. More... | |
virtual void | MoveParticles (double timeIntervalInSeconds) |
Moves particles. More... | |
Protected Member Functions inherited from CubbyFlow::GridFluidSolver3 | |
void | OnAdvanceTimeStep (double timeIntervalInSeconds) override |
Called when advancing a single time-step. More... | |
unsigned int | GetNumberOfSubTimeSteps (double timeIntervalInSeconds) const override |
Returns the required sub-time-steps for given time interval. More... | |
virtual void | OnEndAdvanceTimeStep (double timeIntervalInSeconds) |
Called at the end of a time-step. More... | |
virtual void | ComputeExternalForces (double timeIntervalInSeconds) |
Computes the external force terms. More... | |
virtual void | ComputeViscosity (double timeIntervalInSeconds) |
Computes the viscosity term using the diffusion solver. More... | |
virtual void | ComputePressure (double timeIntervalInSeconds) |
Computes the pressure term using the pressure solver. More... | |
void | ComputeGravity (double timeIntervalInSeconds) |
Computes the gravity term. More... | |
void | ApplyBoundaryCondition () const |
Applies the boundary condition to the velocity field. More... | |
void | ExtrapolateIntoCollider (ScalarGrid3 *grid) |
Extrapolates given field into the collider-occupied region. More... | |
void | ExtrapolateIntoCollider (CollocatedVectorGrid3 *grid) |
Extrapolates given field into the collider-occupied region. More... | |
void | ExtrapolateIntoCollider (FaceCenteredGrid3 *grid) |
Extrapolates given field into the collider-occupied region. More... | |
ScalarField3Ptr | GetColliderSDF () const |
Returns the signed-distance field representation of the collider. More... | |
VectorField3Ptr | GetColliderVelocityField () const |
Returns the velocity field of the collider. More... | |
Additional Inherited Members | |
Protected Attributes inherited from CubbyFlow::PICSolver3 | |
Array3< char > | m_uMarkers |
Array3< char > | m_vMarkers |
Array3< char > | m_wMarkers |
Detailed Description
3-D Affine Particle-in-Cell (APIC) implementation
This class implements 3-D Affine Particle-in-Cell (APIC) solver from the SIGGRAPH paper, Jiang 2015.
- See also
- Jiang, Chenfanfu, et al. "The affine particle-in-cell method." ACM Transactions on Graphics (TOG) 34.4 (2015): 51.
Constructor & Destructor Documentation
◆ APICSolver3() [1/4]
CubbyFlow::APICSolver3::APICSolver3 | ( | ) |
Default constructor.
◆ APICSolver3() [2/4]
CubbyFlow::APICSolver3::APICSolver3 | ( | const Vector3UZ & | resolution, |
const Vector3D & | gridSpacing, | ||
const Vector3D & | gridOrigin | ||
) |
Constructs solver with initial grid size.
◆ APICSolver3() [3/4]
|
delete |
Deleted copy constructor.
◆ APICSolver3() [4/4]
|
deletenoexcept |
Deleted move constructor.
◆ ~APICSolver3()
|
overridedefault |
Default virtual destructor.
Member Function Documentation
◆ GetBuilder()
|
static |
Returns builder fox APICSolver3.
◆ operator=() [1/2]
|
delete |
Deleted copy assignment operator.
◆ operator=() [2/2]
|
deletenoexcept |
Deleted move assignment operator.
◆ TransferFromGridsToParticles()
|
overrideprotectedvirtual |
Transfers velocity field from grids to particles.
Reimplemented from CubbyFlow::PICSolver3.
◆ TransferFromParticlesToGrids()
|
overrideprotectedvirtual |
Transfers velocity field from particles to grids.
Reimplemented from CubbyFlow::PICSolver3.
The documentation for this class was generated from the following file:
- Core/Solver/Hybrid/APIC/APICSolver3.hpp