]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add instantiations and missing includes for TpetraWrappers::BlockVector 18442/head
authorQingyuan Shi <shiqy21@mails.tsinghua.edu.cn>
Thu, 8 May 2025 12:20:23 +0000 (20:20 +0800)
committerQingyuan Shi <shiqy21@mails.tsinghua.edu.cn>
Fri, 9 May 2025 01:57:42 +0000 (09:57 +0800)
23 files changed:
cmake/config/template-arguments.in
cmake/configure/configure_20_trilinos.cmake
include/deal.II/base/template_constraints.h
include/deal.II/fe/fe_tools_extrapolate.templates.h
include/deal.II/fe/fe_tools_interpolate.templates.h
include/deal.II/lac/read_write_vector.h
include/deal.II/lac/trilinos_tpetra_block_vector.h
include/deal.II/lac/vector_element_access.h
include/deal.II/numerics/vector_tools_point_value.templates.h
source/base/time_stepping.cc
source/dofs/dof_accessor_get.cc
source/dofs/dof_accessor_set.cc
source/fe/mapping_fe_field.cc
source/lac/solver.cc
source/lac/vector_memory.cc
source/multigrid/mg_base.cc
source/non_matching/fe_values.cc
source/non_matching/mesh_classifier.cc
source/non_matching/quadrature_generator.cc
source/numerics/data_out_dof_data.cc
source/numerics/data_out_dof_data_codim.cc
source/numerics/derivative_approximation.cc
source/trilinos/nox.cc

index 19e7b3a571e0774a61831d788e6c65ce9786cb72..c76e73eb1c97c356ba1fe266f5e4096a66fd87cf 100644 (file)
@@ -117,6 +117,11 @@ VECTOR_TYPES := {   Vector<double>;
 
                     @DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR@;
                     @DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR@;
+
+                    @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_DOUBLE@;
+                    @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_FLOAT@;
+                    @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_COMPLEX_DOUBLE@;
+                    @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_COMPLEX_FLOAT@;
                   }
 
 // same as VECTOR_TYPES but only real-valued vectors (and only with PETSc
@@ -141,6 +146,8 @@ REAL_VECTOR_TYPES  := {  Vector<double>;
 
                          @DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR@;
                          @DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR_REAL@;
+                         @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_DOUBLE@;
+                         @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_FLOAT@;
                        }
 
 // real vector types excluding block vectors
@@ -166,7 +173,11 @@ EXTERNAL_PARALLEL_VECTORS := { @DEAL_II_EXPAND_TRILINOS_MPI_VECTOR@;
                                @DEAL_II_EXPAND_TPETRA_VECTOR_COMPLEX_DOUBLE@;
                                @DEAL_II_EXPAND_TPETRA_VECTOR_COMPLEX_FLOAT@;
                                @DEAL_II_EXPAND_PETSC_MPI_VECTOR@;
-                               @DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR@
+                               @DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR@;
+                               @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_DOUBLE@;
+                               @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_FLOAT@;
+                               @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_COMPLEX_DOUBLE@;
+                               @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_COMPLEX_FLOAT@;
                              }
 
 // Vectors we can do GMG with excluding the LinearAlgebra::distributed::Vector<> (which is handled separately):
@@ -183,6 +194,11 @@ VECTORS_WITHOUT_LAVEC := { Vector<double>;
                          @DEAL_II_EXPAND_TPETRA_VECTOR_COMPLEX_DOUBLE@;
                          @DEAL_II_EXPAND_TPETRA_VECTOR_COMPLEX_FLOAT@;
                          @DEAL_II_EXPAND_PETSC_MPI_VECTOR@;
+
+                         @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_DOUBLE@;
+                         @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_FLOAT@;
+                         @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_COMPLEX_DOUBLE@;
+                         @DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_COMPLEX_FLOAT@;
                        }
 
 // Matrices
index 2988a134442521877963491e240667d994d04dca..51c15adb9a75f041eb0e9995b2d40d9a74038ce4 100644 (file)
@@ -430,12 +430,18 @@ macro(feature_trilinos_configure_external)
       set(DEAL_II_EXPAND_TPETRA_VECTOR_DOUBLE
         "LinearAlgebra::TpetraWrappers::Vector<double, MemorySpace::Host>"
         "LinearAlgebra::TpetraWrappers::Vector<double, MemorySpace::Default>")
+      set(DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_DOUBLE
+        "LinearAlgebra::TpetraWrappers::BlockVector<double, MemorySpace::Host>"
+        "LinearAlgebra::TpetraWrappers::BlockVector<double, MemorySpace::Default>")
     endif()
 
     if(_tpetra_inst_float)
       set(DEAL_II_EXPAND_TPETRA_VECTOR_FLOAT
         "LinearAlgebra::TpetraWrappers::Vector<float, MemorySpace::Host>"
         "LinearAlgebra::TpetraWrappers::Vector<float, MemorySpace::Default>")
+      set(DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_FLOAT
+        "LinearAlgebra::TpetraWrappers::BlockVector<float, MemorySpace::Host>"
+        "LinearAlgebra::TpetraWrappers::BlockVector<float, MemorySpace::Default>")
     endif()
 
     if(${DEAL_II_WITH_COMPLEX_NUMBERS})
@@ -443,12 +449,18 @@ macro(feature_trilinos_configure_external)
         set(DEAL_II_EXPAND_TPETRA_VECTOR_COMPLEX_DOUBLE
           "LinearAlgebra::TpetraWrappers::Vector<std::complex<double>, MemorySpace::Host>"
           "LinearAlgebra::TpetraWrappers::Vector<std::complex<double>, MemorySpace::Default>")
+        set(DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_COMPLEX_DOUBLE
+          "LinearAlgebra::TpetraWrappers::BlockVector<std::complex<double>, MemorySpace::Host>"
+          "LinearAlgebra::TpetraWrappers::BlockVector<std::complex<double>, MemorySpace::Default>")
       endif()
 
       if(_tpetra_inst_complex_float)
         set(DEAL_II_EXPAND_TPETRA_VECTOR_COMPLEX_FLOAT
           "LinearAlgebra::TpetraWrappers::Vector<std::complex<float>, MemorySpace::Host>"
           "LinearAlgebra::TpetraWrappers::Vector<std::complex<float>, MemorySpace::Default>")
+        set(DEAL_II_EXPAND_TPETRA_BLOCKVECTOR_COMPLEX_FLOAT
+          "LinearAlgebra::TpetraWrappers::BlockVector<std::complex<float>, MemorySpace::Host>"
+          "LinearAlgebra::TpetraWrappers::BlockVector<std::complex<float>, MemorySpace::Default>")
       endif()
     endif()
   endif()
index 7a37c5fad75507ef558a8f5375654ff6199d2c11..bd262f778d7649923b6dcde084a4a7d09edf2918 100644 (file)
@@ -671,8 +671,14 @@ namespace LinearAlgebra
     template <typename Number, typename MemorySpace>
     class Vector;
 
+    template <typename Number, typename MemorySpace>
+    class BlockVector;
+
     template <typename Number, typename MemorySpace>
     class SparseMatrix;
+
+    template <typename Number, typename MemorySpace>
+    class BlockSparseMatrix;
   } // namespace TpetraWrappers
 #  endif
 } // namespace LinearAlgebra
@@ -789,6 +795,11 @@ namespace concepts
     inline constexpr bool is_dealii_vector_type<
       dealii::LinearAlgebra::TpetraWrappers::Vector<Number, MemorySpace>> =
       true;
+
+    template <typename Number, typename MemorySpace>
+    inline constexpr bool is_dealii_vector_type<
+      dealii::LinearAlgebra::TpetraWrappers::BlockVector<Number, MemorySpace>> =
+      true;
 #    endif
 #  endif
 
index 080c88069d9f21fff856d1bcdd6eae7894e4227e..25e4b2a81d3725adacb61e2ce911b59fef2cae68 100644 (file)
@@ -40,6 +40,8 @@
 #include <deal.II/lac/petsc_block_vector.h>
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 
 #include <queue>
index 791596f3776d4f7d48d188c3152024bd914e03e7..e88d7a794d02ceac21fc57a78bb10f6d9efec35a 100644 (file)
@@ -42,6 +42,7 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
@@ -514,6 +515,21 @@ namespace FETools
     {
       AssertThrow(false, ExcNotImplemented());
     }
+
+    template <int dim, int spacedim, typename Number, typename MemorySpace>
+    void
+    back_interpolate(
+      const DoFHandler<dim, spacedim> &,
+      const AffineConstraints<typename LinearAlgebra::TpetraWrappers::
+                                BlockVector<Number, MemorySpace>::value_type> &,
+      const LinearAlgebra::TpetraWrappers::BlockVector<Number, MemorySpace> &,
+      const DoFHandler<dim, spacedim> &,
+      const AffineConstraints<typename LinearAlgebra::TpetraWrappers::
+                                BlockVector<Number, MemorySpace>::value_type> &,
+      LinearAlgebra::TpetraWrappers::BlockVector<Number, MemorySpace> &)
+    {
+      AssertThrow(false, ExcNotImplemented());
+    }
 #  endif
 #endif
 
index 7cb5c6fcef36ace87401c10180016b63dcc46fa4..96f04aa81ebee20df8925060fa7e4354f3c973f0 100644 (file)
@@ -36,6 +36,7 @@
 #ifdef DEAL_II_WITH_TRILINOS
 #  include <deal.II/lac/trilinos_epetra_communication_pattern.h>
 #  include <deal.II/lac/trilinos_epetra_vector.h>
+#  include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #  include <deal.II/lac/trilinos_tpetra_vector.h>
 
 #  include <Epetra_MultiVector.h>
index 120ce36073de842b6b393b615e5c6d2cd0034850..b5daf8ba7aa403b37a3e7641ab74a46f7cd6237a 100644 (file)
@@ -228,6 +228,16 @@ namespace LinearAlgebra
 
 } // namespace LinearAlgebra
 
+/**
+ * Declare dealii::LinearAlgebra::TpetraWrappers::BlockVector as distributed
+ * vector.
+ */
+template <typename Number, typename MemorySpace>
+struct is_serial_vector<
+  LinearAlgebra::TpetraWrappers::BlockVector<Number, MemorySpace>>
+  : std::false_type
+{};
+
 DEAL_II_NAMESPACE_CLOSE
 
 #endif // DEAL_II_TRILINOS_WITH_TPETRA
index 07b142e2bb9bcd1cf77a62430e03e3cf7d0a10fa..48c2c92ba9813ac4e19becea69801053d1ecd151 100644 (file)
@@ -19,6 +19,7 @@
 #include <deal.II/base/config.h>
 
 #include <deal.II/lac/trilinos_epetra_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 
 DEAL_II_NAMESPACE_OPEN
index 1df056426169719ad0d20bc4f808edc8dece178b..a3c94eaa2741c18cee4c42bcba6332aef7ca7c62 100644 (file)
@@ -29,6 +29,8 @@
 #include <deal.II/lac/petsc_block_vector.h>
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 
 #include <deal.II/numerics/vector_tools_common.h>
index 3f83d15454290cab0bcd05a8f62e17852b660f6d..be7d505ff271ffed127242d64b4da8052a52b20c 100644 (file)
@@ -21,6 +21,7 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index 345e9305f62110aa6dc8ec750b11b3f2fd5020a7..5bae801743b50058ba6c6605c67f097f70f935b0 100644 (file)
@@ -28,6 +28,7 @@
 #include <deal.II/lac/sparse_matrix.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index 21398d15c4c0efcf33f742c8787efe5657782e41..a10660f79303149404ff5c6d72541e9b99b68e98 100644 (file)
@@ -28,6 +28,7 @@
 #include <deal.II/lac/sparse_matrix.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index cc9d3aa8fc5059a7f0637ae0e0586375d8e613cb..8028a37918d8c8864eea496f3752c1a95c9c5fb4 100644 (file)
@@ -40,6 +40,7 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index 35ae14db5174a00246c80553fb9bf7879e73e6a9..aa1fc63f2d128974aaf2fa645befe70166ea8c77 100644 (file)
@@ -21,6 +21,7 @@
 #include <deal.II/lac/solver.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index b61e62ac111c4623efbdd9382bf13f8da674bdcd..37f02ac0b4deb650c23b721de09f1f4968738278 100644 (file)
@@ -19,6 +19,7 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index a13a8dd5e46c8353d717b963bff0620940a65998..ff49fcb82b4e65b98326ca73a277ac251e052626 100644 (file)
@@ -18,6 +18,7 @@
 #include <deal.II/lac/petsc_block_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index 84e46159a065c191710afe71076ac92efdc3c40b..f5f368b8bed3e071858f0e87e04a6b0c0a6654ce 100644 (file)
@@ -22,6 +22,7 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index cde8c7efa8add78a02b2c8472513e927ff893b54..34f733990d44b0b8fb454904cf1abfa8c69da1d4 100644 (file)
@@ -28,6 +28,7 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index 55d88f611efe29b8b93a83197922eab30a285b44..61f41cb55a97b716825cdb1b20adc7c798947ea6 100644 (file)
@@ -26,6 +26,7 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index 6d44472d70b39bf7047ea909a983c1c6eaa29559..891a63947b1136683615bcaeb2fb8b31ec1bbe17 100644 (file)
@@ -19,6 +19,8 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
 #include <deal.II/lac/vector_element_access.h>
index d67f147c7a79e6cd0abe062c35bdd9a6b67bca39..95018fef7058defae3c6e85f5a411876f2de4ab7 100644 (file)
@@ -19,6 +19,7 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index 80e1125756cd6451235a8021a0b0db98a2e4c63a..4b6621b12b4b651e42216cb4edced50b617cd0dc 100644 (file)
@@ -40,6 +40,7 @@
 #include <deal.II/lac/petsc_vector.h>
 #include <deal.II/lac/trilinos_epetra_vector.h>
 #include <deal.II/lac/trilinos_parallel_block_vector.h>
+#include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #include <deal.II/lac/trilinos_tpetra_vector.h>
 #include <deal.II/lac/trilinos_vector.h>
 #include <deal.II/lac/vector.h>
index 9fd7815ca65fbbc96c0a7405c0d23d786d2093e7..5833a86aacd338c22c6b233683ab5378485fe81a 100644 (file)
@@ -25,6 +25,7 @@
 #  include <deal.II/lac/petsc_vector.h>
 #  include <deal.II/lac/trilinos_epetra_vector.h>
 #  include <deal.II/lac/trilinos_parallel_block_vector.h>
+#  include <deal.II/lac/trilinos_tpetra_block_vector.h>
 #  include <deal.II/lac/trilinos_tpetra_vector.h>
 #  include <deal.II/lac/trilinos_vector.h>
 #  include <deal.II/lac/vector.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.