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;
unsigned int m_iterations;
Real m_maxError;
unsigned int m_minIterations;
unsigned int m_maxIterations;
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);
virtual void initParameters();
public:
static std::string METHOD_NAME;
static int SOLVER_ITERATIONS;
static int MIN_ITERATIONS;
static int MAX_ITERATIONS;
static int MAX_ERROR;
TimeStepIISPH();
virtual ~TimeStepIISPH(void);
virtual void step();
virtual void reset();
virtual void resize();
virtual std::string getMethodName() { return METHOD_NAME; }
const SimulationDataIISPH &getSimulationData() { return m_simulationData; };
virtual int getNumIterations() { return m_iterations; }
};
}
#endif