SPH
EquilibriumSolver.h
Go to the documentation of this file.
1 #pragma once
2 
7 
8 #include "math/SparseMatrix.h"
12 
14 
15 class IGravity;
16 
21  IScheduler& scheduler;
22 
23  AutoPtr<IGravity> gravity;
24 
25  AutoPtr<IBasicFinder> finder;
26 
28 
29  Size boundaryThreshold;
30 
31 public:
33  const RunSettings& settings,
34  AutoPtr<IGravity>&& gravity,
35  const Size boundaryThreshold);
36 
38 
39  Outcome solve(Storage& storage, Statistics& stats);
40 };
41 
47 private:
48  IScheduler& scheduler;
49 
51 
53 
54  SymmetricSolver<DIMENSIONS> equationSolver;
55 
56  Size boundaryThreshold;
57 
58  SparseMatrix matrix;
59 
60 public:
68  const RunSettings& settings,
69  const EquationHolder& equations);
70 
72 
77  Outcome solve(Storage& storage, Statistics& stats);
78 
80  void create(Storage& storage, IMaterial& material);
81 };
82 
NAMESPACE_SPH_BEGIN
Definition: BarnesHut.cpp:13
Right-hand side term of SPH equations.
uint32_t Size
Integral type used to index arrays (by default).
Definition: Globals.h:16
#define NAMESPACE_SPH_END
Definition: Object.h:12
Return value of function that may fail, containing either SUCCEES (true) or error message.
Sparse matrix with utility functions (a thin wrapper over Eigen3 implementation)
Basic SPH solver, evaluating all interactions symmetrically.
Container holding equation terms.
Definition: EquationTerm.h:238
Solver for equilibrium internal energy.
EquilibriumEnergySolver(IScheduler &scheduler, const RunSettings &settings, AutoPtr< IGravity > &&gravity, const Size boundaryThreshold)
Outcome solve(Storage &storage, Statistics &stats)
Solves for total stress tensor sigma.
EquilibriumStressSolver(IScheduler &scheduler, const RunSettings &settings, const EquationHolder &equations)
Constructs the solver.
void create(Storage &storage, IMaterial &material)
Creates all the necessary quantities in the storage.
Outcome solve(Storage &storage, Statistics &stats)
Computed pressure and deviatoric stress are placed into the storage.
Interface for computing gravitational interactions of particles.
Definition: IGravity.h:14
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
Sparse representation of matrix of arbitrary dimension.
Definition: SparseMatrix.h:16
Object holding various statistics about current run.
Definition: Statistics.h:22
Container storing all quantities used within the simulations.
Definition: Storage.h:230