SPH
SummationSolver.h
Go to the documentation of this file.
1 #pragma once
2 
7 
9 
11 
16 template <Size Dim>
17 class SummationSolver : public SymmetricSolver<Dim> {
18 private:
19  Size maxIteration;
20  Float targetDensityDifference;
21  bool adaptiveH;
22  Array<Float> rho, h;
23 
24  LutKernel<Dim> densityKernel;
25 
26  using ThreadData = typename SymmetricSolver<Dim>::ThreadData;
27 
28 public:
30  const RunSettings& settings,
31  const EquationHolder& additionalEquations = {});
32 
34  const RunSettings& settings,
35  const EquationHolder& additionalEquations,
37 
38  virtual void create(Storage& storage, IMaterial& material) const override;
39 
40 private:
41  virtual void beforeLoop(Storage& storage, Statistics& stats) override;
42 
43  virtual void sanityCheck(const Storage& storage) const override;
44 };
45 
NAMESPACE_SPH_BEGIN
Definition: BarnesHut.cpp:13
uint32_t Size
Integral type used to index arrays (by default).
Definition: Globals.h:16
double Float
Precision used withing the code. Use Float instead of float or double where precision is important.
Definition: Globals.h:13
#define NAMESPACE_SPH_END
Definition: Object.h:12
Basic SPH solver, evaluating all interactions symmetrically.
Container holding equation terms.
Definition: EquationTerm.h:238
Material settings and functions specific for one material.
Definition: IMaterial.h:110
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Definition: Scheduler.h:27
Object holding various statistics about current run.
Definition: Statistics.h:22
Container storing all quantities used within the simulations.
Definition: Storage.h:230
SPH solver using density and specific energy as independent variables.
virtual void create(Storage &storage, IMaterial &material) const override
Initializes all quantities needed by the solver in the storage.
SummationSolver(IScheduler &scheduler, const RunSettings &settings, const EquationHolder &additionalEquations={})
Basic solver for integration of SPH equations.
IScheduler & scheduler
Scheduler to parallelize the solver.
AutoPtr< IBoundaryCondition > bc
Boundary condition used by the solver.