Class BoundaryModel_Akinci2012

Inheritance Relationships

Base Type

Class Documentation

class BoundaryModel_Akinci2012 : public SPH::BoundaryModel

The boundary model stores the information required for boundary handling using the approach of Akinci et al. 2012 [AIA+12].

References:

  • [AIA+12] Nadir Akinci, Markus Ihmsen, Gizem Akinci, Barbara Solenthaler, and Matthias Teschner. Versatile rigid-fluid coupling for incompressible SPH. ACM Trans. Graph., 31(4):62:1-62:8, July 2012. URL: http://doi.acm.org/10.1145/2185520.2185558

Public Functions

BoundaryModel_Akinci2012()
virtual ~BoundaryModel_Akinci2012()
inline unsigned int numberOfParticles() const
inline unsigned int getPointSetIndex() const
inline bool isSorted() const
void computeBoundaryVolume(const NeighborhoodSearchWrapper *ns, const unsigned int pointSetIndex)

Compute value pseudo volume for boundary particles (see Akinci et al. “Versatile rigid - fluid coupling for incompressible SPH”, Siggraph 2012).

Note that since typically a local neighborhood search is used, the pointSetIndex is not equal to the global m_pointSetIndex.

void resize(const unsigned int numBoundaryParticles)
virtual void reset()
virtual void performNeighborhoodSearchSort()
virtual void saveState(BinaryFileWriter &binWriter)
virtual void loadState(BinaryFileReader &binReader)
void initModel(RigidBodyObject *rbo, const unsigned int numBoundaryParticles, Vector3r *boundaryParticles)
virtual 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 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 const Real & getVolume (const unsigned int i) const
inline FORCE_INLINE Real & getVolume (const unsigned int i)
inline FORCE_INLINE void setVolume (const unsigned int i, const Real &val)

Protected Attributes

bool m_sorted
unsigned int m_pointSetIndex
std::vector<Vector3r> m_x0
std::vector<Vector3r> m_x
std::vector<Vector3r> m_v
std::vector<Real> m_V