SPH
GravitySolver.h
Go to the documentation of this file.
1 #pragma once
2 
7 
8 #include "timestepping/ISolver.h"
9 
11 
12 class IGravity;
13 class IScheduler;
14 class EquationHolder;
15 class IBoundaryCondition;
16 class Accumulated;
17 
21 template <typename TSphSolver>
22 class GravitySolver : public TSphSolver {
23 private:
25  AutoPtr<IGravity> gravity;
26 
27 public:
29  GravitySolver(IScheduler& scheduler, const RunSettings& settings, const EquationHolder& equations);
30 
32  GravitySolver(IScheduler& scheduler,
33  const RunSettings& settings,
34  const EquationHolder& equations,
36 
39  GravitySolver(IScheduler& scheduler,
40  const RunSettings& settings,
41  const EquationHolder& equations,
43  AutoPtr<IGravity>&& gravity);
44 
46 
47 protected:
48  virtual void loop(Storage& storage, Statistics& stats) override;
49 
50  virtual void sanityCheck(const Storage& storage) const override;
51 
53 
56 };
57 
NAMESPACE_SPH_BEGIN
Definition: BarnesHut.cpp:13
Base interface for all solvers.
#define NAMESPACE_SPH_END
Definition: Object.h:12
Storage for accumulating derivatives.
Definition: Accumulated.h:30
Object providing safe access to continuous memory of data.
Definition: ArrayView.h:17
Container holding equation terms.
Definition: EquationTerm.h:238
Extension of a generic SPH solver, including gravitational interactions of particles.
Definition: GravitySolver.h:22
virtual void sanityCheck(const Storage &storage) const override
Accumulated & getAccumulated()
Returns the accumulated storage, either thread-local or shared one based on SPH solver.
GravitySolver(IScheduler &scheduler, const RunSettings &settings, const EquationHolder &equations)
Creates the gravity solver, used implementation of gravity given by settings parameters.
virtual RawPtr< const IBasicFinder > getFinder(ArrayView< const Vector > r) override
virtual void loop(Storage &storage, Statistics &stats) override
Base object for boundary conditions.
Definition: Boundary.h:29
Interface for computing gravitational interactions of particles.
Definition: IGravity.h:14
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Definition: Scheduler.h:27
Non-owning wrapper of pointer.
Definition: RawPtr.h:19
Object holding various statistics about current run.
Definition: Statistics.h:22
Container storing all quantities used within the simulations.
Definition: Storage.h:230