From 6d2effb624bba4040e1e48f561b1a993d49b1144 Mon Sep 17 00:00:00 2001 From: Maximilian Bergbauer Date: Thu, 11 May 2023 15:10:23 +0200 Subject: [PATCH] Reduce overhead of AlignedVector --- include/deal.II/matrix_free/evaluation_kernels.h | 6 +++--- .../deal.II/matrix_free/tensor_product_kernels.h | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/include/deal.II/matrix_free/evaluation_kernels.h b/include/deal.II/matrix_free/evaluation_kernels.h index bf994afb1b..7167750c2d 100644 --- a/include/deal.II/matrix_free/evaluation_kernels.h +++ b/include/deal.II/matrix_free/evaluation_kernels.h @@ -3552,9 +3552,9 @@ namespace internal fe_degree + 1, 0, Number> - evalf(shape_data[face_no % 2], - AlignedVector(), - AlignedVector(), + evalf(shape_data[face_no % 2].begin(), + nullptr, + nullptr, n_points_1d, 0); diff --git a/include/deal.II/matrix_free/tensor_product_kernels.h b/include/deal.II/matrix_free/tensor_product_kernels.h index e02030183a..05ae25107a 100644 --- a/include/deal.II/matrix_free/tensor_product_kernels.h +++ b/include/deal.II/matrix_free/tensor_product_kernels.h @@ -231,6 +231,22 @@ namespace internal (void)dummy2; } + /** + * Constructor, taking the data from ShapeInfo via raw pointers + */ + EvaluatorTensorProduct(const Number2 * shape_values, + const Number2 * shape_gradients, + const Number2 * shape_hessians, + const unsigned int dummy1 = 0, + const unsigned int dummy2 = 0) + : shape_values(shape_values) + , shape_gradients(shape_gradients) + , shape_hessians(shape_hessians) + { + (void)dummy1; + (void)dummy2; + } + template void values(const Number in[], Number out[]) const -- 2.39.5