Class TimeStepPBF

Inheritance Relationships

Base Type

Class Documentation

class TimeStepPBF : public SPH::TimeStep

This class implements the position-based fluids approach introduced by Macklin and Mueller [MM13,BMO+14,BMM15].

References:

  • [MM13] Miles Macklin and Matthias Müller. Position based fluids. ACM Trans. Graph., 32(4):104:1-104:12, July 2013. URL: http://doi.acm.org/10.1145/2461912.2461984

  • [BMO+14] Jan Bender, Matthias Müller, Miguel A. Otaduy, Matthias Teschner, and Miles Macklin. A survey on position-based simulation methods in computer graphics. Computer Graphics Forum, 33(6):228-251, 2014. URL: http://dx.doi.org/10.1111/cgf.12346

  • [BMM15] Jan Bender, Matthias Müller, and Miles Macklin. Position-based simulation methods in computer graphics. In EUROGRAPHICS 2015 Tutorials. Eurographics Association, 2015. URL: http://dx.doi.org/10.2312/egt.20151045

Public Functions

TimeStepPBF()

Initialize the simulation data required for this method.

virtual ~TimeStepPBF(void)
virtual void step()

Perform a simulation step.

virtual void reset()

Reset the simulation method.

virtual void resize()
inline virtual std::string getMethodName()

returns the name of the method

inline virtual int getNumIterations()

Public Static Attributes

static std::string METHOD_NAME = "PBF"
static int SOLVER_ITERATIONS = -1
static int MIN_ITERATIONS = -1
static int MAX_ITERATIONS = -1
static int MAX_ERROR = -1
static int VELOCITY_UPDATE_METHOD = -1
static int ENUM_PBF_FIRST_ORDER = -1
static int ENUM_PBF_SECOND_ORDER = -1

Protected Functions

void pressureSolve()

Perform a position-based correction step for the following density constraint:\(C(\mathbf{x}) = \left (\frac{\rho_i}{\rho_0} - 1 \right )= 0\)

void pressureSolveIteration(const unsigned int fluidModelIndex, Real &avg_density_err)
virtual void performNeighborhoodSearchSort()

Important: First call m_model->performNeighborhoodSearchSort() to call the z_sort of the neighborhood search.

virtual void emittedParticles(FluidModel *model, const unsigned int startIndex)
virtual void initParameters()

Protected Attributes

SimulationDataPBF m_simulationData
unsigned int m_iterations
Real m_maxError
unsigned int m_minIterations
unsigned int m_maxIterations
int m_velocityUpdateMethod