Generic dynamically allocated resizable storage.
uint32_t Size
Integral type used to index arrays (by default).
double Float
Precision used withing the code. Use Float instead of float or double where precision is important.
#define INLINE
Macros for conditional compilation based on selected compiler.
#define NAMESPACE_SPH_END
Basic vector algebra. Computations are accelerated using SIMD.
virtual void stepImpl(IScheduler &scheduler, ISolver &solver, Statistics &stats) override
BulirschStoer(const SharedPtr< Storage > &storage, const RunSettings &settings)
Simple Euler first-order timestepping.
virtual void stepImpl(IScheduler &scheduler, ISolver &solver, Statistics &stats) override
EulerExplicit(const SharedPtr< Storage > &storage, const RunSettings &settings)
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Base class for all solvers.
Base object providing integration in time for all quantities.
Float timeStep
Current time step.
SharedPtr< Storage > storage
Main storage holding all the particles in the run.
virtual void stepImpl(IScheduler &scheduler, ISolver &solver, Statistics &stats)=0
AutoPtr< ITimeStepCriterion > criterion
Criterion used to compute the time step.
~ITimeStepping() override
INLINE Float getTimeStep() const
Float maxTimeStep
Maximal allowed time step.
void step(IScheduler &scheduler, ISolver &solver, Statistics &stats)
ITimeStepping(const SharedPtr< Storage > &storage, const RunSettings &settings)
Constructs the timestepping, using timestep criteria from parameters in settings.
LeapFrog(const SharedPtr< Storage > &storage, const RunSettings &settings)
virtual void stepImpl(IScheduler &scheduler, ISolver &solver, Statistics &stats) override
ModifiedMidpointMethod(const SharedPtr< Storage > &storage, const RunSettings &settings)
virtual void stepImpl(IScheduler &scheduler, ISolver &solver, Statistics &stats) override
Predictor-corrector second-order timestepping.
virtual void stepImpl(IScheduler &scheduler, ISolver &solver, Statistics &stats) override
void makePredictions(IScheduler &scheduler)
void makeCorrections(IScheduler &scheduler)
PredictorCorrector(const SharedPtr< Storage > &storage, const RunSettings &settings)
~PredictorCorrector() override
virtual void stepImpl(IScheduler &scheduler, ISolver &solver, Statistics &stats) override
void integrateAndAdvance(ISolver &solver, Statistics &stats, Storage &k, const Float m, const Float n)
RungeKutta(const SharedPtr< Storage > &storage, const RunSettings &settings)
Object holding various statistics about current run.
Container storing all quantities used within the simulations.
Base class for all polymorphic objects.