Class FluidModel

Inheritance Relationships

Base Type

  • public ParameterObject

Class Documentation

class SPH::FluidModel : public ParameterObject

The fluid model stores the particle and simulation information.

Public Functions

FluidModel()
FluidModel(const FluidModel&) = delete
FluidModel &operator=(const FluidModel&) = delete
~FluidModel()
void init()
std::string getId() const
FORCE_INLINE Real getDensity0 () const
void setDensity0(const Real v)
unsigned int getPointSetIndex() const
void addField(const FieldDescription &field)
const std::vector<FieldDescription> &getFields()
const FieldDescription &getField(const unsigned int i)
const FieldDescription &getField(const std::string &name)
const unsigned int numberOfFields()
void removeFieldByName(const std::string &fieldName)
void setNumActiveParticles(const unsigned int num)
unsigned int numberOfParticles() const
EmitterSystem *getEmitterSystem()
void reset()
void performNeighborhoodSearchSort()
void initModel(const std::string &id, const unsigned int nFluidParticles, Vector3r *fluidParticles, Vector3r *fluidVelocities, const unsigned int nMaxEmitterParticles)
const unsigned int numParticles() const
unsigned int numActiveParticles() const
unsigned int getNumActiveParticles0() const
void setNumActiveParticles0(unsigned int val)
void emittedParticles(const unsigned int startIndex)
int getSurfaceTensionMethod() const
void setSurfaceTensionMethod(const int val)
int getViscosityMethod() const
void setViscosityMethod(const int val)
int getVorticityMethod() const
void setVorticityMethod(const int val)
int getDragMethod() const
void setDragMethod(const int val)
int getElasticityMethod() const
void setElasticityMethod(const int val)
SurfaceTensionBase *getSurfaceTensionBase()
ViscosityBase *getViscosityBase()
VorticityBase *getVorticityBase()
DragBase *getDragBase()
ElasticityBase *getElasticityBase()
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 saveState(BinaryFileWriter &binWriter)
void loadState(BinaryFileReader &binReader)
FORCE_INLINE Vector3r & getPosition0 (const unsigned int i)
FORCE_INLINE const Vector3r & getPosition0 (const unsigned int i) const
FORCE_INLINE void setPosition0 (const unsigned int i, const Vector3r &pos)
FORCE_INLINE Vector3r & getPosition (const unsigned int i)
FORCE_INLINE const Vector3r & getPosition (const unsigned int i) const
FORCE_INLINE void setPosition (const unsigned int i, const Vector3r &pos)
FORCE_INLINE Vector3r & getVelocity (const unsigned int i)
FORCE_INLINE const Vector3r & getVelocity (const unsigned int i) const
FORCE_INLINE void setVelocity (const unsigned int i, const Vector3r &vel)
FORCE_INLINE Vector3r & getVelocity0 (const unsigned int i)
FORCE_INLINE const Vector3r & getVelocity0 (const unsigned int i) const
FORCE_INLINE void setVelocity0 (const unsigned int i, const Vector3r &vel)
FORCE_INLINE Vector3r & getAcceleration (const unsigned int i)
FORCE_INLINE const Vector3r & getAcceleration (const unsigned int i) const
FORCE_INLINE void setAcceleration (const unsigned int i, const Vector3r &accel)
FORCE_INLINE const Real getMass (const unsigned int i) const
FORCE_INLINE Real & getMass (const unsigned int i)
FORCE_INLINE void setMass (const unsigned int i, const Real mass)
FORCE_INLINE const Real & getDensity (const unsigned int i) const
FORCE_INLINE Real & getDensity (const unsigned int i)
FORCE_INLINE void setDensity (const unsigned int i, const Real &val)
FORCE_INLINE unsigned int & getParticleId (const unsigned int i)
FORCE_INLINE const unsigned int & getParticleId (const unsigned int i) const
FORCE_INLINE const ParticleState & getParticleState (const unsigned int i) const
FORCE_INLINE ParticleState & getParticleState (const unsigned int i)
FORCE_INLINE void setParticleState (const unsigned int i, const ParticleState &val)
FORCE_INLINE const Real getVolume (const unsigned int i) const
FORCE_INLINE Real & getVolume (const unsigned int i)

Public Static Attributes

int NUM_PARTICLES = -1
int NUM_REUSED_PARTICLES = -1
int DENSITY0 = -1
int DRAG_METHOD = -1
int SURFACE_TENSION_METHOD = -1
int VISCOSITY_METHOD = -1
int VORTICITY_METHOD = -1
int ELASTICITY_METHOD = -1
int ENUM_DRAG_NONE = -1
int ENUM_DRAG_MACKLIN2014 = -1
int ENUM_DRAG_GISSLER2017 = -1
int ENUM_SURFACETENSION_NONE = -1
int ENUM_SURFACETENSION_BECKER2007 = -1
int ENUM_SURFACETENSION_AKINCI2013 = -1
int ENUM_SURFACETENSION_HE2014 = -1
int ENUM_VISCOSITY_NONE = -1
int ENUM_VISCOSITY_STANDARD = -1
int ENUM_VISCOSITY_XSPH = -1
int ENUM_VISCOSITY_BENDER2017 = -1
int ENUM_VISCOSITY_PEER2015 = -1
int ENUM_VISCOSITY_PEER2016 = -1
int ENUM_VISCOSITY_TAKAHASHI2015 = -1
int ENUM_VISCOSITY_WEILER2018 = -1
int ENUM_VORTICITY_NONE = -1
int ENUM_VORTICITY_MICROPOLAR = -1
int ENUM_VORTICITY_VC = -1
int ENUM_ELASTICITY_NONE = -1
int ENUM_ELASTICITY_BECKER2009 = -1
int ENUM_ELASTICITY_PEER2018 = -1

Protected Functions

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

Resize the arrays containing the particle data.

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<ParticleState> m_particleState
Real m_V
SurfaceTensionMethods m_surfaceTensionMethod
SurfaceTensionBase *m_surfaceTension
ViscosityMethods m_viscosityMethod
ViscosityBase *m_viscosity
VorticityMethods m_vorticityMethod
VorticityBase *m_vorticity
DragMethods m_dragMethod
DragBase *m_drag
ElasticityMethods m_elasticityMethod
ElasticityBase *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