Program Listing for File TimeStepIISPH.h

Return to documentation for file (SPlisHSPlasH/IISPH/TimeStepIISPH.h)

#ifndef __TimeStepIISPH_h__
#define __TimeStepIISPH_h__

#include "SPlisHSPlasH/Common.h"
#include "SPlisHSPlasH/TimeStep.h"
#include "SimulationDataIISPH.h"
#include "SPlisHSPlasH/SPHKernels.h"

namespace SPH
{
    class SimulationDataIISPH;

    class TimeStepIISPH : public TimeStep
    {
    protected:
        SimulationDataIISPH m_simulationData;

        void predictAdvection(const unsigned int fluidModelIndex);
        void pressureSolve();
        void pressureSolveIteration(const unsigned int fluidModelIndex, Real &avg_density_err);
        void integration(const unsigned int fluidModelIndex);

        void computePressureAccels(const unsigned int fluidModelIndex);

        virtual void performNeighborhoodSearchSort();

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

    public:
        TimeStepIISPH();
        virtual ~TimeStepIISPH(void);

        virtual void step();
        virtual void reset();
        virtual void resize();

        const SimulationDataIISPH &getSimulationData() { return m_simulationData; };
    };
}

#endif