42 for (
auto& a : accelerations) {
43 a->evalAcceleration(idx, neighs, grads, dv);
86 virtual void sanityCheck(
const Storage& storage)
const override;
SPH solver with asymmetric particle evaluation.
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 NAMESPACE_SPH_END
Statistics gathered and periodically displayed during the run.
BasicVector< Float > Vector
Derivative holder, splitting the registered derivatives into accelerations and the rest.
virtual void require(AutoPtr< IDerivative > &&derivative) override
Adds derivative if not already present.
void evalAccelerations(const Size idx, ArrayView< const Size > neighs, ArrayView< const Vector > grads, Array< Vector > &dv) const
Generic dynamically allocated resizable storage.
void fill(const T &t)
Sets all elements of the array to given value.
Wrapper of pointer that deletes the resource from destructor.
Container holding derivatives and the storage they accumulate to.
virtual void require(AutoPtr< IDerivative > &&derivative)
Adds derivative if not already present.
See Owen 2009: A compatibly differenced total energy conserving form of SPH.
EnergyConservingSolver(IScheduler &scheduler, const RunSettings &settings, const EquationHolder &eqs)
Container holding equation terms.
Extension of a generic SPH solver, including gravitational interactions of particles.
Base class for asymmetric SPH solvers.
IScheduler & scheduler
Scheduler used to parallelize the solver.
virtual void initialize(const Storage &storage)=0
virtual void compute(const Size i, ArrayView< const Size > neighs, ArrayView< const Float > e, ArrayView< Float > f) const =0
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Non-owning wrapper of pointer.
Object holding various statistics about current run.
Container storing all quantities used within the simulations.
Base class for all polymorphic objects.