Class SimulationDataPF

Class Documentation

class SimulationDataPF

Simulation data which is required by the method Projective Fluids introduced by Weiler, Koschier and Bender [WKB16].

References:

  • [WKB16] Marcel Weiler, Dan Koschier, and Jan Bender. Projective fluids. In Proceedings of the 9th International Conference on Motion in Games, MIG ‘16, 79-84. New York, NY, USA, 2016. ACM. URL: http://doi.acm.org/10.1145/2994258.2994282

Public Functions

SimulationDataPF()
virtual ~SimulationDataPF()
virtual void init()

Initialize the arrays containing the particle data.

virtual void cleanup()

Release the arrays containing the particle data.

virtual void reset()

Reset the particle data.

void performNeighborhoodSearchSort()

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

void emittedParticles(FluidModel *model, const unsigned int startIndex)
inline FORCE_INLINE const Vector3r getOldPosition (const unsigned int fluidIndex, const unsigned int i) const
inline FORCE_INLINE Vector3r & getOldPosition (const unsigned int fluidIndex, const unsigned int i)
inline FORCE_INLINE void setOldPosition (const unsigned int fluidIndex, const unsigned int i, const Vector3r p)
inline FORCE_INLINE const unsigned int getNumFluidNeighbors (const unsigned int fluidIndex, const unsigned int i) const
inline FORCE_INLINE unsigned int & getNumFluidNeighbors (const unsigned int fluidIndex, const unsigned int i)
inline FORCE_INLINE void setNumFluidNeighbors (const unsigned int fluidIndex, const unsigned int i, const unsigned int n)
inline FORCE_INLINE const Vector3r & getS (const unsigned int fluidIndex, const unsigned int i) const
inline FORCE_INLINE Vector3r & getS (const unsigned int fluidIndex, const unsigned int i)
inline FORCE_INLINE void setS (const unsigned int fluidIndex, const unsigned int i, const Vector3r &s)
inline FORCE_INLINE const Vector3r & getDiag (const unsigned int fluidIndex, const unsigned int i) const
inline FORCE_INLINE Vector3r & getDiag (const unsigned int fluidIndex, const unsigned int i)
inline FORCE_INLINE void setDiag (const unsigned int fluidIndex, const unsigned int i, const Vector3r &s)
inline FORCE_INLINE const unsigned int & getParticleOffset (const unsigned int fluidIndex) const

Protected Attributes

std::vector<std::vector<Vector3r>> m_old_position

particle position from last timestep

std::vector<std::vector<unsigned int>> m_num_fluid_neighbors

number of neighbors that are fluid particles

std::vector<std::vector<Vector3r>> m_s

positions predicted from momentum

std::vector<std::vector<Vector3r>> m_mat_diag

diagonal of system matrix, used by preconditioner

std::vector<unsigned int> m_particleOffset