Program Listing for File SimulationDataDFSPH.h

Return to documentation for file (SPlisHSPlasH/DFSPH/SimulationDataDFSPH.h)

#ifndef __SimulationDataDFSPH_h__
#define __SimulationDataDFSPH_h__

#include "SPlisHSPlasH/Common.h"
#include <vector>
#include "SPlisHSPlasH/FluidModel.h"

namespace SPH
{
    class SimulationDataDFSPH
    {
        public:
            SimulationDataDFSPH();
            virtual ~SimulationDataDFSPH();

        protected:
            std::vector<std::vector<Real>> m_factor;
            std::vector<std::vector<Real>> m_kappa;
            std::vector<std::vector<Real>> m_kappaV;
            std::vector<std::vector<Real>> m_density_adv;

        public:

            virtual void init();

            virtual void cleanup();

            virtual void reset();

            void performNeighborhoodSearchSort();
            void emittedParticles(FluidModel *model, const unsigned int startIndex);

            FORCE_INLINE const Real getFactor(const unsigned int fluidIndex, const unsigned int i) const
            {
                return m_factor[fluidIndex][i];
            }

            FORCE_INLINE Real& getFactor(const unsigned int fluidIndex, const unsigned int i)
            {
                return m_factor[fluidIndex][i];
            }

            FORCE_INLINE void setFactor(const unsigned int fluidIndex, const unsigned int i, const Real p)
            {
                m_factor[fluidIndex][i] = p;
            }

            FORCE_INLINE const Real getKappa(const unsigned int fluidIndex, const unsigned int i) const
            {
                return m_kappa[fluidIndex][i];
            }

            FORCE_INLINE Real& getKappa(const unsigned int fluidIndex, const unsigned int i)
            {
                return m_kappa[fluidIndex][i];
            }

            FORCE_INLINE void setKappa(const unsigned int fluidIndex, const unsigned int i, const Real p)
            {
                m_kappa[fluidIndex][i] = p;
            }

            FORCE_INLINE const Real getKappaV(const unsigned int fluidIndex, const unsigned int i) const
            {
                return m_kappaV[fluidIndex][i];
            }

            FORCE_INLINE Real& getKappaV(const unsigned int fluidIndex, const unsigned int i)
            {
                return m_kappaV[fluidIndex][i];
            }

            FORCE_INLINE void setKappaV(const unsigned int fluidIndex, const unsigned int i, const Real p)
            {
                m_kappaV[fluidIndex][i] = p;
            }

            FORCE_INLINE const Real getDensityAdv(const unsigned int fluidIndex, const unsigned int i) const
            {
                return m_density_adv[fluidIndex][i];
            }

            FORCE_INLINE Real& getDensityAdv(const unsigned int fluidIndex, const unsigned int i)
            {
                return m_density_adv[fluidIndex][i];
            }

            FORCE_INLINE void setDensityAdv(const unsigned int fluidIndex, const unsigned int i, const Real d)
            {
                m_density_adv[fluidIndex][i] = d;
            }
    };
}

#endif