Program Listing for File TimeStepPBF.h

Return to documentation for file (SPlisHSPlasH/PBF/TimeStepPBF.h)

#ifndef __TimeStepPBF_h__
#define __TimeStepPBF_h__

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

namespace SPH
{
    class SimulationDataPBF;


    class TimeStepPBF : public TimeStep
    {
    protected:
        SimulationDataPBF m_simulationData;
        int m_velocityUpdateMethod;

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

        virtual void performNeighborhoodSearchSort();

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

        virtual void initParameters();

    public:
        static int VELOCITY_UPDATE_METHOD;
        static int ENUM_PBF_FIRST_ORDER;
        static int ENUM_PBF_SECOND_ORDER;

        TimeStepPBF();
        virtual ~TimeStepPBF(void);

        virtual void step();

        virtual void reset();
        virtual void resize();
    };
}

#endif