]> https://gitweb.dealii.org/ - dealii.git/commitdiff
rename assign_petsc_matrix/vector to reinit
authorStefano Zampini <stefano.zampini@gmail.com>
Mon, 16 Jan 2023 13:27:34 +0000 (16:27 +0300)
committerStefano Zampini <stefano.zampini@gmail.com>
Thu, 26 Jan 2023 08:35:44 +0000 (11:35 +0300)
include/deal.II/lac/petsc_block_sparse_matrix.h
include/deal.II/lac/petsc_block_vector.h
include/deal.II/lac/petsc_matrix_base.h
include/deal.II/lac/petsc_vector.h
include/deal.II/lac/petsc_vector_base.h
source/lac/petsc_matrix_base.cc
source/lac/petsc_parallel_block_sparse_matrix.cc
source/lac/petsc_parallel_block_vector.cc
source/lac/petsc_vector_base.cc

index 5fdf6d417387244d9768aa23c314c2dda90538b1..11aced3b74046d6ccc3d49c2c810f9b467531b19 100644 (file)
@@ -173,6 +173,14 @@ namespace PETScWrappers
              const MPI_Comm &                   com);
 
 
+      /**
+       * This method associates the PETSc Mat to the instance of the class.
+       * Infers the number of blocks from A if it is of type MATNEST, otherwise
+       * the block operator will only have a single block.
+       */
+      void
+      reinit(Mat A);
+
 
       /**
        * Matrix-vector multiplication: let $dst = M*src$ with $M$ being this
@@ -299,17 +307,6 @@ namespace PETScWrappers
       Mat &
       petsc_matrix();
 
-      /**
-       * This method assigns the PETSc Mat to the instance of the class.
-       *
-       * Note that the matrix is not copied: instead, the instance of this class
-       * is initialized to use the given matrix. This is useful if you want to
-       * interpret a PETSc Mat object as a deal.II BlockMatrix, and you already
-       * have a BlockMatrix object that you want to use for this purpose.
-       */
-      void
-      assign_petsc_matrix(Mat A);
-
     private:
       /**
        * A PETSc Mat object that describes the entire block matrix.
@@ -329,7 +326,7 @@ namespace PETScWrappers
     inline BlockSparseMatrix::BlockSparseMatrix(const Mat &A)
       : BlockSparseMatrix()
     {
-      this->assign_petsc_matrix(A);
+      this->reinit(A);
     }
 
     inline BlockSparseMatrix &
index 670f2061d4585800d46ee1aa369e4b3f1f46ead4..b441defa8d4c33c899a0628b2b7f0dc5ace292c7 100644 (file)
@@ -155,15 +155,12 @@ namespace PETScWrappers
       operator=(const BlockVector &V);
 
       /**
-       * This method assigns the given PETSc Vec to the instance of the class.
-       *
-       * Note that the vector is not copied: instead, the instance of this class
-       * is initialized to use the given vector. This is useful if you want to
-       * interpret a PETSc vector as a deal.II vector, and you already have a
-       * BlockVector that you want to use for this purpose.
+       * This method associates the PETSc Vec to the instance of the class.
+       * Infers the number of blocks from v if it is of type VECNEST, otherwise
+       * the block vector will only have a single block.
        */
       void
-      assign_petsc_vector(Vec v);
+      reinit(Vec v);
 
       /**
        * Reinitialize the BlockVector to contain @p n_blocks of size @p
@@ -399,7 +396,7 @@ namespace PETScWrappers
       : BlockVectorBase<Vector>()
       , petsc_nest_vector(nullptr)
     {
-      this->assign_petsc_vector(v);
+      this->reinit(v);
     }
 
     inline BlockVector &
index 7afc7db09e9db5a2ca8b451e0294d5eeda8cdfa1..99363019e9efa0e8bcca5a8ba8eda96b75c47f99 100644 (file)
@@ -345,11 +345,13 @@ namespace PETScWrappers
     virtual ~MatrixBase() override;
 
     /**
-     * This method assigns the PETSc Mat to the instance of the class.
-     *
+     * This method associates the PETSc Mat to the instance of the class.
+     * This is particularly useful when performing PETSc to Deal.II operations
+     * since it allows to reuse the Deal.II MatrixBase and the PETSc Mat
+     * without incurring in memory copies.
      */
     void
-    assign_petsc_matrix(Mat A);
+    reinit(Mat A);
 
     /**
      * This operator assigns a scalar to a matrix. Since this does usually not
index fbfa3d0ba516d27b3187899f9accc31fe6b3211e..bad7777a8ca22117a2432f6506bd5514c03ffa3d 100644 (file)
@@ -289,6 +289,8 @@ namespace PETScWrappers
       Vector &
       operator=(const dealii::Vector<number> &v);
 
+      using VectorBase::reinit;
+
       /**
        * Change the dimension of the vector to @p N. It is unspecified how
        * resizing the vector affects the memory allocation of this object;
index 4e69a3a3f4391c659caaefb434cdf33961047221..5f583d8241b9c1ee8b331139bc6011befe7c3c84 100644 (file)
@@ -328,13 +328,13 @@ namespace PETScWrappers
     operator=(const PetscScalar s);
 
     /**
-     * This method assigns the PETSc Vec to the instance of the class.
-     * This is particularly useful when performing PETSc to deal.II operations
-     * since it allows one to reuse the VectorBase and the PETSc Vec
+     * This method associates the PETSc Vec to the instance of the class.
+     * This is particularly useful when performing PETSc to Deal.II operations
+     * since it allows to reuse the Deal.II VectorBase and the PETSc Vec
      * without incurring in memory copies.
      */
     void
-    assign_petsc_vector(Vec v);
+    reinit(Vec v);
 
     /**
      * Test for equality. This function assumes that the present vector and
index 8c475bd9a20f72c713984bd1fa5f45615f55a4c9..9592822eb0ab326bce6152d22757a0e380b9ef58 100644 (file)
@@ -90,7 +90,7 @@ namespace PETScWrappers
   }
 
   void
-  MatrixBase::assign_petsc_matrix(Mat A)
+  MatrixBase::reinit(Mat A)
   {
     AssertThrow(last_action == ::dealii::VectorOperation::unknown,
                 ExcMessage("Cannot assign a new Mat."));
index 3e5a6a24c93fcb003264d877485ee06f464ff47c..5b97e58acb21bc001c1e6951f1638fcaada5c858 100644 (file)
@@ -210,7 +210,7 @@ namespace PETScWrappers
     }
 
     void
-    BlockSparseMatrix::assign_petsc_matrix(Mat A)
+    BlockSparseMatrix::reinit(Mat A)
     {
       clear();
 
index 3c7f03831d0a9bc17b9b93dfbb09e023926877b5..3cb802877c4fdc7249ea92430da1581280e03956 100644 (file)
@@ -46,7 +46,7 @@ namespace PETScWrappers
     }
 
     void
-    BlockVector::assign_petsc_vector(Vec v)
+    BlockVector::reinit(Vec v)
     {
       PetscBool isnest;
 
@@ -81,7 +81,7 @@ namespace PETScWrappers
       this->components.resize(nb);
       for (unsigned int i = 0; i < nb; ++i)
         {
-          this->components[i].assign_petsc_vector(sv[i]);
+          this->components[i].reinit(sv[i]);
         }
 
       this->collect_sizes();
index 309fb0e3613e0bc50848f20ae3848a7cb1112f69..538374755e7093498af6b78f2d2b35b731821b40 100644 (file)
@@ -181,7 +181,7 @@ namespace PETScWrappers
 
 
   void
-  VectorBase::assign_petsc_vector(Vec v)
+  VectorBase::reinit(Vec v)
   {
     /* TODO GHOSTED */
     AssertThrow(last_action == ::dealii::VectorOperation::unknown,

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.