.. _program_listing_file_SPlisHSPlasH_DFSPH_TimeStepDFSPH.h: Program Listing for File TimeStepDFSPH.h ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``SPlisHSPlasH/DFSPH/TimeStepDFSPH.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef __TimeStepDFSPH_h__ #define __TimeStepDFSPH_h__ #include "SPlisHSPlasH/Common.h" #include "SPlisHSPlasH/TimeStep.h" #include "SimulationDataDFSPH.h" #include "SPlisHSPlasH/SPHKernels.h" #define USE_WARMSTART #define USE_WARMSTART_V namespace SPH { class SimulationDataDFSPH; class TimeStepDFSPH : public TimeStep { protected: SimulationDataDFSPH m_simulationData; const Real m_eps = static_cast(1.0e-5); bool m_enableDivergenceSolver; unsigned int m_iterationsV; Real m_maxErrorV; unsigned int m_maxIterationsV; void computeDFSPHFactor(const unsigned int fluidModelIndex); void pressureSolve(); void pressureSolveIteration(const unsigned int fluidModelIndex, Real &avg_density_err); void divergenceSolve(); void divergenceSolveIteration(const unsigned int fluidModelIndex, Real &avg_density_err); void computeDensityAdv(const unsigned int fluidModelIndex, const unsigned int index, const Real h, const Real density0); void computeDensityChange(const unsigned int fluidModelIndex, const unsigned int index, const Real h); void computePressureAccel(const unsigned int fluidModelIndex, const unsigned int i, const Real density0, std::vector>& pressure_rho2, const bool applyBoundaryForces = false); Real compute_aij_pj(const unsigned int fluidModelIndex, const unsigned int i); virtual void performNeighborhoodSearchSort(); virtual void emittedParticles(FluidModel *model, const unsigned int startIndex); virtual void initParameters(); public: static int SOLVER_ITERATIONS_V; static int MAX_ITERATIONS_V; static int MAX_ERROR_V; static int USE_DIVERGENCE_SOLVER; TimeStepDFSPH(); virtual ~TimeStepDFSPH(void); virtual void step(); virtual void reset(); virtual void resize(); }; } #endif