]> https://gitweb.dealii.org/ - dealii.git/commitdiff
MatrixFree: Avoid use of deprecated n_components_filled 13870/head
authorMartin Kronbichler <martin.kronbichler@uni-a.de>
Tue, 31 May 2022 07:20:43 +0000 (09:20 +0200)
committerMartin Kronbichler <martin.kronbichler@uni-a.de>
Tue, 31 May 2022 07:20:43 +0000 (09:20 +0200)
18 files changed:
include/deal.II/matrix_free/fe_evaluation.h
include/deal.II/matrix_free/matrix_free.templates.h
tests/matrix_free/categorize_by_boundary_ids_01.cc
tests/matrix_free/cell_categorization.cc
tests/matrix_free/cell_categorization_02.cc
tests/matrix_free/cell_level_and_index.cc
tests/matrix_free/dof_info_01.cc
tests/matrix_free/dof_info_02.cc
tests/matrix_free/get_functions_common.h
tests/matrix_free/get_functions_multife.cc
tests/matrix_free/get_functions_multife2.cc
tests/matrix_free/integrate_functions.cc
tests/matrix_free/integrate_functions_hessians.cc
tests/matrix_free/integrate_functions_multife.cc
tests/matrix_free/integrate_functions_multife2.cc
tests/matrix_free/interpolate_functions_common.h
tests/matrix_free/jxw_values.cc
tests/matrix_free/quadrature_points.cc

index 76bc437e9766522b704759d68fd8e31dfef9aecb..a4db4b46dc5ca945f1e6276fbe3e4c5834a18999 100644 (file)
@@ -1606,7 +1606,8 @@ protected:
  * incomplete batch of cells are set to zero, whereas
  * @p distribute_local_to_global or @p set_dof_values simply ignores the
  * content in the empty lanes. The number of actually filled SIMD lanes can by
- * queried by MatrixFree::n_components_filled().
+ * queried by MatrixFree::n_active_entries_per_cell_batch() or
+ * MatrixFree::n_active_entries_per_face_batch().
  *
  * Obviously, the computations performed on the artificial lanes (without real
  * data) should never be mixed with valid results. The contract in using this
@@ -1615,11 +1616,11 @@ protected:
  * put together in vectorization. For example, results on an element should
  * not be added to results on other elements except through the global vector
  * access methods or by access that is masked by
- * MatrixFree::n_components_filled(). No guarantee can be made that results on
- * artificial lanes will always be zero that can safely be added to other
- * results: The data on JxW or Jacobians is copied from the last valid lane in
- * order to avoid division by zero that could trigger floating point
- * exceptions or trouble in other situations.
+ * MatrixFree::n_active_entries_per_cell_batch(). No guarantee can be made
+ * that results on artificial lanes will always be zero that can safely be
+ * added to other results: The data on JxW or Jacobians is copied from the
+ * last valid lane in order to avoid division by zero that could trigger
+ * floating point exceptions or trouble in other situations.
  *
  * <h3>Description of evaluation routines</h3>
  *
index e6adbab2b07fc04a95c350e7884123e5b85c3fa2..1113e072c1736fe6665b02717ea421e085b43948 100644 (file)
@@ -252,7 +252,8 @@ MatrixFree<dim, Number, VectorizedArrayType>::get_cell_iterator(
 {
   AssertIndexRange(dof_handler_index, dof_handlers.size());
   AssertIndexRange(cell_batch_index, task_info.cell_partition_data.back());
-  AssertIndexRange(lane_index, n_components_filled(cell_batch_index));
+  AssertIndexRange(lane_index,
+                   n_active_entries_per_cell_batch(cell_batch_index));
 
   std::pair<unsigned int, unsigned int> index =
     cell_level_index[cell_batch_index * VectorizedArrayType::size() +
@@ -273,7 +274,8 @@ MatrixFree<dim, Number, VectorizedArrayType>::get_cell_level_and_index(
   const unsigned int lane_index) const
 {
   AssertIndexRange(cell_batch_index, task_info.cell_partition_data.back());
-  AssertIndexRange(lane_index, n_components_filled(cell_batch_index));
+  AssertIndexRange(lane_index,
+                   n_active_entries_per_cell_batch(cell_batch_index));
 
   std::pair<int, int> level_index_pair =
     cell_level_index[cell_batch_index * VectorizedArrayType::size() +
@@ -329,7 +331,8 @@ MatrixFree<dim, Number, VectorizedArrayType>::get_hp_cell_iterator(
 {
   AssertIndexRange(dof_handler_index, dof_handlers.size());
   AssertIndexRange(cell_batch_index, task_info.cell_partition_data.back());
-  AssertIndexRange(lane_index, n_components_filled(cell_batch_index));
+  AssertIndexRange(lane_index,
+                   n_active_entries_per_cell_batch(cell_batch_index));
 
   std::pair<unsigned int, unsigned int> index =
     cell_level_index[cell_batch_index * VectorizedArrayType::size() +
@@ -2056,7 +2059,9 @@ MatrixFree<dim, Number, VectorizedArrayType>::initialize_indices(
           for (unsigned int cell = 0;
                cell < n_cell_batches() + n_ghost_cell_batches();
                ++cell)
-            for (unsigned int v = 0; v < this->n_components_filled(cell); ++v)
+            for (unsigned int v = 0;
+                 v < this->n_active_entries_per_cell_batch(cell);
+                 ++v)
               {
                 const unsigned int index = cell * n_lanes + v;
 
index 8abae449e3be64822a69a69f1bff03c93dc938f6..cc423e2022a7239550d7f2fae9b5815a1a004011 100644 (file)
@@ -85,7 +85,8 @@ test(const unsigned int n_refinements)
               {
                 bool temp = true;
 
-                for (unsigned int v = 1; v < data.n_components_filled(cell);
+                for (unsigned int v = 1;
+                     v < data.n_active_entries_per_cell_batch(cell);
                      ++v)
                   temp &= (data.get_faces_by_cells_boundary_id(cell, face)[0] ==
                            data.get_faces_by_cells_boundary_id(cell, face)[v]);
index 2145ebba29eb1980cd68bec1872b28a5a1b6be94..69ef8734912df9ef26606e7edd022389eb3c0377 100644 (file)
@@ -92,7 +92,8 @@ test()
   deallog << "Number of cell batches: " << mf_data.n_cell_batches()
           << std::endl;
   for (unsigned int i = 0; i < mf_data.n_cell_batches(); ++i)
-    for (unsigned int c = 0; c < mf_data.n_components_filled(i); ++c)
+    for (unsigned int c = 0; c < mf_data.n_active_entries_per_cell_batch(i);
+         ++c)
       deallog << mf_data.get_cell_iterator(i, c)->id() << " with "
               << mf_data.get_cell_category(i) << std::endl;
   deallog << std::endl;
@@ -102,7 +103,8 @@ test()
   deallog << "Number of cell batches: " << mf_data.n_cell_batches()
           << std::endl;
   for (unsigned int i = 0; i < mf_data.n_cell_batches(); ++i)
-    for (unsigned int c = 0; c < mf_data.n_components_filled(i); ++c)
+    for (unsigned int c = 0; c < mf_data.n_active_entries_per_cell_batch(i);
+         ++c)
       deallog << mf_data.get_cell_iterator(i, c)->id() << " with "
               << mf_data.get_cell_category(i) << std::endl;
   deallog << std::endl;
@@ -118,7 +120,8 @@ test()
   deallog << "Number of cell batches: " << mf_data.n_cell_batches()
           << std::endl;
   for (unsigned int i = 0; i < mf_data.n_cell_batches(); ++i)
-    for (unsigned int c = 0; c < mf_data.n_components_filled(i); ++c)
+    for (unsigned int c = 0; c < mf_data.n_active_entries_per_cell_batch(i);
+         ++c)
       deallog << mf_data.get_cell_iterator(i, c)->id() << " with "
               << mf_data.get_cell_category(i) << std::endl;
   deallog << std::endl;
index 480e423fb4e3ffa13ca76b98c69e1ce05295e372..70780239745340de30fb7048b4f7473c9aa4e63d 100644 (file)
@@ -163,7 +163,8 @@ test()
   for (unsigned int i = 0; i < mf_data.n_cell_batches(); ++i)
     {
       const unsigned int m_id = mf_data.get_cell_iterator(i, 0)->material_id();
-      for (unsigned int c = 0; c < mf_data.n_components_filled(i); ++c)
+      for (unsigned int c = 0; c < mf_data.n_active_entries_per_cell_batch(i);
+           ++c)
         {
           const unsigned int c_id =
             mf_data.get_cell_iterator(i, c)->material_id();
@@ -178,7 +179,9 @@ test()
         {
           const unsigned int m_id =
             level_data->get_cell_iterator(i, 0)->material_id();
-          for (unsigned int c = 0; c < level_data->n_components_filled(i); ++c)
+          for (unsigned int c = 0;
+               c < level_data->n_active_entries_per_cell_batch(i);
+               ++c)
             {
               const unsigned int c_id =
                 level_data->get_cell_iterator(i, c)->material_id();
index a025b9f476651862fc95c394a90f9fa1415a1744..f49a110395afd4eed31ced8e46d0a96cf3b06185 100644 (file)
@@ -46,7 +46,7 @@ compare_indices(const MatrixFree<dim, number> *mf_data)
   for (unsigned int batch_no = 0; batch_no < n_batches; ++batch_no)
     {
       const unsigned int n_lanes_filled =
-        mf_data->n_components_filled(batch_no);
+        mf_data->n_active_entries_per_cell_batch(batch_no);
       for (unsigned int lane = 0; lane < n_lanes_filled; ++lane)
         {
           const auto cell = mf_data->get_cell_iterator(batch_no, lane);
index b79ff4942a0394166d452ef9ef5af52998e8ea1f..7d028ae68bb8d5f83543d717a864c7410a4ce9e5 100644 (file)
@@ -170,7 +170,9 @@ test(const bool adaptive_ref = true)
 
       // output cell blocks:
       for (unsigned int cell = 0; cell < n_cells; ++cell)
-        for (unsigned int c = 0; c < mf_data->n_components_filled(cell); ++c)
+        for (unsigned int c = 0;
+             c < mf_data->n_active_entries_per_cell_batch(cell);
+             ++c)
           {
             const auto dof_cell = mf_data->get_cell_iterator(cell, c);
             f << dof_cell->center() << " \"" << cell << "\"\n";
index 115d6c66a51c8a8bea0c5884c639d926cd8884f9..a6e4e13b12f4c0051abec4af4e4ad269d1236358 100644 (file)
@@ -172,7 +172,9 @@ test(const bool adaptive_ref = true)
 
       // output cell blocks:
       for (unsigned int cell = 0; cell < n_cells; ++cell)
-        for (unsigned int c = 0; c < mf_data->n_components_filled(cell); ++c)
+        for (unsigned int c = 0;
+             c < mf_data->n_active_entries_per_cell_batch(cell);
+             ++c)
           {
             const auto dof_cell = mf_data->get_cell_iterator(cell, c);
             f << dof_cell->center() << " \"" << cell << "\"\n";
index cb761b986ad4370d14e5dabd48fa8921403ce65e..6e4927fe3394f099d783ae70abff74efc79a9099 100644 (file)
@@ -101,7 +101,8 @@ public:
 
         // compare values with the ones the FEValues
         // gives us. Those are seen as reference
-        for (unsigned int j = 0; j < data.n_components_filled(cell); ++j)
+        for (unsigned int j = 0; j < data.n_active_entries_per_cell_batch(cell);
+             ++j)
           {
             fe_val.reinit(data.get_cell_iterator(cell, j));
             fe_val.get_function_values(src, reference_values);
index bd0fd094a89f0b51ac643e18c63f486fe5ff7633..e299a94e792d17de0481d6188022f090e268292c 100644 (file)
@@ -93,7 +93,8 @@ public:
 
         // compare values with the ones the FEValues
         // gives us. Those are seen as reference
-        for (unsigned int j = 0; j < data.n_components_filled(cell); ++j)
+        for (unsigned int j = 0; j < data.n_active_entries_per_cell_batch(cell);
+             ++j)
           {
             // FE 0
             fe_val0.reinit(data.get_cell_iterator(cell, j, 0));
index a376c99dd57c0b005451b7bfb45c7ab20a0c036e..c0405b448ed5d00978e878066e7241f0660e258b 100644 (file)
@@ -107,7 +107,8 @@ public:
 
         // compare values with the ones the FEValues
         // gives us. Those are seen as reference
-        for (unsigned int j = 0; j < data.n_components_filled(cell); ++j)
+        for (unsigned int j = 0; j < data.n_active_entries_per_cell_batch(cell);
+             ++j)
           {
             // FE 0
             fe_val0.reinit(data.get_cell_iterator(cell, j, 0));
index 9f6dd5da2711818e1c0014990b7660c810f797eb..b48c4fa210b2eb9877777431365a914474767fe5 100644 (file)
@@ -104,7 +104,8 @@ MatrixFreeTest<dim, fe_degree, Number>::operator()(
       fe_eval.reinit(cell);
       // compare values with the ones the FEValues
       // gives us. Those are seen as reference
-      for (unsigned int j = 0; j < data.n_components_filled(cell); ++j)
+      for (unsigned int j = 0; j < data.n_active_entries_per_cell_batch(cell);
+           ++j)
         {
           // generate random numbers at quadrature
           // points and test them with basis functions
index 11363a57200326bd27c3f36b2c37475bb28ff226..ec4f2132de50892f96e4679eb2e2b556026c4281 100644 (file)
@@ -106,7 +106,8 @@ MatrixFreeTest<dim, fe_degree, Number>::operator()(
       fe_eval.reinit(cell);
       // compare values with the ones the FEValues
       // gives us. Those are seen as reference
-      for (unsigned int j = 0; j < data.n_components_filled(cell); ++j)
+      for (unsigned int j = 0; j < data.n_active_entries_per_cell_batch(cell);
+           ++j)
         {
           // generate random numbers at quadrature
           // points and test them with basis functions
index cf464018fd39de33a6da55b9c4fe1e44ec70ca53..7cf4569ada207245849f8d40ba2716d4b23dfebc 100644 (file)
@@ -122,7 +122,8 @@ MatrixFreeTest<dim, fe_degree, Number>::operator()(
 
       // compare values with the ones the FEValues
       // gives us. Those are seen as reference
-      for (unsigned int j = 0; j < data.n_components_filled(cell); ++j)
+      for (unsigned int j = 0; j < data.n_active_entries_per_cell_batch(cell);
+           ++j)
         {
           // FE 0, Quad 0
           // generate random numbers at quadrature
index f696e3206746cf9dc59afac9135b6bdac85cc26c..08b97bc456f3f70748814a9e422b2838ca42ebdf 100644 (file)
@@ -123,7 +123,8 @@ MatrixFreeTest<dim, fe_degree, Number>::operator()(
 
       // compare values with the ones the FEValues
       // gives us. Those are seen as reference
-      for (unsigned int j = 0; j < data.n_components_filled(cell); ++j)
+      for (unsigned int j = 0; j < data.n_active_entries_per_cell_batch(cell);
+           ++j)
         {
           // FE 0, Quad 0
           // generate random numbers at quadrature
index b1be464645beb87a785183dd318ae66845b48d52..7b0f90b5e43d57b50c23bd9977c07c33f10964cc 100644 (file)
@@ -89,7 +89,8 @@ public:
         fe_eval.evaluate(EvaluationFlags::values | EvaluationFlags::gradients |
                          EvaluationFlags::hessians);
 
-        for (unsigned int j = 0; j < data.n_components_filled(cell); ++j)
+        for (unsigned int j = 0; j < data.n_active_entries_per_cell_batch(cell);
+             ++j)
           for (unsigned int q = 0; q < fe_eval.n_q_points; ++q)
             {
               ++cell_times;
index 7788cfdc7501c89fea2e5b05b579f62b2aa75469..81c71637c124672cf72d332d7919fa92972aea42 100644 (file)
@@ -82,7 +82,9 @@ test()
   for (unsigned int cell = 0; cell < mf_data.n_cell_batches(); ++cell)
     {
       fe_eval.reinit(cell);
-      for (unsigned int v = 0; v < mf_data.n_components_filled(cell); ++v)
+      for (unsigned int v = 0;
+           v < mf_data.n_active_entries_per_cell_batch(cell);
+           ++v)
         {
           fe_values.reinit(mf_data.get_cell_iterator(cell, v));
           for (unsigned int q = 0; q < quad.size(); ++q)
index 4848a2ace746dca2ed1a701259c0186a5532f024..06047238cdcfb0fa457b45d11db82bc0a59e0836 100644 (file)
@@ -94,7 +94,9 @@ test()
   for (unsigned int cell = 0; cell < n_cells; ++cell)
     {
       fe_eval.reinit(cell);
-      for (unsigned int j = 0; j < mf_data.n_components_filled(cell); ++j)
+      for (unsigned int j = 0;
+           j < mf_data.n_active_entries_per_cell_batch(cell);
+           ++j)
         {
           fe_values.reinit(mf_data.get_cell_iterator(cell, j));
           for (unsigned int q = 0; q < fe_eval.n_q_points; ++q)

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.