diff --git a/cpp/dolfinx/fem/interpolate.h b/cpp/dolfinx/fem/interpolate.h index 12956057cb..b856915bf2 100644 --- a/cpp/dolfinx/fem/interpolate.h +++ b/cpp/dolfinx/fem/interpolate.h @@ -911,11 +911,12 @@ void interpolate(Function& u, std::span f, std::vector coord_dofs_b(num_dofs_g * gdim); mdspan2_t coord_dofs(coord_dofs_b.data(), num_dofs_g, gdim); - - std::vector ref_data_b(Xshape[0] * 1 * value_size); + const std::size_t value_size_ref + = element->reference_value_size() / element_bs; + std::vector ref_data_b(Xshape[0] * 1 * value_size_ref); MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan< T, MDSPAN_IMPL_STANDARD_NAMESPACE::dextents> - ref_data(ref_data_b.data(), Xshape[0], 1, value_size); + ref_data(ref_data_b.data(), Xshape[0], 1, value_size_ref); std::vector _vals_b(Xshape[0] * 1 * value_size); MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan<