]> https://gitweb.dealii.org/ - dealii.git/commitdiff
second review 15149/head
authorMarco Feder <marco.feder@sissa.it>
Fri, 28 Apr 2023 14:02:16 +0000 (16:02 +0200)
committerMarco Feder <marco.feder@sissa.it>
Fri, 28 Apr 2023 14:16:15 +0000 (16:16 +0200)
include/deal.II/multigrid/mg_transfer_global_coarsening.h
include/deal.II/multigrid/mg_transfer_global_coarsening.templates.h

index 7fe96f979bce85f1241207a08207fd6bb14d02ea..c03bdddaaec7e8f8c13b5dabba894d64c143d6f6 100644 (file)
@@ -17,7 +17,6 @@
 #define dealii_mg_transfer_global_coarsening_h
 
 #include <deal.II/base/mg_level_object.h>
-#include <deal.II/base/mpi_remote_point_evaluation.h>
 #include <deal.II/base/vectorization.h>
 
 #include <deal.II/dofs/dof_handler.h>
@@ -666,14 +665,16 @@ public:
 
   /**
    * Constructor taking a collection of transfer operators (with the coarsest
-   * level kept
-   * empty in @p transfer) and an optional function that initializes the
+   * level kept empty in @p transfer) and an optional function that initializes the
    * internal level vectors within the function call copy_to_mg() if used in the
-   * context of PreconditionMG.
+   * context of PreconditionMG. The template parameter @p MGTwoLevelTransferObject should derive from
+   * MGTwoLevelTransferBase and implement the transfer operation (see for
+   * instance MGTwoLevelTransfer). It can also be a std::shared_ptr or
+   * std::unique_ptr to the actual transfer operator.
    */
-  template <typename T>
+  template <typename MGTwoLevelTransferObject>
   MGTransferGlobalCoarsening(
-    const MGLevelObject<T> &transfer,
+    const MGLevelObject<MGTwoLevelTransferObject> &transfer,
     const std::function<void(const unsigned int, VectorType &)>
       &initialize_dof_vector = {});
 
@@ -854,9 +855,9 @@ private:
 
 
 template <int dim, typename VectorType>
-template <typename T>
+template <typename MGTwoLevelTransferObject>
 MGTransferGlobalCoarsening<dim, VectorType>::MGTransferGlobalCoarsening(
-  const MGLevelObject<T> &transfer,
+  const MGLevelObject<MGTwoLevelTransferObject> &transfer,
   const std::function<void(const unsigned int, VectorType &)>
     &initialize_dof_vector)
 {
index 1a53fe6e8f841cdf672c46cee88082d636a15973..2a01f9a4564138298129aebf02297a2929e8d5bf 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <deal.II/base/mpi_compute_index_owner_internal.h>
 #include <deal.II/base/mpi_consensus_algorithms.h>
+#include <deal.II/base/mpi_remote_point_evaluation.h>
 
 #include <deal.II/distributed/fully_distributed_tria.h>
 #include <deal.II/distributed/repartitioning_policy_tools.h>
@@ -31,7 +32,6 @@
 #include <deal.II/dofs/dof_tools.h>
 
 #include <deal.II/fe/fe_tools.h>
-#include <deal.II/fe/fe_values.h>
 
 #include <deal.II/grid/cell_id_translator.h>
 #include <deal.II/grid/filtered_iterator.h>
@@ -3173,6 +3173,8 @@ MGTwoLevelTransferBase<LinearAlgebra::distributed::Vector<Number>>::
     }
 }
 
+
+
 template <int dim, typename Number>
 void
 MGTwoLevelTransfer<dim, LinearAlgebra::distributed::Vector<Number>>::

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.