]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Move Threads::Mutex to a dedicated header. 14181/head
authorDavid Wells <drwells@email.unc.edu>
Sun, 7 Aug 2022 17:00:37 +0000 (13:00 -0400)
committerDavid Wells <drwells@email.unc.edu>
Wed, 10 Aug 2022 13:32:31 +0000 (09:32 -0400)
Most files don't need anything in Threads other than Threads::Mutex so we can
decouple them from TBB et. al. by moving this class to its own header.

36 files changed:
examples/step-48/step-48.cc
include/deal.II/base/flow_function.h
include/deal.II/base/function_cspline.h
include/deal.II/base/incremental_function.h
include/deal.II/base/index_set.h
include/deal.II/base/mutex.h [new file with mode: 0644]
include/deal.II/base/parallel.h
include/deal.II/base/polynomials_abf.h
include/deal.II/base/polynomials_bdm.h
include/deal.II/base/thread_management.h
include/deal.II/base/timer.h
include/deal.II/fe/fe_dgq.h
include/deal.II/fe/fe_nedelec.h
include/deal.II/fe/fe_poly_tensor.h
include/deal.II/fe/fe_q_base.h
include/deal.II/fe/fe_raviart_thomas.h
include/deal.II/fe/fe_simplex_p.h
include/deal.II/fe/mapping_fe_field.h
include/deal.II/fe/mapping_q_eulerian.h
include/deal.II/lac/block_matrix_base.h
include/deal.II/lac/la_parallel_vector.h
include/deal.II/lac/lapack_full_matrix.h
include/deal.II/lac/precondition.h
include/deal.II/lac/scalapack.h
include/deal.II/lac/tensor_product_matrix.h
include/deal.II/lac/vector_memory.h
include/deal.II/matrix_free/dof_info.templates.h
include/deal.II/matrix_free/mapping_info_storage.templates.h
include/deal.II/matrix_free/matrix_free.templates.h
include/deal.II/matrix_free/task_info.h
source/dofs/dof_handler.cc
source/fe/fe_q_base.cc
source/fe/fe_system.cc
source/fe/fe_values.cc
source/grid/tria.cc
source/non_matching/fe_immersed_values.cc

index 9f1f8acdff150ccbbcffce3115b81cab82e34255..6cca69fcf179d9f01e267d3e0cdc3109ea893b30 100644 (file)
@@ -20,6 +20,7 @@
 
 // The necessary files from the deal.II library.
 #include <deal.II/base/logstream.h>
+#include <deal.II/base/multithread_info.h>
 #include <deal.II/base/utilities.h>
 #include <deal.II/base/function.h>
 #include <deal.II/base/conditional_ostream.h>
index eb37be7c8b10daeda50397a23e1a55c786152e13..33b213ca6b81fa8cf968f2e80af8493d51da23f8 100644 (file)
@@ -20,8 +20,8 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/function.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/point.h>
-#include <deal.II/base/thread_management.h>
 
 DEAL_II_NAMESPACE_OPEN
 
index 0e853940c4903472cac95cee5d3dbe5d606eb678..5ce29200693cfcbe8356f539a66aeafe487c0408 100644 (file)
@@ -20,8 +20,8 @@
 
 #ifdef DEAL_II_WITH_GSL
 #  include <deal.II/base/function.h>
+#  include <deal.II/base/mutex.h>
 #  include <deal.II/base/point.h>
-#  include <deal.II/base/thread_management.h>
 
 #  include <gsl/gsl_spline.h>
 
index 992672fd92d6ca8c829fffcd4536b9904871213c..b959b182a08d2d10ed96eced97a52628c2b21368 100644 (file)
@@ -20,7 +20,7 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/function.h>
-#include <deal.II/base/thread_management.h>
+#include <deal.II/base/mutex.h>
 
 #include <deal.II/lac/vector.h>
 
index b3c3ceec2a4b0eca703d32d2fea1642e558d3556..9afd33f187ad09b22e238bf268b062333469215d 100644 (file)
@@ -19,7 +19,7 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/exceptions.h>
-#include <deal.II/base/thread_management.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/utilities.h>
 
 DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
diff --git a/include/deal.II/base/mutex.h b/include/deal.II/base/mutex.h
new file mode 100644 (file)
index 0000000..4776b6b
--- /dev/null
@@ -0,0 +1,84 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2000 - 2022 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+#ifndef dealii_mutex_h
+#define dealii_mutex_h
+
+
+#include <deal.II/base/config.h>
+
+#include <mutex>
+
+DEAL_II_NAMESPACE_OPEN
+
+/**
+ * @addtogroup threads
+ * @{
+ */
+
+namespace Threads
+{
+  /**
+   * A class implementing a <a
+   * href="https://en.wikipedia.org/wiki/Lock_(computer_science)">mutex</a>.
+   * Mutexes are used to lock data structures to ensure that only a
+   * single thread of execution can access them at the same time.
+   *
+   * This class is a thin wrapper around `std::mutex`. The only difference
+   * is that this class is copyable when `std::mutex` is not.  Indeed, when
+   * copied, the receiving object does not copy any state from the object
+   * being copied, i.e. an entirely new mutex is created. These semantics
+   * are consistent with the common use case if a mutex is used as a member
+   * variable to lock the other member variables of a class: in that case,
+   * the mutex of the copied-to object should only guard the members of the
+   * copied-to object, not the members of both the copied-to and
+   * copied-from object. Since at the time when the class is copied, the
+   * destination's member variable is not used yet, its corresponding mutex
+   * should also remain in its original state.
+   */
+  class Mutex : public std::mutex
+  {
+  public:
+    /**
+     * Default constructor.
+     */
+    Mutex() = default;
+
+    /**
+     * Copy constructor. As discussed in this class's documentation, no state
+     * is copied from the object given as argument.
+     */
+    Mutex(const Mutex &)
+      : std::mutex()
+    {}
+
+    /**
+     * Copy operators. As discussed in this class's documentation, no state
+     * is copied from the object given as argument.
+     */
+    Mutex &
+    operator=(const Mutex &)
+    {
+      return *this;
+    }
+  };
+} // namespace Threads
+
+/**
+ * @}
+ */
+
+DEAL_II_NAMESPACE_CLOSE
+#endif
index 066b3728062408930d1e1e05fb06879b869aca0f..29401400762554cd95249c7fdfe896377b19ab30 100644 (file)
@@ -20,9 +20,9 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/exceptions.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/synchronous_iterator.h>
 #include <deal.II/base/template_constraints.h>
-#include <deal.II/base/thread_management.h>
 
 #include <cstddef>
 #include <functional>
@@ -612,7 +612,7 @@ namespace parallel
       /**
        * A mutex to guard the access to the in_use flag.
        */
-      std::mutex mutex;
+      Threads::Mutex mutex;
 #endif
     };
   } // namespace internal
index b3a0e7679724e483b6d15b220603f4962f3efb4d..8a55c0215aa6cadde7cb0abd481ede969bcce58d 100644 (file)
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/exceptions.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/point.h>
 #include <deal.II/base/polynomial.h>
 #include <deal.II/base/polynomial_space.h>
 #include <deal.II/base/tensor.h>
 #include <deal.II/base/tensor_polynomials_base.h>
 #include <deal.II/base/tensor_product_polynomials.h>
-#include <deal.II/base/thread_management.h>
 
 #include <memory>
 #include <vector>
index cba0e910007a3addb51f29b3a77fb8763a19671b..8e6e296d2f68592d9ddc178d973c3c2f8b9f4001 100644 (file)
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/exceptions.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/point.h>
 #include <deal.II/base/polynomial.h>
 #include <deal.II/base/polynomial_space.h>
 #include <deal.II/base/tensor.h>
 #include <deal.II/base/tensor_polynomials_base.h>
-#include <deal.II/base/thread_management.h>
 
 #include <vector>
 
index 2929308f3d84c71f62e0013efedbc6a8e8c4ebfa..b6e85a446f8d119989a1dbb8c8b1ede53264e0e5 100644 (file)
 // ---------------------------------------------------------------------
 
 #ifndef dealii_thread_management_h
-#  define dealii_thread_management_h
+#define dealii_thread_management_h
 
 
-#  include <deal.II/base/config.h>
+#include <deal.II/base/config.h>
 
-#  include <deal.II/base/exceptions.h>
-#  include <deal.II/base/multithread_info.h>
-#  include <deal.II/base/std_cxx17/tuple.h>
-#  include <deal.II/base/template_constraints.h>
+#include <deal.II/base/exceptions.h>
+#include <deal.II/base/multithread_info.h>
+#include <deal.II/base/mutex.h>
+#include <deal.II/base/std_cxx17/tuple.h>
+#include <deal.II/base/template_constraints.h>
 
-#  include <atomic>
-#  include <functional>
-#  include <future>
-#  include <list>
-#  include <memory>
-#  include <mutex>
-#  include <thread>
-#  include <utility>
-#  include <vector>
+#include <atomic>
+#include <functional>
+#include <future>
+#include <list>
+#include <memory>
+#include <thread>
+#include <utility>
+#include <vector>
 
-#  ifdef DEAL_II_WITH_TBB
+#ifdef DEAL_II_WITH_TBB
 DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
-#    include <tbb/task_group.h>
+#  include <tbb/task_group.h>
 DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
-#  endif
+#endif
 
 DEAL_II_NAMESPACE_OPEN
 
@@ -54,55 +54,6 @@ DEAL_II_NAMESPACE_OPEN
  *
  * @ingroup threads
  */
-namespace Threads
-{
-  /**
-   * A class implementing a <a
-   * href="https://en.wikipedia.org/wiki/Lock_(computer_science)">mutex</a>.
-   * Mutexes are used to lock data structures to ensure that only a
-   * single thread of execution can access them at the same time.
-   *
-   * This class is a thin wrapper around `std::mutex`. The only difference
-   * is that this class is copyable when `std::mutex` is not.  Indeed, when
-   * copied, the receiving object does not copy any state from the object
-   * being copied, i.e. an entirely new mutex is created. These semantics
-   * are consistent with the common use case if a mutex is used as a member
-   * variable to lock the other member variables of a class: in that case,
-   * the mutex of the copied-to object should only guard the members of the
-   * copied-to object, not the members of both the copied-to and
-   * copied-from object. Since at the time when the class is copied, the
-   * destination's member variable is not used yet, its corresponding mutex
-   * should also remain in its original state.
-   */
-  class Mutex : public std::mutex
-  {
-  public:
-    /**
-     * Default constructor.
-     */
-    Mutex() = default;
-
-    /**
-     * Copy constructor. As discussed in this class's documentation, no state
-     * is copied from the object given as argument.
-     */
-    Mutex(const Mutex &)
-      : std::mutex()
-    {}
-
-    /**
-     * Copy operators. As discussed in this class's documentation, no state
-     * is copied from the object given as argument.
-     */
-    Mutex &
-    operator=(const Mutex &)
-    {
-      return *this;
-    }
-  };
-} // namespace Threads
-
-
 namespace Threads
 {
   /**
@@ -185,7 +136,7 @@ namespace Threads
 } // namespace Threads
 
 /* ----------- implementation of functions in namespace Threads ---------- */
-#  ifndef DOXYGEN
+#ifndef DOXYGEN
 namespace Threads
 {
   template <typename ForwardIterator>
@@ -236,7 +187,7 @@ namespace Threads
   }
 } // namespace Threads
 
-#  endif // DOXYGEN
+#endif // DOXYGEN
 
 namespace Threads
 {
@@ -1034,7 +985,7 @@ namespace Threads
     {
       if (MultithreadInfo::n_threads() > 1)
         {
-#  ifdef DEAL_II_WITH_TBB
+#ifdef DEAL_II_WITH_TBB
           // Create a promise object and from it extract a future that
           // we can use to refer to the outcome of the task. For reasons
           // explained below, we can't just create a std::promise object,
@@ -1102,7 +1053,7 @@ namespace Threads
                 }
             });
 
-#  else
+#else
           // If no threading library is supported, just fall back onto C++11
           // facilities. The problem with this is that the standard does
           // not actually say what std::async should do. The first
@@ -1123,7 +1074,7 @@ namespace Threads
           task_data = std::make_shared<TaskData>(
             std::async(std::launch::async | std::launch::deferred,
                        function_object));
-#  endif
+#endif
         }
       else
         {
@@ -1410,7 +1361,7 @@ namespace Threads
           return;
         else
           {
-#  ifdef DEAL_II_WITH_TBB
+#ifdef DEAL_II_WITH_TBB
             // If we build on the TBB, then we can't just wait for the
             // std::future object to get ready. Apparently the TBB happily
             // enqueues a task into an arena and then just sits on it without
@@ -1419,7 +1370,7 @@ namespace Threads
             // tbb::task_group, and then here wait for the single task
             // associated with that task group.
             task_group.wait();
-#  endif
+#endif
 
             // Wait for the task to finish and then move its
             // result. (We could have made the set_from() function
@@ -1488,14 +1439,14 @@ namespace Threads
        */
       internal::return_value<RT> returned_object;
 
-#  ifdef DEAL_II_WITH_TBB
+#ifdef DEAL_II_WITH_TBB
       /**
        * A task group object we can wait for.
        */
       tbb::task_group task_group;
 
       friend class Task<RT>;
-#  endif
+#endif
     };
 
     /**
@@ -1744,8 +1695,5 @@ namespace Threads
  */
 
 
-//---------------------------------------------------------------------------
 DEAL_II_NAMESPACE_CLOSE
-// end of #ifndef dealii_thread_management_h
 #endif
-//---------------------------------------------------------------------------
index 3a6befaffa6db5b2f73e994af7e0b9ea30cd7c15..89d6e7e48300d7a8ab6ec4c8813d8473b632182e 100644 (file)
@@ -20,7 +20,7 @@
 
 #include <deal.II/base/conditional_ostream.h>
 #include <deal.II/base/mpi.h>
-#include <deal.II/base/thread_management.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/utilities.h>
 
 #include <chrono>
index 766573195384ecdcd929edc1f6e7b0184485b674..0cffacef27efa90321eba7380b90db05c06c65a8 100644 (file)
@@ -18,8 +18,8 @@
 
 #include <deal.II/base/config.h>
 
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/tensor_product_polynomials.h>
-#include <deal.II/base/thread_management.h>
 
 #include <deal.II/fe/fe_poly.h>
 
index ec2f223935f35b527e02c711124c1bd21977b4ee..7b7ac333e2092a30a56fc7a17537b5a384f2c7d1 100644 (file)
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/geometry_info.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/polynomial.h>
 #include <deal.II/base/polynomials_nedelec.h>
 #include <deal.II/base/table.h>
 #include <deal.II/base/tensor.h>
 #include <deal.II/base/tensor_product_polynomials.h>
-#include <deal.II/base/thread_management.h>
 
 #include <deal.II/fe/fe.h>
 #include <deal.II/fe/fe_poly_tensor.h>
index bafc92911ddb0fb3c626a1c51c6c36faaa4328ce..6d1730c3163bda689aabcc08e726fbf3b47ae28b 100644 (file)
@@ -20,9 +20,9 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/derivative_form.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/quadrature.h>
 #include <deal.II/base/tensor_polynomials_base.h>
-#include <deal.II/base/thread_management.h>
 
 #include <deal.II/fe/fe.h>
 
@@ -536,7 +536,7 @@ protected:
   /**
    * A mutex to be used to guard access to the variables below.
    */
-  mutable std::mutex cache_mutex;
+  mutable Threads::Mutex cache_mutex;
 
   /**
    * If a shape function is computed at a single point, we must compute all of
index e9c70005ae3b2fc8e29eb661faaf51ab388facb8..86e3511c6e1deb1b9b6372e0ca2a691ea2787734 100644 (file)
@@ -18,7 +18,7 @@
 
 #include <deal.II/base/config.h>
 
-#include <deal.II/base/thread_management.h>
+#include <deal.II/base/mutex.h>
 
 #include <deal.II/fe/fe_poly.h>
 
index e2852b4e6f8bc0833ff344bc3724e2d3d26565f3..0550fae6dd35e48a118d43d78bee2491af697521 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <deal.II/base/config.h>
 
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/table.h>
 
 #include <deal.II/fe/fe.h>
index 3bbadd90e4dd7e04e67530bd15a0415e7f6ea3fc..5f53aacf4412f532379b7d22d8bdc1253df4bf9c 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <deal.II/base/config.h>
 
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/polynomials_barycentric.h>
 
 #include <deal.II/fe/fe_poly.h>
index 4bf581d9824d636600cc37de646c773be6721b10..9562157930e624f5dc2e7e80ddd0b112e37c4929 100644 (file)
@@ -20,7 +20,7 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/mg_level_object.h>
-#include <deal.II/base/thread_management.h>
+#include <deal.II/base/mutex.h>
 
 #include <deal.II/dofs/dof_handler.h>
 
@@ -648,7 +648,7 @@ private:
   /**
    * A variable to guard access to the fe_values variable.
    */
-  mutable std::mutex fe_values_mutex;
+  mutable Threads::Mutex fe_values_mutex;
 
   void
   compute_data(const UpdateFlags      update_flags,
index e5802040c4f242fb0e9bc2d4070291e06be9c093..c2e3956e561edd61e6f4b0f1bb485c0900560e13 100644 (file)
@@ -19,8 +19,8 @@
 
 #include <deal.II/base/config.h>
 
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/smartpointer.h>
-#include <deal.II/base/thread_management.h>
 
 #include <deal.II/dofs/dof_accessor.h>
 #include <deal.II/dofs/dof_handler.h>
index a478a68f3b44dace33e91e4edd7248d50dcb4a58..787c0a5a5e9245d4ba118bab149778e03bc10fe0 100644 (file)
@@ -20,9 +20,9 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/memory_consumption.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/smartpointer.h>
 #include <deal.II/base/table.h>
-#include <deal.II/base/thread_management.h>
 #include <deal.II/base/utilities.h>
 
 #include <deal.II/lac/block_indices.h>
@@ -33,6 +33,7 @@
 #include <deal.II/lac/vector_operation.h>
 
 #include <cmath>
+#include <mutex>
 
 DEAL_II_NAMESPACE_OPEN
 
@@ -1038,7 +1039,7 @@ private:
      * A mutex variable used to guard access to the member variables of this
      * structure;
      */
-    std::mutex mutex;
+    Threads::Mutex mutex;
 
     /**
      * Copy operator. This is needed because the default copy operator of this
index adbd4f5ae09a03b944b5c78bd14978866a00d677..137ff816e0a36e921b64d050aa7f82fa2d07197e 100644 (file)
@@ -26,7 +26,6 @@
 #include <deal.II/base/parallel.h>
 #include <deal.II/base/partitioner.h>
 #include <deal.II/base/subscriptor.h>
-#include <deal.II/base/thread_management.h>
 
 #include <deal.II/lac/vector_operation.h>
 #include <deal.II/lac/vector_space_vector.h>
index ee214db2b129c182339c308169a4393e9ef4edf9..fe7154a183c77d336afc94d0f351f3814d937628 100644 (file)
@@ -19,9 +19,9 @@
 
 #include <deal.II/base/config.h>
 
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/smartpointer.h>
 #include <deal.II/base/table.h>
-#include <deal.II/base/thread_management.h>
 
 #include <deal.II/lac/lapack_support.h>
 #include <deal.II/lac/vector_memory.h>
@@ -972,7 +972,7 @@ private:
   /**
    * Thread mutex.
    */
-  mutable std::mutex mutex;
+  mutable Threads::Mutex mutex;
 };
 
 
index 035c86afc81375b82d8e054bc8c1622d6ef24f20..cc428ae8dbdd87d43d24b807dc3b6591bb38db60 100644 (file)
 
 #include <deal.II/base/cuda_size.h>
 #include <deal.II/base/memory_space.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/parallel.h>
 #include <deal.II/base/smartpointer.h>
 #include <deal.II/base/template_constraints.h>
-#include <deal.II/base/thread_management.h>
 #include <deal.II/base/utilities.h>
 
 #include <deal.II/lac/affine_constraints.h>
index e622910cbc931d8da8d6813c533f0317d78e82ec..da65f8c1830636f2d29e5f5a72ade29b01873acd 100644 (file)
@@ -22,8 +22,8 @@
 
 #  include <deal.II/base/exceptions.h>
 #  include <deal.II/base/mpi.h>
+#  include <deal.II/base/mutex.h>
 #  include <deal.II/base/process_grid.h>
-#  include <deal.II/base/thread_management.h>
 
 #  include <deal.II/lac/full_matrix.h>
 #  include <deal.II/lac/lapack_full_matrix.h>
index 55206de2358cb064d4f2df5a2608f32bab95bbe3..e8a434c184e9b44537997bc7b8f868edfb6ed104 100644 (file)
@@ -20,7 +20,7 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/array_view.h>
-#include <deal.II/base/thread_management.h>
+#include <deal.II/base/mutex.h>
 
 #include <deal.II/lac/lapack_full_matrix.h>
 
index a397bd2668ea287829b77ba93610941ca9711b45..f965bbe0b81d54d0de6f20618bad3edefe522c58 100644 (file)
@@ -20,8 +20,8 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/logstream.h>
+#include <deal.II/base/mutex.h>
 #include <deal.II/base/smartpointer.h>
-#include <deal.II/base/thread_management.h>
 
 #include <deal.II/lac/vector.h>
 
index 65d27043e504704ec27ea981b44a147aacce6dc6..9b462e475ccac7d949afeca26975a00323a98c19 100644 (file)
@@ -20,9 +20,7 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/memory_consumption.h>
-#include <deal.II/base/multithread_info.h>
 #include <deal.II/base/parallel.h>
-#include <deal.II/base/thread_management.h>
 
 #include <deal.II/lac/affine_constraints.h>
 #include <deal.II/lac/dynamic_sparsity_pattern.h>
index fd468200c12101740ef7a1f064d9b7ce373b94ea..60d12ea87f5278cb737301b6eb2fc03a1fd67a0b 100644 (file)
@@ -19,8 +19,6 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/base/memory_consumption.h>
-#include <deal.II/base/multithread_info.h>
-#include <deal.II/base/thread_management.h>
 #include <deal.II/base/utilities.h>
 
 #include <deal.II/fe/fe_dgq.h>
index 9919a0463e00c015c73ad5a9c6833481fd05f960..31a64e5d87f9fbe528b7aad32d0085e0e3ca4673 100644 (file)
@@ -22,6 +22,7 @@
 #include <deal.II/base/memory_consumption.h>
 #include <deal.II/base/mpi.h>
 #include <deal.II/base/mpi_consensus_algorithms.h>
+#include <deal.II/base/multithread_info.h>
 #include <deal.II/base/polynomials_piecewise.h>
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/base/tensor_product_polynomials.h>
index 4cf51472566cb4880b83b5bee2fa724fe1fba1fa..3c66a98499a0688015047eab7f088882bbf9afb2 100644 (file)
@@ -24,7 +24,6 @@
 #include <deal.II/base/memory_consumption.h>
 #include <deal.II/base/mpi.h>
 #include <deal.II/base/tensor.h>
-#include <deal.II/base/thread_management.h>
 #include <deal.II/base/utilities.h>
 #include <deal.II/base/vectorization.h>
 
index 6a3093f98c3ef8cb5f9a5638088eee5816eed6e2..bd2b7bc949c5c66242ee8d1f62e849cc3a170a91 100644 (file)
@@ -18,6 +18,7 @@
 #include <deal.II/base/geometry_info.h>
 #include <deal.II/base/memory_consumption.h>
 #include <deal.II/base/mpi.templates.h>
+#include <deal.II/base/thread_management.h>
 
 #include <deal.II/distributed/cell_data_transfer.templates.h>
 #include <deal.II/distributed/fully_distributed_tria.h>
index 281f698e4110c004d7ac107e163a13a02868c2fd..651670c48da1f39729c9a2b44d9cdc1991105642 100644 (file)
@@ -22,6 +22,7 @@
 #include <deal.II/base/tensor_product_polynomials.h>
 #include <deal.II/base/tensor_product_polynomials_bubbles.h>
 #include <deal.II/base/tensor_product_polynomials_const.h>
+#include <deal.II/base/thread_management.h>
 
 #include <deal.II/fe/fe_dgp.h>
 #include <deal.II/fe/fe_dgq.h>
index d74476d1a8dfe2498a7b6a021133fdc8ae6d0841..78247de4979a611cf63eca48aafd4dd2d3e3a79b 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <deal.II/base/memory_consumption.h>
 #include <deal.II/base/quadrature.h>
+#include <deal.II/base/thread_management.h>
 
 #include <deal.II/dofs/dof_accessor.h>
 
index 5d1e7b9d0cc74929d22e2fbc602106ace5376f08..b8b5142b5be541d51830538d4cbb727340172108 100644 (file)
@@ -19,6 +19,7 @@
 #include <deal.II/base/numbers.h>
 #include <deal.II/base/quadrature.h>
 #include <deal.II/base/signaling_nan.h>
+#include <deal.II/base/thread_management.h>
 
 #include <deal.II/differentiation/ad.h>
 
index 7c94de04ef036cad3aa05c8c4de742a7ff508735..25733185f05b5322d4d5cec465dd0c154079a34d 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <deal.II/base/geometry_info.h>
 #include <deal.II/base/memory_consumption.h>
+#include <deal.II/base/thread_management.h>
 
 #include <deal.II/fe/mapping_q1.h>
 
index e789f12a0ff63033dd13c71e2852e387f07587fb..508f939716dfbc4047ea1eb943364f8113b3eca6 100644 (file)
@@ -13,6 +13,8 @@
 //
 // ---------------------------------------------------------------------
 
+#include <deal.II/base/thread_management.h>
+
 #include <deal.II/grid/tria_iterator.h>
 
 #include <deal.II/non_matching/fe_immersed_values.h>

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.