for (unsigned int q = 0, q2 = 0; q2 < polynomial_degree - 1; ++q2)
for (unsigned int q1 = 0; q1 < polynomial_degree - 1; ++q1, ++q)
{
- Point<2> point(line_support_points[q1 + 1][0],
- line_support_points[q2 + 1][0]);
+ const Point<2> point(line_support_points[q1 + 1][0],
+ line_support_points[q2 + 1][0]);
for (const unsigned int i : GeometryInfo<2>::vertex_indices())
weights(q, i) = GeometryInfo<2>::d_linear_shape_function(point, i);
}
}
- template <int dim, int spacedim>
- Point<spacedim>
- get_new_point_on_object(const TriaAccessor<1, dim, spacedim> &obj)
- {
- TriaIterator<TriaAccessor<1, dim, spacedim>> it(obj);
- return obj.get_manifold().get_new_point_on_line(it);
- }
-
- template <int dim, int spacedim>
- Point<spacedim>
- get_new_point_on_object(const TriaAccessor<2, dim, spacedim> &obj)
- {
- TriaIterator<TriaAccessor<2, dim, spacedim>> it(obj);
- return obj.get_manifold().get_new_point_on_quad(it);
- }
-
- template <int dim, int spacedim>
- Point<spacedim>
- get_new_point_on_object(const TriaAccessor<3, dim, spacedim> &obj)
- {
- TriaIterator<TriaAccessor<3, dim, spacedim>> it(obj);
- return obj.get_manifold().get_new_point_on_hex(it);
- }
-
template <int structdim, int dim, int spacedim>
Point<spacedim>
get_new_point_on_object(const TriaAccessor<structdim, dim, spacedim> &obj,
{
if (use_interpolation)
{
- TriaRawIterator<TriaAccessor<structdim, dim, spacedim>> it(obj);
+ const TriaRawIterator<TriaAccessor<structdim, dim, spacedim>> it(obj);
const auto points_and_weights =
Manifolds::get_default_points_and_weights(it, use_interpolation);
return obj.get_manifold().get_new_point(
}
else
{
- return get_new_point_on_object(obj);
+ const TriaIterator<TriaAccessor<structdim, dim, spacedim>> it(obj);
+ if constexpr (structdim == 1)
+ return obj.get_manifold().get_new_point_on_line(it);
+ else if constexpr (structdim == 2)
+ return obj.get_manifold().get_new_point_on_quad(it);
+ else if constexpr (structdim == 3)
+ return obj.get_manifold().get_new_point_on_hex(it);
+ else
+ DEAL_II_ASSERT_UNREACHABLE();
+
+ return {};
}
}
} // namespace