44 template <ValueEnum Type>
75 template <
typename TVisitor,
typename... TArgs>
79 return visitor.template visit<Float>(std::forward<TArgs>(args)...);
81 return visitor.template visit<Vector>(std::forward<TArgs>(args)...);
83 return visitor.template visit<Tensor>(std::forward<TArgs>(args)...);
85 return visitor.template visit<SymmetricTensor>(std::forward<TArgs>(args)...);
87 return visitor.template visit<TracelessTensor>(std::forward<TArgs>(args)...);
89 return visitor.template visit<Size>(std::forward<TArgs>(args)...);
#define NOT_IMPLEMENTED
Helper macro marking missing implementation.
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
@ INDEX
Index of particle.
decltype(auto) dispatch(const ValueEnum value, TVisitor &&visitor, TArgs &&... args)
Selects type based on run-time ValueEnum value and runs visit<Type>() method of the visitor.
Generic tensor of the 2nd order.
Symmetric traceless 2nd order tensor.
BasicVector< Float > Vector
Symmetric tensor of 2nd order.
Generic 2nd-order tensor with 9 independent components.
Symmetric traceless 2nd order tensor.
Convert type to ValueType enum.