Class FluidModel

Inheritance Relationships

Base Type

  • public GenParam::ParameterObject

Class Documentation

class FluidModel : public GenParam::ParameterObject

The fluid model stores the particle and simulation information.

Public Functions

FluidModel()
FluidModel(const FluidModel&) = delete
FluidModel &operator=(const FluidModel&) = delete
virtual ~FluidModel()
void init()
void deferredInit()

This function is called after the simulation scene is loaded and all parameters are initialized. While reading a scene file several parameters can change. The deferred init function should initialize all values which depend on these parameters.

inline std::string getId() const
inline FORCE_INLINE Real getDensity0 () const
void setDensity0(const Real v)
inline unsigned int getPointSetIndex() const
void addField(const FieldDescription &field)
inline const std::vector<FieldDescription> &getFields()
inline const FieldDescription &getField(const unsigned int i)
const FieldDescription &getField(const std::string &name)
inline const unsigned int numberOfFields()
void removeFieldByName(const std::string &fieldName)
void setNumActiveParticles(const unsigned int num)
inline unsigned int numberOfParticles() const
inline EmitterSystem *getEmitterSystem()
virtual void reset()
void performNeighborhoodSearchSort()
void initModel(const std::string &id, const unsigned int nFluidParticles, Vector3r *fluidParticles, Vector3r *fluidVelocities, unsigned int *fluidObjectIds, const unsigned int nMaxEmitterParticles)
inline const unsigned int numParticles() const
unsigned int numActiveParticles() const
inline unsigned int getNumActiveParticles0() const
inline void setNumActiveParticles0(unsigned int val)
void emittedParticles(const unsigned int startIndex)
inline unsigned int getSurfaceTensionMethod() const
void setSurfaceTensionMethod(const std::string &val)
void setSurfaceTensionMethod(const unsigned int val)
inline unsigned int getViscosityMethod() const
void setViscosityMethod(const std::string &val)
void setViscosityMethod(const unsigned int val)
inline unsigned int getVorticityMethod() const
void setVorticityMethod(const std::string &val)
void setVorticityMethod(const unsigned int val)
inline unsigned int getDragMethod() const
void setDragMethod(const std::string &val)
void setDragMethod(const unsigned int val)
inline unsigned int getElasticityMethod() const
void setElasticityMethod(const std::string &val)
void setElasticityMethod(const unsigned int val)
inline NonPressureForceBase *getSurfaceTensionBase()
inline NonPressureForceBase *getViscosityBase()
inline NonPressureForceBase *getVorticityBase()
inline NonPressureForceBase *getDragBase()
inline NonPressureForceBase *getElasticityBase()
inline XSPH *getXSPH()
void setDragMethodChangedCallback(std::function<void()> const &callBackFct)
void setSurfaceMethodChangedCallback(std::function<void()> const &callBackFct)
void setViscosityMethodChangedCallback(std::function<void()> const &callBackFct)
void setVorticityMethodChangedCallback(std::function<void()> const &callBackFct)
void setElasticityMethodChangedCallback(std::function<void()> const &callBackFct)
void computeSurfaceTension()
void computeViscosity()
void computeVorticity()
void computeDragForce()
void computeElasticity()
void computeXSPH()
void saveState(BinaryFileWriter &binWriter)
void loadState(BinaryFileReader &binReader)
inline FORCE_INLINE Vector3r & getPosition0 (const unsigned int i)
inline FORCE_INLINE const Vector3r & getPosition0 (const unsigned int i) const
inline FORCE_INLINE void setPosition0 (const unsigned int i, const Vector3r &pos)
inline FORCE_INLINE Vector3r & getPosition (const unsigned int i)
inline FORCE_INLINE const Vector3r & getPosition (const unsigned int i) const
inline FORCE_INLINE void setPosition (const unsigned int i, const Vector3r &pos)
inline FORCE_INLINE Vector3r & getVelocity (const unsigned int i)
inline FORCE_INLINE const Vector3r & getVelocity (const unsigned int i) const
inline FORCE_INLINE void setVelocity (const unsigned int i, const Vector3r &vel)
inline FORCE_INLINE Vector3r & getVelocity0 (const unsigned int i)
inline FORCE_INLINE const Vector3r & getVelocity0 (const unsigned int i) const
inline FORCE_INLINE void setVelocity0 (const unsigned int i, const Vector3r &vel)
inline FORCE_INLINE Vector3r & getAcceleration (const unsigned int i)
inline FORCE_INLINE const Vector3r & getAcceleration (const unsigned int i) const
inline FORCE_INLINE void setAcceleration (const unsigned int i, const Vector3r &accel)
inline FORCE_INLINE const Real getMass (const unsigned int i) const
inline FORCE_INLINE Real & getMass (const unsigned int i)
inline FORCE_INLINE void setMass (const unsigned int i, const Real mass)
inline FORCE_INLINE const Real & getDensity (const unsigned int i) const
inline FORCE_INLINE Real & getDensity (const unsigned int i)
inline FORCE_INLINE void setDensity (const unsigned int i, const Real &val)
inline FORCE_INLINE unsigned int & getParticleId (const unsigned int i)
inline FORCE_INLINE const unsigned int & getParticleId (const unsigned int i) const
inline FORCE_INLINE unsigned int & getObjectId (const unsigned int i)
inline FORCE_INLINE const unsigned int & getObjectId (const unsigned int i) const
inline FORCE_INLINE void setObjectId (const unsigned int i, const unsigned int val)
inline FORCE_INLINE const ParticleState & getParticleState (const unsigned int i) const
inline FORCE_INLINE ParticleState & getParticleState (const unsigned int i)
inline FORCE_INLINE void setParticleState (const unsigned int i, const ParticleState &val)
inline FORCE_INLINE const Real getVolume (const unsigned int i) const
inline FORCE_INLINE Real & getVolume (const unsigned int i)

Public Static Attributes

static int NUM_PARTICLES = -1
static int NUM_REUSED_PARTICLES = -1
static int DENSITY0 = -1
static int DRAG_METHOD = -1
static int SURFACE_TENSION_METHOD = -1
static int VISCOSITY_METHOD = -1
static int VORTICITY_METHOD = -1
static int ELASTICITY_METHOD = -1

Protected Functions

virtual void initParameters()
void initMasses()
virtual void resizeFluidParticles(const unsigned int newSize)

Resize the arrays containing the particle data.

virtual void releaseFluidParticles()

Release the arrays containing the particle data.

Protected Attributes

std::string m_id
EmitterSystem *m_emitterSystem
std::vector<Real> m_masses
std::vector<Vector3r> m_a
std::vector<Vector3r> m_v0
std::vector<Vector3r> m_x0
std::vector<Vector3r> m_x
std::vector<Vector3r> m_v
std::vector<Real> m_density
std::vector<unsigned int> m_particleId
std::vector<unsigned int> m_objectId
std::vector<unsigned int> m_objectId0
std::vector<ParticleState> m_particleState
Real m_V
XSPH *m_xsph
unsigned int m_surfaceTensionMethod
NonPressureForceBase *m_surfaceTension
unsigned int m_viscosityMethod
NonPressureForceBase *m_viscosity
unsigned int m_vorticityMethod
NonPressureForceBase *m_vorticity
unsigned int m_dragMethod
NonPressureForceBase *m_drag
unsigned int m_elasticityMethod
NonPressureForceBase *m_elasticity
std::vector<FieldDescription> m_fields
std::function<void()> m_dragMethodChanged
std::function<void()> m_surfaceTensionMethodChanged
std::function<void()> m_viscosityMethodChanged
std::function<void()> m_vorticityMethodChanged
std::function<void()> m_elasticityMethodChanged
Real m_density0
unsigned int m_pointSetIndex
unsigned int m_numActiveParticles
unsigned int m_numActiveParticles0