32 template <
typename... TArgs>
49 struct QuantityRecord {
67 template <
typename TValue>
80 template <
typename TValue>
102 template <
typename Type>
105 template <
typename Type>
108 template <
typename Type>
@ SHARED
Multiple derivatives may accumulate into the buffer.
@ UNIQUE
Only a single derivative accumulates to this buffer.
Generic dynamically allocated resizable storage.
uint32_t Size
Integral type used to index arrays (by default).
#define NAMESPACE_SPH_END
QuantityId
Unique IDs of basic quantities of SPH particles.
Symmetric traceless 2nd order tensor.
Object capable of storing values of different types.
Storage for accumulating derivatives.
void initialize(const Size size)
Initialize all storages.
void sum(ArrayView< Accumulated * > others)
Sums values of a list of storages.
Array< TValue > & getBuffer(const QuantityId id, const OrderEnum order)
Returns the buffer of given quantity and given order.
Size getBufferCnt() const
void store(Storage &storage)
Stores accumulated values to corresponding quantities.
void insert(const QuantityId id, const OrderEnum order, const BufferSource source)
Creates a new storage with given ID.
Object providing safe access to continuous memory of data.
Interface that allows unified implementation of sequential and parallelized versions of algorithms.
Container storing all quantities used within the simulations.
Variant, an implementation of type-safe union, similar to std::variant or boost::variant.