54 : ghosts(
std::move(ghosts)) {}
Generic dynamically allocated resizable storage.
Simplified implementation of std::unique_ptr, using only default deleter.
Object defining computational domain.
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.
Object representing interval of real values.
#define NAMESPACE_SPH_END
Container for storing particle quantities and materials.
Basic vector algebra. Computations are accelerated using SIMD.
Object providing safe access to continuous memory of data.
INLINE TCounter size() const noexcept
Helper object defining three-dimensional interval (box).
Places immovable particles along boundary.
FixedParticles(const RunSettings &settings, Params &¶ms)
virtual void finalize(Storage &storage) override
Applies the boundary conditions after the derivatives are computed.
virtual void initialize(Storage &storage) override
Applies the boundary conditions before the derivatives are computed.
Boundary condition that nulls all highest derivates of selected particles.
void freeze(const Size flag)
Adds body ID particles of which shall be frozen by boundary conditions.
FrozenParticles()
Constructs boundary conditions with no particles frozen.
SharedPtr< IDomain > domain
void thaw(const Size flag)
Remove a body from the list of frozen bodies.
virtual void finalize(Storage &storage) override
Applies the boundary conditions after the derivatives are computed.
virtual void initialize(Storage &UNUSED(storage)) override
Provides a way to access ghost particle data outside the solver.
GhostParticlesData(Array< Ghost > &&ghosts)
Ghost & getGhost(const Size idx)
Returns the reference to ghost particle with given index.
Size size() const
Returns the total number of ghost particles.
Adds ghost particles symmetrically for each SPH particle close to boundary.
virtual void finalize(Storage &storage) override
Applies the boundary conditions after the derivatives are computed.
virtual void initialize(Storage &storage) override
Applies the boundary conditions before the derivatives are computed.
GhostParticles(SharedPtr< IDomain > domain, const Float searchRadius, const Float minimalDist)
Creates new boundary conditions.
void setVelocityOverride(Function< Optional< Vector >(const Vector &r)> ghostVelocity)
Specifies a functor that overrides the default velocity assinged to each ghost.
static constexpr Size FLAG
Special flag denoting ghost particles.
Base object for boundary conditions.
virtual void finalize(Storage &storage)=0
Applies the boundary conditions after the derivatives are computed.
virtual void initialize(Storage &storage)=0
Applies the boundary conditions before the derivatives are computed.
Base class for arbitrary data stored in the storage alongside particles.
Extension of IBasicFinder, allowing to search only particles with lower rank in smoothing length.
Object representing a 1D interval of real numbers.
Boundary condition that removes particles outside the domain.
KillEscapersBoundary(SharedPtr< IDomain > domain)
virtual void initialize(Storage &storage) override
Applies the boundary conditions before the derivatives are computed.
virtual void finalize(Storage &storage) override
Applies the boundary conditions after the derivatives are computed.
Wrapper of type value of which may or may not be present.
Boundary condition moving all particles passed through the domain to the other side of the domain.
PeriodicBoundary(const Box &domain)
virtual void initialize(Storage &storage) override
Applies the boundary conditions before the derivatives are computed.
virtual void finalize(Storage &storage) override
Applies the boundary conditions after the derivatives are computed.
Helper tool for 1D tests, projects all particles onto a 1D line.
Projection1D(const Interval &domain)
Constructs using range as 1D domain.
virtual void finalize(Storage &storage) override
Applies the boundary conditions after the derivatives are computed.
virtual void initialize(Storage &UNUSED(storage)) override
Container storing all quantities used within the simulations.
Boundary duplicating particles along z=0 plane.
virtual void initialize(Storage &storage) override
Applies the boundary conditions before the derivatives are computed.
virtual void finalize(Storage &storage) override
Applies the boundary conditions after the derivatives are computed.
Boundary conditions creating particles with given velocity at the boundary of the domain.
WindTunnel(SharedPtr< IDomain > domain, const Float radius)
virtual void finalize(Storage &storage) override
Applies the boundary conditions after the derivatives are computed.
virtual void initialize(Storage &UNUSED(storage)) override
Overload of std::swap for Sph::Array.
AutoPtr< IMaterial > material
AutoPtr< IDomain > domain
Computational domain; dummy particles will be placed outside of the domain.
AutoPtr< IDistribution > distribution
Distribution used to create the dummy particles.
virtual void initialize(Storage &UNUSED(storage)) override
virtual void finalize(Storage &UNUSED(storage)) override
Base class for all polymorphic objects.