Program Listing for File SurfaceTension_He2014.h
↰ Return to documentation for file (SPlisHSPlasH/SurfaceTension/SurfaceTension_He2014.h)
#ifndef __SurfaceTension_He2014_h__
#define __SurfaceTension_He2014_h__
#include "SPlisHSPlasH/Common.h"
#include "SPlisHSPlasH/FluidModel.h"
#include "SPlisHSPlasH/NonPressureForceBase.h"
namespace SPH
{
class SurfaceTension_He2014 : public NonPressureForceBase
{
protected:
Real m_surfaceTension;
Real m_surfaceTensionBoundary;
std::vector<Real> m_color;
std::vector<Real> m_gradC2;
virtual void initParameters();
public:
static std::string METHOD_NAME;
static int SURFACE_TENSION;
static int SURFACE_TENSION_BOUNDARY;
SurfaceTension_He2014(FluidModel *model);
virtual ~SurfaceTension_He2014(void);
static NonPressureForceBase* creator(FluidModel* model) { return new SurfaceTension_He2014(model); }
virtual std::string getMethodName() { return METHOD_NAME; }
virtual void step();
virtual void reset();
virtual void performNeighborhoodSearchSort();
FORCE_INLINE const Real getColor(const unsigned int i) const
{
return m_color[i];
}
FORCE_INLINE Real& getColor(const unsigned int i)
{
return m_color[i];
}
FORCE_INLINE void setColor(const unsigned int i, const Real p)
{
m_color[i] = p;
}
FORCE_INLINE const Real getGradC2(const unsigned int i) const
{
return m_gradC2[i];
}
FORCE_INLINE Real& getGradC2(const unsigned int i)
{
return m_gradC2[i];
}
FORCE_INLINE void setGradC2(const unsigned int i, const Real p)
{
m_gradC2[i] = p;
}
};
}
#endif