From c374aee67ca66f2fd240e4781c53a788a77db6da Mon Sep 17 00:00:00 2001 From: Svenja Schoeder Date: Sun, 2 Sep 2018 11:40:19 +0200 Subject: [PATCH] shortened and adapted changelog entry, changed function argument type of mask to reference --- doc/news/changes/minor/20180821SvenjaSchoeder | 4 +- include/deal.II/matrix_free/fe_evaluation.h | 40 +++++++++---------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/doc/news/changes/minor/20180821SvenjaSchoeder b/doc/news/changes/minor/20180821SvenjaSchoeder index 40745a7954..626e749bea 100644 --- a/doc/news/changes/minor/20180821SvenjaSchoeder +++ b/doc/news/changes/minor/20180821SvenjaSchoeder @@ -1,5 +1,3 @@ New: Add a mask argument to filter out some vector lanes in FEEvaluationBase -Complemented by a test, which is almost the same as advect_1d but the distribute_local_to_global is called with the mask argument and each entry is written separately, yielding the same results as the original test. -This commit is required for local time stepping using the MatrixFree framework, because some cells of batches must be excluded from read/write operations when operating on different time steps compared to their neighbor cells. -
+This is required for local time stepping using the MatrixFree framework, because some cells of batches must be excluded from read/write operations when operating on different time steps compared to their neighbor cells. (Svenja Schoeder, 2018/08/21) diff --git a/include/deal.II/matrix_free/fe_evaluation.h b/include/deal.II/matrix_free/fe_evaluation.h index 7b509d085e..ddfd44fb50 100644 --- a/include/deal.II/matrix_free/fe_evaluation.h +++ b/include/deal.II/matrix_free/fe_evaluation.h @@ -247,7 +247,7 @@ public: distribute_local_to_global( VectorType & dst, const unsigned int first_index = 0, - const std::bitset::n_array_elements> mask = + const std::bitset::n_array_elements> &mask = std::bitset::n_array_elements>().flip()) const; /** @@ -285,7 +285,7 @@ public: set_dof_values( VectorType & dst, const unsigned int first_index = 0, - const std::bitset::n_array_elements> mask = + const std::bitset::n_array_elements> &mask = std::bitset::n_array_elements>().flip()) const; //@} @@ -802,9 +802,9 @@ protected: template void read_write_operation( - const VectorOperation & operation, - VectorType * vectors[], - const std::bitset::n_array_elements> mask, + const VectorOperation & operation, + VectorType * vectors[], + const std::bitset::n_array_elements> &mask, const bool apply_constraints = true) const; /** @@ -817,9 +817,9 @@ protected: template void read_write_operation_contiguous( - const VectorOperation & operation, - VectorType * vectors[], - const std::bitset::n_array_elements> mask) const; + const VectorOperation & operation, + VectorType * vectors[], + const std::bitset::n_array_elements> &mask) const; /** * A unified function to read from and write into vectors based on the given @@ -3946,9 +3946,9 @@ template template inline void FEEvaluationBase::read_write_operation( - const VectorOperation & operation, - VectorType * src[], - const std::bitset::n_array_elements> mask, + const VectorOperation & operation, + VectorType * src[], + const std::bitset::n_array_elements> &mask, const bool apply_constraints) const { // Case 1: No MatrixFree object given, simple case because we do not need to @@ -4395,9 +4395,9 @@ template inline void FEEvaluationBase:: read_write_operation_contiguous( - const VectorOperation & operation, - VectorType * src[], - const std::bitset::n_array_elements> mask) const + const VectorOperation & operation, + VectorType * src[], + const std::bitset::n_array_elements> &mask) const { // This functions processes the functions read_dof_values, // distribute_local_to_global, and set_dof_values with the same code for @@ -4704,9 +4704,9 @@ template inline void FEEvaluationBase:: distribute_local_to_global( - VectorType & dst, - const unsigned int first_index, - const std::bitset::n_array_elements> mask) const + VectorType & dst, + const unsigned int first_index, + const std::bitset::n_array_elements> &mask) const { Assert(dof_values_initialized == true, internal::ExcAccessToUninitializedField()); @@ -4732,9 +4732,9 @@ template template inline void FEEvaluationBase::set_dof_values( - VectorType & dst, - const unsigned int first_index, - const std::bitset::n_array_elements> mask) const + VectorType & dst, + const unsigned int first_index, + const std::bitset::n_array_elements> &mask) const { Assert(dof_values_initialized == true, internal::ExcAccessToUninitializedField()); -- 2.39.5