Spatial derivatives to be computed by SPH discretization.
Right-hand side term of SPH equations.
Base interface for all solvers.
#define NAMESPACE_SPH_END
Template for thread-local storage.
Object providing safe access to continuous memory of data.
Container holding derivatives and the storage they accumulate to.
Container holding equation terms.
Base object for boundary conditions.
Material settings and functions specific for one material.
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Base class for all solvers.
Extension of IBasicFinder, allowing to search only particles with lower rank in smoothing length.
Non-owning wrapper of pointer.
Object holding various statistics about current run.
Container storing all quantities used within the simulations.
Basic solver for integration of SPH equations.
virtual void create(Storage &storage, IMaterial &material) const override
Initializes all quantities needed by the solver in the storage.
LutKernel< Dim > kernel
Selected SPH kernel.
IScheduler & scheduler
Scheduler to parallelize the solver.
virtual void sanityCheck(const Storage &storage) const
Used to check internal consistency of the solver.
ThreadLocal< ThreadData > threadData
Thread-local structure caching all buffers needed to compute derivatives.
virtual void afterLoop(Storage &storage, Statistics &stats)
AutoPtr< ISymmetricFinder > finder
Structure used to search for neighbouring particles.
EquationHolder equations
Holds all equation terms evaluated by the solver.
virtual RawPtr< const IBasicFinder > getFinder(ArrayView< const Vector > r)
virtual void integrate(Storage &storage, Statistics &stats) override
Computes derivatives of all time-dependent quantities.
SymmetricSolver(IScheduler &scheduler, const RunSettings &settings, const EquationHolder &eqs, AutoPtr< IBoundaryCondition > &&bc)
Creates a symmetric solver, given the list of equations to solve.
virtual void beforeLoop(Storage &storage, Statistics &stats)
virtual void loop(Storage &storage, Statistics &stats)
AutoPtr< IBoundaryCondition > bc
Boundary condition used by the solver.
Array< NeighbourRecord > neighs
Cached array of neighbours, to avoid allocation every step.
Array< Size > idxs
Indices of real neighbours.
Array< Vector > grads
Cached array of gradients.
DerivativeHolder derivatives
Holds all derivatives this thread computes.