]> https://gitweb.dealii.org/ - dealii.git/commitdiff
merge unified linear algebra branch back into mainline
authorTimo Heister <timo.heister@gmail.com>
Mon, 15 Jul 2013 23:31:59 +0000 (23:31 +0000)
committerTimo Heister <timo.heister@gmail.com>
Mon, 15 Jul 2013 23:31:59 +0000 (23:31 +0000)
git-svn-id: https://svn.dealii.org/trunk@30002 0785d39b-7218-0410-832d-ea1e28bc413d

1  2 
deal.II/include/deal.II/lac/compressed_simple_sparsity_pattern.h
deal.II/include/deal.II/lac/petsc_matrix_base.h
deal.II/include/deal.II/lac/petsc_parallel_block_sparse_matrix.h
deal.II/include/deal.II/lac/petsc_parallel_vector.h

index 9062e6cfa9c85c89a297c006d4b7cb7fc75ac3b7,e7d37ac7bf9794d5c5b39db13ac1366a0078c27c..0d99a560854eb7a8dd8fc700debd61fb5d8a4054
@@@ -145,6 -145,12 +145,12 @@@ public
                                     const size_type n,
                                     const IndexSet &rowset = IndexSet());
  
 -   * Create a square matrix using
+   /**
++   * Create a square SparsityPattern using
+    * the index set.
+    */
+   CompressedSimpleSparsityPattern (const IndexSet &indexset);
    /**
     * Initialize a square matrix of
     * dimension @p n.
index 500b40d7786b4300cf43492b3cde8747827d52be,f2c059a978ecbc60654e1ee952536cd10187decc..abd0f546fd4ee334c37b4d3712eb07712240a854
@@@ -1172,6 -1172,13 +1172,13 @@@ namespace PETScWrapper
       */
      void write_ascii (const PetscViewerFormat format = PETSC_VIEWER_DEFAULT);
  
 -     * print command, similar to write_ascii, but the same format than
+     /**
++     * print command, similar to write_ascii, but the same format as
+      * produced by Trilinos
+      */
+     void print (std::ostream &out,
+                 const bool    alternative_output = false) const;
      /**
       *  Returns the number bytes consumed
       *  by this matrix on this CPU.
index 0bf1727ffff1942819b9b0e9082ef370a2fcde56,0c4ec05e75fc0ed35e36ea7e2a4123a25bd09cd1..9a1b19c9511dd98aca38372625225098d313d907
@@@ -172,6 -173,31 +173,31 @@@ namespace PETScWrapper
        void reinit (const size_type n_block_rows,
                     const size_type n_block_columns);
  
 -       * Note that each IndexSet needs to contiguous. For a symmetric structure
+       /**
+        * Efficiently reinit the block matrix for a parallel computation.
+        * Only the BlockSparsityPattern of the Simple type can efficiently
+        * store large sparsity patterns in parallel, so this is the only
+        * supported argument.
+        * The IndexSets describe the locally owned range of DoFs for each block.
 -       * Same as above but only for a symmetric structure only.
++       * Note that each IndexSet needs to be contiguous. For a symmetric structure
+        * hand in the same vector for the first two arguments.
+        */
+       void reinit(const std::vector<IndexSet> &rows,
+           const std::vector<IndexSet> &cols,
+           const BlockCompressedSimpleSparsityPattern &bcsp,
+           const MPI_Comm &com);
+       /**
++       * Same as above but for a symmetric structure only.
+        */
+       void reinit(const std::vector<IndexSet> &sizes,
+           const BlockCompressedSimpleSparsityPattern &bcsp,
+           const MPI_Comm &com);
        /**
         * Matrix-vector multiplication:
         * let $dst = M*src$ with $M$
index 1ee6f87ae49c1e8a53a76bde7389aefbb425339c,c8444c379f1c73eb8e8f235212ef98144470bb64..22706dd70fdd69a133b37a002c577fb70ee4ea1a
@@@ -269,15 -269,47 +269,47 @@@ namespace PETScWrapper
         */
        explicit Vector (const MPI_Comm     &communicator,
                         const IndexSet   &local,
-                        const IndexSet &ghost);
+                        const IndexSet &ghost) DEAL_II_DEPRECATED;
+       /**
+        * Constructs a new parallel ghosted PETSc
+        * vector from an Indexset. Note that
+        * @p local must be contiguous and
+        * the global size of the vector is
+        * determined by local.size(). The
+        * global indices in @p ghost are
+        * supplied as ghost indices that can
+        * also be read locally.
+        *
+        * Note that the @p ghost IndexSet
+        * may be empty and that any indices
+        * already contained in @p local are
+        * ignored during construction. That
+        * way, the ghost parameter can equal
+        * the set of locally relevant
+        * degrees of freedom, see step-32.
+        *
+        * @note This operation always creates a ghosted
+        * vector.
+        */
 -      explicit Vector (const IndexSet &local,
++      Vector (const IndexSet &local,
+                        const IndexSet &ghost,
 -                       const MPI_Comm &communicator = MPI_COMM_WORLD);
++                       const MPI_Comm &communicator);
  
        /**
         * Constructs a new parallel PETSc
         * vector from an Indexset. This creates a non
         * ghosted vector.
         */
-       explicit Vector (const MPI_Comm     &communicator,
-                        const IndexSet   &local);
+       explicit Vector (const MPI_Comm &communicator,
+                        const IndexSet &local) DEAL_II_DEPRECATED;
+       /**
+        * Constructs a new parallel PETSc
+        * vector from an Indexset. This creates a non
+        * ghosted vector.
+        */
+       explicit Vector (const IndexSet &local,
 -                       const MPI_Comm &communicator = MPI_COMM_WORLD);
++                       const MPI_Comm &communicator);
  
        /**
         * Copy the given vector. Resize the
         */
        void reinit (const MPI_Comm     &communicator,
                     const IndexSet   &local,
-                    const IndexSet &ghost);
+                    const IndexSet &ghost) DEAL_II_DEPRECATED;
+       /**
+        * Reinit as a vector without ghost elements. See
+        * constructor with same signature
+        * for more detais.
+        */
+       void reinit (const IndexSet &local,
+                    const IndexSet &ghost,
 -                   const MPI_Comm &communicator = MPI_COMM_WORLD);
++                   const MPI_Comm &communicator);
  
        /**
         * Reinit as a vector without ghost elements. See
         * for more detais.
         */
        void reinit (const MPI_Comm     &communicator,
-                    const IndexSet   &local);
+                    const IndexSet   &local) DEAL_II_DEPRECATED;
+       /**
+        * Reinit as a vector without ghost elements. See
+        * constructor with same signature
+        * for more detais.
+        */
+       void reinit (const IndexSet &local,
 -                   const MPI_Comm &communicator = MPI_COMM_WORLD);
++                   const MPI_Comm &communicator);
  
        /**
         * Return a reference to the MPI

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.