Class Viscosity_Peer2015

Inheritance Relationships

Base Type

Class Documentation

class Viscosity_Peer2015 : public SPH::NonPressureForceBase

This class implements the implicit simulation method for viscous fluids introduced by Peer et al. [PICT15].

References:

  • [PICT15] A. Peer, M. Ihmsen, J. Cornelis, and M. Teschner. An Implicit Viscosity Formulation for SPH Fluids. ACM Trans. Graph., 34(4):1-10, 2015. URL: http://doi.acm.org/10.1145/2766925

Public Functions

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

returns the name of the method

virtual void step()
virtual void reset()
virtual void performNeighborhoodSearchSort()
inline FORCE_INLINE const Matrix3r & getTargetNablaV (const unsigned int i) const
inline FORCE_INLINE Matrix3r & getTargetNablaV (const unsigned int i)
inline FORCE_INLINE void setTargetNablaV (const unsigned int i, const Matrix3r &val)

Public Static Functions

static inline NonPressureForceBase *creator(FluidModel *model)
static void matrixVecProd(const Real *vec, Real *result, void *userData)
static FORCE_INLINE void diagonalMatrixElement (const unsigned int row, Real &result, void *userData)

Public Static Attributes

static std::string METHOD_NAME = "Peer et al. 2015"
static int VISCOSITY_COEFFICIENT = -1
static int ITERATIONS = -1
static int MAX_ITERATIONS = -1
static int MAX_ERROR = -1

Protected Types

typedef Eigen::ConjugateGradient<MatrixReplacement, Eigen::Lower | Eigen::Upper, JacobiPreconditioner1D> Solver

Protected Functions

virtual void initParameters()
void computeDensities()

Protected Attributes

std::vector<Real> m_density
std::vector<Matrix3r> m_targetNablaV
Solver m_solver
Real m_viscosity
unsigned int m_iterations
unsigned int m_maxIter
Real m_maxError