Class Viscosity_Bender2017

Inheritance Relationships

Base Type

Class Documentation

class Viscosity_Bender2017 : public SPH::NonPressureForceBase

This class implements the implicit simulation method for viscous fluids introduced by Bender and Koschier [BK17].

References:

  • [BK17] Jan Bender and Dan Koschier. Divergence-free SPH for incompressible and viscous fluids. IEEE Transactions on Visualization and Computer Graphics, 23(3):1193-1206, 2017. URL: http://dx.doi.org/10.1109/TVCG.2016.2578335

Public Functions

Viscosity_Bender2017(FluidModel *model)
virtual ~Viscosity_Bender2017(void)
inline virtual std::string getMethodName()

returns the name of the method

virtual void step()
virtual void reset()
virtual void performNeighborhoodSearchSort()
void computeTargetStrainRate()
void computeViscosityFactor()
inline FORCE_INLINE void viscoGradientMultTransposeRightOpt (const Eigen::Matrix< Real, 6, 3 > &a, const Eigen::Matrix< Real, 6, 3 > &b, Matrix6r &c)

Matrix product

inline FORCE_INLINE const Vector6r & getTargetStrainRate (const unsigned int i) const
inline FORCE_INLINE Vector6r & getTargetStrainRate (const unsigned int i)
inline FORCE_INLINE void setTargetStrainRate (const unsigned int i, const Vector6r &val)
inline FORCE_INLINE const Matrix6r & getViscosityFactor (const unsigned int i) const
inline FORCE_INLINE Matrix6r & getViscosityFactor (const unsigned int i)
inline FORCE_INLINE void setViscosityFactor (const unsigned int i, const Matrix6r &val)
inline FORCE_INLINE const Vector6r & getViscosityLambda (const unsigned int i) const
inline FORCE_INLINE Vector6r & getViscosityLambda (const unsigned int i)
inline FORCE_INLINE void setViscosityLambda (const unsigned int i, const Vector6r &val)

Public Static Functions

static inline NonPressureForceBase *creator(FluidModel *model)

Public Static Attributes

static std::string METHOD_NAME = "Bender and Koschier 2017"
static int VISCOSITY_COEFFICIENT = -1
static int ITERATIONS = -1
static int MAX_ITERATIONS = -1
static int MAX_ERROR = -1

Protected Functions

virtual void initParameters()

Protected Attributes

std::vector<Vector6r> m_targetStrainRate
std::vector<Matrix6r> m_viscosityFactor
std::vector<Vector6r> m_viscosityLambda
Real m_viscosity
unsigned int m_iterations
unsigned int m_maxIter
Real m_maxError