41 const Vec one_sixth(1.0/6.0);
42 m_face =
select((p_face - m_face) * (values[
k] - 0.5 * (m_face + p_face)) >
43 (p_face - m_face) * (p_face - m_face) * one_sixth,
44 3 * values[
k] - 2 * p_face, m_face);
45 p_face =
select(-(p_face - m_face) * (p_face - m_face) * one_sixth >
46 (p_face - m_face) * (values[
k] - 0.5 * (m_face + p_face)),
47 3 * values[
k] - 2 * m_face, p_face);
52 a[1] = 3.0 * values[
k] - 2.0 * m_face - p_face;
53 a[2] = (m_face + p_face - 2.0 * values[
k]);
static void compute_ppm_coeff(const Vec *const values, const face_estimate_order order, const uint k, Vec a[3], const Realf threshold)
void compute_filtered_face_values(const Vec *const values, const uint k, const face_estimate_order order, Vec &fv_l, Vec &fv_r, const Realf threshold)
__global__ void const Realf const uint *__restrict__ const uint *__restrict__ const vmesh::GlobalID *__restrict__ const uint const uint const uint const Realf threshold
An interface to a type with floating point values.
static ARCH_HOSTDEV VecSimple< T > select(VecSimple< bool > const &a, VecSimple< T > const &b, VecSimple< T > const &c)