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
Return value of function that may fail, containing either SUCCEES (true) or error message.
Container for storing particle quantities and materials.
Generic dynamically allocated resizable storage.
Expected-like class that does not contain any value.
Checks for excessively large magnitudes of acceleration, indicating a numerical instability.
CourantInstabilityDiagnostic(const Float timescaleFactor)
virtual DiagnosticsReport check(const Storage &storage, const Statistics &stats) const override
Base class of diagnostics of the run.
virtual DiagnosticsReport check(const Storage &storage, const Statistics &stats) const =0
Checks for clamping of excesivelly low values of internal energy.
virtual DiagnosticsReport check(const Storage &storage, const Statistics &stats) const override
Checks for particle pairs, indicating a pairing instability.
ParticlePairingDiagnostic(const Float radius=2._f, const Float limit=1.e-2_f)
virtual DiagnosticsReport check(const Storage &storage, const Statistics &stats) const override
Checks for particle pairs, returns SUCCESS if no pair is found.
Array< Pair > getPairs(const Storage &storage) const
Returns the list of particles forming pairs, i.e. particles on top of each other or very close.
Checks for large differences of smoothing length between neighbouring particles.
SmoothingDiscontinuityDiagnostic(const Float radius, const Float limit=0.5_f)
virtual DiagnosticsReport check(const Storage &storage, const Statistics &stats) const override
Object holding various statistics about current run.
Container storing all quantities used within the simulations.
Object containing a reported error message.
std::string description
Description of the encountered problem.
std::map< Size, std::string > offendingParticles
Problematic particles and optional error message for each of them.
Base class for all polymorphic objects.