num::smoothing_kernel¶
Defined in header <spatial/concepts.hpp>
template <class K, class Scalar = float>
concept smoothing_kernel = field<Scalar> && requires(Scalar r, Scalar h) {
{ K::W(r, h) } -> std::convertible_to<Scalar>;
{ K::dW_dr(r, h) } -> std::convertible_to<Scalar>;
};
Radially symmetric smoothing kernel \(W(r, h)\) with its radial derivative.
An SPH kernel is normalized so that \(\int W \, dV = 1\) over its support and vanishes beyond \(r = 2h\). Both are properties of the values rather than the type, and num::spatial::debug::verify_kernel_normalization samples them.