mapping_info->get_n_q_points_unvectorized(current_cell_index,
current_face_number);
+ // round up n_points_scalar / n_lanes_user_interface
const_cast<unsigned int &>(n_q_points) =
(n_q_points_scalar + n_lanes_user_interface - 1) / n_lanes_user_interface;
if (fast_path && !polynomials_are_hat_functions)
{
+ // round up n_q_points_scalar / n_lanes_internal
const std::size_t n_batches =
(n_q_points_scalar + n_lanes_internal - 1) / n_lanes_internal;
const std::size_t n_shapes = poly.size();
if (evaluation_flags & EvaluationFlags::values)
{
for (unsigned int v = 0;
- v < stride && (stride > 1 ? q + v < n_q_points_scalar : true);
+ v < stride && (stride == 1 || q + v < n_q_points_scalar);
++v)
ETT::set_value(val_and_grad.first, v, values[qb * stride + v]);
}
ExcNotInitialized());
for (unsigned int v = 0;
- v < stride && (stride > 1 ? q + v < n_q_points_scalar : true);
+ v < stride && (stride == 1 || q + v < n_q_points_scalar);
++v)
{
const unsigned int offset = qb * stride + v;
}
for (unsigned int v = 0;
- v < stride && (stride > 1 ? q + v < n_q_points_scalar : true);
+ v < stride && (stride == 1 || q + v < n_q_points_scalar);
++v)
ETT::get_value(value, v, values[qb * stride + v]);
}
}
for (unsigned int v = 0;
- v < stride && (stride > 1 ? q + v < n_q_points_scalar : true);
+ v < stride && (stride == 1 || q + v < n_q_points_scalar);
++v)
{
const unsigned int offset = qb * stride + v;
internal::integrate_add_tensor_product_value_and_gradient_shapes<
dim,
VectorizedArrayType,
- vectorized_value_type>(make_array_view(shapes,
- qb * n_shapes,
- n_shapes),
+ vectorized_value_type>(shapes.data() + qb * n_shapes,
n_shapes,
value,
gradient,
DEAL_II_ALWAYS_INLINE
#endif
void
- do_apply_test_functions_xy(
- AlignedVector<Number2> & values,
- const ArrayView<dealii::ndarray<Number, 2, dim>> &shapes,
- const std::array<Number2, 3> & test_grads_value,
- const int n_shapes_runtime,
- int & i)
+ do_apply_test_functions_xy(AlignedVector<Number2> & values,
+ const dealii::ndarray<Number, 2, dim> *shapes,
+ const std::array<Number2, 3> &test_grads_value,
+ const int n_shapes_runtime,
+ int & i)
{
if (length > 0)
{
template <int dim, typename Number, typename Number2>
inline void
integrate_add_tensor_product_value_and_gradient_shapes(
- const ArrayView<dealii::ndarray<Number, 2, dim>> &shapes,
- const int n_shapes,
- const Number2 & value,
- const Tensor<1, dim, Number2> & gradient,
- AlignedVector<Number2> & values)
+ const dealii::ndarray<Number, 2, dim> *shapes,
+ const int n_shapes,
+ const Number2 & value,
+ const Tensor<1, dim, Number2> & gradient,
+ AlignedVector<Number2> & values)
{
static_assert(dim >= 1 && dim <= 3, "Only dim=1,2,3 implemented");