.. _program_listing_file_SPlisHSPlasH_BoundaryModel_Koschier2017.h: Program Listing for File BoundaryModel_Koschier2017.h ===================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``SPlisHSPlasH/BoundaryModel_Koschier2017.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef __BoundaryModel_Koschier2017_h__ #define __BoundaryModel_Koschier2017_h__ #include "Common.h" #include #include "SPHKernels.h" #include "Discregrid/All" #include "BoundaryModel.h" namespace SPH { class TimeStep; class BoundaryModel_Koschier2017 : public BoundaryModel { public: BoundaryModel_Koschier2017(); virtual ~BoundaryModel_Koschier2017(); protected: // Density map Discregrid::DiscreteGrid *m_map; // values required for density maps std::vector> m_boundaryDensity; std::vector> m_boundaryDensityGradient; std::vector> m_boundaryXj; // maxmimal distance of a mesh point to the center of mass (required for CFL) Real m_maxDist; Real m_maxVel; public: void initModel(RigidBodyObject *rbo); virtual void reset(); Discregrid::DiscreteGrid *getMap() { return m_map; } void setMap(Discregrid::DiscreteGrid *map) { m_map = map; } Real getMaxDist() const { return m_maxDist; } void setMaxDist(Real val) { m_maxDist = val; } Real getMaxVel() const { return m_maxVel; } void setMaxVel(Real val) { m_maxVel = val; } FORCE_INLINE const Real& getBoundaryDensity(const unsigned int fluidIndex, const unsigned int i) const { return m_boundaryDensity[fluidIndex][i]; } FORCE_INLINE Real& getBoundaryDensity(const unsigned int fluidIndex, const unsigned int i) { return m_boundaryDensity[fluidIndex][i]; } FORCE_INLINE void setBoundaryDensity(const unsigned int fluidIndex, const unsigned int i, const Real &val) { m_boundaryDensity[fluidIndex][i] = val; } FORCE_INLINE Vector3r &getBoundaryDensityGradient(const unsigned int fluidIndex, const unsigned int i) { return m_boundaryDensityGradient[fluidIndex][i]; } FORCE_INLINE const Vector3r &getBoundaryDensityGradient(const unsigned int fluidIndex, const unsigned int i) const { return m_boundaryDensityGradient[fluidIndex][i]; } FORCE_INLINE void setBoundaryDensityGradient(const unsigned int fluidIndex, const unsigned int i, const Vector3r &val) { m_boundaryDensityGradient[fluidIndex][i] = val; } FORCE_INLINE Vector3r &getBoundaryXj(const unsigned int fluidIndex, const unsigned int i) { return m_boundaryXj[fluidIndex][i]; } FORCE_INLINE const Vector3r &getBoundaryXj(const unsigned int fluidIndex, const unsigned int i) const { return m_boundaryXj[fluidIndex][i]; } FORCE_INLINE void setBoundaryXj(const unsigned int fluidIndex, const unsigned int i, const Vector3r &val) { m_boundaryXj[fluidIndex][i] = val; } }; } #endif