--- /srv/reproducible-results/rbuild-debian/r-b-build.HwQGva6B/b1/deal.ii_9.6.2-4_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.HwQGva6B/b2/deal.ii_9.6.2-4_amd64.changes ├── Files │ @@ -1,5 +1,5 @@ │ │ 1c29cf696174139c5ca4e74fdb6fddd8 1066297928 debug optional libdeal.ii-9.6.2-dbgsym_9.6.2-4_amd64.deb │ 998d32ef6d558786234178280e8d27c1 91453656 libs optional libdeal.ii-9.6.2_9.6.2-4_amd64.deb │ 41addbaaa256971cca70637e9e76f17c 2258276 libdevel optional libdeal.ii-dev_9.6.2-4_amd64.deb │ - f0f17e221673cbbab0491f1fb465c8f9 286289592 doc optional libdeal.ii-doc_9.6.2-4_all.deb │ + 3c0dfe25e8dd2c43b7acaa3a4f3eb004 286234924 doc optional libdeal.ii-doc_9.6.2-4_all.deb ├── libdeal.ii-doc_9.6.2-4_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-06-30 07:29:44.000000 debian-binary │ │ --rw-r--r-- 0 0 0 270576 2025-06-30 07:29:44.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 286018824 2025-06-30 07:29:44.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 270600 2025-06-30 07:29:44.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 285964132 2025-06-30 07:29:44.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: libdeal.ii-doc │ │ │ │ Source: deal.ii │ │ │ │ Version: 9.6.2-4 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian Science Maintainers │ │ │ │ -Installed-Size: 644375 │ │ │ │ +Installed-Size: 644711 │ │ │ │ Depends: fonts-mathjax-extras, libjs-mathjax │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: http://www.dealii.org/ │ │ │ │ Description: Differential Equations Analysis Library - html doc. and examples │ │ │ │ deal.II is a C++ program library targeted at the computational solution of │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -604,29 +604,29 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 65584 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_6_1_and_6_2.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5676 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_6_2_0_and_6_2_1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 53953 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_6_2_and_6_3.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9952 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_6_3_0_and_6_3_1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 36566 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_6_3_and_7_0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 49560 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_7_0_and_7_1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 45297 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_7_1_and_7_2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34013 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_7_2_and_7_3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34110 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_7_2_and_7_3.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 36053 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_7_3_and_8_0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 38473 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_0_and_8_1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 70104 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_1_and_8_2.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5002 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_2_0_and_8_2_1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 64815 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_2_1_and_8_3.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 63639 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_3_and_8_4.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4799 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_4_0_and_8_4_1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5761 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_4_1_and_8_4_2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 100831 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_4_2_and_8_5_0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 100928 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_4_2_and_8_5_0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 157651 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_5_0_and_9_0_0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5601 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_0_0_and_9_0_1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 98908 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_0_1_and_9_1_0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4931 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_1_0_and_9_1_1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 124702 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_1_1_and_9_2_0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 124799 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_1_1_and_9_2_0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 85740 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_2_0_and_9_3_0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6016 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_3_0_and_9_3_1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5353 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_3_1_and_9_3_2.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6165 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_3_2_and_9_3_3.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 86285 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_3_3_and_9_4_0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 56210 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_4_0_and_9_5_0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5381 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_5_0_and_9_5_2.html │ │ │ │ @@ -2115,15 +2115,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 84974 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1CUDAWrappers_1_1Vector.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8077 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1CommunicationPattern-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20695 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1CommunicationPattern.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 450 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1CommunicationPattern__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1CommunicationPattern__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8499 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1CommunicationPattern__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32162 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1Vector-members.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 139375 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1Vector.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 164981 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1Vector.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5713 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1VectorTraits-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8822 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1VectorTraits.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 829 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1Vector__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1Vector__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17107 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1Vector__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 39717 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1ReadWriteVector-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 193483 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1ReadWriteVector.html │ │ │ │ @@ -2275,15 +2275,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17656 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1SparsityPatternIterators_1_1Accessor__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11453 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1SparsityPatternIterators_1_1Iterator-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 30752 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1SparsityPatternIterators_1_1Iterator.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 936 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1SparsityPattern__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1SparsityPattern__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 19470 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1SparsityPattern__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 44554 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1Vector-members.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 193630 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1Vector.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 245578 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1Vector.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5359 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1VectorTraits-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7538 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1VectorTraits.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 911 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1Vector__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1Vector__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 21812 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1Vector__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5296 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1Vector.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 57627 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1distributed_1_1BlockVector-members.html │ │ │ │ @@ -2669,15 +2669,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11571 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1Assembler_1_1ResidualSimple__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13168 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1Assembler_1_1SystemSimple-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 45891 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1Assembler_1_1SystemSimple.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 723 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1Assembler_1_1SystemSimple__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1Assembler_1_1SystemSimple__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17358 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1Assembler_1_1SystemSimple__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 22488 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1DoFInfo-members.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 110713 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1DoFInfo.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 131065 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1DoFInfo.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8460 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1DoFInfoBox-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 25417 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1DoFInfoBox.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 431 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1DoFInfo__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1DoFInfo__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7933 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1DoFInfo__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13511 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1IntegrationInfo-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 59516 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1IntegrationInfo.html │ │ │ │ @@ -2688,15 +2688,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8807 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1IntegrationInfo__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16104 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalIntegrator-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 61225 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalIntegrator.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 432 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalIntegrator__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalIntegrator__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7111 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalIntegrator__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14831 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalResults-members.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 65614 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalResults.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 74830 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalResults.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 644 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalResults__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalResults__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14519 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalResults__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7772 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LoopControl-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17259 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LoopControl.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 25124 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1MGVectorData-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 100497 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1MGVectorData.html │ │ │ │ @@ -2894,15 +2894,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 30467 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1BlockVector__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 46299 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1SparseMatrix-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 249689 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1SparseMatrix.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 616 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1SparseMatrix__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1SparseMatrix__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9481 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1SparseMatrix__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 41011 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1Vector-members.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 219543 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1Vector.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 257001 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1Vector.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1044 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1Vector__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1Vector__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17705 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1Vector__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 37363 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MatrixBase-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 189518 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MatrixBase.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1349 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MatrixBase__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MatrixBase__inherit__graph.md5 │ │ │ │ @@ -3066,15 +3066,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SparseMatrix__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8233 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SparseMatrix__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 19705 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1TimeStepper-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 97124 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1TimeStepper.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10653 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1TimeStepperData-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 30431 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1TimeStepperData.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 35072 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1VectorBase-members.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 163933 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1VectorBase.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 193440 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1VectorBase.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1045 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1VectorBase__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1VectorBase__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17680 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1VectorBase__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16260 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPackagedOperation-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 54798 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPackagedOperation.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20069 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classParameterAcceptor-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 113293 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classParameterAcceptor.html │ │ │ │ @@ -4224,15 +4224,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24715 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1BlockSparsityPattern__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 43545 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1BlockVector-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 211407 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1BlockVector.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1BlockVector__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1BlockVector__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 31883 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1BlockVector__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 45321 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1Vector-members.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 232604 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1Vector.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 275147 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1Vector.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 809 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1Vector__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1Vector__inherit__graph.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14671 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1Vector__inherit__graph.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11433 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1NOXSolver-members.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 51570 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1NOXSolver.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 430 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1NOXSolver__inherit__graph.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1NOXSolver__inherit__graph.md5 │ │ │ │ @@ -6415,15 +6415,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18347 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__Accessors.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 100511 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__CPP11.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 61812 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__CUDAWrappers.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 241 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__CUDAWrappers.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__CUDAWrappers.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9601 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__CUDAWrappers.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 21438 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__Concepts.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1174237 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__Exceptions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1178922 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__Exceptions.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 27449 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__FE__vs__Mapping__vs__FEValues.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 312 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__FE__vs__Mapping__vs__FEValues.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__FE__vs__Mapping__vs__FEValues.md5 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6367 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__FE__vs__Mapping__vs__FEValues.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6216 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__IO.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 442 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__IO.map │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/group__IO.md5 │ │ │ │ @@ -7884,15 +7884,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5763 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/linear__operator__tools_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11309 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/linear__operator__tools_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6317 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/local__integrator_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24436 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/local__integrator_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5706 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/local__integrators_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10972 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/local__integrators_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6567 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/local__results_8h.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 97631 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/local__results_8h_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 98511 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/local__results_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13396 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/logo200.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9225 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/logstream_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 90724 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/logstream_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13203 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/logstream_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 48414 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/logstream_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15083 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/loop_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 109441 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/loop_8h_source.html │ │ │ │ @@ -8029,15 +8029,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4784 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mesh__worker_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7421 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mesh__worker_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5465 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mesh__worker__info_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10950 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mesh__worker__info_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5965 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mesh__worker__vector__selector_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12191 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mesh__worker__vector__selector_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7016 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/meshworker_2dof__info_8h.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 94502 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/meshworker_2dof__info_8h_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 96487 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/meshworker_2dof__info_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7531 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/meshworker_2functional_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 58659 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/meshworker_2functional_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5276 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mg_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7980 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mg_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6048 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mg__base_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18590 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mg__base_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6698 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/mg__base_8h.html │ │ │ │ @@ -8696,15 +8696,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5116 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__block__vector_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9665 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__block__vector_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6602 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__sparse__matrix_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 195444 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__sparse__matrix_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5122 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__sparse__matrix_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9585 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__sparse__matrix_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5994 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__vector_8cc.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 106738 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__vector_8cc_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 122056 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__vector_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5077 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__vector_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9496 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__parallel__vector_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8278 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__precondition_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 304039 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__precondition_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14299 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__precondition_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 174439 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__precondition_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4675 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__snes_8cc.html │ │ │ │ @@ -8720,19 +8720,19 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7931 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__sparse__matrix_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 77345 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__sparse__matrix_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4667 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__ts_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 34171 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__ts_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7185 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__ts_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 94223 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__ts_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9743 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__vector_8h.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 66863 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__vector_8h_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 67823 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__vector_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8812 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__vector__base_8cc.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 242939 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__vector__base_8cc_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 291224 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__vector__base_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7720 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__vector__base_8h.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 196331 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__vector__base_8h_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 198551 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/petsc__vector__base_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6438 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/physics_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9824 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/physics_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 112820 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/plate_with_a_hole.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 124647 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/plate_with_a_hole_3D.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 696 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/plus.svg │ │ │ │ -rw-r--r-- 0 root (0) root (0) 696 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/plusd.svg │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5338 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/point__conversion_8h.html │ │ │ │ @@ -8973,19 +8973,19 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 276457 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_14.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12134 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_15.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4673 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_16.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 125362 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_17.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 258057 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_18.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 157301 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_19.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 220616 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_1a.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 289804 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_1b.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 289315 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_1b.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 40894 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_1c.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 235387 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_1d.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 464546 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_1e.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 260240 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_1f.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 465583 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_1e.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 259941 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_1f.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3645 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_2.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 56423 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_20.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 167601 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_21.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 36152 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_22.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3907 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_23.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 269 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_24.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4076 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_25.js │ │ │ │ @@ -8997,15 +8997,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1892 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_7.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2888 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_8.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3088 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_9.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7437 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_a.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 350 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_b.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 258512 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_c.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 107860 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_d.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 418156 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_e.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 417992 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_e.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 200058 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/all_f.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 43245 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/classes_0.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9809 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/classes_1.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5320 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/classes_10.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13686 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/classes_11.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 59275 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/classes_12.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 38047 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/search/classes_13.js │ │ │ │ @@ -11653,17 +11653,17 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6156 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__block__vector_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 57154 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__block__vector_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6173 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__communication__pattern_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 25491 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__communication__pattern_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6826 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__communication__pattern_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 21544 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__communication__pattern_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6601 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__vector_8cc.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 165702 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__vector_8cc_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 180779 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__vector_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8199 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__vector_8h.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 115186 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__vector_8h_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 116561 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__vector_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13727 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__index__access_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 37049 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__index__access_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15045 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__linear__operator_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 47757 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__linear__operator_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9514 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__parallel__block__vector_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 86940 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__parallel__block__vector_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6101 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__precondition_8cc.html │ │ │ │ @@ -11715,23 +11715,23 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9110 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__sparsity__pattern_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 200374 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__sparsity__pattern_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 22093 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__types_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 37645 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__types_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5821 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__vector_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 22247 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__vector_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11574 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__vector_8h.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 226950 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__vector_8h_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 229950 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__vector_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11074 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__utilities_8cc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 43621 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__utilities_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12368 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__utilities_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 29175 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__utilities_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6897 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__vector_8cc.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 222150 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__vector_8cc_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 242628 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__vector_8cc_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11178 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__vector_8h.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 324173 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__vector_8h_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 341186 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__vector_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 64742 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/truncated_cone_2d.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 191918 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/truncated_cone_3d.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5608 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/tuple_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11522 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/tuple_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4772 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/tutorial_8h.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7317 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/tutorial_8h_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23239 2025-06-30 07:29:44.000000 ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/types_8h.html │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/cell__status_8h.html │ │ │ │ @@ -147,21 +147,21 @@ │ │ │ │ │ │ │ │ cell_will_be_refined 

The cell will be or was refined.

│ │ │ │ │ │ │ │ children_will_be_coarsened 

The children of this cell will be or were coarsened into this cell.

│ │ │ │ │ │ │ │ cell_invalid 

Invalid status. Will not occur for the user.

│ │ │ │ │ │ │ │ -CELL_PERSIST 
Deprecated:
Use CellStatus::cell_will_persist instead
│ │ │ │ +CELL_PERSIST 
Deprecated:
Use CellStatus::cell_will_persist instead
│ │ │ │ │ │ │ │ -CELL_REFINE 
Deprecated:
Use CellStatus::cell_will_be_refined instead
│ │ │ │ +CELL_REFINE 
Deprecated:
Use CellStatus::cell_will_be_refined instead
│ │ │ │ │ │ │ │ -CELL_COARSEN 
Deprecated:
Use CellStatus::cell_will_be_coarsened instead
│ │ │ │ +CELL_COARSEN 
Deprecated:
Use CellStatus::cell_will_be_coarsened instead
│ │ │ │ │ │ │ │ -CELL_INVALID 
Deprecated:
Use CellStatus::cell_invalid instead
│ │ │ │ +CELL_INVALID 
Deprecated:
Use CellStatus::cell_invalid instead
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

Definition at line 30 of file cell_status.h.

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_7_2_and_7_3.html │ │ │ │ @@ -198,15 +198,15 @@ │ │ │ │ │ │ │ │
  • │ │ │ │

    New: GridGenerator::extrude_triangulation() allows you to extrude a 2d mesh to turn it into a 3d mesh.
    │ │ │ │ (Timo Heister, 2013/02/16)

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │ -

    PETScWrappers::Vector::operator= and PETScWrappers::MPI::Vector::operator= now call update_ghost_values() automatically if necessary. This means that update_ghost_values() does not need to be called from user code at all any more.
    │ │ │ │ +

    PETScWrappers::Vector::operator= and PETScWrappers::MPI::Vector::operator= now call update_ghost_values() automatically if necessary. This means that update_ghost_values() does not need to be called from user code at all any more.
    │ │ │ │ (Timo Heister, 2013/02/14)

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │

    Fixed: VectorTools::interpolate did not work properly in 1d if boundary indicators had been set to anything but the default (i.e., zero at the left and one at the right end of the domain). This was a hold-over from the past when these were the only possible values. This is now fixed.
    │ │ │ │ (Kevin Dugan, Wolfgang Bangerth, 2013/02/14)

    │ │ │ │

    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -166,16 +166,16 @@ │ │ │ │ │ (Timo Heister, 2013/02/19) │ │ │ │ │ 3. New: _P_E_T_S_c_W_r_a_p_p_e_r_s::*Matrix::add(other, factor) to add a scaled other │ │ │ │ │ matrix to the current matrix. │ │ │ │ │ (Jose Javier Munoz Criollo, 2013/02/19) │ │ │ │ │ 4. New: _G_r_i_d_G_e_n_e_r_a_t_o_r_:_:_e_x_t_r_u_d_e___t_r_i_a_n_g_u_l_a_t_i_o_n_(_) allows you to extrude a 2d │ │ │ │ │ mesh to turn it into a 3d mesh. │ │ │ │ │ (Timo Heister, 2013/02/16) │ │ │ │ │ - 5. PETScWrappers::Vector::operator= and PETScWrappers::MPI::Vector:: │ │ │ │ │ - operator= now call update_ghost_values() automatically if necessary. This │ │ │ │ │ + 5. PETScWrappers::Vector::operator= and _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ + _o_p_e_r_a_t_o_r= now call update_ghost_values() automatically if necessary. This │ │ │ │ │ means that update_ghost_values() does not need to be called from user │ │ │ │ │ code at all any more. │ │ │ │ │ (Timo Heister, 2013/02/14) │ │ │ │ │ 6. Fixed: _V_e_c_t_o_r_T_o_o_l_s_:_:_i_n_t_e_r_p_o_l_a_t_e did not work properly in 1d if boundary │ │ │ │ │ indicators had been set to anything but the default (i.e., zero at the │ │ │ │ │ left and one at the right end of the domain). This was a hold-over from │ │ │ │ │ the past when these were the only possible values. This is now fixed. │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_8_4_2_and_8_5_0.html │ │ │ │ @@ -107,15 +107,15 @@ │ │ │ │
  • │ │ │ │
  • │ │ │ │

    Changed: The template arguments to the DerivativeApproximation::approximate_derivative_tensor() function have been modified. It is no longer necessary to explicitly specify the dim and spacedim arguments as they are determined from the input DoFHandler.
    │ │ │ │ (Jean-Paul Pelteret, 2017/02/16)

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │ -

    Changed: PETScWrappers::VectorBase::operator= is now both private and undefined. This operator was formerly implicitly defined (i.e., it did a byte-for-byte copy of VectorBase's members), which provided, almost certainly, the wrong behavior since the underlying Vec (the managed PETSc object) would then be destroyed twice. Since both inheriting classes (PETScWrappers::Vector and PETScWrappers::MPI::Vector) define their own operator= overloads this operator is also not necessary.
    │ │ │ │ +

    Changed: PETScWrappers::VectorBase::operator= is now both private and undefined. This operator was formerly implicitly defined (i.e., it did a byte-for-byte copy of VectorBase's members), which provided, almost certainly, the wrong behavior since the underlying Vec (the managed PETSc object) would then be destroyed twice. Since both inheriting classes (PETScWrappers::Vector and PETScWrappers::MPI::Vector) define their own operator= overloads this operator is also not necessary.
    │ │ │ │ (David Wells, 2017/02/11)

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │

    Fixed: The MappingQGeneric class (which is a base class of MappingQ) sometimes set the update_JxW_values flag internally, even though this was not necessary. This resulted in doing more work than was actually necessary, and this has been rectified. On the other hand, this change means that in some circumstances, codes may not have explicitly told an FEValues or FEFaceValues object that they actually need the JxW values, but could access them anyway without getting an error. This will now yield an error that is easily fixed by explicitly listing update_JxW_values as a required flag where you create the FEValues object.
    │ │ │ │ (Wolfgang Bangerth, 2017/01/16)

    │ │ │ │

    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -19,15 +19,15 @@ │ │ │ │ │ is 'matrix' or 'inverse_matrix'. │ │ │ │ │ (Daniel Arndt, 2017/03/18) │ │ │ │ │ 2. Changed: The template arguments to the _D_e_r_i_v_a_t_i_v_e_A_p_p_r_o_x_i_m_a_t_i_o_n_:_: │ │ │ │ │ _a_p_p_r_o_x_i_m_a_t_e___d_e_r_i_v_a_t_i_v_e___t_e_n_s_o_r_(_) function have been modified. It is no │ │ │ │ │ longer necessary to explicitly specify the dim and spacedim arguments as │ │ │ │ │ they are determined from the input _D_o_F_H_a_n_d_l_e_r. │ │ │ │ │ (Jean-Paul Pelteret, 2017/02/16) │ │ │ │ │ - 3. Changed: PETScWrappers::VectorBase::operator= is now both private and │ │ │ │ │ + 3. Changed: _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r= is now both private and │ │ │ │ │ undefined. This operator was formerly implicitly defined (i.e., it did a │ │ │ │ │ byte-for-byte copy of VectorBase's members), which provided, almost │ │ │ │ │ certainly, the wrong behavior since the underlying Vec (the managed PETSc │ │ │ │ │ object) would then be destroyed twice. Since both inheriting classes │ │ │ │ │ (PETScWrappers::Vector and _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r) define their own │ │ │ │ │ operator= overloads this operator is also not necessary. │ │ │ │ │ (David Wells, 2017/02/11) │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/changes_between_9_1_1_and_9_2_0.html │ │ │ │ @@ -122,15 +122,15 @@ │ │ │ │
  • │ │ │ │
  • │ │ │ │

    Removed: The deprecated TrilinosWrappers matrix and sparsity patterns and reinitialization functions have been removed.
    │ │ │ │ (Daniel Arndt, 2020/04/22)

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │ -

    Removed: The deprecated member functions PETScWrappers::VectorBase::ratio() and Vector::ratio() have been removed.
    │ │ │ │ +

    Removed: The deprecated member functions PETScWrappers::VectorBase::ratio() and Vector::ratio() have been removed.
    │ │ │ │ (Daniel Arndt, 2020/04/17)

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │

    Changed: The header file deal.II/fe/fe_q.h is not included implicitly via deal.II/fe/mapping_q_generic.h any more. Add the header deal.II/fe/fe_q.h if necessary.
    │ │ │ │ (Martin Kronbichler, 2020/04/16)

    │ │ │ │

    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -38,16 +38,16 @@ │ │ │ │ │ 4. Removed: The deprecated member functions domain_partitioner(), │ │ │ │ │ vector_partitioner() and range_partitioner() in _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s classes │ │ │ │ │ have been removed. │ │ │ │ │ (Daniel Arndt, 2020/04/24) │ │ │ │ │ 5. Removed: The deprecated _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s matrix and sparsity patterns and │ │ │ │ │ reinitialization functions have been removed. │ │ │ │ │ (Daniel Arndt, 2020/04/22) │ │ │ │ │ - 6. Removed: The deprecated member functions PETScWrappers::VectorBase::ratio │ │ │ │ │ - () and Vector::ratio() have been removed. │ │ │ │ │ + 6. Removed: The deprecated member functions _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_r_a_t_i_o │ │ │ │ │ + _(_) and Vector::ratio() have been removed. │ │ │ │ │ (Daniel Arndt, 2020/04/17) │ │ │ │ │ 7. Changed: The header file deal.II/fe/fe_q.h is not included implicitly via │ │ │ │ │ deal.II/fe/mapping_q_generic.h any more. Add the header deal.II/fe/fe_q.h │ │ │ │ │ if necessary. │ │ │ │ │ (Martin Kronbichler, 2020/04/16) │ │ │ │ │ 8. Removed: The deprecated _V_e_c_t_o_r_:_:_p_r_i_n_t overloads have been removed. │ │ │ │ │ (Daniel Arndt, 2020/04/15) │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classDoFHandler.html │ │ │ │ @@ -629,15 +629,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    using DoFHandler< dim, spacedim >::active_fe_index_type = types::fe_index
    │ │ │ │
    │ │ │ │

    The type in which we store the active FE index.

    │ │ │ │ -
    Deprecated:
    Use types::fe_index instead.
    │ │ │ │ +
    Deprecated:
    Use types::fe_index instead.
    │ │ │ │ │ │ │ │

    Definition at line 536 of file dof_handler.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ offset_type

    │ │ │ │ @@ -886,15 +886,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    │ │ │ │

    For each locally owned cell, set the active finite element index to the corresponding value given in active_fe_indices.

    │ │ │ │

    The vector active_fe_indices needs to have as many entries as there are active cells. The FE indices must be in the order in which we iterate over active cells. Vector entries corresponding to active cells that are not locally owned are ignored.

    │ │ │ │

    Active FE indices will only be set for locally owned cells. Ghost and artificial cells will be ignored; no active FE index will be assigned to them. To exchange active FE indices on ghost cells, call distribute_dofs() afterwards.

    │ │ │ │ -
    Deprecated:
    Use set_active_fe_indices() with the types::fe_index datatype.
    │ │ │ │ +
    Deprecated:
    Use set_active_fe_indices() with the types::fe_index datatype.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_active_fe_indices() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -934,15 +934,15 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    For each locally relevant cell, extract the active finite element index and fill the vector active_fe_indices in the order in which we iterate over active cells. This vector is resized, if necessary.

    │ │ │ │

    As we do not know the active FE index on artificial cells, they are set to the invalid value numbers::invalid_fe_index.

    │ │ │ │

    For DoFHandler objects without hp-capabilities, the vector will consist of zeros, indicating that all cells use the same finite element. In hp-mode, the values may be different, though.

    │ │ │ │

    The returned vector has as many entries as there are active cells.

    │ │ │ │ -
    Deprecated:
    Use get_active_fe_indices() that returns the result vector.
    │ │ │ │ +
    Deprecated:
    Use get_active_fe_indices() that returns the result vector.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ set_future_fe_indices()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -2674,15 +2674,15 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ Initial value:
    =
    │ │ │ │ │ │ │ │
    const types::fe_index invalid_fe_index
    Definition types.h:243
    │ │ │ │

    Invalid index of the finite element to be used on a given cell.

    │ │ │ │ -
    Deprecated:
    Use numbers::invalid_fe_index instead.
    │ │ │ │ +
    Deprecated:
    Use numbers::invalid_fe_index instead.
    │ │ │ │ │ │ │ │

    Definition at line 528 of file dof_handler.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ invalid_active_fe_index

    │ │ │ │ @@ -2704,15 +2704,15 @@ │ │ │ │ static │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ Initial value:
    =
    │ │ │ │ │ │ │ │

    Invalid active FE index which will be used as a default value to determine whether a future FE index has been set or not.

    │ │ │ │ -
    Deprecated:
    Use numbers::invalid_fe_index instead.
    │ │ │ │ +
    Deprecated:
    Use numbers::invalid_fe_index instead.
    │ │ │ │ │ │ │ │

    Definition at line 549 of file dof_handler.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ block_info_object

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classFEFacePointEvaluation.html │ │ │ │ @@ -8697,15 +8697,15 @@ │ │ │ │ 00021f80: 6261 3664 3763 3239 3031 3633 3934 6362 ba6d7c29016394cb │ │ │ │ 00021f90: 3922 3e72 6569 6e69 7428 293c 2f61 3e2e 9">reinit(). │ │ │ │ 00021fa0: 3c2f 703e 0a3c 646c 2063 6c61 7373 3d22

    .
    │ │ │ │ 00021fc0: 3c62 3e3c 6120 636c 6173 733d 2265 6c22 Deprec │ │ │ │ +00021ff0: 6564 3030 3031 3036 223e 4465 7072 6563 ed000106">Deprec │ │ │ │ 00022000: 6174 6564 3a3c 2f61 3e3c 2f62 3e3c 2f64 ated:
    Use the fu │ │ │ │ 00022020: 6e63 7469 6f6e 203c 6120 636c 6173 733d nction │ │ │ │

    The same as above.

    │ │ │ │ -
    Deprecated:
    Use the average_of_gradients() function instead.
    │ │ │ │ +
    Deprecated:
    Use the average_of_gradients() function instead.
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ jump_in_hessians()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -638,15 +638,15 @@ │ │ │ │ │ │ │ │ ) │ │ │ │ const │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    The same as above.

    │ │ │ │ -
    Deprecated:
    Use the average_of_hessians() function instead.
    │ │ │ │ +
    Deprecated:
    Use the average_of_hessians() function instead.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ jump_in_third_derivatives()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -811,15 +811,15 @@ │ │ │ │ │ │ │ │ ) │ │ │ │ const │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    The same as above.

    │ │ │ │ -
    Deprecated:
    Use the average_of_hessians() function instead.
    │ │ │ │ +
    Deprecated:
    Use the average_of_hessians() function instead.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_function_values()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classFEPointEvaluation.html │ │ │ │ @@ -10245,15 +10245,15 @@ │ │ │ │ 00028040: 3839 3039 6337 3138 6133 3832 223e 7265 8909c718a382">re │ │ │ │ 00028050: 696e 6974 2829 3c2f 613e 2e3c 2f70 3e0a init().

    . │ │ │ │ 00028060: 3c64 6c20 636c 6173 733d 2264 6570 7265
    Deprecated: │ │ │ │ +000280b0: 3130 3622 3e44 6570 7265 6361 7465 643a 106">Deprecated: │ │ │ │ 000280c0: 3c2f 613e 3c2f 623e 3c2f 6474 3e3c 6464
    Use the functio │ │ │ │ 000280e0: 6e20 3c61 2063 6c61 7373 3d22 656c 2220 n
    │ │ │ │ 00015ee0: 3c62 3e3c 6120 636c 6173 733d 2265 6c22 Deprec │ │ │ │ +00015f10: 6564 3030 3031 3036 223e 4465 7072 6563 ed000106">Deprec │ │ │ │ 00015f20: 6174 6564 3a3c 2f61 3e3c 2f62 3e3c 2f64 ated:
    Use the fu │ │ │ │ 00015f40: 6e63 7469 6f6e 203c 6120 636c 6173 733d nction

    Detailed Description

    │ │ │ │
    template<int dim>
    │ │ │ │ class FE_ABF< dim >

    Implementation of Arnold-Boffi-Falk (ABF) elements, conforming with the space Hdiv. These elements generate vector fields with normal components continuous between mesh cells.

    │ │ │ │

    These elements are based on an article from Arnold, Boffi and Falk: Quadrilateral H(div) finite elements, SIAM J. Numer. Anal. Vol.42, No.6, pp.2429-2451

    │ │ │ │

    In this article, the authors demonstrate that the usual RT elements and also BDM and other proposed finite dimensional subspaces of H(div) do not work properly on arbitrary FE grids. I.e. the convergence rates deteriorate on these meshes. As a solution the authors propose the ABF elements, which are implemented in this class.

    │ │ │ │

    This class is not implemented for the codimension one case (spacedim != dim).

    │ │ │ │ -
    Todo:
    Even if this element is implemented for two and three space dimensions, the definition of the node values relies on consistently oriented faces in 3d. Therefore, care should be taken on complicated meshes.
    │ │ │ │ +
    Todo:
    Even if this element is implemented for two and three space dimensions, the definition of the node values relies on consistently oriented faces in 3d. Therefore, care should be taken on complicated meshes.
    │ │ │ │

    Interpolation

    │ │ │ │

    The interpolation operators associated with the RT element are constructed such that interpolation and computing the divergence are commuting operations. We require this from interpolating arbitrary functions as well as the restriction matrices. It can be achieved by two interpolation schemes, the simplified one in FE_RaviartThomasNodal and the original one here:

    │ │ │ │

    Node values on edges/faces

    │ │ │ │

    On edges or faces, the node values are the moments of the normal component of the interpolated function with respect to the traces of the RT polynomials. Since the normal trace of the RT space of degree k on an edge/face is the space Qk, the moments are taken with respect to this space.

    │ │ │ │

    Interior node values

    │ │ │ │

    Higher order RT spaces have interior nodes. These are moments taken with respect to the gradient of functions in Qk on the cell (this space is the matching space for RTk in a mixed formulation).

    │ │ │ │

    Generalized support points

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classFE__BDM.html │ │ │ │ @@ -595,16 +595,16 @@ │ │ │ │ static std::mutex mutex │ │ │ │   │ │ │ │ │ │ │ │

    Detailed Description

    │ │ │ │
    template<int dim>
    │ │ │ │ class FE_BDM< dim >

    The Brezzi-Douglas-Marini element.

    │ │ │ │

    Degrees of freedom

    │ │ │ │ -
    Todo:
    The 3d version exhibits some numerical instabilities, in particular for higher order
    │ │ │ │ -
    Todo:
    Restriction matrices are missing.
    │ │ │ │ +
    Todo:
    The 3d version exhibits some numerical instabilities, in particular for higher order
    │ │ │ │ +
    Todo:
    Restriction matrices are missing.
    │ │ │ │

    The matching pressure space for FE_BDM of order k is the element FE_DGP of order k-1.

    │ │ │ │

    The BDM element of order p has p+1 degrees of freedom on each face. These are implemented as the function values in the p+1 Gauss points on each face.

    │ │ │ │

    Additionally, for order greater or equal 2, we have additional p(p-1), the number of vector valued polynomials in Pp, interior degrees of freedom. These are the vector function values in the first p(p-1)/2 of the p2 Gauss points in the cell.

    │ │ │ │ │ │ │ │

    Definition at line 58 of file fe_bdm.h.

    │ │ │ │

    Member Typedef Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classGinkgoWrappers_1_1SolverBase.html │ │ │ │ @@ -597,15 +597,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ private │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Ginkgo matrix data structure. First template parameter is for storing the array of the non-zeros of the matrix. The second is for the row pointers and the column indices.

    │ │ │ │ -
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ +
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ │ │ │ │

    Definition at line 195 of file ginkgo_solver.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ exec_type

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classGinkgoWrappers_1_1SolverBicgstab.html │ │ │ │ @@ -663,15 +663,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ privateinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Ginkgo matrix data structure. First template parameter is for storing the array of the non-zeros of the matrix. The second is for the row pointers and the column indices.

    │ │ │ │ -
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ +
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ │ │ │ │

    Definition at line 195 of file ginkgo_solver.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ exec_type

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classGinkgoWrappers_1_1SolverCG.html │ │ │ │ @@ -663,15 +663,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ privateinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Ginkgo matrix data structure. First template parameter is for storing the array of the non-zeros of the matrix. The second is for the row pointers and the column indices.

    │ │ │ │ -
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ +
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ │ │ │ │

    Definition at line 195 of file ginkgo_solver.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ exec_type

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classGinkgoWrappers_1_1SolverCGS.html │ │ │ │ @@ -664,15 +664,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ privateinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Ginkgo matrix data structure. First template parameter is for storing the array of the non-zeros of the matrix. The second is for the row pointers and the column indices.

    │ │ │ │ -
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ +
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ │ │ │ │

    Definition at line 195 of file ginkgo_solver.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ exec_type

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classGinkgoWrappers_1_1SolverFCG.html │ │ │ │ @@ -666,15 +666,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ privateinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Ginkgo matrix data structure. First template parameter is for storing the array of the non-zeros of the matrix. The second is for the row pointers and the column indices.

    │ │ │ │ -
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ +
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ │ │ │ │

    Definition at line 195 of file ginkgo_solver.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ exec_type

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classGinkgoWrappers_1_1SolverGMRES.html │ │ │ │ @@ -663,15 +663,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ privateinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Ginkgo matrix data structure. First template parameter is for storing the array of the non-zeros of the matrix. The second is for the row pointers and the column indices.

    │ │ │ │ -
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ +
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ │ │ │ │

    Definition at line 195 of file ginkgo_solver.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ exec_type

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classGinkgoWrappers_1_1SolverIR.html │ │ │ │ @@ -664,15 +664,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ privateinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Ginkgo matrix data structure. First template parameter is for storing the array of the non-zeros of the matrix. The second is for the row pointers and the column indices.

    │ │ │ │ -
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ +
    Todo:
    Templatize based on Matrix type.
    │ │ │ │ │ │ │ │

    Definition at line 195 of file ginkgo_solver.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ exec_type

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1CUDAWrappers_1_1Vector.html │ │ │ │ @@ -598,15 +598,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ inline │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ +
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ │ │ │ │

    Definition at line 150 of file cuda_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ operator=() [3/3]

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1EpetraWrappers_1_1Vector.html │ │ │ │ @@ -124,202 +124,202 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [legend]
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Types

    using value_type = VectorTraits::value_type
    using value_type = VectorTraits::value_type
     
    using size_type = VectorTraits::size_type
    using size_type = VectorTraits::size_type
     
    using real_type = value_type
    using real_type = value_type
     
    using reference = internal::VectorReference
    using reference = internal::VectorReference
     
    using const_reference = const internal::VectorReference
    using const_reference = const internal::VectorReference
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Member Functions

    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< VectorTraits::value_type > &elements) const=0
    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< VectorTraits::value_type > &elements) const=0
     
    template<class Archive >
    void serialize (Archive &ar, const unsigned int version)
    template<class Archive >
    void serialize (Archive &ar, const unsigned int version)
     
    1: Basic Object-handling
     Vector ()
     
     Vector (const Vector &V)
     Vector (const Vector &V)
     
     Vector (const IndexSet &parallel_partitioner, const MPI_Comm communicator)
     Vector (const IndexSet &parallel_partitioner, const MPI_Comm communicator)
     
    void reinit (const IndexSet &parallel_partitioner, const MPI_Comm communicator, const bool omit_zeroing_entries=false)
    void reinit (const IndexSet &parallel_partitioner, const MPI_Comm communicator, const bool omit_zeroing_entries=false)
     
    void reinit (const Vector &V, const bool omit_zeroing_entries=false)
    void reinit (const Vector &V, const bool omit_zeroing_entries=false)
     
    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< double > &elements) const override
    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< double > &elements) const override
     
    Vectoroperator= (const Vector &V)
    Vectoroperator= (const Vector &V)
     
    Vectoroperator= (const double s)
    Vectoroperator= (const double s)
     
    void import_elements (const ReadWriteVector< double > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    void import_elements (const ReadWriteVector< double > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
     
    void import (const ReadWriteVector< double > &V, const VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    void import (const ReadWriteVector< double > &V, const VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
     
    2: Data-Access
    reference operator() (const size_type index)
    reference operator() (const size_type index)
     
    value_type operator() (const size_type index) const
    value_type operator() (const size_type index) const
     
    reference operator[] (const size_type index)
    reference operator[] (const size_type index)
     
    value_type operator[] (const size_type index) const
    value_type operator[] (const size_type index) const
     
    3: Modification of vectors
    Vectoroperator*= (const double factor)
    Vectoroperator*= (const double factor)
     
    Vectoroperator/= (const double factor)
    Vectoroperator/= (const double factor)
     
    Vectoroperator+= (const Vector &V)
    Vectoroperator+= (const Vector &V)
     
    Vectoroperator-= (const Vector &V)
    Vectoroperator-= (const Vector &V)
     
    double operator* (const Vector &V) const
    double operator* (const Vector &V) const
     
    void add (const double a)
    void add (const double a)
     
    void add (const double a, const Vector &V)
    void add (const double a, const Vector &V)
     
    void add (const double a, const Vector &V, const double b, const Vector &W)
    void add (const double a, const Vector &V, const double b, const Vector &W)
     
    void sadd (const double s, const double a, const Vector &V)
    void sadd (const double s, const double a, const Vector &V)
     
    void scale (const Vector &scaling_factors)
    void scale (const Vector &scaling_factors)
     
    void equ (const double a, const Vector &V)
    void equ (const double a, const Vector &V)
     
    bool all_zero () const
    bool all_zero () const
     
    4: Scalar products, norms and related operations
    double mean_value () const
    double mean_value () const
     
    double l1_norm () const
    double l1_norm () const
     
    double l2_norm () const
    double l2_norm () const
     
    double linfty_norm () const
    double linfty_norm () const
     
    double add_and_dot (const double a, const Vector &V, const Vector &W)
    double add_and_dot (const double a, const Vector &V, const Vector &W)
     
    5: Scalar products, norms and related operations
    bool has_ghost_elements () const
    bool has_ghost_elements () const
     
    virtual size_type size () const override
    virtual size_type size () const override
     
    size_type locally_owned_size () const
    size_type locally_owned_size () const
     
    MPI_Comm get_mpi_communicator () const
    MPI_Comm get_mpi_communicator () const
     
    ::IndexSet locally_owned_elements () const
    ::IndexSet locally_owned_elements () const
     
    6: Mixed stuff
    void compress (const VectorOperation::values operation)
    void compress (const VectorOperation::values operation)
     
    const Epetra_FEVector & trilinos_vector () const
    const Epetra_FEVector & trilinos_vector () const
     
    Epetra_FEVector & trilinos_vector ()
     
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
     
    std::size_t memory_consumption () const
    std::size_t memory_consumption () const
     
    Subscriptor functionality

    Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class.

    │ │ │ │
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    unsigned int n_subscriptions () const
    unsigned int n_subscriptions () const
     
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
     
    void list_subscribers () const
    void list_subscribers () const
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Public Member Functions

    static ::ExceptionBaseExcDifferentParallelPartitioning ()
    static ::ExceptionBaseExcDifferentParallelPartitioning ()
     
    static ::ExceptionBaseExcVectorTypeNotCompatible ()
    static ::ExceptionBaseExcVectorTypeNotCompatible ()
     
    static ::ExceptionBaseExcTrilinosError (int arg1)
    static ::ExceptionBaseExcTrilinosError (int arg1)
     
    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
     
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Types

    using map_value_type = decltype(counter_map)::value_type
    using map_value_type = decltype(counter_map)::value_type
     
    using map_iterator = decltype(counter_map)::iterator
    using map_iterator = decltype(counter_map)::iterator
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Member Functions

    void create_epetra_comm_pattern (const IndexSet &source_index_set, const MPI_Comm mpi_comm)
    void create_epetra_comm_pattern (const IndexSet &source_index_set, const MPI_Comm mpi_comm)
     
    void check_no_subscribers () const noexcept
    void check_no_subscribers () const noexcept
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Attributes

    std::unique_ptr< Epetra_FEVector > vector
     
    ::IndexSet source_stored_elements
     
    std::shared_ptr< const CommunicationPatternepetra_comm_pattern
    std::shared_ptr< const CommunicationPatternepetra_comm_pattern
     
    std::atomic< unsigned intcounter
     
    std::map< std::string, unsigned intcounter_map
     
    std::vector< std::atomic< bool > * > validity_pointers
     
    const std::type_info * object_info
    const std::type_info * object_info
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Private Attributes

    static std::mutex mutex
    static std::mutex mutex
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Friends

    class internal::VectorReference
    class internal::VectorReference
     
    │ │ │ │

    Detailed Description

    │ │ │ │

    This class implements a wrapper to the Trilinos distributed vector class Epetra_FEVector. This class requires Trilinos to be compiled with MPI support.

    │ │ │ │ │ │ │ │

    Definition at line 225 of file trilinos_epetra_vector.h.

    │ │ │ │

    Member Typedef Documentation

    │ │ │ │ │ │ │ │

    ◆ value_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::EpetraWrappers::Vector::value_type = VectorTraits::value_typeusing LinearAlgebra::EpetraWrappers::Vector::value_type = VectorTraits::value_type
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 229 of file trilinos_epetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -327,15 +327,15 @@ │ │ │ │ │ │ │ │

    ◆ size_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::EpetraWrappers::Vector::size_type = VectorTraits::size_typeusing LinearAlgebra::EpetraWrappers::Vector::size_type = VectorTraits::size_type
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 230 of file trilinos_epetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -343,15 +343,15 @@ │ │ │ │ │ │ │ │

    ◆ real_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::EpetraWrappers::Vector::real_type = value_typeusing LinearAlgebra::EpetraWrappers::Vector::real_type = value_type
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 231 of file trilinos_epetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -359,15 +359,15 @@ │ │ │ │ │ │ │ │

    ◆ reference

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::EpetraWrappers::Vector::reference = internal::VectorReferenceusing LinearAlgebra::EpetraWrappers::Vector::reference = internal::VectorReference
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 232 of file trilinos_epetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -375,15 +375,15 @@ │ │ │ │ │ │ │ │

    ◆ const_reference

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::EpetraWrappers::Vector::const_reference = const internal::VectorReferenceusing LinearAlgebra::EpetraWrappers::Vector::const_reference = const internal::VectorReference
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 233 of file trilinos_epetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -394,15 +394,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_value_type = decltype(counter_map)::value_typeusing Subscriptor::map_value_type = decltype(counter_map)::value_type
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -419,15 +419,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_iterator = decltype(counter_map)::iteratorusing Subscriptor::map_iterator = decltype(counter_map)::iterator
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -464,15 +464,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector< Number >::Vector (const Vectorconst VectorV)
    │ │ │ │
    │ │ │ │

    Copy constructor. Sets the dimension and the partitioning to that of the given vector and copies all elements.

    │ │ │ │ │ │ │ │ @@ -488,21 +488,21 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -525,28 +525,28 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    Vector< Number >::Vector (const IndexSetconst IndexSetparallel_partitioner,
    const MPI_Comm const MPI_Comm communicator 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const IndexSetconst IndexSetparallel_partitioner,
    const MPI_Comm const MPI_Comm communicator,
    const bool omit_zeroing_entries = false const bool omit_zeroing_entries = false 
    )
    │ │ │ │ @@ -562,22 +562,22 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const Vectorconst VectorV,
    const bool omit_zeroing_entries = false const bool omit_zeroing_entries = false 
    )
    │ │ │ │ @@ -596,15 +596,15 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -630,17 +630,17 @@ │ │ │ │ │ │ │ │

    ◆ operator=() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::extract_subvector_to (const ArrayView< const types::global_dof_index > & const ArrayView< const types::global_dof_index > & indices,
    ArrayView< double > & elements 
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & Vector< Number >::operator= Vector & Vector< Number >::operator= (const Vectorconst VectorV)
    │ │ │ │
    │ │ │ │

    Copy function. This function takes a Vector and copies all the elements. The Vector will have the same parallel distribution as V.

    │ │ │ │

    The semantics of this operator are complex. If the two vectors have the same size, and if either the left or right hand side vector of the assignment (i.e., either the input vector on the right hand side, or the calling vector to the left of the assignment operator) currently has ghost elements, then the left hand side vector will also have ghost values and will consequently be a read-only vector (see also the glossary entry on the issue). Otherwise, the left hand vector will be a writable vector after this operation. These semantics facilitate having a vector with ghost elements on the left hand side of the assignment, and a vector without ghost elements on the right hand side, with the resulting left hand side vector having the correct values in both its locally owned and its ghost elements.

    │ │ │ │ @@ -653,17 +653,17 @@ │ │ │ │ │ │ │ │

    ◆ operator=() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & Vector< Number >::operator= Vector & Vector< Number >::operator= (const double const double s)
    │ │ │ │
    │ │ │ │

    Sets all elements of the vector to the scalar s. This operation is only allowed if s is equal to zero.

    │ │ │ │ │ │ │ │ @@ -676,27 +676,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -716,27 +716,27 @@ │ │ │ │
    void Vector< Number >::import_elements (const ReadWriteVector< double > & const ReadWriteVector< double > & V,
    VectorOperation::values operation,
    const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > & const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > & communication_pattern = {} 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -759,17 +759,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    void LinearAlgebra::EpetraWrappers::Vector::import (const ReadWriteVector< double > & const ReadWriteVector< double > & V,
    const VectorOperation::values const VectorOperation::values operation,
    const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > & const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > & communication_pattern = {} 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -786,17 +786,17 @@ │ │ │ │ │ │ │ │

    ◆ operator()() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    internal::VectorReference Vector< Number >::operator() internal::VectorReference Vector< Number >::operator() (const size_type const size_type index)
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    value_type LinearAlgebra::EpetraWrappers::Vector::operator() value_type LinearAlgebra::EpetraWrappers::Vector::operator() (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │

    Provide read-only access to an element.

    │ │ │ │

    When using a vector distributed with MPI, this operation only makes sense for elements that are actually present on the calling processor. Otherwise, an exception is thrown.

    │ │ │ │ @@ -809,29 +809,29 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    internal::VectorReference Vector< Number >::operator[] internal::VectorReference Vector< Number >::operator[] (const size_type const size_type index)
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │
    │ │ │ │

    Provide access to a given element, both read and write.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │

    Definition at line 798 of file trilinos_epetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator[]() [2/2]

    │ │ │ │ @@ -839,44 +839,44 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector::value_type Vector< Number >::operator[] Vector::value_type Vector< Number >::operator[] (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │
    │ │ │ │

    Provide read-only access to an element.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │

    Definition at line 804 of file trilinos_epetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator*=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & Vector< Number >::operator*= Vector & Vector< Number >::operator*= (const double const double factor)
    │ │ │ │
    │ │ │ │

    Multiply the entire vector by a fixed factor.

    │ │ │ │ │ │ │ │ @@ -887,17 +887,17 @@ │ │ │ │ │ │ │ │

    ◆ operator/=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & Vector< Number >::operator/= Vector & Vector< Number >::operator/= (const double const double factor)
    │ │ │ │
    │ │ │ │

    Divide the entire vector by a fixed factor.

    │ │ │ │ │ │ │ │ @@ -908,17 +908,17 @@ │ │ │ │ │ │ │ │

    ◆ operator+=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & Vector< Number >::operator+= Vector & Vector< Number >::operator+= (const Vectorconst VectorV)
    │ │ │ │
    │ │ │ │

    Add the vector V to the present one.

    │ │ │ │ │ │ │ │ @@ -929,17 +929,17 @@ │ │ │ │ │ │ │ │

    ◆ operator-=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & Vector< Number >::operator-= Vector & Vector< Number >::operator-= (const Vectorconst VectorV)
    │ │ │ │
    │ │ │ │

    Subtract the vector V from the present one.

    │ │ │ │ │ │ │ │ @@ -950,17 +950,17 @@ │ │ │ │ │ │ │ │

    ◆ operator*()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    double Vector< Number >::operator* double Vector< Number >::operator* (const Vectorconst VectorV) const
    │ │ │ │
    │ │ │ │

    Return the scalar product of two vectors. The vectors need to have the same layout.

    │ │ │ │ │ │ │ │ @@ -973,15 +973,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::add (const double const double a)
    │ │ │ │
    │ │ │ │

    Add a to all components. Note that is a scalar not a vector.

    │ │ │ │ │ │ │ │ @@ -994,21 +994,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1025,33 +1025,33 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::add (const double const double a,
    const Vectorconst VectorV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1068,27 +1068,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::add (const double const double a,
    const Vectorconst VectorV,
    const double const double b,
    const Vectorconst VectorW 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1105,15 +1105,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::sadd (const double const double s,
    const double const double a,
    const Vectorconst VectorV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::scale (const Vectorconst Vectorscaling_factors)
    │ │ │ │
    │ │ │ │

    Scale each element of this vector by the corresponding element in the argument. This function is mostly meant to simulate multiplication (and immediate re-assignment) by a diagonal scaling matrix. The vectors need to have the same layout.

    │ │ │ │ │ │ │ │ @@ -1126,21 +1126,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1257,27 +1257,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::equ (const double const double a,
    const Vectorconst VectorV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1402,15 +1402,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    double Vector< Number >::add_and_dot (const double const double a,
    const Vectorconst VectorV,
    const Vectorconst VectorW 
    )
    IndexSet Vector< Number >::locally_owned_elements () const
    │ │ │ │
    │ │ │ │ -

    Return an index set that describes which elements of this vector are owned by the current processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set(vec.size())
    │ │ │ │ +

    Return an index set that describes which elements of this vector are owned by the current processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set(vec.size())
    │ │ │ │ +
    std::unique_ptr< Epetra_FEVector > vector
    │ │ │ │
    IndexSet complete_index_set(const IndexSet::size_type N)
    Definition index_set.h:1204
    │ │ │ │
    │ │ │ │

    Definition at line 562 of file trilinos_epetra_vector.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -1418,15 +1419,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::compress (const VectorOperation::values const VectorOperation::values operation)
    │ │ │ │
    │ │ │ │

    Compress the underlying representation of the Trilinos object, i.e. flush the buffers of the vector object if it has any. This function is necessary after writing into a vector element-by-element and before anything else can be done on it.

    │ │ │ │

    See Compressing distributed objects for more information.

    │ │ │ │ @@ -1438,15 +1439,15 @@ │ │ │ │ │ │ │ │

    ◆ trilinos_vector() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    const Epetra_FEVector & Vector< Number >::trilinos_vector const Epetra_FEVector & Vector< Number >::trilinos_vector () const
    │ │ │ │
    │ │ │ │

    Return a const reference to the underlying Trilinos Epetra_FEVector class.

    │ │ │ │ @@ -1486,28 +1487,28 @@ │ │ │ │
    (std::ostream & out,
    const unsigned int const unsigned int precision = 3,
    const bool scientific = true, const bool scientific = true,
    const bool across = true const bool across = true 
    ) const
    │ │ │ │ @@ -1546,21 +1547,21 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1583,15 +1584,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::create_epetra_comm_pattern (const IndexSetconst IndexSetsource_index_set,
    const MPI_Comm const MPI_Comm mpi_comm 
    )
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1723,15 +1724,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ list_subscribers() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename StreamType >
    │ │ │ │ +template<typename StreamType >
    │ │ │ │
    virtual void ReadVector< VectorTraits::value_type >::extract_subvector_to virtual void ReadVector< VectorTraits::value_type >::extract_subvector_to (const ArrayView< const types::global_dof_index > & indices,
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1782,15 +1783,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ serialize()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<class Archive >
    │ │ │ │ +template<class Archive >
    │ │ │ │
    void Subscriptor::list_subscribers (
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1860,15 +1861,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Subscriptor::serialize (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    friend class internal::VectorReferencefriend class internal::VectorReference
    │ │ │ │
    │ │ │ │ friend
    │ │ │ │ @@ -1935,15 +1936,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    std::shared_ptr<const CommunicationPattern> LinearAlgebra::EpetraWrappers::Vector::epetra_comm_patternstd::shared_ptr<const CommunicationPattern> LinearAlgebra::EpetraWrappers::Vector::epetra_comm_pattern
    │ │ │ │
    │ │ │ │ private
    │ │ │ │ @@ -2038,15 +2039,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    const std::type_info* Subscriptor::object_infoconst std::type_info* Subscriptor::object_info
    │ │ │ │
    │ │ │ │ mutableprivateinherited
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -16,276 +16,276 @@ │ │ │ │ │ _L_i_n_e_a_r_ _a_l_g_e_b_r_a_ _c_l_a_s_s_e_s » _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s | _L_i_n_e_a_r_ _a_l_g_e_b_r_a_ _c_l_a_s_s_e_s » _V_e_c_t_o_r │ │ │ │ │ _c_l_a_s_s_e_s │ │ │ │ │ #include <_d_e_a_l_._I_I_/_l_a_c_/_t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h> │ │ │ │ │ Inheritance diagram for LinearAlgebra::EpetraWrappers::Vector: │ │ │ │ │ [Inheritance graph] │ │ │ │ │ [_l_e_g_e_n_d] │ │ │ │ │ PPuubblliicc TTyyppeess │ │ │ │ │ -using  _v_a_l_u_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g  _v_a_l_u_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │   │ │ │ │ │ -using  _s_i_z_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g  _s_i_z_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_:_s_i_z_e___t_y_p_e │ │ │ │ │   │ │ │ │ │ -using  _r_e_a_l___t_y_p_e = _v_a_l_u_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g  _r_e_a_l___t_y_p_e = _v_a_l_u_e___t_y_p_e │ │ │ │ │   │ │ │ │ │ -using  _r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │ +_u_s_i_n_g  _r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │   │ │ │ │ │ -using  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = const internal::VectorReference │ │ │ │ │ +_u_s_i_n_g  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = _c_o_n_s_t internal::VectorReference │ │ │ │ │   │ │ │ │ │ PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ - virtual void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const _A_r_r_a_y_V_i_e_w< const _t_y_p_e_s_:_: │ │ │ │ │ + _v_i_r_t_u_a_l void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t _A_r_r_a_y_V_i_e_w< _c_o_n_s_t _t_y_p_e_s_:_: │ │ │ │ │ _g_l_o_b_a_l___d_o_f___i_n_d_e_x > &indices, _A_r_r_a_y_V_i_e_w< _V_e_c_t_o_r_T_r_a_i_t_s_:_: │ │ │ │ │ - _v_a_l_u_e___t_y_p_e > &elements) const=0 │ │ │ │ │ + _v_a_l_u_e___t_y_p_e > &elements) _c_o_n_s_t=0 │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _s_e_r_i_a_l_i_z_e (Archive &ar, const unsigned _i_n_t version) │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ + void  _s_e_r_i_a_l_i_z_e (_A_r_c_h_i_v_e &_a_r, _c_o_n_s_t unsigned _i_n_t version) │ │ │ │ │   │ │ │ │ │ 1: Basic Object-handling │ │ │ │ │   _V_e_c_t_o_r () │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _V_e_c_t_o_r &V) │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _I_n_d_e_x_S_e_t ¶llel_partitioner, const │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r, _c_o_n_s_t │ │ │ │ │ _M_P_I___C_o_m_m communicator) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _I_n_d_e_x_S_e_t ¶llel_partitioner, const │ │ │ │ │ - _M_P_I___C_o_m_m communicator, const _b_o_o_l │ │ │ │ │ - omit_zeroing_entries=false) │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r, _c_o_n_s_t │ │ │ │ │ + _M_P_I___C_o_m_m communicator, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _V_e_c_t_o_r &V, const _b_o_o_l │ │ │ │ │ - omit_zeroing_entries=false) │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _V_e_c_t_o_r &V, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ - virtual void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const _A_r_r_a_y_V_i_e_w< const _t_y_p_e_s_:_: │ │ │ │ │ + _v_i_r_t_u_a_l void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t _A_r_r_a_y_V_i_e_w< _c_o_n_s_t _t_y_p_e_s_:_: │ │ │ │ │ _g_l_o_b_a_l___d_o_f___i_n_d_e_x > &indices, _A_r_r_a_y_V_i_e_w< double > │ │ │ │ │ - &elements) const override │ │ │ │ │ + &elements) _c_o_n_s_t _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const _V_e_c_t_o_r &V) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const double s) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t double s) │ │ │ │ │   │ │ │ │ │ - void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< double > &V, │ │ │ │ │ - _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, const std:: │ │ │ │ │ - shared_ptr< const _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: │ │ │ │ │ - _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e > &communication_pattern={}) │ │ │ │ │ + void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (_c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< double > &V, │ │ │ │ │ + _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, _c_o_n_s_t std:: │ │ │ │ │ + shared_ptr< _c_o_n_s_t _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: │ │ │ │ │ + _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e > &_c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n={}) │ │ │ │ │   │ │ │ │ │ - void  _i_m_p_o_r_t (const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< double > &V, const │ │ │ │ │ - _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, const std:: │ │ │ │ │ - shared_ptr< const _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: │ │ │ │ │ - _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e > &communication_pattern={}) │ │ │ │ │ + void  _i_m_p_o_r_t (_c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< double > &V, _c_o_n_s_t │ │ │ │ │ + _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, _c_o_n_s_t std:: │ │ │ │ │ + shared_ptr< _c_o_n_s_t _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: │ │ │ │ │ + _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e > &_c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n={}) │ │ │ │ │   │ │ │ │ │ 2: Data-Access │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - _v_a_l_u_e___t_y_p_e  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + _v_a_l_u_e___t_y_p_e  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - _v_a_l_u_e___t_y_p_e  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + _v_a_l_u_e___t_y_p_e  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ 3: Modification of vectors │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_*_= (const double factor) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_*_= (_c_o_n_s_t double factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_/_= (const double factor) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_/_= (_c_o_n_s_t double factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_+_= (const _V_e_c_t_o_r &V) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_+_= (_c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_-_= (const _V_e_c_t_o_r &V) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_-_= (_c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ - double  _o_p_e_r_a_t_o_r_* (const _V_e_c_t_o_r &V) const │ │ │ │ │ + double  _o_p_e_r_a_t_o_r_* (_c_o_n_s_t _V_e_c_t_o_r &V) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const double a) │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t double a) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const double a, const _V_e_c_t_o_r &V) │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t double a, _c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const double a, const _V_e_c_t_o_r &V, const double b, │ │ │ │ │ - const _V_e_c_t_o_r &W) │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t double a, _c_o_n_s_t _V_e_c_t_o_r &V, _c_o_n_s_t double b, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &W) │ │ │ │ │   │ │ │ │ │ - void  _s_a_d_d (const double s, const double a, const _V_e_c_t_o_r &V) │ │ │ │ │ + void  _s_a_d_d (_c_o_n_s_t double s, _c_o_n_s_t double a, _c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ - void  _s_c_a_l_e (const _V_e_c_t_o_r &scaling_factors) │ │ │ │ │ + void  _s_c_a_l_e (_c_o_n_s_t _V_e_c_t_o_r &_s_c_a_l_i_n_g___f_a_c_t_o_r_s) │ │ │ │ │   │ │ │ │ │ - void  _e_q_u (const double a, const _V_e_c_t_o_r &V) │ │ │ │ │ + void  _e_q_u (_c_o_n_s_t double a, _c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _a_l_l___z_e_r_o () const │ │ │ │ │ + _b_o_o_l  _a_l_l___z_e_r_o () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ 4: Scalar products, norms and related operations │ │ │ │ │ - double  _m_e_a_n___v_a_l_u_e () const │ │ │ │ │ + double  _m_e_a_n___v_a_l_u_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - double  _l_1___n_o_r_m () const │ │ │ │ │ + double  _l_1___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - double  _l_2___n_o_r_m () const │ │ │ │ │ + double  _l_2___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - double  _l_i_n_f_t_y___n_o_r_m () const │ │ │ │ │ + double  _l_i_n_f_t_y___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - double  _a_d_d___a_n_d___d_o_t (const double a, const _V_e_c_t_o_r &V, const │ │ │ │ │ + double  _a_d_d___a_n_d___d_o_t (_c_o_n_s_t double a, _c_o_n_s_t _V_e_c_t_o_r &V, _c_o_n_s_t │ │ │ │ │ _V_e_c_t_o_r &W) │ │ │ │ │   │ │ │ │ │ 5: Scalar products, norms and related operations │ │ │ │ │ - _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - virtual _s_i_z_e___t_y_p_e  _s_i_z_e () const override │ │ │ │ │ + _v_i_r_t_u_a_l _s_i_z_e___t_y_p_e  _s_i_z_e () _c_o_n_s_t _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ - _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () const │ │ │ │ │ + _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () const │ │ │ │ │ + _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _:_:_I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _:_:_I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ 6: Mixed stuff │ │ │ │ │ - void  _c_o_m_p_r_e_s_s (const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation) │ │ │ │ │ + void  _c_o_m_p_r_e_s_s (_c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation) │ │ │ │ │   │ │ │ │ │ -const Epetra_FEVector &  _t_r_i_l_i_n_o_s___v_e_c_t_o_r () const │ │ │ │ │ +_c_o_n_s_t Epetra_FEVector &  _t_r_i_l_i_n_o_s___v_e_c_t_o_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Epetra_FEVector &  _t_r_i_l_i_n_o_s___v_e_c_t_o_r () │ │ │ │ │   │ │ │ │ │ - void  _p_r_i_n_t (std::ostream &out, const unsigned _i_n_t │ │ │ │ │ - precision=3, const _b_o_o_l scientific=true, const _b_o_o_l │ │ │ │ │ - across=true) const │ │ │ │ │ + void  _p_r_i_n_t (std::ostream &out, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ + precision=3, _c_o_n_s_t _b_o_o_l scientific=_t_r_u_e, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _a_c_r_o_s_s=_t_r_u_e) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () const │ │ │ │ │ + std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Subscriptor functionality │ │ │ │ │ Classes derived from _S_u_b_s_c_r_i_p_t_o_r provide a facility to subscribe to this │ │ │ │ │ object. This is mostly used by the _S_m_a_r_t_P_o_i_n_t_e_r class. │ │ │ │ │ - void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const validity, const │ │ │ │ │ - std::string &identifier="") const │ │ │ │ │ + void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t _v_a_l_i_d_i_t_y, _c_o_n_s_t │ │ │ │ │ + std::string &_i_d_e_n_t_i_f_i_e_r="") _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const validity, │ │ │ │ │ - const std::string &identifier="") const │ │ │ │ │ + void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t _v_a_l_i_d_i_t_y, │ │ │ │ │ + _c_o_n_s_t std::string &_i_d_e_n_t_i_f_i_e_r="") _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () const │ │ │ │ │ + unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (StreamType &stream) const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (_S_t_r_e_a_m_T_y_p_e &stream) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () const │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g () │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_V_e_c_t_o_r_T_y_p_e_N_o_t_C_o_m_p_a_t_i_b_l_e () │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_V_e_c_t_o_r_T_y_p_e_N_o_t_C_o_m_p_a_t_i_b_l_e () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t arg1) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t _a_r_g_1) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t arg1, std::string arg2, std::string │ │ │ │ │ - arg3) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t _a_r_g_1, std::string _a_r_g_2, std::string │ │ │ │ │ + _a_r_g_3) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string arg1, std::string arg2) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string _a_r_g_1, std::string _a_r_g_2) │ │ │ │ │   │ │ │ │ │ PPrriivvaattee TTyyppeess │ │ │ │ │ -using  _m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g  _m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │   │ │ │ │ │ -using  _m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p)::iterator │ │ │ │ │ +_u_s_i_n_g  _m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)::iterator │ │ │ │ │   │ │ │ │ │ PPrriivvaattee MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -void  _c_r_e_a_t_e___e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n (const _I_n_d_e_x_S_e_t &source_index_set, const │ │ │ │ │ +void  _c_r_e_a_t_e___e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n (_c_o_n_s_t _I_n_d_e_x_S_e_t &_s_o_u_r_c_e___i_n_d_e_x___s_e_t, _c_o_n_s_t │ │ │ │ │ _M_P_I___C_o_m_m mpi_comm) │ │ │ │ │   │ │ │ │ │ -void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () const noexcept │ │ │ │ │ +void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ std::unique_ptr< Epetra_FEVector >  _v_e_c_t_o_r │ │ │ │ │   │ │ │ │ │ _:_:_I_n_d_e_x_S_e_t  _s_o_u_r_c_e___s_t_o_r_e_d___e_l_e_m_e_n_t_s │ │ │ │ │   │ │ │ │ │ -std::shared_ptr< const _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n >  _e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n │ │ │ │ │ +std::shared_ptr< _c_o_n_s_t _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n >  _e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n │ │ │ │ │   │ │ │ │ │ std::atomic< unsigned _i_n_t >  _c_o_u_n_t_e_r │ │ │ │ │   │ │ │ │ │ std::map< std::string, unsigned _i_n_t >  _c_o_u_n_t_e_r___m_a_p │ │ │ │ │   │ │ │ │ │ std::vector< std::atomic< _b_o_o_l > * >  _v_a_l_i_d_i_t_y___p_o_i_n_t_e_r_s │ │ │ │ │   │ │ │ │ │ - const std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │ + _c_o_n_s_t std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ -static std::mutex  _m_u_t_e_x │ │ │ │ │ +_s_t_a_t_i_c std::mutex  _m_u_t_e_x │ │ │ │ │   │ │ │ │ │ FFrriieennddss │ │ │ │ │ -class  _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e │ │ │ │ │ +_c_l_a_s_s  _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This class implements a wrapper to the Trilinos distributed vector class │ │ │ │ │ Epetra_FEVector. This class requires Trilinos to be compiled with MPI support. │ │ │ │ │ Definition at line _2_2_5 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** MMeemmbbeerr TTyyppeeddeeff DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? vvaalluuee__ttyyppee ********** │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_v_a_l_u_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_: │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_v_a_l_u_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_: │ │ │ │ │ _v_a_l_u_e___t_y_p_e │ │ │ │ │ Definition at line _2_2_9 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ssiizzee__ttyyppee ********** │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_s_i_z_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_: │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_s_i_z_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_: │ │ │ │ │ _s_i_z_e___t_y_p_e │ │ │ │ │ Definition at line _2_3_0 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? rreeaall__ttyyppee ********** │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_r_e_a_l___t_y_p_e = _v_a_l_u_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_r_e_a_l___t_y_p_e = _v_a_l_u_e___t_y_p_e │ │ │ │ │ Definition at line _2_3_1 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? rreeffeerreennccee ********** │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_r_e_f_e_r_e_n_c_e = internal:: │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_r_e_f_e_r_e_n_c_e = internal:: │ │ │ │ │ VectorReference │ │ │ │ │ Definition at line _2_3_2 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ccoonnsstt__rreeffeerreennccee ********** │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e = const internal:: │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e = _c_o_n_s_t internal:: │ │ │ │ │ VectorReference │ │ │ │ │ Definition at line _2_3_3 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmaapp__vvaalluuee__ttyyppee ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ _v_a_l_u_e___t_y_p_e │ │ │ │ │ The data type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_2_9 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmaapp__iitteerraattoorr ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p):: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p):: privateinherited │ │ │ │ │ iterator │ │ │ │ │ The iterator type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_3_4 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** CCoonnssttrruuccttoorr && DDeessttrruuccttoorr DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[11//33]] ********** │ │ │ │ │ _V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( ) │ │ │ │ │ Constructor. Create a vector of dimension zero. │ │ │ │ │ Definition at line _8_3 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[22//33]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _V_e_c_t_o_r &  VV ) │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _V_e_c_t_o_r &  VV ) │ │ │ │ │ Copy constructor. Sets the dimension and the partitioning to that of the given │ │ │ │ │ vector and copies all elements. │ │ │ │ │ Definition at line _9_1 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[33//33]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonneerr, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  explicit │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonneerr, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  explicit │ │ │ │ │ ) │ │ │ │ │ This constructor takes an _I_n_d_e_x_S_e_t that defines how to distribute the │ │ │ │ │ individual components among the MPI processors. Since it also includes │ │ │ │ │ information about the size of the vector, this is all we need to generate a │ │ │ │ │ parallel vector. │ │ │ │ │ Definition at line _9_8 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** MMeemmbbeerr FFuunnccttiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[11//22]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::reinit ( const _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonneerr, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ - const _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = false  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::reinit ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonneerr, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Reinit functionality. This function destroys the old vector content and │ │ │ │ │ generates a new one based on the input partitioning. The flag │ │ │ │ │ omit_zeroing_entries determines whether the vector should be filled with zeros │ │ │ │ │ (false) or left in an undetermined state (true). │ │ │ │ │ Definition at line _1_0_8 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[22//22]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::reinit ( const _V_e_c_t_o_r &  VV, │ │ │ │ │ - const _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = false  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::reinit ( _c_o_n_s_t _V_e_c_t_o_r &  VV, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Change the dimension to that of the vector V. The elements of V are not copied. │ │ │ │ │ Definition at line _1_2_7 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? eexxttrraacctt__ssuubbvveeccttoorr__ttoo(()) [[11//22]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >:: const _A_r_r_a_y_V_i_e_w< const │ │ │ │ │ +void _V_e_c_t_o_r< Number >:: _c_o_n_s_t _A_r_r_a_y_V_i_e_w< _c_o_n_s_t │ │ │ │ │ extract_subvector_to ( _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x > iinnddiicceess, │ │ │ │ │ &  overridevirtual │ │ │ │ │ _A_r_r_a_y_V_i_e_w< double > &  eelleemmeennttss  │ │ │ │ │ ) const │ │ │ │ │ Extract a range of elements all at once. │ │ │ │ │ Definition at line _1_3_7 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[11//22]] ********** │ │ │ │ │ -_V_e_c_t_o_r & _V_e_c_t_o_r< Number >::operator= ( const _V_e_c_t_o_r &  VV ) │ │ │ │ │ +_V_e_c_t_o_r & _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r= ( _c_o_n_s_t _V_e_c_t_o_r &  VV ) │ │ │ │ │ Copy function. This function takes a _V_e_c_t_o_r and copies all the elements. The │ │ │ │ │ _V_e_c_t_o_r will have the same parallel distribution as V. │ │ │ │ │ The semantics of this operator are complex. If the two vectors have the same │ │ │ │ │ size, and if either the left or right hand side vector of the assignment (i.e., │ │ │ │ │ either the input vector on the right hand side, or the calling vector to the │ │ │ │ │ left of the assignment operator) currently has ghost elements, then the left │ │ │ │ │ hand side vector will also have ghost values and will consequently be a read- │ │ │ │ │ @@ -300,133 +300,133 @@ │ │ │ │ │ simply a copy operation in the usual sense: In that case, if the right hand │ │ │ │ │ side has no ghost elements (i.e., is a completely distributed vector), then the │ │ │ │ │ left hand side will have no ghost elements either. And if the right hand side │ │ │ │ │ has ghost elements (and is consequently read-only), then the left hand side │ │ │ │ │ will have these same properties after the operation. │ │ │ │ │ Definition at line _1_5_7 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[22//22]] ********** │ │ │ │ │ -_V_e_c_t_o_r & _V_e_c_t_o_r< Number >::operator= ( const double  ss ) │ │ │ │ │ +_V_e_c_t_o_r & _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r= ( _c_o_n_s_t double  ss ) │ │ │ │ │ Sets all elements of the vector to the scalar s. This operation is only allowed │ │ │ │ │ if s is equal to zero. │ │ │ │ │ Definition at line _1_8_7 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? iimmppoorrtt__eelleemmeennttss(()) ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >:: ( const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< VV, │ │ │ │ │ +void _V_e_c_t_o_r< Number >:: ( _c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< VV, │ │ │ │ │ import_elements double > &  │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn, │ │ │ │ │ - const std::shared_ptr< │ │ │ │ │ - const _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: ccoommmmuunniiccaattiioonn__ppaatttteerrnn = │ │ │ │ │ + _c_o_n_s_t std::shared_ptr< │ │ │ │ │ + _c_o_n_s_t _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: ccoommmmuunniiccaattiioonn__ppaatttteerrnn = │ │ │ │ │ _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e > {}  │ │ │ │ │ &  │ │ │ │ │ ) │ │ │ │ │ Imports all the elements present in the vector's _I_n_d_e_x_S_e_t from the input vector │ │ │ │ │ V. _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation is used to decide if the elements in V │ │ │ │ │ should be added to the current vector or replace the current elements. The last │ │ │ │ │ parameter can be used if the same communication pattern is used multiple times. │ │ │ │ │ This can be used to improve performance. │ │ │ │ │ Definition at line _2_0_1 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? iimmppoorrtt(()) ********** │ │ │ │ │ -void LinearAlgebra:: const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< │ │ │ │ │ +void LinearAlgebra:: _c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< │ │ │ │ │ EpetraWrappers:: ( double > &  VV, │ │ │ │ │ Vector::import │ │ │ │ │ - const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_: ooppeerraattiioonn, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_: ooppeerraattiioonn, │ │ │ │ │ _v_a_l_u_e_s  inline │ │ │ │ │ - const std::shared_ptr< │ │ │ │ │ - const _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: ccoommmmuunniiccaattiioonn__ppaatttteerrnn = │ │ │ │ │ + _c_o_n_s_t std::shared_ptr< │ │ │ │ │ + _c_o_n_s_t _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: ccoommmmuunniiccaattiioonn__ppaatttteerrnn = │ │ │ │ │ _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e {}  │ │ │ │ │ > &  │ │ │ │ │ ) │ │ │ │ │ _DD_ee_pp_rr_ee_cc_aa_tt_ee_dd_:: │ │ │ │ │ Use _i_m_p_o_r_t___e_l_e_m_e_n_t_s_(_) instead. │ │ │ │ │ Definition at line _3_4_5 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[11//22]] ********** │ │ │ │ │ -internal::VectorReference _V_e_c_t_o_r< Number ( const _s_i_z_e___t_y_p_e  iinnddeexx ) inline │ │ │ │ │ ->::operator() │ │ │ │ │ +internal::VectorReference _V_e_c_t_o_r< Number ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) inline │ │ │ │ │ +>_:_:_o_p_e_r_a_t_o_r() │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ When using a vector distributed with MPI, this operation only makes sense for │ │ │ │ │ elements that are actually present on the calling processor. Otherwise, an │ │ │ │ │ exception is thrown. │ │ │ │ │ Definition at line _7_9_2 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[22//22]] ********** │ │ │ │ │ -_v_a_l_u_e___t_y_p_e LinearAlgebra::EpetraWrappers:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ -Vector::operator() │ │ │ │ │ +_v_a_l_u_e___t_y_p_e _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ +_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r() │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ When using a vector distributed with MPI, this operation only makes sense for │ │ │ │ │ elements that are actually present on the calling processor. Otherwise, an │ │ │ │ │ exception is thrown. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[11//22]] ********** │ │ │ │ │ -internal::VectorReference _V_e_c_t_o_r< Number ( const _s_i_z_e___t_y_p_e  iinnddeexx ) inline │ │ │ │ │ ->::operator[] │ │ │ │ │ +internal::VectorReference _V_e_c_t_o_r< Number ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) inline │ │ │ │ │ +>_:_:_o_p_e_r_a_t_o_r[] │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ Definition at line _7_9_8 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[22//22]] ********** │ │ │ │ │ -_V_e_c_t_o_r_:_:_v_a_l_u_e___t_y_p_e _V_e_c_t_o_r< Number >:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const inline │ │ │ │ │ -operator[] │ │ │ │ │ +_V_e_c_t_o_r_:_:_v_a_l_u_e___t_y_p_e _V_e_c_t_o_r< Number >_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const inline │ │ │ │ │ +_o_p_e_r_a_t_o_r[] │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ Definition at line _8_0_4 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r & _V_e_c_t_o_r< Number >::operator*= ( const double  ffaaccttoorr ) │ │ │ │ │ +_V_e_c_t_o_r & _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r*= ( _c_o_n_s_t double  ffaaccttoorr ) │ │ │ │ │ Multiply the entire vector by a fixed factor. │ │ │ │ │ Definition at line _2_5_7 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr//==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r & _V_e_c_t_o_r< Number >::operator/= ( const double  ffaaccttoorr ) │ │ │ │ │ +_V_e_c_t_o_r & _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r/= ( _c_o_n_s_t double  ffaaccttoorr ) │ │ │ │ │ Divide the entire vector by a fixed factor. │ │ │ │ │ Definition at line _2_6_8 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr++==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r & _V_e_c_t_o_r< Number >::operator+= ( const _V_e_c_t_o_r &  VV ) │ │ │ │ │ +_V_e_c_t_o_r & _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r+= ( _c_o_n_s_t _V_e_c_t_o_r &  VV ) │ │ │ │ │ Add the vector V to the present one. │ │ │ │ │ Definition at line _2_8_0 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr--==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r & _V_e_c_t_o_r< Number >::operator-= ( const _V_e_c_t_o_r &  VV ) │ │ │ │ │ +_V_e_c_t_o_r & _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r-= ( _c_o_n_s_t _V_e_c_t_o_r &  VV ) │ │ │ │ │ Subtract the vector V from the present one. │ │ │ │ │ Definition at line _3_2_3 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**(()) ********** │ │ │ │ │ -double _V_e_c_t_o_r< Number >::operator* ( const _V_e_c_t_o_r &  VV ) const │ │ │ │ │ +double _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r* ( _c_o_n_s_t _V_e_c_t_o_r &  VV ) const │ │ │ │ │ Return the scalar product of two vectors. The vectors need to have the same │ │ │ │ │ layout. │ │ │ │ │ Definition at line _3_3_3 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[11//33]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::add ( const double  aa ) │ │ │ │ │ +void _V_e_c_t_o_r< Number >::add ( _c_o_n_s_t double  aa ) │ │ │ │ │ Add a to all components. Note that is a scalar not a vector. │ │ │ │ │ Definition at line _3_5_1 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[22//33]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::add ( const double  aa, │ │ │ │ │ - const _V_e_c_t_o_r &  VV  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::add ( _c_o_n_s_t double  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV  │ │ │ │ │ ) │ │ │ │ │ Simple addition of a multiple of a vector, i.e. *this += a*V. The vectors need │ │ │ │ │ to have the same layout. │ │ │ │ │ Definition at line _3_6_2 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[33//33]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::add ( const double  aa, │ │ │ │ │ - const _V_e_c_t_o_r &  VV, │ │ │ │ │ - const double  bb, │ │ │ │ │ - const _V_e_c_t_o_r &  WW  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::add ( _c_o_n_s_t double  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV, │ │ │ │ │ + _c_o_n_s_t double  bb, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  WW  │ │ │ │ │ ) │ │ │ │ │ Multiple addition of multiple of a vector, i.e. *this> += a*V+b*W. The vectors │ │ │ │ │ need to have the same layout. │ │ │ │ │ Definition at line _3_7_6 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ssaadddd(()) ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::sadd ( const double  ss, │ │ │ │ │ - const double  aa, │ │ │ │ │ - const _V_e_c_t_o_r &  VV  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::sadd ( _c_o_n_s_t double  ss, │ │ │ │ │ + _c_o_n_s_t double  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV  │ │ │ │ │ ) │ │ │ │ │ Scaling and simple addition of a multiple of a vector, i.e. tthhiiss == ss │ │ │ │ │ (*this)+a*V. │ │ │ │ │ Definition at line _3_9_7 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ssccaallee(()) ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::scale ( const _V_e_c_t_o_r &  ssccaalliinngg__ffaaccttoorrss ) │ │ │ │ │ +void _V_e_c_t_o_r< Number >::scale ( _c_o_n_s_t _V_e_c_t_o_r &  ssccaalliinngg__ffaaccttoorrss ) │ │ │ │ │ Scale each element of this vector by the corresponding element in the argument. │ │ │ │ │ This function is mostly meant to simulate multiplication (and immediate re- │ │ │ │ │ assignment) by a diagonal scaling matrix. The vectors need to have the same │ │ │ │ │ layout. │ │ │ │ │ Definition at line _4_0_8 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? eeqquu(()) ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::equ ( const double  aa, │ │ │ │ │ - const _V_e_c_t_o_r &  VV  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::equ ( _c_o_n_s_t double  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV  │ │ │ │ │ ) │ │ │ │ │ Assignment *this = a*V. │ │ │ │ │ Definition at line _4_2_2 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? aallll__zzeerroo(()) ********** │ │ │ │ │ _b_o_o_l _V_e_c_t_o_r< Number >::all_zero ( ) const │ │ │ │ │ Return whether the vector contains only elements with value zero. │ │ │ │ │ Definition at line _4_3_9 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ @@ -446,17 +446,17 @@ │ │ │ │ │ Definition at line _4_9_5 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? lliinnffttyy__nnoorrmm(()) ********** │ │ │ │ │ double _V_e_c_t_o_r< Number >::linfty_norm ( ) const │ │ │ │ │ Return the maximum norm of the vector (i.e., the maximum absolute value among │ │ │ │ │ all entries and among all processors). │ │ │ │ │ Definition at line _5_0_8 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? aadddd__aanndd__ddoott(()) ********** │ │ │ │ │ -double _V_e_c_t_o_r< Number >::add_and_dot ( const double  aa, │ │ │ │ │ - const _V_e_c_t_o_r &  VV, │ │ │ │ │ - const _V_e_c_t_o_r &  WW  │ │ │ │ │ +double _V_e_c_t_o_r< Number >::add_and_dot ( _c_o_n_s_t double  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  WW  │ │ │ │ │ ) │ │ │ │ │ Performs a combined operation of a vector addition and a subsequent inner │ │ │ │ │ product, returning the value of the inner product. In other words, the result │ │ │ │ │ of this function is the same as if the user called │ │ │ │ │ this->_a_d_d(a, V); │ │ │ │ │ return_value = *this * W; │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_a_d_d │ │ │ │ │ @@ -493,58 +493,61 @@ │ │ │ │ │ ********** _?◆_? llooccaallllyy__oowwnneedd__eelleemmeennttss(()) ********** │ │ │ │ │ _I_n_d_e_x_S_e_t _V_e_c_t_o_r< Number >::locally_owned_elements ( ) const │ │ │ │ │ Return an index set that describes which elements of this vector are owned by │ │ │ │ │ the current processor. As a consequence, the index sets returned on different │ │ │ │ │ processors if this is a distributed vector will form disjoint sets that add up │ │ │ │ │ to the complete index set. Obviously, if a vector is created on only one │ │ │ │ │ processor, then the result would satisfy │ │ │ │ │ -vec.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t(vec.size()) │ │ │ │ │ +_v_e_c.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t(_v_e_c.size()) │ │ │ │ │ +_L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_v_e_c_t_o_r │ │ │ │ │ +std::unique_ptr< Epetra_FEVector > vector │ │ │ │ │ +DDeeffiinniittiioonn _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h_:_6_8_0 │ │ │ │ │ _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t │ │ │ │ │ IndexSet complete_index_set(const IndexSet::size_type N) │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_2_0_4 │ │ │ │ │ Definition at line _5_6_2 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ccoommpprreessss(()) ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::compress ( const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn ) │ │ │ │ │ +void _V_e_c_t_o_r< Number >::compress ( _c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn ) │ │ │ │ │ Compress the underlying representation of the Trilinos object, i.e. flush the │ │ │ │ │ buffers of the vector object if it has any. This function is necessary after │ │ │ │ │ writing into a vector element-by-element and before anything else can be done │ │ │ │ │ on it. │ │ │ │ │ See _C_o_m_p_r_e_s_s_i_n_g_ _d_i_s_t_r_i_b_u_t_e_d_ _o_b_j_e_c_t_s for more information. │ │ │ │ │ Definition at line _5_9_5 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ttrriilliinnooss__vveeccttoorr(()) [[11//22]] ********** │ │ │ │ │ -const Epetra_FEVector & _V_e_c_t_o_r< Number >::trilinos_vector ( ) const │ │ │ │ │ +_c_o_n_s_t Epetra_FEVector & _V_e_c_t_o_r< Number >::trilinos_vector ( ) const │ │ │ │ │ Return a const reference to the underlying Trilinos Epetra_FEVector class. │ │ │ │ │ Definition at line _6_0_1 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ttrriilliinnooss__vveeccttoorr(()) [[22//22]] ********** │ │ │ │ │ Epetra_FEVector & _V_e_c_t_o_r< Number >::trilinos_vector ( ) │ │ │ │ │ Return a (modifiable) reference to the underlying Trilinos Epetra_FEVector │ │ │ │ │ class. │ │ │ │ │ Definition at line _6_0_9 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? pprriinntt(()) ********** │ │ │ │ │ void _V_e_c_t_o_r< Number >::print ( std::ostream &  oouutt, │ │ │ │ │ - const unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ - const _b_o_o_l  sscciieennttiiffiicc = true, │ │ │ │ │ - const _b_o_o_l  aaccrroossss = true  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  sscciieennttiiffiicc = _t_r_u_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  aaccrroossss = _t_r_u_e  │ │ │ │ │ ) const │ │ │ │ │ Prints the vector to the output stream out. │ │ │ │ │ Definition at line _6_1_7 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? mmeemmoorryy__ccoonnssuummppttiioonn(()) ********** │ │ │ │ │ std::size_t _V_e_c_t_o_r< Number >::memory_consumption ( ) const │ │ │ │ │ Return the memory consumption of this class in bytes. │ │ │ │ │ Definition at line _6_5_5 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ccrreeaattee__eeppeettrraa__ccoommmm__ppaatttteerrnn(()) ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >:: ( const _I_n_d_e_x_S_e_t &  ssoouurrccee__iinnddeexx__sseett, │ │ │ │ │ +void _V_e_c_t_o_r< Number >:: ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ssoouurrccee__iinnddeexx__sseett, │ │ │ │ │ create_epetra_comm_pattern private │ │ │ │ │ - const _M_P_I___C_o_m_m  mmppii__ccoommmm  │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  mmppii__ccoommmm  │ │ │ │ │ ) │ │ │ │ │ Create the _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n for the communication between the _I_n_d_e_x_S_e_t │ │ │ │ │ source_index_set and the current vector based on the communicator mpi_comm. │ │ │ │ │ Definition at line _6_6_5 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? eexxttrraacctt__ssuubbvveeccttoorr__ttoo(()) [[22//22]] ********** │ │ │ │ │ -virtual void │ │ │ │ │ +_v_i_r_t_u_a_l void │ │ │ │ │ _R_e_a_d_V_e_c_t_o_r< const _A_r_r_a_y_V_i_e_w< const │ │ │ │ │ _V_e_c_t_o_r_T_r_a_i_t_s_:_: ( _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x iinnddiicceess, │ │ │ │ │ _v_a_l_u_e___t_y_p_e >:: > &  │ │ │ │ │ extract_subvector_to pure virtualinherited │ │ │ │ │ _A_r_r_a_y_V_i_e_w< │ │ │ │ │ VectorTraits::value_type eelleemmeennttss  │ │ │ │ │ > &  │ │ │ │ │ @@ -572,25 +575,25 @@ │ │ │ │ │ ********** _?◆_? nn__ssuubbssccrriippttiioonnss(()) ********** │ │ │ │ │ unsigned _i_n_t Subscriptor::n_subscriptions ( ) const inlineinherited │ │ │ │ │ Return the present number of subscriptions to this object. This allows to use │ │ │ │ │ this class for reference counted lifetime determination where the last one to │ │ │ │ │ unsubscribe also deletes the object. │ │ │ │ │ Definition at line _3_0_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ void Subscriptor:: ( StreamType &  ssttrreeaamm ) const inlineinherited │ │ │ │ │ list_subscribers │ │ │ │ │ List the subscribers to the input stream. │ │ │ │ │ Definition at line _3_1_7 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[22//22]] ********** │ │ │ │ │ void Subscriptor::list_subscribers ( ) const inherited │ │ │ │ │ List the subscribers to deallog. │ │ │ │ │ Definition at line _2_0_3 of file _s_u_b_s_c_r_i_p_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? sseerriiaalliizzee(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ void Subscriptor::serialize ( Archive &  aarr, │ │ │ │ │ const unsigned _i_n_t  vveerrssiioonn  inlineinherited │ │ │ │ │ ) │ │ │ │ │ Read or write the data of this object to or from a stream for the purpose of │ │ │ │ │ serialization using the _B_O_O_S_T_ _s_e_r_i_a_l_i_z_a_t_i_o_n_ _l_i_b_r_a_r_y. │ │ │ │ │ This function does not actually serialize any of the member variables of this │ │ │ │ │ class. The reason is that what this class stores is only who subscribes to this │ │ │ │ │ @@ -611,29 +614,29 @@ │ │ │ │ │ release mode. │ │ │ │ │ If this function is called when there is an uncaught exception then, │ │ │ │ │ rather than aborting, this function prints an error message to the │ │ │ │ │ standard error stream and returns. │ │ │ │ │ Definition at line _5_2 of file _s_u_b_s_c_r_i_p_t_o_r_._c_c. │ │ │ │ │ ********** FFrriieennddss AAnndd RReellaatteedd SSyymmbbooll DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? iinntteerrnnaall::::VVeeccttoorrRReeffeerreennccee ********** │ │ │ │ │ -friend class internal::VectorReference friend │ │ │ │ │ +_f_r_i_e_n_d _c_l_a_s_s internal::VectorReference friend │ │ │ │ │ Definition at line _6_9_4 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** MMeemmbbeerr DDaattaa DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? vveeccttoorr ********** │ │ │ │ │ std::unique_ptr LinearAlgebra::EpetraWrappers:: private │ │ │ │ │ Vector::vector │ │ │ │ │ Pointer to the actual Epetra vector object. │ │ │ │ │ Definition at line _6_8_0 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ssoouurrccee__ssttoorreedd__eelleemmeennttss ********** │ │ │ │ │ _:_:_I_n_d_e_x_S_e_t LinearAlgebra::EpetraWrappers::Vector:: private │ │ │ │ │ source_stored_elements │ │ │ │ │ _I_n_d_e_x_S_e_t of the elements of the last imported vector. │ │ │ │ │ Definition at line _6_8_5 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? eeppeettrraa__ccoommmm__ppaatttteerrnn ********** │ │ │ │ │ -std::shared_ptr LinearAlgebra:: private │ │ │ │ │ +std::shared_ptr<_c_o_n_s_t _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n> LinearAlgebra:: private │ │ │ │ │ EpetraWrappers::Vector::epetra_comm_pattern │ │ │ │ │ _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n for the communication between the source_stored_elements │ │ │ │ │ _I_n_d_e_x_S_e_t and the current vector. │ │ │ │ │ Definition at line _6_9_1 of file _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ccoouunntteerr ********** │ │ │ │ │ std::atomic Subscriptor::counter mutableprivateinherited │ │ │ │ │ Store the number of objects which subscribed to this object. Initially, this │ │ │ │ │ @@ -655,15 +658,15 @@ │ │ │ │ │ ********** _?◆_? vvaalliiddiittyy__ppooiinntteerrss ********** │ │ │ │ │ std::vector *> Subscriptor:: mutableprivateinherited │ │ │ │ │ validity_pointers │ │ │ │ │ In this vector, we store pointers to the validity bool in the _S_m_a_r_t_P_o_i_n_t_e_r │ │ │ │ │ objects that subscribe to this class. │ │ │ │ │ Definition at line _2_4_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? oobbjjeecctt__iinnffoo ********** │ │ │ │ │ -const std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ +_c_o_n_s_t std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ Pointer to the typeinfo object of this object, from which we can later deduce │ │ │ │ │ the class name. Since this information on the derived class is neither │ │ │ │ │ available in the destructor, nor in the constructor, we obtain it in between │ │ │ │ │ and store it here. │ │ │ │ │ Definition at line _2_4_8 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmuutteexx ********** │ │ │ │ │ std::mutex Subscriptor::mutex staticprivateinherited │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1ReadWriteVector.html │ │ │ │ @@ -1041,15 +1041,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ +
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ │ │ │ │

    Definition at line 312 of file read_write_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ import_elements() [2/9]

    │ │ │ │ @@ -1129,15 +1129,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ +
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ │ │ │ │

    Definition at line 341 of file read_write_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ import_elements() [3/9]

    │ │ │ │ @@ -1213,15 +1213,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ +
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ │ │ │ │

    Definition at line 371 of file read_write_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ import_elements() [4/9]

    │ │ │ │ @@ -1298,15 +1298,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ inline │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ +
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ │ │ │ │

    Definition at line 403 of file read_write_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ import_elements() [5/9]

    │ │ │ │ @@ -1386,15 +1386,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ inline │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ +
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ │ │ │ │

    Definition at line 435 of file read_write_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ import_elements() [6/9]

    │ │ │ │ @@ -1470,15 +1470,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ inline │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ +
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ │ │ │ │

    Definition at line 464 of file read_write_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ import_elements() [7/9]

    │ │ │ │ @@ -1554,15 +1554,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ inline │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ +
    Deprecated:
    Use import_elements() instead.
    │ │ │ │ │ │ │ │

    Definition at line 493 of file read_write_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ size()

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classLinearAlgebra_1_1TpetraWrappers_1_1Vector.html │ │ │ │ @@ -124,257 +124,257 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [legend]
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Types

    using value_type = Number
    using value_type = Number
     
    using real_type = typename numbers::NumberTraits< Number >::real_type
    using real_type = typename numbers::NumberTraits< Number >::real_type
     
    using size_type = types::global_dof_index
    using size_type = types::global_dof_index
     
    using reference = internal::VectorReference< Number, MemorySpace >
    using reference = internal::VectorReference< Number, MemorySpace >
     
    using const_reference = const internal::VectorReference< Number, MemorySpace >
    using const_reference = const internal::VectorReference< Number, MemorySpace >
     
    │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Member Functions

    template<class Archive >
    void serialize (Archive &ar, const unsigned int version)
    template<class Archive >
    void serialize (Archive &ar, const unsigned int version)
     
    1: Basic Object-handling
     Vector ()
     
     Vector (const Vector &V)
     Vector (const Vector &V)
     
     Vector (const Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > V)
     Vector (const Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > V)
     
     Vector (const IndexSet &parallel_partitioner, const MPI_Comm communicator)
     Vector (const IndexSet &parallel_partitioner, const MPI_Comm communicator)
     
     Vector (const IndexSet &locally_owned_entries, const IndexSet &ghost_entries, const MPI_Comm communicator, const bool vector_writable=false)
     Vector (const IndexSet &locally_owned_entries, const IndexSet &ghost_entries, const MPI_Comm communicator, const bool vector_writable=false)
     
    void clear ()
     
    void reinit (const IndexSet &parallel_partitioner, const MPI_Comm communicator=MPI_COMM_WORLD, const bool omit_zeroing_entries=false)
    void reinit (const IndexSet &parallel_partitioner, const MPI_Comm communicator=MPI_COMM_WORLD, const bool omit_zeroing_entries=false)
     
    void reinit (const IndexSet &locally_owned_entries, const IndexSet &locally_relevant_or_ghost_entries, const MPI_Comm communicator=MPI_COMM_WORLD, const bool vector_writable=false)
    void reinit (const IndexSet &locally_owned_entries, const IndexSet &locally_relevant_or_ghost_entries, const MPI_Comm communicator=MPI_COMM_WORLD, const bool vector_writable=false)
     
    void reinit (const Vector< Number, MemorySpace > &V, const bool omit_zeroing_entries=false)
    void reinit (const Vector< Number, MemorySpace > &V, const bool omit_zeroing_entries=false)
     
    virtual void swap (Vector &v) noexcept
    virtual void swap (Vector &v) noexcept
     
    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< Number > &elements) const override
    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< Number > &elements) const override
     
    Vectoroperator= (const Vector &V)
    Vectoroperator= (const Vector &V)
     
    template<typename OtherNumber >
    Vectoroperator= (const ::Vector< OtherNumber > &V)
    template<typename OtherNumber >
    Vectoroperator= (const ::Vector< OtherNumber > &V)
     
    Vectoroperator= (const Number s)
    Vectoroperator= (const Number s)
     
    void import_elements (const ReadWriteVector< Number > &V, VectorOperation::values operation, const Teuchos::RCP< const Utilities::MPI::CommunicationPatternBase > &communication_pattern)
    void import_elements (const ReadWriteVector< Number > &V, VectorOperation::values operation, const Teuchos::RCP< const Utilities::MPI::CommunicationPatternBase > &communication_pattern)
     
    void import_elements (const ReadWriteVector< Number > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern)
    void import_elements (const ReadWriteVector< Number > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern)
     
    void import_elements (const ReadWriteVector< Number > &V, VectorOperation::values operation)
    void import_elements (const ReadWriteVector< Number > &V, VectorOperation::values operation)
     
    void import (const ReadWriteVector< Number > &V, VectorOperation::values operation, std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > communication_pattern={})
    void import (const ReadWriteVector< Number > &V, VectorOperation::values operation, std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > communication_pattern={})
     
    2: Data-Access
    reference operator() (const size_type index)
    reference operator() (const size_type index)
     
    Number operator() (const size_type index) const
    Number operator() (const size_type index) const
     
    reference operator[] (const size_type index)
    reference operator[] (const size_type index)
     
    Number operator[] (const size_type index) const
    Number operator[] (const size_type index) const
     
    3: Modification of vectors
    Vectoroperator*= (const Number factor)
    Vectoroperator*= (const Number factor)
     
    Vectoroperator/= (const Number factor)
    Vectoroperator/= (const Number factor)
     
    Vectoroperator+= (const Vector< Number, MemorySpace > &V)
    Vectoroperator+= (const Vector< Number, MemorySpace > &V)
     
    Vectoroperator-= (const Vector< Number, MemorySpace > &V)
    Vectoroperator-= (const Vector< Number, MemorySpace > &V)
     
    Number operator* (const Vector< Number, MemorySpace > &V) const
    Number operator* (const Vector< Number, MemorySpace > &V) const
     
    void add (const Number a)
    void add (const Number a)
     
    void add (const Number a, const Vector< Number, MemorySpace > &V)
    void add (const Number a, const Vector< Number, MemorySpace > &V)
     
    void add (const Number a, const Vector< Number, MemorySpace > &V, const Number b, const Vector< Number, MemorySpace > &W)
    void add (const Number a, const Vector< Number, MemorySpace > &V, const Number b, const Vector< Number, MemorySpace > &W)
     
    void add (const std::vector< size_type > &indices, const std::vector< Number > &values)
    void add (const std::vector< size_type > &indices, const std::vector< Number > &values)
     
    void add (const size_type n_elements, const size_type *indices, const Number *values)
    void add (const size_type n_elements, const size_type *indices, const Number *values)
     
    void sadd (const Number s, const Number a, const Vector< Number, MemorySpace > &V)
    void sadd (const Number s, const Number a, const Vector< Number, MemorySpace > &V)
     
    void set (const size_type n_elements, const size_type *indices, const Number *values)
    void set (const size_type n_elements, const size_type *indices, const Number *values)
     
    void scale (const Vector< Number, MemorySpace > &scaling_factors)
    void scale (const Vector< Number, MemorySpace > &scaling_factors)
     
    void equ (const Number a, const Vector< Number, MemorySpace > &V)
    void equ (const Number a, const Vector< Number, MemorySpace > &V)
     
    bool all_zero () const
    bool all_zero () const
     
    bool is_non_negative () const
    bool is_non_negative () const
     
    4: Scalar products, norms and related operations
    Number mean_value () const
    Number mean_value () const
     
    real_type l1_norm () const
    real_type l1_norm () const
     
    real_type l2_norm () const
    real_type l2_norm () const
     
    real_type linfty_norm () const
    real_type linfty_norm () const
     
    real_type norm_sqr () const
    real_type norm_sqr () const
     
    Number add_and_dot (const Number a, const Vector< Number, MemorySpace > &V, const Vector< Number, MemorySpace > &W)
    Number add_and_dot (const Number a, const Vector< Number, MemorySpace > &V, const Vector< Number, MemorySpace > &W)
     
    5: Scalar products, norms and related operations
    bool has_ghost_elements () const
    bool has_ghost_elements () const
     
    bool operator== (const Vector< Number, MemorySpace > &v) const
    bool operator== (const Vector< Number, MemorySpace > &v) const
     
    bool operator!= (const Vector< Number, MemorySpace > &v) const
    bool operator!= (const Vector< Number, MemorySpace > &v) const
     
    virtual size_type size () const override
    virtual size_type size () const override
     
    size_type locally_owned_size () const
    size_type locally_owned_size () const
     
    std::pair< size_type, size_typelocal_range () const
    std::pair< size_type, size_typelocal_range () const
     
    bool in_local_range (const size_type index) const
    bool in_local_range (const size_type index) const
     
    bool is_compressed () const
    bool is_compressed () const
     
    MPI_Comm get_mpi_communicator () const
    MPI_Comm get_mpi_communicator () const
     
    ::IndexSet locally_owned_elements () const
    ::IndexSet locally_owned_elements () const
     
    6: Mixed stuff
    void compress (const VectorOperation::values operation)
    void compress (const VectorOperation::values operation)
     
    const TpetraTypes::VectorType< Number, MemorySpace > & trilinos_vector () const
    const TpetraTypes::VectorType< Number, MemorySpace > & trilinos_vector () const
     
    TpetraTypes::VectorType< Number, MemorySpace > & trilinos_vector ()
     
    Teuchos::RCP< const TpetraTypes::VectorType< Number, MemorySpace > > trilinos_rcp () const
    Teuchos::RCP< const TpetraTypes::VectorType< Number, MemorySpace > > trilinos_rcp () const
     
    Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > trilinos_rcp ()
     
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
     
    std::size_t memory_consumption () const
    std::size_t memory_consumption () const
     
    MPI_Comm mpi_comm () const
    MPI_Comm mpi_comm () const
     
    Subscriptor functionality

    Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class.

    │ │ │ │
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    unsigned int n_subscriptions () const
    unsigned int n_subscriptions () const
     
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
     
    void list_subscribers () const
    void list_subscribers () const
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Public Member Functions

    static ::ExceptionBaseExcDifferentParallelPartitioning ()
    static ::ExceptionBaseExcDifferentParallelPartitioning ()
     
    static ::ExceptionBaseExcVectorTypeNotCompatible ()
    static ::ExceptionBaseExcVectorTypeNotCompatible ()
     
    static ::ExceptionBaseExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
    static ::ExceptionBaseExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
     
    static ::ExceptionBaseExcMissingIndexSet ()
    static ::ExceptionBaseExcMissingIndexSet ()
     
    static ::ExceptionBaseExcTrilinosError (int arg1)
    static ::ExceptionBaseExcTrilinosError (int arg1)
     
    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
     
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Types

    using map_value_type = decltype(counter_map)::value_type
    using map_value_type = decltype(counter_map)::value_type
     
    using map_iterator = decltype(counter_map)::iterator
    using map_iterator = decltype(counter_map)::iterator
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Member Functions

    void create_tpetra_comm_pattern (const IndexSet &source_index_set, const MPI_Comm mpi_comm)
    void create_tpetra_comm_pattern (const IndexSet &source_index_set, const MPI_Comm mpi_comm)
     
    void check_no_subscribers () const noexcept
    void check_no_subscribers () const noexcept
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Attributes

    bool compressed
     
    bool has_ghost
     
    Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > vector
     
    Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > nonlocal_vector
     
    ::IndexSet source_stored_elements
     
    Teuchos::RCP< const TpetraWrappers::CommunicationPattern< MemorySpace > > tpetra_comm_pattern
    Teuchos::RCP< const TpetraWrappers::CommunicationPattern< MemorySpace > > tpetra_comm_pattern
     
    std::atomic< unsigned intcounter
     
    std::map< std::string, unsigned intcounter_map
     
    std::vector< std::atomic< bool > * > validity_pointers
     
    const std::type_info * object_info
    const std::type_info * object_info
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Private Attributes

    static std::mutex mutex
    static std::mutex mutex
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Friends

    class internal::VectorReference< Number, MemorySpace >
    class internal::VectorReference< Number, MemorySpace >
     
    │ │ │ │

    Detailed Description

    │ │ │ │ -
    template<typename Number, typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +
    template<typename Number, typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ class LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >

    This class implements a wrapper to the Trilinos distributed vector class Tpetra::Vector. This class requires Trilinos to be compiled with MPI support.

    │ │ │ │

    Moreover, this class takes an optional template argument for the memory space used. By default, all memory is allocated on the CPU.

    │ │ │ │ │ │ │ │

    Definition at line 288 of file trilinos_tpetra_vector.h.

    │ │ │ │

    Member Typedef Documentation

    │ │ │ │ │ │ │ │

    ◆ value_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::value_type = Numberusing LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::value_type = Number
    │ │ │ │
    │ │ │ │

    Declare some of the standard types used in all containers.

    │ │ │ │ │ │ │ │

    Definition at line 294 of file trilinos_tpetra_vector.h.

    │ │ │ │ │ │ │ │ @@ -382,72 +382,72 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ real_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::real_type = typename numbers::NumberTraits<Number>::real_typeusing LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::real_type = typename numbers::NumberTraits<Number>::real_type
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 295 of file trilinos_tpetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ size_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::size_type = types::global_dof_indexusing LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::size_type = types::global_dof_index
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 296 of file trilinos_tpetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ reference

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::reference = internal::VectorReference<Number, MemorySpace>using LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::reference = internal::VectorReference<Number, MemorySpace>
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 297 of file trilinos_tpetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ const_reference

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::const_reference = const internal::VectorReference<Number, MemorySpace>using LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::const_reference = const internal::VectorReference<Number, MemorySpace>
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 298 of file trilinos_tpetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -458,15 +458,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_value_type = decltype(counter_map)::value_typeusing Subscriptor::map_value_type = decltype(counter_map)::value_type
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -483,15 +483,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_iterator = decltype(counter_map)::iteratorusing Subscriptor::map_iterator = decltype(counter_map)::iterator
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -505,15 +505,15 @@ │ │ │ │

    Constructor & Destructor Documentation

    │ │ │ │ │ │ │ │

    ◆ Vector() [1/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -525,20 +525,20 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ Vector() [2/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::Vector ()
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::Vector (const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V)
    │ │ │ │
    │ │ │ │

    Copy constructor. Sets the dimension and the partitioning to that of the given vector and copies all elements.

    │ │ │ │ │ │ │ │ @@ -546,20 +546,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ Vector() [3/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::Vector (const Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > const Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > V)
    │ │ │ │
    │ │ │ │

    Copy constructor from Teuchos::RCP<Tpetra::Vector>.

    │ │ │ │ │ │ │ │ @@ -567,29 +567,29 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ Vector() [4/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -606,42 +606,42 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ Vector() [5/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::Vector (const IndexSetconst IndexSetparallel_partitioner,
    const MPI_Comm const MPI_Comm communicator 
    )
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::Vector (const IndexSetconst IndexSetlocally_owned_entries,
    const IndexSetconst IndexSetghost_entries,
    const MPI_Comm const MPI_Comm communicator,
    const bool vector_writable = false const bool vector_writable = false 
    )
    │ │ │ │ @@ -660,15 +660,15 @@ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ │

    ◆ clear()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -680,33 +680,33 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ reinit() [1/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::clear ()
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::reinit (const IndexSetconst IndexSetparallel_partitioner,
    const MPI_Comm communicator = MPI_COMM_WORLD, const MPI_Comm communicator = MPI_COMM_WORLD,
    const bool omit_zeroing_entries = false const bool omit_zeroing_entries = false 
    )
    │ │ │ │ @@ -717,39 +717,39 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ reinit() [2/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::reinit (const IndexSetconst IndexSetlocally_owned_entries,
    const IndexSetconst IndexSetlocally_relevant_or_ghost_entries,
    const MPI_Comm communicator = MPI_COMM_WORLD, const MPI_Comm communicator = MPI_COMM_WORLD,
    const bool vector_writable = false const bool vector_writable = false 
    )
    │ │ │ │ @@ -762,27 +762,27 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ reinit() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::reinit (const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V,
    const bool omit_zeroing_entries = false const bool omit_zeroing_entries = false 
    )
    │ │ │ │ @@ -793,15 +793,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ swap()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace >
    │ │ │ │ +template<typename Number , typename MemorySpace >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -826,23 +826,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ extract_subvector_to()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void Vector< Number, MemorySpace >::swap (
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -867,20 +867,20 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ operator=() [1/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    virtual void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::extract_subvector_to virtual void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::extract_subvector_to (const ArrayView< const types::global_dof_index > & const ArrayView< const types::global_dof_index > & indices,
    ArrayView< Number > & elements 
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator= Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator= (const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V)
    │ │ │ │
    │ │ │ │

    Copy function. This function takes a Vector and copies all the elements. The Vector will have the same parallel distribution as V.

    │ │ │ │

    The semantics of this operator are complex. If the two vectors have the same size, and if either the left or right hand side vector of the assignment (i.e., either the input vector on the right hand side, or the calling vector to the left of the assignment operator) currently has ghost elements, then the left hand side vector will also have ghost values and will consequently be a read-only vector (see also the glossary entry on the issue). Otherwise, the left hand vector will be a writable vector after this operation. These semantics facilitate having a vector with ghost elements on the left hand side of the assignment, and a vector without ghost elements on the right hand side, with the resulting left hand side vector having the correct values in both its locally owned and its ghost elements.

    │ │ │ │ @@ -890,22 +890,22 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator=() [2/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    │ │ │ │ -template<typename OtherNumber >
    │ │ │ │ +template<typename OtherNumber >
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator= Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator= (const ::Vector< OtherNumber > & const ::Vector< OtherNumber > & V)
    │ │ │ │
    │ │ │ │

    Copy function. This function takes a Vector and copies all the elements. The Vector will have the same parallel distribution as V.

    │ │ │ │ │ │ │ │ @@ -913,20 +913,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator=() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator= Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator= (const Number const Number s)
    │ │ │ │
    │ │ │ │

    Sets all elements of the vector to the scalar s. This operation is only allowed if s is equal to zero.

    │ │ │ │ │ │ │ │ @@ -934,32 +934,32 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ import_elements() [1/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -971,32 +971,32 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ import_elements() [2/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::import_elements (const ReadWriteVector< Number > & const ReadWriteVector< Number > & V,
    VectorOperation::values operation,
    const Teuchos::RCP< const Utilities::MPI::CommunicationPatternBase > & const Teuchos::RCP< const Utilities::MPI::CommunicationPatternBase > & communication_pattern 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1008,20 +1008,20 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ import_elements() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::import_elements (const ReadWriteVector< Number > & const ReadWriteVector< Number > & V,
    VectorOperation::values operation,
    const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > & const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > & communication_pattern 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1038,35 +1038,35 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ import()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::import_elements (const ReadWriteVector< Number > & const ReadWriteVector< Number > & V,
    VectorOperation::values operation 
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1085,23 +1085,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ operator()() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace >
    │ │ │ │ +template<typename Number , typename MemorySpace >
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::import (const ReadWriteVector< Number > & const ReadWriteVector< Number > & V,
    VectorOperation::values operation,
    std::shared_ptr< const Utilities::MPI::CommunicationPatternBasestd::shared_ptr< const Utilities::MPI::CommunicationPatternBasecommunication_pattern = {} 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1117,20 +1117,20 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ operator()() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    internal::VectorReference< Number, MemorySpace > Vector< Number, MemorySpace >::operator() internal::VectorReference< Number, MemorySpace > Vector< Number, MemorySpace >::operator() (const size_type const size_type index)
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Number LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator() Number LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator() (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │

    Provide read-only access to an element.

    │ │ │ │

    When using a vector distributed with MPI, this operation only makes sense for elements that are actually present on the calling processor. Otherwise, an exception is thrown.

    │ │ │ │ @@ -1139,84 +1139,84 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator[]() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace >
    │ │ │ │ +template<typename Number , typename MemorySpace >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    internal::VectorReference< Number, MemorySpace > Vector< Number, MemorySpace >::operator[] internal::VectorReference< Number, MemorySpace > Vector< Number, MemorySpace >::operator[] (const size_type const size_type index)
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │
    │ │ │ │

    Provide access to a given element, both read and write.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │

    Definition at line 1368 of file trilinos_tpetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ operator[]() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace >
    │ │ │ │ +template<typename Number , typename MemorySpace >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Number Vector< Number, MemorySpace >::operator[] Number Vector< Number, MemorySpace >::operator[] (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │
    │ │ │ │

    Provide read-only access to an element.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │

    Definition at line 1375 of file trilinos_tpetra_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ operator*=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator*= Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator*= (const Number const Number factor)
    │ │ │ │
    │ │ │ │

    Multiply the entire vector by a fixed factor.

    │ │ │ │ │ │ │ │ @@ -1224,20 +1224,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator/=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator/= Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator/= (const Number const Number factor)
    │ │ │ │
    │ │ │ │

    Divide the entire vector by a fixed factor.

    │ │ │ │ │ │ │ │ @@ -1245,20 +1245,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator+=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator+= Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator+= (const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V)
    │ │ │ │
    │ │ │ │

    Add the vector V to the present one.

    │ │ │ │ │ │ │ │ @@ -1266,20 +1266,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator-=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator-= Vector & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator-= (const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V)
    │ │ │ │
    │ │ │ │

    Subtract the vector V from the present one.

    │ │ │ │ │ │ │ │ @@ -1287,20 +1287,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator*()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Number LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator* Number LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator* (const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V) const
    │ │ │ │
    │ │ │ │

    Return the scalar product of two vectors. The vectors need to have the same layout.

    │ │ │ │ │ │ │ │ @@ -1308,20 +1308,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ add() [1/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::add (const Number const Number a)
    │ │ │ │
    │ │ │ │

    Add a to all components. Note that is a scalar not a vector.

    │ │ │ │ │ │ │ │ @@ -1329,26 +1329,26 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ add() [2/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1360,38 +1360,38 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ add() [3/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::add (const Number const Number a,
    const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1403,29 +1403,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ add() [4/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace >
    │ │ │ │ +template<typename Number , typename MemorySpace >
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::add (const Number const Number a,
    const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V,
    const Number const Number b,
    const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & W 
    )
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1444,35 +1444,35 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ add() [5/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace >
    │ │ │ │ +template<typename Number , typename MemorySpace >
    │ │ │ │
    void Vector< Number, MemorySpace >::add (const std::vector< size_type > & const std::vector< size_type > & indices,
    const std::vector< Number > & const std::vector< Number > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1491,32 +1491,32 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ sadd()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void Vector< Number, MemorySpace >::add (const size_type const size_type n_elements,
    const size_typeconst size_typeindices,
    const Number * const Number * values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1528,35 +1528,35 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ set()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace >
    │ │ │ │ +template<typename Number , typename MemorySpace >
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::sadd (const Number const Number s,
    const Number const Number a,
    const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V 
    )
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1575,20 +1575,20 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ scale()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void Vector< Number, MemorySpace >::set (const size_type const size_type n_elements,
    const size_typeconst size_typeindices,
    const Number * const Number * values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::scale (const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & scaling_factors)
    │ │ │ │
    │ │ │ │

    Scale each element of this vector by the corresponding element in the argument. This function is mostly meant to simulate multiplication (and immediate re-assignment) by a diagonal scaling matrix. The vectors need to have the same layout.

    │ │ │ │ │ │ │ │ @@ -1596,26 +1596,26 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ equ()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1627,15 +1627,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ all_zero()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::equ (const Number const Number a,
    const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1647,15 +1647,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ is_non_negative()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    bool LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::all_zero () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1667,15 +1667,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ mean_value()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    bool LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::is_non_negative () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1687,15 +1687,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ l1_norm()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    Number LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::mean_value () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1707,15 +1707,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ l2_norm()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    real_type LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::l1_norm () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1727,15 +1727,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ linfty_norm()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    real_type LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::l2_norm () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1747,15 +1747,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ norm_sqr()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    real_type LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::linfty_norm () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1767,32 +1767,32 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ add_and_dot()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    real_type LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::norm_sqr () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1809,15 +1809,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ has_ghost_elements()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace >
    │ │ │ │ +template<typename Number , typename MemorySpace >
    │ │ │ │
    Number LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::add_and_dot (const Number const Number a,
    const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & V,
    const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & W 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1839,20 +1839,20 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ operator==()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    bool Vector< Number, MemorySpace >::has_ghost_elements (
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator== bool LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator== (const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & v) const
    │ │ │ │
    │ │ │ │

    Test for equality. This function assumes that the present vector and the one to compare with have the same size already, since comparing vectors of different sizes makes not much sense anyway.

    │ │ │ │ │ │ │ │ @@ -1860,20 +1860,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator!=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::operator!= (const Vector< Number, MemorySpace > & const Vector< Number, MemorySpace > & v) const
    │ │ │ │
    │ │ │ │

    Test for inequality. This function assumes that the present vector and the one to compare with have the same size already, since comparing vectors of different sizes makes not much sense anyway.

    │ │ │ │ │ │ │ │ @@ -1881,21 +1881,21 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ size()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    virtual size_type LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::size virtual size_type LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::size () const
    │ │ │ │
    │ │ │ │ @@ -1911,15 +1911,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ locally_owned_size()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1931,15 +1931,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ local_range()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    size_type LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::locally_owned_size () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1952,20 +1952,20 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ in_local_range()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    std::pair< size_type, size_type > LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::local_range () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::in_local_range (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │

    Return whether index is in the local range or not, see also local_range().

    │ │ │ │
    Note
    The same limitation for the applicability of this function applies as listed in the documentation of local_range().
    │ │ │ │ @@ -1974,15 +1974,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ is_compressed()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace >
    │ │ │ │ +template<typename Number , typename MemorySpace >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2004,15 +2004,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_mpi_communicator()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    bool Vector< Number, MemorySpace >::is_compressed (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2024,41 +2024,42 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ locally_owned_elements()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    MPI_Comm LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::get_mpi_communicator () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    ::IndexSet LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::locally_owned_elements () const
    │ │ │ │
    │ │ │ │ -

    Return an index set that describes which elements of this vector are owned by the current processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set(vec.size())
    │ │ │ │ +

    Return an index set that describes which elements of this vector are owned by the current processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set(vec.size())
    │ │ │ │ +
    Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > vector
    │ │ │ │
    IndexSet complete_index_set(const IndexSet::size_type N)
    Definition index_set.h:1204
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ compress()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::compress (const VectorOperation::values const VectorOperation::values operation)
    │ │ │ │
    │ │ │ │

    Compress the underlying representation of the Trilinos object, i.e. flush the buffers of the vector object if it has any. This function is necessary after writing into a vector element-by-element and before anything else can be done on it.

    │ │ │ │
    Parameters
    │ │ │ │ @@ -2073,18 +2074,18 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ trilinos_vector() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    const TpetraTypes::VectorType< Number, MemorySpace > & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::trilinos_vector const TpetraTypes::VectorType< Number, MemorySpace > & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::trilinos_vector () const
    │ │ │ │
    │ │ │ │

    Return a const reference to the underlying Trilinos Tpetra::Vector class.

    │ │ │ │ @@ -2093,15 +2094,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ trilinos_vector() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2113,18 +2114,18 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ trilinos_rcp() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    TpetraTypes::VectorType< Number, MemorySpace > & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::trilinos_vector ()
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Teuchos::RCP< const TpetraTypes::VectorType< Number, MemorySpace > > LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::trilinos_rcp Teuchos::RCP< const TpetraTypes::VectorType< Number, MemorySpace > > LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::trilinos_rcp () const
    │ │ │ │
    │ │ │ │

    Return a const Teuchos::RCP to the underlying Trilinos Tpetra::Vector class.

    │ │ │ │ @@ -2133,15 +2134,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ trilinos_rcp() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2153,39 +2154,39 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ print()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::trilinos_rcp ()
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::print (std::ostream & out,
    const unsigned int const unsigned int precision = 3,
    const bool scientific = true, const bool scientific = true,
    const bool across = true const bool across = true 
    ) const
    │ │ │ │ @@ -2196,15 +2197,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ memory_consumption()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2216,15 +2217,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ mpi_comm()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    std::size_t LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::memory_consumption () const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2236,29 +2237,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ create_tpetra_comm_pattern()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    MPI_Comm LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::mpi_comm () const
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2382,15 +2383,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ list_subscribers() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename StreamType >
    │ │ │ │ +template<typename StreamType >
    │ │ │ │
    void LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::create_tpetra_comm_pattern (const IndexSetconst IndexSetsource_index_set,
    const MPI_Comm const MPI_Comm mpi_comm 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2441,15 +2442,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ serialize()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<class Archive >
    │ │ │ │ +template<class Archive >
    │ │ │ │
    void Subscriptor::list_subscribers (
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2515,21 +2516,21 @@ │ │ │ │

    Friends And Related Symbol Documentation

    │ │ │ │ │ │ │ │

    ◆ internal::VectorReference< Number, MemorySpace >

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    void Subscriptor::serialize (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    friend class internal::VectorReference< Number, MemorySpace >friend class internal::VectorReference< Number, MemorySpace >
    │ │ │ │
    │ │ │ │ friend
    │ │ │ │ @@ -2542,15 +2543,15 @@ │ │ │ │

    Member Data Documentation

    │ │ │ │ │ │ │ │

    ◆ compressed

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2569,15 +2570,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ has_ghost

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    bool LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::compressed
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2624,15 +2625,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ nonlocal_vector

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    bool LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::has_ghost
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2651,15 +2652,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ source_stored_elements

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    Teuchos::RCP<TpetraTypes::VectorType<Number, MemorySpace> > LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::nonlocal_vector
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2678,21 +2679,21 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ tpetra_comm_pattern

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    ::IndexSet LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::source_stored_elements
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    Teuchos::RCP<const TpetraWrappers::CommunicationPattern<MemorySpace> > LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::tpetra_comm_patternTeuchos::RCP<const TpetraWrappers::CommunicationPattern<MemorySpace> > LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::tpetra_comm_pattern
    │ │ │ │
    │ │ │ │ private
    │ │ │ │ @@ -2787,15 +2788,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    const std::type_info* Subscriptor::object_infoconst std::type_info* Subscriptor::object_info
    │ │ │ │
    │ │ │ │ mutableprivateinherited
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -17,476 +17,476 @@ │ │ │ │ │ _T_p_e_t_r_a_W_r_a_p_p_e_r_s | _L_i_n_e_a_r_ _a_l_g_e_b_r_a_ _c_l_a_s_s_e_s » _V_e_c_t_o_r_ _c_l_a_s_s_e_s │ │ │ │ │ #include <_d_e_a_l_._I_I_/_l_a_c_/_t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h> │ │ │ │ │ Inheritance diagram for LinearAlgebra::TpetraWrappers::Vector< Number, │ │ │ │ │ MemorySpace >: │ │ │ │ │ [Inheritance graph] │ │ │ │ │ [_l_e_g_e_n_d] │ │ │ │ │ PPuubblliicc TTyyppeess │ │ │ │ │ -using  _v_a_l_u_e___t_y_p_e = Number │ │ │ │ │ +_u_s_i_n_g  _v_a_l_u_e___t_y_p_e = Number │ │ │ │ │   │ │ │ │ │ -using  _r_e_a_l___t_y_p_e = typename _n_u_m_b_e_r_s_:_:_N_u_m_b_e_r_T_r_a_i_t_s< Number >::real_type │ │ │ │ │ +_u_s_i_n_g  _r_e_a_l___t_y_p_e = _t_y_p_e_n_a_m_e _n_u_m_b_e_r_s_:_:_N_u_m_b_e_r_T_r_a_i_t_s< Number >::real_type │ │ │ │ │   │ │ │ │ │ -using  _s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │ +_u_s_i_n_g  _s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │   │ │ │ │ │ -using  _r_e_f_e_r_e_n_c_e = internal::VectorReference< Number, MemorySpace > │ │ │ │ │ +_u_s_i_n_g  _r_e_f_e_r_e_n_c_e = internal::VectorReference< Number, MemorySpace > │ │ │ │ │   │ │ │ │ │ -using  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = const internal::VectorReference< Number, MemorySpace > │ │ │ │ │ +_u_s_i_n_g  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = _c_o_n_s_t internal::VectorReference< Number, MemorySpace > │ │ │ │ │   │ │ │ │ │ PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -template │ │ │ │ │ - void  _s_e_r_i_a_l_i_z_e (Archive &ar, const unsigned │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ + void  _s_e_r_i_a_l_i_z_e (_A_r_c_h_i_v_e &_a_r, _c_o_n_s_t unsigned │ │ │ │ │ _i_n_t version) │ │ │ │ │   │ │ │ │ │ 1: Basic Object-handling │ │ │ │ │   _V_e_c_t_o_r () │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _V_e_c_t_o_r &V) │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const Teuchos::RCP< │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t Teuchos::RCP< │ │ │ │ │ _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, │ │ │ │ │ MemorySpace > > V) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _I_n_d_e_x_S_e_t │ │ │ │ │ - ¶llel_partitioner, const _M_P_I___C_o_m_m │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r, _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ communicator) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _I_n_d_e_x_S_e_t │ │ │ │ │ - &locally_owned_entries, const _I_n_d_e_x_S_e_t │ │ │ │ │ - &ghost_entries, const _M_P_I___C_o_m_m │ │ │ │ │ - communicator, const _b_o_o_l │ │ │ │ │ - vector_writable=false) │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s, _c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_g_h_o_s_t___e_n_t_r_i_e_s, _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ + communicator, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _v_e_c_t_o_r___w_r_i_t_a_b_l_e=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ void  _c_l_e_a_r () │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _I_n_d_e_x_S_e_t │ │ │ │ │ - ¶llel_partitioner, const _M_P_I___C_o_m_m │ │ │ │ │ - communicator=MPI_COMM_WORLD, const _b_o_o_l │ │ │ │ │ - omit_zeroing_entries=false) │ │ │ │ │ -  │ │ │ │ │ - void  _r_e_i_n_i_t (const _I_n_d_e_x_S_e_t │ │ │ │ │ - &locally_owned_entries, const _I_n_d_e_x_S_e_t │ │ │ │ │ - &locally_relevant_or_ghost_entries, │ │ │ │ │ - const _M_P_I___C_o_m_m │ │ │ │ │ - communicator=MPI_COMM_WORLD, const _b_o_o_l │ │ │ │ │ - vector_writable=false) │ │ │ │ │ -  │ │ │ │ │ - void  _r_e_i_n_i_t (const _V_e_c_t_o_r< Number, │ │ │ │ │ - MemorySpace > &V, const _b_o_o_l │ │ │ │ │ - omit_zeroing_entries=false) │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r, _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ + communicator=_M_P_I___C_O_M_M___W_O_R_L_D, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s=_f_a_l_s_e) │ │ │ │ │ +  │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s, _c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_l_o_c_a_l_l_y___r_e_l_e_v_a_n_t___o_r___g_h_o_s_t___e_n_t_r_i_e_s, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ + communicator=_M_P_I___C_O_M_M___W_O_R_L_D, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _v_e_c_t_o_r___w_r_i_t_a_b_l_e=_f_a_l_s_e) │ │ │ │ │ +  │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _V_e_c_t_o_r< Number, │ │ │ │ │ + MemorySpace > &V, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ - virtual void  _s_w_a_p (_V_e_c_t_o_r &v) noexcept │ │ │ │ │ + _v_i_r_t_u_a_l void  _s_w_a_p (_V_e_c_t_o_r &v) _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ - virtual void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const _A_r_r_a_y_V_i_e_w< │ │ │ │ │ - const _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x > │ │ │ │ │ + _v_i_r_t_u_a_l void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t _A_r_r_a_y_V_i_e_w< │ │ │ │ │ + _c_o_n_s_t _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x > │ │ │ │ │ &indices, _A_r_r_a_y_V_i_e_w< Number > &elements) │ │ │ │ │ - const override │ │ │ │ │ + _c_o_n_s_t _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const _V_e_c_t_o_r &V) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const _:_:_V_e_c_t_o_r< OtherNumber > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _O_t_h_e_r_N_u_m_b_e_r > │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t _:_:_V_e_c_t_o_r< _O_t_h_e_r_N_u_m_b_e_r > │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const Number s) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t Number s) │ │ │ │ │   │ │ │ │ │ - void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< │ │ │ │ │ + void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (_c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< │ │ │ │ │ Number > &V, _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ - operation, const Teuchos::RCP< const │ │ │ │ │ + operation, _c_o_n_s_t Teuchos::RCP< _c_o_n_s_t │ │ │ │ │ _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e │ │ │ │ │ - > &communication_pattern) │ │ │ │ │ + > &_c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n) │ │ │ │ │   │ │ │ │ │ - void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< │ │ │ │ │ + void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (_c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< │ │ │ │ │ Number > &V, _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ - operation, const std::shared_ptr< const │ │ │ │ │ + operation, _c_o_n_s_t std::shared_ptr< _c_o_n_s_t │ │ │ │ │ _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e │ │ │ │ │ - > &communication_pattern) │ │ │ │ │ + > &_c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n) │ │ │ │ │   │ │ │ │ │ - void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< │ │ │ │ │ + void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (_c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< │ │ │ │ │ Number > &V, _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ operation) │ │ │ │ │   │ │ │ │ │ - void  _i_m_p_o_r_t (const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< Number > │ │ │ │ │ + void  _i_m_p_o_r_t (_c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< Number > │ │ │ │ │ &V, _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, │ │ │ │ │ - std::shared_ptr< const _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: │ │ │ │ │ + std::shared_ptr< _c_o_n_s_t _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: │ │ │ │ │ _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e > │ │ │ │ │ - communication_pattern={}) │ │ │ │ │ + _c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n={}) │ │ │ │ │   │ │ │ │ │ 2: Data-Access │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - Number  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + Number  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - Number  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + Number  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ 3: Modification of vectors │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_*_= (const Number factor) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_*_= (_c_o_n_s_t Number factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_/_= (const Number factor) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_/_= (_c_o_n_s_t Number factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_+_= (const _V_e_c_t_o_r< Number, │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_+_= (_c_o_n_s_t _V_e_c_t_o_r< Number, │ │ │ │ │ MemorySpace > &V) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_-_= (const _V_e_c_t_o_r< Number, │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_-_= (_c_o_n_s_t _V_e_c_t_o_r< Number, │ │ │ │ │ MemorySpace > &V) │ │ │ │ │   │ │ │ │ │ - Number  _o_p_e_r_a_t_o_r_* (const _V_e_c_t_o_r< Number, │ │ │ │ │ - MemorySpace > &V) const │ │ │ │ │ + Number  _o_p_e_r_a_t_o_r_* (_c_o_n_s_t _V_e_c_t_o_r< Number, │ │ │ │ │ + MemorySpace > &V) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const Number a) │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t Number a) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const Number a, const _V_e_c_t_o_r< │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t Number a, _c_o_n_s_t _V_e_c_t_o_r< │ │ │ │ │ Number, MemorySpace > &V) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const Number a, const _V_e_c_t_o_r< │ │ │ │ │ - Number, MemorySpace > &V, const Number │ │ │ │ │ - b, const _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t Number a, _c_o_n_s_t _V_e_c_t_o_r< │ │ │ │ │ + Number, MemorySpace > &V, _c_o_n_s_t Number │ │ │ │ │ + b, _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ &W) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const std::vector< Number > │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t std::vector< Number > │ │ │ │ │ &values) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const _s_i_z_e___t_y_p_e n_elements, const │ │ │ │ │ - _s_i_z_e___t_y_p_e *indices, const Number │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t _s_i_z_e___t_y_p_e n_elements, _c_o_n_s_t │ │ │ │ │ + _s_i_z_e___t_y_p_e *indices, _c_o_n_s_t Number │ │ │ │ │ *values) │ │ │ │ │   │ │ │ │ │ - void  _s_a_d_d (const Number s, const Number a, │ │ │ │ │ - const _V_e_c_t_o_r< Number, MemorySpace > &V) │ │ │ │ │ + void  _s_a_d_d (_c_o_n_s_t Number s, _c_o_n_s_t Number a, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > &V) │ │ │ │ │   │ │ │ │ │ - void  _s_e_t (const _s_i_z_e___t_y_p_e n_elements, const │ │ │ │ │ - _s_i_z_e___t_y_p_e *indices, const Number │ │ │ │ │ + void  _s_e_t (_c_o_n_s_t _s_i_z_e___t_y_p_e n_elements, _c_o_n_s_t │ │ │ │ │ + _s_i_z_e___t_y_p_e *indices, _c_o_n_s_t Number │ │ │ │ │ *values) │ │ │ │ │   │ │ │ │ │ - void  _s_c_a_l_e (const _V_e_c_t_o_r< Number, MemorySpace │ │ │ │ │ - > &scaling_factors) │ │ │ │ │ + void  _s_c_a_l_e (_c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace │ │ │ │ │ + > &_s_c_a_l_i_n_g___f_a_c_t_o_r_s) │ │ │ │ │   │ │ │ │ │ - void  _e_q_u (const Number a, const _V_e_c_t_o_r< │ │ │ │ │ + void  _e_q_u (_c_o_n_s_t Number a, _c_o_n_s_t _V_e_c_t_o_r< │ │ │ │ │ Number, MemorySpace > &V) │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _a_l_l___z_e_r_o () const │ │ │ │ │ + _b_o_o_l  _a_l_l___z_e_r_o () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _i_s___n_o_n___n_e_g_a_t_i_v_e () const │ │ │ │ │ + _b_o_o_l  _i_s___n_o_n___n_e_g_a_t_i_v_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ 4: Scalar products, norms and related operations │ │ │ │ │ - Number  _m_e_a_n___v_a_l_u_e () const │ │ │ │ │ + Number  _m_e_a_n___v_a_l_u_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_1___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_1___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_2___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_2___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_i_n_f_t_y___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_i_n_f_t_y___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _n_o_r_m___s_q_r () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _n_o_r_m___s_q_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - Number  _a_d_d___a_n_d___d_o_t (const Number a, const │ │ │ │ │ - _V_e_c_t_o_r< Number, MemorySpace > &V, const │ │ │ │ │ + Number  _a_d_d___a_n_d___d_o_t (_c_o_n_s_t Number a, _c_o_n_s_t │ │ │ │ │ + _V_e_c_t_o_r< Number, MemorySpace > &V, _c_o_n_s_t │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace > &W) │ │ │ │ │   │ │ │ │ │ 5: Scalar products, norms and related operations │ │ │ │ │ - _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _o_p_e_r_a_t_o_r_=_= (const _V_e_c_t_o_r< Number, │ │ │ │ │ - MemorySpace > &v) const │ │ │ │ │ + _b_o_o_l  _o_p_e_r_a_t_o_r_=_= (_c_o_n_s_t _V_e_c_t_o_r< Number, │ │ │ │ │ + MemorySpace > &v) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _o_p_e_r_a_t_o_r_!_= (const _V_e_c_t_o_r< Number, │ │ │ │ │ - MemorySpace > &v) const │ │ │ │ │ + _b_o_o_l  _o_p_e_r_a_t_o_r_!_= (_c_o_n_s_t _V_e_c_t_o_r< Number, │ │ │ │ │ + MemorySpace > &v) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - virtual _s_i_z_e___t_y_p_e  _s_i_z_e () const override │ │ │ │ │ + _v_i_r_t_u_a_l _s_i_z_e___t_y_p_e  _s_i_z_e () _c_o_n_s_t _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ - _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () const │ │ │ │ │ + _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - std::pair< _s_i_z_e___t_y_p_e, _s_i_z_e___t_y_p_e >  _l_o_c_a_l___r_a_n_g_e () const │ │ │ │ │ + std::pair< _s_i_z_e___t_y_p_e, _s_i_z_e___t_y_p_e >  _l_o_c_a_l___r_a_n_g_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _i_n___l_o_c_a_l___r_a_n_g_e (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ - const │ │ │ │ │ + _b_o_o_l  _i_n___l_o_c_a_l___r_a_n_g_e (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _i_s___c_o_m_p_r_e_s_s_e_d () const │ │ │ │ │ + _b_o_o_l  _i_s___c_o_m_p_r_e_s_s_e_d () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () const │ │ │ │ │ + _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _:_:_I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _:_:_I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ 6: Mixed stuff │ │ │ │ │ - void  _c_o_m_p_r_e_s_s (const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ + void  _c_o_m_p_r_e_s_s (_c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ operation) │ │ │ │ │   │ │ │ │ │ -const _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, │ │ │ │ │ - MemorySpace > &  _t_r_i_l_i_n_o_s___v_e_c_t_o_r () const │ │ │ │ │ +_c_o_n_s_t _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, │ │ │ │ │ + MemorySpace > &  _t_r_i_l_i_n_o_s___v_e_c_t_o_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, │ │ │ │ │ MemorySpace > &  _t_r_i_l_i_n_o_s___v_e_c_t_o_r () │ │ │ │ │   │ │ │ │ │ - Teuchos::RCP< const _T_p_e_t_r_a_T_y_p_e_s_:_: │ │ │ │ │ - _V_e_c_t_o_r_T_y_p_e< Number, MemorySpace > >  _t_r_i_l_i_n_o_s___r_c_p () const │ │ │ │ │ + Teuchos::RCP< _c_o_n_s_t _T_p_e_t_r_a_T_y_p_e_s_:_: │ │ │ │ │ + _V_e_c_t_o_r_T_y_p_e< Number, MemorySpace > >  _t_r_i_l_i_n_o_s___r_c_p () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Teuchos::RCP< _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< │ │ │ │ │ Number, MemorySpace > >  _t_r_i_l_i_n_o_s___r_c_p () │ │ │ │ │   │ │ │ │ │ - void  _p_r_i_n_t (std::ostream &out, const unsigned │ │ │ │ │ - _i_n_t precision=3, const _b_o_o_l │ │ │ │ │ - scientific=true, const _b_o_o_l across=true) │ │ │ │ │ - const │ │ │ │ │ + void  _p_r_i_n_t (std::ostream &out, _c_o_n_s_t unsigned │ │ │ │ │ + _i_n_t precision=3, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + scientific=_t_r_u_e, _c_o_n_s_t _b_o_o_l _a_c_r_o_s_s=_t_r_u_e) │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () const │ │ │ │ │ + std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _M_P_I___C_o_m_m  _m_p_i___c_o_m_m () const │ │ │ │ │ + _M_P_I___C_o_m_m  _m_p_i___c_o_m_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Subscriptor functionality │ │ │ │ │ Classes derived from _S_u_b_s_c_r_i_p_t_o_r provide a facility to subscribe to this │ │ │ │ │ object. This is mostly used by the _S_m_a_r_t_P_o_i_n_t_e_r class. │ │ │ │ │ - void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const │ │ │ │ │ - validity, const std::string │ │ │ │ │ - &identifier="") const │ │ │ │ │ + void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t │ │ │ │ │ + _v_a_l_i_d_i_t_y, _c_o_n_s_t std::string │ │ │ │ │ + &_i_d_e_n_t_i_f_i_e_r="") _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const │ │ │ │ │ - validity, const std::string │ │ │ │ │ - &identifier="") const │ │ │ │ │ + void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t │ │ │ │ │ + _v_a_l_i_d_i_t_y, _c_o_n_s_t std::string │ │ │ │ │ + &_i_d_e_n_t_i_f_i_e_r="") _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () const │ │ │ │ │ + unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (StreamType &stream) │ │ │ │ │ - const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (_S_t_r_e_a_m_T_y_p_e &stream) │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () const │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g () │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_V_e_c_t_o_r_T_y_p_e_N_o_t_C_o_m_p_a_t_i_b_l_e () │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_V_e_c_t_o_r_T_y_p_e_N_o_t_C_o_m_p_a_t_i_b_l_e () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t (_s_i_z_e___t_y_p_e arg1, _s_i_z_e___t_y_p_e │ │ │ │ │ - arg2, _s_i_z_e___t_y_p_e arg3, _s_i_z_e___t_y_p_e arg4) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t (_s_i_z_e___t_y_p_e _a_r_g_1, _s_i_z_e___t_y_p_e │ │ │ │ │ + _a_r_g_2, _s_i_z_e___t_y_p_e _a_r_g_3, _s_i_z_e___t_y_p_e _a_r_g_4) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_M_i_s_s_i_n_g_I_n_d_e_x_S_e_t () │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_M_i_s_s_i_n_g_I_n_d_e_x_S_e_t () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t arg1) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t _a_r_g_1) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t arg1, std::string arg2, std::string │ │ │ │ │ - arg3) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t _a_r_g_1, std::string _a_r_g_2, std::string │ │ │ │ │ + _a_r_g_3) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string arg1, std::string arg2) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string _a_r_g_1, std::string _a_r_g_2) │ │ │ │ │   │ │ │ │ │ PPrriivvaattee TTyyppeess │ │ │ │ │ -using  _m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g  _m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │   │ │ │ │ │ -using  _m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p)::iterator │ │ │ │ │ +_u_s_i_n_g  _m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)::iterator │ │ │ │ │   │ │ │ │ │ PPrriivvaattee MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -void  _c_r_e_a_t_e___t_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n (const _I_n_d_e_x_S_e_t &source_index_set, const │ │ │ │ │ +void  _c_r_e_a_t_e___t_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n (_c_o_n_s_t _I_n_d_e_x_S_e_t &_s_o_u_r_c_e___i_n_d_e_x___s_e_t, _c_o_n_s_t │ │ │ │ │ _M_P_I___C_o_m_m _m_p_i___c_o_m_m) │ │ │ │ │   │ │ │ │ │ -void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () const noexcept │ │ │ │ │ +void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ _b_o_o_l  _c_o_m_p_r_e_s_s_e_d │ │ │ │ │   │ │ │ │ │ _b_o_o_l  _h_a_s___g_h_o_s_t │ │ │ │ │   │ │ │ │ │ Teuchos::RCP< _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, │ │ │ │ │ MemorySpace > >  _v_e_c_t_o_r │ │ │ │ │   │ │ │ │ │ Teuchos::RCP< _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, │ │ │ │ │ MemorySpace > >  _n_o_n_l_o_c_a_l___v_e_c_t_o_r │ │ │ │ │   │ │ │ │ │ _:_:_I_n_d_e_x_S_e_t  _s_o_u_r_c_e___s_t_o_r_e_d___e_l_e_m_e_n_t_s │ │ │ │ │   │ │ │ │ │ - Teuchos::RCP< const _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: │ │ │ │ │ + Teuchos::RCP< _c_o_n_s_t _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: │ │ │ │ │ _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n< MemorySpace > >  _t_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n │ │ │ │ │   │ │ │ │ │ std::atomic< unsigned _i_n_t >  _c_o_u_n_t_e_r │ │ │ │ │   │ │ │ │ │ std::map< std::string, unsigned _i_n_t >  _c_o_u_n_t_e_r___m_a_p │ │ │ │ │   │ │ │ │ │ std::vector< std::atomic< _b_o_o_l > * >  _v_a_l_i_d_i_t_y___p_o_i_n_t_e_r_s │ │ │ │ │   │ │ │ │ │ - const std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │ + _c_o_n_s_t std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ -static std::mutex  _m_u_t_e_x │ │ │ │ │ +_s_t_a_t_i_c std::mutex  _m_u_t_e_x │ │ │ │ │   │ │ │ │ │ FFrriieennddss │ │ │ │ │ -class  _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_ _N_u_m_b_e_r_,_ _M_e_m_o_r_y_S_p_a_c_e_ _> │ │ │ │ │ +_c_l_a_s_s  _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e_<_ _N_u_m_b_e_r_,_ _M_e_m_o_r_y_S_p_a_c_e_ _> │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number, _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ class LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace > │ │ │ │ │ This class implements a wrapper to the Trilinos distributed vector class │ │ │ │ │ Tpetra::Vector. This class requires Trilinos to be compiled with MPI support. │ │ │ │ │ Moreover, this class takes an optional template argument for the memory space │ │ │ │ │ used. By default, all memory is allocated on the CPU. │ │ │ │ │ Definition at line _2_8_8 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** MMeemmbbeerr TTyyppeeddeeff DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? vvaalluuee__ttyyppee ********** │ │ │ │ │ -template │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::value_type │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::value_type │ │ │ │ │ = Number │ │ │ │ │ Declare some of the standard types used in all containers. │ │ │ │ │ Definition at line _2_9_4 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? rreeaall__ttyyppee ********** │ │ │ │ │ -template │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::real_type = │ │ │ │ │ -typename _n_u_m_b_e_r_s_:_:_N_u_m_b_e_r_T_r_a_i_t_s::real_type │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::real_type = │ │ │ │ │ +_t_y_p_e_n_a_m_e _n_u_m_b_e_r_s_:_:_N_u_m_b_e_r_T_r_a_i_t_s::real_type │ │ │ │ │ Definition at line _2_9_5 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ssiizzee__ttyyppee ********** │ │ │ │ │ -template │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::size_type = │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::size_type = │ │ │ │ │ _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │ Definition at line _2_9_6 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? rreeffeerreennccee ********** │ │ │ │ │ -template │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::reference = │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::reference = │ │ │ │ │ internal::VectorReference │ │ │ │ │ Definition at line _2_9_7 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ccoonnsstt__rreeffeerreennccee ********** │ │ │ │ │ -template │ │ │ │ │ -using _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: │ │ │ │ │ -const_reference = const internal::VectorReference │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_u_s_i_n_g _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: │ │ │ │ │ +const_reference = _c_o_n_s_t internal::VectorReference │ │ │ │ │ Definition at line _2_9_8 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmaapp__vvaalluuee__ttyyppee ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ _v_a_l_u_e___t_y_p_e │ │ │ │ │ The data type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_2_9 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmaapp__iitteerraattoorr ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p):: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p):: privateinherited │ │ │ │ │ iterator │ │ │ │ │ The iterator type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_3_4 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** CCoonnssttrruuccttoorr && DDeessttrruuccttoorr DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[11//55]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >_:_:_V_e_c_t_o_r ( ) │ │ │ │ │ Default constructor that generates an empty (zero size) vector. The function │ │ │ │ │ _r_e_i_n_i_t_(_) will have to give the vector the correct size and distribution among │ │ │ │ │ processes in case of an MPI run. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[22//55]] ********** │ │ │ │ │ -template │ │ │ │ │ -_L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: const _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >_:_: ( &  VV ) │ │ │ │ │ _V_e_c_t_o_r │ │ │ │ │ Copy constructor. Sets the dimension and the partitioning to that of the given │ │ │ │ │ vector and copies all elements. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[33//55]] ********** │ │ │ │ │ -template │ │ │ │ │ -_L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: const Teuchos::RCP< _T_p_e_t_r_a_T_y_p_e_s_:_: │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: _c_o_n_s_t Teuchos::RCP< _T_p_e_t_r_a_T_y_p_e_s_:_: │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >_:_: ( _V_e_c_t_o_r_T_y_p_e< Number, MemorySpace > >  VV ) │ │ │ │ │ _V_e_c_t_o_r │ │ │ │ │ Copy constructor from Teuchos::RCP. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[44//55]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonneerr, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonneerr, │ │ │ │ │ Number, MemorySpace >_:_: explicit │ │ │ │ │ _V_e_c_t_o_r │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  │ │ │ │ │ ) │ │ │ │ │ TODO: This is not used This constructor takes an _I_n_d_e_x_S_e_t that defines how to │ │ │ │ │ distribute the individual components among the MPI processors. Since it also │ │ │ │ │ includes information about the size of the vector, this is all we need to │ │ │ │ │ generate a parallel vector. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[55//55]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const _I_n_d_e_x_S_e_t &  llooccaallllyy__oowwnneedd__eennttrriieess, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaallllyy__oowwnneedd__eennttrriieess, │ │ │ │ │ Number, MemorySpace >_:_: │ │ │ │ │ _V_e_c_t_o_r explicit │ │ │ │ │ - const _I_n_d_e_x_S_e_t &  gghhoosstt__eennttrriieess, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ - const _b_o_o_l  vveeccttoorr__wwrriittaabbllee = false  │ │ │ │ │ + _c_o_n_s_t _I_n_d_e_x_S_e_t &  gghhoosstt__eennttrriieess, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  vveeccttoorr__wwrriittaabbllee = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ In addition to just specifying one index set as in all the other methods above, │ │ │ │ │ this method allows to supply an additional set of ghost entries. │ │ │ │ │ Depending on whether the locally_relevant_or_ghost_entries argument uniquely │ │ │ │ │ subdivides elements among processors or not, the resulting vector may or may │ │ │ │ │ not have ghost elements. See the general documentation of this class for more │ │ │ │ │ information. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ ********** MMeemmbbeerr FFuunnccttiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? cclleeaarr(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::clear ( ) │ │ │ │ │ Release all memory and return to a state just like after having called the │ │ │ │ │ default constructor. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[11//33]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonneerr, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonneerr, │ │ │ │ │ Number, MemorySpace >::reinit │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = │ │ │ │ │ - MPI_COMM_WORLD, │ │ │ │ │ - const _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = false  │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = │ │ │ │ │ + _M_P_I___C_O_M_M___W_O_R_L_D, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Reinit functionality. This function destroys the old vector content and │ │ │ │ │ generates a new one based on the input partitioning. The flag │ │ │ │ │ omit_zeroing_entries determines whether the vector should be filled with zeros │ │ │ │ │ (false) or left in an undetermined state (true). │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[22//33]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const _I_n_d_e_x_S_e_t &  llooccaallllyy__oowwnneedd__eennttrriieess, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaallllyy__oowwnneedd__eennttrriieess, │ │ │ │ │ Number, MemorySpace >:: │ │ │ │ │ reinit │ │ │ │ │ - const _I_n_d_e_x_S_e_t &  llooccaallllyy__rreelleevvaanntt__oorr__gghhoosstt__eennttrriieess, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = MPI_COMM_WORLD, │ │ │ │ │ - const _b_o_o_l  vveeccttoorr__wwrriittaabbllee = false  │ │ │ │ │ + _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaallllyy__rreelleevvaanntt__oorr__gghhoosstt__eennttrriieess, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = _M_P_I___C_O_M_M___W_O_R_L_D, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  vveeccttoorr__wwrriittaabbllee = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Reinit functionality. This function destroys the old vector content and │ │ │ │ │ generates a new one based on the input partitioning. In addition to just │ │ │ │ │ specifying one index set as in all the other methods above, this method allows │ │ │ │ │ to supply an additional set of ghost entries. │ │ │ │ │ Depending on whether the locally_relevant_or_ghost_entries argument uniquely │ │ │ │ │ subdivides elements among processors or not, the resulting vector may or may │ │ │ │ │ not have ghost elements. See the general documentation of this class for more │ │ │ │ │ information. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[33//33]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const _V_e_c_t_o_r< Number, VV, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t _V_e_c_t_o_r< Number, VV, │ │ │ │ │ Number, MemorySpace >:: MemorySpace > &  │ │ │ │ │ reinit │ │ │ │ │ - const _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = false  │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Change the dimension to that of the vector V. The elements of V are not copied. │ │ │ │ │ ********** _?◆_? sswwaapp(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace > │ │ │ │ │ void _V_e_c_t_o_r< Number, ( _V_e_c_t_o_r< Number, MemorySpace vv ) inlinevirtualnoexcept │ │ │ │ │ MemorySpace >::swap > &  │ │ │ │ │ Swap the contents of this vector and the other vector v. One could do this │ │ │ │ │ operation with a temporary variable and copying over the data elements, but │ │ │ │ │ this function is significantly more efficient since it only swaps the pointers │ │ │ │ │ to the data of the two vectors and therefore does not need to allocate │ │ │ │ │ temporary storage and move data around. │ │ │ │ │ This function is analogous to the swap function of all C++ standard containers. │ │ │ │ │ Also, there is a global function swap(u,v) that simply calls u.swap(v), again │ │ │ │ │ in analogy to standard functions. │ │ │ │ │ This function is virtual in order to allow for derived classes to handle memory │ │ │ │ │ separately. │ │ │ │ │ Definition at line _1_1_0_3 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? eexxttrraacctt__ssuubbvveeccttoorr__ttoo(()) ********** │ │ │ │ │ -template │ │ │ │ │ -virtual void │ │ │ │ │ -_L_i_n_e_a_r_A_l_g_e_b_r_a_:_: const _A_r_r_a_y_V_i_e_w< const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_v_i_r_t_u_a_l void │ │ │ │ │ +_L_i_n_e_a_r_A_l_g_e_b_r_a_:_: _c_o_n_s_t _A_r_r_a_y_V_i_e_w< _c_o_n_s_t │ │ │ │ │ _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x > iinnddiicceess, │ │ │ │ │ Number, MemorySpace >:: &  overridevirtual │ │ │ │ │ extract_subvector_to │ │ │ │ │ _A_r_r_a_y_V_i_e_w< Number > &  eelleemmeennttss  │ │ │ │ │ ) const │ │ │ │ │ Extract a range of elements all at once. │ │ │ │ │ Implements _R_e_a_d_V_e_c_t_o_r_<_ _N_u_m_b_e_r_ _>. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[11//33]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const _V_e_c_t_o_r< Number, MemorySpace > &  VV ) │ │ │ │ │ -MemorySpace >::operator= │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > &  VV ) │ │ │ │ │ +MemorySpace >_:_:_o_p_e_r_a_t_o_r= │ │ │ │ │ Copy function. This function takes a _V_e_c_t_o_r and copies all the elements. The │ │ │ │ │ _V_e_c_t_o_r will have the same parallel distribution as V. │ │ │ │ │ The semantics of this operator are complex. If the two vectors have the same │ │ │ │ │ size, and if either the left or right hand side vector of the assignment (i.e., │ │ │ │ │ either the input vector on the right hand side, or the calling vector to the │ │ │ │ │ left of the assignment operator) currently has ghost elements, then the left │ │ │ │ │ hand side vector will also have ghost values and will consequently be a read- │ │ │ │ │ @@ -500,269 +500,269 @@ │ │ │ │ │ yet, or is perhaps an entirely uninitialized vector, then the assignment is │ │ │ │ │ simply a copy operation in the usual sense: In that case, if the right hand │ │ │ │ │ side has no ghost elements (i.e., is a completely distributed vector), then the │ │ │ │ │ left hand side will have no ghost elements either. And if the right hand side │ │ │ │ │ has ghost elements (and is consequently read-only), then the left hand side │ │ │ │ │ will have these same properties after the operation. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[22//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _O_t_h_e_r_N_u_m_b_e_r > │ │ │ │ │ _V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const _:_:_V_e_c_t_o_r< OtherNumber > &  VV ) │ │ │ │ │ -MemorySpace >::operator= │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t _:_:_V_e_c_t_o_r< _O_t_h_e_r_N_u_m_b_e_r > &  VV ) │ │ │ │ │ +MemorySpace >_:_:_o_p_e_r_a_t_o_r= │ │ │ │ │ Copy function. This function takes a _V_e_c_t_o_r and copies all the elements. The │ │ │ │ │ _V_e_c_t_o_r will have the same parallel distribution as V. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[33//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -_V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const Number  ss ) │ │ │ │ │ -MemorySpace >::operator= │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t Number  ss ) │ │ │ │ │ +MemorySpace >_:_:_o_p_e_r_a_t_o_r= │ │ │ │ │ Sets all elements of the vector to the scalar s. This operation is only allowed │ │ │ │ │ if s is equal to zero. │ │ │ │ │ ********** _?◆_? iimmppoorrtt__eelleemmeennttss(()) [[11//33]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< Number VV, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< Number VV, │ │ │ │ │ Number, MemorySpace >:: > &  │ │ │ │ │ import_elements │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn, │ │ │ │ │ - const Teuchos::RCP< const │ │ │ │ │ + _c_o_n_s_t Teuchos::RCP< _c_o_n_s_t │ │ │ │ │ _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: ccoommmmuunniiccaattiioonn__ppaatttteerrnn  │ │ │ │ │ _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e > &  │ │ │ │ │ ) │ │ │ │ │ Imports all the elements present in the vector's _I_n_d_e_x_S_e_t from the input vector │ │ │ │ │ V. _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation is used to decide if the elements in V │ │ │ │ │ should be added to the current vector or replace the current elements. The last │ │ │ │ │ parameter can be used if the same communication pattern is used multiple times. │ │ │ │ │ This can be used to improve performance. │ │ │ │ │ ********** _?◆_? iimmppoorrtt__eelleemmeennttss(()) [[22//33]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< Number VV, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< Number VV, │ │ │ │ │ Number, MemorySpace >:: > &  │ │ │ │ │ import_elements │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn, │ │ │ │ │ - const std::shared_ptr< const │ │ │ │ │ + _c_o_n_s_t std::shared_ptr< _c_o_n_s_t │ │ │ │ │ _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: ccoommmmuunniiccaattiioonn__ppaatttteerrnn  │ │ │ │ │ _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e > &  │ │ │ │ │ ) │ │ │ │ │ _DD_ee_pp_rr_ee_cc_aa_tt_ee_dd_:: │ │ │ │ │ Use Teuchos::RCP<> instead of std::shared_ptr<>. │ │ │ │ │ ********** _?◆_? iimmppoorrtt__eelleemmeennttss(()) [[33//33]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< Number > &  VV, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< Number > &  VV, │ │ │ │ │ MemorySpace >::import_elements │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn  │ │ │ │ │ ) │ │ │ │ │ ********** _?◆_? iimmppoorrtt(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< VV, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< VV, │ │ │ │ │ _V_e_c_t_o_r< Number, Number > &  │ │ │ │ │ MemorySpace >::import │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn, inline │ │ │ │ │ - std::shared_ptr< const │ │ │ │ │ + std::shared_ptr< _c_o_n_s_t │ │ │ │ │ _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_: ccoommmmuunniiccaattiioonn__ppaatttteerrnn = │ │ │ │ │ _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n_B_a_s_e {}  │ │ │ │ │ >  │ │ │ │ │ ) │ │ │ │ │ _DD_ee_pp_rr_ee_cc_aa_tt_ee_dd_:: │ │ │ │ │ Use _i_m_p_o_r_t___e_l_e_m_e_n_t_s_(_) instead. │ │ │ │ │ Definition at line _5_1_4 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace > │ │ │ │ │ internal::VectorReference< Number, │ │ │ │ │ -MemorySpace > _V_e_c_t_o_r< Number, ( const _s_i_z_e___t_y_p_e  iinnddeexx ) inline │ │ │ │ │ -MemorySpace >::operator() │ │ │ │ │ +MemorySpace > _V_e_c_t_o_r< Number, ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) inline │ │ │ │ │ +MemorySpace >_:_:_o_p_e_r_a_t_o_r() │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ When using a vector distributed with MPI, this operation only makes sense for │ │ │ │ │ elements that are actually present on the calling processor. Otherwise, an │ │ │ │ │ exception is thrown. │ │ │ │ │ Definition at line _1_3_6_1 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -Number _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ -Number, MemorySpace >::operator() │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +Number _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ +Number, MemorySpace >_:_:_o_p_e_r_a_t_o_r() │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ When using a vector distributed with MPI, this operation only makes sense for │ │ │ │ │ elements that are actually present on the calling processor. Otherwise, an │ │ │ │ │ exception is thrown. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace > │ │ │ │ │ internal::VectorReference< Number, │ │ │ │ │ -MemorySpace > _V_e_c_t_o_r< Number, ( const _s_i_z_e___t_y_p_e  iinnddeexx ) inline │ │ │ │ │ -MemorySpace >::operator[] │ │ │ │ │ +MemorySpace > _V_e_c_t_o_r< Number, ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) inline │ │ │ │ │ +MemorySpace >_:_:_o_p_e_r_a_t_o_r[] │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ Definition at line _1_3_6_8 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -Number _V_e_c_t_o_r< Number, MemorySpace >:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const inline │ │ │ │ │ -operator[] │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace > │ │ │ │ │ +Number _V_e_c_t_o_r< Number, MemorySpace >_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const inline │ │ │ │ │ +_o_p_e_r_a_t_o_r[] │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ Definition at line _1_3_7_5 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**==(()) ********** │ │ │ │ │ -template │ │ │ │ │ -_V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const Number  ffaaccttoorr ) │ │ │ │ │ -Number, MemorySpace >::operator*= │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t Number  ffaaccttoorr ) │ │ │ │ │ +Number, MemorySpace >_:_:_o_p_e_r_a_t_o_r*= │ │ │ │ │ Multiply the entire vector by a fixed factor. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr//==(()) ********** │ │ │ │ │ -template │ │ │ │ │ -_V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const Number  ffaaccttoorr ) │ │ │ │ │ -Number, MemorySpace >::operator/= │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t Number  ffaaccttoorr ) │ │ │ │ │ +Number, MemorySpace >_:_:_o_p_e_r_a_t_o_r/= │ │ │ │ │ Divide the entire vector by a fixed factor. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr++==(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const _V_e_c_t_o_r< Number, MemorySpace > &  VV ) │ │ │ │ │ -MemorySpace >::operator+= │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > &  VV ) │ │ │ │ │ +MemorySpace >_:_:_o_p_e_r_a_t_o_r+= │ │ │ │ │ Add the vector V to the present one. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr--==(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _V_e_c_t_o_r & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const _V_e_c_t_o_r< Number, MemorySpace > &  VV ) │ │ │ │ │ -MemorySpace >::operator-= │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > &  VV ) │ │ │ │ │ +MemorySpace >_:_:_o_p_e_r_a_t_o_r-= │ │ │ │ │ Subtract the vector V from the present one. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**(()) ********** │ │ │ │ │ -template │ │ │ │ │ -Number _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: const _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +Number _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( &  VV ) const │ │ │ │ │ -MemorySpace >::operator* │ │ │ │ │ +MemorySpace >_:_:_o_p_e_r_a_t_o_r* │ │ │ │ │ Return the scalar product of two vectors. The vectors need to have the same │ │ │ │ │ layout. │ │ │ │ │ ********** _?◆_? aadddd(()) [[11//55]] ********** │ │ │ │ │ -template │ │ │ │ │ -void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const Number  aa ) │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t Number  aa ) │ │ │ │ │ MemorySpace >::add │ │ │ │ │ Add a to all components. Note that is a scalar not a vector. │ │ │ │ │ ********** _?◆_? aadddd(()) [[22//55]] ********** │ │ │ │ │ -template │ │ │ │ │ -void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( const Number  aa, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t Number  aa, │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >::add │ │ │ │ │ - const _V_e_c_t_o_r< Number, MemorySpace > VV  │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > VV  │ │ │ │ │ &  │ │ │ │ │ ) │ │ │ │ │ Simple addition of a multiple of a vector, i.e. *this += a*V. The vectors need │ │ │ │ │ to have the same layout. │ │ │ │ │ ********** _?◆_? aadddd(()) [[33//55]] ********** │ │ │ │ │ -template │ │ │ │ │ -void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( const Number  aa, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t Number  aa, │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >::add │ │ │ │ │ - const _V_e_c_t_o_r< Number, MemorySpace > VV, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > VV, │ │ │ │ │ &  │ │ │ │ │ - const Number  bb, │ │ │ │ │ - const _V_e_c_t_o_r< Number, MemorySpace > WW  │ │ │ │ │ + _c_o_n_s_t Number  bb, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > WW  │ │ │ │ │ &  │ │ │ │ │ ) │ │ │ │ │ Multiple addition of multiple of a vector, i.e. *this> += a*V+b*W. The vectors │ │ │ │ │ need to have the same layout. │ │ │ │ │ ********** _?◆_? aadddd(()) [[44//55]] ********** │ │ │ │ │ -template │ │ │ │ │ -void _V_e_c_t_o_r< Number, ( const std::vector< _s_i_z_e___t_y_p_e > iinnddiicceess, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace > │ │ │ │ │ +void _V_e_c_t_o_r< Number, ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > iinnddiicceess, │ │ │ │ │ MemorySpace >::add &  inline │ │ │ │ │ - const std::vector< Number > &  vvaalluueess  │ │ │ │ │ + _c_o_n_s_t std::vector< Number > &  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ A collective add operation: This function adds a whole set of values stored in │ │ │ │ │ values to the vector components specified by indices. │ │ │ │ │ Definition at line _1_1_1_1 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? aadddd(()) [[55//55]] ********** │ │ │ │ │ -template │ │ │ │ │ -void _V_e_c_t_o_r< Number, MemorySpace >::add ( const _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ - const _s_i_z_e___t_y_p_e *  iinnddiicceess, inline │ │ │ │ │ - const Number *  vvaalluueess  │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace > │ │ │ │ │ +void _V_e_c_t_o_r< Number, MemorySpace >::add ( _c_o_n_s_t _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e *  iinnddiicceess, inline │ │ │ │ │ + _c_o_n_s_t Number *  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ Take an address where n_elements are stored contiguously and add them into the │ │ │ │ │ vector. Handles all cases which are not covered by the other two _a_d_d_(_) │ │ │ │ │ functions above. │ │ │ │ │ Definition at line _1_1_2_5 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ssaadddd(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( const Number  ss, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t Number  ss, │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >::sadd │ │ │ │ │ - const Number  aa, │ │ │ │ │ - const _V_e_c_t_o_r< Number, MemorySpace > VV  │ │ │ │ │ + _c_o_n_s_t Number  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > VV  │ │ │ │ │ &  │ │ │ │ │ ) │ │ │ │ │ Scaling and simple addition of a multiple of a vector, i.e. tthhiiss == ss │ │ │ │ │ (*this)+a*V. │ │ │ │ │ ********** _?◆_? sseett(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _V_e_c_t_o_r< Number, MemorySpace >::set ( const _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ - const _s_i_z_e___t_y_p_e *  iinnddiicceess, inline │ │ │ │ │ - const Number *  vvaalluueess  │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace > │ │ │ │ │ +void _V_e_c_t_o_r< Number, MemorySpace >::set ( _c_o_n_s_t _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e *  iinnddiicceess, inline │ │ │ │ │ + _c_o_n_s_t Number *  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ A collective set operation: instead of setting individual elements of a vector, │ │ │ │ │ this function allows to set a whole set of elements at once. It is assumed that │ │ │ │ │ the elements to be set are located in contiguous memory. │ │ │ │ │ Definition at line _1_2_4_3 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ssccaallee(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: const _V_e_c_t_o_r< Number, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: _c_o_n_s_t _V_e_c_t_o_r< Number, │ │ │ │ │ _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( MemorySpace > &  ssccaalliinngg__ffaaccttoorrss ) │ │ │ │ │ MemorySpace >::scale │ │ │ │ │ Scale each element of this vector by the corresponding element in the argument. │ │ │ │ │ This function is mostly meant to simulate multiplication (and immediate re- │ │ │ │ │ assignment) by a diagonal scaling matrix. The vectors need to have the same │ │ │ │ │ layout. │ │ │ │ │ ********** _?◆_? eeqquu(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( const Number  aa, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t Number  aa, │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >::equ │ │ │ │ │ - const _V_e_c_t_o_r< Number, MemorySpace > VV  │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > VV  │ │ │ │ │ &  │ │ │ │ │ ) │ │ │ │ │ Assignment *this = a*V. │ │ │ │ │ ********** _?◆_? aallll__zzeerroo(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: ( ) const │ │ │ │ │ all_zero │ │ │ │ │ Return whether the vector contains only elements with value zero. │ │ │ │ │ ********** _?◆_? iiss__nnoonn__nneeggaattiivvee(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: ( ) const │ │ │ │ │ is_non_negative │ │ │ │ │ Return true if the vector has no negative entries, i.e. all entries are zero or │ │ │ │ │ positive. This function is used, for example, to check whether refinement │ │ │ │ │ indicators are really all positive (or zero). │ │ │ │ │ ********** _?◆_? mmeeaann__vvaalluuee(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ Number _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace ( ) const │ │ │ │ │ >::mean_value │ │ │ │ │ Return the mean value of the element of this vector. │ │ │ │ │ ********** _?◆_? ll11__nnoorrmm(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _r_e_a_l___t_y_p_e _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace ( ) const │ │ │ │ │ >::l1_norm │ │ │ │ │ Return the l1 norm of the vector (i.e., the sum of the absolute values of all │ │ │ │ │ entries among all processors). │ │ │ │ │ ********** _?◆_? ll22__nnoorrmm(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _r_e_a_l___t_y_p_e _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace ( ) const │ │ │ │ │ >::l2_norm │ │ │ │ │ Return the l2 norm of the vector (i.e., the square root of the sum of the │ │ │ │ │ square of all entries among all processors). │ │ │ │ │ ********** _?◆_? lliinnffttyy__nnoorrmm(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _r_e_a_l___t_y_p_e _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace ( ) const │ │ │ │ │ >::linfty_norm │ │ │ │ │ Return the maximum norm of the vector (i.e., the maximum absolute value among │ │ │ │ │ all entries and among all processors). │ │ │ │ │ ********** _?◆_? nnoorrmm__ssqqrr(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _r_e_a_l___t_y_p_e _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace ( ) const │ │ │ │ │ >::norm_sqr │ │ │ │ │ Return the square of the l2-norm. │ │ │ │ │ ********** _?◆_? aadddd__aanndd__ddoott(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ Number _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const Number  aa, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t Number  aa, │ │ │ │ │ MemorySpace >::add_and_dot │ │ │ │ │ - const _V_e_c_t_o_r< Number, MemorySpace > &  VV, │ │ │ │ │ - const _V_e_c_t_o_r< Number, MemorySpace > &  WW  │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > &  VV, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > &  WW  │ │ │ │ │ ) │ │ │ │ │ Performs a combined operation of a vector addition and a subsequent inner │ │ │ │ │ product, returning the value of the inner product. In other words, the result │ │ │ │ │ of this function is the same as if the user called │ │ │ │ │ this->_a_d_d(a, V); │ │ │ │ │ return_value = *this * W; │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_a_d_d │ │ │ │ │ @@ -772,48 +772,48 @@ │ │ │ │ │ load three vectors, this, V, W, whereas calling separate methods means to load │ │ │ │ │ the calling vector this twice. Since most vector operations are memory transfer │ │ │ │ │ limited, this reduces the time by 25% (or 50% if W equals this). │ │ │ │ │ The vectors need to have the same layout. │ │ │ │ │ For complex-valued vectors, the scalar product in the second step is │ │ │ │ │ implemented as \(\left=\sum_i v_i \bar{w_i}\). │ │ │ │ │ ********** _?◆_? hhaass__gghhoosstt__eelleemmeennttss(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace > │ │ │ │ │ _b_o_o_l _V_e_c_t_o_r< Number, MemorySpace >::has_ghost_elements ( ) const inline │ │ │ │ │ Return whether the vector has ghost elements or not. │ │ │ │ │ Definition at line _1_0_8_7 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr====(()) ********** │ │ │ │ │ -template │ │ │ │ │ -_b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: const _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( &  vv ) const │ │ │ │ │ -MemorySpace >::operator== │ │ │ │ │ +MemorySpace >_:_:_o_p_e_r_a_t_o_r== │ │ │ │ │ Test for equality. This function assumes that the present vector and the one to │ │ │ │ │ compare with have the same size already, since comparing vectors of different │ │ │ │ │ sizes makes not much sense anyway. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr!!==(()) ********** │ │ │ │ │ -template │ │ │ │ │ -_b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: const _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: _c_o_n_s_t _V_e_c_t_o_r< Number, MemorySpace > │ │ │ │ │ _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( &  vv ) const │ │ │ │ │ MemorySpace >::operator!= │ │ │ │ │ Test for inequality. This function assumes that the present vector and the one │ │ │ │ │ to compare with have the same size already, since comparing vectors of │ │ │ │ │ different sizes makes not much sense anyway. │ │ │ │ │ ********** _?◆_? ssiizzee(()) ********** │ │ │ │ │ -template │ │ │ │ │ -virtual _s_i_z_e___t_y_p_e _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( ) const overridevirtual │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_v_i_r_t_u_a_l _s_i_z_e___t_y_p_e _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( ) const overridevirtual │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >::size │ │ │ │ │ Return the global size of the vector, equal to the sum of the number of locally │ │ │ │ │ owned indices among all processors. │ │ │ │ │ Implements _R_e_a_d_V_e_c_t_o_r_<_ _N_u_m_b_e_r_ _>. │ │ │ │ │ ********** _?◆_? llooccaallllyy__oowwnneedd__ssiizzee(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _s_i_z_e___t_y_p_e _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace ( ) const │ │ │ │ │ >::locally_owned_size │ │ │ │ │ Return the local size of the vector, i.e., the number of indices owned locally. │ │ │ │ │ ********** _?◆_? llooccaall__rraannggee(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ std::pair< _s_i_z_e___t_y_p_e, _s_i_z_e___t_y_p_e > _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( ) const │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >::local_range │ │ │ │ │ Return a pair of indices indicating which elements of this vector are stored │ │ │ │ │ locally. The first number is the index of the first element stored, the second │ │ │ │ │ the index of the one past the last one that is stored locally. If this is a │ │ │ │ │ sequential vector, then the result will be the pair (0,N), otherwise it will be │ │ │ │ │ a pair (i,i+n), where n is the number of elements stored on this processor and │ │ │ │ │ @@ -827,112 +827,115 @@ │ │ │ │ │ simply stores a particular subset, not necessarily contiguous. In this │ │ │ │ │ case, this function clearly makes no sense since it could, at best, │ │ │ │ │ return a range that includes all elements that are stored locally. Thus, │ │ │ │ │ the function only succeeds if the locally stored range is indeed │ │ │ │ │ contiguous. It will trigger an assertion if the local portion of the │ │ │ │ │ vector is not contiguous. │ │ │ │ │ ********** _?◆_? iinn__llooccaall__rraannggee(()) ********** │ │ │ │ │ -template │ │ │ │ │ -_b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ Number, MemorySpace >::in_local_range │ │ │ │ │ Return whether index is in the local range or not, see also _l_o_c_a_l___r_a_n_g_e_(_). │ │ │ │ │ Note │ │ │ │ │ The same limitation for the applicability of this function applies as │ │ │ │ │ listed in the documentation of _l_o_c_a_l___r_a_n_g_e_(_). │ │ │ │ │ ********** _?◆_? iiss__ccoommpprreesssseedd(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace > │ │ │ │ │ _b_o_o_l _V_e_c_t_o_r< Number, MemorySpace >::is_compressed ( ) const inline │ │ │ │ │ Return the state of the vector, i.e., whether _c_o_m_p_r_e_s_s_(_) needs to be called │ │ │ │ │ after an operation requiring data exchange. A call to _c_o_m_p_r_e_s_s_(_) is also needed │ │ │ │ │ when the method _s_e_t_(_) or _a_d_d_(_) has been called. │ │ │ │ │ Definition at line _1_0_9_6 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ggeett__mmppii__ccoommmmuunniiccaattoorr(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _M_P_I___C_o_m_m _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace ( ) const │ │ │ │ │ >::get_mpi_communicator │ │ │ │ │ Return the underlying MPI communicator. │ │ │ │ │ ********** _?◆_? llooccaallllyy__oowwnneedd__eelleemmeennttss(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _:_:_I_n_d_e_x_S_e_t _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( ) const │ │ │ │ │ MemorySpace >::locally_owned_elements │ │ │ │ │ Return an index set that describes which elements of this vector are owned by │ │ │ │ │ the current processor. As a consequence, the index sets returned on different │ │ │ │ │ processors if this is a distributed vector will form disjoint sets that add up │ │ │ │ │ to the complete index set. Obviously, if a vector is created on only one │ │ │ │ │ processor, then the result would satisfy │ │ │ │ │ -vec.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t(vec.size()) │ │ │ │ │ +_v_e_c.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t(_v_e_c.size()) │ │ │ │ │ +_L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_v_e_c_t_o_r │ │ │ │ │ +Teuchos::RCP< TpetraTypes::VectorType< Number, MemorySpace > > vector │ │ │ │ │ +DDeeffiinniittiioonn _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h_:_1_0_4_7 │ │ │ │ │ _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t │ │ │ │ │ IndexSet complete_index_set(const IndexSet::size_type N) │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_2_0_4 │ │ │ │ │ ********** _?◆_? ccoommpprreessss(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn ) │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn ) │ │ │ │ │ MemorySpace >::compress │ │ │ │ │ Compress the underlying representation of the Trilinos object, i.e. flush the │ │ │ │ │ buffers of the vector object if it has any. This function is necessary after │ │ │ │ │ writing into a vector element-by-element and before anything else can be done │ │ │ │ │ on it. │ │ │ │ │ Parameters │ │ │ │ │ The compress mode (Add or Insert) in case the vector has not │ │ │ │ │ operation been written to since the last time this function was called. │ │ │ │ │ The argument is ignored if the vector has been added or written │ │ │ │ │ to since the last time _c_o_m_p_r_e_s_s_(_) was called. │ │ │ │ │ See _C_o_m_p_r_e_s_s_i_n_g_ _d_i_s_t_r_i_b_u_t_e_d_ _o_b_j_e_c_t_s for more information. │ │ │ │ │ ********** _?◆_? ttrriilliinnooss__vveeccttoorr(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -const _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, MemorySpace > & │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_c_o_n_s_t _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, MemorySpace > & │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: ( ) const │ │ │ │ │ trilinos_vector │ │ │ │ │ Return a const reference to the underlying Trilinos Tpetra::Vector class. │ │ │ │ │ ********** _?◆_? ttrriilliinnooss__vveeccttoorr(()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, MemorySpace > & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: ( ) │ │ │ │ │ _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::trilinos_vector │ │ │ │ │ Return a (modifiable) reference to the underlying Trilinos Tpetra::Vector │ │ │ │ │ class. │ │ │ │ │ ********** _?◆_? ttrriilliinnooss__rrccpp(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -Teuchos::RCP< const _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, MemorySpace > > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +Teuchos::RCP< _c_o_n_s_t _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, MemorySpace > > │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: ( ) const │ │ │ │ │ trilinos_rcp │ │ │ │ │ Return a const Teuchos::RCP to the underlying Trilinos Tpetra::Vector class. │ │ │ │ │ ********** _?◆_? ttrriilliinnooss__rrccpp(()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ Teuchos::RCP< _T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e< Number, MemorySpace > > │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: ( ) │ │ │ │ │ trilinos_rcp │ │ │ │ │ Return a (modifiable) Teuchos::RCP to the underlying Trilinos Tpetra::Vector │ │ │ │ │ class. │ │ │ │ │ ********** _?◆_? pprriinntt(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( std::ostream &  oouutt, │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >::print │ │ │ │ │ - const unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ - const _b_o_o_l  sscciieennttiiffiicc = true, │ │ │ │ │ - const _b_o_o_l  aaccrroossss = true  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  sscciieennttiiffiicc = _t_r_u_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  aaccrroossss = _t_r_u_e  │ │ │ │ │ ) const │ │ │ │ │ Prints the vector to the output stream out. │ │ │ │ │ ********** _?◆_? mmeemmoorryy__ccoonnssuummppttiioonn(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ std::size_t _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( ) const │ │ │ │ │ MemorySpace >::memory_consumption │ │ │ │ │ Return the memory consumption of this class in bytes. │ │ │ │ │ ********** _?◆_? mmppii__ccoommmm(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _M_P_I___C_o_m_m _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace ( ) const │ │ │ │ │ >::mpi_comm │ │ │ │ │ Return the mpi communicator │ │ │ │ │ ********** _?◆_? ccrreeaattee__ttppeettrraa__ccoommmm__ppaatttteerrnn(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ void _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ -_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( const _I_n_d_e_x_S_e_t &  ssoouurrccee__iinnddeexx__sseett, │ │ │ │ │ +_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ssoouurrccee__iinnddeexx__sseett, │ │ │ │ │ MemorySpace >:: private │ │ │ │ │ create_tpetra_comm_pattern │ │ │ │ │ - const _M_P_I___C_o_m_m  mmppii__ccoommmm  │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  mmppii__ccoommmm  │ │ │ │ │ ) │ │ │ │ │ Create the _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n for the communication between the _I_n_d_e_x_S_e_t │ │ │ │ │ source_index_set and the current vector based on the communicator mpi_comm. │ │ │ │ │ ********** _?◆_? ssuubbssccrriibbee(()) ********** │ │ │ │ │ void Subscriptor:: ( std::atomic< _b_o_o_l > *const  vvaalliiddiittyy, │ │ │ │ │ subscribe inherited │ │ │ │ │ const std::string &  iiddeennttiiffiieerr = ""  │ │ │ │ │ @@ -953,25 +956,25 @@ │ │ │ │ │ ********** _?◆_? nn__ssuubbssccrriippttiioonnss(()) ********** │ │ │ │ │ unsigned _i_n_t Subscriptor::n_subscriptions ( ) const inlineinherited │ │ │ │ │ Return the present number of subscriptions to this object. This allows to use │ │ │ │ │ this class for reference counted lifetime determination where the last one to │ │ │ │ │ unsubscribe also deletes the object. │ │ │ │ │ Definition at line _3_0_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ void Subscriptor:: ( StreamType &  ssttrreeaamm ) const inlineinherited │ │ │ │ │ list_subscribers │ │ │ │ │ List the subscribers to the input stream. │ │ │ │ │ Definition at line _3_1_7 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[22//22]] ********** │ │ │ │ │ void Subscriptor::list_subscribers ( ) const inherited │ │ │ │ │ List the subscribers to deallog. │ │ │ │ │ Definition at line _2_0_3 of file _s_u_b_s_c_r_i_p_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? sseerriiaalliizzee(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ void Subscriptor::serialize ( Archive &  aarr, │ │ │ │ │ const unsigned _i_n_t  vveerrssiioonn  inlineinherited │ │ │ │ │ ) │ │ │ │ │ Read or write the data of this object to or from a stream for the purpose of │ │ │ │ │ serialization using the _B_O_O_S_T_ _s_e_r_i_a_l_i_z_a_t_i_o_n_ _l_i_b_r_a_r_y. │ │ │ │ │ This function does not actually serialize any of the member variables of this │ │ │ │ │ class. The reason is that what this class stores is only who subscribes to this │ │ │ │ │ @@ -992,58 +995,58 @@ │ │ │ │ │ release mode. │ │ │ │ │ If this function is called when there is an uncaught exception then, │ │ │ │ │ rather than aborting, this function prints an error message to the │ │ │ │ │ standard error stream and returns. │ │ │ │ │ Definition at line _5_2 of file _s_u_b_s_c_r_i_p_t_o_r_._c_c. │ │ │ │ │ ********** FFrriieennddss AAnndd RReellaatteedd SSyymmbbooll DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? iinntteerrnnaall::::VVeeccttoorrRReeffeerreennccee<< NNuummbbeerr,, MMeemmoorryySSppaaccee >> ********** │ │ │ │ │ -template │ │ │ │ │ -friend class internal::VectorReference< Number, MemorySpace > friend │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_f_r_i_e_n_d _c_l_a_s_s internal::VectorReference< Number, MemorySpace > friend │ │ │ │ │ Definition at line _1_0_6_7 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** MMeemmbbeerr DDaattaa DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? ccoommpprreesssseedd ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: private │ │ │ │ │ compressed │ │ │ │ │ A boolean variable to hold information on whether the vector is compressed or │ │ │ │ │ not. │ │ │ │ │ Definition at line _1_0_3_2 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? hhaass__gghhoosstt ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _b_o_o_l _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: private │ │ │ │ │ has_ghost │ │ │ │ │ Store whether the vector has ghost elements or not. │ │ │ │ │ If the vector has no ghost elements, it can only access and modify entries │ │ │ │ │ included in the locally owned index set. And if the vector has ghost elements │ │ │ │ │ it can access and modify entries included in the locally relevant index set. │ │ │ │ │ Definition at line _1_0_4_2 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? vveeccttoorr ********** │ │ │ │ │ template │ │ │ │ │ Teuchos::RCP<_T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e > private │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >::vector │ │ │ │ │ Teuchos::RCP to the actual Tpetra vector object. │ │ │ │ │ Definition at line _1_0_4_7 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? nnoonnllooccaall__vveeccttoorr ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ Teuchos::RCP<_T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e > │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: private │ │ │ │ │ nonlocal_vector │ │ │ │ │ A vector object in Trilinos to be used for collecting the non-local elements if │ │ │ │ │ the vector was constructed with an additional _I_n_d_e_x_S_e_t describing ghost │ │ │ │ │ elements. │ │ │ │ │ Definition at line _1_0_5_5 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ssoouurrccee__ssttoorreedd__eelleemmeennttss ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ _:_:_I_n_d_e_x_S_e_t _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace private │ │ │ │ │ >::source_stored_elements │ │ │ │ │ _I_n_d_e_x_S_e_t of the elements of the last imported vector. │ │ │ │ │ Definition at line _1_0_6_0 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ttppeettrraa__ccoommmm__ppaatttteerrnn ********** │ │ │ │ │ -template │ │ │ │ │ -Teuchos::RCP > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +Teuchos::RCP<_c_o_n_s_t _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n > │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: private │ │ │ │ │ tpetra_comm_pattern │ │ │ │ │ _C_o_m_m_u_n_i_c_a_t_i_o_n_P_a_t_t_e_r_n for the communication between the source_stored_elements │ │ │ │ │ _I_n_d_e_x_S_e_t and the current vector. │ │ │ │ │ Definition at line _1_0_6_7 of file _t_r_i_l_i_n_o_s___t_p_e_t_r_a___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ccoouunntteerr ********** │ │ │ │ │ std::atomic Subscriptor::counter mutableprivateinherited │ │ │ │ │ @@ -1066,15 +1069,15 @@ │ │ │ │ │ ********** _?◆_? vvaalliiddiittyy__ppooiinntteerrss ********** │ │ │ │ │ std::vector *> Subscriptor:: mutableprivateinherited │ │ │ │ │ validity_pointers │ │ │ │ │ In this vector, we store pointers to the validity bool in the _S_m_a_r_t_P_o_i_n_t_e_r │ │ │ │ │ objects that subscribe to this class. │ │ │ │ │ Definition at line _2_4_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? oobbjjeecctt__iinnffoo ********** │ │ │ │ │ -const std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ +_c_o_n_s_t std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ Pointer to the typeinfo object of this object, from which we can later deduce │ │ │ │ │ the class name. Since this information on the derived class is neither │ │ │ │ │ available in the destructor, nor in the constructor, we obtain it in between │ │ │ │ │ and store it here. │ │ │ │ │ Definition at line _2_4_8 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmuutteexx ********** │ │ │ │ │ std::mutex Subscriptor::mutex staticprivateinherited │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMapping.html │ │ │ │ @@ -330,15 +330,15 @@ │ │ │ │ \sum_{q} │ │ │ │ \hat u(\hat{\mathbf x}_q) │ │ │ │ \underbrace{\left|\text{det}J(\hat{\mathbf x}_q)\right| w_q}_{=: │ │ │ │ \text{JxW}_q}. │ │ │ │ \] │ │ │ │

    │ │ │ │

    Here, the weights \(\text{JxW}_q\) of each quadrature point (where JxW mnemonically stands for Jacobian times Quadrature Weights) take the role of the \(dx\) in the original integral. Consequently, they appear in all code that computes integrals approximated by quadrature, and are accessed by FEValues::JxW().

    │ │ │ │ -
    Todo:
    Document what happens in the codimension-1 case.
    │ │ │ │ +
    Todo:
    Document what happens in the codimension-1 case.
    │ │ │ │

    Mapping of vector fields, differential forms and gradients of vector fields

    │ │ │ │

    The transformation of vector fields or differential forms (gradients of scalar functions) \(\mathbf v\), and gradients of vector fields \(\mathbf T\) follows the general form

    │ │ │ │

    │ │ │ │ \[ │ │ │ │ \mathbf v(\mathbf x) = \mathbf A(\hat{\mathbf x}) │ │ │ │ \hat{\mathbf v}(\hat{\mathbf x}), │ │ │ │ \qquad │ │ │ │ @@ -1072,15 +1072,15 @@ │ │ │ │

    │ │ │ │
    │ │ │ │ protectedvirtual
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_subface_data()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1326,15 +1326,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ protectedvirtual
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_subface_values()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1720,15 +1720,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingC1.html │ │ │ │ @@ -1171,15 +1171,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -1680,15 +1680,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ protectedvirtualinherited
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_subface_data()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1942,15 +1942,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ protectedvirtualinherited
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_subface_values()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingCartesian.html │ │ │ │ @@ -864,15 +864,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -2279,15 +2279,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ protectedvirtualinherited
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_face_values() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -2336,15 +2336,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ protectedvirtualinherited
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ subscribe()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingFE.html │ │ │ │ @@ -906,15 +906,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -1817,15 +1817,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ protectedvirtualinherited
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_face_values() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1874,15 +1874,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ protectedvirtualinherited
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_immersed_surface_values()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingFEField.html │ │ │ │ @@ -1015,15 +1015,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -2170,15 +2170,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ protectedvirtualinherited
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ fill_fe_face_values() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -2227,15 +2227,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ subscribe()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingManifold.html │ │ │ │ @@ -821,15 +821,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │
  • │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -1740,15 +1740,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_face_values() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1797,15 +1797,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_immersed_surface_values()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingQ.html │ │ │ │ @@ -1039,15 +1039,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -2556,15 +2556,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_face_values() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -2613,15 +2613,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ subscribe()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingQ1.html │ │ │ │ @@ -960,15 +960,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -1469,15 +1469,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_subface_data()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1731,15 +1731,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_subface_values()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingQ1Eulerian.html │ │ │ │ @@ -1123,15 +1123,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -1632,15 +1632,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_subface_data()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1812,15 +1812,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_subface_values()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingQCache.html │ │ │ │ @@ -1395,15 +1395,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -1904,15 +1904,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_subface_data()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -2166,15 +2166,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_subface_values()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMappingQEulerian.html │ │ │ │ @@ -1153,15 +1153,15 @@ │ │ │ │ \frac{1}{\text{det}\;J(\hat{\mathbf x})} │ │ │ │ J(\hat{\mathbf x}) \hat{\mathbf T}(\hat{\mathbf x}) │ │ │ │ J(\hat{\mathbf x})^{-1}. │ │ │ │ \] │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ -
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    Todo:
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]inputAn array (or part of an array) of input objects that should be mapped.
    [in]kindThe kind of mapping to be applied.
    [in]internalA pointer to an object of type Mapping::InternalDataBase that contains information previously stored by the mapping. The object pointed to was created by the get_data(), get_face_data(), or get_subface_data() function, and will have been updated as part of a call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() for the current cell, before calling the current function. In other words, this object also represents with respect to which cell the transformation should be applied to.
    [out]outputAn array (or part of an array) into which the transformed objects should be placed. (Note that the array view is const, but the tensors it points to are not.)
    │ │ │ │ @@ -1662,15 +1662,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_subface_data()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1842,15 +1842,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ protectedvirtualinherited │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Deprecated:
    Use the version taking a hp::QCollection argument.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ fill_fe_subface_values()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMatrixBlock.html │ │ │ │ @@ -271,15 +271,15 @@ │ │ │ │
    MatrixType & matrix(size_type i)
    │ │ │ │
    MatrixType matrix
    │ │ │ │
    size_type row
    │ │ │ │
    size_type column
    │ │ │ │ │ │ │ │

    Here, we have not gained very much, except that we do not need to set up empty blocks in the block system.

    │ │ │ │
    Note
    This class expects, that the row and column BlockIndices objects for the system are equal. If they are not, some functions will throw ExcNotImplemented.
    │ │ │ │ -
    Todo:
    Example for the product preconditioner of the pressure Schur complement.
    │ │ │ │ +
    Todo:
    Example for the product preconditioner of the pressure Schur complement.
    │ │ │ │
    See also
    Block (linear algebra)
    │ │ │ │ │ │ │ │

    Definition at line 110 of file matrix_block.h.

    │ │ │ │

    Member Typedef Documentation

    │ │ │ │ │ │ │ │

    ◆ size_type

    │ │ │ │ │ │ │ │ @@ -676,15 +676,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ inline │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Add all elements in a FullMatrix into sparse matrix locations given by indices. This function assumes a quadratic sparse matrix and a quadratic full_matrix. The global locations are translated into locations in this block and ExcBlockIndexMismatch is thrown, if the global index does not point into the block referred to by row and column.

    │ │ │ │ -
    Todo:
    elide_zero_values is currently ignored.
    │ │ │ │ +
    Todo:
    elide_zero_values is currently ignored.
    │ │ │ │

    The optional parameter elide_zero_values can be used to specify whether zero values should be added anyway or these should be filtered away and only non-zero data is added. The default value is true, i.e., zero values won't be added into the matrix.

    │ │ │ │ │ │ │ │

    Definition at line 757 of file matrix_block.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -733,15 +733,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ inline │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Add all elements in a FullMatrix into global locations given by row_indices and col_indices, respectively. The global locations are translated into locations in this block and ExcBlockIndexMismatch is thrown, if the global index does not point into the block referred to by row and column.

    │ │ │ │ -
    Todo:
    elide_zero_values is currently ignored.
    │ │ │ │ +
    Todo:
    elide_zero_values is currently ignored.
    │ │ │ │

    The optional parameter elide_zero_values can be used to specify whether zero values should be added anyway or these should be filtered away and only non-zero data is added. The default value is true, i.e., zero values won't be added into the matrix.

    │ │ │ │ │ │ │ │

    Definition at line 695 of file matrix_block.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -790,15 +790,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ inline │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Set several elements in the specified row of the matrix with column indices as given by col_indices to the respective value. This is the function doing the actual work for the ones adding full matrices. The global locations row_index and col_indices are translated into locations in this block and ExcBlockIndexMismatch is thrown, if the global index does not point into the block referred to by row and column.

    │ │ │ │ -
    Todo:
    elide_zero_values is currently ignored.
    │ │ │ │ +
    Todo:
    elide_zero_values is currently ignored.
    │ │ │ │

    The optional parameter elide_zero_values can be used to specify whether zero values should be added anyway or these should be filtered away and only non-zero data is added. The default value is true, i.e., zero values won't be added into the matrix.

    │ │ │ │ │ │ │ │

    Definition at line 780 of file matrix_block.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1DoFInfo.html │ │ │ │ @@ -117,83 +117,83 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [legend]
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Member Functions

     DoFInfo (const BlockInfo &block_info)
     DoFInfo (const BlockInfo &block_info)
     
     DoFInfo (const DoFHandler< dim, spacedim > &dof_handler)
     DoFInfo (const DoFHandler< dim, spacedim > &dof_handler)
     
    template<class DHCellIterator >
    void reinit (const DHCellIterator &c)
    template<class DHCellIterator >
    void reinit (const DHCellIterator &c)
     
    template<class DHCellIterator , class DHFaceIterator >
    void reinit (const DHCellIterator &c, const DHFaceIterator &f, const unsigned int face_no)
    template<class DHCellIterator , class DHFaceIterator >
    void reinit (const DHCellIterator &c, const DHFaceIterator &f, const unsigned int face_no)
     
    template<class DHCellIterator , class DHFaceIterator >
    void reinit (const DHCellIterator &c, const DHFaceIterator &f, const unsigned int face_no, const unsigned int subface_no)
    template<class DHCellIterator , class DHFaceIterator >
    void reinit (const DHCellIterator &c, const DHFaceIterator &f, const unsigned int face_no, const unsigned int subface_no)
     
    template<class DHFaceIterator >
    void set_face (const DHFaceIterator &f, const unsigned int face_no)
    template<class DHFaceIterator >
    void set_face (const DHFaceIterator &f, const unsigned int face_no)
     
    template<class DHFaceIterator >
    void set_subface (const DHFaceIterator &f, const unsigned int face_no, const unsigned int subface_no)
    template<class DHFaceIterator >
    void set_subface (const DHFaceIterator &f, const unsigned int face_no, const unsigned int subface_no)
     
    const BlockIndiceslocal_indices () const
    const BlockIndiceslocal_indices () const
     
    unsigned int n_values () const
    unsigned int n_values () const
     
    unsigned int n_vectors () const
    unsigned int n_vectors () const
     
    unsigned int n_matrices () const
    unsigned int n_matrices () const
     
    unsigned int n_quadrature_points () const
    unsigned int n_quadrature_points () const
     
    unsigned int n_quadrature_values () const
    unsigned int n_quadrature_values () const
     
    number & value (const unsigned int i)
    number & value (const unsigned int i)
     
    number value (const unsigned int i) const
    number value (const unsigned int i) const
     
    BlockVector< number > & vector (const unsigned int i)
     
    const BlockVector< number > & vector (const unsigned int i) const
     
    MatrixBlock< FullMatrix< number > > & matrix (const unsigned int i, const bool external=false)
    MatrixBlock< FullMatrix< number > > & matrix (const unsigned int i, const bool external=false)
     
    const MatrixBlock< FullMatrix< number > > & matrix (const unsigned int i, const bool external=false) const
    const MatrixBlock< FullMatrix< number > > & matrix (const unsigned int i, const bool external=false) const
     
    Table< 2, number > & quadrature_values ()
     
    number & quadrature_value (const unsigned int k, const unsigned int i)
    number & quadrature_value (const unsigned int k, const unsigned int i)
     
    number quadrature_value (const unsigned int k, const unsigned int i) const
    number quadrature_value (const unsigned int k, const unsigned int i) const
     
    void initialize_numbers (const unsigned int n)
    void initialize_numbers (const unsigned int n)
     
    void initialize_vectors (const unsigned int n)
    void initialize_vectors (const unsigned int n)
     
    void initialize_matrices (const unsigned int n, bool both)
    void initialize_matrices (const unsigned int n, bool both)
     
    template<typename MatrixType >
    void initialize_matrices (const MatrixBlockVector< MatrixType > &matrices, bool both)
    template<typename MatrixType >
    void initialize_matrices (const MatrixBlockVector< MatrixType > &matrices, bool both)
     
    template<typename MatrixType >
    void initialize_matrices (const MGMatrixBlockVector< MatrixType > &matrices, bool both)
    template<typename MatrixType >
    void initialize_matrices (const MGMatrixBlockVector< MatrixType > &matrices, bool both)
     
    void initialize_quadrature (const unsigned int np, const unsigned int nv)
    void initialize_quadrature (const unsigned int np, const unsigned int nv)
     
    void reinit (const BlockIndices &local_sizes)
    void reinit (const BlockIndices &local_sizes)
     
    template<typename StreamType >
    void print_debug (StreamType &os) const
    template<typename StreamType >
    void print_debug (StreamType &os) const
     
    std::size_t memory_consumption () const
    std::size_t memory_consumption () const
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -204,29 +204,29 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Public Attributes

    Triangulation< dim, spacedim >::cell_iterator cell
     The current cell.
     
     
    unsigned int sub_number
     
    std::vector< types::global_dof_indexindices
     
    std::vector< std::vector< types::global_dof_index > > indices_by_block
     
    SmartPointer< const BlockInfo, DoFInfo< dim, spacedim > > block_info
    SmartPointer< const BlockInfo, DoFInfo< dim, spacedim > > block_info
     The block structure of the system.
     
    bool level_cell
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Private Member Functions

     DoFInfo ()
     
    void set_block_indices ()
     Set up local block indices.
     
    template<class DHCellIterator >
    void get_indices (const DHCellIterator &c)
    template<class DHCellIterator >
    void get_indices (const DHCellIterator &c)
     Fill index vector with active indices.
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -242,19 +242,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Private Attributes

    std::vector< types::global_dof_indexindices_org
     Auxiliary vector.
    std::vector< MatrixBlock< FullMatrix< number > > > M2
     
    Table< 2, number > quadrature_data
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Friends

    class DoFInfoBox< dim, DoFInfo< dim, spacedim, number > >
    class DoFInfoBox< dim, DoFInfo< dim, spacedim, number > >
     
    │ │ │ │

    Detailed Description

    │ │ │ │ -
    template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +
    template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ class MeshWorker::DoFInfo< dim, spacedim, number >

    A class containing information on geometry and degrees of freedom of a mesh object.

    │ │ │ │

    The information in these objects is usually used by one of the Assembler classes. It is also the kind of information which is needed in mesh based matrices (often referred to as matrix free methods).

    │ │ │ │

    In addition to the information on degrees of freedom stored in this class, it also provides the local computation space for the worker object operating on it in LocalResults. This base class will automatically be reinitialized on each cell, but initial setup is up to the user and should be done when initialize() for this class is called.

    │ │ │ │

    This class operates in two different modes, corresponding to the data models discussed in the Assembler namespace documentation.

    │ │ │ │

    The choice of the local data model is triggered by the vector BlockInfo::local_renumbering, which in turn is usually filled by BlockInfo::initialize_local(). If this function has been used, or the vector has been changed from zero-length, then local dof indices stored in this object will automatically be renumbered to reflect local block structure. This means, the first entries in indices will refer to the first block of the system, then comes the second block and so on.

    │ │ │ │

    The BlockInfo object is stored as a pointer. Therefore, if the block structure changes, for instance because of mesh refinement, the DoFInfo class will automatically use the new structures.

    │ │ │ │ │ │ │ │ @@ -262,20 +262,20 @@ │ │ │ │

    Constructor & Destructor Documentation

    │ │ │ │ │ │ │ │

    ◆ DoFInfo() [1/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    MeshWorker::DoFInfo< dim, spacedim, number >::DoFInfo (const BlockInfoconst BlockInfoblock_info)
    │ │ │ │
    │ │ │ │

    Constructor setting the block_info pointer.

    │ │ │ │ │ │ │ │ @@ -283,20 +283,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ DoFInfo() [2/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim, typename number >
    │ │ │ │ +template<int dim, int spacedim, typename number >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    MeshWorker::DoFInfo< dim, spacedim, number >::DoFInfo (const DoFHandler< dim, spacedim > & const DoFHandler< dim, spacedim > & dof_handler)
    │ │ │ │
    │ │ │ │

    Constructor leaving the block_info pointer empty, but setting the aux_local_indices.

    │ │ │ │ │ │ │ │ @@ -306,15 +306,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ DoFInfo() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim, typename number >
    │ │ │ │ +template<int dim, int spacedim, typename number >
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -337,25 +337,25 @@ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ │

    ◆ reinit() [1/4]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim, typename number >
    │ │ │ │ +template<int dim, int spacedim, typename number >
    │ │ │ │
    │ │ │ │ -template<class DHCellIterator >
    │ │ │ │ +template<class DHCellIterator >
    │ │ │ │
    MeshWorker::DoFInfo< dim, spacedim, number >::DoFInfo (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -370,37 +370,37 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ reinit() [2/4]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim, typename number >
    │ │ │ │ +template<int dim, int spacedim, typename number >
    │ │ │ │
    │ │ │ │ -template<class DHCellIterator , class DHFaceIterator >
    │ │ │ │ +template<class DHCellIterator , class DHFaceIterator >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::DoFInfo< dim, spacedim, number >::reinit (const DHCellIterator & const DHCellIteratorc)
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -419,43 +419,43 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ reinit() [3/4]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim, typename number >
    │ │ │ │ +template<int dim, int spacedim, typename number >
    │ │ │ │
    │ │ │ │ -template<class DHCellIterator , class DHFaceIterator >
    │ │ │ │ +template<class DHCellIterator , class DHFaceIterator >
    │ │ │ │
    void MeshWorker::DoFInfo< dim, spacedim, number >::reinit (const DHCellIterator & const DHCellIteratorc,
    const DHFaceIterator & const DHFaceIteratorf,
    const unsigned int const unsigned int face_no 
    )
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -474,31 +474,31 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ set_face()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim, typename number >
    │ │ │ │ +template<int dim, int spacedim, typename number >
    │ │ │ │
    │ │ │ │ -template<class DHFaceIterator >
    │ │ │ │ +template<class DHFaceIterator >
    │ │ │ │
    void MeshWorker::DoFInfo< dim, spacedim, number >::reinit (const DHCellIterator & const DHCellIteratorc,
    const DHFaceIterator & const DHFaceIteratorf,
    const unsigned int const unsigned int face_no,
    const unsigned int const unsigned int subface_no 
    )
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -517,37 +517,37 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ set_subface()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim, typename number >
    │ │ │ │ +template<int dim, int spacedim, typename number >
    │ │ │ │
    │ │ │ │ -template<class DHFaceIterator >
    │ │ │ │ +template<class DHFaceIterator >
    │ │ │ │
    void MeshWorker::DoFInfo< dim, spacedim, number >::set_face (const DHFaceIterator & const DHFaceIteratorf,
    const unsigned int const unsigned int face_no 
    )
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -566,21 +566,21 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ local_indices()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim, typename number >
    │ │ │ │ +template<int dim, int spacedim, typename number >
    │ │ │ │
    void MeshWorker::DoFInfo< dim, spacedim, number >::set_subface (const DHFaceIterator & const DHFaceIteratorf,
    const unsigned int const unsigned int face_no,
    const unsigned int const unsigned int subface_no 
    )
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    const BlockIndices & MeshWorker::DoFInfo< dim, spacedim, number >::local_indices const BlockIndices & MeshWorker::DoFInfo< dim, spacedim, number >::local_indices () const
    │ │ │ │
    │ │ │ │ @@ -595,15 +595,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ set_block_indices()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -624,25 +624,25 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_indices()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim, typename number >
    │ │ │ │ +template<int dim, int spacedim, typename number >
    │ │ │ │
    │ │ │ │ -template<class DHCellIterator >
    │ │ │ │ +template<class DHCellIterator >
    │ │ │ │
    void MeshWorker::DoFInfo< dim, spacedim, number >::set_block_indices (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -658,15 +658,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ n_values()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::DoFInfo< dim, spacedim, number >::get_indices (const DHCellIterator & const DHCellIteratorc)
    │ │ │ │
    │ │ │ │ inlineprivate
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -689,15 +689,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ n_vectors()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_values (
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -720,15 +720,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ n_matrices()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_vectors (
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -750,15 +750,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ n_quadrature_points()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_matrices (
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -780,15 +780,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ n_quadrature_values()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_quadrature_points (
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -810,23 +810,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ value() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_quadrature_values (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -841,23 +841,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ value() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    number & MeshWorker::LocalResults< number >::value (const unsigned int const unsigned int i)
    │ │ │ │
    │ │ │ │ inlineinherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -934,30 +934,30 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ matrix() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    number MeshWorker::LocalResults< number >::value (const unsigned int const unsigned int i) const
    │ │ │ │
    │ │ │ │ inlineinherited
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    MatrixBlock< FullMatrix< number > > & MeshWorker::LocalResults< number >::matrix (const unsigned int const unsigned int i,
    const bool external = false const bool external = false 
    )
    │ │ │ │ @@ -976,30 +976,30 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ matrix() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    const MatrixBlock< FullMatrix< number > > & MeshWorker::LocalResults< number >::matrix const MatrixBlock< FullMatrix< number > > & MeshWorker::LocalResults< number >::matrix (const unsigned int const unsigned int i,
    const bool external = false const bool external = false 
    ) const
    │ │ │ │ @@ -1018,15 +1018,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ quadrature_values()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1048,29 +1048,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ quadrature_value() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    Table< 2, number > & MeshWorker::LocalResults< number >::quadrature_values (
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1089,29 +1089,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ quadrature_value() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    number & MeshWorker::LocalResults< number >::quadrature_value (const unsigned int const unsigned int k,
    const unsigned int const unsigned int i 
    )
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1130,23 +1130,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_numbers()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    number MeshWorker::LocalResults< number >::quadrature_value (const unsigned int const unsigned int k,
    const unsigned int const unsigned int i 
    ) const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1162,23 +1162,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_vectors()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_numbers (const unsigned int const unsigned int n)
    │ │ │ │
    │ │ │ │ inlineinherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1194,23 +1194,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_matrices() [1/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_vectors (const unsigned int const unsigned int n)
    │ │ │ │
    │ │ │ │ inlineinherited
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1236,25 +1236,25 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_matrices() [2/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ -template<typename MatrixType >
    │ │ │ │ +template<typename MatrixType >
    │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_matrices (const unsigned int const unsigned int n,
    bool both 
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1280,25 +1280,25 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_matrices() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ -template<typename MatrixType >
    │ │ │ │ +template<typename MatrixType >
    │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_matrices (const MatrixBlockVector< MatrixType > & const MatrixBlockVector< MatrixType > & matrices,
    bool both 
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1324,29 +1324,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_quadrature()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_matrices (const MGMatrixBlockVector< MatrixType > & const MGMatrixBlockVector< MatrixType > & matrices,
    bool both 
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1365,23 +1365,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ reinit() [4/4]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_quadrature (const unsigned int const unsigned int np,
    const unsigned int const unsigned int nv 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1396,25 +1396,25 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ print_debug()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ -template<typename StreamType >
    │ │ │ │ +template<typename StreamType >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::LocalResults< number >::reinit (const BlockIndicesconst BlockIndiceslocal_sizes)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1428,15 +1428,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ memory_consumption()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::LocalResults< number >::print_debug (StreamType & StreamTypeos) const
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1459,21 +1459,21 @@ │ │ │ │

    Friends And Related Symbol Documentation

    │ │ │ │ │ │ │ │

    ◆ DoFInfoBox< dim, DoFInfo< dim, spacedim, number > >

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │
    std::size_t MeshWorker::LocalResults< number >::memory_consumption (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    friend class DoFInfoBox< dim, DoFInfo< dim, spacedim, number > >friend class DoFInfoBox< dim, DoFInfo< dim, spacedim, number > >
    │ │ │ │
    │ │ │ │ friend
    │ │ │ │ @@ -1486,15 +1486,15 @@ │ │ │ │

    Member Data Documentation

    │ │ │ │ │ │ │ │

    ◆ cell

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Triangulation<dim,spacedim>::cell_iterator MeshWorker::DoFInfo< dim, spacedim, number >::cell
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -1506,15 +1506,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ face

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Triangulation<dim,spacedim>::face_iterator MeshWorker::DoFInfo< dim, spacedim, number >::face
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -1526,15 +1526,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ face_number

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    unsigned int MeshWorker::DoFInfo< dim, spacedim, number >::face_number
    │ │ │ │
    │ │ │ │

    The number of the current face on the current cell.

    │ │ │ │ @@ -1546,15 +1546,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ sub_number

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    unsigned int MeshWorker::DoFInfo< dim, spacedim, number >::sub_number
    │ │ │ │
    │ │ │ │

    The number of the current subface on the current face

    │ │ │ │ @@ -1566,15 +1566,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ indices

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    std::vector<types::global_dof_index> MeshWorker::DoFInfo< dim, spacedim, number >::indices
    │ │ │ │
    │ │ │ │

    The DoF indices of the current cell

    │ │ │ │ @@ -1585,15 +1585,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ indices_by_block

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    std::vector<std::vector<types::global_dof_index> > MeshWorker::DoFInfo< dim, spacedim, number >::indices_by_block
    │ │ │ │
    │ │ │ │

    The DoF indices on the current cell, organized by local blocks. The size of this vector is zero, unless local blocks are used.

    │ │ │ │ @@ -1604,18 +1604,18 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ block_info

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    SmartPointer<const BlockInfo, DoFInfo<dim, spacedim> > MeshWorker::DoFInfo< dim, spacedim, number >::block_infoSmartPointer<const BlockInfo, DoFInfo<dim, spacedim> > MeshWorker::DoFInfo< dim, spacedim, number >::block_info
    │ │ │ │
    │ │ │ │ │ │ │ │

    The block structure of the system.

    │ │ │ │ │ │ │ │

    Definition at line 171 of file dof_info.h.

    │ │ │ │ @@ -1624,15 +1624,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ level_cell

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool MeshWorker::DoFInfo< dim, spacedim, number >::level_cell
    │ │ │ │
    │ │ │ │

    The structure refers to a cell with level data instead of active data.

    │ │ │ │ @@ -1643,15 +1643,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ indices_org

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1671,15 +1671,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ aux_local_indices

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ +template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │
    std::vector<types::global_dof_index> MeshWorker::DoFInfo< dim, spacedim, number >::indices_org
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1698,15 +1698,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ J

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    BlockIndices MeshWorker::DoFInfo< dim, spacedim, number >::aux_local_indices
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1725,15 +1725,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ R

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    std::vector<number> MeshWorker::LocalResults< number >::J
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1752,15 +1752,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ M1

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    std::vector<BlockVector<number> > MeshWorker::LocalResults< number >::R
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1779,15 +1779,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ M2

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    std::vector<MatrixBlock<FullMatrix<number> > > MeshWorker::LocalResults< number >::M1
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1807,15 +1807,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ quadrature_data

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    std::vector<MatrixBlock<FullMatrix<number> > > MeshWorker::LocalResults< number >::M2
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -13,104 +13,104 @@ │ │ │ │ │ MeshWorker::DoFInfo< dim, spacedim, number > Class Template Reference │ │ │ │ │ _I_n_t_e_g_r_a_t_o_r_s » _T_h_e_ _M_e_s_h_W_o_r_k_e_r_ _i_n_t_e_r_f_a_c_e │ │ │ │ │ #include <_d_e_a_l_._I_I_/_m_e_s_h_w_o_r_k_e_r_/_d_o_f___i_n_f_o_._h> │ │ │ │ │ Inheritance diagram for MeshWorker::DoFInfo< dim, spacedim, number >: │ │ │ │ │ [Inheritance graph] │ │ │ │ │ [_l_e_g_e_n_d] │ │ │ │ │ PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -   _D_o_F_I_n_f_o (const _B_l_o_c_k_I_n_f_o &_b_l_o_c_k___i_n_f_o) │ │ │ │ │ +   _D_o_F_I_n_f_o (_c_o_n_s_t _B_l_o_c_k_I_n_f_o &_b_l_o_c_k___i_n_f_o) │ │ │ │ │   │ │ │ │ │ -   _D_o_F_I_n_f_o (const _D_o_F_H_a_n_d_l_e_r< dim, │ │ │ │ │ +   _D_o_F_I_n_f_o (_c_o_n_s_t _D_o_F_H_a_n_d_l_e_r< dim, │ │ │ │ │ spacedim > &dof_handler) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _r_e_i_n_i_t (const DHCellIterator &c) │ │ │ │ │ +template<_c_l_a_s_s _D_H_C_e_l_l_I_t_e_r_a_t_o_r > │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _D_H_C_e_l_l_I_t_e_r_a_t_o_r &c) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _r_e_i_n_i_t (const DHCellIterator &c, const │ │ │ │ │ - DHFaceIterator &f, const unsigned _i_n_t │ │ │ │ │ - face_no) │ │ │ │ │ +template<_c_l_a_s_s _D_H_C_e_l_l_I_t_e_r_a_t_o_r , _c_l_a_s_s _D_H_F_a_c_e_I_t_e_r_a_t_o_r > │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _D_H_C_e_l_l_I_t_e_r_a_t_o_r &c, _c_o_n_s_t │ │ │ │ │ + _D_H_F_a_c_e_I_t_e_r_a_t_o_r &f, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ + _f_a_c_e___n_o) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _r_e_i_n_i_t (const DHCellIterator &c, const │ │ │ │ │ - DHFaceIterator &f, const unsigned _i_n_t │ │ │ │ │ - face_no, const unsigned _i_n_t subface_no) │ │ │ │ │ +template<_c_l_a_s_s _D_H_C_e_l_l_I_t_e_r_a_t_o_r , _c_l_a_s_s _D_H_F_a_c_e_I_t_e_r_a_t_o_r > │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _D_H_C_e_l_l_I_t_e_r_a_t_o_r &c, _c_o_n_s_t │ │ │ │ │ + _D_H_F_a_c_e_I_t_e_r_a_t_o_r &f, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ + _f_a_c_e___n_o, _c_o_n_s_t unsigned _i_n_t _s_u_b_f_a_c_e___n_o) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _s_e_t___f_a_c_e (const DHFaceIterator &f, │ │ │ │ │ - const unsigned _i_n_t face_no) │ │ │ │ │ +template<_c_l_a_s_s _D_H_F_a_c_e_I_t_e_r_a_t_o_r > │ │ │ │ │ + void  _s_e_t___f_a_c_e (_c_o_n_s_t _D_H_F_a_c_e_I_t_e_r_a_t_o_r &f, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t _f_a_c_e___n_o) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _s_e_t___s_u_b_f_a_c_e (const DHFaceIterator &f, │ │ │ │ │ - const unsigned _i_n_t face_no, const │ │ │ │ │ - unsigned _i_n_t subface_no) │ │ │ │ │ +template<_c_l_a_s_s _D_H_F_a_c_e_I_t_e_r_a_t_o_r > │ │ │ │ │ + void  _s_e_t___s_u_b_f_a_c_e (_c_o_n_s_t _D_H_F_a_c_e_I_t_e_r_a_t_o_r &f, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t _f_a_c_e___n_o, _c_o_n_s_t │ │ │ │ │ + unsigned _i_n_t _s_u_b_f_a_c_e___n_o) │ │ │ │ │   │ │ │ │ │ - const _B_l_o_c_k_I_n_d_i_c_e_s &  _l_o_c_a_l___i_n_d_i_c_e_s () const │ │ │ │ │ + _c_o_n_s_t _B_l_o_c_k_I_n_d_i_c_e_s &  _l_o_c_a_l___i_n_d_i_c_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___v_a_l_u_e_s () const │ │ │ │ │ + unsigned _i_n_t  _n___v_a_l_u_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___v_e_c_t_o_r_s () const │ │ │ │ │ + unsigned _i_n_t  _n___v_e_c_t_o_r_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___m_a_t_r_i_c_e_s () const │ │ │ │ │ + unsigned _i_n_t  _n___m_a_t_r_i_c_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___q_u_a_d_r_a_t_u_r_e___p_o_i_n_t_s () const │ │ │ │ │ + unsigned _i_n_t  _n___q_u_a_d_r_a_t_u_r_e___p_o_i_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s () const │ │ │ │ │ + unsigned _i_n_t  _n___q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - number &  _v_a_l_u_e (const unsigned _i_n_t i) │ │ │ │ │ + number &  _v_a_l_u_e (_c_o_n_s_t unsigned _i_n_t i) │ │ │ │ │   │ │ │ │ │ - number  _v_a_l_u_e (const unsigned _i_n_t i) const │ │ │ │ │ + number  _v_a_l_u_e (_c_o_n_s_t unsigned _i_n_t i) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ _B_l_o_c_k_V_e_c_t_o_r< number > &  _v_e_c_t_o_r (const unsigned _i_n_t i) │ │ │ │ │   │ │ │ │ │ const _B_l_o_c_k_V_e_c_t_o_r< number > &  _v_e_c_t_o_r (const unsigned _i_n_t i) const │ │ │ │ │   │ │ │ │ │ - _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > > &  _m_a_t_r_i_x (const unsigned _i_n_t i, const │ │ │ │ │ - _b_o_o_l external=false) │ │ │ │ │ + _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > > &  _m_a_t_r_i_x (_c_o_n_s_t unsigned _i_n_t i, _c_o_n_s_t │ │ │ │ │ + _b_o_o_l _e_x_t_e_r_n_a_l=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ -const _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > _m_a_t_r_i_x (const unsigned _i_n_t i, const │ │ │ │ │ - > &  _b_o_o_l external=false) const │ │ │ │ │ +_c_o_n_s_t _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > _m_a_t_r_i_x (_c_o_n_s_t unsigned _i_n_t i, _c_o_n_s_t │ │ │ │ │ + > &  _b_o_o_l _e_x_t_e_r_n_a_l=_f_a_l_s_e) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ _T_a_b_l_e< 2, number > &  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s () │ │ │ │ │   │ │ │ │ │ - number &  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e (const unsigned _i_n_t k, │ │ │ │ │ - const unsigned _i_n_t i) │ │ │ │ │ + number &  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e (_c_o_n_s_t unsigned _i_n_t _k, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t i) │ │ │ │ │   │ │ │ │ │ - number  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e (const unsigned _i_n_t k, │ │ │ │ │ - const unsigned _i_n_t i) const │ │ │ │ │ + number  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e (_c_o_n_s_t unsigned _i_n_t _k, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t i) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___n_u_m_b_e_r_s (const unsigned _i_n_t │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___n_u_m_b_e_r_s (_c_o_n_s_t unsigned _i_n_t │ │ │ │ │ n) │ │ │ │ │   │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___v_e_c_t_o_r_s (const unsigned _i_n_t │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___v_e_c_t_o_r_s (_c_o_n_s_t unsigned _i_n_t │ │ │ │ │ n) │ │ │ │ │   │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (const unsigned _i_n_t │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (_c_o_n_s_t unsigned _i_n_t │ │ │ │ │ n, _b_o_o_l both) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e MatrixType > │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (_c_o_n_s_t │ │ │ │ │ _M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< MatrixType > │ │ │ │ │ &matrices, _b_o_o_l both) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e MatrixType > │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (_c_o_n_s_t │ │ │ │ │ _M_G_M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< MatrixType > │ │ │ │ │ &matrices, _b_o_o_l both) │ │ │ │ │   │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___q_u_a_d_r_a_t_u_r_e (const unsigned │ │ │ │ │ - _i_n_t np, const unsigned _i_n_t nv) │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___q_u_a_d_r_a_t_u_r_e (_c_o_n_s_t unsigned │ │ │ │ │ + _i_n_t _n_p, _c_o_n_s_t unsigned _i_n_t _n_v) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _B_l_o_c_k_I_n_d_i_c_e_s │ │ │ │ │ - &local_sizes) │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _B_l_o_c_k_I_n_d_i_c_e_s │ │ │ │ │ + &_l_o_c_a_l___s_i_z_e_s) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _p_r_i_n_t___d_e_b_u_g (StreamType &os) const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ + void  _p_r_i_n_t___d_e_b_u_g (_S_t_r_e_a_m_T_y_p_e &os) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () const │ │ │ │ │ + std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ PPuubblliicc AAttttrriibbuutteess │ │ │ │ │ _T_r_i_a_n_g_u_l_a_t_i_o_n< dim, spacedim >:: │ │ │ │ │ cell_iterator  _c_e_l_l │ │ │ │ │   The current cell. │ │ │ │ │   │ │ │ │ │ _T_r_i_a_n_g_u_l_a_t_i_o_n< dim, spacedim >:: │ │ │ │ │ @@ -122,28 +122,28 @@ │ │ │ │ │ unsigned _i_n_t  _s_u_b___n_u_m_b_e_r │ │ │ │ │   │ │ │ │ │ std::vector< _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x >  _i_n_d_i_c_e_s │ │ │ │ │   │ │ │ │ │ std::vector< std::vector< _t_y_p_e_s_:_: │ │ │ │ │ _g_l_o_b_a_l___d_o_f___i_n_d_e_x > >  _i_n_d_i_c_e_s___b_y___b_l_o_c_k │ │ │ │ │   │ │ │ │ │ -_S_m_a_r_t_P_o_i_n_t_e_r< const _B_l_o_c_k_I_n_f_o, _D_o_F_I_n_f_o< dim, │ │ │ │ │ +_S_m_a_r_t_P_o_i_n_t_e_r< _c_o_n_s_t _B_l_o_c_k_I_n_f_o, _D_o_F_I_n_f_o< dim, │ │ │ │ │ spacedim > >  _b_l_o_c_k___i_n_f_o │ │ │ │ │   The block structure of the system. │ │ │ │ │   │ │ │ │ │ _b_o_o_l  _l_e_v_e_l___c_e_l_l │ │ │ │ │   │ │ │ │ │ PPrriivvaattee MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │   _D_o_F_I_n_f_o () │ │ │ │ │   │ │ │ │ │ void  _s_e_t___b_l_o_c_k___i_n_d_i_c_e_s () │ │ │ │ │   Set up local block indices. │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ -void  _g_e_t___i_n_d_i_c_e_s (const DHCellIterator &c) │ │ │ │ │ +template<_c_l_a_s_s _D_H_C_e_l_l_I_t_e_r_a_t_o_r > │ │ │ │ │ +void  _g_e_t___i_n_d_i_c_e_s (_c_o_n_s_t _D_H_C_e_l_l_I_t_e_r_a_t_o_r &c) │ │ │ │ │   Fill index vector with active indices. │ │ │ │ │   │ │ │ │ │ PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ std::vector< _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x >  _i_n_d_i_c_e_s___o_r_g │ │ │ │ │   Auxiliary vector. │ │ │ │ │   │ │ │ │ │ _B_l_o_c_k_I_n_d_i_c_e_s  _a_u_x___l_o_c_a_l___i_n_d_i_c_e_s │ │ │ │ │ @@ -155,18 +155,18 @@ │ │ │ │ │ std::vector< _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > > >  _M_1 │ │ │ │ │   │ │ │ │ │ std::vector< _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > > >  _M_2 │ │ │ │ │   │ │ │ │ │ _T_a_b_l_e< 2, number >  _q_u_a_d_r_a_t_u_r_e___d_a_t_a │ │ │ │ │   │ │ │ │ │ FFrriieennddss │ │ │ │ │ -class  _D_o_F_I_n_f_o_B_o_x_<_ _d_i_m_,_ _D_o_F_I_n_f_o_<_ _d_i_m_,_ _s_p_a_c_e_d_i_m_,_ _n_u_m_b_e_r_ _>_ _> │ │ │ │ │ +_c_l_a_s_s  _D_o_F_I_n_f_o_B_o_x_<_ _d_i_m_,_ _D_o_F_I_n_f_o_<_ _d_i_m_,_ _s_p_a_c_e_d_i_m_,_ _n_u_m_b_e_r_ _>_ _> │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ class MeshWorker::DoFInfo< dim, spacedim, number > │ │ │ │ │ A class containing information on geometry and degrees of freedom of a mesh │ │ │ │ │ object. │ │ │ │ │ The information in these objects is usually used by one of the _A_s_s_e_m_b_l_e_r │ │ │ │ │ classes. It is also the kind of information which is needed in mesh based │ │ │ │ │ matrices (often referred to as matrix free methods). │ │ │ │ │ In addition to the information on degrees of freedom stored in this class, it │ │ │ │ │ @@ -185,142 +185,142 @@ │ │ │ │ │ comes the second block and so on. │ │ │ │ │ The _B_l_o_c_k_I_n_f_o object is stored as a pointer. Therefore, if the block structure │ │ │ │ │ changes, for instance because of mesh refinement, the _D_o_F_I_n_f_o class will │ │ │ │ │ automatically use the new structures. │ │ │ │ │ Definition at line _7_4 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** CCoonnssttrruuccttoorr && DDeessttrruuccttoorr DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? DDooFFIInnffoo(()) [[11//33]] ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ -_M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, number ( const _B_l_o_c_k_I_n_f_o &  bblloocckk__iinnffoo ) │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ +_M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, number ( _c_o_n_s_t _B_l_o_c_k_I_n_f_o &  bblloocckk__iinnffoo ) │ │ │ │ │ >::DoFInfo │ │ │ │ │ Constructor setting the _b_l_o_c_k___i_n_f_o pointer. │ │ │ │ │ ********** _?◆_? DDooFFIInnffoo(()) [[22//33]] ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim, typename number > │ │ │ │ │ -_M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( const _D_o_F_H_a_n_d_l_e_r< dim, spacedim > ddooff__hhaannddlleerr ) │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim, _t_y_p_e_n_a_m_e number > │ │ │ │ │ +_M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( _c_o_n_s_t _D_o_F_H_a_n_d_l_e_r< dim, spacedim > ddooff__hhaannddlleerr ) │ │ │ │ │ spacedim, number >::DoFInfo &  │ │ │ │ │ Constructor leaving the _b_l_o_c_k___i_n_f_o pointer empty, but setting the │ │ │ │ │ _a_u_x___l_o_c_a_l___i_n_d_i_c_e_s. │ │ │ │ │ Definition at line _2_9_9 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? DDooFFIInnffoo(()) [[33//33]] ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim, typename number > │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim, _t_y_p_e_n_a_m_e number > │ │ │ │ │ _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, number >:: ( ) private │ │ │ │ │ DoFInfo │ │ │ │ │ Standard constructor, not setting any block indices. Use of this constructor is │ │ │ │ │ not recommended, but it is needed for the arrays in _D_o_F_I_n_f_o_B_o_x. │ │ │ │ │ Definition at line _2_9_0 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** MMeemmbbeerr FFuunnccttiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[11//44]] ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim, typename number > │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( const DHCellIterator &  cc ) inline │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim, _t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_c_l_a_s_s _D_H_C_e_l_l_I_t_e_r_a_t_o_r > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( _c_o_n_s_t _D_H_C_e_l_l_I_t_e_r_a_t_o_r &  cc ) inline │ │ │ │ │ spacedim, number >::reinit │ │ │ │ │ Set the current cell and fill indices. │ │ │ │ │ Definition at line _3_3_1 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[22//44]] ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim, typename number > │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( const DHCellIterator &  cc, │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim, _t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_c_l_a_s_s _D_H_C_e_l_l_I_t_e_r_a_t_o_r , _c_l_a_s_s _D_H_F_a_c_e_I_t_e_r_a_t_o_r > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( _c_o_n_s_t _D_H_C_e_l_l_I_t_e_r_a_t_o_r &  cc, │ │ │ │ │ spacedim, number >::reinit │ │ │ │ │ - const DHFaceIterator &  ff, inline │ │ │ │ │ - const unsigned _i_n_t  ffaaccee__nnoo  │ │ │ │ │ + _c_o_n_s_t _D_H_F_a_c_e_I_t_e_r_a_t_o_r &  ff, inline │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ffaaccee__nnoo  │ │ │ │ │ ) │ │ │ │ │ Set the current face and fill indices if the _c_e_l_l changed. │ │ │ │ │ Definition at line _3_6_1 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[33//44]] ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim, typename number > │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( const DHCellIterator &  cc, │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim, _t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_c_l_a_s_s _D_H_C_e_l_l_I_t_e_r_a_t_o_r , _c_l_a_s_s _D_H_F_a_c_e_I_t_e_r_a_t_o_r > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( _c_o_n_s_t _D_H_C_e_l_l_I_t_e_r_a_t_o_r &  cc, │ │ │ │ │ spacedim, number >::reinit │ │ │ │ │ - const DHFaceIterator &  ff, inline │ │ │ │ │ - const unsigned _i_n_t  ffaaccee__nnoo, │ │ │ │ │ - const unsigned _i_n_t  ssuubbffaaccee__nnoo  │ │ │ │ │ + _c_o_n_s_t _D_H_F_a_c_e_I_t_e_r_a_t_o_r &  ff, inline │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ffaaccee__nnoo, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ssuubbffaaccee__nnoo  │ │ │ │ │ ) │ │ │ │ │ Set the current subface and fill indices if the _c_e_l_l changed. │ │ │ │ │ Definition at line _3_9_6 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? sseett__ffaaccee(()) ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim, typename number > │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( const DHFaceIterator &  ff, │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim, _t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_c_l_a_s_s _D_H_F_a_c_e_I_t_e_r_a_t_o_r > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( _c_o_n_s_t _D_H_F_a_c_e_I_t_e_r_a_t_o_r &  ff, │ │ │ │ │ spacedim, number >::set_face inline │ │ │ │ │ - const unsigned _i_n_t  ffaaccee__nnoo  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ffaaccee__nnoo  │ │ │ │ │ ) │ │ │ │ │ Switch to a new face of the same cell. Does not change indices and does not │ │ │ │ │ reset data in _L_o_c_a_l_R_e_s_u_l_t_s. │ │ │ │ │ Definition at line _3_4_9 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? sseett__ssuubbffaaccee(()) ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim, typename number > │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( const DHFaceIterator &  ff, │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim, _t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_c_l_a_s_s _D_H_F_a_c_e_I_t_e_r_a_t_o_r > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, ( _c_o_n_s_t _D_H_F_a_c_e_I_t_e_r_a_t_o_r &  ff, │ │ │ │ │ spacedim, number >::set_subface │ │ │ │ │ - const unsigned _i_n_t  ffaaccee__nnoo, inline │ │ │ │ │ - const unsigned _i_n_t  ssuubbffaaccee__nnoo  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ffaaccee__nnoo, inline │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ssuubbffaaccee__nnoo  │ │ │ │ │ ) │ │ │ │ │ Switch to a new subface of the same cell. Does not change indices and does not │ │ │ │ │ reset data in _L_o_c_a_l_R_e_s_u_l_t_s. │ │ │ │ │ Definition at line _3_8_3 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? llooccaall__iinnddiicceess(()) ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim, typename number > │ │ │ │ │ -const _B_l_o_c_k_I_n_d_i_c_e_s & _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, ( ) const inline │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim, _t_y_p_e_n_a_m_e number > │ │ │ │ │ +_c_o_n_s_t _B_l_o_c_k_I_n_d_i_c_e_s & _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, ( ) const inline │ │ │ │ │ number >::local_indices │ │ │ │ │ Definition at line _4_1_9 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? sseett__bblloocckk__iinnddiicceess(()) ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, number ( ) private │ │ │ │ │ >::set_block_indices │ │ │ │ │ Set up local block indices. │ │ │ │ │ ********** _?◆_? ggeett__iinnddiicceess(()) ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim, typename number > │ │ │ │ │ -template │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim, _t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_c_l_a_s_s _D_H_C_e_l_l_I_t_e_r_a_t_o_r > │ │ │ │ │ void _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, │ │ │ │ │ -spacedim, number >:: ( const DHCellIterator &  cc ) inlineprivate │ │ │ │ │ +spacedim, number >:: ( _c_o_n_s_t _D_H_C_e_l_l_I_t_e_r_a_t_o_r &  cc ) inlineprivate │ │ │ │ │ get_indices │ │ │ │ │ Fill index vector with active indices. │ │ │ │ │ Definition at line _3_1_4 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? nn__vvaalluueess(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( ) const inlineinherited │ │ │ │ │ n_values │ │ │ │ │ The number of scalar values stored by the current object. │ │ │ │ │ This number is set to a nonzero value by _A_s_s_e_m_b_l_e_r_:_:_C_e_l_l_s_A_n_d_F_a_c_e_s │ │ │ │ │ Definition at line _3_9_1 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? nn__vveeccttoorrss(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( ) const inlineinherited │ │ │ │ │ n_vectors │ │ │ │ │ The number of vectors stored by the current object. │ │ │ │ │ This number is set to a nonzero value by _A_s_s_e_m_b_l_e_r_:_:_R_e_s_i_d_u_a_l_S_i_m_p_l_e and │ │ │ │ │ _A_s_s_e_m_b_l_e_r_:_:_R_e_s_i_d_u_a_l_L_o_c_a_l_B_l_o_c_k_s_T_o_G_l_o_b_a_l_B_l_o_c_k_s. │ │ │ │ │ Definition at line _3_9_9 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? nn__mmaattrriicceess(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( ) const inlineinherited │ │ │ │ │ n_matrices │ │ │ │ │ The number of matrices stored by the current object. │ │ │ │ │ Definition at line _4_0_7 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? nn__qquuaaddrraattuurree__ppooiinnttss(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( ) const inlineinherited │ │ │ │ │ n_quadrature_points │ │ │ │ │ The number of quadrature points in _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s_(_). │ │ │ │ │ Definition at line _4_1_5 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? nn__qquuaaddrraattuurree__vvaalluueess(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( ) const inlineinherited │ │ │ │ │ n_quadrature_values │ │ │ │ │ The number of values in each quadrature point in _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s_(_). │ │ │ │ │ Definition at line _4_2_3 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? vvaalluuee(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -number & _M_e_s_h_W_o_r_k_e_r_:_: ( const unsigned _i_n_t  ii ) inlineinherited │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +number & _M_e_s_h_W_o_r_k_e_r_:_: ( _c_o_n_s_t unsigned _i_n_t  ii ) inlineinherited │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number >::value │ │ │ │ │ Read-write access to the ith scalar stored by this class. │ │ │ │ │ Definition at line _4_3_1 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? vvaalluuee(()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -number _M_e_s_h_W_o_r_k_e_r_:_: ( const unsigned _i_n_t  ii ) const inlineinherited │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +number _M_e_s_h_W_o_r_k_e_r_:_: ( _c_o_n_s_t unsigned _i_n_t  ii ) const inlineinherited │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number >::value │ │ │ │ │ Read access to the ith scalar stored by this class. │ │ │ │ │ Definition at line _4_8_0 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? vveeccttoorr(()) [[11//22]] ********** │ │ │ │ │ template │ │ │ │ │ _B_l_o_c_k_V_e_c_t_o_r< number > & │ │ │ │ │ _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( const unsigned _i_n_t  ii ) inlineinherited │ │ │ │ │ @@ -331,245 +331,245 @@ │ │ │ │ │ template │ │ │ │ │ const _B_l_o_c_k_V_e_c_t_o_r< number > & │ │ │ │ │ _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( const unsigned _i_n_t  ii ) const inlineinherited │ │ │ │ │ number >::vector │ │ │ │ │ Read-write access to the ith vector stored by this class │ │ │ │ │ Definition at line _4_8_9 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? mmaattrriixx(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ _M_a_t_r_i_x_B_l_o_c_k< │ │ │ │ │ _F_u_l_l_M_a_t_r_i_x< number > > │ │ │ │ │ -& _M_e_s_h_W_o_r_k_e_r_:_: ( const unsigned _i_n_t  ii, │ │ │ │ │ +& _M_e_s_h_W_o_r_k_e_r_:_: ( _c_o_n_s_t unsigned _i_n_t  ii, │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number inlineinherited │ │ │ │ │ >::matrix │ │ │ │ │ - const _b_o_o_l  eexxtteerrnnaall = false  │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  eexxtteerrnnaall = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Read-write access to the ith matrix stored by this class. │ │ │ │ │ For an explanation of the second argument, see the documentation of the current │ │ │ │ │ class itself. │ │ │ │ │ Definition at line _4_4_9 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? mmaattrriixx(()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -const _M_a_t_r_i_x_B_l_o_c_k< │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +_c_o_n_s_t _M_a_t_r_i_x_B_l_o_c_k< │ │ │ │ │ _F_u_l_l_M_a_t_r_i_x< number > > │ │ │ │ │ -& _M_e_s_h_W_o_r_k_e_r_:_: ( const unsigned _i_n_t  ii, │ │ │ │ │ +& _M_e_s_h_W_o_r_k_e_r_:_: ( _c_o_n_s_t unsigned _i_n_t  ii, │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number inlineinherited │ │ │ │ │ >::matrix │ │ │ │ │ - const _b_o_o_l  eexxtteerrnnaall = false  │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  eexxtteerrnnaall = _f_a_l_s_e  │ │ │ │ │ ) const │ │ │ │ │ Read access to the ith matrix stored by this class. │ │ │ │ │ For an explanation of the second argument, see the documentation of the current │ │ │ │ │ class itself. │ │ │ │ │ Definition at line _4_9_8 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? qquuaaddrraattuurree__vvaalluueess(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ _T_a_b_l_e< 2, number > & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( ) inlineinherited │ │ │ │ │ >::quadrature_values │ │ │ │ │ Access to the vector _q_u_a_d_r_a_t_u_r_e___d_a_t_a of data in quadrature points, organized │ │ │ │ │ such that there is a vector for each point, containing one entry for each │ │ │ │ │ component. │ │ │ │ │ Definition at line _4_7_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? qquuaaddrraattuurree__vvaalluuee(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -number & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( const unsigned _i_n_t  kk, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +number & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( _c_o_n_s_t unsigned _i_n_t  kk, │ │ │ │ │ number >::quadrature_value inlineinherited │ │ │ │ │ - const unsigned _i_n_t  ii  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ii  │ │ │ │ │ ) │ │ │ │ │ Access the iith value at quadrature point kk │ │ │ │ │ Definition at line _4_6_3 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? qquuaaddrraattuurree__vvaalluuee(()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -number _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( const unsigned _i_n_t  kk, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +number _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( _c_o_n_s_t unsigned _i_n_t  kk, │ │ │ │ │ number >::quadrature_value inlineinherited │ │ │ │ │ - const unsigned _i_n_t  ii  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ii  │ │ │ │ │ ) const │ │ │ │ │ Read the iith value at quadrature point kk │ │ │ │ │ Definition at line _5_1_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__nnuummbbeerrss(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( const unsigned _i_n_t  nn ) inlineinherited │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( _c_o_n_s_t unsigned _i_n_t  nn ) inlineinherited │ │ │ │ │ number >::initialize_numbers │ │ │ │ │ Initialize the vector with scalar values. │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _2_9_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__vveeccttoorrss(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( const unsigned _i_n_t  nn ) inlineinherited │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( _c_o_n_s_t unsigned _i_n_t  nn ) inlineinherited │ │ │ │ │ number >::initialize_vectors │ │ │ │ │ Initialize the vector with vector values. │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _3_0_0 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__mmaattrriicceess(()) [[11//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( const unsigned _i_n_t  nn, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( _c_o_n_s_t unsigned _i_n_t  nn, │ │ │ │ │ number >::initialize_matrices inlineinherited │ │ │ │ │ _b_o_o_l  bbootthh  │ │ │ │ │ ) │ │ │ │ │ Allocate n local matrices. Additionally, set their block row and column │ │ │ │ │ coordinates to zero. The matrices themselves are resized by _r_e_i_n_i_t_(_). │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _3_6_1 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__mmaattrriicceess(()) [[22//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_: const _M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e MatrixType > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_: _c_o_n_s_t _M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( MatrixType > &  mmaattrriicceess, │ │ │ │ │ initialize_matrices inlineinherited │ │ │ │ │ _b_o_o_l  bbootthh  │ │ │ │ │ ) │ │ │ │ │ Allocate a local matrix for each of the global ones in matrices. Additionally, │ │ │ │ │ set their block row and column coordinates. The matrices themselves are resized │ │ │ │ │ by _r_e_i_n_i_t_(_). │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _3_0_9 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__mmaattrriicceess(()) [[33//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_: const _M_G_M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e MatrixType > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_: _c_o_n_s_t _M_G_M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( MatrixType > &  mmaattrriicceess, │ │ │ │ │ initialize_matrices inlineinherited │ │ │ │ │ _b_o_o_l  bbootthh  │ │ │ │ │ ) │ │ │ │ │ Allocate a local matrix for each of the global level objects in matrices. │ │ │ │ │ Additionally, set their block row and column coordinates. The matrices │ │ │ │ │ themselves are resized by _r_e_i_n_i_t_(_). │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _3_3_5 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__qquuaaddrraattuurree(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( const unsigned _i_n_t  nnpp, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( _c_o_n_s_t unsigned _i_n_t  nnpp, │ │ │ │ │ >::initialize_quadrature inlineinherited │ │ │ │ │ - const unsigned _i_n_t  nnvv  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  nnvv  │ │ │ │ │ ) │ │ │ │ │ Initialize quadrature values to nv values in np quadrature points. │ │ │ │ │ Definition at line _3_8_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[44//44]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ void _M_e_s_h_W_o_r_k_e_r_:_: │ │ │ │ │ -_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( const _B_l_o_c_k_I_n_d_i_c_e_s &  llooccaall__ssiizzeess ) inherited │ │ │ │ │ +_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( _c_o_n_s_t _B_l_o_c_k_I_n_d_i_c_e_s &  llooccaall__ssiizzeess ) inherited │ │ │ │ │ reinit │ │ │ │ │ Reinitialize matrices for new cell. Does not resize any of the data vectors │ │ │ │ │ stored in this object, but resizes the vectors in _R and the matrices in _M_1 and │ │ │ │ │ _M_2 for hp and sets them to zero. │ │ │ │ │ Definition at line _2_7 of file _m_e_s_h___w_o_r_k_e_r_._c_c. │ │ │ │ │ ********** _?◆_? pprriinntt__ddeebbuugg(()) ********** │ │ │ │ │ -template │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( StreamType &  ooss ) const inherited │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( _S_t_r_e_a_m_T_y_p_e &  ooss ) const inherited │ │ │ │ │ print_debug │ │ │ │ │ Definition at line _5_2_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? mmeemmoorryy__ccoonnssuummppttiioonn(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::size_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( ) const inherited │ │ │ │ │ memory_consumption │ │ │ │ │ The memory used by this object. │ │ │ │ │ Definition at line _4_5 of file _m_e_s_h___w_o_r_k_e_r_._c_c. │ │ │ │ │ ********** FFrriieennddss AAnndd RReellaatteedd SSyymmbbooll DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? DDooFFIInnffooBBooxx<< ddiimm,, DDooFFIInnffoo<< ddiimm,, ssppaacceeddiimm,, nnuummbbeerr >> >> ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ -friend class _D_o_F_I_n_f_o_B_o_x< dim, _D_o_F_I_n_f_o< dim, spacedim, number > > friend │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ +_f_r_i_e_n_d _c_l_a_s_s _D_o_F_I_n_f_o_B_o_x< dim, _D_o_F_I_n_f_o< dim, spacedim, number > > friend │ │ │ │ │ Definition at line _2_0_3 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** MMeemmbbeerr DDaattaa DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? cceellll ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ _T_r_i_a_n_g_u_l_a_t_i_o_n::cell_iterator _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, │ │ │ │ │ number >::cell │ │ │ │ │ The current cell. │ │ │ │ │ Definition at line _7_8 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? ffaaccee ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ _T_r_i_a_n_g_u_l_a_t_i_o_n::face_iterator _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, │ │ │ │ │ number >::face │ │ │ │ │ The current face. │ │ │ │ │ Definition at line _8_1 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? ffaaccee__nnuummbbeerr ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, number >::face_number │ │ │ │ │ The number of the current face on the current cell. │ │ │ │ │ This number is _n_u_m_b_e_r_s_:_:_i_n_v_a_l_i_d___u_n_s_i_g_n_e_d___i_n_t if the info object was initialized │ │ │ │ │ with a cell. │ │ │ │ │ Definition at line _8_9 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? ssuubb__nnuummbbeerr ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, number >::sub_number │ │ │ │ │ The number of the current subface on the current face │ │ │ │ │ This number is _n_u_m_b_e_r_s_:_:_i_n_v_a_l_i_d___u_n_s_i_g_n_e_d___i_n_t if the info object was not │ │ │ │ │ initialized with a subface. │ │ │ │ │ Definition at line _9_7 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? iinnddiicceess ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ std::vector<_t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x> _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, number │ │ │ │ │ >::indices │ │ │ │ │ The DoF indices of the current cell │ │ │ │ │ Definition at line _1_0_3 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? iinnddiicceess__bbyy__bblloocckk ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ std::vector > _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, │ │ │ │ │ spacedim, number >::indices_by_block │ │ │ │ │ The DoF indices on the current cell, organized by local blocks. The size of │ │ │ │ │ this vector is zero, unless local blocks are used. │ │ │ │ │ Definition at line _1_0_9 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? bblloocckk__iinnffoo ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ -_S_m_a_r_t_P_o_i_n_t_e_r > _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ +_S_m_a_r_t_P_o_i_n_t_e_r<_c_o_n_s_t _B_l_o_c_k_I_n_f_o, _D_o_F_I_n_f_o > _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< │ │ │ │ │ dim, spacedim, number >::block_info │ │ │ │ │ The block structure of the system. │ │ │ │ │ Definition at line _1_7_1 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? lleevveell__cceellll ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ _b_o_o_l _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, number >::level_cell │ │ │ │ │ The structure refers to a cell with level data instead of active data. │ │ │ │ │ Definition at line _1_7_6 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? iinnddiicceess__oorrgg ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ std::vector<_t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x> _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, private │ │ │ │ │ spacedim, number >::indices_org │ │ │ │ │ Auxiliary vector. │ │ │ │ │ Definition at line _1_9_6 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? aauuxx__llooccaall__iinnddiicceess ********** │ │ │ │ │ -template<_i_n_t dim, _i_n_t spacedim = dim, typename number = double> │ │ │ │ │ +template<_i_n_t dim, _i_n_t spacedim = dim, _t_y_p_e_n_a_m_e number = double> │ │ │ │ │ _B_l_o_c_k_I_n_d_i_c_e_s _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o< dim, spacedim, number >:: private │ │ │ │ │ aux_local_indices │ │ │ │ │ An auxiliary local _B_l_o_c_k_I_n_d_i_c_e_s object created if _b_l_o_c_k___i_n_f_o is not set. It │ │ │ │ │ contains just a single block of the size of degrees of freedom per cell. │ │ │ │ │ Definition at line _2_0_3 of file _d_o_f___i_n_f_o_._h. │ │ │ │ │ ********** _?◆_? JJ ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::vector _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::J privateinherited │ │ │ │ │ The local numbers, computed on a cell or on a face. │ │ │ │ │ Definition at line _2_6_0 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? RR ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::vector<_B_l_o_c_k_V_e_c_t_o_r > _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< privateinherited │ │ │ │ │ number >::R │ │ │ │ │ The local vectors. This field is public, so that local integrators can write to │ │ │ │ │ it. │ │ │ │ │ Definition at line _2_6_6 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? MM11 ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::vector<_M_a_t_r_i_x_B_l_o_c_k<_F_u_l_l_M_a_t_r_i_x > > _M_e_s_h_W_o_r_k_e_r_:_: privateinherited │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number >::M1 │ │ │ │ │ The local matrices coupling degrees of freedom in the cell itself or within the │ │ │ │ │ first cell on a face. │ │ │ │ │ Definition at line _2_7_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? MM22 ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::vector<_M_a_t_r_i_x_B_l_o_c_k<_F_u_l_l_M_a_t_r_i_x > > _M_e_s_h_W_o_r_k_e_r_:_: privateinherited │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number >::M2 │ │ │ │ │ The local matrices coupling test functions on the cell with trial functions on │ │ │ │ │ the other cell. │ │ │ │ │ Only used on interior faces. │ │ │ │ │ Definition at line _2_8_0 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? qquuaaddrraattuurree__ddaattaa ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ _T_a_b_l_e<2, number> _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: privateinherited │ │ │ │ │ quadrature_data │ │ │ │ │ Values in quadrature points for writing into patch data. │ │ │ │ │ Definition at line _2_8_5 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ =============================================================================== │ │ │ │ │ The documentation for this class was generated from the following file: │ │ │ │ │ * include/deal.II/meshworker/_d_o_f___i_n_f_o_._h │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalIntegrator.html │ │ │ │ @@ -204,15 +204,15 @@ │ │ │ │ │ │ │ │
    Table<2, number> MeshWorker::LocalResults< number >::quadrature_data
     
    │ │ │ │

    Detailed Description

    │ │ │ │
    template<int dim, int spacedim = dim, typename number = double>
    │ │ │ │ class MeshWorker::LocalIntegrator< dim, spacedim, number >

    A local integrator object, which can be used to simplify the call of loop(). Instead of providing the three local integration functions separately, we bundle them as virtual functions in this class.

    │ │ │ │

    Additionally, since we cannot have a virtual null function, we provide flags, which allow us to indicate, whether we want to integrate on boundary and interior faces. These flags are true by default, but can be modified by applications to speed up the loop.

    │ │ │ │

    If a function is not overloaded in a derived class, but its usage flag is true, the function will cause an exception ExcPureFunction.

    │ │ │ │ -
    Deprecated:
    This class is deprecated. It used to be the basis for integration via the MeshWorker::integration_loop() function, but the same functionality is available via MeshWorker::loop().
    │ │ │ │ +
    Deprecated:
    This class is deprecated. It used to be the basis for integration via the MeshWorker::integration_loop() function, but the same functionality is available via MeshWorker::loop().
    │ │ │ │ │ │ │ │

    Definition at line 59 of file local_integrator.h.

    │ │ │ │

    Member Typedef Documentation

    │ │ │ │ │ │ │ │

    ◆ map_value_type

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -796,15 +796,15 @@ │ │ │ │
    std::vector<std::string> MeshWorker::LocalIntegrator< dim, spacedim, number >::input_vector_names
    │ │ │ │
    │ │ │ │

    The names of the input vectors. If this vector is nonempty, it can be used by application programs to automatically select and verify the input vectors used for integration.

    │ │ │ │
    Note
    This variable is currently not used by the library, but it is provided to help develop application programs.
    │ │ │ │ -
    Deprecated:
    Because the library itself does not use this field, it is better placed in derived classes.
    │ │ │ │ +
    Deprecated:
    Because the library itself does not use this field, it is better placed in derived classes.
    │ │ │ │ │ │ │ │

    Definition at line 132 of file local_integrator.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ output_names

    │ │ │ │ @@ -817,15 +817,15 @@ │ │ │ │
    std::vector<std::string> MeshWorker::LocalIntegrator< dim, spacedim, number >::output_names
    │ │ │ │
    │ │ │ │

    The names of the results produced. If this vector is nonempty, it can be used by application programs to automatically assign names to output values and/or verify the names of vectors.

    │ │ │ │
    Note
    This variable is currently not used by the library, but it is provided to help develop application programs.
    │ │ │ │ -
    Deprecated:
    Because the library itself does not use this field, it is better placed in derived classes.
    │ │ │ │ +
    Deprecated:
    Because the library itself does not use this field, it is better placed in derived classes.
    │ │ │ │ │ │ │ │

    Definition at line 146 of file local_integrator.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ counter

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classMeshWorker_1_1LocalResults.html │ │ │ │ @@ -116,62 +116,62 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [legend]
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Member Functions

    unsigned int n_values () const
    unsigned int n_values () const
     
    unsigned int n_vectors () const
    unsigned int n_vectors () const
     
    unsigned int n_matrices () const
    unsigned int n_matrices () const
     
    unsigned int n_quadrature_points () const
    unsigned int n_quadrature_points () const
     
    unsigned int n_quadrature_values () const
    unsigned int n_quadrature_values () const
     
    number & value (const unsigned int i)
    number & value (const unsigned int i)
     
    number value (const unsigned int i) const
    number value (const unsigned int i) const
     
    BlockVector< number > & vector (const unsigned int i)
     
    const BlockVector< number > & vector (const unsigned int i) const
     
    MatrixBlock< FullMatrix< number > > & matrix (const unsigned int i, const bool external=false)
    MatrixBlock< FullMatrix< number > > & matrix (const unsigned int i, const bool external=false)
     
    const MatrixBlock< FullMatrix< number > > & matrix (const unsigned int i, const bool external=false) const
    const MatrixBlock< FullMatrix< number > > & matrix (const unsigned int i, const bool external=false) const
     
    Table< 2, number > & quadrature_values ()
     
    number & quadrature_value (const unsigned int k, const unsigned int i)
    number & quadrature_value (const unsigned int k, const unsigned int i)
     
    number quadrature_value (const unsigned int k, const unsigned int i) const
    number quadrature_value (const unsigned int k, const unsigned int i) const
     
    void initialize_numbers (const unsigned int n)
    void initialize_numbers (const unsigned int n)
     
    void initialize_vectors (const unsigned int n)
    void initialize_vectors (const unsigned int n)
     
    void initialize_matrices (const unsigned int n, bool both)
    void initialize_matrices (const unsigned int n, bool both)
     
    template<typename MatrixType >
    void initialize_matrices (const MatrixBlockVector< MatrixType > &matrices, bool both)
    template<typename MatrixType >
    void initialize_matrices (const MatrixBlockVector< MatrixType > &matrices, bool both)
     
    template<typename MatrixType >
    void initialize_matrices (const MGMatrixBlockVector< MatrixType > &matrices, bool both)
    template<typename MatrixType >
    void initialize_matrices (const MGMatrixBlockVector< MatrixType > &matrices, bool both)
     
    void initialize_quadrature (const unsigned int np, const unsigned int nv)
    void initialize_quadrature (const unsigned int np, const unsigned int nv)
     
    void reinit (const BlockIndices &local_sizes)
    void reinit (const BlockIndices &local_sizes)
     
    template<typename StreamType >
    void print_debug (StreamType &os) const
    template<typename StreamType >
    void print_debug (StreamType &os) const
     
    std::size_t memory_consumption () const
    std::size_t memory_consumption () const
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -180,15 +180,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Private Attributes

    std::vector< number > J
     
    std::vector< BlockVector< number > > R
     
    std::vector< MatrixBlock< FullMatrix< number > > > M2
     
    Table< 2, number > quadrature_data
     
    │ │ │ │

    Detailed Description

    │ │ │ │ -
    template<typename number>
    │ │ │ │ +
    template<typename number>
    │ │ │ │ class MeshWorker::LocalResults< number >

    The class providing the scrapbook to fill with results of local integration. Depending on the task the mesh worker loop is performing, local results can be of different types: They can be scalars, vectors of size equal to the number of degrees of freedom used in the integrals, or square matrices of that same size. All of these have in common that they are the result of local integration over a cell or face. Which kind of object is the result of an operation is determined by the Assembler using them. It is also the assembler that determines how many of each kind of object are produced (for example, an assembler may create both the local contributions to a mass and a stiffness matrix), and for setting the arrays of local results to the sizes needed.

    │ │ │ │

    The interface of this class allows accessing all of this information via the following functions:

    │ │ │ │
      │ │ │ │
    1. │ │ │ │

      Scalars: n_values() returns the number of scalars stored by an object of this class, and they are accessed via the value() function.

      │ │ │ │

      │ │ │ │
    2. │ │ │ │ @@ -205,15 +205,15 @@ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ │

    ◆ n_values()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -236,15 +236,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ n_vectors()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_values (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -267,15 +267,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ n_matrices()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_vectors (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -297,15 +297,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ n_quadrature_points()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_matrices (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -327,15 +327,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ n_quadrature_values()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_quadrature_points (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -357,23 +357,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ value() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    unsigned int MeshWorker::LocalResults< number >::n_quadrature_values (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -388,23 +388,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ value() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    number & MeshWorker::LocalResults< number >::value (const unsigned int const unsigned int i)
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -481,30 +481,30 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ matrix() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    number MeshWorker::LocalResults< number >::value (const unsigned int const unsigned int i) const
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    MatrixBlock< FullMatrix< number > > & MeshWorker::LocalResults< number >::matrix (const unsigned int const unsigned int i,
    const bool external = false const bool external = false 
    )
    │ │ │ │ @@ -523,30 +523,30 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ matrix() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    const MatrixBlock< FullMatrix< number > > & MeshWorker::LocalResults< number >::matrix const MatrixBlock< FullMatrix< number > > & MeshWorker::LocalResults< number >::matrix (const unsigned int const unsigned int i,
    const bool external = false const bool external = false 
    ) const
    │ │ │ │ @@ -565,15 +565,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ quadrature_values()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -595,29 +595,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ quadrature_value() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    Table< 2, number > & MeshWorker::LocalResults< number >::quadrature_values (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -636,29 +636,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ quadrature_value() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    number & MeshWorker::LocalResults< number >::quadrature_value (const unsigned int const unsigned int k,
    const unsigned int const unsigned int i 
    )
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -677,23 +677,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_numbers()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    number MeshWorker::LocalResults< number >::quadrature_value (const unsigned int const unsigned int k,
    const unsigned int const unsigned int i 
    ) const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -709,23 +709,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_vectors()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_numbers (const unsigned int const unsigned int n)
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -741,23 +741,23 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_matrices() [1/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_vectors (const unsigned int const unsigned int n)
    │ │ │ │
    │ │ │ │ inline
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -783,25 +783,25 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_matrices() [2/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ -template<typename MatrixType >
    │ │ │ │ +template<typename MatrixType >
    │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_matrices (const unsigned int const unsigned int n,
    bool both 
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -827,25 +827,25 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_matrices() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ -template<typename MatrixType >
    │ │ │ │ +template<typename MatrixType >
    │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_matrices (const MatrixBlockVector< MatrixType > & const MatrixBlockVector< MatrixType > & matrices,
    bool both 
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -871,29 +871,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ initialize_quadrature()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_matrices (const MGMatrixBlockVector< MatrixType > & const MGMatrixBlockVector< MatrixType > & matrices,
    bool both 
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -934,29 +934,29 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -6463,15 +6463,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -912,20 +912,20 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ reinit()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    void MeshWorker::LocalResults< number >::initialize_quadrature (const unsigned int const unsigned int np,
    const unsigned int const unsigned int nv 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::LocalResults< number >::reinit (const BlockIndicesconst BlockIndiceslocal_sizes)
    │ │ │ │
    │ │ │ │

    Reinitialize matrices for new cell. Does not resize any of the data vectors stored in this object, but resizes the vectors in R and the matrices in M1 and M2 for hp and sets them to zero.

    │ │ │ │ │ │ │ │ @@ -935,22 +935,22 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ print_debug()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    │ │ │ │ -template<typename StreamType >
    │ │ │ │ +template<typename StreamType >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void MeshWorker::LocalResults< number >::print_debug (StreamType & StreamTypeos) const
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 522 of file local_results.h.

    │ │ │ │ @@ -959,15 +959,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ memory_consumption()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -982,15 +982,15 @@ │ │ │ │

    Member Data Documentation

    │ │ │ │ │ │ │ │

    ◆ J

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    std::size_t MeshWorker::LocalResults< number >::memory_consumption () const
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1009,15 +1009,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ R

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    std::vector<number> MeshWorker::LocalResults< number >::J
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1036,15 +1036,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ M1

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    std::vector<BlockVector<number> > MeshWorker::LocalResults< number >::R
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1063,15 +1063,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ M2

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    std::vector<MatrixBlock<FullMatrix<number> > > MeshWorker::LocalResults< number >::M1
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1091,15 +1091,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ quadrature_data

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │
    std::vector<MatrixBlock<FullMatrix<number> > > MeshWorker::LocalResults< number >::M2
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -12,89 +12,89 @@ │ │ │ │ │ MeshWorker::LocalResults< number > Class Template Reference │ │ │ │ │ _I_n_t_e_g_r_a_t_o_r_s » _T_h_e_ _M_e_s_h_W_o_r_k_e_r_ _i_n_t_e_r_f_a_c_e │ │ │ │ │ #include <_d_e_a_l_._I_I_/_m_e_s_h_w_o_r_k_e_r_/_l_o_c_a_l___r_e_s_u_l_t_s_._h> │ │ │ │ │ Inheritance diagram for MeshWorker::LocalResults< number >: │ │ │ │ │ [Inheritance graph] │ │ │ │ │ [_l_e_g_e_n_d] │ │ │ │ │ PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ - unsigned _i_n_t  _n___v_a_l_u_e_s () const │ │ │ │ │ + unsigned _i_n_t  _n___v_a_l_u_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___v_e_c_t_o_r_s () const │ │ │ │ │ + unsigned _i_n_t  _n___v_e_c_t_o_r_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___m_a_t_r_i_c_e_s () const │ │ │ │ │ + unsigned _i_n_t  _n___m_a_t_r_i_c_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___q_u_a_d_r_a_t_u_r_e___p_o_i_n_t_s () const │ │ │ │ │ + unsigned _i_n_t  _n___q_u_a_d_r_a_t_u_r_e___p_o_i_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s () const │ │ │ │ │ + unsigned _i_n_t  _n___q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - number &  _v_a_l_u_e (const unsigned _i_n_t i) │ │ │ │ │ + number &  _v_a_l_u_e (_c_o_n_s_t unsigned _i_n_t i) │ │ │ │ │   │ │ │ │ │ - number  _v_a_l_u_e (const unsigned _i_n_t i) const │ │ │ │ │ + number  _v_a_l_u_e (_c_o_n_s_t unsigned _i_n_t i) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ _B_l_o_c_k_V_e_c_t_o_r< number > &  _v_e_c_t_o_r (const unsigned _i_n_t i) │ │ │ │ │   │ │ │ │ │ const _B_l_o_c_k_V_e_c_t_o_r< number > &  _v_e_c_t_o_r (const unsigned _i_n_t i) const │ │ │ │ │   │ │ │ │ │ - _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > > &  _m_a_t_r_i_x (const unsigned _i_n_t i, const │ │ │ │ │ - _b_o_o_l external=false) │ │ │ │ │ + _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > > &  _m_a_t_r_i_x (_c_o_n_s_t unsigned _i_n_t i, _c_o_n_s_t │ │ │ │ │ + _b_o_o_l _e_x_t_e_r_n_a_l=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ -const _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > _m_a_t_r_i_x (const unsigned _i_n_t i, const │ │ │ │ │ - > &  _b_o_o_l external=false) const │ │ │ │ │ +_c_o_n_s_t _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > _m_a_t_r_i_x (_c_o_n_s_t unsigned _i_n_t i, _c_o_n_s_t │ │ │ │ │ + > &  _b_o_o_l _e_x_t_e_r_n_a_l=_f_a_l_s_e) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ _T_a_b_l_e< 2, number > &  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s () │ │ │ │ │   │ │ │ │ │ - number &  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e (const unsigned _i_n_t k, │ │ │ │ │ - const unsigned _i_n_t i) │ │ │ │ │ + number &  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e (_c_o_n_s_t unsigned _i_n_t _k, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t i) │ │ │ │ │   │ │ │ │ │ - number  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e (const unsigned _i_n_t k, │ │ │ │ │ - const unsigned _i_n_t i) const │ │ │ │ │ + number  _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e (_c_o_n_s_t unsigned _i_n_t _k, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t i) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___n_u_m_b_e_r_s (const unsigned _i_n_t │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___n_u_m_b_e_r_s (_c_o_n_s_t unsigned _i_n_t │ │ │ │ │ n) │ │ │ │ │   │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___v_e_c_t_o_r_s (const unsigned _i_n_t │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___v_e_c_t_o_r_s (_c_o_n_s_t unsigned _i_n_t │ │ │ │ │ n) │ │ │ │ │   │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (const unsigned _i_n_t │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (_c_o_n_s_t unsigned _i_n_t │ │ │ │ │ n, _b_o_o_l both) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e MatrixType > │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (_c_o_n_s_t │ │ │ │ │ _M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< MatrixType > │ │ │ │ │ &matrices, _b_o_o_l both) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e MatrixType > │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s (_c_o_n_s_t │ │ │ │ │ _M_G_M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< MatrixType > │ │ │ │ │ &matrices, _b_o_o_l both) │ │ │ │ │   │ │ │ │ │ - void  _i_n_i_t_i_a_l_i_z_e___q_u_a_d_r_a_t_u_r_e (const unsigned │ │ │ │ │ - _i_n_t np, const unsigned _i_n_t nv) │ │ │ │ │ + void  _i_n_i_t_i_a_l_i_z_e___q_u_a_d_r_a_t_u_r_e (_c_o_n_s_t unsigned │ │ │ │ │ + _i_n_t _n_p, _c_o_n_s_t unsigned _i_n_t _n_v) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _B_l_o_c_k_I_n_d_i_c_e_s │ │ │ │ │ - &local_sizes) │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _B_l_o_c_k_I_n_d_i_c_e_s │ │ │ │ │ + &_l_o_c_a_l___s_i_z_e_s) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _p_r_i_n_t___d_e_b_u_g (StreamType &os) const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ + void  _p_r_i_n_t___d_e_b_u_g (_S_t_r_e_a_m_T_y_p_e &os) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () const │ │ │ │ │ + std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ std::vector< number >  _J │ │ │ │ │   │ │ │ │ │ std::vector< _B_l_o_c_k_V_e_c_t_o_r< number > >  _R │ │ │ │ │   │ │ │ │ │ std::vector< _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > > >  _M_1 │ │ │ │ │   │ │ │ │ │ std::vector< _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number > > >  _M_2 │ │ │ │ │   │ │ │ │ │ _T_a_b_l_e< 2, number >  _q_u_a_d_r_a_t_u_r_e___d_a_t_a │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number> │ │ │ │ │ class MeshWorker::LocalResults< number > │ │ │ │ │ The class providing the scrapbook to fill with results of local integration. │ │ │ │ │ Depending on the task the mesh worker loop is performing, local results can be │ │ │ │ │ of different types: They can be scalars, vectors of size equal to the number of │ │ │ │ │ degrees of freedom used in the integrals, or square matrices of that same size. │ │ │ │ │ All of these have in common that they are the result of local integration over │ │ │ │ │ a cell or face. Which kind of object is the result of an operation is │ │ │ │ │ @@ -119,52 +119,52 @@ │ │ │ │ │ according to the degrees of freedom on both cells. These are accessed │ │ │ │ │ with _m_a_t_r_i_x_(_), using the second argument true. │ │ │ │ │ The local matrices are initialized by _r_e_i_n_i_t_(_) of the info object and then │ │ │ │ │ assembled into the global system by _A_s_s_e_m_b_l_e_r classes. │ │ │ │ │ Definition at line _8_1 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** MMeemmbbeerr FFuunnccttiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? nn__vvaalluueess(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::n_values ( ) const inline │ │ │ │ │ The number of scalar values stored by the current object. │ │ │ │ │ This number is set to a nonzero value by _A_s_s_e_m_b_l_e_r_:_:_C_e_l_l_s_A_n_d_F_a_c_e_s │ │ │ │ │ Definition at line _3_9_1 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? nn__vveeccttoorrss(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::n_vectors ( ) const inline │ │ │ │ │ The number of vectors stored by the current object. │ │ │ │ │ This number is set to a nonzero value by _A_s_s_e_m_b_l_e_r_:_:_R_e_s_i_d_u_a_l_S_i_m_p_l_e and │ │ │ │ │ _A_s_s_e_m_b_l_e_r_:_:_R_e_s_i_d_u_a_l_L_o_c_a_l_B_l_o_c_k_s_T_o_G_l_o_b_a_l_B_l_o_c_k_s. │ │ │ │ │ Definition at line _3_9_9 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? nn__mmaattrriicceess(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::n_matrices ( ) const inline │ │ │ │ │ The number of matrices stored by the current object. │ │ │ │ │ Definition at line _4_0_7 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? nn__qquuaaddrraattuurree__ppooiinnttss(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( ) const inline │ │ │ │ │ n_quadrature_points │ │ │ │ │ The number of quadrature points in _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s_(_). │ │ │ │ │ Definition at line _4_1_5 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? nn__qquuaaddrraattuurree__vvaalluueess(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ unsigned _i_n_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( ) const inline │ │ │ │ │ n_quadrature_values │ │ │ │ │ The number of values in each quadrature point in _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s_(_). │ │ │ │ │ Definition at line _4_2_3 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? vvaalluuee(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -number & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( const unsigned _i_n_t  ii ) inline │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +number & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( _c_o_n_s_t unsigned _i_n_t  ii ) inline │ │ │ │ │ >::value │ │ │ │ │ Read-write access to the ith scalar stored by this class. │ │ │ │ │ Definition at line _4_3_1 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? vvaalluuee(()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -number _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( const unsigned _i_n_t  ii ) const inline │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +number _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( _c_o_n_s_t unsigned _i_n_t  ii ) const inline │ │ │ │ │ >::value │ │ │ │ │ Read access to the ith scalar stored by this class. │ │ │ │ │ Definition at line _4_8_0 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? vveeccttoorr(()) [[11//22]] ********** │ │ │ │ │ template │ │ │ │ │ _B_l_o_c_k_V_e_c_t_o_r< number > & │ │ │ │ │ _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( const unsigned _i_n_t  ii ) inline │ │ │ │ │ @@ -175,167 +175,167 @@ │ │ │ │ │ template │ │ │ │ │ const _B_l_o_c_k_V_e_c_t_o_r< number > & │ │ │ │ │ _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( const unsigned _i_n_t  ii ) const inline │ │ │ │ │ vector │ │ │ │ │ Read-write access to the ith vector stored by this class │ │ │ │ │ Definition at line _4_8_9 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? mmaattrriixx(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< number │ │ │ │ │ -> > & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( const unsigned _i_n_t  ii, │ │ │ │ │ +> > & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( _c_o_n_s_t unsigned _i_n_t  ii, │ │ │ │ │ number >::matrix inline │ │ │ │ │ - const _b_o_o_l  eexxtteerrnnaall = false  │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  eexxtteerrnnaall = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Read-write access to the ith matrix stored by this class. │ │ │ │ │ For an explanation of the second argument, see the documentation of the current │ │ │ │ │ class itself. │ │ │ │ │ Definition at line _4_4_9 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? mmaattrriixx(()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -const _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< │ │ │ │ │ -number > > & _M_e_s_h_W_o_r_k_e_r_:_: ( const unsigned _i_n_t  ii, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +_c_o_n_s_t _M_a_t_r_i_x_B_l_o_c_k< _F_u_l_l_M_a_t_r_i_x< │ │ │ │ │ +number > > & _M_e_s_h_W_o_r_k_e_r_:_: ( _c_o_n_s_t unsigned _i_n_t  ii, │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number >::matrix inline │ │ │ │ │ - const _b_o_o_l  eexxtteerrnnaall = false  │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  eexxtteerrnnaall = _f_a_l_s_e  │ │ │ │ │ ) const │ │ │ │ │ Read access to the ith matrix stored by this class. │ │ │ │ │ For an explanation of the second argument, see the documentation of the current │ │ │ │ │ class itself. │ │ │ │ │ Definition at line _4_9_8 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? qquuaaddrraattuurree__vvaalluueess(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ _T_a_b_l_e< 2, number > & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( ) inline │ │ │ │ │ >::quadrature_values │ │ │ │ │ Access to the vector _q_u_a_d_r_a_t_u_r_e___d_a_t_a of data in quadrature points, organized │ │ │ │ │ such that there is a vector for each point, containing one entry for each │ │ │ │ │ component. │ │ │ │ │ Definition at line _4_7_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? qquuaaddrraattuurree__vvaalluuee(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -number & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( const unsigned _i_n_t  kk, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +number & _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( _c_o_n_s_t unsigned _i_n_t  kk, │ │ │ │ │ quadrature_value inline │ │ │ │ │ - const unsigned _i_n_t  ii  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ii  │ │ │ │ │ ) │ │ │ │ │ Access the iith value at quadrature point kk │ │ │ │ │ Definition at line _4_6_3 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? qquuaaddrraattuurree__vvaalluuee(()) [[22//22]] ********** │ │ │ │ │ -template │ │ │ │ │ -number _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( const unsigned _i_n_t  kk, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +number _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( _c_o_n_s_t unsigned _i_n_t  kk, │ │ │ │ │ quadrature_value inline │ │ │ │ │ - const unsigned _i_n_t  ii  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  ii  │ │ │ │ │ ) const │ │ │ │ │ Read the iith value at quadrature point kk │ │ │ │ │ Definition at line _5_1_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__nnuummbbeerrss(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( const unsigned _i_n_t  nn ) inline │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( _c_o_n_s_t unsigned _i_n_t  nn ) inline │ │ │ │ │ >::initialize_numbers │ │ │ │ │ Initialize the vector with scalar values. │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _2_9_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__vveeccttoorrss(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( const unsigned _i_n_t  nn ) inline │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( _c_o_n_s_t unsigned _i_n_t  nn ) inline │ │ │ │ │ >::initialize_vectors │ │ │ │ │ Initialize the vector with vector values. │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _3_0_0 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__mmaattrriicceess(()) [[11//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( const unsigned _i_n_t  nn, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( _c_o_n_s_t unsigned _i_n_t  nn, │ │ │ │ │ initialize_matrices inline │ │ │ │ │ _b_o_o_l  bbootthh  │ │ │ │ │ ) │ │ │ │ │ Allocate n local matrices. Additionally, set their block row and column │ │ │ │ │ coordinates to zero. The matrices themselves are resized by _r_e_i_n_i_t_(_). │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _3_6_1 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__mmaattrriicceess(()) [[22//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( const _M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< mmaattrriicceess, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e MatrixType > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( _c_o_n_s_t _M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< mmaattrriicceess, │ │ │ │ │ number >::initialize_matrices MatrixType > &  inline │ │ │ │ │ _b_o_o_l  bbootthh  │ │ │ │ │ ) │ │ │ │ │ Allocate a local matrix for each of the global ones in matrices. Additionally, │ │ │ │ │ set their block row and column coordinates. The matrices themselves are resized │ │ │ │ │ by _r_e_i_n_i_t_(_). │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _3_0_9 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__mmaattrriicceess(()) [[33//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( const _M_G_M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< mmaattrriicceess, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e MatrixType > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< ( _c_o_n_s_t _M_G_M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r< mmaattrriicceess, │ │ │ │ │ number >::initialize_matrices MatrixType > &  inline │ │ │ │ │ _b_o_o_l  bbootthh  │ │ │ │ │ ) │ │ │ │ │ Allocate a local matrix for each of the global level objects in matrices. │ │ │ │ │ Additionally, set their block row and column coordinates. The matrices │ │ │ │ │ themselves are resized by _r_e_i_n_i_t_(_). │ │ │ │ │ Note │ │ │ │ │ This function is usually only called by the assembler. │ │ │ │ │ Definition at line _3_3_5 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? iinniittiiaalliizzee__qquuaaddrraattuurree(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( const unsigned _i_n_t  nnpp, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >:: ( _c_o_n_s_t unsigned _i_n_t  nnpp, │ │ │ │ │ initialize_quadrature inline │ │ │ │ │ - const unsigned _i_n_t  nnvv  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  nnvv  │ │ │ │ │ ) │ │ │ │ │ Initialize quadrature values to nv values in np quadrature points. │ │ │ │ │ Definition at line _3_8_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( const _B_l_o_c_k_I_n_d_i_c_e_s &  llooccaall__ssiizzeess ) │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number ( _c_o_n_s_t _B_l_o_c_k_I_n_d_i_c_e_s &  llooccaall__ssiizzeess ) │ │ │ │ │ >::reinit │ │ │ │ │ Reinitialize matrices for new cell. Does not resize any of the data vectors │ │ │ │ │ stored in this object, but resizes the vectors in _R and the matrices in _M_1 and │ │ │ │ │ _M_2 for hp and sets them to zero. │ │ │ │ │ Definition at line _2_7 of file _m_e_s_h___w_o_r_k_e_r_._c_c. │ │ │ │ │ ********** _?◆_? pprriinntt__ddeebbuugg(()) ********** │ │ │ │ │ -template │ │ │ │ │ -template │ │ │ │ │ -void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::print_debug ( StreamType &  ooss ) const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ +void _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::print_debug ( _S_t_r_e_a_m_T_y_p_e &  ooss ) const │ │ │ │ │ Definition at line _5_2_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? mmeemmoorryy__ccoonnssuummppttiioonn(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::size_t _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::memory_consumption ( ) const │ │ │ │ │ The memory used by this object. │ │ │ │ │ Definition at line _4_5 of file _m_e_s_h___w_o_r_k_e_r_._c_c. │ │ │ │ │ ********** MMeemmbbeerr DDaattaa DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? JJ ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::vector _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::J private │ │ │ │ │ The local numbers, computed on a cell or on a face. │ │ │ │ │ Definition at line _2_6_0 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? RR ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::vector<_B_l_o_c_k_V_e_c_t_o_r > _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::R private │ │ │ │ │ The local vectors. This field is public, so that local integrators can write to │ │ │ │ │ it. │ │ │ │ │ Definition at line _2_6_6 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? MM11 ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::vector<_M_a_t_r_i_x_B_l_o_c_k<_F_u_l_l_M_a_t_r_i_x > > _M_e_s_h_W_o_r_k_e_r_:_: private │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number >::M1 │ │ │ │ │ The local matrices coupling degrees of freedom in the cell itself or within the │ │ │ │ │ first cell on a face. │ │ │ │ │ Definition at line _2_7_2 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? MM22 ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ std::vector<_M_a_t_r_i_x_B_l_o_c_k<_F_u_l_l_M_a_t_r_i_x > > _M_e_s_h_W_o_r_k_e_r_:_: private │ │ │ │ │ _L_o_c_a_l_R_e_s_u_l_t_s< number >::M2 │ │ │ │ │ The local matrices coupling test functions on the cell with trial functions on │ │ │ │ │ the other cell. │ │ │ │ │ Only used on interior faces. │ │ │ │ │ Definition at line _2_8_0 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ ********** _?◆_? qquuaaddrraattuurree__ddaattaa ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ _T_a_b_l_e<2, number> _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s< number >::quadrature_data private │ │ │ │ │ Values in quadrature points for writing into patch data. │ │ │ │ │ Definition at line _2_8_5 of file _l_o_c_a_l___r_e_s_u_l_t_s_._h. │ │ │ │ │ =============================================================================== │ │ │ │ │ The documentation for this class was generated from the following files: │ │ │ │ │ * include/deal.II/meshworker/_l_o_c_a_l___r_e_s_u_l_t_s_._h │ │ │ │ │ * source/meshworker/_m_e_s_h___w_o_r_k_e_r_._c_c │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1MPI_1_1Vector.html │ │ │ │ @@ -128,204 +128,204 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [legend]
    │ │ │ │
    Table<2, number> MeshWorker::LocalResults< number >::quadrature_data
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Types

    using size_type = types::global_dof_index
    using size_type = types::global_dof_index
     
    using value_type = PetscScalar
    using value_type = PetscScalar
     
    using real_type = PetscReal
    using real_type = PetscReal
     
    using reference = internal::VectorReference
    using reference = internal::VectorReference
     
    using const_reference = const internal::VectorReference
    using const_reference = const internal::VectorReference
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Member Functions

     Vector ()
     
     Vector (const MPI_Comm communicator, const size_type n, const size_type locally_owned_size)
     Vector (const MPI_Comm communicator, const size_type n, const size_type locally_owned_size)
     
    template<typename Number >
     Vector (const MPI_Comm communicator, const ::Vector< Number > &v, const size_type locally_owned_size)
    template<typename Number >
     Vector (const MPI_Comm communicator, const ::Vector< Number > &v, const size_type locally_owned_size)
     
     Vector (const IndexSet &local, const IndexSet &ghost, const MPI_Comm communicator)
     Vector (const IndexSet &local, const IndexSet &ghost, const MPI_Comm communicator)
     
     Vector (const IndexSet &local, const MPI_Comm communicator)
     Vector (const IndexSet &local, const MPI_Comm communicator)
     
     Vector (const Vector &v)
     Vector (const Vector &v)
     
    virtual void clear () override
    virtual void clear () override
     
    Vectoroperator= (const Vector &v)
    Vectoroperator= (const Vector &v)
     
    Vectoroperator= (const PetscScalar s)
    Vectoroperator= (const PetscScalar s)
     
    template<typename number >
    Vectoroperator= (const ::Vector< number > &v)
    template<typename number >
    Vectoroperator= (const ::Vector< number > &v)
     
    void reinit (const MPI_Comm communicator, const size_type N, const size_type locally_owned_size, const bool omit_zeroing_entries=false)
    void reinit (const MPI_Comm communicator, const size_type N, const size_type locally_owned_size, const bool omit_zeroing_entries=false)
     
    void reinit (const Vector &v, const bool omit_zeroing_entries=false)
    void reinit (const Vector &v, const bool omit_zeroing_entries=false)
     
    void reinit (const IndexSet &local, const IndexSet &ghost, const MPI_Comm communicator)
    void reinit (const IndexSet &local, const IndexSet &ghost, const MPI_Comm communicator)
     
    void reinit (const IndexSet &local, const MPI_Comm communicator)
    void reinit (const IndexSet &local, const MPI_Comm communicator)
     
    void reinit (const std::shared_ptr< const Utilities::MPI::Partitioner > &partitioner, const bool make_ghosted=true)
    void reinit (const std::shared_ptr< const Utilities::MPI::Partitioner > &partitioner, const bool make_ghosted=true)
     
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
     
    bool all_zero () const
    bool all_zero () const
     
     VectorBase ()
     
     VectorBase (const VectorBase &v)
     VectorBase (const VectorBase &v)
     
     VectorBase (const Vec &v)
     VectorBase (const Vec &v)
     
    void reinit (Vec v)
     
    void compress (const VectorOperation::values operation)
    void compress (const VectorOperation::values operation)
     
    bool operator== (const VectorBase &v) const
    bool operator== (const VectorBase &v) const
     
    bool operator!= (const VectorBase &v) const
    bool operator!= (const VectorBase &v) const
     
    size_type size () const override
    size_type size () const override
     
    size_type locally_owned_size () const
    size_type locally_owned_size () const
     
    std::pair< size_type, size_typelocal_range () const
    std::pair< size_type, size_typelocal_range () const
     
    bool in_local_range (const size_type index) const
    bool in_local_range (const size_type index) const
     
    IndexSet locally_owned_elements () const
    IndexSet locally_owned_elements () const
     
    bool has_ghost_elements () const
    bool has_ghost_elements () const
     
    const IndexSetghost_elements () const
    const IndexSetghost_elements () const
     
    void update_ghost_values () const
    void update_ghost_values () const
     
    reference operator() (const size_type index)
    reference operator() (const size_type index)
     
    PetscScalar operator() (const size_type index) const
    PetscScalar operator() (const size_type index) const
     
    reference operator[] (const size_type index)
    reference operator[] (const size_type index)
     
    PetscScalar operator[] (const size_type index) const
    PetscScalar operator[] (const size_type index) const
     
    void set (const std::vector< size_type > &indices, const std::vector< PetscScalar > &values)
    void set (const std::vector< size_type > &indices, const std::vector< PetscScalar > &values)
     
    void extract_subvector_to (const std::vector< size_type > &indices, std::vector< PetscScalar > &values) const
    void extract_subvector_to (const std::vector< size_type > &indices, std::vector< PetscScalar > &values) const
     
    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< PetscScalar > &elements) const override
    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< PetscScalar > &elements) const override
     
    template<typename ForwardIterator , typename OutputIterator >
    void extract_subvector_to (const ForwardIterator indices_begin, const ForwardIterator indices_end, OutputIterator values_begin) const
    template<typename ForwardIterator , typename OutputIterator >
    void extract_subvector_to (const ForwardIterator indices_begin, const ForwardIterator indices_end, OutputIterator values_begin) const
     
    void add (const std::vector< size_type > &indices, const std::vector< PetscScalar > &values)
    void add (const std::vector< size_type > &indices, const std::vector< PetscScalar > &values)
     
    void add (const std::vector< size_type > &indices, const ::Vector< PetscScalar > &values)
    void add (const std::vector< size_type > &indices, const ::Vector< PetscScalar > &values)
     
    void add (const size_type n_elements, const size_type *indices, const PetscScalar *values)
    void add (const size_type n_elements, const size_type *indices, const PetscScalar *values)
     
    void add (const PetscScalar s)
    void add (const PetscScalar s)
     
    void add (const PetscScalar a, const VectorBase &V)
    void add (const PetscScalar a, const VectorBase &V)
     
    void add (const PetscScalar a, const VectorBase &V, const PetscScalar b, const VectorBase &W)
    void add (const PetscScalar a, const VectorBase &V, const PetscScalar b, const VectorBase &W)
     
    PetscScalar operator* (const VectorBase &vec) const
    PetscScalar operator* (const VectorBase &vec) const
     
    real_type norm_sqr () const
    real_type norm_sqr () const
     
    PetscScalar mean_value () const
    PetscScalar mean_value () const
     
    real_type l1_norm () const
    real_type l1_norm () const
     
    real_type l2_norm () const
    real_type l2_norm () const
     
    real_type lp_norm (const real_type p) const
    real_type lp_norm (const real_type p) const
     
    real_type linfty_norm () const
    real_type linfty_norm () const
     
    PetscScalar add_and_dot (const PetscScalar a, const VectorBase &V, const VectorBase &W)
    PetscScalar add_and_dot (const PetscScalar a, const VectorBase &V, const VectorBase &W)
     
    VectorBaseoperator*= (const PetscScalar factor)
    VectorBaseoperator*= (const PetscScalar factor)
     
    VectorBaseoperator/= (const PetscScalar factor)
    VectorBaseoperator/= (const PetscScalar factor)
     
    VectorBaseoperator+= (const VectorBase &V)
    VectorBaseoperator+= (const VectorBase &V)
     
    VectorBaseoperator-= (const VectorBase &V)
    VectorBaseoperator-= (const VectorBase &V)
     
    void sadd (const PetscScalar s, const VectorBase &V)
    void sadd (const PetscScalar s, const VectorBase &V)
     
    void sadd (const PetscScalar s, const PetscScalar a, const VectorBase &V)
    void sadd (const PetscScalar s, const PetscScalar a, const VectorBase &V)
     
    void scale (const VectorBase &scaling_factors)
    void scale (const VectorBase &scaling_factors)
     
    void equ (const PetscScalar a, const VectorBase &V)
    void equ (const PetscScalar a, const VectorBase &V)
     
    void write_ascii (const PetscViewerFormat format=PETSC_VIEWER_DEFAULT)
    void write_ascii (const PetscViewerFormat format=PETSC_VIEWER_DEFAULT)
     
    template<class Archive >
    void save (Archive &ar, const unsigned int version) const
    template<class Archive >
    void save (Archive &ar, const unsigned int version) const
     
    template<class Archive >
    void load (Archive &ar, const unsigned int version)
    template<class Archive >
    void load (Archive &ar, const unsigned int version)
     
    template<class Archive >
    void serialize (Archive &archive, const unsigned int version)
    template<class Archive >
    void serialize (Archive &archive, const unsigned int version)
     
    void swap (VectorBase &v) noexcept
    void swap (VectorBase &v) noexcept
     
     operator const Vec & () const
     operator const Vec & () const
     
    Vec & petsc_vector ()
     
    std::size_t memory_consumption () const
    std::size_t memory_consumption () const
     
    MPI_Comm get_mpi_communicator () const
    MPI_Comm get_mpi_communicator () const
     
    Subscriptor functionality

    Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class.

    │ │ │ │
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    unsigned int n_subscriptions () const
    unsigned int n_subscriptions () const
     
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
     
    void list_subscribers () const
    void list_subscribers () const
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Public Member Functions

    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
     
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Protected Member Functions

    virtual void create_vector (const MPI_Comm comm, const size_type n, const size_type locally_owned_size)
    virtual void create_vector (const MPI_Comm comm, const size_type n, const size_type locally_owned_size)
     
    virtual void create_vector (const MPI_Comm comm, const size_type n, const size_type locally_owned_size, const IndexSet &ghostnodes)
    virtual void create_vector (const MPI_Comm comm, const size_type n, const size_type locally_owned_size, const IndexSet &ghostnodes)
     
    void do_set_add_operation (const size_type n_elements, const size_type *indices, const PetscScalar *values, const bool add_values)
    void do_set_add_operation (const size_type n_elements, const size_type *indices, const PetscScalar *values, const bool add_values)
     
    void determine_ghost_indices ()
     
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -335,66 +335,66 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Protected Attributes

    Vec vector
    IndexSet ghost_indices
     
    VectorOperation::values last_action
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Types

    using map_value_type = decltype(counter_map)::value_type
    using map_value_type = decltype(counter_map)::value_type
     
    using map_iterator = decltype(counter_map)::iterator
    using map_iterator = decltype(counter_map)::iterator
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Member Functions

    void check_no_subscribers () const noexcept
    void check_no_subscribers () const noexcept
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Attributes

    std::atomic< unsigned intcounter
     
    std::map< std::string, unsigned intcounter_map
     
    std::vector< std::atomic< bool > * > validity_pointers
     
    const std::type_info * object_info
    const std::type_info * object_info
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Private Attributes

    static std::mutex mutex
    static std::mutex mutex
     
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Related Symbols

    (Note that these are not member symbols.)

    │ │ │ │
    void swap (Vector &u, Vector &v)
    void swap (Vector &u, Vector &v)
     
    void swap (VectorBase &u, VectorBase &v) noexcept
    void swap (VectorBase &u, VectorBase &v) noexcept
     
    │ │ │ │

    Detailed Description

    │ │ │ │

    Implementation of a parallel vector class based on PETSC and using MPI communication to synchronize distributed operations. All the functionality is actually in the base class, except for the calls to generate a parallel vector. This is possible since PETSc only works on an abstract vector type and internally distributes to functions that do the actual work depending on the actual vector type (much like using virtual functions). Only the functions creating a vector of specific type differ, and are implemented in this particular class.

    │ │ │ │

    Parallel communication model

    │ │ │ │

    The parallel functionality of PETSc is built on top of the Message Passing Interface (MPI). MPI's communication model is built on collective communications: if one process wants something from another, that other process has to be willing to accept this communication. A process cannot query data from another process by calling a remote function, without that other process expecting such a transaction. The consequence is that most of the operations in the base class of this class have to be called collectively. For example, if you want to compute the l2 norm of a parallel vector, all processes across which this vector is shared have to call the l2_norm function. If you don't do this, but instead only call the l2_norm function on one process, then the following happens: This one process will call one of the collective MPI functions and wait for all the other processes to join in on this. Since the other processes don't call this function, you will either get a time-out on the first process, or, worse, by the time the next a call to a PETSc function generates an MPI message on the other processes, you will get a cryptic message that only a subset of processes attempted a communication. These bugs can be very hard to figure out, unless you are well-acquainted with the communication model of MPI, and know which functions may generate MPI messages.

    │ │ │ │

    One particular case, where an MPI message may be generated unexpectedly is discussed below.

    │ │ │ │

    Accessing individual elements of a vector

    │ │ │ │ -

    PETSc does allow read access to individual elements of a vector, but in the distributed case only to elements that are stored locally. We implement this through calls like d=vec(i). However, if you access an element outside the locally stored range, an exception is generated.

    │ │ │ │ -

    In contrast to read access, PETSc (and the respective deal.II wrapper classes) allow to write (or add) to individual elements of vectors, even if they are stored on a different process. You can do this writing, for example, vec(i)=d or vec(i)+=d, or similar operations. There is one catch, however, that may lead to very confusing error messages: PETSc requires application programs to call the compress() function when they switch from adding, to elements to writing to elements. The reasoning is that all processes might accumulate addition operations to elements, even if multiple processes write to the same elements. By the time we call compress() the next time, all these additions are executed. However, if one process adds to an element, and another overwrites to it, the order of execution would yield non-deterministic behavior if we don't make sure that a synchronization with compress() happens in between.

    │ │ │ │ +

    PETSc does allow read access to individual elements of a vector, but in the distributed case only to elements that are stored locally. We implement this through calls like d=vec(i). However, if you access an element outside the locally stored range, an exception is generated.

    │ │ │ │ +

    In contrast to read access, PETSc (and the respective deal.II wrapper classes) allow to write (or add) to individual elements of vectors, even if they are stored on a different process. You can do this writing, for example, vec(i)=d or vec(i)+=d, or similar operations. There is one catch, however, that may lead to very confusing error messages: PETSc requires application programs to call the compress() function when they switch from adding, to elements to writing to elements. The reasoning is that all processes might accumulate addition operations to elements, even if multiple processes write to the same elements. By the time we call compress() the next time, all these additions are executed. However, if one process adds to an element, and another overwrites to it, the order of execution would yield non-deterministic behavior if we don't make sure that a synchronization with compress() happens in between.

    │ │ │ │

    In order to make sure these calls to compress() happen at the appropriate time, the deal.II wrappers keep a state variable that store which is the presently allowed operation: additions or writes. If it encounters an operation of the opposite kind, it calls compress() and flips the state. This can sometimes lead to very confusing behavior, in code that may for example look like this:

    │ │ │ │
    ...
    │ │ │ │
    // do some write operations on the vector
    │ │ │ │
    for (unsigned int i=0; i<vector.size(); ++i)
    │ │ │ │
    vector(i) = i;
    │ │ │ │
    │ │ │ │
    // do some additions to vector elements, but only for some elements
    │ │ │ │
    for (unsigned int i=0; i<vector.size(); ++i)
    │ │ │ │ -
    if (some_condition(i) == true)
    │ │ │ │ +
    if (some_condition(i) == true)
    │ │ │ │
    vector(i) += 1;
    │ │ │ │
    │ │ │ │
    // do another collective operation
    │ │ │ │
    const double norm = vector.l2_norm();
    │ │ │ │ │ │ │ │ │ │ │ │

    This code can run into trouble: by the time we see the first addition operation, we need to flush the overwrite buffers for the vector, and the deal.II library will do so by calling compress(). However, it will only do so for all processes that actually do an addition – if the condition is never true for one of the processes, then this one will not get to the actual compress() call, whereas all the other ones do. This gets us into trouble, since all the other processes hang in the call to flush the write buffers, while the one other process advances to the call to compute the l2 norm. At this time, you will get an error that some operation was attempted by only a subset of processes. This behavior may seem surprising, unless you know that write/addition operations on single elements may trigger this behavior.

    │ │ │ │ @@ -406,15 +406,15 @@ │ │ │ │ │ │ │ │

    ◆ size_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::MPI::Vector::size_type = types::global_dof_indexusing PETScWrappers::MPI::Vector::size_type = types::global_dof_index
    │ │ │ │
    │ │ │ │

    Declare type for container size.

    │ │ │ │ │ │ │ │

    Definition at line 163 of file petsc_vector.h.

    │ │ │ │ │ │ │ │ @@ -426,15 +426,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::VectorBase::value_type = PetscScalarusing PETScWrappers::VectorBase::value_type = PetscScalar
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ @@ -451,15 +451,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::VectorBase::real_type = PetscRealusing PETScWrappers::VectorBase::real_type = PetscReal
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ @@ -475,15 +475,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::VectorBase::reference = internal::VectorReferenceusing PETScWrappers::VectorBase::reference = internal::VectorReference
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ @@ -499,15 +499,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::VectorBase::const_reference = const internal::VectorReferenceusing PETScWrappers::VectorBase::const_reference = const internal::VectorReference
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ @@ -523,15 +523,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_value_type = decltype(counter_map)::value_typeusing Subscriptor::map_value_type = decltype(counter_map)::value_type
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -548,15 +548,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_iterator = decltype(counter_map)::iteratorusing Subscriptor::map_iterator = decltype(counter_map)::iterator
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -596,27 +596,27 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -642,35 +642,35 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ Vector() [3/6]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number >
    │ │ │ │ +template<typename Number >
    │ │ │ │
    Vector< Number >::Vector (const MPI_Comm const MPI_Comm communicator,
    const size_type const size_type n,
    const size_type const size_type locally_owned_size 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -696,27 +696,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    PETScWrappers::MPI::Vector::Vector (const MPI_Comm const MPI_Comm communicator,
    const ::Vector< Number > & const ::Vector< Number > & v,
    const size_type const size_type locally_owned_size 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -740,21 +740,21 @@ │ │ │ │
    Vector< Number >::Vector (const IndexSetconst IndexSetlocal,
    const IndexSetconst IndexSetghost,
    const MPI_Comm const MPI_Comm communicator 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -777,15 +777,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    Vector< Number >::Vector (const IndexSetconst IndexSetlocal,
    const MPI_Comm const MPI_Comm communicator 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector< Number >::Vector (const Vectorconst Vectorv)
    │ │ │ │
    │ │ │ │

    Copy constructor.

    │ │ │ │ │ │ │ │ @@ -827,17 +827,17 @@ │ │ │ │ │ │ │ │

    ◆ operator=() [1/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & Vector< Number >::operator= Vector & Vector< Number >::operator= (const Vectorconst Vectorv)
    │ │ │ │
    │ │ │ │

    Copy the given vector. Resize the present vector if necessary. Also take over the MPI communicator of v.

    │ │ │ │

    The semantics of this operator are complex. If the two vectors have the same size, and if either the left or right hand side vector of the assignment (i.e., either the input vector on the right hand side, or the calling vector to the left of the assignment operator) currently has ghost elements, then the left hand side vector will also have ghost values and will consequently be a read-only vector (see also the glossary entry on the issue). Otherwise, the left hand vector will be a writable vector after this operation. These semantics facilitate having a vector with ghost elements on the left hand side of the assignment, and a vector without ghost elements on the right hand side, with the resulting left hand side vector having the correct values in both its locally owned and its ghost elements.

    │ │ │ │ @@ -850,17 +850,17 @@ │ │ │ │ │ │ │ │

    ◆ operator=() [2/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & PETScWrappers::MPI::Vector::operator= Vector & PETScWrappers::MPI::Vector::operator= (const PetscScalar const PetscScalar s)
    │ │ │ │
    │ │ │ │

    Set all components of the vector to the given number s. Simply pass this down to the base class, but we still need to declare this function to make the example given in the discussion about making the constructor explicit work.

    │ │ │ │ │ │ │ │ @@ -868,20 +868,20 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator=() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename number >
    │ │ │ │ +template<typename number >
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & PETScWrappers::MPI::Vector::operator= Vector & PETScWrappers::MPI::Vector::operator= (const ::Vector< number > & const ::Vector< number > & v)
    │ │ │ │
    │ │ │ │

    Copy the values of a deal.II vector (as opposed to those of the PETSc vector wrapper class) into this object.

    │ │ │ │

    Contrary to the case of sequential vectors, this operators requires that the present vector already has the correct size, since we need to have a partition and a communicator present which we otherwise can't get from the source vector.

    │ │ │ │ @@ -893,34 +893,34 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const MPI_Comm const MPI_Comm communicator,
    const size_type const size_type N,
    const size_type const size_type locally_owned_size,
    const bool omit_zeroing_entries = false const bool omit_zeroing_entries = false 
    )
    │ │ │ │ @@ -939,22 +939,22 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const Vectorconst Vectorv,
    const bool omit_zeroing_entries = false const bool omit_zeroing_entries = false 
    )
    │ │ │ │ @@ -971,27 +971,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1009,21 +1009,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::reinit (const IndexSetconst IndexSetlocal,
    const IndexSetconst IndexSetghost,
    const MPI_Comm const MPI_Comm communicator 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1041,22 +1041,22 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::reinit (const IndexSetconst IndexSetlocal,
    const MPI_Comm const MPI_Comm communicator 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const std::shared_ptr< const Utilities::MPI::Partitioner > & const std::shared_ptr< const Utilities::MPI::Partitioner > & partitioner,
    const bool make_ghosted = true const bool make_ghosted = true 
    )
    │ │ │ │ @@ -1079,28 +1079,28 @@ │ │ │ │
    (std::ostream & out,
    const unsigned int const unsigned int precision = 3,
    const bool scientific = true, const bool scientific = true,
    const bool across = true const bool across = true 
    ) const
    │ │ │ │ @@ -1143,27 +1143,27 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1188,33 +1188,33 @@ │ │ │ │
    void Vector< Number >::create_vector (const MPI_Comm const MPI_Comm comm,
    const size_type const size_type n,
    const size_type const size_type locally_owned_size 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1256,15 +1256,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::create_vector (const MPI_Comm const MPI_Comm comm,
    const size_type const size_type n,
    const size_type const size_type locally_owned_size,
    const IndexSetconst IndexSetghostnodes 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PETScWrappers::VectorBase::VectorBase (const VectorBaseconst VectorBasev)
    │ │ │ │
    │ │ │ │

    Import VectorBase constructors, including from a PETSc Vec object.

    │ │ │ │ │ │ │ │ @@ -1280,15 +1280,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1330,15 +1330,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PETScWrappers::VectorBase::VectorBase (const Vec & const Vec & v)
    │ │ │ │
    │ │ │ │ explicit
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1358,17 +1358,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::compress (const VectorOperation::values const VectorOperation::values operation)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1389,15 +1389,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool PETScWrappers::VectorBase::operator== bool PETScWrappers::VectorBase::operator== (const VectorBaseconst VectorBasev) const
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1505,15 +1505,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool PETScWrappers::VectorBase::operator!= (const VectorBaseconst VectorBasev) const
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1542,15 +1542,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool PETScWrappers::VectorBase::in_local_range (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │
    │ │ │ │ -

    Return an index set that describes which elements of this vector are owned by the current processor. Note that this index set does not include elements this vector may store locally as ghost elements but that are in fact owned by another processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set (vec.size())
    │ │ │ │ +

    Return an index set that describes which elements of this vector are owned by the current processor. Note that this index set does not include elements this vector may store locally as ghost elements but that are in fact owned by another processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set (vec.size())
    │ │ │ │
    IndexSet complete_index_set(const IndexSet::size_type N)
    Definition index_set.h:1204
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ has_ghost_elements()

    │ │ │ │ │ │ │ │ @@ -1584,15 +1584,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    const IndexSet & PETScWrappers::VectorBase::ghost_elements const IndexSet & PETScWrappers::VectorBase::ghost_elements () const
    │ │ │ │
    │ │ │ │ @@ -1636,17 +1636,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1663,17 +1663,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    reference PETScWrappers::VectorBase::operator() reference PETScWrappers::VectorBase::operator() (const size_type const size_type index)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1690,57 +1690,57 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PetscScalar PETScWrappers::VectorBase::operator() PetscScalar PETScWrappers::VectorBase::operator() (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    reference PETScWrappers::VectorBase::operator[] reference PETScWrappers::VectorBase::operator[] (const size_type const size_type index)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │
    │ │ │ │

    Provide access to a given element, both read and write.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator[]() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PetscScalar PETScWrappers::VectorBase::operator[] PetscScalar PETScWrappers::VectorBase::operator[] (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │
    │ │ │ │

    Provide read-only access to an element.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ set()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1748,21 +1748,21 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1787,15 +1787,15 @@ │ │ │ │
    void PETScWrappers::VectorBase::set (const std::vector< size_type > & const std::vector< size_type > & indices,
    const std::vector< PetscScalar > & const std::vector< PetscScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1808,15 +1808,15 @@ │ │ │ │
    void PETScWrappers::VectorBase::extract_subvector_to (const std::vector< size_type > & const std::vector< size_type > & indices,
    std::vector< PetscScalar > & values 
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │
    │ │ │ │ -

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. The indices of the elements to be read are stated in the first argument, the corresponding values are returned in the second.

    │ │ │ │ +

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. The indices of the elements to be read are stated in the first argument, the corresponding values are returned in the second.

    │ │ │ │

    If the current vector is called v, then this function is the equivalent to the code

    for (unsigned int i=0; i<indices.size(); ++i)
    │ │ │ │
    values[i] = v[indices[i]];
    │ │ │ │
    Precondition
    The sizes of the indices and values arrays must be identical.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -1825,17 +1825,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1860,57 +1860,57 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ extract_subvector_to() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename ForwardIterator , typename OutputIterator >
    │ │ │ │ +template<typename ForwardIterator , typename OutputIterator >
    │ │ │ │
    virtual void PETScWrappers::VectorBase::extract_subvector_to virtual void PETScWrappers::VectorBase::extract_subvector_to (const ArrayView< const types::global_dof_index > & const ArrayView< const types::global_dof_index > & indices,
    ArrayView< PetscScalar > & elements 
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::extract_subvector_to (const ForwardIterator const ForwardIterator indices_begin,
    const ForwardIterator const ForwardIterator indices_end,
    OutputIterator OutputIterator values_begin 
    ) const
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │
    │ │ │ │ -

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. In contrast to the previous function, this function obtains the indices of the elements by dereferencing all elements of the iterator range provided by the first two arguments, and puts the vector values into memory locations obtained by dereferencing a range of iterators starting at the location pointed to by the third argument.

    │ │ │ │ -

    If the current vector is called v, then this function is the equivalent to the code

    ForwardIterator indices_p = indices_begin;
    │ │ │ │ -
    OutputIterator values_p = values_begin;
    │ │ │ │ -
    while (indices_p != indices_end)
    │ │ │ │ +

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. In contrast to the previous function, this function obtains the indices of the elements by dereferencing all elements of the iterator range provided by the first two arguments, and puts the vector values into memory locations obtained by dereferencing a range of iterators starting at the location pointed to by the third argument.

    │ │ │ │ +

    If the current vector is called v, then this function is the equivalent to the code

    │ │ │ │ + │ │ │ │ + │ │ │ │
    {
    │ │ │ │ -
    *values_p = v[*indices_p];
    │ │ │ │ -
    ++indices_p;
    │ │ │ │ -
    ++values_p;
    │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
    }
    │ │ │ │
    Precondition
    It must be possible to write into as many memory locations starting at values_begin as there are iterators between indices_begin and indices_end.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ add() [1/6]

    │ │ │ │ @@ -1920,21 +1920,21 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1959,21 +1959,21 @@ │ │ │ │
    void PETScWrappers::VectorBase::add (const std::vector< size_type > & const std::vector< size_type > & indices,
    const std::vector< PetscScalar > & const std::vector< PetscScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1998,27 +1998,27 @@ │ │ │ │
    void PETScWrappers::VectorBase::add (const std::vector< size_type > & const std::vector< size_type > & indices,
    const ::Vector< PetscScalar > & const ::Vector< PetscScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2043,15 +2043,15 @@ │ │ │ │
    void PETScWrappers::VectorBase::add (const size_type const size_type n_elements,
    const size_typeconst size_typeindices,
    const PetscScalar * const PetscScalar * values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2072,21 +2072,21 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::add (const PetscScalar const PetscScalar s)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2111,33 +2111,33 @@ │ │ │ │
    void PETScWrappers::VectorBase::add (const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2160,17 +2160,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::add (const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV,
    const PetscScalar const PetscScalar b,
    const VectorBaseconst VectorBaseW 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2305,15 +2305,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PetscScalar PETScWrappers::VectorBase::operator* PetscScalar PETScWrappers::VectorBase::operator* (const VectorBaseconst VectorBasevec) const
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2362,27 +2362,27 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase::real_type PETScWrappers::VectorBase::lp_norm (const real_type const real_type p) const
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2409,17 +2409,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    PetscScalar PETScWrappers::VectorBase::add_and_dot (const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV,
    const VectorBaseconst VectorBaseW 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2438,17 +2438,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator*= VectorBase & PETScWrappers::VectorBase::operator*= (const PetscScalar const PetscScalar factor)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2467,17 +2467,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator/= VectorBase & PETScWrappers::VectorBase::operator/= (const PetscScalar const PetscScalar factor)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2496,17 +2496,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator+= VectorBase & PETScWrappers::VectorBase::operator+= (const VectorBaseconst VectorBaseV)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2527,21 +2527,21 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator-= VectorBase & PETScWrappers::VectorBase::operator-= (const VectorBaseconst VectorBaseV)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2566,27 +2566,27 @@ │ │ │ │
    void PETScWrappers::VectorBase::sadd (const PetscScalar const PetscScalar s,
    const VectorBaseconst VectorBaseV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2611,15 +2611,15 @@ │ │ │ │
    void PETScWrappers::VectorBase::sadd (const PetscScalar const PetscScalar s,
    const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2640,21 +2640,21 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::scale (const VectorBaseconst VectorBasescaling_factors)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2679,16 +2679,16 @@ │ │ │ │
    void PETScWrappers::VectorBase::equ (const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2702,29 +2702,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ save()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<class Archive >
    │ │ │ │ +template<class Archive >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::write_ascii (const PetscViewerFormat format = PETSC_VIEWER_DEFAULT)const PetscViewerFormat format = PETSC_VIEWER_DEFAULT)
    │ │ │ │
    │ │ │ │ inherited
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2742,29 +2742,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ load()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<class Archive >
    │ │ │ │ +template<class Archive >
    │ │ │ │
    void PETScWrappers::VectorBase::save (Archive & Archivear,
    const unsigned int const unsigned int version 
    ) const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2781,29 +2781,29 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ serialize()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<class Archive >
    │ │ │ │ +template<class Archive >
    │ │ │ │
    void PETScWrappers::VectorBase::load (Archive & Archivear,
    const unsigned int const unsigned int version 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2854,15 +2854,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::serialize (Archive & Archivearchive,
    const unsigned int const unsigned int version 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PETScWrappers::VectorBase::operator const Vec & PETScWrappers::VectorBase::operator const Vec & () const
    │ │ │ │
    │ │ │ │ @@ -2966,33 +2966,33 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -3146,15 +3146,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ list_subscribers() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename StreamType >
    │ │ │ │ +template<typename StreamType >
    │ │ │ │
    void PETScWrappers::VectorBase::do_set_add_operation (const size_type const size_type n_elements,
    const size_typeconst size_typeindices,
    const PetscScalar * const PetscScalar * values,
    const bool const bool add_values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -3498,15 +3498,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Subscriptor::list_subscribers (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    const std::type_info* Subscriptor::object_infoconst std::type_info* Subscriptor::object_info
    │ │ │ │
    │ │ │ │ mutableprivateinherited
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -17,289 +17,289 @@ │ │ │ │ │ _L_i_n_e_a_r_ _a_l_g_e_b_r_a_ _c_l_a_s_s_e_s » _P_E_T_S_c_W_r_a_p_p_e_r_s | _L_i_n_e_a_r_ _a_l_g_e_b_r_a_ _c_l_a_s_s_e_s » _V_e_c_t_o_r │ │ │ │ │ _c_l_a_s_s_e_s │ │ │ │ │ #include <_d_e_a_l_._I_I_/_l_a_c_/_p_e_t_s_c___v_e_c_t_o_r_._h> │ │ │ │ │ Inheritance diagram for PETScWrappers::MPI::Vector: │ │ │ │ │ [Inheritance graph] │ │ │ │ │ [_l_e_g_e_n_d] │ │ │ │ │ PPuubblliicc TTyyppeess │ │ │ │ │ -using  _s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │ +_u_s_i_n_g  _s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │   │ │ │ │ │ -using  _v_a_l_u_e___t_y_p_e = PetscScalar │ │ │ │ │ +_u_s_i_n_g  _v_a_l_u_e___t_y_p_e = PetscScalar │ │ │ │ │   │ │ │ │ │ -using  _r_e_a_l___t_y_p_e = PetscReal │ │ │ │ │ +_u_s_i_n_g  _r_e_a_l___t_y_p_e = PetscReal │ │ │ │ │   │ │ │ │ │ -using  _r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │ +_u_s_i_n_g  _r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │   │ │ │ │ │ -using  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = const internal::VectorReference │ │ │ │ │ +_u_s_i_n_g  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = _c_o_n_s_t internal::VectorReference │ │ │ │ │   │ │ │ │ │ PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │   _V_e_c_t_o_r () │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _M_P_I___C_o_m_m communicator, const │ │ │ │ │ - _s_i_z_e___t_y_p_e n, const _s_i_z_e___t_y_p_e │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _M_P_I___C_o_m_m communicator, _c_o_n_s_t │ │ │ │ │ + _s_i_z_e___t_y_p_e n, _c_o_n_s_t _s_i_z_e___t_y_p_e │ │ │ │ │ _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ -   _V_e_c_t_o_r (const _M_P_I___C_o_m_m communicator, const │ │ │ │ │ - _:_:_V_e_c_t_o_r< Number > &v, const _s_i_z_e___t_y_p_e │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number > │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _M_P_I___C_o_m_m communicator, _c_o_n_s_t │ │ │ │ │ + _:_:_V_e_c_t_o_r< Number > &v, _c_o_n_s_t _s_i_z_e___t_y_p_e │ │ │ │ │ _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _I_n_d_e_x_S_e_t &local, const │ │ │ │ │ - _I_n_d_e_x_S_e_t &ghost, const _M_P_I___C_o_m_m │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _I_n_d_e_x_S_e_t &local, _c_o_n_s_t │ │ │ │ │ + _I_n_d_e_x_S_e_t &ghost, _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ communicator) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _I_n_d_e_x_S_e_t &local, const │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _I_n_d_e_x_S_e_t &local, _c_o_n_s_t │ │ │ │ │ _M_P_I___C_o_m_m communicator) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _V_e_c_t_o_r &v) │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _V_e_c_t_o_r &v) │ │ │ │ │   │ │ │ │ │ - virtual void  _c_l_e_a_r () override │ │ │ │ │ + _v_i_r_t_u_a_l void  _c_l_e_a_r () _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const _V_e_c_t_o_r &v) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t _V_e_c_t_o_r &v) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const PetscScalar s) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t PetscScalar s) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const _:_:_V_e_c_t_o_r< number > &v) │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t _:_:_V_e_c_t_o_r< number > &v) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _M_P_I___C_o_m_m communicator, const │ │ │ │ │ - _s_i_z_e___t_y_p_e N, const _s_i_z_e___t_y_p_e │ │ │ │ │ - _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e, const _b_o_o_l │ │ │ │ │ - omit_zeroing_entries=false) │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _M_P_I___C_o_m_m communicator, _c_o_n_s_t │ │ │ │ │ + _s_i_z_e___t_y_p_e N, _c_o_n_s_t _s_i_z_e___t_y_p_e │ │ │ │ │ + _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _V_e_c_t_o_r &v, const _b_o_o_l │ │ │ │ │ - omit_zeroing_entries=false) │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _V_e_c_t_o_r &v, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _I_n_d_e_x_S_e_t &local, const │ │ │ │ │ - _I_n_d_e_x_S_e_t &ghost, const _M_P_I___C_o_m_m │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _I_n_d_e_x_S_e_t &local, _c_o_n_s_t │ │ │ │ │ + _I_n_d_e_x_S_e_t &ghost, _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ communicator) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _I_n_d_e_x_S_e_t &local, const │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _I_n_d_e_x_S_e_t &local, _c_o_n_s_t │ │ │ │ │ _M_P_I___C_o_m_m communicator) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const std::shared_ptr< const │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t std::shared_ptr< _c_o_n_s_t │ │ │ │ │ _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_P_a_r_t_i_t_i_o_n_e_r > &partitioner, │ │ │ │ │ - const _b_o_o_l make_ghosted=true) │ │ │ │ │ + _c_o_n_s_t _b_o_o_l _m_a_k_e___g_h_o_s_t_e_d=_t_r_u_e) │ │ │ │ │   │ │ │ │ │ - void  _p_r_i_n_t (std::ostream &out, const unsigned _i_n_t │ │ │ │ │ - precision=3, const _b_o_o_l scientific=true, │ │ │ │ │ - const _b_o_o_l across=true) const │ │ │ │ │ + void  _p_r_i_n_t (std::ostream &out, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ + precision=3, _c_o_n_s_t _b_o_o_l scientific=_t_r_u_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l _a_c_r_o_s_s=_t_r_u_e) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _a_l_l___z_e_r_o () const │ │ │ │ │ + _b_o_o_l  _a_l_l___z_e_r_o () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │   _V_e_c_t_o_r_B_a_s_e () │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r_B_a_s_e (const _V_e_c_t_o_r_B_a_s_e &v) │ │ │ │ │ +   _V_e_c_t_o_r_B_a_s_e (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &v) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r_B_a_s_e (const Vec &v) │ │ │ │ │ +   _V_e_c_t_o_r_B_a_s_e (_c_o_n_s_t Vec &v) │ │ │ │ │   │ │ │ │ │ void  _r_e_i_n_i_t (Vec v) │ │ │ │ │   │ │ │ │ │ - void  _c_o_m_p_r_e_s_s (const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ + void  _c_o_m_p_r_e_s_s (_c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ operation) │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _o_p_e_r_a_t_o_r_=_= (const _V_e_c_t_o_r_B_a_s_e &v) const │ │ │ │ │ + _b_o_o_l  _o_p_e_r_a_t_o_r_=_= (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &v) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _o_p_e_r_a_t_o_r_!_= (const _V_e_c_t_o_r_B_a_s_e &v) const │ │ │ │ │ + _b_o_o_l  _o_p_e_r_a_t_o_r_!_= (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &v) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _s_i_z_e___t_y_p_e  _s_i_z_e () const override │ │ │ │ │ + _s_i_z_e___t_y_p_e  _s_i_z_e () _c_o_n_s_t _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ - _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () const │ │ │ │ │ + _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -std::pair< _s_i_z_e___t_y_p_e, _s_i_z_e___t_y_p_e >  _l_o_c_a_l___r_a_n_g_e () const │ │ │ │ │ +std::pair< _s_i_z_e___t_y_p_e, _s_i_z_e___t_y_p_e >  _l_o_c_a_l___r_a_n_g_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _i_n___l_o_c_a_l___r_a_n_g_e (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + _b_o_o_l  _i_n___l_o_c_a_l___r_a_n_g_e (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - const _I_n_d_e_x_S_e_t &  _g_h_o_s_t___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _c_o_n_s_t _I_n_d_e_x_S_e_t &  _g_h_o_s_t___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _u_p_d_a_t_e___g_h_o_s_t___v_a_l_u_e_s () const │ │ │ │ │ + void  _u_p_d_a_t_e___g_h_o_s_t___v_a_l_u_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - PetscScalar  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + PetscScalar  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - PetscScalar  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + PetscScalar  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _s_e_t (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const std::vector< PetscScalar > │ │ │ │ │ + void  _s_e_t (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t std::vector< PetscScalar > │ │ │ │ │ &values) │ │ │ │ │   │ │ │ │ │ - void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const std::vector< │ │ │ │ │ + void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t std::vector< │ │ │ │ │ _s_i_z_e___t_y_p_e > &indices, std::vector< │ │ │ │ │ - PetscScalar > &values) const │ │ │ │ │ + PetscScalar > &values) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - virtual void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const _A_r_r_a_y_V_i_e_w< const │ │ │ │ │ + _v_i_r_t_u_a_l void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t _A_r_r_a_y_V_i_e_w< _c_o_n_s_t │ │ │ │ │ _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x > &indices, │ │ │ │ │ - _A_r_r_a_y_V_i_e_w< PetscScalar > &elements) const │ │ │ │ │ - override │ │ │ │ │ + _A_r_r_a_y_V_i_e_w< PetscScalar > &elements) _c_o_n_s_t │ │ │ │ │ + _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const ForwardIterator │ │ │ │ │ - indices_begin, const ForwardIterator │ │ │ │ │ - indices_end, OutputIterator values_begin) │ │ │ │ │ - const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r , _t_y_p_e_n_a_m_e _O_u_t_p_u_t_I_t_e_r_a_t_o_r > │ │ │ │ │ + void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r │ │ │ │ │ + _i_n_d_i_c_e_s___b_e_g_i_n, _c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r │ │ │ │ │ + _i_n_d_i_c_e_s___e_n_d, _O_u_t_p_u_t_I_t_e_r_a_t_o_r _v_a_l_u_e_s___b_e_g_i_n) │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const std::vector< PetscScalar > │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t std::vector< PetscScalar > │ │ │ │ │ &values) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const _:_:_V_e_c_t_o_r< PetscScalar > │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t _:_:_V_e_c_t_o_r< PetscScalar > │ │ │ │ │ &values) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const _s_i_z_e___t_y_p_e n_elements, const │ │ │ │ │ - _s_i_z_e___t_y_p_e *indices, const PetscScalar │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t _s_i_z_e___t_y_p_e n_elements, _c_o_n_s_t │ │ │ │ │ + _s_i_z_e___t_y_p_e *indices, _c_o_n_s_t PetscScalar │ │ │ │ │ *values) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const PetscScalar s) │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t PetscScalar s) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const PetscScalar a, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t PetscScalar a, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const PetscScalar a, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ - &V, const PetscScalar b, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t PetscScalar a, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + &V, _c_o_n_s_t PetscScalar b, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ &W) │ │ │ │ │   │ │ │ │ │ - PetscScalar  _o_p_e_r_a_t_o_r_* (const _V_e_c_t_o_r_B_a_s_e &vec) const │ │ │ │ │ + PetscScalar  _o_p_e_r_a_t_o_r_* (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &_v_e_c) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _n_o_r_m___s_q_r () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _n_o_r_m___s_q_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - PetscScalar  _m_e_a_n___v_a_l_u_e () const │ │ │ │ │ + PetscScalar  _m_e_a_n___v_a_l_u_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_1___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_1___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_2___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_2___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_p___n_o_r_m (const _r_e_a_l___t_y_p_e p) const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_p___n_o_r_m (_c_o_n_s_t _r_e_a_l___t_y_p_e p) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_i_n_f_t_y___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_i_n_f_t_y___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - PetscScalar  _a_d_d___a_n_d___d_o_t (const PetscScalar a, const │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &V, const _V_e_c_t_o_r_B_a_s_e &W) │ │ │ │ │ + PetscScalar  _a_d_d___a_n_d___d_o_t (_c_o_n_s_t PetscScalar a, _c_o_n_s_t │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &V, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &W) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_*_= (const PetscScalar factor) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_*_= (_c_o_n_s_t PetscScalar factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_/_= (const PetscScalar factor) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_/_= (_c_o_n_s_t PetscScalar factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_+_= (const _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_+_= (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_-_= (const _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_-_= (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │   │ │ │ │ │ - void  _s_a_d_d (const PetscScalar s, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + void  _s_a_d_d (_c_o_n_s_t PetscScalar s, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ - void  _s_a_d_d (const PetscScalar s, const PetscScalar │ │ │ │ │ - a, const _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │ + void  _s_a_d_d (_c_o_n_s_t PetscScalar s, _c_o_n_s_t PetscScalar │ │ │ │ │ + a, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │   │ │ │ │ │ - void  _s_c_a_l_e (const _V_e_c_t_o_r_B_a_s_e &scaling_factors) │ │ │ │ │ + void  _s_c_a_l_e (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &_s_c_a_l_i_n_g___f_a_c_t_o_r_s) │ │ │ │ │   │ │ │ │ │ - void  _e_q_u (const PetscScalar a, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + void  _e_q_u (_c_o_n_s_t PetscScalar a, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ - void  _w_r_i_t_e___a_s_c_i_i (const PetscViewerFormat │ │ │ │ │ - format=PETSC_VIEWER_DEFAULT) │ │ │ │ │ + void  _w_r_i_t_e___a_s_c_i_i (_c_o_n_s_t _P_e_t_s_c_V_i_e_w_e_r_F_o_r_m_a_t │ │ │ │ │ + _f_o_r_m_a_t=_P_E_T_S_C___V_I_E_W_E_R___D_E_F_A_U_L_T) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _s_a_v_e (Archive &ar, const unsigned _i_n_t │ │ │ │ │ - version) const │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ + void  _s_a_v_e (_A_r_c_h_i_v_e &_a_r, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ + version) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _l_o_a_d (Archive &ar, const unsigned _i_n_t │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ + void  _l_o_a_d (_A_r_c_h_i_v_e &_a_r, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ version) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _s_e_r_i_a_l_i_z_e (Archive &archive, const unsigned │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ + void  _s_e_r_i_a_l_i_z_e (_A_r_c_h_i_v_e &_a_r_c_h_i_v_e, _c_o_n_s_t unsigned │ │ │ │ │ _i_n_t version) │ │ │ │ │   │ │ │ │ │ - void  _s_w_a_p (_V_e_c_t_o_r_B_a_s_e &v) noexcept │ │ │ │ │ + void  _s_w_a_p (_V_e_c_t_o_r_B_a_s_e &v) _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ -   _o_p_e_r_a_t_o_r_ _c_o_n_s_t_ _V_e_c_ _& () const │ │ │ │ │ +   _o_p_e_r_a_t_o_r_ _c_o_n_s_t_ _V_e_c_ _& () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Vec &  _p_e_t_s_c___v_e_c_t_o_r () │ │ │ │ │   │ │ │ │ │ - std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () const │ │ │ │ │ + std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () const │ │ │ │ │ + _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Subscriptor functionality │ │ │ │ │ Classes derived from _S_u_b_s_c_r_i_p_t_o_r provide a facility to subscribe to this │ │ │ │ │ object. This is mostly used by the _S_m_a_r_t_P_o_i_n_t_e_r class. │ │ │ │ │ - void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const │ │ │ │ │ - validity, const std::string &identifier="") │ │ │ │ │ - const │ │ │ │ │ + void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t │ │ │ │ │ + _v_a_l_i_d_i_t_y, _c_o_n_s_t std::string &_i_d_e_n_t_i_f_i_e_r="") │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const │ │ │ │ │ - validity, const std::string &identifier="") │ │ │ │ │ - const │ │ │ │ │ + void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t │ │ │ │ │ + _v_a_l_i_d_i_t_y, _c_o_n_s_t std::string &_i_d_e_n_t_i_f_i_e_r="") │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () const │ │ │ │ │ + unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (StreamType &stream) const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (_S_t_r_e_a_m_T_y_p_e &stream) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () const │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t arg1, std::string arg2, std::string │ │ │ │ │ - arg3) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t _a_r_g_1, std::string _a_r_g_2, std::string │ │ │ │ │ + _a_r_g_3) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string arg1, std::string arg2) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string _a_r_g_1, std::string _a_r_g_2) │ │ │ │ │   │ │ │ │ │ PPrrootteecctteedd MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -virtual void  _c_r_e_a_t_e___v_e_c_t_o_r (const _M_P_I___C_o_m_m comm, const _s_i_z_e___t_y_p_e n, const │ │ │ │ │ +_v_i_r_t_u_a_l void  _c_r_e_a_t_e___v_e_c_t_o_r (_c_o_n_s_t _M_P_I___C_o_m_m comm, _c_o_n_s_t _s_i_z_e___t_y_p_e n, _c_o_n_s_t │ │ │ │ │ _s_i_z_e___t_y_p_e _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e) │ │ │ │ │   │ │ │ │ │ -virtual void  _c_r_e_a_t_e___v_e_c_t_o_r (const _M_P_I___C_o_m_m comm, const _s_i_z_e___t_y_p_e n, const │ │ │ │ │ - _s_i_z_e___t_y_p_e _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e, const _I_n_d_e_x_S_e_t &ghostnodes) │ │ │ │ │ +_v_i_r_t_u_a_l void  _c_r_e_a_t_e___v_e_c_t_o_r (_c_o_n_s_t _M_P_I___C_o_m_m comm, _c_o_n_s_t _s_i_z_e___t_y_p_e n, _c_o_n_s_t │ │ │ │ │ + _s_i_z_e___t_y_p_e _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e, _c_o_n_s_t _I_n_d_e_x_S_e_t &_g_h_o_s_t_n_o_d_e_s) │ │ │ │ │   │ │ │ │ │ - void  _d_o___s_e_t___a_d_d___o_p_e_r_a_t_i_o_n (const _s_i_z_e___t_y_p_e n_elements, const _s_i_z_e___t_y_p_e │ │ │ │ │ - *indices, const PetscScalar *values, const _b_o_o_l add_values) │ │ │ │ │ + void  _d_o___s_e_t___a_d_d___o_p_e_r_a_t_i_o_n (_c_o_n_s_t _s_i_z_e___t_y_p_e n_elements, _c_o_n_s_t _s_i_z_e___t_y_p_e │ │ │ │ │ + *indices, _c_o_n_s_t PetscScalar *values, _c_o_n_s_t _b_o_o_l _a_d_d___v_a_l_u_e_s) │ │ │ │ │   │ │ │ │ │ void  _d_e_t_e_r_m_i_n_e___g_h_o_s_t___i_n_d_i_c_e_s () │ │ │ │ │   │ │ │ │ │ PPrrootteecctteedd AAttttrriibbuutteess │ │ │ │ │ Vec  _v_e_c_t_o_r │ │ │ │ │   │ │ │ │ │ _b_o_o_l  _g_h_o_s_t_e_d │ │ │ │ │   │ │ │ │ │ _I_n_d_e_x_S_e_t  _g_h_o_s_t___i_n_d_i_c_e_s │ │ │ │ │   │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  _l_a_s_t___a_c_t_i_o_n │ │ │ │ │   │ │ │ │ │ PPrriivvaattee TTyyppeess │ │ │ │ │ -using  _m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g  _m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │   │ │ │ │ │ -using  _m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p)::iterator │ │ │ │ │ +_u_s_i_n_g  _m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)::iterator │ │ │ │ │   │ │ │ │ │ PPrriivvaattee MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () const noexcept │ │ │ │ │ +void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ std::atomic< unsigned _i_n_t >  _c_o_u_n_t_e_r │ │ │ │ │   │ │ │ │ │ std::map< std::string, unsigned _i_n_t >  _c_o_u_n_t_e_r___m_a_p │ │ │ │ │   │ │ │ │ │ std::vector< std::atomic< _b_o_o_l > * >  _v_a_l_i_d_i_t_y___p_o_i_n_t_e_r_s │ │ │ │ │   │ │ │ │ │ - const std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │ + _c_o_n_s_t std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ -static std::mutex  _m_u_t_e_x │ │ │ │ │ +_s_t_a_t_i_c std::mutex  _m_u_t_e_x │ │ │ │ │   │ │ │ │ │ RReellaatteedd SSyymmbboollss │ │ │ │ │ (Note that these are not member symbols.) │ │ │ │ │ -void  _s_w_a_p (_V_e_c_t_o_r &u, _V_e_c_t_o_r &v) │ │ │ │ │ +void  _s_w_a_p (_V_e_c_t_o_r &_u, _V_e_c_t_o_r &v) │ │ │ │ │   │ │ │ │ │ -void  _s_w_a_p (_V_e_c_t_o_r_B_a_s_e &u, _V_e_c_t_o_r_B_a_s_e &v) noexcept │ │ │ │ │ +void  _s_w_a_p (_V_e_c_t_o_r_B_a_s_e &_u, _V_e_c_t_o_r_B_a_s_e &v) _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ Implementation of a parallel vector class based on PETSC and using _M_P_I │ │ │ │ │ communication to synchronize distributed operations. All the functionality is │ │ │ │ │ actually in the base class, except for the calls to generate a parallel vector. │ │ │ │ │ This is possible since PETSc only works on an abstract vector type and │ │ │ │ │ internally distributes to functions that do the actual work depending on the │ │ │ │ │ @@ -326,20 +326,20 @@ │ │ │ │ │ very hard to figure out, unless you are well-acquainted with the communication │ │ │ │ │ model of _M_P_I, and know which functions may generate _M_P_I messages. │ │ │ │ │ One particular case, where an _M_P_I message may be generated unexpectedly is │ │ │ │ │ discussed below. │ │ │ │ │ ******** AAcccceessssiinngg iinnddiivviidduuaall eelleemmeennttss ooff aa vveeccttoorr ******** │ │ │ │ │ PETSc does allow read access to individual elements of a vector, but in the │ │ │ │ │ distributed case only to elements that are stored locally. We implement this │ │ │ │ │ -through calls like d=vec(i). However, if you access an element outside the │ │ │ │ │ +through calls like d=_v_e_c_(_i_). However, if you access an element outside the │ │ │ │ │ locally stored range, an exception is generated. │ │ │ │ │ In contrast to read access, PETSc (and the respective deal.II wrapper classes) │ │ │ │ │ allow to write (or add) to individual elements of vectors, even if they are │ │ │ │ │ -stored on a different process. You can do this writing, for example, vec(i)=d │ │ │ │ │ -or vec(i)+=d, or similar operations. There is one catch, however, that may lead │ │ │ │ │ +stored on a different process. You can do this writing, for example, _v_e_c_(_i_)=d │ │ │ │ │ +or _v_e_c_(_i_)+=d, or similar operations. There is one catch, however, that may lead │ │ │ │ │ to very confusing error messages: PETSc requires application programs to call │ │ │ │ │ the _c_o_m_p_r_e_s_s_(_) function when they switch from adding, to elements to writing to │ │ │ │ │ elements. The reasoning is that all processes might accumulate addition │ │ │ │ │ operations to elements, even if multiple processes write to the same elements. │ │ │ │ │ By the time we call _c_o_m_p_r_e_s_s_(_) the next time, all these additions are executed. │ │ │ │ │ However, if one process adds to an element, and another overwrites to it, the │ │ │ │ │ order of execution would yield non-deterministic behavior if we don't make sure │ │ │ │ │ @@ -352,15 +352,15 @@ │ │ │ │ │ _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r _v_e_c_t_o_r; │ │ │ │ │ ... │ │ │ │ │ // do some write operations on the vector │ │ │ │ │ for (unsigned int i=0; i<_v_e_c_t_o_r.size(); ++i) │ │ │ │ │ _v_e_c_t_o_r(i) = i; │ │ │ │ │ // do some additions to vector elements, but only for some elements │ │ │ │ │ for (unsigned int i=0; i<_v_e_c_t_o_r.size(); ++i) │ │ │ │ │ -if (some_condition(i) == true) │ │ │ │ │ +if (_s_o_m_e___c_o_n_d_i_t_i_o_n(i) == true) │ │ │ │ │ _v_e_c_t_o_r(i) += 1; │ │ │ │ │ // do another collective operation │ │ │ │ │ const double norm = _v_e_c_t_o_r.l2_norm(); │ │ │ │ │ _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r │ │ │ │ │ DDeeffiinniittiioonn _p_e_t_s_c___v_e_c_t_o_r_._h_:_1_5_8 │ │ │ │ │ _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_v_e_c_t_o_r │ │ │ │ │ Vec vector │ │ │ │ │ @@ -380,80 +380,80 @@ │ │ │ │ │ _c_o_m_p_r_e_s_s_(_), or making sure that all processes do the same type of operations at │ │ │ │ │ the same time, for example by placing zero additions if necessary. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ Definition at line _1_5_7 of file _p_e_t_s_c___v_e_c_t_o_r_._h. │ │ │ │ │ ********** MMeemmbbeerr TTyyppeeddeeff DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? ssiizzee__ttyyppee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │ Declare type for container size. │ │ │ │ │ Definition at line _1_6_3 of file _p_e_t_s_c___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? vvaalluuee__ttyyppee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_v_a_l_u_e___t_y_p_e = PetscScalar inherited │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_v_a_l_u_e___t_y_p_e = PetscScalar inherited │ │ │ │ │ Declare some of the standard types used in all containers. These types parallel │ │ │ │ │ those in the C++ standard libraries vector<...> class. │ │ │ │ │ Definition at line _2_6_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? rreeaall__ttyyppee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e = PetscReal inherited │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e = PetscReal inherited │ │ │ │ │ Definition at line _2_6_1 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? rreeffeerreennccee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_r_e_f_e_r_e_n_c_e = internal:: inherited │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_r_e_f_e_r_e_n_c_e = internal:: inherited │ │ │ │ │ VectorReference │ │ │ │ │ Definition at line _2_6_3 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? ccoonnsstt__rreeffeerreennccee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e = const internal:: inherited │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e = _c_o_n_s_t internal:: inherited │ │ │ │ │ VectorReference │ │ │ │ │ Definition at line _2_6_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? mmaapp__vvaalluuee__ttyyppee ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ _v_a_l_u_e___t_y_p_e │ │ │ │ │ The data type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_2_9 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmaapp__iitteerraattoorr ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p):: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p):: privateinherited │ │ │ │ │ iterator │ │ │ │ │ The iterator type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_3_4 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** CCoonnssttrruuccttoorr && DDeessttrruuccttoorr DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[11//66]] ********** │ │ │ │ │ _V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( ) │ │ │ │ │ Default constructor. Initialize the vector as empty. │ │ │ │ │ Definition at line _3_8 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[22//66]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ - const _s_i_z_e___t_y_p_e  nn, explicit │ │ │ │ │ - const _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee  │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e  nn, explicit │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee  │ │ │ │ │ ) │ │ │ │ │ Constructor. Set dimension to n and initialize all elements with zero. │ │ │ │ │ * locally_owned_size denotes the size of the chunk that shall be stored on │ │ │ │ │ the present process. │ │ │ │ │ * communicator denotes the _M_P_I communicator over which the different parts │ │ │ │ │ of the vector shall communicate │ │ │ │ │ The constructor is made explicit to avoid accidents like this: v=0;. │ │ │ │ │ Presumably, the user wants to set every element of the vector to zero, but │ │ │ │ │ instead, what happens is this call: v=_V_e_c_t_o_r(0);, i.e. the vector is │ │ │ │ │ replaced by one of length zero. │ │ │ │ │ Definition at line _4_8 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[33//66]] ********** │ │ │ │ │ -template │ │ │ │ │ -PETScWrappers::MPI:: ( const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number > │ │ │ │ │ +PETScWrappers::MPI:: ( _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ Vector::Vector │ │ │ │ │ - const _:_:_V_e_c_t_o_r< Number > &  vv, explicit │ │ │ │ │ - const _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee  │ │ │ │ │ + _c_o_n_s_t _:_:_V_e_c_t_o_r< Number > &  vv, explicit │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee  │ │ │ │ │ ) │ │ │ │ │ Copy-constructor from deal.II vectors. Sets the dimension to that of the given │ │ │ │ │ vector, and copies all elements. │ │ │ │ │ * locally_owned_size denotes the size of the chunk that shall be stored on │ │ │ │ │ the present process. │ │ │ │ │ * communicator denotes the _M_P_I communicator over which the different parts │ │ │ │ │ of the vector shall communicate │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[44//66]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ - const _I_n_d_e_x_S_e_t &  gghhoosstt, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ + _c_o_n_s_t _I_n_d_e_x_S_e_t &  gghhoosstt, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  │ │ │ │ │ ) │ │ │ │ │ Construct a new parallel ghosted PETSc vector from IndexSets. │ │ │ │ │ Note that local must be ascending and 1:1, see _I_n_d_e_x_S_e_t_:_: │ │ │ │ │ _i_s___a_s_c_e_n_d_i_n_g___a_n_d___o_n_e___t_o___o_n_e_(_). In particular, the DoFs in local need to be │ │ │ │ │ contiguous, meaning you can only create vectors from a _D_o_F_H_a_n_d_l_e_r with several │ │ │ │ │ finite element components if they are not reordered by component (use a │ │ │ │ │ PETScWrappers::BlockVector otherwise). The global size of the vector is │ │ │ │ │ @@ -466,38 +466,38 @@ │ │ │ │ │ Note │ │ │ │ │ This operation always creates a ghosted vector, which is considered read- │ │ │ │ │ only. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ Definition at line _5_7 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[55//66]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  explicit │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  explicit │ │ │ │ │ ) │ │ │ │ │ Construct a new parallel PETSc vector without ghost elements from an _I_n_d_e_x_S_e_t. │ │ │ │ │ Note that local must be ascending and 1:1, see _I_n_d_e_x_S_e_t_:_: │ │ │ │ │ _i_s___a_s_c_e_n_d_i_n_g___a_n_d___o_n_e___t_o___o_n_e_(_). In particular, the DoFs in local need to be │ │ │ │ │ contiguous, meaning you can only create vectors from a _D_o_F_H_a_n_d_l_e_r with several │ │ │ │ │ finite element components if they are not reordered by component (use a │ │ │ │ │ PETScWrappers::BlockVector otherwise). │ │ │ │ │ Definition at line _9_3 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[66//66]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _V_e_c_t_o_r &  vv ) │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _V_e_c_t_o_r &  vv ) │ │ │ │ │ Copy constructor. │ │ │ │ │ Definition at line _7_5 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** MMeemmbbeerr FFuunnccttiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? cclleeaarr(()) ********** │ │ │ │ │ void _V_e_c_t_o_r< Number >:: ( ) overridevirtual │ │ │ │ │ clear │ │ │ │ │ Release all memory and return to a state just like after having called the │ │ │ │ │ default constructor. │ │ │ │ │ Reimplemented from _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e. │ │ │ │ │ Definition at line _1_4_5 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[11//33]] ********** │ │ │ │ │ -_V_e_c_t_o_r & _V_e_c_t_o_r< Number >::operator= ( const _V_e_c_t_o_r &  vv ) │ │ │ │ │ +_V_e_c_t_o_r & _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r= ( _c_o_n_s_t _V_e_c_t_o_r &  vv ) │ │ │ │ │ Copy the given vector. Resize the present vector if necessary. Also take over │ │ │ │ │ the _M_P_I communicator of v. │ │ │ │ │ The semantics of this operator are complex. If the two vectors have the same │ │ │ │ │ size, and if either the left or right hand side vector of the assignment (i.e., │ │ │ │ │ either the input vector on the right hand side, or the calling vector to the │ │ │ │ │ left of the assignment operator) currently has ghost elements, then the left │ │ │ │ │ hand side vector will also have ghost values and will consequently be a read- │ │ │ │ │ @@ -512,89 +512,89 @@ │ │ │ │ │ simply a copy operation in the usual sense: In that case, if the right hand │ │ │ │ │ side has no ghost elements (i.e., is a completely distributed vector), then the │ │ │ │ │ left hand side will have no ghost elements either. And if the right hand side │ │ │ │ │ has ghost elements (and is consequently read-only), then the left hand side │ │ │ │ │ will have these same properties after the operation. │ │ │ │ │ Definition at line _1_0_3 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[22//33]] ********** │ │ │ │ │ -_V_e_c_t_o_r & PETScWrappers::MPI::Vector::operator= ( const PetscScalar  ss ) │ │ │ │ │ +_V_e_c_t_o_r & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r= ( _c_o_n_s_t PetscScalar  ss ) │ │ │ │ │ Set all components of the vector to the given number s. Simply pass this down │ │ │ │ │ to the base class, but we still need to declare this function to make the │ │ │ │ │ example given in the discussion about making the constructor explicit work. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[33//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -_V_e_c_t_o_r & PETScWrappers::MPI::Vector:: ( const _:_:_V_e_c_t_o_r< number > &  vv ) │ │ │ │ │ -operator= │ │ │ │ │ +template<_t_y_p_e_n_a_m_e number > │ │ │ │ │ +_V_e_c_t_o_r & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: ( _c_o_n_s_t _:_:_V_e_c_t_o_r< number > &  vv ) │ │ │ │ │ +_o_p_e_r_a_t_o_r= │ │ │ │ │ Copy the values of a deal.II vector (as opposed to those of the PETSc vector │ │ │ │ │ wrapper class) into this object. │ │ │ │ │ Contrary to the case of sequential vectors, this operators requires that the │ │ │ │ │ present vector already has the correct size, since we need to have a partition │ │ │ │ │ and a communicator present which we otherwise can't get from the source vector. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[11//66]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::reinit ( const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ - const _s_i_z_e___t_y_p_e  NN, │ │ │ │ │ - const _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee, │ │ │ │ │ - const _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = false  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::reinit ( _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr, │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e  NN, │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Change the dimension of the vector to N. It is unspecified how resizing the │ │ │ │ │ vector affects the memory allocation of this object; i.e., it is not guaranteed │ │ │ │ │ that resizing it to a smaller size actually also reduces memory consumption, or │ │ │ │ │ if for efficiency the same amount of memory is used │ │ │ │ │ locally_owned_size denotes how many of the N values shall be stored locally on │ │ │ │ │ the present process. for less data. │ │ │ │ │ communicator denotes the _M_P_I communicator henceforth to be used for this │ │ │ │ │ vector. │ │ │ │ │ If omit_zeroing_entries is false, the vector is filled by zeros. Otherwise, the │ │ │ │ │ elements are left an unspecified state. │ │ │ │ │ Definition at line _1_5_5 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[22//66]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::reinit ( const _V_e_c_t_o_r &  vv, │ │ │ │ │ - const _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = false  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::reinit ( _c_o_n_s_t _V_e_c_t_o_r &  vv, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Change the dimension to that of the vector v, and also take over the │ │ │ │ │ partitioning into local sizes as well as the _M_P_I communicator. The same applies │ │ │ │ │ as for the other reinit function. │ │ │ │ │ The elements of v are not copied, i.e. this function is the same as calling │ │ │ │ │ reinit(v.size(), v.locally_owned_size(), omit_zeroing_entries). │ │ │ │ │ Definition at line _1_9_6 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[33//66]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::reinit ( const _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ - const _I_n_d_e_x_S_e_t &  gghhoosstt, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::reinit ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ + _c_o_n_s_t _I_n_d_e_x_S_e_t &  gghhoosstt, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  │ │ │ │ │ ) │ │ │ │ │ Reinit as a vector with ghost elements. See the constructor with same signature │ │ │ │ │ for more details. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ Definition at line _2_1_9 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[44//66]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::reinit ( const _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::reinit ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr  │ │ │ │ │ ) │ │ │ │ │ Reinit as a vector without ghost elements. See constructor with same signature │ │ │ │ │ for more details. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ Definition at line _2_3_5 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[55//66]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >:: const std::shared_ptr< const │ │ │ │ │ +void _V_e_c_t_o_r< Number >:: _c_o_n_s_t std::shared_ptr< _c_o_n_s_t │ │ │ │ │ reinit ( _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_P_a_r_t_i_t_i_o_n_e_r > ppaarrttiittiioonneerr, │ │ │ │ │ &  │ │ │ │ │ - const _b_o_o_l  mmaakkee__gghhoosstteedd = true  │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  mmaakkee__gghhoosstteedd = _t_r_u_e  │ │ │ │ │ ) │ │ │ │ │ Initialize the vector given to the parallel partitioning described in │ │ │ │ │ partitioner. │ │ │ │ │ You can decide whether your vector will contain ghost elements with │ │ │ │ │ make_ghosted. │ │ │ │ │ Definition at line _2_4_6 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? pprriinntt(()) ********** │ │ │ │ │ void _V_e_c_t_o_r< Number >::print ( std::ostream &  oouutt, │ │ │ │ │ - const unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ - const _b_o_o_l  sscciieennttiiffiicc = true, │ │ │ │ │ - const _b_o_o_l  aaccrroossss = true  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  sscciieennttiiffiicc = _t_r_u_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  aaccrroossss = _t_r_u_e  │ │ │ │ │ ) const │ │ │ │ │ Print to a stream. precision denotes the desired precision with which values │ │ │ │ │ shall be printed, scientific whether scientific notation shall be used. If │ │ │ │ │ across is true then the vector is printed in a line, while if false then the │ │ │ │ │ elements are printed on a separate line each. │ │ │ │ │ Note │ │ │ │ │ This function overloads the one in the base class to ensure that the │ │ │ │ │ @@ -607,72 +607,72 @@ │ │ │ │ │ _c_o_l_l_e_c_t_i_v_e_ _o_p_e_r_a_t_i_o_n. This function is expensive, because potentially all │ │ │ │ │ elements have to be checked. │ │ │ │ │ Note │ │ │ │ │ This function overloads the one in the base class to make this a │ │ │ │ │ _c_o_l_l_e_c_t_i_v_e_ _o_p_e_r_a_t_i_o_n. │ │ │ │ │ Definition at line _3_4_8 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ccrreeaattee__vveeccttoorr(()) [[11//22]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >:: ( const _M_P_I___C_o_m_m  ccoommmm, │ │ │ │ │ +void _V_e_c_t_o_r< Number >:: ( _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmm, │ │ │ │ │ create_vector │ │ │ │ │ - const _s_i_z_e___t_y_p_e  nn, protectedvirtual │ │ │ │ │ - const _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee  │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e  nn, protectedvirtual │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee  │ │ │ │ │ ) │ │ │ │ │ Create a vector of length n. For this class, we create a parallel vector. n │ │ │ │ │ denotes the total size of the vector to be created. locally_owned_size denotes │ │ │ │ │ how many of these elements shall be stored locally. │ │ │ │ │ Definition at line _2_6_9 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ccrreeaattee__vveeccttoorr(()) [[22//22]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number ( const _M_P_I___C_o_m_m  ccoommmm, │ │ │ │ │ +void _V_e_c_t_o_r< Number ( _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmm, │ │ │ │ │ >::create_vector │ │ │ │ │ - const _s_i_z_e___t_y_p_e  nn, protectedvirtual │ │ │ │ │ - const _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee, │ │ │ │ │ - const _I_n_d_e_x_S_e_t &  gghhoossttnnooddeess  │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e  nn, protectedvirtual │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e  llooccaallllyy__oowwnneedd__ssiizzee, │ │ │ │ │ + _c_o_n_s_t _I_n_d_e_x_S_e_t &  gghhoossttnnooddeess  │ │ │ │ │ ) │ │ │ │ │ Create a vector of global length n, local size locally_owned_size and with the │ │ │ │ │ specified ghost indices. Note that you need to call _u_p_d_a_t_e___g_h_o_s_t___v_a_l_u_e_s_(_) │ │ │ │ │ before accessing those. │ │ │ │ │ Definition at line _2_8_9 of file _p_e_t_s_c___p_a_r_a_l_l_e_l___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorrBBaassee(()) [[11//33]] ********** │ │ │ │ │ PETScWrappers::VectorBase::VectorBase ( ) │ │ │ │ │ Import _V_e_c_t_o_r_B_a_s_e constructors, including from a PETSc Vec object. │ │ │ │ │ Definition at line _2_7_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorrBBaassee(()) [[22//33]] ********** │ │ │ │ │ -PETScWrappers::VectorBase::VectorBase ( const _V_e_c_t_o_r_B_a_s_e &  vv ) │ │ │ │ │ +PETScWrappers::VectorBase::VectorBase ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  vv ) │ │ │ │ │ Import _V_e_c_t_o_r_B_a_s_e constructors, including from a PETSc Vec object. │ │ │ │ │ Definition at line _2_7_6 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorrBBaassee(()) [[33//33]] ********** │ │ │ │ │ -PETScWrappers::VectorBase:: ( const Vec &  vv ) explicit │ │ │ │ │ +PETScWrappers::VectorBase:: ( _c_o_n_s_t Vec &  vv ) explicit │ │ │ │ │ VectorBase │ │ │ │ │ Import _V_e_c_t_o_r_B_a_s_e constructors, including from a PETSc Vec object. │ │ │ │ │ Definition at line _2_8_2 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[66//66]] ********** │ │ │ │ │ void PETScWrappers::VectorBase::reinit ( Vec  vv ) │ │ │ │ │ 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 _V_e_c_t_o_r_B_a_s_e and the PETSc Vec without incurring in memory │ │ │ │ │ copies. │ │ │ │ │ Definition at line _3_3_8 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ccoommpprreessss(()) ********** │ │ │ │ │ -void PETScWrappers:: ( const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_: ooppeerraattiioonn ) inherited │ │ │ │ │ +void PETScWrappers:: ( _c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_: ooppeerraattiioonn ) inherited │ │ │ │ │ VectorBase::compress _v_a_l_u_e_s  │ │ │ │ │ Compress the underlying representation of the PETSc object, i.e. flush the │ │ │ │ │ buffers of the vector object if it has any. This function is necessary after │ │ │ │ │ writing into a vector element-by-element and before anything else can be done │ │ │ │ │ on it. │ │ │ │ │ See _C_o_m_p_r_e_s_s_i_n_g_ _d_i_s_t_r_i_b_u_t_e_d_ _o_b_j_e_c_t_s for more information. │ │ │ │ │ Definition at line _5_4_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr====(()) ********** │ │ │ │ │ -_b_o_o_l PETScWrappers::VectorBase:: ( const _V_e_c_t_o_r_B_a_s_e &  vv ) const inherited │ │ │ │ │ -operator== │ │ │ │ │ +_b_o_o_l _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_: ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  vv ) const inherited │ │ │ │ │ +_o_p_e_r_a_t_o_r== │ │ │ │ │ Test for equality. This function assumes that the present vector and the one to │ │ │ │ │ compare with have the same size already, since comparing vectors of different │ │ │ │ │ sizes makes not much sense anyway. │ │ │ │ │ Definition at line _3_9_9 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr!!==(()) ********** │ │ │ │ │ -_b_o_o_l PETScWrappers::VectorBase:: ( const _V_e_c_t_o_r_B_a_s_e &  vv ) const inherited │ │ │ │ │ +_b_o_o_l PETScWrappers::VectorBase:: ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  vv ) const inherited │ │ │ │ │ operator!= │ │ │ │ │ Test for inequality. This function assumes that the present vector and the one │ │ │ │ │ to compare with have the same size already, since comparing vectors of │ │ │ │ │ different sizes makes not much sense anyway. │ │ │ │ │ Definition at line _4_1_3 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssiizzee(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e_:_:_s_i_z_e___t_y_p_e PETScWrappers:: ( ) const overridevirtualinherited │ │ │ │ │ @@ -695,174 +695,174 @@ │ │ │ │ │ Return a pair of indices indicating which elements of this vector are stored │ │ │ │ │ locally. The first number is the index of the first element stored, the second │ │ │ │ │ the index of the one past the last one that is stored locally. If this is a │ │ │ │ │ sequential vector, then the result will be the pair (0,N), otherwise it will be │ │ │ │ │ a pair (i,i+n), where n=_l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e_(_). │ │ │ │ │ Definition at line _4_5_1 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? iinn__llooccaall__rraannggee(()) ********** │ │ │ │ │ -_b_o_o_l PETScWrappers::VectorBase:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const inherited │ │ │ │ │ +_b_o_o_l PETScWrappers::VectorBase:: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const inherited │ │ │ │ │ in_local_range │ │ │ │ │ Return whether index is in the local range or not, see also _l_o_c_a_l___r_a_n_g_e_(_). │ │ │ │ │ ********** _?◆_? llooccaallllyy__oowwnneedd__eelleemmeennttss(()) ********** │ │ │ │ │ _I_n_d_e_x_S_e_t PETScWrappers::VectorBase::locally_owned_elements ( ) const inherited │ │ │ │ │ Return an index set that describes which elements of this vector are owned by │ │ │ │ │ the current processor. Note that this index set does not include elements this │ │ │ │ │ vector may store locally as ghost elements but that are in fact owned by │ │ │ │ │ another processor. As a consequence, the index sets returned on different │ │ │ │ │ processors if this is a distributed vector will form disjoint sets that add up │ │ │ │ │ to the complete index set. Obviously, if a vector is created on only one │ │ │ │ │ processor, then the result would satisfy │ │ │ │ │ -vec.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t (vec.size()) │ │ │ │ │ +_v_e_c.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t (_v_e_c.size()) │ │ │ │ │ _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t │ │ │ │ │ IndexSet complete_index_set(const IndexSet::size_type N) │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_2_0_4 │ │ │ │ │ ********** _?◆_? hhaass__gghhoosstt__eelleemmeennttss(()) ********** │ │ │ │ │ _b_o_o_l PETScWrappers::VectorBase::has_ghost_elements ( ) const inherited │ │ │ │ │ Return if the vector contains ghost elements. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ ********** _?◆_? gghhoosstt__eelleemmeennttss(()) ********** │ │ │ │ │ -const _I_n_d_e_x_S_e_t & PETScWrappers::VectorBase::ghost_elements ( ) const inherited │ │ │ │ │ +_c_o_n_s_t _I_n_d_e_x_S_e_t & PETScWrappers::VectorBase::ghost_elements ( ) const inherited │ │ │ │ │ Return the _I_n_d_e_x_S_e_t of ghost elements. │ │ │ │ │ ********** _?◆_? uuppddaattee__gghhoosstt__vvaalluueess(()) ********** │ │ │ │ │ void PETScWrappers::VectorBase::update_ghost_values ( ) const inherited │ │ │ │ │ Update ghosted elements. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[11//22]] ********** │ │ │ │ │ -_r_e_f_e_r_e_n_c_e PETScWrappers:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) inherited │ │ │ │ │ -VectorBase::operator() │ │ │ │ │ +_r_e_f_e_r_e_n_c_e _P_E_T_S_c_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) inherited │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r() │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[22//22]] ********** │ │ │ │ │ -PetscScalar PETScWrappers:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const inherited │ │ │ │ │ -VectorBase::operator() │ │ │ │ │ +PetscScalar _P_E_T_S_c_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const inherited │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r() │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[11//22]] ********** │ │ │ │ │ -_r_e_f_e_r_e_n_c_e PETScWrappers:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) inherited │ │ │ │ │ -VectorBase::operator[] │ │ │ │ │ +_r_e_f_e_r_e_n_c_e _P_E_T_S_c_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) inherited │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r[] │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[22//22]] ********** │ │ │ │ │ -PetscScalar PETScWrappers:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const inherited │ │ │ │ │ -VectorBase::operator[] │ │ │ │ │ +PetscScalar _P_E_T_S_c_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const inherited │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r[] │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ ********** _?◆_? sseett(()) ********** │ │ │ │ │ -void PETScWrappers:: ( const std::vector< _s_i_z_e___t_y_p_e > iinnddiicceess, │ │ │ │ │ +void PETScWrappers:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > iinnddiicceess, │ │ │ │ │ VectorBase::set &  │ │ │ │ │ - const std::vector< PetscScalar > vvaalluueess  inherited │ │ │ │ │ + _c_o_n_s_t std::vector< PetscScalar > vvaalluueess  inherited │ │ │ │ │ &  │ │ │ │ │ ) │ │ │ │ │ A collective set operation: instead of setting individual elements of a vector, │ │ │ │ │ this function allows to set a whole set of elements at once. The indices of the │ │ │ │ │ elements to be set are stated in the first argument, the corresponding values │ │ │ │ │ in the second. │ │ │ │ │ Definition at line _4_6_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? eexxttrraacctt__ssuubbvveeccttoorr__ttoo(()) [[11//33]] ********** │ │ │ │ │ -void PETScWrappers:: const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ +void PETScWrappers:: _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ VectorBase:: ( &  iinnddiicceess, │ │ │ │ │ extract_subvector_to inherited │ │ │ │ │ std::vector< PetscScalar > &  vvaalluueess  │ │ │ │ │ ) const │ │ │ │ │ -Instead of getting individual elements of a vector via operator(), this │ │ │ │ │ +Instead of getting individual elements of a vector via _o_p_e_r_a_t_o_r_(_), this │ │ │ │ │ function allows getting a whole set of elements at once. The indices of the │ │ │ │ │ elements to be read are stated in the first argument, the corresponding values │ │ │ │ │ are returned in the second. │ │ │ │ │ If the current vector is called v, then this function is the equivalent to the │ │ │ │ │ code │ │ │ │ │ for (unsigned int i=0; i &  │ │ │ │ │ extract_subvector_to overridevirtualinherited │ │ │ │ │ _A_r_r_a_y_V_i_e_w< eelleemmeennttss  │ │ │ │ │ PetscScalar > &  │ │ │ │ │ ) const │ │ │ │ │ Extract a range of elements all at once. │ │ │ │ │ Implements _R_e_a_d_V_e_c_t_o_r_<_ _P_e_t_s_c_S_c_a_l_a_r_ _>. │ │ │ │ │ ********** _?◆_? eexxttrraacctt__ssuubbvveeccttoorr__ttoo(()) [[33//33]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r , _t_y_p_e_n_a_m_e _O_u_t_p_u_t_I_t_e_r_a_t_o_r > │ │ │ │ │ void PETScWrappers:: │ │ │ │ │ -VectorBase:: ( const ForwardIterator  iinnddiicceess__bbeeggiinn, │ │ │ │ │ +VectorBase:: ( _c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r  iinnddiicceess__bbeeggiinn, │ │ │ │ │ extract_subvector_to inherited │ │ │ │ │ - const ForwardIterator  iinnddiicceess__eenndd, │ │ │ │ │ - OutputIterator  vvaalluueess__bbeeggiinn  │ │ │ │ │ + _c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r  iinnddiicceess__eenndd, │ │ │ │ │ + _O_u_t_p_u_t_I_t_e_r_a_t_o_r  vvaalluueess__bbeeggiinn  │ │ │ │ │ ) const │ │ │ │ │ -Instead of getting individual elements of a vector via operator(), this │ │ │ │ │ +Instead of getting individual elements of a vector via _o_p_e_r_a_t_o_r_(_), this │ │ │ │ │ function allows getting a whole set of elements at once. In contrast to the │ │ │ │ │ previous function, this function obtains the indices of the elements by │ │ │ │ │ dereferencing all elements of the iterator range provided by the first two │ │ │ │ │ arguments, and puts the vector values into memory locations obtained by │ │ │ │ │ dereferencing a range of iterators starting at the location pointed to by the │ │ │ │ │ third argument. │ │ │ │ │ If the current vector is called v, then this function is the equivalent to the │ │ │ │ │ code │ │ │ │ │ -ForwardIterator indices_p = indices_begin; │ │ │ │ │ -OutputIterator values_p = values_begin; │ │ │ │ │ -while (indices_p != indices_end) │ │ │ │ │ +_F_o_r_w_a_r_d_I_t_e_r_a_t_o_r _i_n_d_i_c_e_s___p = _i_n_d_i_c_e_s___b_e_g_i_n; │ │ │ │ │ +_O_u_t_p_u_t_I_t_e_r_a_t_o_r _v_a_l_u_e_s___p = _v_a_l_u_e_s___b_e_g_i_n; │ │ │ │ │ +while (_i_n_d_i_c_e_s___p != _i_n_d_i_c_e_s___e_n_d) │ │ │ │ │ { │ │ │ │ │ -*values_p = v[*indices_p]; │ │ │ │ │ -++indices_p; │ │ │ │ │ -++values_p; │ │ │ │ │ +*_v_a_l_u_e_s___p = v[*_i_n_d_i_c_e_s___p]; │ │ │ │ │ +++_i_n_d_i_c_e_s___p; │ │ │ │ │ +++_v_a_l_u_e_s___p; │ │ │ │ │ } │ │ │ │ │ Precondition │ │ │ │ │ It must be possible to write into as many memory locations starting at │ │ │ │ │ values_begin as there are iterators between indices_begin and │ │ │ │ │ indices_end. │ │ │ │ │ ********** _?◆_? aadddd(()) [[11//66]] ********** │ │ │ │ │ -void PETScWrappers:: ( const std::vector< _s_i_z_e___t_y_p_e > iinnddiicceess, │ │ │ │ │ +void PETScWrappers:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > iinnddiicceess, │ │ │ │ │ VectorBase::add &  │ │ │ │ │ - const std::vector< PetscScalar > vvaalluueess  inherited │ │ │ │ │ + _c_o_n_s_t std::vector< PetscScalar > vvaalluueess  inherited │ │ │ │ │ &  │ │ │ │ │ ) │ │ │ │ │ A collective add operation: This function adds a whole set of values stored in │ │ │ │ │ values to the vector components specified by indices. │ │ │ │ │ Definition at line _4_7_5 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[22//66]] ********** │ │ │ │ │ -void PETScWrappers:: ( const std::vector< _s_i_z_e___t_y_p_e > iinnddiicceess, │ │ │ │ │ +void PETScWrappers:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > iinnddiicceess, │ │ │ │ │ VectorBase::add &  inherited │ │ │ │ │ - const _:_:_V_e_c_t_o_r< PetscScalar > &  vvaalluueess  │ │ │ │ │ + _c_o_n_s_t _:_:_V_e_c_t_o_r< PetscScalar > &  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ This is a second collective add operation. As a difference, this function takes │ │ │ │ │ a deal.II vector of values. │ │ │ │ │ Definition at line _4_8_6 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[33//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase:: ( const _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ add │ │ │ │ │ - const _s_i_z_e___t_y_p_e *  iinnddiicceess, inherited │ │ │ │ │ - const PetscScalar *  vvaalluueess  │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e *  iinnddiicceess, inherited │ │ │ │ │ + _c_o_n_s_t PetscScalar *  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ Take an address where n_elements are stored contiguously and add them into the │ │ │ │ │ vector. Handles all cases which are not covered by the other two _a_d_d_(_) │ │ │ │ │ functions above. │ │ │ │ │ Definition at line _4_9_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[44//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase:: ( const PetscScalar  ss ) inherited │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _c_o_n_s_t PetscScalar  ss ) inherited │ │ │ │ │ add │ │ │ │ │ Addition of s to all components. Note that s is a scalar and not a vector. │ │ │ │ │ Definition at line _8_5_5 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[55//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::add ( const PetscScalar  aa, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV  inherited │ │ │ │ │ +void PETScWrappers::VectorBase::add ( _c_o_n_s_t PetscScalar  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV  inherited │ │ │ │ │ ) │ │ │ │ │ Simple addition of a multiple of a vector, i.e. *this += a*V. │ │ │ │ │ Definition at line _8_6_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[66//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::add ( const PetscScalar  aa, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV, │ │ │ │ │ - const PetscScalar  bb, inherited │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  WW  │ │ │ │ │ +void PETScWrappers::VectorBase::add ( _c_o_n_s_t PetscScalar  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV, │ │ │ │ │ + _c_o_n_s_t PetscScalar  bb, inherited │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  WW  │ │ │ │ │ ) │ │ │ │ │ Multiple addition of scaled vectors, i.e. *this += a*V+b*W. │ │ │ │ │ Definition at line _8_7_9 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**(()) ********** │ │ │ │ │ -PetscScalar PETScWrappers:: ( const _V_e_c_t_o_r_B_a_s_e &  vveecc ) const inherited │ │ │ │ │ -VectorBase::operator* │ │ │ │ │ +PetscScalar _P_E_T_S_c_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  vveecc ) const inherited │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r* │ │ │ │ │ Return the scalar product of two vectors. The vectors must have the same size. │ │ │ │ │ For complex valued vector, this gives \(\left(v^\ast,vec\right)\). │ │ │ │ │ Definition at line _5_0_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? nnoorrmm__ssqqrr(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers::VectorBase::norm_sqr ( ) const inherited │ │ │ │ │ Return the square of the \(l_2\)-norm. │ │ │ │ │ Definition at line _6_0_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ @@ -880,30 +880,30 @@ │ │ │ │ │ Definition at line _6_6_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ll22__nnoorrmm(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers::VectorBase::l2_norm ( ) const inherited │ │ │ │ │ \(l_2\)-norm of the vector. The square root of the sum of the squares of the │ │ │ │ │ elements. │ │ │ │ │ Definition at line _6_7_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? llpp__nnoorrmm(()) ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers:: ( const _r_e_a_l___t_y_p_e  pp ) const inherited │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers:: ( _c_o_n_s_t _r_e_a_l___t_y_p_e  pp ) const inherited │ │ │ │ │ VectorBase::lp_norm │ │ │ │ │ \(l_p\)-norm of the vector. The pth root of the sum of the pth powers of the │ │ │ │ │ absolute values of the elements. │ │ │ │ │ Definition at line _6_9_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? lliinnffttyy__nnoorrmm(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers::VectorBase:: ( ) const inherited │ │ │ │ │ linfty_norm │ │ │ │ │ \(l_\infty\)-norm of the vector. Return the value of the vector element with │ │ │ │ │ the maximum absolute value. │ │ │ │ │ Definition at line _7_3_2 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd__aanndd__ddoott(()) ********** │ │ │ │ │ -PetscScalar PETScWrappers::VectorBase:: ( const PetscScalar  aa, │ │ │ │ │ +PetscScalar PETScWrappers::VectorBase:: ( _c_o_n_s_t PetscScalar  aa, │ │ │ │ │ add_and_dot │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV, inherited │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  WW  │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV, inherited │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  WW  │ │ │ │ │ ) │ │ │ │ │ Performs a combined operation of a vector addition and a subsequent inner │ │ │ │ │ product, returning the value of the inner product. In other words, the result │ │ │ │ │ of this function is the same as if the user called │ │ │ │ │ this->_a_d_d(a, V); │ │ │ │ │ return_value = *this * W; │ │ │ │ │ _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_a_d_d │ │ │ │ │ @@ -916,91 +916,91 @@ │ │ │ │ │ and thus the cost is completely equivalent as calling the two methods │ │ │ │ │ separately. │ │ │ │ │ For complex-valued vectors, the scalar product in the second step is │ │ │ │ │ implemented as \(\left=\sum_i v_i \bar{w_i}\). │ │ │ │ │ Definition at line _5_2_9 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**==(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e & │ │ │ │ │ -PETScWrappers::VectorBase:: ( const PetscScalar  ffaaccttoorr ) inherited │ │ │ │ │ -operator*= │ │ │ │ │ +_P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_: ( _c_o_n_s_t PetscScalar  ffaaccttoorr ) inherited │ │ │ │ │ +_o_p_e_r_a_t_o_r*= │ │ │ │ │ Multiply the entire vector by a fixed factor. │ │ │ │ │ Definition at line _8_0_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr//==(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e & │ │ │ │ │ -PETScWrappers::VectorBase:: ( const PetscScalar  ffaaccttoorr ) inherited │ │ │ │ │ -operator/= │ │ │ │ │ +_P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_: ( _c_o_n_s_t PetscScalar  ffaaccttoorr ) inherited │ │ │ │ │ +_o_p_e_r_a_t_o_r/= │ │ │ │ │ Divide the entire vector by a fixed factor. │ │ │ │ │ Definition at line _8_1_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr++==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e & PETScWrappers:: ( const _V_e_c_t_o_r_B_a_s_e &  VV ) inherited │ │ │ │ │ -VectorBase::operator+= │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV ) inherited │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r+= │ │ │ │ │ Add the given vector to the present one. │ │ │ │ │ Definition at line _8_3_1 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr--==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e & PETScWrappers:: ( const _V_e_c_t_o_r_B_a_s_e &  VV ) inherited │ │ │ │ │ -VectorBase::operator-= │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_: ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV ) inherited │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r-= │ │ │ │ │ Subtract the given vector from the present one. │ │ │ │ │ Definition at line _8_4_3 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssaadddd(()) [[11//22]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::sadd ( const PetscScalar  ss, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV  inherited │ │ │ │ │ +void PETScWrappers::VectorBase::sadd ( _c_o_n_s_t PetscScalar  ss, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV  inherited │ │ │ │ │ ) │ │ │ │ │ Scaling and simple vector addition, i.e. tthhiiss == ss(*this)+V. │ │ │ │ │ Definition at line _8_9_8 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssaadddd(()) [[22//22]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::sadd ( const PetscScalar  ss, │ │ │ │ │ - const PetscScalar  aa, inherited │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ +void PETScWrappers::VectorBase::sadd ( _c_o_n_s_t PetscScalar  ss, │ │ │ │ │ + _c_o_n_s_t PetscScalar  aa, inherited │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ ) │ │ │ │ │ Scaling and simple addition, i.e. tthhiiss == ss(*this)+a*V. │ │ │ │ │ Definition at line _9_1_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssccaallee(()) ********** │ │ │ │ │ void │ │ │ │ │ -PETScWrappers:: ( const _V_e_c_t_o_r_B_a_s_e &  ssccaalliinngg__ffaaccttoorrss ) inherited │ │ │ │ │ +PETScWrappers:: ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  ssccaalliinngg__ffaaccttoorrss ) inherited │ │ │ │ │ VectorBase::scale │ │ │ │ │ Scale each element of this vector by the corresponding element in the argument. │ │ │ │ │ This function is mostly meant to simulate multiplication (and immediate re- │ │ │ │ │ assignment) by a diagonal scaling matrix. │ │ │ │ │ Definition at line _9_2_8 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? eeqquu(()) ********** │ │ │ │ │ -void PETScWrappers::VectorBase::equ ( const PetscScalar  aa, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV  inherited │ │ │ │ │ +void PETScWrappers::VectorBase::equ ( _c_o_n_s_t PetscScalar  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV  inherited │ │ │ │ │ ) │ │ │ │ │ Assignment *this = a*V. │ │ │ │ │ Definition at line _9_3_8 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? wwrriittee__aasscciiii(()) ********** │ │ │ │ │ -void PETScWrappers:: const ffoorrmmaatt = │ │ │ │ │ -VectorBase:: ( PetscViewerFormat  PETSC_VIEWER_DEFAULT ) inherited │ │ │ │ │ +void PETScWrappers:: _c_o_n_s_t ffoorrmmaatt = │ │ │ │ │ +VectorBase:: ( _P_e_t_s_c_V_i_e_w_e_r_F_o_r_m_a_t  _P_E_T_S_C___V_I_E_W_E_R___D_E_F_A_U_L_T ) inherited │ │ │ │ │ write_ascii │ │ │ │ │ Prints the PETSc vector object values using PETSc internal vector viewer │ │ │ │ │ function VecView. The default format prints the vector's contents, including │ │ │ │ │ indices of vector elements. For other valid view formats, consult _h_t_t_p_:_/_/ │ │ │ │ │ _w_w_w_._m_c_s_._a_n_l_._g_o_v_/_p_e_t_s_c_/_p_e_t_s_c_-_c_u_r_r_e_n_t_/_d_o_c_s_/_m_a_n_u_a_l_p_a_g_e_s_/_V_e_c_/_V_e_c_V_i_e_w_._h_t_m_l │ │ │ │ │ Definition at line _9_5_2 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssaavvee(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void PETScWrappers::VectorBase::save ( Archive &  aarr, │ │ │ │ │ - const unsigned _i_n_t  vveerrssiioonn  inherited │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ +void PETScWrappers::VectorBase::save ( _A_r_c_h_i_v_e &  aarr, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  vveerrssiioonn  inherited │ │ │ │ │ ) const │ │ │ │ │ Write the data of this object to a stream for the purpose of serialization │ │ │ │ │ using the _B_O_O_S_T_ _s_e_r_i_a_l_i_z_a_t_i_o_n_ _l_i_b_r_a_r_y. │ │ │ │ │ Note │ │ │ │ │ Each processor only serializes its own locally owned values. │ │ │ │ │ ********** _?◆_? llooaadd(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void PETScWrappers::VectorBase::load ( Archive &  aarr, │ │ │ │ │ - const unsigned _i_n_t  vveerrssiioonn  inherited │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ +void PETScWrappers::VectorBase::load ( _A_r_c_h_i_v_e &  aarr, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  vveerrssiioonn  inherited │ │ │ │ │ ) │ │ │ │ │ Read the data of this object from a stream for the purpose of serialization │ │ │ │ │ using the _B_O_O_S_T_ _s_e_r_i_a_l_i_z_a_t_i_o_n_ _l_i_b_r_a_r_y. │ │ │ │ │ ********** _?◆_? sseerriiaalliizzee(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void PETScWrappers::VectorBase:: ( Archive &  aarrcchhiivvee, │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _A_r_c_h_i_v_e &  aarrcchhiivvee, │ │ │ │ │ serialize inherited │ │ │ │ │ - const unsigned _i_n_t  vveerrssiioonn  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  vveerrssiioonn  │ │ │ │ │ ) │ │ │ │ │ Write and read the data of this object from a stream for the purpose of │ │ │ │ │ serialization using the _B_O_O_S_T_ _s_e_r_i_a_l_i_z_a_t_i_o_n_ _l_i_b_r_a_r_y. │ │ │ │ │ ********** _?◆_? sswwaapp(()) ********** │ │ │ │ │ void PETScWrappers::VectorBase:: ( _V_e_c_t_o_r_B_a_s_e &  vv ) noexceptinherited │ │ │ │ │ swap │ │ │ │ │ Swap the contents of this vector and the other vector v. One could do this │ │ │ │ │ @@ -1009,15 +1009,15 @@ │ │ │ │ │ to the data of the two vectors and therefore does not need to allocate │ │ │ │ │ temporary storage and move data around. │ │ │ │ │ This function is analogous to the swap function of all C++ standard containers. │ │ │ │ │ Also, there is a global function swap(u,v) that simply calls u.swap(v), again │ │ │ │ │ in analogy to standard functions. │ │ │ │ │ Definition at line _1_0_1_9 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr ccoonnsstt VVeecc &&(()) ********** │ │ │ │ │ -PETScWrappers::VectorBase::operator const Vec & ( ) const inherited │ │ │ │ │ +_P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r _c_o_n_s_t Vec & ( ) const inherited │ │ │ │ │ Conversion operator to gain access to the underlying PETSc type. If you do │ │ │ │ │ this, you cut this class off some information it may need, so this conversion │ │ │ │ │ operator should only be used if you know what you do. In particular, it should │ │ │ │ │ only be used for read-only operations into the vector. │ │ │ │ │ Definition at line _1_0_3_1 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ppeettsscc__vveeccttoorr(()) ********** │ │ │ │ │ Vec & PETScWrappers::VectorBase:: ( ) inherited │ │ │ │ │ @@ -1030,19 +1030,19 @@ │ │ │ │ │ Estimate for the memory consumption (not implemented for this class). │ │ │ │ │ Definition at line _1_0_4_5 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ggeett__mmppii__ccoommmmuunniiccaattoorr(()) ********** │ │ │ │ │ _M_P_I___C_o_m_m PETScWrappers::VectorBase::get_mpi_communicator ( ) const inherited │ │ │ │ │ Return the underlying _M_P_I communicator. │ │ │ │ │ ********** _?◆_? ddoo__sseett__aadddd__ooppeerraattiioonn(()) ********** │ │ │ │ │ void PETScWrappers:: │ │ │ │ │ -VectorBase:: ( const _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ +VectorBase:: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ do_set_add_operation │ │ │ │ │ - const _s_i_z_e___t_y_p_e *  iinnddiicceess, protectedinherited │ │ │ │ │ - const PetscScalar *  vvaalluueess, │ │ │ │ │ - const _b_o_o_l  aadddd__vvaalluueess  │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e *  iinnddiicceess, protectedinherited │ │ │ │ │ + _c_o_n_s_t PetscScalar *  vvaalluueess, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  aadddd__vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ Collective set or add operation: This function is invoked by the collective set │ │ │ │ │ and add with the add_values flag set to the corresponding value. │ │ │ │ │ Definition at line _1_0_6_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ddeetteerrmmiinnee__gghhoosstt__iinnddiicceess(()) ********** │ │ │ │ │ void PETScWrappers::VectorBase:: ( ) protectedinherited │ │ │ │ │ determine_ghost_indices │ │ │ │ │ @@ -1069,15 +1069,15 @@ │ │ │ │ │ ********** _?◆_? nn__ssuubbssccrriippttiioonnss(()) ********** │ │ │ │ │ unsigned _i_n_t Subscriptor::n_subscriptions ( ) const inlineinherited │ │ │ │ │ Return the present number of subscriptions to this object. This allows to use │ │ │ │ │ this class for reference counted lifetime determination where the last one to │ │ │ │ │ unsubscribe also deletes the object. │ │ │ │ │ Definition at line _3_0_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ void Subscriptor:: ( StreamType &  ssttrreeaamm ) const inlineinherited │ │ │ │ │ list_subscribers │ │ │ │ │ List the subscribers to the input stream. │ │ │ │ │ Definition at line _3_1_7 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[22//22]] ********** │ │ │ │ │ void Subscriptor::list_subscribers ( ) const inherited │ │ │ │ │ List the subscribers to deallog. │ │ │ │ │ @@ -1156,15 +1156,15 @@ │ │ │ │ │ ********** _?◆_? vvaalliiddiittyy__ppooiinntteerrss ********** │ │ │ │ │ std::vector *> Subscriptor:: mutableprivateinherited │ │ │ │ │ validity_pointers │ │ │ │ │ In this vector, we store pointers to the validity bool in the _S_m_a_r_t_P_o_i_n_t_e_r │ │ │ │ │ objects that subscribe to this class. │ │ │ │ │ Definition at line _2_4_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? oobbjjeecctt__iinnffoo ********** │ │ │ │ │ -const std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ +_c_o_n_s_t std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ Pointer to the typeinfo object of this object, from which we can later deduce │ │ │ │ │ the class name. Since this information on the derived class is neither │ │ │ │ │ available in the destructor, nor in the constructor, we obtain it in between │ │ │ │ │ and store it here. │ │ │ │ │ Definition at line _2_4_8 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmuutteexx ********** │ │ │ │ │ std::mutex Subscriptor::mutex staticprivateinherited │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverBiCG.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 368 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverBicgstab.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 439 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverCG.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 341 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverCGS.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 466 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverCR.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 547 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverChebychev.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 314 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverGMRES.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 404 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverLSQR.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 575 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverPreOnly.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 610 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverRichardson.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 264 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverTCQMR.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 520 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SolverTFQMR.html │ │ │ │ @@ -235,15 +235,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 493 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1SparseDirectMUMPS.html │ │ │ │ @@ -247,15 +247,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Constructor. This constructor is deprecated and ignores the MPI communicator argument. Use the other constructor instead.

    │ │ │ │ -
    Deprecated:
    │ │ │ │ +
    Deprecated:
    │ │ │ │ │ │ │ │

    Definition at line 650 of file petsc_solver.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Function Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPETScWrappers_1_1VectorBase.html │ │ │ │ @@ -129,176 +129,176 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [legend]
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Types

    using value_type = PetscScalar
    using value_type = PetscScalar
     
    using real_type = PetscReal
    using real_type = PetscReal
     
    using size_type = types::global_dof_index
    using size_type = types::global_dof_index
     
    using reference = internal::VectorReference
    using reference = internal::VectorReference
     
    using const_reference = const internal::VectorReference
    using const_reference = const internal::VectorReference
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Member Functions

     VectorBase ()
     
     VectorBase (const VectorBase &v)
     VectorBase (const VectorBase &v)
     
     VectorBase (const Vec &v)
     VectorBase (const Vec &v)
     
    virtual ~VectorBase () override
    virtual ~VectorBase () override
     
    virtual void clear ()
    virtual void clear ()
     
    void compress (const VectorOperation::values operation)
    void compress (const VectorOperation::values operation)
     
    VectorBaseoperator= (const VectorBase &)
    VectorBaseoperator= (const VectorBase &)
     
    VectorBaseoperator= (const PetscScalar s)
    VectorBaseoperator= (const PetscScalar s)
     
    void reinit (Vec v)
     
    bool operator== (const VectorBase &v) const
    bool operator== (const VectorBase &v) const
     
    bool operator!= (const VectorBase &v) const
    bool operator!= (const VectorBase &v) const
     
    size_type size () const override
    size_type size () const override
     
    size_type locally_owned_size () const
    size_type locally_owned_size () const
     
    std::pair< size_type, size_typelocal_range () const
    std::pair< size_type, size_typelocal_range () const
     
    bool in_local_range (const size_type index) const
    bool in_local_range (const size_type index) const
     
    IndexSet locally_owned_elements () const
    IndexSet locally_owned_elements () const
     
    bool has_ghost_elements () const
    bool has_ghost_elements () const
     
    const IndexSetghost_elements () const
    const IndexSetghost_elements () const
     
    void update_ghost_values () const
    void update_ghost_values () const
     
    reference operator() (const size_type index)
    reference operator() (const size_type index)
     
    PetscScalar operator() (const size_type index) const
    PetscScalar operator() (const size_type index) const
     
    reference operator[] (const size_type index)
    reference operator[] (const size_type index)
     
    PetscScalar operator[] (const size_type index) const
    PetscScalar operator[] (const size_type index) const
     
    void set (const std::vector< size_type > &indices, const std::vector< PetscScalar > &values)
    void set (const std::vector< size_type > &indices, const std::vector< PetscScalar > &values)
     
    void extract_subvector_to (const std::vector< size_type > &indices, std::vector< PetscScalar > &values) const
    void extract_subvector_to (const std::vector< size_type > &indices, std::vector< PetscScalar > &values) const
     
    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< PetscScalar > &elements) const override
    virtual void extract_subvector_to (const ArrayView< const types::global_dof_index > &indices, ArrayView< PetscScalar > &elements) const override
     
    template<typename ForwardIterator , typename OutputIterator >
    void extract_subvector_to (const ForwardIterator indices_begin, const ForwardIterator indices_end, OutputIterator values_begin) const
    template<typename ForwardIterator , typename OutputIterator >
    void extract_subvector_to (const ForwardIterator indices_begin, const ForwardIterator indices_end, OutputIterator values_begin) const
     
    void add (const std::vector< size_type > &indices, const std::vector< PetscScalar > &values)
    void add (const std::vector< size_type > &indices, const std::vector< PetscScalar > &values)
     
    void add (const std::vector< size_type > &indices, const ::Vector< PetscScalar > &values)
    void add (const std::vector< size_type > &indices, const ::Vector< PetscScalar > &values)
     
    void add (const size_type n_elements, const size_type *indices, const PetscScalar *values)
    void add (const size_type n_elements, const size_type *indices, const PetscScalar *values)
     
    PetscScalar operator* (const VectorBase &vec) const
    PetscScalar operator* (const VectorBase &vec) const
     
    real_type norm_sqr () const
    real_type norm_sqr () const
     
    PetscScalar mean_value () const
    PetscScalar mean_value () const
     
    real_type l1_norm () const
    real_type l1_norm () const
     
    real_type l2_norm () const
    real_type l2_norm () const
     
    real_type lp_norm (const real_type p) const
    real_type lp_norm (const real_type p) const
     
    real_type linfty_norm () const
    real_type linfty_norm () const
     
    PetscScalar add_and_dot (const PetscScalar a, const VectorBase &V, const VectorBase &W)
    PetscScalar add_and_dot (const PetscScalar a, const VectorBase &V, const VectorBase &W)
     
    bool all_zero () const
    bool all_zero () const
     
    VectorBaseoperator*= (const PetscScalar factor)
    VectorBaseoperator*= (const PetscScalar factor)
     
    VectorBaseoperator/= (const PetscScalar factor)
    VectorBaseoperator/= (const PetscScalar factor)
     
    VectorBaseoperator+= (const VectorBase &V)
    VectorBaseoperator+= (const VectorBase &V)
     
    VectorBaseoperator-= (const VectorBase &V)
    VectorBaseoperator-= (const VectorBase &V)
     
    void add (const PetscScalar s)
    void add (const PetscScalar s)
     
    void add (const PetscScalar a, const VectorBase &V)
    void add (const PetscScalar a, const VectorBase &V)
     
    void add (const PetscScalar a, const VectorBase &V, const PetscScalar b, const VectorBase &W)
    void add (const PetscScalar a, const VectorBase &V, const PetscScalar b, const VectorBase &W)
     
    void sadd (const PetscScalar s, const VectorBase &V)
    void sadd (const PetscScalar s, const VectorBase &V)
     
    void sadd (const PetscScalar s, const PetscScalar a, const VectorBase &V)
    void sadd (const PetscScalar s, const PetscScalar a, const VectorBase &V)
     
    void scale (const VectorBase &scaling_factors)
    void scale (const VectorBase &scaling_factors)
     
    void equ (const PetscScalar a, const VectorBase &V)
    void equ (const PetscScalar a, const VectorBase &V)
     
    void write_ascii (const PetscViewerFormat format=PETSC_VIEWER_DEFAULT)
    void write_ascii (const PetscViewerFormat format=PETSC_VIEWER_DEFAULT)
     
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
     
    template<class Archive >
    void save (Archive &ar, const unsigned int version) const
    template<class Archive >
    void save (Archive &ar, const unsigned int version) const
     
    template<class Archive >
    void load (Archive &ar, const unsigned int version)
    template<class Archive >
    void load (Archive &ar, const unsigned int version)
     
    template<class Archive >
    void serialize (Archive &archive, const unsigned int version)
    template<class Archive >
    void serialize (Archive &archive, const unsigned int version)
     
    void swap (VectorBase &v) noexcept
    void swap (VectorBase &v) noexcept
     
     operator const Vec & () const
     operator const Vec & () const
     
    Vec & petsc_vector ()
     
    std::size_t memory_consumption () const
    std::size_t memory_consumption () const
     
    MPI_Comm get_mpi_communicator () const
    MPI_Comm get_mpi_communicator () const
     
    Subscriptor functionality

    Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class.

    │ │ │ │
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    unsigned int n_subscriptions () const
    unsigned int n_subscriptions () const
     
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
     
    void list_subscribers () const
    void list_subscribers () const
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Public Member Functions

    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
     
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Protected Member Functions

    void do_set_add_operation (const size_type n_elements, const size_type *indices, const PetscScalar *values, const bool add_values)
    void do_set_add_operation (const size_type n_elements, const size_type *indices, const PetscScalar *values, const bool add_values)
     
    void determine_ghost_indices ()
     
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -308,50 +308,50 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Protected Attributes

    Vec vector
    IndexSet ghost_indices
     
    VectorOperation::values last_action
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Types

    using map_value_type = decltype(counter_map)::value_type
    using map_value_type = decltype(counter_map)::value_type
     
    using map_iterator = decltype(counter_map)::iterator
    using map_iterator = decltype(counter_map)::iterator
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Member Functions

    void check_no_subscribers () const noexcept
    void check_no_subscribers () const noexcept
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Attributes

    std::atomic< unsigned intcounter
     
    std::map< std::string, unsigned intcounter_map
     
    std::vector< std::atomic< bool > * > validity_pointers
     
    const std::type_info * object_info
    const std::type_info * object_info
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Private Attributes

    static std::mutex mutex
    static std::mutex mutex
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Friends

    class internal::VectorReference
    class internal::VectorReference
     
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Related Symbols

    (Note that these are not member symbols.)

    │ │ │ │
    void swap (VectorBase &u, VectorBase &v) noexcept
    void swap (VectorBase &u, VectorBase &v) noexcept
     
    │ │ │ │

    Detailed Description

    │ │ │ │

    Base class for all vector classes that are implemented on top of the PETSc vector types. Since in PETSc all vector types (i.e. sequential and parallel ones) are built by filling the contents of an abstract object that is only referenced through a pointer of a type that is independent of the actual vector type, we can implement almost all functionality of vectors in this base class. As such, this class can also be used as a deal.II-compatible wrapper for a PETSc Vec object of any type. Derived classes will then only have to provide the functionality to create one or the other kind of vector.

    │ │ │ │

    The interface of this class is modeled after the existing Vector class in deal.II. It has almost the same member functions, and is often exchangeable. However, since PETSc only supports a single scalar type (either double, float, or a complex data type), it is not templated, and only works with whatever your PETSc installation has defined the data type PetscScalar to.

    │ │ │ │

    Note that PETSc only guarantees that operations do what you expect if the functions VecAssemblyBegin and VecAssemblyEnd have been called after vector assembly. Therefore, you need to call Vector::compress() before you actually use the vector.

    │ │ │ │ │ │ │ │ @@ -360,15 +360,15 @@ │ │ │ │ │ │ │ │

    ◆ value_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::VectorBase::value_type = PetscScalarusing PETScWrappers::VectorBase::value_type = PetscScalar
    │ │ │ │
    │ │ │ │

    Declare some of the standard types used in all containers. These types parallel those in the C++ standard libraries vector<...> class.

    │ │ │ │ │ │ │ │

    Definition at line 260 of file petsc_vector_base.h.

    │ │ │ │ │ │ │ │ @@ -377,15 +377,15 @@ │ │ │ │ │ │ │ │

    ◆ real_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::VectorBase::real_type = PetscRealusing PETScWrappers::VectorBase::real_type = PetscReal
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 261 of file petsc_vector_base.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -393,15 +393,15 @@ │ │ │ │ │ │ │ │

    ◆ size_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::VectorBase::size_type = types::global_dof_indexusing PETScWrappers::VectorBase::size_type = types::global_dof_index
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 262 of file petsc_vector_base.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -409,15 +409,15 @@ │ │ │ │ │ │ │ │

    ◆ reference

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::VectorBase::reference = internal::VectorReferenceusing PETScWrappers::VectorBase::reference = internal::VectorReference
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 263 of file petsc_vector_base.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -425,15 +425,15 @@ │ │ │ │ │ │ │ │

    ◆ const_reference

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using PETScWrappers::VectorBase::const_reference = const internal::VectorReferenceusing PETScWrappers::VectorBase::const_reference = const internal::VectorReference
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 264 of file petsc_vector_base.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -444,15 +444,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_value_type = decltype(counter_map)::value_typeusing Subscriptor::map_value_type = decltype(counter_map)::value_type
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -469,15 +469,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_iterator = decltype(counter_map)::iteratorusing Subscriptor::map_iterator = decltype(counter_map)::iterator
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -514,15 +514,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PETScWrappers::VectorBase::VectorBase (const VectorBaseconst VectorBasev)
    │ │ │ │
    │ │ │ │

    Copy constructor. Sets the dimension to that of the given vector, and copies all elements.

    │ │ │ │ │ │ │ │ @@ -538,15 +538,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -623,15 +623,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PETScWrappers::VectorBase::VectorBase (const Vec & const Vec & v)
    │ │ │ │
    │ │ │ │ explicit
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::compress (const VectorOperation::values const VectorOperation::values operation)
    │ │ │ │
    │ │ │ │

    Compress the underlying representation of the PETSc object, i.e. flush the buffers of the vector object if it has any. This function is necessary after writing into a vector element-by-element and before anything else can be done on it.

    │ │ │ │

    See Compressing distributed objects for more information.

    │ │ │ │ @@ -643,17 +643,17 @@ │ │ │ │ │ │ │ │

    ◆ operator=() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator= VectorBase & PETScWrappers::VectorBase::operator= (const VectorBaseconst VectorBasev)
    │ │ │ │
    │ │ │ │

    The copy assignment operator.

    │ │ │ │ │ │ │ │ @@ -664,17 +664,17 @@ │ │ │ │ │ │ │ │

    ◆ operator=() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator= VectorBase & PETScWrappers::VectorBase::operator= (const PetscScalar const PetscScalar s)
    │ │ │ │
    │ │ │ │

    Set all components of the vector to the given number s. Simply pass this down to the individual block objects, but we still need to declare this function to make the example given in the discussion about making the constructor explicit work.

    │ │ │ │

    Since the semantics of assigning a scalar to a vector are not immediately clear, this operator should really only be used if you want to set the entire vector to zero. This allows the intuitive notation v=0. Assigning other values is deprecated and may be disallowed in the future.

    │ │ │ │ @@ -707,17 +707,17 @@ │ │ │ │ │ │ │ │

    ◆ operator==()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool PETScWrappers::VectorBase::operator== bool PETScWrappers::VectorBase::operator== (const VectorBaseconst VectorBasev) const
    │ │ │ │
    │ │ │ │

    Test for equality. This function assumes that the present vector and the one to compare with have the same size already, since comparing vectors of different sizes makes not much sense anyway.

    │ │ │ │ │ │ │ │ @@ -730,15 +730,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool PETScWrappers::VectorBase::operator!= (const VectorBaseconst VectorBasev) const
    │ │ │ │
    │ │ │ │

    Test for inequality. This function assumes that the present vector and the one to compare with have the same size already, since comparing vectors of different sizes makes not much sense anyway.

    │ │ │ │ │ │ │ │ @@ -822,15 +822,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool PETScWrappers::VectorBase::in_local_range (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │

    Return whether index is in the local range or not, see also local_range().

    │ │ │ │ │ │ │ │ @@ -846,15 +846,16 @@ │ │ │ │
    IndexSet PETScWrappers::VectorBase::locally_owned_elements () const
    │ │ │ │
    │ │ │ │ -

    Return an index set that describes which elements of this vector are owned by the current processor. Note that this index set does not include elements this vector may store locally as ghost elements but that are in fact owned by another processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set (vec.size())
    │ │ │ │ +

    Return an index set that describes which elements of this vector are owned by the current processor. Note that this index set does not include elements this vector may store locally as ghost elements but that are in fact owned by another processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set (vec.size())
    │ │ │ │ + │ │ │ │
    IndexSet complete_index_set(const IndexSet::size_type N)
    Definition index_set.h:1204
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ has_ghost_elements()

    │ │ │ │ │ │ │ │ @@ -877,15 +878,15 @@ │ │ │ │ │ │ │ │

    ◆ ghost_elements()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    const IndexSet & PETScWrappers::VectorBase::ghost_elements const IndexSet & PETScWrappers::VectorBase::ghost_elements () const
    │ │ │ │
    │ │ │ │

    Return the IndexSet of ghost elements.

    │ │ │ │ @@ -913,17 +914,17 @@ │ │ │ │ │ │ │ │

    ◆ operator()() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    reference PETScWrappers::VectorBase::operator() reference PETScWrappers::VectorBase::operator() (const size_type const size_type index)
    │ │ │ │
    │ │ │ │

    Provide access to a given element, both read and write.

    │ │ │ │ │ │ │ │ @@ -932,17 +933,17 @@ │ │ │ │ │ │ │ │

    ◆ operator()() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PetscScalar PETScWrappers::VectorBase::operator() PetscScalar PETScWrappers::VectorBase::operator() (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │

    Provide read-only access to an element.

    │ │ │ │ │ │ │ │ @@ -951,63 +952,63 @@ │ │ │ │ │ │ │ │

    ◆ operator[]() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    reference PETScWrappers::VectorBase::operator[] reference PETScWrappers::VectorBase::operator[] (const size_type const size_type index)
    │ │ │ │
    │ │ │ │

    Provide access to a given element, both read and write.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator[]() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PetscScalar PETScWrappers::VectorBase::operator[] PetscScalar PETScWrappers::VectorBase::operator[] (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │

    Provide read-only access to an element.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ set()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1024,15 +1025,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::set (const std::vector< size_type > & const std::vector< size_type > & indices,
    const std::vector< PetscScalar > & const std::vector< PetscScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1040,15 +1041,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::extract_subvector_to (const std::vector< size_type > & const std::vector< size_type > & indices,
    std::vector< PetscScalar > & values 
    ) const
    │ │ │ │
    │ │ │ │ -

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. The indices of the elements to be read are stated in the first argument, the corresponding values are returned in the second.

    │ │ │ │ +

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. The indices of the elements to be read are stated in the first argument, the corresponding values are returned in the second.

    │ │ │ │

    If the current vector is called v, then this function is the equivalent to the code

    for (unsigned int i=0; i<indices.size(); ++i)
    │ │ │ │
    values[i] = v[indices[i]];
    │ │ │ │
    Precondition
    The sizes of the indices and values arrays must be identical.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -1057,17 +1058,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1092,70 +1093,70 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ extract_subvector_to() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename ForwardIterator , typename OutputIterator >
    │ │ │ │ +template<typename ForwardIterator , typename OutputIterator >
    │ │ │ │
    virtual void PETScWrappers::VectorBase::extract_subvector_to virtual void PETScWrappers::VectorBase::extract_subvector_to (const ArrayView< const types::global_dof_index > & const ArrayView< const types::global_dof_index > & indices,
    ArrayView< PetscScalar > & elements 
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::extract_subvector_to (const ForwardIterator const ForwardIterator indices_begin,
    const ForwardIterator const ForwardIterator indices_end,
    OutputIterator OutputIterator values_begin 
    ) const
    │ │ │ │
    │ │ │ │ -

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. In contrast to the previous function, this function obtains the indices of the elements by dereferencing all elements of the iterator range provided by the first two arguments, and puts the vector values into memory locations obtained by dereferencing a range of iterators starting at the location pointed to by the third argument.

    │ │ │ │ -

    If the current vector is called v, then this function is the equivalent to the code

    ForwardIterator indices_p = indices_begin;
    │ │ │ │ -
    OutputIterator values_p = values_begin;
    │ │ │ │ -
    while (indices_p != indices_end)
    │ │ │ │ +

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. In contrast to the previous function, this function obtains the indices of the elements by dereferencing all elements of the iterator range provided by the first two arguments, and puts the vector values into memory locations obtained by dereferencing a range of iterators starting at the location pointed to by the third argument.

    │ │ │ │ +

    If the current vector is called v, then this function is the equivalent to the code

    │ │ │ │ + │ │ │ │ + │ │ │ │
    {
    │ │ │ │ -
    *values_p = v[*indices_p];
    │ │ │ │ -
    ++indices_p;
    │ │ │ │ -
    ++values_p;
    │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
    }
    │ │ │ │
    Precondition
    It must be possible to write into as many memory locations starting at values_begin as there are iterators between indices_begin and indices_end.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ add() [1/6]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1172,21 +1173,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::add (const std::vector< size_type > & const std::vector< size_type > & indices,
    const std::vector< PetscScalar > & const std::vector< PetscScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1203,27 +1204,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::add (const std::vector< size_type > & const std::vector< size_type > & indices,
    const ::Vector< PetscScalar > & const ::Vector< PetscScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1238,17 +1239,17 @@ │ │ │ │ │ │ │ │

    ◆ operator*()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::add (const size_type const size_type n_elements,
    const size_typeconst size_typeindices,
    const PetscScalar * const PetscScalar * values 
    )
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PetscScalar PETScWrappers::VectorBase::operator* PetscScalar PETScWrappers::VectorBase::operator* (const VectorBaseconst VectorBasevec) const
    │ │ │ │
    │ │ │ │

    Return the scalar product of two vectors. The vectors must have the same size.

    │ │ │ │

    For complex valued vector, this gives \(\left(v^\ast,vec\right)\).

    │ │ │ │ @@ -1343,15 +1344,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase::real_type PETScWrappers::VectorBase::lp_norm (const real_type const real_type p) const
    │ │ │ │
    │ │ │ │

    \(l_p\)-norm of the vector. The pth root of the sum of the pth powers of the absolute values of the elements.

    │ │ │ │ │ │ │ │ @@ -1384,27 +1385,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1443,17 +1444,17 @@ │ │ │ │ │ │ │ │

    ◆ operator*=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    PetscScalar PETScWrappers::VectorBase::add_and_dot (const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV,
    const VectorBaseconst VectorBaseW 
    )
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator*= VectorBase & PETScWrappers::VectorBase::operator*= (const PetscScalar const PetscScalar factor)
    │ │ │ │
    │ │ │ │

    Multiply the entire vector by a fixed factor.

    │ │ │ │ │ │ │ │ @@ -1464,17 +1465,17 @@ │ │ │ │ │ │ │ │

    ◆ operator/=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator/= VectorBase & PETScWrappers::VectorBase::operator/= (const PetscScalar const PetscScalar factor)
    │ │ │ │
    │ │ │ │

    Divide the entire vector by a fixed factor.

    │ │ │ │ │ │ │ │ @@ -1485,17 +1486,17 @@ │ │ │ │ │ │ │ │

    ◆ operator+=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator+= VectorBase & PETScWrappers::VectorBase::operator+= (const VectorBaseconst VectorBaseV)
    │ │ │ │
    │ │ │ │

    Add the given vector to the present one.

    │ │ │ │ │ │ │ │ @@ -1506,17 +1507,17 @@ │ │ │ │ │ │ │ │

    ◆ operator-=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    VectorBase & PETScWrappers::VectorBase::operator-= VectorBase & PETScWrappers::VectorBase::operator-= (const VectorBaseconst VectorBaseV)
    │ │ │ │
    │ │ │ │

    Subtract the given vector from the present one.

    │ │ │ │ │ │ │ │ @@ -1529,15 +1530,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::add (const PetscScalar const PetscScalar s)
    │ │ │ │
    │ │ │ │

    Addition of s to all components. Note that s is a scalar and not a vector.

    │ │ │ │ │ │ │ │ @@ -1550,21 +1551,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1581,33 +1582,33 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::add (const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1624,21 +1625,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::add (const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV,
    const PetscScalar const PetscScalar b,
    const VectorBaseconst VectorBaseW 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1655,27 +1656,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::sadd (const PetscScalar const PetscScalar s,
    const VectorBaseconst VectorBaseV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1692,15 +1693,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::sadd (const PetscScalar const PetscScalar s,
    const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::scale (const VectorBaseconst VectorBasescaling_factors)
    │ │ │ │
    │ │ │ │

    Scale each element of this vector by the corresponding element in the argument. This function is mostly meant to simulate multiplication (and immediate re-assignment) by a diagonal scaling matrix.

    │ │ │ │ │ │ │ │ @@ -1713,21 +1714,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1744,16 +1745,16 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::equ (const PetscScalar const PetscScalar a,
    const VectorBaseconst VectorBaseV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
    void PETScWrappers::VectorBase::write_ascii (const PetscViewerFormat format = PETSC_VIEWER_DEFAULT)const PetscViewerFormat format = PETSC_VIEWER_DEFAULT)
    │ │ │ │
    │ │ │ │

    Prints the PETSc vector object values using PETSc internal vector viewer function VecView. The default format prints the vector's contents, including indices of vector elements. For other valid view formats, consult http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecView.html

    │ │ │ │ │ │ │ │

    Definition at line 952 of file petsc_vector_base.cc.

    │ │ │ │ @@ -1771,28 +1772,28 @@ │ │ │ │
    (std::ostream & out,
    const unsigned int const unsigned int precision = 3,
    const bool scientific = true, const bool scientific = true,
    const bool across = true const bool across = true 
    ) const
    │ │ │ │ @@ -1805,26 +1806,26 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ save()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<class Archive >
    │ │ │ │ +template<class Archive >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1837,26 +1838,26 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ load()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<class Archive >
    │ │ │ │ +template<class Archive >
    │ │ │ │
    void PETScWrappers::VectorBase::save (Archive & Archivear,
    const unsigned int const unsigned int version 
    ) const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1868,26 +1869,26 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ serialize()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<class Archive >
    │ │ │ │ +template<class Archive >
    │ │ │ │
    void PETScWrappers::VectorBase::load (Archive & Archivear,
    const unsigned int const unsigned int version 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1930,15 +1931,15 @@ │ │ │ │ │ │ │ │

    ◆ operator const Vec &()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void PETScWrappers::VectorBase::serialize (Archive & Archivearchive,
    const unsigned int const unsigned int version 
    )
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    PETScWrappers::VectorBase::operator const Vec & PETScWrappers::VectorBase::operator const Vec & () const
    │ │ │ │
    │ │ │ │

    Conversion operator to gain access to the underlying PETSc type. If you do this, you cut this class off some information it may need, so this conversion operator should only be used if you know what you do. In particular, it should only be used for read-only operations into the vector.

    │ │ │ │ @@ -2013,33 +2014,33 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2193,15 +2194,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ list_subscribers() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename StreamType >
    │ │ │ │ +template<typename StreamType >
    │ │ │ │
    void PETScWrappers::VectorBase::do_set_add_operation (const size_type const size_type n_elements,
    const size_typeconst size_typeindices,
    const PetscScalar * const PetscScalar * values,
    const bool const bool add_values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2288,15 +2289,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Subscriptor::list_subscribers (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    friend class internal::VectorReferencefriend class internal::VectorReference
    │ │ │ │
    │ │ │ │ friend
    │ │ │ │ @@ -2530,15 +2531,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    const std::type_info* Subscriptor::object_infoconst std::type_info* Subscriptor::object_info
    │ │ │ │
    │ │ │ │ mutableprivateinherited
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -15,244 +15,244 @@ │ │ │ │ │ PETScWrappers::VectorBase Class Reference │ │ │ │ │ _L_i_n_e_a_r_ _a_l_g_e_b_r_a_ _c_l_a_s_s_e_s » _P_E_T_S_c_W_r_a_p_p_e_r_s │ │ │ │ │ #include <_d_e_a_l_._I_I_/_l_a_c_/_p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h> │ │ │ │ │ Inheritance diagram for PETScWrappers::VectorBase: │ │ │ │ │ [Inheritance graph] │ │ │ │ │ [_l_e_g_e_n_d] │ │ │ │ │ PPuubblliicc TTyyppeess │ │ │ │ │ -using  _v_a_l_u_e___t_y_p_e = PetscScalar │ │ │ │ │ +_u_s_i_n_g  _v_a_l_u_e___t_y_p_e = PetscScalar │ │ │ │ │   │ │ │ │ │ -using  _r_e_a_l___t_y_p_e = PetscReal │ │ │ │ │ +_u_s_i_n_g  _r_e_a_l___t_y_p_e = PetscReal │ │ │ │ │   │ │ │ │ │ -using  _s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │ +_u_s_i_n_g  _s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │   │ │ │ │ │ -using  _r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │ +_u_s_i_n_g  _r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │   │ │ │ │ │ -using  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = const internal::VectorReference │ │ │ │ │ +_u_s_i_n_g  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = _c_o_n_s_t internal::VectorReference │ │ │ │ │   │ │ │ │ │ PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │   _V_e_c_t_o_r_B_a_s_e () │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r_B_a_s_e (const _V_e_c_t_o_r_B_a_s_e &v) │ │ │ │ │ +   _V_e_c_t_o_r_B_a_s_e (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &v) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r_B_a_s_e (const Vec &v) │ │ │ │ │ +   _V_e_c_t_o_r_B_a_s_e (_c_o_n_s_t Vec &v) │ │ │ │ │   │ │ │ │ │ - virtual  _~_V_e_c_t_o_r_B_a_s_e () override │ │ │ │ │ + _v_i_r_t_u_a_l  _~_V_e_c_t_o_r_B_a_s_e () _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ - virtual void  _c_l_e_a_r () │ │ │ │ │ + _v_i_r_t_u_a_l void  _c_l_e_a_r () │ │ │ │ │   │ │ │ │ │ - void  _c_o_m_p_r_e_s_s (const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ + void  _c_o_m_p_r_e_s_s (_c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ operation) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_= (const _V_e_c_t_o_r_B_a_s_e &) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_= (const PetscScalar s) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t PetscScalar s) │ │ │ │ │   │ │ │ │ │ void  _r_e_i_n_i_t (Vec v) │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _o_p_e_r_a_t_o_r_=_= (const _V_e_c_t_o_r_B_a_s_e &v) const │ │ │ │ │ + _b_o_o_l  _o_p_e_r_a_t_o_r_=_= (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &v) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _o_p_e_r_a_t_o_r_!_= (const _V_e_c_t_o_r_B_a_s_e &v) const │ │ │ │ │ + _b_o_o_l  _o_p_e_r_a_t_o_r_!_= (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &v) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _s_i_z_e___t_y_p_e  _s_i_z_e () const override │ │ │ │ │ + _s_i_z_e___t_y_p_e  _s_i_z_e () _c_o_n_s_t _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ - _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () const │ │ │ │ │ + _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -std::pair< _s_i_z_e___t_y_p_e, _s_i_z_e___t_y_p_e >  _l_o_c_a_l___r_a_n_g_e () const │ │ │ │ │ +std::pair< _s_i_z_e___t_y_p_e, _s_i_z_e___t_y_p_e >  _l_o_c_a_l___r_a_n_g_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _i_n___l_o_c_a_l___r_a_n_g_e (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + _b_o_o_l  _i_n___l_o_c_a_l___r_a_n_g_e (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - const _I_n_d_e_x_S_e_t &  _g_h_o_s_t___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _c_o_n_s_t _I_n_d_e_x_S_e_t &  _g_h_o_s_t___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _u_p_d_a_t_e___g_h_o_s_t___v_a_l_u_e_s () const │ │ │ │ │ + void  _u_p_d_a_t_e___g_h_o_s_t___v_a_l_u_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - PetscScalar  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + PetscScalar  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - PetscScalar  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + PetscScalar  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _s_e_t (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const std::vector< PetscScalar > │ │ │ │ │ + void  _s_e_t (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t std::vector< PetscScalar > │ │ │ │ │ &values) │ │ │ │ │   │ │ │ │ │ - void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const std::vector< │ │ │ │ │ + void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t std::vector< │ │ │ │ │ _s_i_z_e___t_y_p_e > &indices, std::vector< │ │ │ │ │ - PetscScalar > &values) const │ │ │ │ │ + PetscScalar > &values) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - virtual void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const _A_r_r_a_y_V_i_e_w< const │ │ │ │ │ + _v_i_r_t_u_a_l void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t _A_r_r_a_y_V_i_e_w< _c_o_n_s_t │ │ │ │ │ _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x > &indices, │ │ │ │ │ - _A_r_r_a_y_V_i_e_w< PetscScalar > &elements) const │ │ │ │ │ - override │ │ │ │ │ + _A_r_r_a_y_V_i_e_w< PetscScalar > &elements) _c_o_n_s_t │ │ │ │ │ + _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const ForwardIterator │ │ │ │ │ - indices_begin, const ForwardIterator │ │ │ │ │ - indices_end, OutputIterator values_begin) │ │ │ │ │ - const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r , _t_y_p_e_n_a_m_e _O_u_t_p_u_t_I_t_e_r_a_t_o_r > │ │ │ │ │ + void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r │ │ │ │ │ + _i_n_d_i_c_e_s___b_e_g_i_n, _c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r │ │ │ │ │ + _i_n_d_i_c_e_s___e_n_d, _O_u_t_p_u_t_I_t_e_r_a_t_o_r _v_a_l_u_e_s___b_e_g_i_n) │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const std::vector< PetscScalar > │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t std::vector< PetscScalar > │ │ │ │ │ &values) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const _:_:_V_e_c_t_o_r< PetscScalar > │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t _:_:_V_e_c_t_o_r< PetscScalar > │ │ │ │ │ &values) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const _s_i_z_e___t_y_p_e n_elements, const │ │ │ │ │ - _s_i_z_e___t_y_p_e *indices, const PetscScalar │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t _s_i_z_e___t_y_p_e n_elements, _c_o_n_s_t │ │ │ │ │ + _s_i_z_e___t_y_p_e *indices, _c_o_n_s_t PetscScalar │ │ │ │ │ *values) │ │ │ │ │   │ │ │ │ │ - PetscScalar  _o_p_e_r_a_t_o_r_* (const _V_e_c_t_o_r_B_a_s_e &vec) const │ │ │ │ │ + PetscScalar  _o_p_e_r_a_t_o_r_* (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &_v_e_c) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _n_o_r_m___s_q_r () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _n_o_r_m___s_q_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - PetscScalar  _m_e_a_n___v_a_l_u_e () const │ │ │ │ │ + PetscScalar  _m_e_a_n___v_a_l_u_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_1___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_1___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_2___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_2___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_p___n_o_r_m (const _r_e_a_l___t_y_p_e p) const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_p___n_o_r_m (_c_o_n_s_t _r_e_a_l___t_y_p_e p) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_i_n_f_t_y___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_i_n_f_t_y___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - PetscScalar  _a_d_d___a_n_d___d_o_t (const PetscScalar a, const │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &V, const _V_e_c_t_o_r_B_a_s_e &W) │ │ │ │ │ + PetscScalar  _a_d_d___a_n_d___d_o_t (_c_o_n_s_t PetscScalar a, _c_o_n_s_t │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &V, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &W) │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _a_l_l___z_e_r_o () const │ │ │ │ │ + _b_o_o_l  _a_l_l___z_e_r_o () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_*_= (const PetscScalar factor) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_*_= (_c_o_n_s_t PetscScalar factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_/_= (const PetscScalar factor) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_/_= (_c_o_n_s_t PetscScalar factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_+_= (const _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_+_= (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_-_= (const _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │ + _V_e_c_t_o_r_B_a_s_e &  _o_p_e_r_a_t_o_r_-_= (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const PetscScalar s) │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t PetscScalar s) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const PetscScalar a, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t PetscScalar a, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const PetscScalar a, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ - &V, const PetscScalar b, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t PetscScalar a, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + &V, _c_o_n_s_t PetscScalar b, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ &W) │ │ │ │ │   │ │ │ │ │ - void  _s_a_d_d (const PetscScalar s, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + void  _s_a_d_d (_c_o_n_s_t PetscScalar s, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ - void  _s_a_d_d (const PetscScalar s, const PetscScalar │ │ │ │ │ - a, const _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │ + void  _s_a_d_d (_c_o_n_s_t PetscScalar s, _c_o_n_s_t PetscScalar │ │ │ │ │ + a, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &V) │ │ │ │ │   │ │ │ │ │ - void  _s_c_a_l_e (const _V_e_c_t_o_r_B_a_s_e &scaling_factors) │ │ │ │ │ + void  _s_c_a_l_e (_c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &_s_c_a_l_i_n_g___f_a_c_t_o_r_s) │ │ │ │ │   │ │ │ │ │ - void  _e_q_u (const PetscScalar a, const _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ + void  _e_q_u (_c_o_n_s_t PetscScalar a, _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ - void  _w_r_i_t_e___a_s_c_i_i (const PetscViewerFormat │ │ │ │ │ - format=PETSC_VIEWER_DEFAULT) │ │ │ │ │ + void  _w_r_i_t_e___a_s_c_i_i (_c_o_n_s_t _P_e_t_s_c_V_i_e_w_e_r_F_o_r_m_a_t │ │ │ │ │ + _f_o_r_m_a_t=_P_E_T_S_C___V_I_E_W_E_R___D_E_F_A_U_L_T) │ │ │ │ │   │ │ │ │ │ - void  _p_r_i_n_t (std::ostream &out, const unsigned _i_n_t │ │ │ │ │ - precision=3, const _b_o_o_l scientific=true, │ │ │ │ │ - const _b_o_o_l across=true) const │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ - void  _s_a_v_e (Archive &ar, const unsigned _i_n_t │ │ │ │ │ - version) const │ │ │ │ │ + void  _p_r_i_n_t (std::ostream &out, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ + precision=3, _c_o_n_s_t _b_o_o_l scientific=_t_r_u_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l _a_c_r_o_s_s=_t_r_u_e) _c_o_n_s_t │ │ │ │ │ +  │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ + void  _s_a_v_e (_A_r_c_h_i_v_e &_a_r, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ + version) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _l_o_a_d (Archive &ar, const unsigned _i_n_t │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ + void  _l_o_a_d (_A_r_c_h_i_v_e &_a_r, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ version) │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _s_e_r_i_a_l_i_z_e (Archive &archive, const unsigned │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ + void  _s_e_r_i_a_l_i_z_e (_A_r_c_h_i_v_e &_a_r_c_h_i_v_e, _c_o_n_s_t unsigned │ │ │ │ │ _i_n_t version) │ │ │ │ │   │ │ │ │ │ - void  _s_w_a_p (_V_e_c_t_o_r_B_a_s_e &v) noexcept │ │ │ │ │ + void  _s_w_a_p (_V_e_c_t_o_r_B_a_s_e &v) _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ -   _o_p_e_r_a_t_o_r_ _c_o_n_s_t_ _V_e_c_ _& () const │ │ │ │ │ +   _o_p_e_r_a_t_o_r_ _c_o_n_s_t_ _V_e_c_ _& () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Vec &  _p_e_t_s_c___v_e_c_t_o_r () │ │ │ │ │   │ │ │ │ │ - std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () const │ │ │ │ │ + std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () const │ │ │ │ │ + _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Subscriptor functionality │ │ │ │ │ Classes derived from _S_u_b_s_c_r_i_p_t_o_r provide a facility to subscribe to this │ │ │ │ │ object. This is mostly used by the _S_m_a_r_t_P_o_i_n_t_e_r class. │ │ │ │ │ - void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const │ │ │ │ │ - validity, const std::string &identifier="") │ │ │ │ │ - const │ │ │ │ │ + void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t │ │ │ │ │ + _v_a_l_i_d_i_t_y, _c_o_n_s_t std::string &_i_d_e_n_t_i_f_i_e_r="") │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const │ │ │ │ │ - validity, const std::string &identifier="") │ │ │ │ │ - const │ │ │ │ │ + void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t │ │ │ │ │ + _v_a_l_i_d_i_t_y, _c_o_n_s_t std::string &_i_d_e_n_t_i_f_i_e_r="") │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () const │ │ │ │ │ + unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (StreamType &stream) const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (_S_t_r_e_a_m_T_y_p_e &stream) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () const │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t arg1, std::string arg2, std::string │ │ │ │ │ - arg3) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t _a_r_g_1, std::string _a_r_g_2, std::string │ │ │ │ │ + _a_r_g_3) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string arg1, std::string arg2) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string _a_r_g_1, std::string _a_r_g_2) │ │ │ │ │   │ │ │ │ │ PPrrootteecctteedd MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -void  _d_o___s_e_t___a_d_d___o_p_e_r_a_t_i_o_n (const _s_i_z_e___t_y_p_e n_elements, const _s_i_z_e___t_y_p_e │ │ │ │ │ - *indices, const PetscScalar *values, const _b_o_o_l add_values) │ │ │ │ │ +void  _d_o___s_e_t___a_d_d___o_p_e_r_a_t_i_o_n (_c_o_n_s_t _s_i_z_e___t_y_p_e n_elements, _c_o_n_s_t _s_i_z_e___t_y_p_e │ │ │ │ │ + *indices, _c_o_n_s_t PetscScalar *values, _c_o_n_s_t _b_o_o_l _a_d_d___v_a_l_u_e_s) │ │ │ │ │   │ │ │ │ │ void  _d_e_t_e_r_m_i_n_e___g_h_o_s_t___i_n_d_i_c_e_s () │ │ │ │ │   │ │ │ │ │ PPrrootteecctteedd AAttttrriibbuutteess │ │ │ │ │ Vec  _v_e_c_t_o_r │ │ │ │ │   │ │ │ │ │ _b_o_o_l  _g_h_o_s_t_e_d │ │ │ │ │   │ │ │ │ │ _I_n_d_e_x_S_e_t  _g_h_o_s_t___i_n_d_i_c_e_s │ │ │ │ │   │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  _l_a_s_t___a_c_t_i_o_n │ │ │ │ │   │ │ │ │ │ PPrriivvaattee TTyyppeess │ │ │ │ │ -using  _m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g  _m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │   │ │ │ │ │ -using  _m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p)::iterator │ │ │ │ │ +_u_s_i_n_g  _m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)::iterator │ │ │ │ │   │ │ │ │ │ PPrriivvaattee MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () const noexcept │ │ │ │ │ +void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ std::atomic< unsigned _i_n_t >  _c_o_u_n_t_e_r │ │ │ │ │   │ │ │ │ │ std::map< std::string, unsigned _i_n_t >  _c_o_u_n_t_e_r___m_a_p │ │ │ │ │   │ │ │ │ │ std::vector< std::atomic< _b_o_o_l > * >  _v_a_l_i_d_i_t_y___p_o_i_n_t_e_r_s │ │ │ │ │   │ │ │ │ │ - const std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │ + _c_o_n_s_t std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ -static std::mutex  _m_u_t_e_x │ │ │ │ │ +_s_t_a_t_i_c std::mutex  _m_u_t_e_x │ │ │ │ │   │ │ │ │ │ FFrriieennddss │ │ │ │ │ -class  _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e │ │ │ │ │ +_c_l_a_s_s  _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e │ │ │ │ │   │ │ │ │ │ RReellaatteedd SSyymmbboollss │ │ │ │ │ (Note that these are not member symbols.) │ │ │ │ │ -void  _s_w_a_p (_V_e_c_t_o_r_B_a_s_e &u, _V_e_c_t_o_r_B_a_s_e &v) noexcept │ │ │ │ │ +void  _s_w_a_p (_V_e_c_t_o_r_B_a_s_e &_u, _V_e_c_t_o_r_B_a_s_e &v) _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ Base class for all vector classes that are implemented on top of the PETSc │ │ │ │ │ vector types. Since in PETSc all vector types (i.e. sequential and parallel │ │ │ │ │ ones) are built by filling the contents of an abstract object that is only │ │ │ │ │ referenced through a pointer of a type that is independent of the actual vector │ │ │ │ │ type, we can implement almost all functionality of vectors in this base class. │ │ │ │ │ @@ -267,54 +267,54 @@ │ │ │ │ │ Note that PETSc only guarantees that operations do what you expect if the │ │ │ │ │ functions VecAssemblyBegin and VecAssemblyEnd have been called after vector │ │ │ │ │ assembly. Therefore, you need to call _V_e_c_t_o_r_:_:_c_o_m_p_r_e_s_s_(_) before you actually │ │ │ │ │ use the vector. │ │ │ │ │ Definition at line _2_5_2 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** MMeemmbbeerr TTyyppeeddeeff DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? vvaalluuee__ttyyppee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_v_a_l_u_e___t_y_p_e = PetscScalar │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_v_a_l_u_e___t_y_p_e = PetscScalar │ │ │ │ │ Declare some of the standard types used in all containers. These types parallel │ │ │ │ │ those in the C++ standard libraries vector<...> class. │ │ │ │ │ Definition at line _2_6_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? rreeaall__ttyyppee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e = PetscReal │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e = PetscReal │ │ │ │ │ Definition at line _2_6_1 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? ssiizzee__ttyyppee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_s_i_z_e___t_y_p_e = _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x │ │ │ │ │ Definition at line _2_6_2 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? rreeffeerreennccee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │ Definition at line _2_6_3 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? ccoonnsstt__rreeffeerreennccee ********** │ │ │ │ │ -using _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e = const internal:: │ │ │ │ │ +_u_s_i_n_g _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e = _c_o_n_s_t internal:: │ │ │ │ │ VectorReference │ │ │ │ │ Definition at line _2_6_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? mmaapp__vvaalluuee__ttyyppee ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ _v_a_l_u_e___t_y_p_e │ │ │ │ │ The data type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_2_9 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmaapp__iitteerraattoorr ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p):: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p):: privateinherited │ │ │ │ │ iterator │ │ │ │ │ The iterator type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_3_4 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** CCoonnssttrruuccttoorr && DDeessttrruuccttoorr DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? VVeeccttoorrBBaassee(()) [[11//33]] ********** │ │ │ │ │ PETScWrappers::VectorBase::VectorBase ( ) │ │ │ │ │ Default constructor. It doesn't do anything, derived classes will have to │ │ │ │ │ initialize the data. │ │ │ │ │ Definition at line _1_2_2 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorrBBaassee(()) [[22//33]] ********** │ │ │ │ │ -PETScWrappers::VectorBase::VectorBase ( const _V_e_c_t_o_r_B_a_s_e &  vv ) │ │ │ │ │ +PETScWrappers::VectorBase::VectorBase ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  vv ) │ │ │ │ │ Copy constructor. Sets the dimension to that of the given vector, and copies │ │ │ │ │ all elements. │ │ │ │ │ Definition at line _1_3_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorrBBaassee(()) [[33//33]] ********** │ │ │ │ │ -PETScWrappers::VectorBase:: ( const Vec &  vv ) explicit │ │ │ │ │ +PETScWrappers::VectorBase:: ( _c_o_n_s_t Vec &  vv ) explicit │ │ │ │ │ VectorBase │ │ │ │ │ Initialize a _V_e_c_t_o_r from a PETSc Vec object. Note that we do not copy the │ │ │ │ │ vector. │ │ │ │ │ Definition at line _1_4_5 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ~~VVeeccttoorrBBaassee(()) ********** │ │ │ │ │ PETScWrappers::VectorBase:: ( ) overridevirtual │ │ │ │ │ ~VectorBase │ │ │ │ │ @@ -325,28 +325,28 @@ │ │ │ │ │ void PETScWrappers::VectorBase:: ( ) virtual │ │ │ │ │ clear │ │ │ │ │ Release all memory and return to a state just like after having called the │ │ │ │ │ default constructor. │ │ │ │ │ Reimplemented in _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r. │ │ │ │ │ Definition at line _3_4_5 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ccoommpprreessss(()) ********** │ │ │ │ │ -void PETScWrappers::VectorBase:: ( const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn ) │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn ) │ │ │ │ │ compress │ │ │ │ │ Compress the underlying representation of the PETSc object, i.e. flush the │ │ │ │ │ buffers of the vector object if it has any. This function is necessary after │ │ │ │ │ writing into a vector element-by-element and before anything else can be done │ │ │ │ │ on it. │ │ │ │ │ See _C_o_m_p_r_e_s_s_i_n_g_ _d_i_s_t_r_i_b_u_t_e_d_ _o_b_j_e_c_t_s for more information. │ │ │ │ │ Definition at line _5_4_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[11//22]] ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e & PETScWrappers::VectorBase::operator= ( const _V_e_c_t_o_r_B_a_s_e &  vv ) │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r= ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  vv ) │ │ │ │ │ The copy assignment operator. │ │ │ │ │ Definition at line _3_5_8 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[22//22]] ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e & PETScWrappers::VectorBase::operator= ( const PetscScalar  ss ) │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r= ( _c_o_n_s_t PetscScalar  ss ) │ │ │ │ │ Set all components of the vector to the given number s. Simply pass this down │ │ │ │ │ to the individual block objects, but we still need to declare this function to │ │ │ │ │ make the example given in the discussion about making the constructor explicit │ │ │ │ │ work. │ │ │ │ │ Since the semantics of assigning a scalar to a vector are not immediately │ │ │ │ │ clear, this operator should really only be used if you want to set the entire │ │ │ │ │ vector to zero. This allows the intuitive notation v=0. Assigning other values │ │ │ │ │ @@ -356,21 +356,21 @@ │ │ │ │ │ void PETScWrappers::VectorBase::reinit ( Vec  vv ) │ │ │ │ │ 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 _V_e_c_t_o_r_B_a_s_e and the PETSc Vec without incurring in memory │ │ │ │ │ copies. │ │ │ │ │ Definition at line _1_7_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr====(()) ********** │ │ │ │ │ -_b_o_o_l PETScWrappers::VectorBase::operator== ( const _V_e_c_t_o_r_B_a_s_e &  vv ) const │ │ │ │ │ +_b_o_o_l _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r== ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  vv ) const │ │ │ │ │ Test for equality. This function assumes that the present vector and the one to │ │ │ │ │ compare with have the same size already, since comparing vectors of different │ │ │ │ │ sizes makes not much sense anyway. │ │ │ │ │ Definition at line _3_9_9 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr!!==(()) ********** │ │ │ │ │ -_b_o_o_l PETScWrappers::VectorBase::operator!= ( const _V_e_c_t_o_r_B_a_s_e &  vv ) const │ │ │ │ │ +_b_o_o_l PETScWrappers::VectorBase::operator!= ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  vv ) const │ │ │ │ │ Test for inequality. This function assumes that the present vector and the one │ │ │ │ │ to compare with have the same size already, since comparing vectors of │ │ │ │ │ different sizes makes not much sense anyway. │ │ │ │ │ Definition at line _4_1_3 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssiizzee(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e_:_:_s_i_z_e___t_y_p_e PETScWrappers::VectorBase:: ( ) const overridevirtual │ │ │ │ │ size │ │ │ │ │ @@ -391,146 +391,149 @@ │ │ │ │ │ Return a pair of indices indicating which elements of this vector are stored │ │ │ │ │ locally. The first number is the index of the first element stored, the second │ │ │ │ │ the index of the one past the last one that is stored locally. If this is a │ │ │ │ │ sequential vector, then the result will be the pair (0,N), otherwise it will be │ │ │ │ │ a pair (i,i+n), where n=_l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e_(_). │ │ │ │ │ Definition at line _4_5_1 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? iinn__llooccaall__rraannggee(()) ********** │ │ │ │ │ -_b_o_o_l PETScWrappers::VectorBase::in_local_range ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ +_b_o_o_l PETScWrappers::VectorBase::in_local_range ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ Return whether index is in the local range or not, see also _l_o_c_a_l___r_a_n_g_e_(_). │ │ │ │ │ ********** _?◆_? llooccaallllyy__oowwnneedd__eelleemmeennttss(()) ********** │ │ │ │ │ _I_n_d_e_x_S_e_t PETScWrappers::VectorBase::locally_owned_elements ( ) const │ │ │ │ │ Return an index set that describes which elements of this vector are owned by │ │ │ │ │ the current processor. Note that this index set does not include elements this │ │ │ │ │ vector may store locally as ghost elements but that are in fact owned by │ │ │ │ │ another processor. As a consequence, the index sets returned on different │ │ │ │ │ processors if this is a distributed vector will form disjoint sets that add up │ │ │ │ │ to the complete index set. Obviously, if a vector is created on only one │ │ │ │ │ processor, then the result would satisfy │ │ │ │ │ -vec.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t (vec.size()) │ │ │ │ │ +_v_e_c.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t (_v_e_c.size()) │ │ │ │ │ +_P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_v_e_c_t_o_r │ │ │ │ │ +Vec vector │ │ │ │ │ +DDeeffiinniittiioonn _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h_:_8_1_3 │ │ │ │ │ _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t │ │ │ │ │ IndexSet complete_index_set(const IndexSet::size_type N) │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_2_0_4 │ │ │ │ │ ********** _?◆_? hhaass__gghhoosstt__eelleemmeennttss(()) ********** │ │ │ │ │ _b_o_o_l PETScWrappers::VectorBase::has_ghost_elements ( ) const │ │ │ │ │ Return if the vector contains ghost elements. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ ********** _?◆_? gghhoosstt__eelleemmeennttss(()) ********** │ │ │ │ │ -const _I_n_d_e_x_S_e_t & PETScWrappers::VectorBase::ghost_elements ( ) const │ │ │ │ │ +_c_o_n_s_t _I_n_d_e_x_S_e_t & PETScWrappers::VectorBase::ghost_elements ( ) const │ │ │ │ │ Return the _I_n_d_e_x_S_e_t of ghost elements. │ │ │ │ │ ********** _?◆_? uuppddaattee__gghhoosstt__vvaalluueess(()) ********** │ │ │ │ │ void PETScWrappers::VectorBase::update_ghost_values ( ) const │ │ │ │ │ Update ghosted elements. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[11//22]] ********** │ │ │ │ │ -_r_e_f_e_r_e_n_c_e PETScWrappers::VectorBase::operator() ( const _s_i_z_e___t_y_p_e  iinnddeexx ) │ │ │ │ │ +_r_e_f_e_r_e_n_c_e _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r() ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[22//22]] ********** │ │ │ │ │ -PetscScalar PETScWrappers::VectorBase:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ -operator() │ │ │ │ │ +PetscScalar _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ +_o_p_e_r_a_t_o_r() │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[11//22]] ********** │ │ │ │ │ -_r_e_f_e_r_e_n_c_e PETScWrappers::VectorBase::operator[] ( const _s_i_z_e___t_y_p_e  iinnddeexx ) │ │ │ │ │ +_r_e_f_e_r_e_n_c_e _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r[] ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[22//22]] ********** │ │ │ │ │ -PetscScalar PETScWrappers::VectorBase:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ -operator[] │ │ │ │ │ +PetscScalar _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ +_o_p_e_r_a_t_o_r[] │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ ********** _?◆_? sseett(()) ********** │ │ │ │ │ -void PETScWrappers::VectorBase:: ( const std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ set │ │ │ │ │ - const std::vector< PetscScalar > &  vvaalluueess  │ │ │ │ │ + _c_o_n_s_t std::vector< PetscScalar > &  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ A collective set operation: instead of setting individual elements of a vector, │ │ │ │ │ this function allows to set a whole set of elements at once. The indices of the │ │ │ │ │ elements to be set are stated in the first argument, the corresponding values │ │ │ │ │ in the second. │ │ │ │ │ Definition at line _4_6_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? eexxttrraacctt__ssuubbvveeccttoorr__ttoo(()) [[11//33]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase:: ( const std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ extract_subvector_to │ │ │ │ │ std::vector< PetscScalar > &  vvaalluueess  │ │ │ │ │ ) const │ │ │ │ │ -Instead of getting individual elements of a vector via operator(), this │ │ │ │ │ +Instead of getting individual elements of a vector via _o_p_e_r_a_t_o_r_(_), this │ │ │ │ │ function allows getting a whole set of elements at once. The indices of the │ │ │ │ │ elements to be read are stated in the first argument, the corresponding values │ │ │ │ │ are returned in the second. │ │ │ │ │ If the current vector is called v, then this function is the equivalent to the │ │ │ │ │ code │ │ │ │ │ for (unsigned int i=0; i iinnddiicceess, │ │ │ │ │ VectorBase:: &  overridevirtual │ │ │ │ │ extract_subvector_to │ │ │ │ │ _A_r_r_a_y_V_i_e_w< PetscScalar > &  eelleemmeennttss  │ │ │ │ │ ) const │ │ │ │ │ Extract a range of elements all at once. │ │ │ │ │ Implements _R_e_a_d_V_e_c_t_o_r_<_ _P_e_t_s_c_S_c_a_l_a_r_ _>. │ │ │ │ │ ********** _?◆_? eexxttrraacctt__ssuubbvveeccttoorr__ttoo(()) [[33//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -void PETScWrappers::VectorBase:: ( const ForwardIterator  iinnddiicceess__bbeeggiinn, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r , _t_y_p_e_n_a_m_e _O_u_t_p_u_t_I_t_e_r_a_t_o_r > │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r  iinnddiicceess__bbeeggiinn, │ │ │ │ │ extract_subvector_to │ │ │ │ │ - const ForwardIterator  iinnddiicceess__eenndd, │ │ │ │ │ - OutputIterator  vvaalluueess__bbeeggiinn  │ │ │ │ │ + _c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r  iinnddiicceess__eenndd, │ │ │ │ │ + _O_u_t_p_u_t_I_t_e_r_a_t_o_r  vvaalluueess__bbeeggiinn  │ │ │ │ │ ) const │ │ │ │ │ -Instead of getting individual elements of a vector via operator(), this │ │ │ │ │ +Instead of getting individual elements of a vector via _o_p_e_r_a_t_o_r_(_), this │ │ │ │ │ function allows getting a whole set of elements at once. In contrast to the │ │ │ │ │ previous function, this function obtains the indices of the elements by │ │ │ │ │ dereferencing all elements of the iterator range provided by the first two │ │ │ │ │ arguments, and puts the vector values into memory locations obtained by │ │ │ │ │ dereferencing a range of iterators starting at the location pointed to by the │ │ │ │ │ third argument. │ │ │ │ │ If the current vector is called v, then this function is the equivalent to the │ │ │ │ │ code │ │ │ │ │ -ForwardIterator indices_p = indices_begin; │ │ │ │ │ -OutputIterator values_p = values_begin; │ │ │ │ │ -while (indices_p != indices_end) │ │ │ │ │ +_F_o_r_w_a_r_d_I_t_e_r_a_t_o_r _i_n_d_i_c_e_s___p = _i_n_d_i_c_e_s___b_e_g_i_n; │ │ │ │ │ +_O_u_t_p_u_t_I_t_e_r_a_t_o_r _v_a_l_u_e_s___p = _v_a_l_u_e_s___b_e_g_i_n; │ │ │ │ │ +while (_i_n_d_i_c_e_s___p != _i_n_d_i_c_e_s___e_n_d) │ │ │ │ │ { │ │ │ │ │ -*values_p = v[*indices_p]; │ │ │ │ │ -++indices_p; │ │ │ │ │ -++values_p; │ │ │ │ │ +*_v_a_l_u_e_s___p = v[*_i_n_d_i_c_e_s___p]; │ │ │ │ │ +++_i_n_d_i_c_e_s___p; │ │ │ │ │ +++_v_a_l_u_e_s___p; │ │ │ │ │ } │ │ │ │ │ Precondition │ │ │ │ │ It must be possible to write into as many memory locations starting at │ │ │ │ │ values_begin as there are iterators between indices_begin and │ │ │ │ │ indices_end. │ │ │ │ │ ********** _?◆_? aadddd(()) [[11//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase:: ( const std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ add │ │ │ │ │ - const std::vector< PetscScalar > &  vvaalluueess  │ │ │ │ │ + _c_o_n_s_t std::vector< PetscScalar > &  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ A collective add operation: This function adds a whole set of values stored in │ │ │ │ │ values to the vector components specified by indices. │ │ │ │ │ Definition at line _4_7_5 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[22//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase:: ( const std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ add │ │ │ │ │ - const _:_:_V_e_c_t_o_r< PetscScalar > &  vvaalluueess  │ │ │ │ │ + _c_o_n_s_t _:_:_V_e_c_t_o_r< PetscScalar > &  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ This is a second collective add operation. As a difference, this function takes │ │ │ │ │ a deal.II vector of values. │ │ │ │ │ Definition at line _4_8_6 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[33//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::add ( const _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ - const _s_i_z_e___t_y_p_e *  iinnddiicceess, │ │ │ │ │ - const PetscScalar *  vvaalluueess  │ │ │ │ │ +void PETScWrappers::VectorBase::add ( _c_o_n_s_t _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e *  iinnddiicceess, │ │ │ │ │ + _c_o_n_s_t PetscScalar *  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ Take an address where n_elements are stored contiguously and add them into the │ │ │ │ │ vector. Handles all cases which are not covered by the other two _a_d_d_(_) │ │ │ │ │ functions above. │ │ │ │ │ Definition at line _4_9_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**(()) ********** │ │ │ │ │ -PetscScalar PETScWrappers::VectorBase:: ( const _V_e_c_t_o_r_B_a_s_e &  vveecc ) const │ │ │ │ │ -operator* │ │ │ │ │ +PetscScalar _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_: ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  vveecc ) const │ │ │ │ │ +_o_p_e_r_a_t_o_r* │ │ │ │ │ Return the scalar product of two vectors. The vectors must have the same size. │ │ │ │ │ For complex valued vector, this gives \(\left(v^\ast,vec\right)\). │ │ │ │ │ Definition at line _5_0_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? nnoorrmm__ssqqrr(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers::VectorBase::norm_sqr ( ) const │ │ │ │ │ Return the square of the \(l_2\)-norm. │ │ │ │ │ Definition at line _6_0_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ @@ -548,28 +551,28 @@ │ │ │ │ │ Definition at line _6_6_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ll22__nnoorrmm(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers::VectorBase::l2_norm ( ) const │ │ │ │ │ \(l_2\)-norm of the vector. The square root of the sum of the squares of the │ │ │ │ │ elements. │ │ │ │ │ Definition at line _6_7_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? llpp__nnoorrmm(()) ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers::VectorBase:: ( const _r_e_a_l___t_y_p_e  pp ) const │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers::VectorBase:: ( _c_o_n_s_t _r_e_a_l___t_y_p_e  pp ) const │ │ │ │ │ lp_norm │ │ │ │ │ \(l_p\)-norm of the vector. The pth root of the sum of the pth powers of the │ │ │ │ │ absolute values of the elements. │ │ │ │ │ Definition at line _6_9_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? lliinnffttyy__nnoorrmm(()) ********** │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e_:_:_r_e_a_l___t_y_p_e PETScWrappers::VectorBase::linfty_norm ( ) const │ │ │ │ │ \(l_\infty\)-norm of the vector. Return the value of the vector element with │ │ │ │ │ the maximum absolute value. │ │ │ │ │ Definition at line _7_3_2 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd__aanndd__ddoott(()) ********** │ │ │ │ │ -PetscScalar PETScWrappers::VectorBase::add_and_dot ( const PetscScalar  aa, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  WW  │ │ │ │ │ +PetscScalar PETScWrappers::VectorBase::add_and_dot ( _c_o_n_s_t PetscScalar  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  WW  │ │ │ │ │ ) │ │ │ │ │ Performs a combined operation of a vector addition and a subsequent inner │ │ │ │ │ product, returning the value of the inner product. In other words, the result │ │ │ │ │ of this function is the same as if the user called │ │ │ │ │ this->_a_d_d(a, V); │ │ │ │ │ return_value = *this * W; │ │ │ │ │ _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_a_d_d │ │ │ │ │ @@ -587,113 +590,113 @@ │ │ │ │ │ ********** _?◆_? aallll__zzeerroo(()) ********** │ │ │ │ │ _b_o_o_l PETScWrappers::VectorBase::all_zero ( ) const │ │ │ │ │ Return whether the vector contains only elements with value zero. This is a │ │ │ │ │ _c_o_l_l_e_c_t_i_v_e_ _o_p_e_r_a_t_i_o_n. This function is expensive, because potentially all │ │ │ │ │ elements have to be checked. │ │ │ │ │ Definition at line _7_4_5 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e & PETScWrappers::VectorBase:: ( const PetscScalar  ffaaccttoorr ) │ │ │ │ │ -operator*= │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_: ( _c_o_n_s_t PetscScalar  ffaaccttoorr ) │ │ │ │ │ +_o_p_e_r_a_t_o_r*= │ │ │ │ │ Multiply the entire vector by a fixed factor. │ │ │ │ │ Definition at line _8_0_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr//==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e & PETScWrappers::VectorBase:: ( const PetscScalar  ffaaccttoorr ) │ │ │ │ │ -operator/= │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_: ( _c_o_n_s_t PetscScalar  ffaaccttoorr ) │ │ │ │ │ +_o_p_e_r_a_t_o_r/= │ │ │ │ │ Divide the entire vector by a fixed factor. │ │ │ │ │ Definition at line _8_1_4 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr++==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e & PETScWrappers::VectorBase::operator+= ( const _V_e_c_t_o_r_B_a_s_e &  VV ) │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r+= ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV ) │ │ │ │ │ Add the given vector to the present one. │ │ │ │ │ Definition at line _8_3_1 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr--==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r_B_a_s_e & PETScWrappers::VectorBase::operator-= ( const _V_e_c_t_o_r_B_a_s_e &  VV ) │ │ │ │ │ +_V_e_c_t_o_r_B_a_s_e & _P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r-= ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV ) │ │ │ │ │ Subtract the given vector from the present one. │ │ │ │ │ Definition at line _8_4_3 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[44//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::add ( const PetscScalar  ss ) │ │ │ │ │ +void PETScWrappers::VectorBase::add ( _c_o_n_s_t PetscScalar  ss ) │ │ │ │ │ Addition of s to all components. Note that s is a scalar and not a vector. │ │ │ │ │ Definition at line _8_5_5 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[55//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::add ( const PetscScalar  aa, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ +void PETScWrappers::VectorBase::add ( _c_o_n_s_t PetscScalar  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ ) │ │ │ │ │ Simple addition of a multiple of a vector, i.e. *this += a*V. │ │ │ │ │ Definition at line _8_6_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[66//66]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::add ( const PetscScalar  aa, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV, │ │ │ │ │ - const PetscScalar  bb, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  WW  │ │ │ │ │ +void PETScWrappers::VectorBase::add ( _c_o_n_s_t PetscScalar  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV, │ │ │ │ │ + _c_o_n_s_t PetscScalar  bb, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  WW  │ │ │ │ │ ) │ │ │ │ │ Multiple addition of scaled vectors, i.e. *this += a*V+b*W. │ │ │ │ │ Definition at line _8_7_9 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssaadddd(()) [[11//22]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::sadd ( const PetscScalar  ss, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ +void PETScWrappers::VectorBase::sadd ( _c_o_n_s_t PetscScalar  ss, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ ) │ │ │ │ │ Scaling and simple vector addition, i.e. tthhiiss == ss(*this)+V. │ │ │ │ │ Definition at line _8_9_8 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssaadddd(()) [[22//22]] ********** │ │ │ │ │ -void PETScWrappers::VectorBase::sadd ( const PetscScalar  ss, │ │ │ │ │ - const PetscScalar  aa, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ +void PETScWrappers::VectorBase::sadd ( _c_o_n_s_t PetscScalar  ss, │ │ │ │ │ + _c_o_n_s_t PetscScalar  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ ) │ │ │ │ │ Scaling and simple addition, i.e. tthhiiss == ss(*this)+a*V. │ │ │ │ │ Definition at line _9_1_0 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssccaallee(()) ********** │ │ │ │ │ -void PETScWrappers::VectorBase::scale ( const _V_e_c_t_o_r_B_a_s_e &  ssccaalliinngg__ffaaccttoorrss ) │ │ │ │ │ +void PETScWrappers::VectorBase::scale ( _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  ssccaalliinngg__ffaaccttoorrss ) │ │ │ │ │ Scale each element of this vector by the corresponding element in the argument. │ │ │ │ │ This function is mostly meant to simulate multiplication (and immediate re- │ │ │ │ │ assignment) by a diagonal scaling matrix. │ │ │ │ │ Definition at line _9_2_8 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? eeqquu(()) ********** │ │ │ │ │ -void PETScWrappers::VectorBase::equ ( const PetscScalar  aa, │ │ │ │ │ - const _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ +void PETScWrappers::VectorBase::equ ( _c_o_n_s_t PetscScalar  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_B_a_s_e &  VV  │ │ │ │ │ ) │ │ │ │ │ Assignment *this = a*V. │ │ │ │ │ Definition at line _9_3_8 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? wwrriittee__aasscciiii(()) ********** │ │ │ │ │ -void PETScWrappers:: ( const PetscViewerFormat  ffoorrmmaatt = ) │ │ │ │ │ -VectorBase::write_ascii PETSC_VIEWER_DEFAULT │ │ │ │ │ +void PETScWrappers:: ( _c_o_n_s_t _P_e_t_s_c_V_i_e_w_e_r_F_o_r_m_a_t  ffoorrmmaatt = ) │ │ │ │ │ +VectorBase::write_ascii _P_E_T_S_C___V_I_E_W_E_R___D_E_F_A_U_L_T │ │ │ │ │ Prints the PETSc vector object values using PETSc internal vector viewer │ │ │ │ │ function VecView. The default format prints the vector's contents, including │ │ │ │ │ indices of vector elements. For other valid view formats, consult _h_t_t_p_:_/_/ │ │ │ │ │ _w_w_w_._m_c_s_._a_n_l_._g_o_v_/_p_e_t_s_c_/_p_e_t_s_c_-_c_u_r_r_e_n_t_/_d_o_c_s_/_m_a_n_u_a_l_p_a_g_e_s_/_V_e_c_/_V_e_c_V_i_e_w_._h_t_m_l │ │ │ │ │ Definition at line _9_5_2 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? pprriinntt(()) ********** │ │ │ │ │ void PETScWrappers::VectorBase::print ( std::ostream &  oouutt, │ │ │ │ │ - const unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ - const _b_o_o_l  sscciieennttiiffiicc = true, │ │ │ │ │ - const _b_o_o_l  aaccrroossss = true  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  sscciieennttiiffiicc = _t_r_u_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  aaccrroossss = _t_r_u_e  │ │ │ │ │ ) const │ │ │ │ │ Print to a stream. precision denotes the desired precision with which values │ │ │ │ │ shall be printed, scientific whether scientific notation shall be used. If │ │ │ │ │ across is true then the vector is printed in a line, while if false then the │ │ │ │ │ elements are printed on a separate line each. │ │ │ │ │ Definition at line _9_7_2 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ssaavvee(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void PETScWrappers::VectorBase::save ( Archive &  aarr, │ │ │ │ │ - const unsigned _i_n_t  vveerrssiioonn  │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ +void PETScWrappers::VectorBase::save ( _A_r_c_h_i_v_e &  aarr, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  vveerrssiioonn  │ │ │ │ │ ) const │ │ │ │ │ Write the data of this object to a stream for the purpose of serialization │ │ │ │ │ using the _B_O_O_S_T_ _s_e_r_i_a_l_i_z_a_t_i_o_n_ _l_i_b_r_a_r_y. │ │ │ │ │ Note │ │ │ │ │ Each processor only serializes its own locally owned values. │ │ │ │ │ ********** _?◆_? llooaadd(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void PETScWrappers::VectorBase::load ( Archive &  aarr, │ │ │ │ │ - const unsigned _i_n_t  vveerrssiioonn  │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ +void PETScWrappers::VectorBase::load ( _A_r_c_h_i_v_e &  aarr, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  vveerrssiioonn  │ │ │ │ │ ) │ │ │ │ │ Read the data of this object from a stream for the purpose of serialization │ │ │ │ │ using the _B_O_O_S_T_ _s_e_r_i_a_l_i_z_a_t_i_o_n_ _l_i_b_r_a_r_y. │ │ │ │ │ ********** _?◆_? sseerriiaalliizzee(()) ********** │ │ │ │ │ -template │ │ │ │ │ -void PETScWrappers::VectorBase::serialize ( Archive &  aarrcchhiivvee, │ │ │ │ │ - const unsigned _i_n_t  vveerrssiioonn  │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ +void PETScWrappers::VectorBase::serialize ( _A_r_c_h_i_v_e &  aarrcchhiivvee, │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  vveerrssiioonn  │ │ │ │ │ ) │ │ │ │ │ Write and read the data of this object from a stream for the purpose of │ │ │ │ │ serialization using the _B_O_O_S_T_ _s_e_r_i_a_l_i_z_a_t_i_o_n_ _l_i_b_r_a_r_y. │ │ │ │ │ ********** _?◆_? sswwaapp(()) ********** │ │ │ │ │ void PETScWrappers::VectorBase:: ( _V_e_c_t_o_r_B_a_s_e &  vv ) noexcept │ │ │ │ │ swap │ │ │ │ │ Swap the contents of this vector and the other vector v. One could do this │ │ │ │ │ @@ -702,15 +705,15 @@ │ │ │ │ │ to the data of the two vectors and therefore does not need to allocate │ │ │ │ │ temporary storage and move data around. │ │ │ │ │ This function is analogous to the swap function of all C++ standard containers. │ │ │ │ │ Also, there is a global function swap(u,v) that simply calls u.swap(v), again │ │ │ │ │ in analogy to standard functions. │ │ │ │ │ Definition at line _1_0_1_9 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr ccoonnsstt VVeecc &&(()) ********** │ │ │ │ │ -PETScWrappers::VectorBase::operator const Vec & ( ) const │ │ │ │ │ +_P_E_T_S_c_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_B_a_s_e_:_:_o_p_e_r_a_t_o_r _c_o_n_s_t Vec & ( ) const │ │ │ │ │ Conversion operator to gain access to the underlying PETSc type. If you do │ │ │ │ │ this, you cut this class off some information it may need, so this conversion │ │ │ │ │ operator should only be used if you know what you do. In particular, it should │ │ │ │ │ only be used for read-only operations into the vector. │ │ │ │ │ Definition at line _1_0_3_1 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ppeettsscc__vveeccttoorr(()) ********** │ │ │ │ │ Vec & PETScWrappers::VectorBase::petsc_vector ( ) │ │ │ │ │ @@ -721,19 +724,19 @@ │ │ │ │ │ std::size_t PETScWrappers::VectorBase::memory_consumption ( ) const │ │ │ │ │ Estimate for the memory consumption (not implemented for this class). │ │ │ │ │ Definition at line _1_0_4_5 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ggeett__mmppii__ccoommmmuunniiccaattoorr(()) ********** │ │ │ │ │ _M_P_I___C_o_m_m PETScWrappers::VectorBase::get_mpi_communicator ( ) const │ │ │ │ │ Return the underlying _M_P_I communicator. │ │ │ │ │ ********** _?◆_? ddoo__sseett__aadddd__ooppeerraattiioonn(()) ********** │ │ │ │ │ -void PETScWrappers::VectorBase:: ( const _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ +void PETScWrappers::VectorBase:: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ do_set_add_operation │ │ │ │ │ - const _s_i_z_e___t_y_p_e *  iinnddiicceess, protected │ │ │ │ │ - const PetscScalar *  vvaalluueess, │ │ │ │ │ - const _b_o_o_l  aadddd__vvaalluueess  │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e *  iinnddiicceess, protected │ │ │ │ │ + _c_o_n_s_t PetscScalar *  vvaalluueess, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  aadddd__vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ Collective set or add operation: This function is invoked by the collective set │ │ │ │ │ and add with the add_values flag set to the corresponding value. │ │ │ │ │ Definition at line _1_0_6_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._c_c. │ │ │ │ │ ********** _?◆_? ddeetteerrmmiinnee__gghhoosstt__iinnddiicceess(()) ********** │ │ │ │ │ void PETScWrappers::VectorBase:: ( ) protected │ │ │ │ │ determine_ghost_indices │ │ │ │ │ @@ -760,15 +763,15 @@ │ │ │ │ │ ********** _?◆_? nn__ssuubbssccrriippttiioonnss(()) ********** │ │ │ │ │ unsigned _i_n_t Subscriptor::n_subscriptions ( ) const inlineinherited │ │ │ │ │ Return the present number of subscriptions to this object. This allows to use │ │ │ │ │ this class for reference counted lifetime determination where the last one to │ │ │ │ │ unsubscribe also deletes the object. │ │ │ │ │ Definition at line _3_0_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ void Subscriptor:: ( StreamType &  ssttrreeaamm ) const inlineinherited │ │ │ │ │ list_subscribers │ │ │ │ │ List the subscribers to the input stream. │ │ │ │ │ Definition at line _3_1_7 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[22//22]] ********** │ │ │ │ │ void Subscriptor::list_subscribers ( ) const inherited │ │ │ │ │ List the subscribers to deallog. │ │ │ │ │ @@ -784,15 +787,15 @@ │ │ │ │ │ release mode. │ │ │ │ │ If this function is called when there is an uncaught exception then, │ │ │ │ │ rather than aborting, this function prints an error message to the │ │ │ │ │ standard error stream and returns. │ │ │ │ │ Definition at line _5_2 of file _s_u_b_s_c_r_i_p_t_o_r_._c_c. │ │ │ │ │ ********** FFrriieennddss AAnndd RReellaatteedd SSyymmbbooll DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? iinntteerrnnaall::::VVeeccttoorrRReeffeerreennccee ********** │ │ │ │ │ -friend class internal::VectorReference friend │ │ │ │ │ +_f_r_i_e_n_d _c_l_a_s_s internal::VectorReference friend │ │ │ │ │ Definition at line _8_3_7 of file _p_e_t_s_c___v_e_c_t_o_r___b_a_s_e_._h. │ │ │ │ │ ********** _?◆_? sswwaapp(()) ********** │ │ │ │ │ void swap ( _V_e_c_t_o_r_B_a_s_e &  uu, │ │ │ │ │ _V_e_c_t_o_r_B_a_s_e &  vv  related │ │ │ │ │ ) │ │ │ │ │ Global function swap which overloads the default implementation of the C++ │ │ │ │ │ standard library which uses a temporary object. The function simply exchanges │ │ │ │ │ @@ -841,15 +844,15 @@ │ │ │ │ │ ********** _?◆_? vvaalliiddiittyy__ppooiinntteerrss ********** │ │ │ │ │ std::vector *> Subscriptor:: mutableprivateinherited │ │ │ │ │ validity_pointers │ │ │ │ │ In this vector, we store pointers to the validity bool in the _S_m_a_r_t_P_o_i_n_t_e_r │ │ │ │ │ objects that subscribe to this class. │ │ │ │ │ Definition at line _2_4_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? oobbjjeecctt__iinnffoo ********** │ │ │ │ │ -const std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ +_c_o_n_s_t std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ Pointer to the typeinfo object of this object, from which we can later deduce │ │ │ │ │ the class name. Since this information on the derived class is neither │ │ │ │ │ available in the destructor, nor in the constructor, we obtain it in between │ │ │ │ │ and store it here. │ │ │ │ │ Definition at line _2_4_8 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmuutteexx ********** │ │ │ │ │ std::mutex Subscriptor::mutex staticprivateinherited │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classParticles_1_1ParticleAccessor.html │ │ │ │ @@ -892,15 +892,15 @@ │ │ │ │
    │ │ │ │ inline
    │ │ │ │
    │ │ │ │

    Tell the particle where to store its properties (even if it does not own properties). Usually this is only done once per particle, but since the particle generator does not know about the properties we want to do it not at construction time. Another use for this function is after particle transfer to a new process.

    │ │ │ │ -
    Deprecated:
    This function is only kept for backward compatibility and has no meaning any more. ParticleAccessors always use the property pool of the owning particle handler.
    │ │ │ │ +
    Deprecated:
    This function is only kept for backward compatibility and has no meaning any more. ParticleAccessors always use the property pool of the owning particle handler.
    │ │ │ │ │ │ │ │

    Definition at line 835 of file particle_accessor.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ serialized_size_in_bytes()

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPathSearch.html │ │ │ │ @@ -191,15 +191,15 @@ │ │ │ │
    ...
    │ │ │ │ │ │ │ │ │ │ │ │

    This piece of code will first traverse all paths in the list set up for file class MESH. If it manages to open a file, it returns the istream object. If not, it will try to append the first suffix of the suffix list and do the same. And so on. If no file is found in the end, an exception is thrown.

    │ │ │ │

    If you want to restrict your search to a certain mesh format, .inp for instance, then either use "grid.inp" in the code above or use the alternative find(const std::string&,const std::string&,const char*) function

    std::string full_name = search.find("grid", ".inp");
    │ │ │ │

    Path lists are by default starting with the current directory ("./"), followed optionally by a standard directory of deal.II. Use show() to find out the path list for a given class. Paths and suffixes can be added using the functions add_path() and add_suffix(), respectively.

    │ │ │ │
    Note
    Directories in the path list should always end with a trailing "/", while suffixes should always start with a dot. These characters are not added automatically (allowing you to do some real file name editing).
    │ │ │ │ -
    Deprecated:
    Use the std::filesystem facilities instead.
    │ │ │ │ +
    Deprecated:
    Use the std::filesystem facilities instead.
    │ │ │ │ │ │ │ │

    Definition at line 82 of file path_search.h.

    │ │ │ │

    Member Typedef Documentation

    │ │ │ │ │ │ │ │

    ◆ map_type

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classPoint.html │ │ │ │ @@ -1649,15 +1649,15 @@ │ │ │ │
    │ │ │ │ inherited
    │ │ │ │
    │ │ │ │

    Fill a vector with all tensor elements.

    │ │ │ │

    This function unrolls all tensor entries into a single, linearly numbered vector. As usual in C++, the rightmost index of the tensor marches fastest.

    │ │ │ │ -
    Deprecated:
    Use the more general function that takes a pair of iterators instead.
    │ │ │ │ +
    Deprecated:
    Use the more general function that takes a pair of iterators instead.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ unroll() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classQProjector_1_1DataSetDescriptor.html │ │ │ │ @@ -303,15 +303,15 @@ │ │ │ │
    │ │ │ │ static
    │ │ │ │
    │ │ │ │

    Static function to generate an offset object for a given face of a cell with the given face orientation, flip and rotation. This function of course is only allowed if dim>=2, and the face orientation, flip and rotation are ignored if the space dimension equals 2.

    │ │ │ │

    The last argument denotes the number of quadrature points the lower-dimensional face quadrature formula (the one that has been projected onto the faces) has.

    │ │ │ │ -
    Deprecated:
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │ +
    Deprecated:
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │ │ │ │ │

    Definition at line 1349 of file qprojector.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ face() [2/4]

    │ │ │ │ @@ -423,15 +423,15 @@ │ │ │ │
    │ │ │ │ static
    │ │ │ │
    │ │ │ │

    Compute an offset object for the given face number and orientation, taking into account the possibility of different quadrature rules being used on each face.

    │ │ │ │ -
    Deprecated:
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │ +
    Deprecated:
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │ │ │ │ │

    Definition at line 1421 of file qprojector.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ face() [4/4]

    │ │ │ │ @@ -556,15 +556,15 @@ │ │ │ │ static
    │ │ │ │
    │ │ │ │

    Static function to generate an offset object for a given subface of a cell with the given face orientation, flip and rotation. This function of course is only allowed if dim>=2, and the face orientation, flip and rotation are ignored if the space dimension equals 2.

    │ │ │ │

    The last but one argument denotes the number of quadrature points the lower-dimensional face quadrature formula (the one that has been projected onto the faces) has.

    │ │ │ │

    Through the last argument anisotropic refinement can be respected.

    │ │ │ │ -
    Deprecated:
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │ +
    Deprecated:
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │ │ │ │ │

    Definition at line 1541 of file qprojector.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ subface() [2/5]

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classSLEPcWrappers_1_1TransformationSpectrumFolding.html │ │ │ │ @@ -136,15 +136,15 @@ │ │ │ │
    const AdditionalData additional_data
     
    ST st
     
    │ │ │ │

    Detailed Description

    │ │ │ │

    An implementation of the transformation interface using the SLEPc Spectrum Folding. This transformation type has been removed in SLEPc 3.5.0 and thus cannot be used in the newer versions.

    │ │ │ │ -
    Deprecated:
    Since deal.II requires PETSc 3.7 or newer this class no longer does anything.
    │ │ │ │ +
    Deprecated:
    Since deal.II requires PETSc 3.7 or newer this class no longer does anything.
    │ │ │ │ │ │ │ │

    Definition at line 211 of file slepc_spectral_transformation.h.

    │ │ │ │

    Constructor & Destructor Documentation

    │ │ │ │ │ │ │ │

    ◆ TransformationSpectrumFolding()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classSUNDIALS_1_1KINSOL.html │ │ │ │ @@ -523,17 +523,17 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    std::function<VectorType &()> SUNDIALS::KINSOL< VectorType >::get_solution_scaling
    │ │ │ │
    │ │ │ │

    A function object that users may supply and that is intended to return a vector whose components are the weights used by KINSOL to compute the vector norm of the solution. The implementation of this function is optional, and it is used only if implemented.

    │ │ │ │ -

    The intent for this scaling factor is for problems in which the different components of a solution have vastly different numerical magnitudes – typically because they have different physical units and represent different things. For example, if one were to solve a nonlinear Stokes problem, the solution vector has components that correspond to velocities and other components that correspond to pressures. These have different physical units and depending on which units one chooses, they may have roughly comparable numerical sizes or maybe they don't. To give just one example, in simulations of flow in the Earth's interior, one has velocities on the order of maybe ten centimeters per year, and pressures up to around 100 GPa. If one expresses this in SI units, this corresponds to velocities of around \(0.000,000,003=3 \times 10^{-9}\) m/s, and pressures around \(10^9 \text{kg}/\text{m}/\text{s}^2\), i.e., vastly different. In such cases, computing the \(l_2\) norm of a solution-type vector (e.g., the difference between the previous and the current solution) makes no sense because the norm will either be dominated by the velocity components or the pressure components. The scaling vector this function returns is intended to provide each component of the solution with a scaling factor that is generally chosen as the inverse of a "typical velocity" or "typical pressure" so that upon multiplication of a vector component by the corresponding scaling vector component, one obtains a number that is of order of magnitude of one (i.e., a reasonably small multiple of one times the typical velocity/pressure). The KINSOL manual states this as follows: "The user should supply values \_form#2626, │ │ │ │ -which are diagonal elements of the scaling matrix such that \_form#2659 has │ │ │ │ -all components roughly the same magnitude when \_form#304 is close to a │ │ │ │ +

    The intent for this scaling factor is for problems in which the different components of a solution have vastly different numerical magnitudes – typically because they have different physical units and represent different things. For example, if one were to solve a nonlinear Stokes problem, the solution vector has components that correspond to velocities and other components that correspond to pressures. These have different physical units and depending on which units one chooses, they may have roughly comparable numerical sizes or maybe they don't. To give just one example, in simulations of flow in the Earth's interior, one has velocities on the order of maybe ten centimeters per year, and pressures up to around 100 GPa. If one expresses this in SI units, this corresponds to velocities of around \(0.000,000,003=3 \times 10^{-9}\) m/s, and pressures around \(10^9 \text{kg}/\text{m}/\text{s}^2\), i.e., vastly different. In such cases, computing the \(l_2\) norm of a solution-type vector (e.g., the difference between the previous and the current solution) makes no sense because the norm will either be dominated by the velocity components or the pressure components. The scaling vector this function returns is intended to provide each component of the solution with a scaling factor that is generally chosen as the inverse of a "typical velocity" or "typical pressure" so that upon multiplication of a vector component by the corresponding scaling vector component, one obtains a number that is of order of magnitude of one (i.e., a reasonably small multiple of one times the typical velocity/pressure). The KINSOL manual states this as follows: "The user should supply values \_form#2659, │ │ │ │ +which are diagonal elements of the scaling matrix such that \_form#2675 has │ │ │ │ +all components roughly the same magnitude when \_form#303 is close to a │ │ │ │ solution".

    │ │ │ │

    If no function is provided to a KINSOL object, then this is interpreted as implicitly saying that all of these scaling factors should be considered as one.

    │ │ │ │
    Note
    This variable represents a user provided callback. See there for a description of how to deal with errors and other requirements and conventions. In particular, KINSOL can deal with "recoverable" errors in some circumstances, so callbacks can throw exceptions of type RecoverableUserCallbackError.
    │ │ │ │ │ │ │ │

    Definition at line 651 of file kinsol.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -367,16 +367,16 @@ │ │ │ │ │ the pressure components. The scaling vector this function returns is intended │ │ │ │ │ to provide each component of the solution with a scaling factor that is │ │ │ │ │ generally chosen as the inverse of a "typical velocity" or "typical pressure" │ │ │ │ │ so that upon multiplication of a vector component by the corresponding scaling │ │ │ │ │ vector component, one obtains a number that is of order of magnitude of one │ │ │ │ │ (i.e., a reasonably small multiple of one times the typical velocity/pressure). │ │ │ │ │ The _K_I_N_S_O_L manual states this as follows: "The user should supply values │ │ │ │ │ -\_form#2626, which are diagonal elements of the scaling matrix such that │ │ │ │ │ -\_form#2659 has all components roughly the same magnitude when \_form#304 is │ │ │ │ │ +\_form#2659, which are diagonal elements of the scaling matrix such that │ │ │ │ │ +\_form#2675 has all components roughly the same magnitude when \_form#303 is │ │ │ │ │ close to a solution". │ │ │ │ │ If no function is provided to a _K_I_N_S_O_L object, then this is interpreted as │ │ │ │ │ implicitly saying that all of these scaling factors should be considered as │ │ │ │ │ one. │ │ │ │ │ Note │ │ │ │ │ This variable represents a _u_s_e_r_ _p_r_o_v_i_d_e_d_ _c_a_l_l_b_a_c_k. See there for a │ │ │ │ │ description of how to deal with errors and other requirements and │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classSymmetricTensor.html │ │ │ │ @@ -592,15 +592,15 @@ │ │ │ │
    ()
    │ │ │ │
    │ │ │ │

    Return a pointer to the first element of the underlying storage.

    │ │ │ │ -
    Deprecated:
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    Deprecated:
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ begin_raw() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -613,15 +613,15 @@ │ │ │ │
    () const
    │ │ │ │
    │ │ │ │

    Return a const pointer to the first element of the underlying storage.

    │ │ │ │ -
    Deprecated:
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    Deprecated:
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ end_raw() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -634,15 +634,15 @@ │ │ │ │
    ()
    │ │ │ │
    │ │ │ │

    Return a pointer to the element past the end of the underlying storage.

    │ │ │ │ -
    Deprecated:
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    Deprecated:
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ end_raw() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -655,15 +655,15 @@ │ │ │ │
    () const
    │ │ │ │
    │ │ │ │

    Return a const pointer to the element past the end of the underlying storage.

    │ │ │ │ -
    Deprecated:
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    Deprecated:
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ operator=() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTensor.html │ │ │ │ @@ -1210,15 +1210,15 @@ │ │ │ │
    result) const
    │ │ │ │
    │ │ │ │

    Fill a vector with all tensor elements.

    │ │ │ │

    This function unrolls all tensor entries into a single, linearly numbered vector. As usual in C++, the rightmost index of the tensor marches fastest.

    │ │ │ │ -
    Deprecated:
    Use the more general function that takes a pair of iterators instead.
    │ │ │ │ +
    Deprecated:
    Use the more general function that takes a pair of iterators instead.
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ unroll() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1Vector.html │ │ │ │ @@ -125,237 +125,237 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [legend]
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Types

    using value_type = TrilinosScalar
    using value_type = TrilinosScalar
     
    using real_type = TrilinosScalar
    using real_type = TrilinosScalar
     
    using size_type = VectorTraits::size_type
    using size_type = VectorTraits::size_type
     
    using iterator = value_type *
    using iterator = value_type *
     
    using const_iterator = const value_type *
    using const_iterator = const value_type *
     
    using reference = internal::VectorReference
    using reference = internal::VectorReference
     
    using const_reference = const internal::VectorReference
    using const_reference = const internal::VectorReference
     
    │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Public Member Functions

    template<class Archive >
    void serialize (Archive &ar, const unsigned int version)
    template<class Archive >
    void serialize (Archive &ar, const unsigned int version)
     
    1: Basic Object-handling
     Vector ()
     
     Vector (const Vector &v)
     Vector (const Vector &v)
     
     Vector (const IndexSet &parallel_partitioning, const MPI_Comm communicator=MPI_COMM_WORLD)
     Vector (const IndexSet &parallel_partitioning, const MPI_Comm communicator=MPI_COMM_WORLD)
     
     Vector (const IndexSet &local, const IndexSet &ghost, const MPI_Comm communicator=MPI_COMM_WORLD)
     Vector (const IndexSet &local, const IndexSet &ghost, const MPI_Comm communicator=MPI_COMM_WORLD)
     
     Vector (const IndexSet &parallel_partitioning, const Vector &v, const MPI_Comm communicator=MPI_COMM_WORLD)
     Vector (const IndexSet &parallel_partitioning, const Vector &v, const MPI_Comm communicator=MPI_COMM_WORLD)
     
    template<typename Number >
     Vector (const IndexSet &parallel_partitioning, const ::Vector< Number > &v, const MPI_Comm communicator=MPI_COMM_WORLD)
    template<typename Number >
     Vector (const IndexSet &parallel_partitioning, const ::Vector< Number > &v, const MPI_Comm communicator=MPI_COMM_WORLD)
     
     Vector (Vector &&v)
     
     ~Vector () override=default
     ~Vector () override=default
     
    void clear ()
     
    void reinit (const Vector &v, const bool omit_zeroing_entries=false, const bool allow_different_maps=false)
    void reinit (const Vector &v, const bool omit_zeroing_entries=false, const bool allow_different_maps=false)
     
    void reinit (const IndexSet &parallel_partitioning, const MPI_Comm communicator=MPI_COMM_WORLD, const bool omit_zeroing_entries=false)
    void reinit (const IndexSet &parallel_partitioning, const MPI_Comm communicator=MPI_COMM_WORLD, const bool omit_zeroing_entries=false)
     
    void reinit (const IndexSet &locally_owned_entries, const IndexSet &locally_relevant_or_ghost_entries, const MPI_Comm communicator=MPI_COMM_WORLD, const bool vector_writable=false)
    void reinit (const IndexSet &locally_owned_entries, const IndexSet &locally_relevant_or_ghost_entries, const MPI_Comm communicator=MPI_COMM_WORLD, const bool vector_writable=false)
     
    void reinit (const std::shared_ptr< const Utilities::MPI::Partitioner > &partitioner, const bool make_ghosted=true, const bool vector_writable=false)
    void reinit (const std::shared_ptr< const Utilities::MPI::Partitioner > &partitioner, const bool make_ghosted=true, const bool vector_writable=false)
     
    void reinit (const BlockVector &v, const bool import_data=false)
    void reinit (const BlockVector &v, const bool import_data=false)
     
    void compress (VectorOperation::values operation)
     
    Vectoroperator= (const TrilinosScalar s)
    Vectoroperator= (const TrilinosScalar s)
     
    Vectoroperator= (const Vector &v)
    Vectoroperator= (const Vector &v)
     
    Vectoroperator= (Vector &&v) noexcept
    Vectoroperator= (Vector &&v) noexcept
     
    template<typename Number >
    Vectoroperator= (const ::Vector< Number > &v)
    template<typename Number >
    Vectoroperator= (const ::Vector< Number > &v)
     
    void import_nonlocal_data_for_fe (const ::TrilinosWrappers::SparseMatrix &matrix, const Vector &vector)
    void import_nonlocal_data_for_fe (const ::TrilinosWrappers::SparseMatrix &matrix, const Vector &vector)
     
    void import_elements (const LinearAlgebra::ReadWriteVector< double > &rwv, const VectorOperation::values operation)
    void import_elements (const LinearAlgebra::ReadWriteVector< double > &rwv, const VectorOperation::values operation)
     
    void import (const LinearAlgebra::ReadWriteVector< double > &rwv, const VectorOperation::values operation)
    void import (const LinearAlgebra::ReadWriteVector< double > &rwv, const VectorOperation::values operation)
     
    bool operator== (const Vector &v) const
    bool operator== (const Vector &v) const
     
    bool operator!= (const Vector &v) const
    bool operator!= (const Vector &v) const
     
    size_type size () const override
    size_type size () const override
     
    size_type locally_owned_size () const
    size_type locally_owned_size () const
     
    std::pair< size_type, size_typelocal_range () const
    std::pair< size_type, size_typelocal_range () const
     
    bool in_local_range (const size_type index) const
    bool in_local_range (const size_type index) const
     
    IndexSet locally_owned_elements () const
    IndexSet locally_owned_elements () const
     
    bool has_ghost_elements () const
    bool has_ghost_elements () const
     
    void update_ghost_values () const
    void update_ghost_values () const
     
    TrilinosScalar operator* (const Vector &vec) const
    TrilinosScalar operator* (const Vector &vec) const
     
    real_type norm_sqr () const
    real_type norm_sqr () const
     
    TrilinosScalar mean_value () const
    TrilinosScalar mean_value () const
     
    TrilinosScalar min () const
    TrilinosScalar min () const
     
    TrilinosScalar max () const
    TrilinosScalar max () const
     
    real_type l1_norm () const
    real_type l1_norm () const
     
    real_type l2_norm () const
    real_type l2_norm () const
     
    real_type lp_norm (const TrilinosScalar p) const
    real_type lp_norm (const TrilinosScalar p) const
     
    real_type linfty_norm () const
    real_type linfty_norm () const
     
    TrilinosScalar add_and_dot (const TrilinosScalar a, const Vector &V, const Vector &W)
    TrilinosScalar add_and_dot (const TrilinosScalar a, const Vector &V, const Vector &W)
     
    bool all_zero () const
    bool all_zero () const
     
    bool is_non_negative () const
    bool is_non_negative () const
     
    2: Data-Access
    reference operator() (const size_type index)
    reference operator() (const size_type index)
     
    TrilinosScalar operator() (const size_type index) const
    TrilinosScalar operator() (const size_type index) const
     
    reference operator[] (const size_type index)
    reference operator[] (const size_type index)
     
    TrilinosScalar operator[] (const size_type index) const
    TrilinosScalar operator[] (const size_type index) const
     
    void extract_subvector_to (const std::vector< size_type > &indices, std::vector< TrilinosScalar > &values) const
    void extract_subvector_to (const std::vector< size_type > &indices, std::vector< TrilinosScalar > &values) const
     
    virtual void extract_subvector_to (const ArrayView< const size_type > &indices, ArrayView< TrilinosScalar > &elements) const override
    virtual void extract_subvector_to (const ArrayView< const size_type > &indices, ArrayView< TrilinosScalar > &elements) const override
     
    template<typename ForwardIterator , typename OutputIterator >
    void extract_subvector_to (ForwardIterator indices_begin, const ForwardIterator indices_end, OutputIterator values_begin) const
    template<typename ForwardIterator , typename OutputIterator >
    void extract_subvector_to (ForwardIterator indices_begin, const ForwardIterator indices_end, OutputIterator values_begin) const
     
    iterator begin ()
     
    const_iterator begin () const
    const_iterator begin () const
     
    iterator end ()
     
    const_iterator end () const
    const_iterator end () const
     
    3: Modification of vectors
    void set (const std::vector< size_type > &indices, const std::vector< TrilinosScalar > &values)
    void set (const std::vector< size_type > &indices, const std::vector< TrilinosScalar > &values)
     
    void set (const std::vector< size_type > &indices, const ::Vector< TrilinosScalar > &values)
    void set (const std::vector< size_type > &indices, const ::Vector< TrilinosScalar > &values)
     
    void set (const size_type n_elements, const size_type *indices, const TrilinosScalar *values)
    void set (const size_type n_elements, const size_type *indices, const TrilinosScalar *values)
     
    void add (const std::vector< size_type > &indices, const std::vector< TrilinosScalar > &values)
    void add (const std::vector< size_type > &indices, const std::vector< TrilinosScalar > &values)
     
    void add (const std::vector< size_type > &indices, const ::Vector< TrilinosScalar > &values)
    void add (const std::vector< size_type > &indices, const ::Vector< TrilinosScalar > &values)
     
    void add (const size_type n_elements, const size_type *indices, const TrilinosScalar *values)
    void add (const size_type n_elements, const size_type *indices, const TrilinosScalar *values)
     
    Vectoroperator*= (const TrilinosScalar factor)
    Vectoroperator*= (const TrilinosScalar factor)
     
    Vectoroperator/= (const TrilinosScalar factor)
    Vectoroperator/= (const TrilinosScalar factor)
     
    Vectoroperator+= (const Vector &V)
    Vectoroperator+= (const Vector &V)
     
    Vectoroperator-= (const Vector &V)
    Vectoroperator-= (const Vector &V)
     
    void add (const TrilinosScalar s)
    void add (const TrilinosScalar s)
     
    void add (const Vector &V, const bool allow_different_maps=false)
    void add (const Vector &V, const bool allow_different_maps=false)
     
    void add (const TrilinosScalar a, const Vector &V)
    void add (const TrilinosScalar a, const Vector &V)
     
    void add (const TrilinosScalar a, const Vector &V, const TrilinosScalar b, const Vector &W)
    void add (const TrilinosScalar a, const Vector &V, const TrilinosScalar b, const Vector &W)
     
    void sadd (const TrilinosScalar s, const Vector &V)
    void sadd (const TrilinosScalar s, const Vector &V)
     
    void sadd (const TrilinosScalar s, const TrilinosScalar a, const Vector &V)
    void sadd (const TrilinosScalar s, const TrilinosScalar a, const Vector &V)
     
    void scale (const Vector &scaling_factors)
    void scale (const Vector &scaling_factors)
     
    void equ (const TrilinosScalar a, const Vector &V)
    void equ (const TrilinosScalar a, const Vector &V)
     
    4: Mixed stuff
    const Epetra_MultiVector & trilinos_vector () const
    const Epetra_MultiVector & trilinos_vector () const
     
    Epetra_FEVector & trilinos_vector ()
     
    const Epetra_BlockMap & trilinos_partitioner () const
    const Epetra_BlockMaptrilinos_partitioner () const
     
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
    void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
     
    void swap (Vector &v) noexcept
    void swap (Vector &v) noexcept
     
    std::size_t memory_consumption () const
    std::size_t memory_consumption () const
     
    MPI_Comm get_mpi_communicator () const
    MPI_Comm get_mpi_communicator () const
     
    Subscriptor functionality

    Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class.

    │ │ │ │
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
    void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
     
    unsigned int n_subscriptions () const
    unsigned int n_subscriptions () const
     
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
    template<typename StreamType >
    void list_subscribers (StreamType &stream) const
     
    void list_subscribers () const
    void list_subscribers () const
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Public Member Functions

    static ::ExceptionBaseExcDifferentParallelPartitioning ()
    static ::ExceptionBaseExcDifferentParallelPartitioning ()
     
    static ::ExceptionBaseExcTrilinosError (int arg1)
    static ::ExceptionBaseExcTrilinosError (int arg1)
     
    static ::ExceptionBaseExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
    static ::ExceptionBaseExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
     
    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
    static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
     
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
    static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Types

    using map_value_type = decltype(counter_map)::value_type
    using map_value_type = decltype(counter_map)::value_type
     
    using map_iterator = decltype(counter_map)::iterator
    using map_iterator = decltype(counter_map)::iterator
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Member Functions

    void check_no_subscribers () const noexcept
    void check_no_subscribers () const noexcept
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -370,54 +370,54 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Private Attributes

    Epetra_CombineMode last_action
     
    bool compressed
     
    std::atomic< unsigned intcounter
     
    std::map< std::string, unsigned intcounter_map
     
    std::vector< std::atomic< bool > * > validity_pointers
     
    const std::type_info * object_info
    const std::type_info * object_info
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Static Private Attributes

    static std::mutex mutex
    static std::mutex mutex
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Friends

    class internal::VectorReference
    class internal::VectorReference
     
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Related Symbols

    (Note that these are not member symbols.)

    │ │ │ │
    void swap (Vector &u, Vector &v) noexcept
    void swap (Vector &u, Vector &v) noexcept
     
    │ │ │ │

    Detailed Description

    │ │ │ │

    This class implements a wrapper to use the Trilinos distributed vector class Epetra_FEVector, the (parallel) partitioning of which is governed by an Epetra_Map. The Epetra_FEVector is precisely the kind of vector we deal with all the time - we probably get it from some assembly process, where also entries not locally owned might need to written and hence need to be forwarded to the owner.

    │ │ │ │

    The interface of this class is modeled after the existing Vector class in deal.II. It has almost the same member functions, and is often exchangeable. However, since Trilinos only supports a single scalar type (double), it is not templated, and only works with that type.

    │ │ │ │

    Note that Trilinos only guarantees that operations do what you expect if the function GlobalAssemble has been called after vector assembly in order to distribute the data. This is necessary since some processes might have accumulated data of elements that are not owned by themselves, but must be sent to the owning process. In order to avoid using the wrong data, you need to call Vector::compress() before you actually use the vectors.

    │ │ │ │

    Parallel communication model

    │ │ │ │

    The parallel functionality of Trilinos is built on top of the Message Passing Interface (MPI). MPI's communication model is built on collective communications: if one process wants something from another, that other process has to be willing to accept this communication. A process cannot query data from another process by calling a remote function, without that other process expecting such a transaction. The consequence is that most of the operations in the base class of this class have to be called collectively. For example, if you want to compute the l2 norm of a parallel vector, all processes across which this vector is shared have to call the l2_norm function. If you don't do this, but instead only call the l2_norm function on one process, then the following happens: This one process will call one of the collective MPI functions and wait for all the other processes to join in on this. Since the other processes don't call this function, you will either get a time-out on the first process, or, worse, by the time the next a call to a Trilinos function generates an MPI message on the other processes, you will get a cryptic message that only a subset of processes attempted a communication. These bugs can be very hard to figure out, unless you are well-acquainted with the communication model of MPI, and know which functions may generate MPI messages.

    │ │ │ │

    One particular case, where an MPI message may be generated unexpectedly is discussed below.

    │ │ │ │

    Accessing individual elements of a vector

    │ │ │ │ -

    Trilinos does of course allow read access to individual elements of a vector, but in the distributed case only to elements that are stored locally. We implement this through calls like d=vec(i). However, if you access an element outside the locally stored range, an exception is generated.

    │ │ │ │ -

    In contrast to read access, Trilinos (and the respective deal.II wrapper classes) allow to write (or add) to individual elements of vectors, even if they are stored on a different process. You can do this by writing into or adding to elements using the syntax vec(i)=d or vec(i)+=d, or similar operations. There is one catch, however, that may lead to very confusing error messages: Trilinos requires application programs to call the compress() function when they switch from performing a set of operations that add to elements, to performing a set of operations that write to elements. The reasoning is that all processes might accumulate addition operations to elements, even if multiple processes write to the same elements. By the time we call compress() the next time, all these additions are executed. However, if one process adds to an element, and another overwrites to it, the order of execution would yield non-deterministic behavior if we don't make sure that a synchronization with compress() happens in between.

    │ │ │ │ +

    Trilinos does of course allow read access to individual elements of a vector, but in the distributed case only to elements that are stored locally. We implement this through calls like d=vec(i). However, if you access an element outside the locally stored range, an exception is generated.

    │ │ │ │ +

    In contrast to read access, Trilinos (and the respective deal.II wrapper classes) allow to write (or add) to individual elements of vectors, even if they are stored on a different process. You can do this by writing into or adding to elements using the syntax vec(i)=d or vec(i)+=d, or similar operations. There is one catch, however, that may lead to very confusing error messages: Trilinos requires application programs to call the compress() function when they switch from performing a set of operations that add to elements, to performing a set of operations that write to elements. The reasoning is that all processes might accumulate addition operations to elements, even if multiple processes write to the same elements. By the time we call compress() the next time, all these additions are executed. However, if one process adds to an element, and another overwrites to it, the order of execution would yield non-deterministic behavior if we don't make sure that a synchronization with compress() happens in between.

    │ │ │ │

    In order to make sure these calls to compress() happen at the appropriate time, the deal.II wrappers keep a state variable that store which is the presently allowed operation: additions or writes. If it encounters an operation of the opposite kind, it calls compress() and flips the state. This can sometimes lead to very confusing behavior, in code that may for example look like this:

    │ │ │ │
    │ │ │ │
    // do some write operations on the vector
    │ │ │ │
    for (size_type i=0; i<vector->size(); ++i)
    │ │ │ │
    vector(i) = i;
    │ │ │ │
    │ │ │ │
    // do some additions to vector elements, but
    │ │ │ │
    // only for some elements
    │ │ │ │
    for (size_type i=0; i<vector->size(); ++i)
    │ │ │ │ -
    if (some_condition(i) == true)
    │ │ │ │ +
    if (some_condition(i) == true)
    │ │ │ │
    vector(i) += 1;
    │ │ │ │
    │ │ │ │
    // do another collective operation
    │ │ │ │
    const double norm = vector->l2_norm();
    │ │ │ │ │ │ │ │
    std::unique_ptr< Epetra_FEVector > vector
    │ │ │ │ │ │ │ │ @@ -436,15 +436,15 @@ │ │ │ │ │ │ │ │

    ◆ value_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using TrilinosWrappers::MPI::Vector::value_type = TrilinosScalarusing TrilinosWrappers::MPI::Vector::value_type = TrilinosScalar
    │ │ │ │
    │ │ │ │

    Declare some of the standard types used in all containers. These types parallel those in the C standard libraries vector<...> class.

    │ │ │ │ │ │ │ │

    Definition at line 412 of file trilinos_vector.h.

    │ │ │ │ │ │ │ │ @@ -453,15 +453,15 @@ │ │ │ │ │ │ │ │

    ◆ real_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using TrilinosWrappers::MPI::Vector::real_type = TrilinosScalarusing TrilinosWrappers::MPI::Vector::real_type = TrilinosScalar
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 413 of file trilinos_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -469,15 +469,15 @@ │ │ │ │ │ │ │ │

    ◆ size_type

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using TrilinosWrappers::MPI::Vector::size_type = VectorTraits::size_typeusing TrilinosWrappers::MPI::Vector::size_type = VectorTraits::size_type
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 414 of file trilinos_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -485,15 +485,15 @@ │ │ │ │ │ │ │ │

    ◆ iterator

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using TrilinosWrappers::MPI::Vector::iterator = value_type *using TrilinosWrappers::MPI::Vector::iterator = value_type *
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 415 of file trilinos_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -501,15 +501,15 @@ │ │ │ │ │ │ │ │

    ◆ const_iterator

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using TrilinosWrappers::MPI::Vector::const_iterator = const value_type *using TrilinosWrappers::MPI::Vector::const_iterator = const value_type *
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 416 of file trilinos_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -517,15 +517,15 @@ │ │ │ │ │ │ │ │

    ◆ reference

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using TrilinosWrappers::MPI::Vector::reference = internal::VectorReferenceusing TrilinosWrappers::MPI::Vector::reference = internal::VectorReference
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 417 of file trilinos_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -533,15 +533,15 @@ │ │ │ │ │ │ │ │

    ◆ const_reference

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using TrilinosWrappers::MPI::Vector::const_reference = const internal::VectorReferenceusing TrilinosWrappers::MPI::Vector::const_reference = const internal::VectorReference
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 418 of file trilinos_vector.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -552,15 +552,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_value_type = decltype(counter_map)::value_typeusing Subscriptor::map_value_type = decltype(counter_map)::value_type
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -577,15 +577,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    using Subscriptor::map_iterator = decltype(counter_map)::iteratorusing Subscriptor::map_iterator = decltype(counter_map)::iterator
    │ │ │ │
    │ │ │ │ privateinherited
    │ │ │ │ @@ -622,15 +622,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector< Number >::Vector (const Vectorconst Vectorv)
    │ │ │ │
    │ │ │ │

    Copy constructor using the given vector.

    │ │ │ │ │ │ │ │ @@ -646,22 +646,22 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector< Number >::Vector (const IndexSetconst IndexSetparallel_partitioning,
    const MPI_Comm communicator = MPI_COMM_WORLD const MPI_Comm communicator = MPI_COMM_WORLD 
    )
    │ │ │ │ @@ -685,28 +685,28 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector< Number >::Vector (const IndexSetconst IndexSetlocal,
    const IndexSetconst IndexSetghost,
    const MPI_Comm communicator = MPI_COMM_WORLD const MPI_Comm communicator = MPI_COMM_WORLD 
    )
    │ │ │ │ @@ -724,28 +724,28 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector< Number >::Vector (const IndexSetconst IndexSetparallel_partitioning,
    const Vectorconst Vectorv,
    const MPI_Comm communicator = MPI_COMM_WORLD const MPI_Comm communicator = MPI_COMM_WORLD 
    )
    │ │ │ │ @@ -760,33 +760,33 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ Vector() [6/7]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number >
    │ │ │ │ +template<typename Number >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    TrilinosWrappers::MPI::Vector::Vector (const IndexSetconst IndexSetparallel_partitioning,
    const ::Vector< Number > & const ::Vector< Number > & v,
    const MPI_Comm communicator = MPI_COMM_WORLD const MPI_Comm communicator = MPI_COMM_WORLD 
    )
    │ │ │ │ @@ -871,28 +871,28 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const Vectorconst Vectorv,
    const bool omit_zeroing_entries = false, const bool omit_zeroing_entries = false,
    const bool allow_different_maps = false const bool allow_different_maps = false 
    )
    │ │ │ │ @@ -909,28 +909,28 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const IndexSetconst IndexSetparallel_partitioning,
    const MPI_Comm communicator = MPI_COMM_WORLD, const MPI_Comm communicator = MPI_COMM_WORLD,
    const bool omit_zeroing_entries = false const bool omit_zeroing_entries = false 
    )
    │ │ │ │ @@ -949,34 +949,34 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const IndexSetconst IndexSetlocally_owned_entries,
    const IndexSetconst IndexSetlocally_relevant_or_ghost_entries,
    const MPI_Comm communicator = MPI_COMM_WORLD, const MPI_Comm communicator = MPI_COMM_WORLD,
    const bool vector_writable = false const bool vector_writable = false 
    )
    │ │ │ │ @@ -996,28 +996,28 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const std::shared_ptr< const Utilities::MPI::Partitioner > & const std::shared_ptr< const Utilities::MPI::Partitioner > & partitioner,
    const bool make_ghosted = true, const bool make_ghosted = true,
    const bool vector_writable = false const bool vector_writable = false 
    )
    │ │ │ │ @@ -1035,22 +1035,22 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::reinit (const BlockVectorconst BlockVectorv,
    const bool import_data = false const bool import_data = false 
    )
    │ │ │ │ @@ -1087,17 +1087,17 @@ │ │ │ │ │ │ │ │

    ◆ operator=() [1/4]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & TrilinosWrappers::MPI::Vector::operator= Vector & TrilinosWrappers::MPI::Vector::operator= (const TrilinosScalar const TrilinosScalar s)
    │ │ │ │
    │ │ │ │

    Set all components of the vector to the given number s. Simply pass this down to the base class, but we still need to declare this function to make the example given in the discussion about making the constructor explicit work. the constructor explicit work.

    │ │ │ │

    Since the semantics of assigning a scalar to a vector are not immediately clear, this operator can only be used if you want to set the entire vector to zero. This allows the intuitive notation v=0.

    │ │ │ │ @@ -1107,17 +1107,17 @@ │ │ │ │ │ │ │ │

    ◆ operator=() [2/4]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & Vector< Number >::operator= Vector & Vector< Number >::operator= (const Vectorconst Vectorv)
    │ │ │ │
    │ │ │ │

    Copy the given vector. Resize the present vector if necessary. In this case, also the Epetra_Map that designs the parallel partitioning is taken from the input vector.

    │ │ │ │

    The semantics of this operator are complex. If the two vectors have the same size, and if either the left or right hand side vector of the assignment (i.e., either the input vector on the right hand side, or the calling vector to the left of the assignment operator) currently has ghost elements, then the left hand side vector will also have ghost values and will consequently be a read-only vector (see also the glossary entry on the issue). Otherwise, the left hand vector will be a writable vector after this operation. These semantics facilitate having a vector with ghost elements on the left hand side of the assignment, and a vector without ghost elements on the right hand side, with the resulting left hand side vector having the correct values in both its locally owned and its ghost elements.

    │ │ │ │ @@ -1133,15 +1133,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1158,20 +1158,20 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ operator=() [4/4]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number >
    │ │ │ │ +template<typename Number >
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & Vector< Number >::operator= Vector & Vector< Number >::operator= (Vector && v)
    │ │ │ │
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & TrilinosWrappers::MPI::Vector::operator= Vector & TrilinosWrappers::MPI::Vector::operator= (const ::Vector< Number > & const ::Vector< Number > & v)
    │ │ │ │
    │ │ │ │

    Another copy function. This one takes a deal.II vector and copies it into a TrilinosWrapper vector. Note that since we do not provide any Epetra_map that tells about the partitioning of the vector among the MPI processes, the size of the TrilinosWrapper vector has to be the same as the size of the input vector.

    │ │ │ │ │ │ │ │ @@ -1182,21 +1182,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1213,21 +1213,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Vector< Number >::import_nonlocal_data_for_fe (const ::TrilinosWrappers::SparseMatrixconst ::TrilinosWrappers::SparseMatrixmatrix,
    const Vectorconst Vectorvector 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1247,21 +1247,21 @@ │ │ │ │
    void Vector< Number >::import_elements (const LinearAlgebra::ReadWriteVector< double > & const LinearAlgebra::ReadWriteVector< double > & rwv,
    const VectorOperation::values const VectorOperation::values operation 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1281,17 +1281,17 @@ │ │ │ │ │ │ │ │

    ◆ operator==()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::import (const LinearAlgebra::ReadWriteVector< double > & const LinearAlgebra::ReadWriteVector< double > & rwv,
    const VectorOperation::values const VectorOperation::values operation 
    )
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool Vector< Number >::operator== bool Vector< Number >::operator== (const Vectorconst Vectorv) const
    │ │ │ │
    │ │ │ │

    Test for equality. This function assumes that the present vector and the one to compare with have the same size already, since comparing vectors of different sizes makes not much sense anyway.

    │ │ │ │ │ │ │ │ @@ -1304,15 +1304,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool Vector< Number >::operator!= (const Vectorconst Vectorv) const
    │ │ │ │
    │ │ │ │

    Test for inequality. This function assumes that the present vector and the one to compare with have the same size already, since comparing vectors of different sizes makes not much sense anyway.

    │ │ │ │ │ │ │ │ @@ -1390,15 +1390,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    bool TrilinosWrappers::MPI::Vector::in_local_range (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │

    Return whether index is in the local range or not, see also local_range().

    │ │ │ │
    Note
    The same limitation for the applicability of this function applies as listed in the documentation of local_range().
    │ │ │ │ @@ -1415,15 +1415,15 @@ │ │ │ │
    IndexSet TrilinosWrappers::MPI::Vector::locally_owned_elements () const
    │ │ │ │
    │ │ │ │ -

    Return an index set that describes which elements of this vector are owned by the current processor. Note that this index set does not include elements this vector may store locally as ghost elements but that are in fact owned by another processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set (vec.size())
    │ │ │ │ +

    Return an index set that describes which elements of this vector are owned by the current processor. Note that this index set does not include elements this vector may store locally as ghost elements but that are in fact owned by another processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

    vec.locally_owned_elements() == complete_index_set (vec.size())
    │ │ │ │
    IndexSet complete_index_set(const IndexSet::size_type N)
    Definition index_set.h:1204
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ has_ghost_elements()

    │ │ │ │ │ │ │ │ @@ -1464,17 +1464,17 @@ │ │ │ │ │ │ │ │

    ◆ operator*()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    TrilinosScalar TrilinosWrappers::MPI::Vector::operator* TrilinosScalar TrilinosWrappers::MPI::Vector::operator* (const Vectorconst Vectorvec) const
    │ │ │ │
    │ │ │ │

    Return the scalar (inner) product of two vectors. The vectors must have the same size.

    │ │ │ │ │ │ │ │ @@ -1593,15 +1593,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    real_type TrilinosWrappers::MPI::Vector::lp_norm (const TrilinosScalar const TrilinosScalar p) const
    │ │ │ │
    │ │ │ │

    \(l_p\)-norm of the vector. The pth root of the sum of the pth powers of the absolute values of the elements.

    │ │ │ │ │ │ │ │ @@ -1630,27 +1630,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1707,17 +1707,17 @@ │ │ │ │ │ │ │ │

    ◆ operator()() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    TrilinosScalar TrilinosWrappers::MPI::Vector::add_and_dot (const TrilinosScalar const TrilinosScalar a,
    const Vectorconst VectorV,
    const Vectorconst VectorW 
    )
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    reference TrilinosWrappers::MPI::Vector::operator() reference TrilinosWrappers::MPI::Vector::operator() (const size_type const size_type index)
    │ │ │ │
    │ │ │ │

    Provide access to a given element, both read and write.

    │ │ │ │

    When using a vector distributed with MPI, this operation only makes sense for elements that are actually present on the calling processor. Otherwise, an exception is thrown.

    │ │ │ │ @@ -1727,17 +1727,17 @@ │ │ │ │ │ │ │ │

    ◆ operator()() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    TrilinosScalar Vector< Number >::operator() TrilinosScalar Vector< Number >::operator() (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │

    Provide read-only access to an element.

    │ │ │ │

    When using a vector distributed with MPI, this operation only makes sense for elements that are actually present on the calling processor. Otherwise, an exception is thrown.

    │ │ │ │ @@ -1749,57 +1749,57 @@ │ │ │ │ │ │ │ │

    ◆ operator[]() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    reference TrilinosWrappers::MPI::Vector::operator[] reference TrilinosWrappers::MPI::Vector::operator[] (const size_type const size_type index)
    │ │ │ │
    │ │ │ │

    Provide access to a given element, both read and write.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator[]() [2/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    TrilinosScalar TrilinosWrappers::MPI::Vector::operator[] TrilinosScalar TrilinosWrappers::MPI::Vector::operator[] (const size_type const size_type index) const
    │ │ │ │
    │ │ │ │

    Provide read-only access to an element.

    │ │ │ │ -

    Exactly the same as operator().

    │ │ │ │ +

    Exactly the same as operator().

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ extract_subvector_to() [1/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1807,15 +1807,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void TrilinosWrappers::MPI::Vector::extract_subvector_to (const std::vector< size_type > & const std::vector< size_type > & indices,
    std::vector< TrilinosScalar > & values 
    ) const
    │ │ │ │
    │ │ │ │ -

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. The indices of the elements to be read are stated in the first argument, the corresponding values are returned in the second.

    │ │ │ │ +

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. The indices of the elements to be read are stated in the first argument, the corresponding values are returned in the second.

    │ │ │ │

    If the current vector is called v, then this function is the equivalent to the code

    for (unsigned int i=0; i<indices.size(); ++i)
    │ │ │ │
    values[i] = v[indices[i]];
    │ │ │ │
    Precondition
    The sizes of the indices and values arrays must be identical.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -1824,17 +1824,17 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1859,49 +1859,49 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ extract_subvector_to() [3/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename ForwardIterator , typename OutputIterator >
    │ │ │ │ +template<typename ForwardIterator , typename OutputIterator >
    │ │ │ │
    virtual void TrilinosWrappers::MPI::Vector::extract_subvector_to virtual void TrilinosWrappers::MPI::Vector::extract_subvector_to (const ArrayView< const size_type > & const ArrayView< const size_type > & indices,
    ArrayView< TrilinosScalar > & elements 
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void TrilinosWrappers::MPI::Vector::extract_subvector_to (ForwardIterator ForwardIterator indices_begin,
    const ForwardIterator const ForwardIterator indices_end,
    OutputIterator OutputIterator values_begin 
    ) const
    │ │ │ │
    │ │ │ │ -

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. In contrast to the previous function, this function obtains the indices of the elements by dereferencing all elements of the iterator range provided by the first two arguments, and puts the vector values into memory locations obtained by dereferencing a range of iterators starting at the location pointed to by the third argument.

    │ │ │ │ -

    If the current vector is called v, then this function is the equivalent to the code

    ForwardIterator indices_p = indices_begin;
    │ │ │ │ -
    OutputIterator values_p = values_begin;
    │ │ │ │ -
    while (indices_p != indices_end)
    │ │ │ │ +

    Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. In contrast to the previous function, this function obtains the indices of the elements by dereferencing all elements of the iterator range provided by the first two arguments, and puts the vector values into memory locations obtained by dereferencing a range of iterators starting at the location pointed to by the third argument.

    │ │ │ │ +

    If the current vector is called v, then this function is the equivalent to the code

    │ │ │ │ + │ │ │ │ + │ │ │ │
    {
    │ │ │ │ -
    *values_p = v[*indices_p];
    │ │ │ │ -
    ++indices_p;
    │ │ │ │ -
    ++values_p;
    │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
    }
    │ │ │ │
    Precondition
    It must be possible to write into as many memory locations starting at values_begin as there are iterators between indices_begin and indices_end.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ begin() [1/2]

    │ │ │ │ @@ -1980,21 +1980,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2009,21 +2009,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::set (const std::vector< size_type > & const std::vector< size_type > & indices,
    const std::vector< TrilinosScalar > & const std::vector< TrilinosScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2038,27 +2038,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::set (const std::vector< size_type > & const std::vector< size_type > & indices,
    const ::Vector< TrilinosScalar > & const ::Vector< TrilinosScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2073,21 +2073,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::set (const size_type const size_type n_elements,
    const size_typeconst size_typeindices,
    const TrilinosScalarconst TrilinosScalarvalues 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2102,21 +2102,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::add (const std::vector< size_type > & const std::vector< size_type > & indices,
    const std::vector< TrilinosScalar > & const std::vector< TrilinosScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2131,27 +2131,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::add (const std::vector< size_type > & const std::vector< size_type > & indices,
    const ::Vector< TrilinosScalar > & const ::Vector< TrilinosScalar > & values 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2164,17 +2164,17 @@ │ │ │ │ │ │ │ │

    ◆ operator*=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::add (const size_type const size_type n_elements,
    const size_typeconst size_typeindices,
    const TrilinosScalarconst TrilinosScalarvalues 
    )
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & TrilinosWrappers::MPI::Vector::operator*= Vector & TrilinosWrappers::MPI::Vector::operator*= (const TrilinosScalar const TrilinosScalar factor)
    │ │ │ │
    │ │ │ │

    Multiply the entire vector by a fixed factor.

    │ │ │ │ │ │ │ │ @@ -2183,17 +2183,17 @@ │ │ │ │ │ │ │ │

    ◆ operator/=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & TrilinosWrappers::MPI::Vector::operator/= Vector & TrilinosWrappers::MPI::Vector::operator/= (const TrilinosScalar const TrilinosScalar factor)
    │ │ │ │
    │ │ │ │

    Divide the entire vector by a fixed factor.

    │ │ │ │ │ │ │ │ @@ -2202,17 +2202,17 @@ │ │ │ │ │ │ │ │

    ◆ operator+=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & TrilinosWrappers::MPI::Vector::operator+= Vector & TrilinosWrappers::MPI::Vector::operator+= (const Vectorconst VectorV)
    │ │ │ │
    │ │ │ │

    Add the given vector to the present one.

    │ │ │ │ │ │ │ │ @@ -2221,17 +2221,17 @@ │ │ │ │ │ │ │ │

    ◆ operator-=()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    Vector & TrilinosWrappers::MPI::Vector::operator-= Vector & TrilinosWrappers::MPI::Vector::operator-= (const Vectorconst VectorV)
    │ │ │ │
    │ │ │ │

    Subtract the given vector from the present one.

    │ │ │ │ │ │ │ │ @@ -2242,15 +2242,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void TrilinosWrappers::MPI::Vector::add (const TrilinosScalar const TrilinosScalar s)
    │ │ │ │
    │ │ │ │

    Addition of s to all components. Note that s is a scalar and not a vector.

    │ │ │ │ │ │ │ │ @@ -2261,22 +2261,22 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void Vector< Number >::add (const Vectorconst VectorV,
    const bool allow_different_maps = false const bool allow_different_maps = false 
    )
    │ │ │ │ @@ -2293,21 +2293,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2322,33 +2322,33 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::add (const TrilinosScalar const TrilinosScalar a,
    const Vectorconst VectorV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2363,21 +2363,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::add (const TrilinosScalar const TrilinosScalar a,
    const Vectorconst VectorV,
    const TrilinosScalar const TrilinosScalar b,
    const Vectorconst VectorW 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2392,27 +2392,27 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::sadd (const TrilinosScalar const TrilinosScalar s,
    const Vectorconst VectorV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2427,15 +2427,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::sadd (const TrilinosScalar const TrilinosScalar s,
    const TrilinosScalar const TrilinosScalar a,
    const Vectorconst VectorV 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void TrilinosWrappers::MPI::Vector::scale (const Vectorconst Vectorscaling_factors)
    │ │ │ │
    │ │ │ │

    Scale each element of this vector by the corresponding element in the argument. This function is mostly meant to simulate multiplication (and immediate re-assignment) by a diagonal scaling matrix.

    │ │ │ │ │ │ │ │ @@ -2446,21 +2446,21 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2473,15 +2473,15 @@ │ │ │ │ │ │ │ │

    ◆ trilinos_vector() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    void TrilinosWrappers::MPI::Vector::equ (const TrilinosScalar const TrilinosScalar a,
    const Vectorconst VectorV 
    )
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    const Epetra_MultiVector & TrilinosWrappers::MPI::Vector::trilinos_vector const Epetra_MultiVector & TrilinosWrappers::MPI::Vector::trilinos_vector () const
    │ │ │ │
    │ │ │ │

    Return a const reference to the underlying Trilinos Epetra_MultiVector class.

    │ │ │ │ @@ -2509,15 +2509,15 @@ │ │ │ │ │ │ │ │

    ◆ trilinos_partitioner()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    const Epetra_BlockMap & TrilinosWrappers::MPI::Vector::trilinos_partitioner const Epetra_BlockMap & TrilinosWrappers::MPI::Vector::trilinos_partitioner () const
    │ │ │ │
    │ │ │ │

    Return a const reference to the underlying Trilinos Epetra_BlockMap that sets the parallel partitioning of the vector.

    │ │ │ │ @@ -2535,28 +2535,28 @@ │ │ │ │
    (std::ostream & out,
    const unsigned int const unsigned int precision = 3,
    const bool scientific = true, const bool scientific = true,
    const bool across = true const bool across = true 
    ) const
    │ │ │ │ @@ -2744,15 +2744,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ list_subscribers() [1/2]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename StreamType >
    │ │ │ │ +template<typename StreamType >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2803,15 +2803,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ serialize()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<class Archive >
    │ │ │ │ +template<class Archive >
    │ │ │ │
    void Subscriptor::list_subscribers (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2881,15 +2881,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    void Subscriptor::serialize (
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    friend class internal::VectorReferencefriend class internal::VectorReference
    │ │ │ │
    │ │ │ │ friend
    │ │ │ │ @@ -3173,15 +3173,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    const std::type_info* Subscriptor::object_infoconst std::type_info* Subscriptor::object_info
    │ │ │ │
    │ │ │ │ mutableprivateinherited
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -16,292 +16,292 @@ │ │ │ │ │ _L_i_n_e_a_r_ _a_l_g_e_b_r_a_ _c_l_a_s_s_e_s » _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s | _L_i_n_e_a_r_ _a_l_g_e_b_r_a_ _c_l_a_s_s_e_s » _V_e_c_t_o_r │ │ │ │ │ _c_l_a_s_s_e_s │ │ │ │ │ #include <_d_e_a_l_._I_I_/_l_a_c_/_t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h> │ │ │ │ │ Inheritance diagram for TrilinosWrappers::MPI::Vector: │ │ │ │ │ [Inheritance graph] │ │ │ │ │ [_l_e_g_e_n_d] │ │ │ │ │ PPuubblliicc TTyyppeess │ │ │ │ │ -using  _v_a_l_u_e___t_y_p_e = _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ +_u_s_i_n_g  _v_a_l_u_e___t_y_p_e = _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │   │ │ │ │ │ -using  _r_e_a_l___t_y_p_e = _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ +_u_s_i_n_g  _r_e_a_l___t_y_p_e = _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │   │ │ │ │ │ -using  _s_i_z_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g  _s_i_z_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_:_s_i_z_e___t_y_p_e │ │ │ │ │   │ │ │ │ │ -using  _i_t_e_r_a_t_o_r = _v_a_l_u_e___t_y_p_e * │ │ │ │ │ +_u_s_i_n_g  _i_t_e_r_a_t_o_r = _v_a_l_u_e___t_y_p_e * │ │ │ │ │   │ │ │ │ │ -using  _c_o_n_s_t___i_t_e_r_a_t_o_r = const _v_a_l_u_e___t_y_p_e * │ │ │ │ │ +_u_s_i_n_g  _c_o_n_s_t___i_t_e_r_a_t_o_r = _c_o_n_s_t _v_a_l_u_e___t_y_p_e * │ │ │ │ │   │ │ │ │ │ -using  _r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │ +_u_s_i_n_g  _r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │   │ │ │ │ │ -using  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = const internal::VectorReference │ │ │ │ │ +_u_s_i_n_g  _c_o_n_s_t___r_e_f_e_r_e_n_c_e = _c_o_n_s_t internal::VectorReference │ │ │ │ │   │ │ │ │ │ PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -template │ │ │ │ │ - void  _s_e_r_i_a_l_i_z_e (Archive &ar, const unsigned _i_n_t │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ + void  _s_e_r_i_a_l_i_z_e (_A_r_c_h_i_v_e &_a_r, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ version) │ │ │ │ │   │ │ │ │ │ 1: Basic Object-handling │ │ │ │ │   _V_e_c_t_o_r () │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _V_e_c_t_o_r &v) │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _V_e_c_t_o_r &v) │ │ │ │ │   │ │ │ │ │ -   _V_e_c_t_o_r (const _I_n_d_e_x_S_e_t │ │ │ │ │ - ¶llel_partitioning, const _M_P_I___C_o_m_m │ │ │ │ │ - communicator=MPI_COMM_WORLD) │ │ │ │ │ -  │ │ │ │ │ -   _V_e_c_t_o_r (const _I_n_d_e_x_S_e_t &local, const │ │ │ │ │ - _I_n_d_e_x_S_e_t &ghost, const _M_P_I___C_o_m_m │ │ │ │ │ - communicator=MPI_COMM_WORLD) │ │ │ │ │ -  │ │ │ │ │ -   _V_e_c_t_o_r (const _I_n_d_e_x_S_e_t │ │ │ │ │ - ¶llel_partitioning, const _V_e_c_t_o_r &v, │ │ │ │ │ - const _M_P_I___C_o_m_m communicator=MPI_COMM_WORLD) │ │ │ │ │ -  │ │ │ │ │ -template │ │ │ │ │ -   _V_e_c_t_o_r (const _I_n_d_e_x_S_e_t │ │ │ │ │ - ¶llel_partitioning, const _:_:_V_e_c_t_o_r< │ │ │ │ │ - Number > &v, const _M_P_I___C_o_m_m │ │ │ │ │ - communicator=MPI_COMM_WORLD) │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_i_n_g, _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ + communicator=_M_P_I___C_O_M_M___W_O_R_L_D) │ │ │ │ │ +  │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _I_n_d_e_x_S_e_t &local, _c_o_n_s_t │ │ │ │ │ + _I_n_d_e_x_S_e_t &ghost, _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ + communicator=_M_P_I___C_O_M_M___W_O_R_L_D) │ │ │ │ │ +  │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_i_n_g, _c_o_n_s_t _V_e_c_t_o_r &v, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m communicator=_M_P_I___C_O_M_M___W_O_R_L_D) │ │ │ │ │ +  │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number > │ │ │ │ │ +   _V_e_c_t_o_r (_c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_i_n_g, _c_o_n_s_t _:_:_V_e_c_t_o_r< │ │ │ │ │ + Number > &v, _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ + communicator=_M_P_I___C_O_M_M___W_O_R_L_D) │ │ │ │ │   │ │ │ │ │   _V_e_c_t_o_r (_V_e_c_t_o_r &&v) │ │ │ │ │   │ │ │ │ │ -   _~_V_e_c_t_o_r () override=default │ │ │ │ │ +   _~_V_e_c_t_o_r () _o_v_e_r_r_i_d_e=_d_e_f_a_u_l_t │ │ │ │ │   │ │ │ │ │ void  _c_l_e_a_r () │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _V_e_c_t_o_r &v, const _b_o_o_l │ │ │ │ │ - omit_zeroing_entries=false, const _b_o_o_l │ │ │ │ │ - allow_different_maps=false) │ │ │ │ │ -  │ │ │ │ │ - void  _r_e_i_n_i_t (const _I_n_d_e_x_S_e_t │ │ │ │ │ - ¶llel_partitioning, const _M_P_I___C_o_m_m │ │ │ │ │ - communicator=MPI_COMM_WORLD, const _b_o_o_l │ │ │ │ │ - omit_zeroing_entries=false) │ │ │ │ │ -  │ │ │ │ │ - void  _r_e_i_n_i_t (const _I_n_d_e_x_S_e_t │ │ │ │ │ - &locally_owned_entries, const _I_n_d_e_x_S_e_t │ │ │ │ │ - &locally_relevant_or_ghost_entries, const │ │ │ │ │ - _M_P_I___C_o_m_m communicator=MPI_COMM_WORLD, const │ │ │ │ │ - _b_o_o_l vector_writable=false) │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _V_e_c_t_o_r &v, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s=_f_a_l_s_e, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _a_l_l_o_w___d_i_f_f_e_r_e_n_t___m_a_p_s=_f_a_l_s_e) │ │ │ │ │ +  │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_i_n_g, _c_o_n_s_t _M_P_I___C_o_m_m │ │ │ │ │ + communicator=_M_P_I___C_O_M_M___W_O_R_L_D, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s=_f_a_l_s_e) │ │ │ │ │ +  │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s, _c_o_n_s_t _I_n_d_e_x_S_e_t │ │ │ │ │ + &_l_o_c_a_l_l_y___r_e_l_e_v_a_n_t___o_r___g_h_o_s_t___e_n_t_r_i_e_s, _c_o_n_s_t │ │ │ │ │ + _M_P_I___C_o_m_m communicator=_M_P_I___C_O_M_M___W_O_R_L_D, _c_o_n_s_t │ │ │ │ │ + _b_o_o_l _v_e_c_t_o_r___w_r_i_t_a_b_l_e=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const std::shared_ptr< const │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t std::shared_ptr< _c_o_n_s_t │ │ │ │ │ _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_P_a_r_t_i_t_i_o_n_e_r > &partitioner, │ │ │ │ │ - const _b_o_o_l make_ghosted=true, const _b_o_o_l │ │ │ │ │ - vector_writable=false) │ │ │ │ │ + _c_o_n_s_t _b_o_o_l _m_a_k_e___g_h_o_s_t_e_d=_t_r_u_e, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _v_e_c_t_o_r___w_r_i_t_a_b_l_e=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ - void  _r_e_i_n_i_t (const _B_l_o_c_k_V_e_c_t_o_r &v, const _b_o_o_l │ │ │ │ │ - import_data=false) │ │ │ │ │ + void  _r_e_i_n_i_t (_c_o_n_s_t _B_l_o_c_k_V_e_c_t_o_r &v, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + import_data=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ void  _c_o_m_p_r_e_s_s (_V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r s) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const _V_e_c_t_o_r &v) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t _V_e_c_t_o_r &v) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_V_e_c_t_o_r &&v) noexcept │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_V_e_c_t_o_r &&v) _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (const _:_:_V_e_c_t_o_r< Number > &v) │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number > │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_= (_c_o_n_s_t _:_:_V_e_c_t_o_r< Number > &v) │ │ │ │ │   │ │ │ │ │ - void  _i_m_p_o_r_t___n_o_n_l_o_c_a_l___d_a_t_a___f_o_r___f_e (const _:_: │ │ │ │ │ + void  _i_m_p_o_r_t___n_o_n_l_o_c_a_l___d_a_t_a___f_o_r___f_e (_c_o_n_s_t _:_: │ │ │ │ │ _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_S_p_a_r_s_e_M_a_t_r_i_x &matrix, │ │ │ │ │ - const _V_e_c_t_o_r &_v_e_c_t_o_r) │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &_v_e_c_t_o_r) │ │ │ │ │   │ │ │ │ │ - void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (const _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ - _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< double > &rwv, const │ │ │ │ │ + void  _i_m_p_o_r_t___e_l_e_m_e_n_t_s (_c_o_n_s_t _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ + _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< double > &_r_w_v, _c_o_n_s_t │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation) │ │ │ │ │   │ │ │ │ │ - void  _i_m_p_o_r_t (const _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ - _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< double > &rwv, const │ │ │ │ │ + void  _i_m_p_o_r_t (_c_o_n_s_t _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ + _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< double > &_r_w_v, _c_o_n_s_t │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation) │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _o_p_e_r_a_t_o_r_=_= (const _V_e_c_t_o_r &v) const │ │ │ │ │ + _b_o_o_l  _o_p_e_r_a_t_o_r_=_= (_c_o_n_s_t _V_e_c_t_o_r &v) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _o_p_e_r_a_t_o_r_!_= (const _V_e_c_t_o_r &v) const │ │ │ │ │ + _b_o_o_l  _o_p_e_r_a_t_o_r_!_= (_c_o_n_s_t _V_e_c_t_o_r &v) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _s_i_z_e___t_y_p_e  _s_i_z_e () const override │ │ │ │ │ + _s_i_z_e___t_y_p_e  _s_i_z_e () _c_o_n_s_t _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ - _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () const │ │ │ │ │ + _s_i_z_e___t_y_p_e  _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -std::pair< _s_i_z_e___t_y_p_e, _s_i_z_e___t_y_p_e >  _l_o_c_a_l___r_a_n_g_e () const │ │ │ │ │ +std::pair< _s_i_z_e___t_y_p_e, _s_i_z_e___t_y_p_e >  _l_o_c_a_l___r_a_n_g_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _i_n___l_o_c_a_l___r_a_n_g_e (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + _b_o_o_l  _i_n___l_o_c_a_l___r_a_n_g_e (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _I_n_d_e_x_S_e_t  _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () const │ │ │ │ │ + _b_o_o_l  _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _u_p_d_a_t_e___g_h_o_s_t___v_a_l_u_e_s () const │ │ │ │ │ + void  _u_p_d_a_t_e___g_h_o_s_t___v_a_l_u_e_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _o_p_e_r_a_t_o_r_* (const _V_e_c_t_o_r &vec) const │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _o_p_e_r_a_t_o_r_* (_c_o_n_s_t _V_e_c_t_o_r &_v_e_c) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _n_o_r_m___s_q_r () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _n_o_r_m___s_q_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _m_e_a_n___v_a_l_u_e () const │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _m_e_a_n___v_a_l_u_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _m_i_n () const │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _m_i_n () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _m_a_x () const │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _m_a_x () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_1___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_1___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_2___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_2___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_p___n_o_r_m (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r p) const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_p___n_o_r_m (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r p) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_a_l___t_y_p_e  _l_i_n_f_t_y___n_o_r_m () const │ │ │ │ │ + _r_e_a_l___t_y_p_e  _l_i_n_f_t_y___n_o_r_m () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _a_d_d___a_n_d___d_o_t (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const │ │ │ │ │ - _V_e_c_t_o_r &V, const _V_e_c_t_o_r &W) │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _a_d_d___a_n_d___d_o_t (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, _c_o_n_s_t │ │ │ │ │ + _V_e_c_t_o_r &V, _c_o_n_s_t _V_e_c_t_o_r &W) │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _a_l_l___z_e_r_o () const │ │ │ │ │ + _b_o_o_l  _a_l_l___z_e_r_o () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _b_o_o_l  _i_s___n_o_n___n_e_g_a_t_i_v_e () const │ │ │ │ │ + _b_o_o_l  _i_s___n_o_n___n_e_g_a_t_i_v_e () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ 2: Data-Access │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _o_p_e_r_a_t_o_r_(_) (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _o_p_e_r_a_t_o_r_(_) (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) │ │ │ │ │ + _r_e_f_e_r_e_n_c_e  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) │ │ │ │ │   │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _o_p_e_r_a_t_o_r_[_] (const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r  _o_p_e_r_a_t_o_r_[_] (_c_o_n_s_t _s_i_z_e___t_y_p_e index) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const std::vector< │ │ │ │ │ + void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t std::vector< │ │ │ │ │ _s_i_z_e___t_y_p_e > &indices, std::vector< │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r > &values) const │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r > &values) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - virtual void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (const _A_r_r_a_y_V_i_e_w< const │ │ │ │ │ + _v_i_r_t_u_a_l void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_c_o_n_s_t _A_r_r_a_y_V_i_e_w< _c_o_n_s_t │ │ │ │ │ _s_i_z_e___t_y_p_e > &indices, _A_r_r_a_y_V_i_e_w< │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r > &elements) const override │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r > &elements) _c_o_n_s_t _o_v_e_r_r_i_d_e │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (ForwardIterator │ │ │ │ │ - indices_begin, const ForwardIterator │ │ │ │ │ - indices_end, OutputIterator values_begin) │ │ │ │ │ - const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r , _t_y_p_e_n_a_m_e _O_u_t_p_u_t_I_t_e_r_a_t_o_r > │ │ │ │ │ + void  _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o (_F_o_r_w_a_r_d_I_t_e_r_a_t_o_r │ │ │ │ │ + _i_n_d_i_c_e_s___b_e_g_i_n, _c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r │ │ │ │ │ + _i_n_d_i_c_e_s___e_n_d, _O_u_t_p_u_t_I_t_e_r_a_t_o_r _v_a_l_u_e_s___b_e_g_i_n) │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ _i_t_e_r_a_t_o_r  _b_e_g_i_n () │ │ │ │ │   │ │ │ │ │ - _c_o_n_s_t___i_t_e_r_a_t_o_r  _b_e_g_i_n () const │ │ │ │ │ + _c_o_n_s_t___i_t_e_r_a_t_o_r  _b_e_g_i_n () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ _i_t_e_r_a_t_o_r  _e_n_d () │ │ │ │ │   │ │ │ │ │ - _c_o_n_s_t___i_t_e_r_a_t_o_r  _e_n_d () const │ │ │ │ │ + _c_o_n_s_t___i_t_e_r_a_t_o_r  _e_n_d () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ 3: Modification of vectors │ │ │ │ │ - void  _s_e_t (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const std::vector< _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ + void  _s_e_t (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t std::vector< _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ > &values) │ │ │ │ │   │ │ │ │ │ - void  _s_e_t (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const _:_:_V_e_c_t_o_r< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > │ │ │ │ │ + void  _s_e_t (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t _:_:_V_e_c_t_o_r< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > │ │ │ │ │ &values) │ │ │ │ │   │ │ │ │ │ - void  _s_e_t (const _s_i_z_e___t_y_p_e n_elements, const │ │ │ │ │ - _s_i_z_e___t_y_p_e *indices, const _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ + void  _s_e_t (_c_o_n_s_t _s_i_z_e___t_y_p_e n_elements, _c_o_n_s_t │ │ │ │ │ + _s_i_z_e___t_y_p_e *indices, _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ *values) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const std::vector< _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t std::vector< _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ > &values) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ - &indices, const _:_:_V_e_c_t_o_r< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > │ │ │ │ │ + &indices, _c_o_n_s_t _:_:_V_e_c_t_o_r< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > │ │ │ │ │ &values) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const _s_i_z_e___t_y_p_e n_elements, const │ │ │ │ │ - _s_i_z_e___t_y_p_e *indices, const _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t _s_i_z_e___t_y_p_e n_elements, _c_o_n_s_t │ │ │ │ │ + _s_i_z_e___t_y_p_e *indices, _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ *values) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_*_= (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r factor) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_*_= (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_/_= (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r factor) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_/_= (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r factor) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_+_= (const _V_e_c_t_o_r &V) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_+_= (_c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ - _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_-_= (const _V_e_c_t_o_r &V) │ │ │ │ │ + _V_e_c_t_o_r &  _o_p_e_r_a_t_o_r_-_= (_c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s) │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r s) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const _V_e_c_t_o_r &V, const _b_o_o_l │ │ │ │ │ - allow_different_maps=false) │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t _V_e_c_t_o_r &V, _c_o_n_s_t _b_o_o_l │ │ │ │ │ + _a_l_l_o_w___d_i_f_f_e_r_e_n_t___m_a_p_s=_f_a_l_s_e) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const _V_e_c_t_o_r │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, _c_o_n_s_t _V_e_c_t_o_r │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ - void  _a_d_d (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const _V_e_c_t_o_r │ │ │ │ │ - &V, const _T_r_i_l_i_n_o_s_S_c_a_l_a_r b, const _V_e_c_t_o_r &W) │ │ │ │ │ + void  _a_d_d (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, _c_o_n_s_t _V_e_c_t_o_r │ │ │ │ │ + &V, _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r b, _c_o_n_s_t _V_e_c_t_o_r &W) │ │ │ │ │   │ │ │ │ │ - void  _s_a_d_d (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s, const _V_e_c_t_o_r │ │ │ │ │ + void  _s_a_d_d (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r s, _c_o_n_s_t _V_e_c_t_o_r │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ - void  _s_a_d_d (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s, const │ │ │ │ │ - _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const _V_e_c_t_o_r &V) │ │ │ │ │ + void  _s_a_d_d (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r s, _c_o_n_s_t │ │ │ │ │ + _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, _c_o_n_s_t _V_e_c_t_o_r &V) │ │ │ │ │   │ │ │ │ │ - void  _s_c_a_l_e (const _V_e_c_t_o_r &scaling_factors) │ │ │ │ │ + void  _s_c_a_l_e (_c_o_n_s_t _V_e_c_t_o_r &_s_c_a_l_i_n_g___f_a_c_t_o_r_s) │ │ │ │ │   │ │ │ │ │ - void  _e_q_u (const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const _V_e_c_t_o_r │ │ │ │ │ + void  _e_q_u (_c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, _c_o_n_s_t _V_e_c_t_o_r │ │ │ │ │ &V) │ │ │ │ │   │ │ │ │ │ 4: Mixed stuff │ │ │ │ │ - const Epetra_MultiVector &  _t_r_i_l_i_n_o_s___v_e_c_t_o_r () const │ │ │ │ │ + _c_o_n_s_t Epetra_MultiVector &  _t_r_i_l_i_n_o_s___v_e_c_t_o_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Epetra_FEVector &  _t_r_i_l_i_n_o_s___v_e_c_t_o_r () │ │ │ │ │   │ │ │ │ │ - const Epetra_BlockMap &  _t_r_i_l_i_n_o_s___p_a_r_t_i_t_i_o_n_e_r () const │ │ │ │ │ + _c_o_n_s_t _E_p_e_t_r_a___B_l_o_c_k_M_a_p &  _t_r_i_l_i_n_o_s___p_a_r_t_i_t_i_o_n_e_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _p_r_i_n_t (std::ostream &out, const unsigned _i_n_t │ │ │ │ │ - precision=3, const _b_o_o_l scientific=true, │ │ │ │ │ - const _b_o_o_l across=true) const │ │ │ │ │ + void  _p_r_i_n_t (std::ostream &out, _c_o_n_s_t unsigned _i_n_t │ │ │ │ │ + precision=3, _c_o_n_s_t _b_o_o_l scientific=_t_r_u_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l _a_c_r_o_s_s=_t_r_u_e) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _s_w_a_p (_V_e_c_t_o_r &v) noexcept │ │ │ │ │ + void  _s_w_a_p (_V_e_c_t_o_r &v) _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ - std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () const │ │ │ │ │ + std::size_t  _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () const │ │ │ │ │ + _M_P_I___C_o_m_m  _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ Subscriptor functionality │ │ │ │ │ Classes derived from _S_u_b_s_c_r_i_p_t_o_r provide a facility to subscribe to this │ │ │ │ │ object. This is mostly used by the _S_m_a_r_t_P_o_i_n_t_e_r class. │ │ │ │ │ - void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const │ │ │ │ │ - validity, const std::string &identifier="") │ │ │ │ │ - const │ │ │ │ │ + void  _s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t │ │ │ │ │ + _v_a_l_i_d_i_t_y, _c_o_n_s_t std::string &_i_d_e_n_t_i_f_i_e_r="") │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *const │ │ │ │ │ - validity, const std::string &identifier="") │ │ │ │ │ - const │ │ │ │ │ + void  _u_n_s_u_b_s_c_r_i_b_e (std::atomic< _b_o_o_l > *_c_o_n_s_t │ │ │ │ │ + _v_a_l_i_d_i_t_y, _c_o_n_s_t std::string &_i_d_e_n_t_i_f_i_e_r="") │ │ │ │ │ + _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () const │ │ │ │ │ + unsigned _i_n_t  _n___s_u_b_s_c_r_i_p_t_i_o_n_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ -template │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (StreamType &stream) const │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s (_S_t_r_e_a_m_T_y_p_e &stream) _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ - void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () const │ │ │ │ │ + void  _l_i_s_t___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPuubblliicc MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g () │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t arg1) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t _a_r_g_1) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t (_s_i_z_e___t_y_p_e arg1, _s_i_z_e___t_y_p_e │ │ │ │ │ - arg2, _s_i_z_e___t_y_p_e arg3, _s_i_z_e___t_y_p_e arg4) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t (_s_i_z_e___t_y_p_e _a_r_g_1, _s_i_z_e___t_y_p_e │ │ │ │ │ + _a_r_g_2, _s_i_z_e___t_y_p_e _a_r_g_3, _s_i_z_e___t_y_p_e _a_r_g_4) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t arg1, std::string arg2, std::string │ │ │ │ │ - arg3) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_I_n_U_s_e (_i_n_t _a_r_g_1, std::string _a_r_g_2, std::string │ │ │ │ │ + _a_r_g_3) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string arg1, std::string arg2) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _E_x_c_N_o_S_u_b_s_c_r_i_b_e_r (std::string _a_r_g_1, std::string _a_r_g_2) │ │ │ │ │   │ │ │ │ │ PPrriivvaattee TTyyppeess │ │ │ │ │ -using  _m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g  _m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_:_v_a_l_u_e___t_y_p_e │ │ │ │ │   │ │ │ │ │ -using  _m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p)_:_:_i_t_e_r_a_t_o_r │ │ │ │ │ +_u_s_i_n_g  _m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_:_i_t_e_r_a_t_o_r │ │ │ │ │   │ │ │ │ │ PPrriivvaattee MMeemmbbeerr FFuunnccttiioonnss │ │ │ │ │ -void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () const noexcept │ │ │ │ │ +void  _c_h_e_c_k___n_o___s_u_b_s_c_r_i_b_e_r_s () _c_o_n_s_t _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ Epetra_CombineMode  _l_a_s_t___a_c_t_i_o_n │ │ │ │ │   │ │ │ │ │ _b_o_o_l  _c_o_m_p_r_e_s_s_e_d │ │ │ │ │   │ │ │ │ │ _b_o_o_l  _h_a_s___g_h_o_s_t_s │ │ │ │ │ @@ -314,25 +314,25 @@ │ │ │ │ │   │ │ │ │ │ std::atomic< unsigned _i_n_t >  _c_o_u_n_t_e_r │ │ │ │ │   │ │ │ │ │ std::map< std::string, unsigned _i_n_t >  _c_o_u_n_t_e_r___m_a_p │ │ │ │ │   │ │ │ │ │ std::vector< std::atomic< _b_o_o_l > * >  _v_a_l_i_d_i_t_y___p_o_i_n_t_e_r_s │ │ │ │ │   │ │ │ │ │ - const std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │ + _c_o_n_s_t std::type_info *  _o_b_j_e_c_t___i_n_f_o │ │ │ │ │   │ │ │ │ │ SSttaattiicc PPrriivvaattee AAttttrriibbuutteess │ │ │ │ │ -static std::mutex  _m_u_t_e_x │ │ │ │ │ +_s_t_a_t_i_c std::mutex  _m_u_t_e_x │ │ │ │ │   │ │ │ │ │ FFrriieennddss │ │ │ │ │ -class  _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e │ │ │ │ │ +_c_l_a_s_s  _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e │ │ │ │ │   │ │ │ │ │ RReellaatteedd SSyymmbboollss │ │ │ │ │ (Note that these are not member symbols.) │ │ │ │ │ -void  _s_w_a_p (_V_e_c_t_o_r &u, _V_e_c_t_o_r &v) noexcept │ │ │ │ │ +void  _s_w_a_p (_V_e_c_t_o_r &_u, _V_e_c_t_o_r &v) _n_o_e_x_c_e_p_t │ │ │ │ │   │ │ │ │ │ ********** DDeettaaiilleedd DDeessccrriippttiioonn ********** │ │ │ │ │ This class implements a wrapper to use the Trilinos distributed vector class │ │ │ │ │ Epetra_FEVector, the (parallel) partitioning of which is governed by an │ │ │ │ │ Epetra_Map. The Epetra_FEVector is precisely the kind of vector we deal with │ │ │ │ │ all the time - we probably get it from some assembly process, where also │ │ │ │ │ entries not locally owned might need to written and hence need to be forwarded │ │ │ │ │ @@ -367,20 +367,20 @@ │ │ │ │ │ very hard to figure out, unless you are well-acquainted with the communication │ │ │ │ │ model of _M_P_I, and know which functions may generate _M_P_I messages. │ │ │ │ │ One particular case, where an _M_P_I message may be generated unexpectedly is │ │ │ │ │ discussed below. │ │ │ │ │ ******** AAcccceessssiinngg iinnddiivviidduuaall eelleemmeennttss ooff aa vveeccttoorr ******** │ │ │ │ │ Trilinos does of course allow read access to individual elements of a vector, │ │ │ │ │ but in the distributed case only to elements that are stored locally. We │ │ │ │ │ -implement this through calls like d=vec(i). However, if you access an element │ │ │ │ │ +implement this through calls like d=_v_e_c_(_i_). However, if you access an element │ │ │ │ │ outside the locally stored range, an exception is generated. │ │ │ │ │ In contrast to read access, Trilinos (and the respective deal.II wrapper │ │ │ │ │ classes) allow to write (or add) to individual elements of vectors, even if │ │ │ │ │ they are stored on a different process. You can do this by writing into or │ │ │ │ │ -adding to elements using the syntax vec(i)=d or vec(i)+=d, or similar │ │ │ │ │ +adding to elements using the syntax _v_e_c_(_i_)=d or _v_e_c_(_i_)+=d, or similar │ │ │ │ │ operations. There is one catch, however, that may lead to very confusing error │ │ │ │ │ messages: Trilinos requires application programs to call the _c_o_m_p_r_e_s_s_(_) │ │ │ │ │ function when they switch from performing a set of operations that add to │ │ │ │ │ elements, to performing a set of operations that write to elements. The │ │ │ │ │ reasoning is that all processes might accumulate addition operations to │ │ │ │ │ elements, even if multiple processes write to the same elements. By the time we │ │ │ │ │ call _c_o_m_p_r_e_s_s_(_) the next time, all these additions are executed. However, if │ │ │ │ │ @@ -395,15 +395,15 @@ │ │ │ │ │ _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r _v_e_c_t_o_r; │ │ │ │ │ // do some write operations on the vector │ │ │ │ │ for (_s_i_z_e___t_y_p_e i=0; i<_v_e_c_t_o_r->size(); ++i) │ │ │ │ │ _v_e_c_t_o_r(i) = i; │ │ │ │ │ // do some additions to vector elements, but │ │ │ │ │ // only for some elements │ │ │ │ │ for (_s_i_z_e___t_y_p_e i=0; i<_v_e_c_t_o_r->size(); ++i) │ │ │ │ │ -if (some_condition(i) == true) │ │ │ │ │ +if (_s_o_m_e___c_o_n_d_i_t_i_o_n(i) == true) │ │ │ │ │ _v_e_c_t_o_r(i) += 1; │ │ │ │ │ // do another collective operation │ │ │ │ │ const double norm = _v_e_c_t_o_r->l2_norm(); │ │ │ │ │ _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r │ │ │ │ │ DDeeffiinniittiioonn _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h_:_4_0_5 │ │ │ │ │ _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_v_e_c_t_o_r │ │ │ │ │ std::unique_ptr< Epetra_FEVector > vector │ │ │ │ │ @@ -462,62 +462,62 @@ │ │ │ │ │ time results in data races and must be explicitly avoided by the user. However, │ │ │ │ │ it is possible to access ddiiffffeerreenntt entries of the vector from several threads │ │ │ │ │ simultaneously when only one _M_P_I process is present or the vector has been │ │ │ │ │ constructed with an additional index set for ghost entries in write mode. │ │ │ │ │ Definition at line _4_0_4 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** MMeemmbbeerr TTyyppeeddeeff DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? vvaalluuee__ttyyppee ********** │ │ │ │ │ -using _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_v_a_l_u_e___t_y_p_e = _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ +_u_s_i_n_g _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_v_a_l_u_e___t_y_p_e = _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ Declare some of the standard types used in all containers. These types parallel │ │ │ │ │ those in the C standard libraries vector<...> class. │ │ │ │ │ Definition at line _4_1_2 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? rreeaall__ttyyppee ********** │ │ │ │ │ -using _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_r_e_a_l___t_y_p_e = _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ +_u_s_i_n_g _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_r_e_a_l___t_y_p_e = _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ Definition at line _4_1_3 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ssiizzee__ttyyppee ********** │ │ │ │ │ -using _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_s_i_z_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ +_u_s_i_n_g _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_s_i_z_e___t_y_p_e = _V_e_c_t_o_r_T_r_a_i_t_s_:_:_s_i_z_e___t_y_p_e │ │ │ │ │ Definition at line _4_1_4 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? iitteerraattoorr ********** │ │ │ │ │ -using _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_i_t_e_r_a_t_o_r = _v_a_l_u_e___t_y_p_e * │ │ │ │ │ +_u_s_i_n_g _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_i_t_e_r_a_t_o_r = _v_a_l_u_e___t_y_p_e * │ │ │ │ │ Definition at line _4_1_5 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ccoonnsstt__iitteerraattoorr ********** │ │ │ │ │ -using _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_c_o_n_s_t___i_t_e_r_a_t_o_r = const _v_a_l_u_e___t_y_p_e * │ │ │ │ │ +_u_s_i_n_g _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_c_o_n_s_t___i_t_e_r_a_t_o_r = _c_o_n_s_t _v_a_l_u_e___t_y_p_e * │ │ │ │ │ Definition at line _4_1_6 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? rreeffeerreennccee ********** │ │ │ │ │ -using _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │ +_u_s_i_n_g _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_r_e_f_e_r_e_n_c_e = internal::VectorReference │ │ │ │ │ Definition at line _4_1_7 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ccoonnsstt__rreeffeerreennccee ********** │ │ │ │ │ -using _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e = const internal:: │ │ │ │ │ +_u_s_i_n_g _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_c_o_n_s_t___r_e_f_e_r_e_n_c_e = _c_o_n_s_t internal:: │ │ │ │ │ VectorReference │ │ │ │ │ Definition at line _4_1_8 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmaapp__vvaalluuee__ttyyppee ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = decltype(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___v_a_l_u_e___t_y_p_e = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ _v_a_l_u_e___t_y_p_e │ │ │ │ │ The data type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_2_9 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmaapp__iitteerraattoorr ********** │ │ │ │ │ -using _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = decltype(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ +_u_s_i_n_g _S_u_b_s_c_r_i_p_t_o_r_:_:_m_a_p___i_t_e_r_a_t_o_r = _d_e_c_l_t_y_p_e(_c_o_u_n_t_e_r___m_a_p)_:_: privateinherited │ │ │ │ │ _i_t_e_r_a_t_o_r │ │ │ │ │ The iterator type used in _c_o_u_n_t_e_r___m_a_p. │ │ │ │ │ Definition at line _2_3_4 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** CCoonnssttrruuccttoorr && DDeessttrruuccttoorr DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[11//77]] ********** │ │ │ │ │ _V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( ) │ │ │ │ │ Default constructor that generates an empty (zero size) vector. The function │ │ │ │ │ _r_e_i_n_i_t_(_) will have to give the vector the correct size and distribution among │ │ │ │ │ processes in case of an _M_P_I run. │ │ │ │ │ Definition at line _7_9 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[22//77]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _V_e_c_t_o_r &  vv ) │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _V_e_c_t_o_r &  vv ) │ │ │ │ │ Copy constructor using the given vector. │ │ │ │ │ Definition at line _9_9 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[33//77]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonniinngg, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = explicit │ │ │ │ │ - MPI_COMM_WORLD  │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonniinngg, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = explicit │ │ │ │ │ + _M_P_I___C_O_M_M___W_O_R_L_D  │ │ │ │ │ ) │ │ │ │ │ This constructor takes an _I_n_d_e_x_S_e_t that defines how to distribute the │ │ │ │ │ individual components among the _M_P_I processors. Since it also includes │ │ │ │ │ information about the size of the vector, this is all we need to generate a │ │ │ │ │ parallel vector. │ │ │ │ │ Depending on whether the parallel_partitioning argument uniquely subdivides │ │ │ │ │ elements among processors or not, the resulting vector may or may not have │ │ │ │ │ @@ -526,48 +526,48 @@ │ │ │ │ │ In case the provided _I_n_d_e_x_S_e_t forms an overlapping partitioning, it is not │ │ │ │ │ clear which elements are owned by which process and _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s_(_) │ │ │ │ │ will return an _I_n_d_e_x_S_e_t of size zero. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ Definition at line _9_0 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[44//77]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ - const _I_n_d_e_x_S_e_t &  gghhoosstt, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = MPI_COMM_WORLD  │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaall, │ │ │ │ │ + _c_o_n_s_t _I_n_d_e_x_S_e_t &  gghhoosstt, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = _M_P_I___C_O_M_M___W_O_R_L_D  │ │ │ │ │ ) │ │ │ │ │ Creates a ghosted parallel vector. │ │ │ │ │ Depending on whether the ghost argument uniquely subdivides elements among │ │ │ │ │ processors or not, the resulting vector may or may not have ghost elements. See │ │ │ │ │ the general documentation of this class for more information. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ Definition at line _1_3_8 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[55//77]] ********** │ │ │ │ │ -_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( const _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonniinngg, │ │ │ │ │ - const _V_e_c_t_o_r &  vv, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = MPI_COMM_WORLD  │ │ │ │ │ +_V_e_c_t_o_r< Number >_:_:_V_e_c_t_o_r ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonniinngg, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  vv, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = _M_P_I___C_O_M_M___W_O_R_L_D  │ │ │ │ │ ) │ │ │ │ │ Copy constructor from the _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s vector class. Since a vector of this │ │ │ │ │ class does not necessarily need to be distributed among processes, the user │ │ │ │ │ needs to supply us with an _I_n_d_e_x_S_e_t and an _M_P_I communicator that set the │ │ │ │ │ partitioning details. │ │ │ │ │ Depending on whether the parallel_partitioning argument uniquely subdivides │ │ │ │ │ elements among processors or not, the resulting vector may or may not have │ │ │ │ │ ghost elements. See the general documentation of this class for more │ │ │ │ │ information. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ Definition at line _1_1_9 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? VVeeccttoorr(()) [[66//77]] ********** │ │ │ │ │ -template │ │ │ │ │ -TrilinosWrappers::MPI:: ( const _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonniinngg, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number > │ │ │ │ │ +TrilinosWrappers::MPI:: ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonniinngg, │ │ │ │ │ Vector::Vector │ │ │ │ │ - const _:_:_V_e_c_t_o_r< Number > &  vv, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = │ │ │ │ │ - MPI_COMM_WORLD  │ │ │ │ │ + _c_o_n_s_t _:_:_V_e_c_t_o_r< Number > &  vv, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = │ │ │ │ │ + _M_P_I___C_O_M_M___W_O_R_L_D  │ │ │ │ │ ) │ │ │ │ │ Copy-constructor from deal.II vectors. Sets the dimension to that of the given │ │ │ │ │ vector, and copies all the elements. │ │ │ │ │ Depending on whether the parallel_partitioning argument uniquely subdivides │ │ │ │ │ elements among processors or not, the resulting vector may or may not have │ │ │ │ │ ghost elements. See the general documentation of this class for more │ │ │ │ │ information. │ │ │ │ │ @@ -589,17 +589,17 @@ │ │ │ │ │ ********** MMeemmbbeerr FFuunnccttiioonn DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? cclleeaarr(()) ********** │ │ │ │ │ void _V_e_c_t_o_r< Number >::clear ( ) │ │ │ │ │ Release all memory and return to a state just like after having called the │ │ │ │ │ default constructor. │ │ │ │ │ Definition at line _1_4_9 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[11//55]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::reinit ( const _V_e_c_t_o_r &  vv, │ │ │ │ │ - const _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = false, │ │ │ │ │ - const _b_o_o_l  aallllooww__ddiiffffeerreenntt__mmaappss = false  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::reinit ( _c_o_n_s_t _V_e_c_t_o_r &  vv, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = _f_a_l_s_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  aallllooww__ddiiffffeerreenntt__mmaappss = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Reinit functionality. This function sets the calling vector to the dimension │ │ │ │ │ and the parallel distribution of the input vector, but does not copy the │ │ │ │ │ elements in v. If omit_zeroing_entries is false, the elements in the vector are │ │ │ │ │ initialized with zero. If it is set to true, the vector entries are in an │ │ │ │ │ unspecified state and the user has to set all elements. In the current │ │ │ │ │ implementation, this method does not touch the vector entries in case the │ │ │ │ │ @@ -611,18 +611,18 @@ │ │ │ │ │ generate a replication of a whole vector on each machine, when the calling │ │ │ │ │ vector is built with a map consisting of all indices on each process, and v is │ │ │ │ │ a distributed vector. In this case, the variable omit_zeroing_entries needs to │ │ │ │ │ be set to false, since it does not make sense to exchange data between │ │ │ │ │ differently parallelized vectors without touching the elements. │ │ │ │ │ Definition at line _2_0_4 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[22//55]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::reinit ( const _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonniinngg, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = │ │ │ │ │ - MPI_COMM_WORLD, │ │ │ │ │ - const _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = false  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::reinit ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  ppaarraalllleell__ppaarrttiittiioonniinngg, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = │ │ │ │ │ + _M_P_I___C_O_M_M___W_O_R_L_D, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  oommiitt__zzeerrooiinngg__eennttrriieess = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Reinit functionality. This function destroys the old vector content and │ │ │ │ │ generates a new one based on the input partitioning. The flag │ │ │ │ │ omit_zeroing_entries determines whether the vector should be filled with zero │ │ │ │ │ (false). If the flag is set to true, the vector entries are in an unspecified │ │ │ │ │ state and the user has to set all elements. In the current implementation, this │ │ │ │ │ method still sets the entries to zero, but this might change between releases │ │ │ │ │ @@ -634,19 +634,19 @@ │ │ │ │ │ In case parallel_partitioning is overlapping, it is not clear which process │ │ │ │ │ should own which elements. Hence, _l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s_(_) returns an empty │ │ │ │ │ _I_n_d_e_x_S_e_t in this case. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ Definition at line _1_6_3 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[33//55]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >:: ( const _I_n_d_e_x_S_e_t &  llooccaallllyy__oowwnneedd__eennttrriieess, │ │ │ │ │ +void _V_e_c_t_o_r< Number >:: ( _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaallllyy__oowwnneedd__eennttrriieess, │ │ │ │ │ reinit │ │ │ │ │ - const _I_n_d_e_x_S_e_t &  llooccaallllyy__rreelleevvaanntt__oorr__gghhoosstt__eennttrriieess, │ │ │ │ │ - const _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = MPI_COMM_WORLD, │ │ │ │ │ - const _b_o_o_l  vveeccttoorr__wwrriittaabbllee = false  │ │ │ │ │ + _c_o_n_s_t _I_n_d_e_x_S_e_t &  llooccaallllyy__rreelleevvaanntt__oorr__gghhoosstt__eennttrriieess, │ │ │ │ │ + _c_o_n_s_t _M_P_I___C_o_m_m  ccoommmmuunniiccaattoorr = _M_P_I___C_O_M_M___W_O_R_L_D, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  vveeccttoorr__wwrriittaabbllee = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Reinit functionality. This function destroys the old vector content and │ │ │ │ │ generates a new one based on the input partitioning. In addition to just │ │ │ │ │ specifying one index set as in all the other methods above, this method allows │ │ │ │ │ to supply an additional set of ghost entries. │ │ │ │ │ There are two different versions of a vector that can be created. If the flag │ │ │ │ │ vector_writable is set to false, the vector only allows read access to the │ │ │ │ │ @@ -667,30 +667,30 @@ │ │ │ │ │ subdivides elements among processors or not, the resulting vector may or may │ │ │ │ │ not have ghost elements. See the general documentation of this class for more │ │ │ │ │ information. │ │ │ │ │ See also │ │ │ │ │ _v_e_c_t_o_r_s_ _w_i_t_h_ _g_h_o_s_t_ _e_l_e_m_e_n_t_s │ │ │ │ │ Definition at line _3_6_3 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[44//55]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >:: const std::shared_ptr< const │ │ │ │ │ +void _V_e_c_t_o_r< Number >:: _c_o_n_s_t std::shared_ptr< _c_o_n_s_t │ │ │ │ │ reinit ( _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_P_a_r_t_i_t_i_o_n_e_r ppaarrttiittiioonneerr, │ │ │ │ │ > &  │ │ │ │ │ - const _b_o_o_l  mmaakkee__gghhoosstteedd = true, │ │ │ │ │ - const _b_o_o_l  vveeccttoorr__wwrriittaabbllee = false  │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  mmaakkee__gghhoosstteedd = _t_r_u_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  vveeccttoorr__wwrriittaabbllee = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Initialize the vector given to the parallel partitioning described in │ │ │ │ │ partitioner using the function above. │ │ │ │ │ You can decide whether your vector will contain ghost elements with │ │ │ │ │ make_ghosted. │ │ │ │ │ The parameter vector_writable only has effect on ghosted vectors and is ignored │ │ │ │ │ for non-ghosted vectors. │ │ │ │ │ Definition at line _4_2_1 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? rreeiinniitt(()) [[55//55]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::reinit ( const _B_l_o_c_k_V_e_c_t_o_r &  vv, │ │ │ │ │ - const _b_o_o_l  iimmppoorrtt__ddaattaa = false  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::reinit ( _c_o_n_s_t _B_l_o_c_k_V_e_c_t_o_r &  vv, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  iimmppoorrtt__ddaattaa = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Create vector by merging components from a block vector. │ │ │ │ │ Definition at line _2_8_5 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ccoommpprreessss(()) ********** │ │ │ │ │ void _V_e_c_t_o_r< Number >::compress ( _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn ) │ │ │ │ │ Compress the underlying representation of the Trilinos object, i.e. flush the │ │ │ │ │ buffers of the vector object if it has any. This function is necessary after │ │ │ │ │ @@ -699,24 +699,24 @@ │ │ │ │ │ The (defaulted) argument can be used to specify the compress mode (Add or │ │ │ │ │ Insert) in case the vector has not been written to since the last time this │ │ │ │ │ function was called. The argument is ignored if the vector has been added or │ │ │ │ │ written to since the last time _c_o_m_p_r_e_s_s_(_) was called. │ │ │ │ │ See _C_o_m_p_r_e_s_s_i_n_g_ _d_i_s_t_r_i_b_u_t_e_d_ _o_b_j_e_c_t_s for more information. │ │ │ │ │ Definition at line _6_0_8 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[11//44]] ********** │ │ │ │ │ -_V_e_c_t_o_r & TrilinosWrappers::MPI::Vector::operator= ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ss ) │ │ │ │ │ +_V_e_c_t_o_r & _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r= ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ss ) │ │ │ │ │ Set all components of the vector to the given number s. Simply pass this down │ │ │ │ │ to the base class, but we still need to declare this function to make the │ │ │ │ │ example given in the discussion about making the constructor explicit work. the │ │ │ │ │ constructor explicit work. │ │ │ │ │ Since the semantics of assigning a scalar to a vector are not immediately │ │ │ │ │ clear, this operator can only be used if you want to set the entire vector to │ │ │ │ │ zero. This allows the intuitive notation v=0. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[22//44]] ********** │ │ │ │ │ -_V_e_c_t_o_r & _V_e_c_t_o_r< Number >::operator= ( const _V_e_c_t_o_r &  vv ) │ │ │ │ │ +_V_e_c_t_o_r & _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r= ( _c_o_n_s_t _V_e_c_t_o_r &  vv ) │ │ │ │ │ Copy the given vector. Resize the present vector if necessary. In this case, │ │ │ │ │ also the Epetra_Map that designs the parallel partitioning is taken from the │ │ │ │ │ input vector. │ │ │ │ │ The semantics of this operator are complex. If the two vectors have the same │ │ │ │ │ size, and if either the left or right hand side vector of the assignment (i.e., │ │ │ │ │ either the input vector on the right hand side, or the calling vector to the │ │ │ │ │ left of the assignment operator) currently has ghost elements, then the left │ │ │ │ │ @@ -732,31 +732,31 @@ │ │ │ │ │ simply a copy operation in the usual sense: In that case, if the right hand │ │ │ │ │ side has no ghost elements (i.e., is a completely distributed vector), then the │ │ │ │ │ left hand side will have no ghost elements either. And if the right hand side │ │ │ │ │ has ghost elements (and is consequently read-only), then the left hand side │ │ │ │ │ will have these same properties after the operation. │ │ │ │ │ Definition at line _4_4_7 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[33//44]] ********** │ │ │ │ │ -_V_e_c_t_o_r & _V_e_c_t_o_r< Number >:: ( _V_e_c_t_o_r &&  vv ) noexcept │ │ │ │ │ -operator= │ │ │ │ │ +_V_e_c_t_o_r & _V_e_c_t_o_r< Number >_:_: ( _V_e_c_t_o_r &&  vv ) noexcept │ │ │ │ │ +_o_p_e_r_a_t_o_r= │ │ │ │ │ Move the given vector. This operator replaces the present vector with v by │ │ │ │ │ efficiently swapping the internal data structures. │ │ │ │ │ Definition at line _5_2_3 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr==(()) [[44//44]] ********** │ │ │ │ │ -template │ │ │ │ │ -_V_e_c_t_o_r & TrilinosWrappers::MPI::Vector:: ( const _:_:_V_e_c_t_o_r< Number > &  vv ) │ │ │ │ │ -operator= │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number > │ │ │ │ │ +_V_e_c_t_o_r & _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: ( _c_o_n_s_t _:_:_V_e_c_t_o_r< Number > &  vv ) │ │ │ │ │ +_o_p_e_r_a_t_o_r= │ │ │ │ │ Another copy function. This one takes a deal.II vector and copies it into a │ │ │ │ │ TrilinosWrapper vector. Note that since we do not provide any Epetra_map that │ │ │ │ │ tells about the partitioning of the vector among the _M_P_I processes, the size of │ │ │ │ │ the TrilinosWrapper vector has to be the same as the size of the input vector. │ │ │ │ │ ********** _?◆_? iimmppoorrtt__nnoonnllooccaall__ddaattaa__ffoorr__ffee(()) ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >:: ( const _:_:_T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_S_p_a_r_s_e_M_a_t_r_i_x &  mmaattrriixx, │ │ │ │ │ +void _V_e_c_t_o_r< Number >:: ( _c_o_n_s_t _:_:_T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_S_p_a_r_s_e_M_a_t_r_i_x &  mmaattrriixx, │ │ │ │ │ import_nonlocal_data_for_fe │ │ │ │ │ - const _V_e_c_t_o_r &  vveeccttoorr  │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  vveeccttoorr  │ │ │ │ │ ) │ │ │ │ │ This reinit function is meant to be used for parallel calculations where some │ │ │ │ │ non-local data has to be used. The typical situation where one needs this │ │ │ │ │ function is the call of the _F_E_V_a_l_u_e_s_<_d_i_m_>_:_:_g_e_t___f_u_n_c_t_i_o_n___v_a_l_u_e_s function (or of │ │ │ │ │ some derivatives) in parallel. Since it is usually faster to retrieve the data │ │ │ │ │ in advance, this function can be called before the assembly forks out to the │ │ │ │ │ different processors. What this function does is the following: It takes the │ │ │ │ │ @@ -764,38 +764,38 @@ │ │ │ │ │ between the different processors. That data is then queried from the input │ │ │ │ │ vector. Note that you should not write to the resulting vector any more, since │ │ │ │ │ the some data can be stored several times on different processors, leading to │ │ │ │ │ unpredictable results. In particular, such a vector cannot be used for matrix- │ │ │ │ │ vector products as for example done during the solution of linear systems. │ │ │ │ │ Definition at line _5_5_3 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? iimmppoorrtt__eelleemmeennttss(()) ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >:: ( const _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< rrwwvv, │ │ │ │ │ +void _V_e_c_t_o_r< Number >:: ( _c_o_n_s_t _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< rrwwvv, │ │ │ │ │ import_elements double > &  │ │ │ │ │ - const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn  │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn  │ │ │ │ │ ) │ │ │ │ │ Imports all the elements present in the vector's _I_n_d_e_x_S_e_t from the input vector │ │ │ │ │ rwv. _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation is used to decide if the elements in rwv │ │ │ │ │ should be added to the current vector or replace the current elements. │ │ │ │ │ Definition at line _5_7_7 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? iimmppoorrtt(()) ********** │ │ │ │ │ -void TrilinosWrappers::MPI:: ( const _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: rrwwvv, │ │ │ │ │ +void TrilinosWrappers::MPI:: ( _c_o_n_s_t _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: rrwwvv, │ │ │ │ │ Vector::import _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r< double > &  inline │ │ │ │ │ - const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn  │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s  ooppeerraattiioonn  │ │ │ │ │ ) │ │ │ │ │ _DD_ee_pp_rr_ee_cc_aa_tt_ee_dd_:: │ │ │ │ │ Use _i_m_p_o_r_t___e_l_e_m_e_n_t_s_(_) instead. │ │ │ │ │ Definition at line _7_6_7 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr====(()) ********** │ │ │ │ │ -_b_o_o_l _V_e_c_t_o_r< Number >::operator== ( const _V_e_c_t_o_r &  vv ) const │ │ │ │ │ +_b_o_o_l _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r== ( _c_o_n_s_t _V_e_c_t_o_r &  vv ) const │ │ │ │ │ Test for equality. This function assumes that the present vector and the one to │ │ │ │ │ compare with have the same size already, since comparing vectors of different │ │ │ │ │ sizes makes not much sense anyway. │ │ │ │ │ Definition at line _7_6_0 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr!!==(()) ********** │ │ │ │ │ -_b_o_o_l _V_e_c_t_o_r< Number >::operator!= ( const _V_e_c_t_o_r &  vv ) const │ │ │ │ │ +_b_o_o_l _V_e_c_t_o_r< Number >::operator!= ( _c_o_n_s_t _V_e_c_t_o_r &  vv ) const │ │ │ │ │ Test for inequality. This function assumes that the present vector and the one │ │ │ │ │ to compare with have the same size already, since comparing vectors of │ │ │ │ │ different sizes makes not much sense anyway. │ │ │ │ │ Definition at line _7_7_7 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ssiizzee(()) ********** │ │ │ │ │ _s_i_z_e___t_y_p_e TrilinosWrappers::MPI::Vector::size ( ) const overridevirtual │ │ │ │ │ Return the global dimension of the vector. │ │ │ │ │ @@ -821,30 +821,30 @@ │ │ │ │ │ simply stores a particular subset, not necessarily contiguous. In this │ │ │ │ │ case, this function clearly makes no sense since it could, at best, │ │ │ │ │ return a range that includes all elements that are stored locally. Thus, │ │ │ │ │ the function only succeeds if the locally stored range is indeed │ │ │ │ │ contiguous. It will trigger an assertion if the local portion of the │ │ │ │ │ vector is not contiguous. │ │ │ │ │ ********** _?◆_? iinn__llooccaall__rraannggee(()) ********** │ │ │ │ │ -_b_o_o_l TrilinosWrappers::MPI::Vector:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ +_b_o_o_l TrilinosWrappers::MPI::Vector:: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ in_local_range │ │ │ │ │ Return whether index is in the local range or not, see also _l_o_c_a_l___r_a_n_g_e_(_). │ │ │ │ │ Note │ │ │ │ │ The same limitation for the applicability of this function applies as │ │ │ │ │ listed in the documentation of _l_o_c_a_l___r_a_n_g_e_(_). │ │ │ │ │ ********** _?◆_? llooccaallllyy__oowwnneedd__eelleemmeennttss(()) ********** │ │ │ │ │ _I_n_d_e_x_S_e_t TrilinosWrappers::MPI::Vector::locally_owned_elements ( ) const │ │ │ │ │ Return an index set that describes which elements of this vector are owned by │ │ │ │ │ the current processor. Note that this index set does not include elements this │ │ │ │ │ vector may store locally as ghost elements but that are in fact owned by │ │ │ │ │ another processor. As a consequence, the index sets returned on different │ │ │ │ │ processors if this is a distributed vector will form disjoint sets that add up │ │ │ │ │ to the complete index set. Obviously, if a vector is created on only one │ │ │ │ │ processor, then the result would satisfy │ │ │ │ │ -vec.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t (vec.size()) │ │ │ │ │ +_v_e_c.locally_owned_elements() == _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t (_v_e_c.size()) │ │ │ │ │ _c_o_m_p_l_e_t_e___i_n_d_e_x___s_e_t │ │ │ │ │ IndexSet complete_index_set(const IndexSet::size_type N) │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_2_0_4 │ │ │ │ │ ********** _?◆_? hhaass__gghhoosstt__eelleemmeennttss(()) ********** │ │ │ │ │ _b_o_o_l TrilinosWrappers::MPI::Vector::has_ghost_elements ( ) const │ │ │ │ │ Return if the vector contains ghost elements. This answer is true if there are │ │ │ │ │ ghost elements on at least one process. │ │ │ │ │ @@ -853,16 +853,16 @@ │ │ │ │ │ ********** _?◆_? uuppddaattee__gghhoosstt__vvaalluueess(()) ********** │ │ │ │ │ void TrilinosWrappers::MPI::Vector::update_ghost_values ( ) const │ │ │ │ │ This function only exists for compatibility with the _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ _d_i_s_t_r_i_b_u_t_e_d_:_:_V_e_c_t_o_r class and does nothing: this class implements ghost value │ │ │ │ │ updates in a different way that is a better fit with the underlying Trilinos │ │ │ │ │ vector object. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**(()) ********** │ │ │ │ │ -_T_r_i_l_i_n_o_s_S_c_a_l_a_r TrilinosWrappers::MPI::Vector:: ( const _V_e_c_t_o_r &  vveecc ) const │ │ │ │ │ -operator* │ │ │ │ │ +_T_r_i_l_i_n_o_s_S_c_a_l_a_r _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: ( _c_o_n_s_t _V_e_c_t_o_r &  vveecc ) const │ │ │ │ │ +_o_p_e_r_a_t_o_r* │ │ │ │ │ Return the scalar (inner) product of two vectors. The vectors must have the │ │ │ │ │ same size. │ │ │ │ │ ********** _?◆_? nnoorrmm__ssqqrr(()) ********** │ │ │ │ │ _r_e_a_l___t_y_p_e TrilinosWrappers::MPI::Vector::norm_sqr ( ) const │ │ │ │ │ Return the square of the \(l_2\)-norm. │ │ │ │ │ ********** _?◆_? mmeeaann__vvaalluuee(()) ********** │ │ │ │ │ _T_r_i_l_i_n_o_s_S_c_a_l_a_r TrilinosWrappers::MPI::Vector::mean_value ( ) const │ │ │ │ │ @@ -877,26 +877,26 @@ │ │ │ │ │ _r_e_a_l___t_y_p_e TrilinosWrappers::MPI::Vector::l1_norm ( ) const │ │ │ │ │ \(l_1\)-norm of the vector. The sum of the absolute values. │ │ │ │ │ ********** _?◆_? ll22__nnoorrmm(()) ********** │ │ │ │ │ _r_e_a_l___t_y_p_e TrilinosWrappers::MPI::Vector::l2_norm ( ) const │ │ │ │ │ \(l_2\)-norm of the vector. The square root of the sum of the squares of the │ │ │ │ │ elements. │ │ │ │ │ ********** _?◆_? llpp__nnoorrmm(()) ********** │ │ │ │ │ -_r_e_a_l___t_y_p_e TrilinosWrappers::MPI::Vector:: ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  pp ) const │ │ │ │ │ +_r_e_a_l___t_y_p_e TrilinosWrappers::MPI::Vector:: ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  pp ) const │ │ │ │ │ lp_norm │ │ │ │ │ \(l_p\)-norm of the vector. The ppth root of the sum of the ppth powers of the │ │ │ │ │ absolute values of the elements. │ │ │ │ │ ********** _?◆_? lliinnffttyy__nnoorrmm(()) ********** │ │ │ │ │ _r_e_a_l___t_y_p_e TrilinosWrappers::MPI::Vector::linfty_norm ( ) const │ │ │ │ │ Maximum absolute value of the elements. │ │ │ │ │ ********** _?◆_? aadddd__aanndd__ddoott(()) ********** │ │ │ │ │ -_T_r_i_l_i_n_o_s_S_c_a_l_a_r TrilinosWrappers::MPI::Vector:: ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ +_T_r_i_l_i_n_o_s_S_c_a_l_a_r TrilinosWrappers::MPI::Vector:: ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ add_and_dot │ │ │ │ │ - const _V_e_c_t_o_r &  VV, │ │ │ │ │ - const _V_e_c_t_o_r &  WW  │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  WW  │ │ │ │ │ ) │ │ │ │ │ Performs a combined operation of a vector addition and a subsequent inner │ │ │ │ │ product, returning the value of the inner product. In other words, the result │ │ │ │ │ of this function is the same as if the user called │ │ │ │ │ this->_a_d_d(a, V); │ │ │ │ │ return_value = *this * W; │ │ │ │ │ _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_a_d_d │ │ │ │ │ @@ -918,83 +918,83 @@ │ │ │ │ │ ********** _?◆_? iiss__nnoonn__nneeggaattiivvee(()) ********** │ │ │ │ │ _b_o_o_l _V_e_c_t_o_r< Number >::is_non_negative ( ) const │ │ │ │ │ Return true if the vector has no negative entries, i.e. all entries are zero or │ │ │ │ │ positive. This function is used, for example, to check whether refinement │ │ │ │ │ indicators are really all positive (or zero). │ │ │ │ │ Definition at line _8_1_7 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[11//22]] ********** │ │ │ │ │ -_r_e_f_e_r_e_n_c_e TrilinosWrappers::MPI::Vector::operator() ( const _s_i_z_e___t_y_p_e  iinnddeexx ) │ │ │ │ │ +_r_e_f_e_r_e_n_c_e _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r() ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ When using a vector distributed with _M_P_I, this operation only makes sense for │ │ │ │ │ elements that are actually present on the calling processor. Otherwise, an │ │ │ │ │ exception is thrown. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr(())(()) [[22//22]] ********** │ │ │ │ │ -_T_r_i_l_i_n_o_s_S_c_a_l_a_r _V_e_c_t_o_r< Number >::operator() ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ +_T_r_i_l_i_n_o_s_S_c_a_l_a_r _V_e_c_t_o_r< Number >_:_:_o_p_e_r_a_t_o_r() ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ When using a vector distributed with _M_P_I, this operation only makes sense for │ │ │ │ │ elements that are actually present on the calling processor. Otherwise, an │ │ │ │ │ exception is thrown. │ │ │ │ │ Definition at line _6_9_1 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[11//22]] ********** │ │ │ │ │ -_r_e_f_e_r_e_n_c_e TrilinosWrappers::MPI::Vector::operator[] ( const _s_i_z_e___t_y_p_e  iinnddeexx ) │ │ │ │ │ +_r_e_f_e_r_e_n_c_e _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r[] ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) │ │ │ │ │ Provide access to a given element, both read and write. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ ********** _?◆_? ooppeerraattoorr[[]](()) [[22//22]] ********** │ │ │ │ │ -_T_r_i_l_i_n_o_s_S_c_a_l_a_r TrilinosWrappers::MPI::Vector:: ( const _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ -operator[] │ │ │ │ │ +_T_r_i_l_i_n_o_s_S_c_a_l_a_r _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: ( _c_o_n_s_t _s_i_z_e___t_y_p_e  iinnddeexx ) const │ │ │ │ │ +_o_p_e_r_a_t_o_r[] │ │ │ │ │ Provide read-only access to an element. │ │ │ │ │ -Exactly the same as operator(). │ │ │ │ │ +Exactly the same as _o_p_e_r_a_t_o_r_(_). │ │ │ │ │ ********** _?◆_? eexxttrraacctt__ssuubbvveeccttoorr__ttoo(()) [[11//33]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI:: ( const std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ +void TrilinosWrappers::MPI:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ Vector::extract_subvector_to │ │ │ │ │ std::vector< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > &  vvaalluueess  │ │ │ │ │ ) const │ │ │ │ │ -Instead of getting individual elements of a vector via operator(), this │ │ │ │ │ +Instead of getting individual elements of a vector via _o_p_e_r_a_t_o_r_(_), this │ │ │ │ │ function allows getting a whole set of elements at once. The indices of the │ │ │ │ │ elements to be read are stated in the first argument, the corresponding values │ │ │ │ │ are returned in the second. │ │ │ │ │ If the current vector is called v, then this function is the equivalent to the │ │ │ │ │ code │ │ │ │ │ for (unsigned int i=0; i &  │ │ │ │ │ extract_subvector_to overridevirtual │ │ │ │ │ _A_r_r_a_y_V_i_e_w< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > eelleemmeennttss  │ │ │ │ │ &  │ │ │ │ │ ) const │ │ │ │ │ Extract a range of elements all at once. │ │ │ │ │ Implements _R_e_a_d_V_e_c_t_o_r_<_ _T_r_i_l_i_n_o_s_S_c_a_l_a_r_ _>. │ │ │ │ │ ********** _?◆_? eexxttrraacctt__ssuubbvveeccttoorr__ttoo(()) [[33//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -void TrilinosWrappers::MPI::Vector:: ( ForwardIterator  iinnddiicceess__bbeeggiinn, │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r , _t_y_p_e_n_a_m_e _O_u_t_p_u_t_I_t_e_r_a_t_o_r > │ │ │ │ │ +void TrilinosWrappers::MPI::Vector:: ( _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r  iinnddiicceess__bbeeggiinn, │ │ │ │ │ extract_subvector_to │ │ │ │ │ - const ForwardIterator  iinnddiicceess__eenndd, │ │ │ │ │ - OutputIterator  vvaalluueess__bbeeggiinn  │ │ │ │ │ + _c_o_n_s_t _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r  iinnddiicceess__eenndd, │ │ │ │ │ + _O_u_t_p_u_t_I_t_e_r_a_t_o_r  vvaalluueess__bbeeggiinn  │ │ │ │ │ ) const │ │ │ │ │ -Instead of getting individual elements of a vector via operator(), this │ │ │ │ │ +Instead of getting individual elements of a vector via _o_p_e_r_a_t_o_r_(_), this │ │ │ │ │ function allows getting a whole set of elements at once. In contrast to the │ │ │ │ │ previous function, this function obtains the indices of the elements by │ │ │ │ │ dereferencing all elements of the iterator range provided by the first two │ │ │ │ │ arguments, and puts the vector values into memory locations obtained by │ │ │ │ │ dereferencing a range of iterators starting at the location pointed to by the │ │ │ │ │ third argument. │ │ │ │ │ If the current vector is called v, then this function is the equivalent to the │ │ │ │ │ code │ │ │ │ │ -ForwardIterator indices_p = indices_begin; │ │ │ │ │ -OutputIterator values_p = values_begin; │ │ │ │ │ -while (indices_p != indices_end) │ │ │ │ │ +_F_o_r_w_a_r_d_I_t_e_r_a_t_o_r _i_n_d_i_c_e_s___p = _i_n_d_i_c_e_s___b_e_g_i_n; │ │ │ │ │ +_O_u_t_p_u_t_I_t_e_r_a_t_o_r _v_a_l_u_e_s___p = _v_a_l_u_e_s___b_e_g_i_n; │ │ │ │ │ +while (_i_n_d_i_c_e_s___p != _i_n_d_i_c_e_s___e_n_d) │ │ │ │ │ { │ │ │ │ │ -*values_p = v[*indices_p]; │ │ │ │ │ -++indices_p; │ │ │ │ │ -++values_p; │ │ │ │ │ +*_v_a_l_u_e_s___p = v[*_i_n_d_i_c_e_s___p]; │ │ │ │ │ +++_i_n_d_i_c_e_s___p; │ │ │ │ │ +++_v_a_l_u_e_s___p; │ │ │ │ │ } │ │ │ │ │ Precondition │ │ │ │ │ It must be possible to write into as many memory locations starting at │ │ │ │ │ values_begin as there are iterators between indices_begin and │ │ │ │ │ indices_end. │ │ │ │ │ ********** _?◆_? bbeeggiinn(()) [[11//22]] ********** │ │ │ │ │ _i_t_e_r_a_t_o_r TrilinosWrappers::MPI::Vector::begin ( ) │ │ │ │ │ @@ -1013,142 +1013,142 @@ │ │ │ │ │ Return an iterator pointing to the element past the end of the array of locally │ │ │ │ │ owned entries. │ │ │ │ │ ********** _?◆_? eenndd(()) [[22//22]] ********** │ │ │ │ │ _c_o_n_s_t___i_t_e_r_a_t_o_r TrilinosWrappers::MPI::Vector::end ( ) const │ │ │ │ │ Return a constant iterator pointing to the element past the end of the array of │ │ │ │ │ the locally owned entries. │ │ │ │ │ ********** _?◆_? sseett(()) [[11//33]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI:: ( const std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ +void TrilinosWrappers::MPI:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ Vector::set │ │ │ │ │ - const std::vector< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > vvaalluueess  │ │ │ │ │ + _c_o_n_s_t std::vector< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > vvaalluueess  │ │ │ │ │ &  │ │ │ │ │ ) │ │ │ │ │ A collective set operation: instead of setting individual elements of a vector, │ │ │ │ │ this function allows to set a whole set of elements at once. The indices of the │ │ │ │ │ elements to be set are stated in the first argument, the corresponding values │ │ │ │ │ in the second. │ │ │ │ │ ********** _?◆_? sseett(()) [[22//33]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI:: ( const std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ +void TrilinosWrappers::MPI:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ Vector::set │ │ │ │ │ - const _:_:_V_e_c_t_o_r< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > &  vvaalluueess  │ │ │ │ │ + _c_o_n_s_t _:_:_V_e_c_t_o_r< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > &  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ This is a second collective set operation. As a difference, this function takes │ │ │ │ │ a deal.II vector of values. │ │ │ │ │ ********** _?◆_? sseett(()) [[33//33]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI::Vector::set ( const _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ - const _s_i_z_e___t_y_p_e *  iinnddiicceess, │ │ │ │ │ - const _T_r_i_l_i_n_o_s_S_c_a_l_a_r *  vvaalluueess  │ │ │ │ │ +void TrilinosWrappers::MPI::Vector::set ( _c_o_n_s_t _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e *  iinnddiicceess, │ │ │ │ │ + _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r *  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ This collective set operation is of lower level and can handle anything else — │ │ │ │ │ the only thing you have to provide is an address where all the indices are │ │ │ │ │ stored and the number of elements to be set. │ │ │ │ │ ********** _?◆_? aadddd(()) [[11//77]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI:: ( const std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ +void TrilinosWrappers::MPI:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ Vector::add │ │ │ │ │ - const std::vector< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > vvaalluueess  │ │ │ │ │ + _c_o_n_s_t std::vector< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > vvaalluueess  │ │ │ │ │ &  │ │ │ │ │ ) │ │ │ │ │ A collective add operation: This function adds a whole set of values stored in │ │ │ │ │ values to the vector components specified by indices. │ │ │ │ │ ********** _?◆_? aadddd(()) [[22//77]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI:: ( const std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ +void TrilinosWrappers::MPI:: ( _c_o_n_s_t std::vector< _s_i_z_e___t_y_p_e > &  iinnddiicceess, │ │ │ │ │ Vector::add │ │ │ │ │ - const _:_:_V_e_c_t_o_r< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > &  vvaalluueess  │ │ │ │ │ + _c_o_n_s_t _:_:_V_e_c_t_o_r< _T_r_i_l_i_n_o_s_S_c_a_l_a_r > &  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ This is a second collective add operation. As a difference, this function takes │ │ │ │ │ a deal.II vector of values. │ │ │ │ │ ********** _?◆_? aadddd(()) [[33//77]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI::Vector::add ( const _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ - const _s_i_z_e___t_y_p_e *  iinnddiicceess, │ │ │ │ │ - const _T_r_i_l_i_n_o_s_S_c_a_l_a_r *  vvaalluueess  │ │ │ │ │ +void TrilinosWrappers::MPI::Vector::add ( _c_o_n_s_t _s_i_z_e___t_y_p_e  nn__eelleemmeennttss, │ │ │ │ │ + _c_o_n_s_t _s_i_z_e___t_y_p_e *  iinnddiicceess, │ │ │ │ │ + _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r *  vvaalluueess  │ │ │ │ │ ) │ │ │ │ │ Take an address where n_elements are stored contiguously and add them into the │ │ │ │ │ vector. Handles all cases which are not covered by the other two _a_d_d_(_) │ │ │ │ │ functions above. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr**==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r & TrilinosWrappers::MPI::Vector:: ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ffaaccttoorr ) │ │ │ │ │ -operator*= │ │ │ │ │ +_V_e_c_t_o_r & _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ffaaccttoorr ) │ │ │ │ │ +_o_p_e_r_a_t_o_r*= │ │ │ │ │ Multiply the entire vector by a fixed factor. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr//==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r & TrilinosWrappers::MPI::Vector:: ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ffaaccttoorr ) │ │ │ │ │ -operator/= │ │ │ │ │ +_V_e_c_t_o_r & _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ffaaccttoorr ) │ │ │ │ │ +_o_p_e_r_a_t_o_r/= │ │ │ │ │ Divide the entire vector by a fixed factor. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr++==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r & TrilinosWrappers::MPI::Vector::operator+= ( const _V_e_c_t_o_r &  VV ) │ │ │ │ │ +_V_e_c_t_o_r & _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r+= ( _c_o_n_s_t _V_e_c_t_o_r &  VV ) │ │ │ │ │ Add the given vector to the present one. │ │ │ │ │ ********** _?◆_? ooppeerraattoorr--==(()) ********** │ │ │ │ │ -_V_e_c_t_o_r & TrilinosWrappers::MPI::Vector::operator-= ( const _V_e_c_t_o_r &  VV ) │ │ │ │ │ +_V_e_c_t_o_r & _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r-= ( _c_o_n_s_t _V_e_c_t_o_r &  VV ) │ │ │ │ │ Subtract the given vector from the present one. │ │ │ │ │ ********** _?◆_? aadddd(()) [[44//77]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI::Vector::add ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ss ) │ │ │ │ │ +void TrilinosWrappers::MPI::Vector::add ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ss ) │ │ │ │ │ Addition of s to all components. Note that s is a scalar and not a vector. │ │ │ │ │ ********** _?◆_? aadddd(()) [[55//77]] ********** │ │ │ │ │ -void _V_e_c_t_o_r< Number >::add ( const _V_e_c_t_o_r &  VV, │ │ │ │ │ - const _b_o_o_l  aallllooww__ddiiffffeerreenntt__mmaappss = false  │ │ │ │ │ +void _V_e_c_t_o_r< Number >::add ( _c_o_n_s_t _V_e_c_t_o_r &  VV, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  aallllooww__ddiiffffeerreenntt__mmaappss = _f_a_l_s_e  │ │ │ │ │ ) │ │ │ │ │ Simple vector addition, equal to the operator+=. │ │ │ │ │ Though, if the second argument allow_different_maps is set, then it is possible │ │ │ │ │ to add data from a vector that uses a different map, i.e., a vector whose │ │ │ │ │ elements are split across processors differently. This may include vectors with │ │ │ │ │ ghost elements, for example. In general, however, adding vectors with a │ │ │ │ │ different element-to-processor map requires communicating data among processors │ │ │ │ │ and, consequently, is a slower operation than when using vectors using the same │ │ │ │ │ map. │ │ │ │ │ Definition at line _7_2_5 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? aadddd(()) [[66//77]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI::Vector::add ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ - const _V_e_c_t_o_r &  VV  │ │ │ │ │ +void TrilinosWrappers::MPI::Vector::add ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV  │ │ │ │ │ ) │ │ │ │ │ Simple addition of a multiple of a vector, i.e. *this += a*V. │ │ │ │ │ ********** _?◆_? aadddd(()) [[77//77]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI::Vector::add ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ - const _V_e_c_t_o_r &  VV, │ │ │ │ │ - const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  bb, │ │ │ │ │ - const _V_e_c_t_o_r &  WW  │ │ │ │ │ +void TrilinosWrappers::MPI::Vector::add ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV, │ │ │ │ │ + _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  bb, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  WW  │ │ │ │ │ ) │ │ │ │ │ Multiple addition of scaled vectors, i.e. *this += a*V + b*W. │ │ │ │ │ ********** _?◆_? ssaadddd(()) [[11//22]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI::Vector::sadd ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ss, │ │ │ │ │ - const _V_e_c_t_o_r &  VV  │ │ │ │ │ +void TrilinosWrappers::MPI::Vector::sadd ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ss, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV  │ │ │ │ │ ) │ │ │ │ │ Scaling and simple vector addition, i.e. tthhiiss == ss(*this) + V. │ │ │ │ │ ********** _?◆_? ssaadddd(()) [[22//22]] ********** │ │ │ │ │ -void TrilinosWrappers::MPI::Vector::sadd ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ss, │ │ │ │ │ - const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ - const _V_e_c_t_o_r &  VV  │ │ │ │ │ +void TrilinosWrappers::MPI::Vector::sadd ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  ss, │ │ │ │ │ + _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV  │ │ │ │ │ ) │ │ │ │ │ Scaling and simple addition, i.e. tthhiiss == ss(*this) + a*V. │ │ │ │ │ ********** _?◆_? ssccaallee(()) ********** │ │ │ │ │ -void TrilinosWrappers::MPI::Vector::scale ( const _V_e_c_t_o_r &  ssccaalliinngg__ffaaccttoorrss ) │ │ │ │ │ +void TrilinosWrappers::MPI::Vector::scale ( _c_o_n_s_t _V_e_c_t_o_r &  ssccaalliinngg__ffaaccttoorrss ) │ │ │ │ │ Scale each element of this vector by the corresponding element in the argument. │ │ │ │ │ This function is mostly meant to simulate multiplication (and immediate re- │ │ │ │ │ assignment) by a diagonal scaling matrix. │ │ │ │ │ ********** _?◆_? eeqquu(()) ********** │ │ │ │ │ -void TrilinosWrappers::MPI::Vector::equ ( const _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ - const _V_e_c_t_o_r &  VV  │ │ │ │ │ +void TrilinosWrappers::MPI::Vector::equ ( _c_o_n_s_t _T_r_i_l_i_n_o_s_S_c_a_l_a_r  aa, │ │ │ │ │ + _c_o_n_s_t _V_e_c_t_o_r &  VV  │ │ │ │ │ ) │ │ │ │ │ Assignment *this = a*V. │ │ │ │ │ ********** _?◆_? ttrriilliinnooss__vveeccttoorr(()) [[11//22]] ********** │ │ │ │ │ -const Epetra_MultiVector & TrilinosWrappers::MPI::Vector:: ( ) const │ │ │ │ │ +_c_o_n_s_t Epetra_MultiVector & TrilinosWrappers::MPI::Vector:: ( ) const │ │ │ │ │ trilinos_vector │ │ │ │ │ Return a const reference to the underlying Trilinos Epetra_MultiVector class. │ │ │ │ │ ********** _?◆_? ttrriilliinnooss__vveeccttoorr(()) [[22//22]] ********** │ │ │ │ │ Epetra_FEVector & TrilinosWrappers::MPI::Vector::trilinos_vector ( ) │ │ │ │ │ Return a (modifiable) reference to the underlying Trilinos Epetra_FEVector │ │ │ │ │ class. │ │ │ │ │ ********** _?◆_? ttrriilliinnooss__ppaarrttiittiioonneerr(()) ********** │ │ │ │ │ -const Epetra_BlockMap & TrilinosWrappers::MPI::Vector:: ( ) const │ │ │ │ │ +_c_o_n_s_t _E_p_e_t_r_a___B_l_o_c_k_M_a_p & TrilinosWrappers::MPI::Vector:: ( ) const │ │ │ │ │ trilinos_partitioner │ │ │ │ │ Return a const reference to the underlying Trilinos Epetra_BlockMap that sets │ │ │ │ │ the parallel partitioning of the vector. │ │ │ │ │ ********** _?◆_? pprriinntt(()) ********** │ │ │ │ │ void _V_e_c_t_o_r< Number >::print ( std::ostream &  oouutt, │ │ │ │ │ - const unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ - const _b_o_o_l  sscciieennttiiffiicc = true, │ │ │ │ │ - const _b_o_o_l  aaccrroossss = true  │ │ │ │ │ + _c_o_n_s_t unsigned _i_n_t  pprreecciissiioonn = 3, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  sscciieennttiiffiicc = _t_r_u_e, │ │ │ │ │ + _c_o_n_s_t _b_o_o_l  aaccrroossss = _t_r_u_e  │ │ │ │ │ ) const │ │ │ │ │ Print to a stream. precision denotes the desired precision with which values │ │ │ │ │ shall be printed, scientific whether scientific notation shall be used. If │ │ │ │ │ across is true then the vector is printed in a line, while if false then the │ │ │ │ │ elements are printed on a separate line each. │ │ │ │ │ Definition at line _8_4_5 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? sswwaapp(()) ********** │ │ │ │ │ @@ -1192,25 +1192,25 @@ │ │ │ │ │ ********** _?◆_? nn__ssuubbssccrriippttiioonnss(()) ********** │ │ │ │ │ unsigned _i_n_t Subscriptor::n_subscriptions ( ) const inlineinherited │ │ │ │ │ Return the present number of subscriptions to this object. This allows to use │ │ │ │ │ this class for reference counted lifetime determination where the last one to │ │ │ │ │ unsubscribe also deletes the object. │ │ │ │ │ Definition at line _3_0_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[11//22]] ********** │ │ │ │ │ -template │ │ │ │ │ +template<_t_y_p_e_n_a_m_e _S_t_r_e_a_m_T_y_p_e > │ │ │ │ │ void Subscriptor:: ( StreamType &  ssttrreeaamm ) const inlineinherited │ │ │ │ │ list_subscribers │ │ │ │ │ List the subscribers to the input stream. │ │ │ │ │ Definition at line _3_1_7 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? lliisstt__ssuubbssccrriibbeerrss(()) [[22//22]] ********** │ │ │ │ │ void Subscriptor::list_subscribers ( ) const inherited │ │ │ │ │ List the subscribers to deallog. │ │ │ │ │ Definition at line _2_0_3 of file _s_u_b_s_c_r_i_p_t_o_r_._c_c. │ │ │ │ │ ********** _?◆_? sseerriiaalliizzee(()) ********** │ │ │ │ │ -template │ │ │ │ │ +template<_c_l_a_s_s _A_r_c_h_i_v_e > │ │ │ │ │ void Subscriptor::serialize ( Archive &  aarr, │ │ │ │ │ const unsigned _i_n_t  vveerrssiioonn  inlineinherited │ │ │ │ │ ) │ │ │ │ │ Read or write the data of this object to or from a stream for the purpose of │ │ │ │ │ serialization using the _B_O_O_S_T_ _s_e_r_i_a_l_i_z_a_t_i_o_n_ _l_i_b_r_a_r_y. │ │ │ │ │ This function does not actually serialize any of the member variables of this │ │ │ │ │ class. The reason is that what this class stores is only who subscribes to this │ │ │ │ │ @@ -1231,15 +1231,15 @@ │ │ │ │ │ release mode. │ │ │ │ │ If this function is called when there is an uncaught exception then, │ │ │ │ │ rather than aborting, this function prints an error message to the │ │ │ │ │ standard error stream and returns. │ │ │ │ │ Definition at line _5_2 of file _s_u_b_s_c_r_i_p_t_o_r_._c_c. │ │ │ │ │ ********** FFrriieennddss AAnndd RReellaatteedd SSyymmbbooll DDooccuummeennttaattiioonn ********** │ │ │ │ │ ********** _?◆_? iinntteerrnnaall::::VVeeccttoorrRReeffeerreennccee ********** │ │ │ │ │ -friend class internal::VectorReference friend │ │ │ │ │ +_f_r_i_e_n_d _c_l_a_s_s internal::VectorReference friend │ │ │ │ │ Definition at line _1_4_0_6 of file _t_r_i_l_i_n_o_s___v_e_c_t_o_r_._h. │ │ │ │ │ ********** _?◆_? sswwaapp(()) ********** │ │ │ │ │ void swap ( _V_e_c_t_o_r &  uu, │ │ │ │ │ _V_e_c_t_o_r &  vv  related │ │ │ │ │ ) │ │ │ │ │ Global function swap which overloads the default implementation of the C++ │ │ │ │ │ standard library which uses a temporary object. The function simply exchanges │ │ │ │ │ @@ -1305,15 +1305,15 @@ │ │ │ │ │ ********** _?◆_? vvaalliiddiittyy__ppooiinntteerrss ********** │ │ │ │ │ std::vector *> Subscriptor:: mutableprivateinherited │ │ │ │ │ validity_pointers │ │ │ │ │ In this vector, we store pointers to the validity bool in the _S_m_a_r_t_P_o_i_n_t_e_r │ │ │ │ │ objects that subscribe to this class. │ │ │ │ │ Definition at line _2_4_0 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? oobbjjeecctt__iinnffoo ********** │ │ │ │ │ -const std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ +_c_o_n_s_t std::type_info* Subscriptor::object_info mutableprivateinherited │ │ │ │ │ Pointer to the typeinfo object of this object, from which we can later deduce │ │ │ │ │ the class name. Since this information on the derived class is neither │ │ │ │ │ available in the destructor, nor in the constructor, we obtain it in between │ │ │ │ │ and store it here. │ │ │ │ │ Definition at line _2_4_8 of file _s_u_b_s_c_r_i_p_t_o_r_._h. │ │ │ │ │ ********** _?◆_? mmuutteexx ********** │ │ │ │ │ std::mutex Subscriptor::mutex staticprivateinherited │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classXDMFEntry.html │ │ │ │ @@ -271,15 +271,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Deprecated constructor.

    │ │ │ │ -
    Deprecated:
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ +
    Deprecated:
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ │ │ │ │

    Definition at line 9399 of file data_out_base.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ XDMFEntry() [4/7]

    │ │ │ │ @@ -327,15 +327,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Deprecated constructor.

    │ │ │ │ -
    Deprecated:
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ +
    Deprecated:
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ │ │ │ │

    Definition at line 9418 of file data_out_base.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ XDMFEntry() [5/7]

    │ │ │ │ @@ -450,15 +450,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Deprecated constructor.

    │ │ │ │ -
    Deprecated:
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ +
    Deprecated:
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ │ │ │ │

    Definition at line 9455 of file data_out_base.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ XDMFEntry() [7/7]

    │ │ │ │ @@ -643,15 +643,15 @@ │ │ │ │
    ) const
    │ │ │ │
    │ │ │ │

    Get the XDMF content associated with this entry. If the entry is not valid, this returns an empty string.

    │ │ │ │ -
    Deprecated:
    Use the other function instead.
    │ │ │ │ +
    Deprecated:
    Use the other function instead.
    │ │ │ │ │ │ │ │

    Definition at line 9555 of file data_out_base.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Member Data Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classparallel_1_1distributed_1_1Triangulation.html │ │ │ │ @@ -2008,15 +2008,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    │ │ │ │

    Load the refinement information saved with save() back in. The mesh must contain the same coarse mesh that was used in save() before calling this function.

    │ │ │ │

    You do not need to load with the same number of MPI processes that you saved with. Rather, if a mesh is loaded with a different number of MPI processes than used at the time of saving, the mesh is repartitioned so that the number of cells is balanced among all processes. Individual repartitioning with non-identical weights for each cell, e.g., based on the number of dofs or particles per cell, needs to be invoked manually by calling repartition() afterwards.

    │ │ │ │

    Cell-based data that was saved with DistributedTriangulationBase::DataTransfer::register_data_attach() can be read in with DistributedTriangulationBase::DataTransfer::notify_ready_to_unpack() after calling load().

    │ │ │ │ -
    Deprecated:
    The autopartition parameter has been removed.
    │ │ │ │ +
    Deprecated:
    The autopartition parameter has been removed.
    │ │ │ │ │ │ │ │

    Implements parallel::DistributedTriangulationBase< dim, spacedim >.

    │ │ │ │ │ │ │ │

    Definition at line 2209 of file tria.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/classparallel_1_1fullydistributed_1_1Triangulation.html │ │ │ │ @@ -1749,15 +1749,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    │ │ │ │

    Load the triangulation saved with save() back in. The mesh must be empty before calling this function.

    │ │ │ │

    You need to load with the same number of MPI processes that you saved with, hence autopartition is disabled.

    │ │ │ │

    Cell-based data that was saved with register_data_attach() can be read in with notify_ready_to_unpack() after calling load().

    │ │ │ │ -
    Deprecated:
    The autopartition parameter has been removed.
    │ │ │ │ +
    Deprecated:
    The autopartition parameter has been removed.
    │ │ │ │ │ │ │ │

    Implements parallel::DistributedTriangulationBase< dim, spacedim >.

    │ │ │ │ │ │ │ │

    Definition at line 741 of file fully_distributed_tria.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/deprecated.html │ │ │ │ @@ -99,233 +99,233 @@ │ │ │ │
    Member AffineConstraints< number >::add_selected_constraints (const AffineConstraints &constraints_in, const IndexSet &filter)
    │ │ │ │
    This function is a combination of the get_view() function and merge() in that it selects a subset of constraints from another constraints object that is then merged into the current one. But the current function does not deal well with index sets. Furthermore, it simply discards parts of constraints that constrain one degree of freedom against ones that are not selected in the filter – something that should probably be considered a bug. Use get_view() and merge() instead.
    │ │ │ │
    Member AffineConstraints< number >::AffineConstraints (const IndexSet &locally_stored_constraints)
    │ │ │ │
    This constructor is equivalent to calling the following one with both of its arguments equal to the index set provided here. This is not wrong, but inefficient. Use the following constructor instead.
    │ │ │ │
    Member AffineConstraints< number >::reinit (const IndexSet &locally_stored_constraints)
    │ │ │ │
    Use the reinit() function with two index set arguments instead.
    │ │ │ │
    Member CELL_COARSEN
    │ │ │ │ -
    Use CellStatus::cell_will_be_coarsened instead
    │ │ │ │ +
    Use CellStatus::cell_will_be_coarsened instead
    │ │ │ │
    Member CELL_INVALID
    │ │ │ │ -
    Use CellStatus::cell_invalid instead
    │ │ │ │ +
    Use CellStatus::cell_invalid instead
    │ │ │ │
    Member CELL_PERSIST
    │ │ │ │ -
    Use CellStatus::cell_will_persist instead
    │ │ │ │ +
    Use CellStatus::cell_will_persist instead
    │ │ │ │
    Member CELL_REFINE
    │ │ │ │ -
    Use CellStatus::cell_will_be_refined instead
    │ │ │ │ +
    Use CellStatus::cell_will_be_refined instead
    │ │ │ │
    Member DataOutBase::default_suffix (const OutputFormat output_format)
    │ │ │ │ -
    Using Tecplot binary output is deprecated.
    │ │ │ │ +
    Using Tecplot binary output is deprecated.
    │ │ │ │
    Member DataOutBase::VtkFlags::ZlibCompressionLevel
    │ │ │ │ -
    Use DataOutBase::CompressionLevel instead.
    │ │ │ │ +
    Use DataOutBase::CompressionLevel instead.
    │ │ │ │
    Member DoFHandler< dim, spacedim >::active_fe_index_type
    │ │ │ │ -
    Use types::fe_index instead.
    │ │ │ │ +
    Use types::fe_index instead.
    │ │ │ │
    Member DoFHandler< dim, spacedim >::get_active_fe_indices (std::vector< unsigned int > &active_fe_indices) const
    │ │ │ │ -
    Use get_active_fe_indices() that returns the result vector.
    │ │ │ │ +
    Use get_active_fe_indices() that returns the result vector.
    │ │ │ │
    Member DoFHandler< dim, spacedim >::invalid_active_fe_index
    │ │ │ │ -
    Use numbers::invalid_fe_index instead.
    │ │ │ │ +
    Use numbers::invalid_fe_index instead.
    │ │ │ │
    Member DoFHandler< dim, spacedim >::invalid_fe_index
    │ │ │ │ -
    Use numbers::invalid_fe_index instead.
    │ │ │ │ +
    Use numbers::invalid_fe_index instead.
    │ │ │ │
    Member DoFHandler< dim, spacedim >::set_active_fe_indices (const std::vector< unsigned int > &active_fe_indices)
    │ │ │ │ -
    Use set_active_fe_indices() with the types::fe_index datatype.
    │ │ │ │ +
    Use set_active_fe_indices() with the types::fe_index datatype.
    │ │ │ │
    Member DoFTools::extract_locally_active_dofs (const DoFHandler< dim, spacedim > &dof_handler, IndexSet &dof_set)
    │ │ │ │ -
    Use the previous function instead.
    │ │ │ │ +
    Use the previous function instead.
    │ │ │ │
    Member DoFTools::extract_locally_active_level_dofs (const DoFHandler< dim, spacedim > &dof_handler, IndexSet &dof_set, const unsigned int level)
    │ │ │ │ -
    Use the previous function instead.
    │ │ │ │ +
    Use the previous function instead.
    │ │ │ │
    Member DoFTools::extract_locally_relevant_dofs (const DoFHandler< dim, spacedim > &dof_handler, IndexSet &dof_set)
    │ │ │ │ -
    Use the previous function instead.
    │ │ │ │ +
    Use the previous function instead.
    │ │ │ │
    Member DoFTools::extract_locally_relevant_level_dofs (const DoFHandler< dim, spacedim > &dof_handler, const unsigned int level, IndexSet &dof_set)
    │ │ │ │ -
    Use the previous function instead.
    │ │ │ │ +
    Use the previous function instead.
    │ │ │ │
    Member DoFTools::get_active_fe_indices (const DoFHandler< dim, spacedim > &dof_handler, std::vector< unsigned int > &active_fe_indices)
    │ │ │ │ -
    Use DoFHandler::get_active_fe_indices() that returns the result vector.
    │ │ │ │ -
    Member DoFTools::map_dofs_to_support_points (const hp::MappingCollection< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof_handler, std::map< types::global_dof_index, Point< spacedim > > &support_points, const ComponentMask &mask={})
    │ │ │ │ -
    Use the function that returns the std::map instead.
    │ │ │ │ +
    Use DoFHandler::get_active_fe_indices() that returns the result vector.
    │ │ │ │
    Member DoFTools::map_dofs_to_support_points (const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof_handler, std::map< types::global_dof_index, Point< spacedim > > &support_points, const ComponentMask &mask={})
    │ │ │ │ -
    Use the function that returns the std::map instead.
    │ │ │ │ +
    Use the function that returns the std::map instead.
    │ │ │ │ +
    Member DoFTools::map_dofs_to_support_points (const hp::MappingCollection< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof_handler, std::map< types::global_dof_index, Point< spacedim > > &support_points, const ComponentMask &mask={})
    │ │ │ │ +
    Use the function that returns the std::map instead.
    │ │ │ │
    Member FEEvaluationData< dim, Number, is_face >::get_normal_vector (const unsigned int q_point) const
    │ │ │ │
    Use normal_vector() instead.
    │ │ │ │
    Member FEFaceEvaluation< dim, fe_degree, n_q_points_1d, n_components_, Number, VectorizedArrayType >::integrate_scatter (const bool integrate_values, const bool integrate_gradients, VectorType &output_vector)
    │ │ │ │
    Please use the integrate_scatter() function with the EvaluationFlags argument.
    │ │ │ │
    Member FEInterfaceViews::Vector< dim, spacedim >::average_hessian (const unsigned int interface_dof_index, const unsigned int q_point) const
    │ │ │ │ -
    Use the average_of_hessians() function instead.
    │ │ │ │ +
    Use the average_of_hessians() function instead.
    │ │ │ │
    Member FEInterfaceViews::Vector< dim, spacedim >::jump_gradient (const unsigned int interface_dof_index, const unsigned int q_point) const
    │ │ │ │ -
    Use the average_of_gradients() function instead.
    │ │ │ │ +
    Use the average_of_gradients() function instead.
    │ │ │ │
    Member FEInterfaceViews::Vector< dim, spacedim >::jump_hessian (const unsigned int interface_dof_index, const unsigned int q_point) const
    │ │ │ │ -
    Use the average_of_hessians() function instead.
    │ │ │ │ +
    Use the average_of_hessians() function instead.
    │ │ │ │
    Member FEPointEvaluationBase< n_components_, dim, spacedim, Number >::real_point (const unsigned int point_index) const
    │ │ │ │ -
    Use the function quadrature_point() instead.
    │ │ │ │ +
    Use the function quadrature_point() instead.
    │ │ │ │
    Member FETools::Compositing::compute_nonzero_components (const FiniteElement< dim, spacedim > *fe1, const unsigned int N1, const FiniteElement< dim, spacedim > *fe2=nullptr, const unsigned int N2=0, const FiniteElement< dim, spacedim > *fe3=nullptr, const unsigned int N3=0, const FiniteElement< dim, spacedim > *fe4=nullptr, const unsigned int N4=0, const FiniteElement< dim, spacedim > *fe5=nullptr, const unsigned int N5=0, const bool do_tensor_product=true)
    │ │ │ │
    Use the versions of this function that take a vector of elements or an initializer list as arguments.
    │ │ │ │
    Member FETools::Compositing::compute_restriction_is_additive_flags (const FiniteElement< dim, spacedim > *fe1, const unsigned int N1, const FiniteElement< dim, spacedim > *fe2=nullptr, const unsigned int N2=0, const FiniteElement< dim, spacedim > *fe3=nullptr, const unsigned int N3=0, const FiniteElement< dim, spacedim > *fe4=nullptr, const unsigned int N4=0, const FiniteElement< dim, spacedim > *fe5=nullptr, const unsigned int N5=0)
    │ │ │ │
    Use the versions of this function that take a vector of elements or an initializer list as arguments.
    │ │ │ │
    Member FETools::Compositing::multiply_dof_numbers (const FiniteElement< dim, spacedim > *fe1, const unsigned int N1, const FiniteElement< dim, spacedim > *fe2=nullptr, const unsigned int N2=0, const FiniteElement< dim, spacedim > *fe3=nullptr, const unsigned int N3=0, const FiniteElement< dim, spacedim > *fe4=nullptr, const unsigned int N4=0, const FiniteElement< dim, spacedim > *fe5=nullptr, const unsigned int N5=0)
    │ │ │ │
    Use the versions of this function that take a vector of elements or an initializer list as arguments.
    │ │ │ │
    Member FiniteElement< dim, spacedim >::fill_fe_face_values (const typename Triangulation< dim, spacedim >::cell_iterator &cell, const unsigned int face_no, const Quadrature< dim - 1 > &quadrature, const Mapping< dim, spacedim > &mapping, const typename Mapping< dim, spacedim >::InternalDataBase &mapping_internal, const internal::FEValuesImplementation::MappingRelatedData< dim, spacedim > &mapping_data, const InternalDataBase &fe_internal, internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > &output_data) const
    │ │ │ │
    Use the version taking a hp::QCollection argument.
    │ │ │ │
    Member FiniteElement< dim, spacedim >::get_face_data (const UpdateFlags update_flags, const Mapping< dim, spacedim > &mapping, const Quadrature< dim - 1 > &quadrature, internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim > &output_data) const
    │ │ │ │
    Use the version taking a hp::QCollection argument.
    │ │ │ │
    Member GridTools::fix_up_distorted_child_cells (const typename Triangulation< dim, spacedim >::DistortedCellList &distorted_cells, Triangulation< dim, spacedim > &triangulation)
    │ │ │ │ -
    This function predates deal.II's use of manifolds and use of cell-local transfinite interpolation to place new points and is no longer necessary. See Manifolds::get_default_points_and_weights() for more information.
    │ │ │ │ +
    This function predates deal.II's use of manifolds and use of cell-local transfinite interpolation to place new points and is no longer necessary. See Manifolds::get_default_points_and_weights() for more information.
    │ │ │ │
    Member GridTools::rotate (const double angle, const unsigned int axis, Triangulation< dim, 3 > &triangulation)
    │ │ │ │ -
    Use the alternative with the unit vector instead.
    │ │ │ │ +
    Use the alternative with the unit vector instead.
    │ │ │ │
    Member identity
    │ │ │ │ -
    Use std_cxx20::type_identity instead.
    │ │ │ │ +
    Use std_cxx20::type_identity instead.
    │ │ │ │
    Member LinearAlgebra::CUDAWrappers::Vector< Number >::import (const ReadWriteVector< Number > &V, VectorOperation::values operation, std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > communication_pattern={})
    │ │ │ │ -
    Use import_elements() instead.
    │ │ │ │ +
    Use import_elements() instead.
    │ │ │ │
    Member LinearAlgebra::distributed::BlockVector< Number >::import (const LinearAlgebra::ReadWriteVector< Number > &V, VectorOperation::values operation, std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > communication_pattern={})
    │ │ │ │
    Use import_elements() instead.
    │ │ │ │ -
    Member LinearAlgebra::distributed::Vector< Number, MemorySpace >::import (const LinearAlgebra::ReadWriteVector< Number > &V, VectorOperation::values operation, std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > communication_pattern={})
    │ │ │ │ -
    Use import_elements() instead.
    │ │ │ │
    Member LinearAlgebra::distributed::Vector< Number, MemorySpace >::import (const Vector< Number, MemorySpace2 > &src, VectorOperation::values operation)
    │ │ │ │
    Use import_elements() instead.
    │ │ │ │ +
    Member LinearAlgebra::distributed::Vector< Number, MemorySpace >::import (const LinearAlgebra::ReadWriteVector< Number > &V, VectorOperation::values operation, std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > communication_pattern={})
    │ │ │ │ +
    Use import_elements() instead.
    │ │ │ │
    Member LinearAlgebra::EpetraWrappers::Vector::import (const ReadWriteVector< double > &V, const VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │
    Use import_elements() instead.
    │ │ │ │
    Member LinearAlgebra::ReadWriteVector< Number >::import (const EpetraWrappers::Vector &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ -
    Use import_elements() instead.
    │ │ │ │ -
    Member LinearAlgebra::ReadWriteVector< Number >::import (const ::Vector< Number > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ +
    Use import_elements() instead.
    │ │ │ │ +
    Member LinearAlgebra::ReadWriteVector< Number >::import (const CUDAWrappers::Vector< Number > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │
    Use import_elements() instead.
    │ │ │ │ +
    Member LinearAlgebra::ReadWriteVector< Number >::import (const ::Vector< Number > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ +
    Use import_elements() instead.
    │ │ │ │
    Member LinearAlgebra::ReadWriteVector< Number >::import (const distributed::Vector< Number, MemorySpace > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ -
    Use import_elements() instead.
    │ │ │ │ -
    Member LinearAlgebra::ReadWriteVector< Number >::import (const CUDAWrappers::Vector< Number > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ -
    Use import_elements() instead.
    │ │ │ │ -
    Member LinearAlgebra::ReadWriteVector< Number >::import (const TpetraWrappers::Vector< Number, MemorySpace > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ -
    Use import_elements() instead.
    │ │ │ │ -
    Member LinearAlgebra::ReadWriteVector< Number >::import (const TrilinosWrappers::MPI::Vector &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ -
    Use import_elements() instead.
    │ │ │ │ +
    Use import_elements() instead.
    │ │ │ │
    Member LinearAlgebra::ReadWriteVector< Number >::import (const PETScWrappers::MPI::Vector &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ -
    Use import_elements() instead.
    │ │ │ │ +
    Use import_elements() instead.
    │ │ │ │ +
    Member LinearAlgebra::ReadWriteVector< Number >::import (const TrilinosWrappers::MPI::Vector &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ +
    Use import_elements() instead.
    │ │ │ │ +
    Member LinearAlgebra::ReadWriteVector< Number >::import (const TpetraWrappers::Vector< Number, MemorySpace > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
    │ │ │ │ +
    Use import_elements() instead.
    │ │ │ │
    Member LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::import (const ReadWriteVector< Number > &V, VectorOperation::values operation, std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > communication_pattern={})
    │ │ │ │
    Use import_elements() instead.
    │ │ │ │
    Member LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::import_elements (const ReadWriteVector< Number > &V, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern)
    │ │ │ │
    Use Teuchos::RCP<> instead of std::shared_ptr<>.
    │ │ │ │ -
    Member make_array_view (SymmetricTensor< rank, dim, Number > &tensor)
    │ │ │ │ -
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ -
    Member make_array_view (Tensor< rank, dim, Number > &tensor)
    │ │ │ │ -
    This function suggests that the elements of a Tensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │
    Member make_array_view (const SymmetricTensor< rank, dim, Number > &tensor)
    │ │ │ │
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │
    Member make_array_view (const Tensor< rank, dim, Number > &tensor)
    │ │ │ │
    This function suggests that the elements of a Tensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    Member make_array_view (SymmetricTensor< rank, dim, Number > &tensor)
    │ │ │ │ +
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    Member make_array_view (Tensor< rank, dim, Number > &tensor)
    │ │ │ │ +
    This function suggests that the elements of a Tensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │
    Member Mapping< dim, spacedim >::fill_fe_face_values (const typename Triangulation< dim, spacedim >::cell_iterator &cell, const unsigned int face_no, const Quadrature< dim - 1 > &quadrature, const typename Mapping< dim, spacedim >::InternalDataBase &internal_data, internal::FEValuesImplementation::MappingRelatedData< dim, spacedim > &output_data) const
    │ │ │ │ -
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Use the version taking a hp::QCollection argument.
    │ │ │ │
    Member Mapping< dim, spacedim >::get_face_data (const UpdateFlags update_flags, const Quadrature< dim - 1 > &quadrature) const
    │ │ │ │ -
    Use the version taking a hp::QCollection argument.
    │ │ │ │ +
    Use the version taking a hp::QCollection argument.
    │ │ │ │
    Member MeshWorker::integration_loop (IteratorType begin, std_cxx20::type_identity_t< IteratorType > end, DoFInfo< dim, spacedim > &dof_info, IntegrationInfoBox< dim, spacedim > &box, const LocalIntegrator< dim, spacedim > &integrator, AssemblerType &assembler, const LoopControl &lctrl=LoopControl())
    │ │ │ │
    This function is deprecated, along with the LocalIntegrator class. Use the MeshWorker::loop() function directly, with three function objects that perform the cell, boundary, and interior face integration.
    │ │ │ │
    Class MeshWorker::LocalIntegrator< dim, spacedim, number >
    │ │ │ │ -
    This class is deprecated. It used to be the basis for integration via the MeshWorker::integration_loop() function, but the same functionality is available via MeshWorker::loop().
    │ │ │ │ +
    This class is deprecated. It used to be the basis for integration via the MeshWorker::integration_loop() function, but the same functionality is available via MeshWorker::loop().
    │ │ │ │
    Member MeshWorker::LocalIntegrator< dim, spacedim, number >::input_vector_names
    │ │ │ │ -
    Because the library itself does not use this field, it is better placed in derived classes.
    │ │ │ │ +
    Because the library itself does not use this field, it is better placed in derived classes.
    │ │ │ │
    Member MeshWorker::LocalIntegrator< dim, spacedim, number >::output_names
    │ │ │ │ -
    Because the library itself does not use this field, it is better placed in derived classes.
    │ │ │ │ +
    Because the library itself does not use this field, it is better placed in derived classes.
    │ │ │ │
    Member NonlinearSolverSelector< VectorType >::NonlinearSolverSelector (const AdditionalData &additional_data)
    │ │ │ │
    Use the other constructor with MPI_Comm instead.
    │ │ │ │
    Member parallel::distributed::Triangulation< dim, spacedim >::load (const std::string &filename, const bool autopartition) override
    │ │ │ │ -
    The autopartition parameter has been removed.
    │ │ │ │ +
    The autopartition parameter has been removed.
    │ │ │ │
    Member parallel::DistributedTriangulationBase< dim, spacedim >::load (const std::string &filename, const bool autopartition)=0
    │ │ │ │
    The autopartition parameter has been removed.
    │ │ │ │
    Member parallel::fullydistributed::Triangulation< dim, spacedim >::load (const std::string &filename, const bool autopartition) override
    │ │ │ │ -
    The autopartition parameter has been removed.
    │ │ │ │ +
    The autopartition parameter has been removed.
    │ │ │ │
    Member ParameterHandler::ShortText
    │ │ │ │
    Use ShortPRM instead of ShortText.
    │ │ │ │
    Member ParameterHandler::Text
    │ │ │ │
    Use PRM instead of Text.
    │ │ │ │
    Member Particles::ParticleAccessor< dim, spacedim >::set_property_pool (PropertyPool< dim, spacedim > &property_pool)
    │ │ │ │ -
    This function is only kept for backward compatibility and has no meaning any more. ParticleAccessors always use the property pool of the owning particle handler.
    │ │ │ │ +
    This function is only kept for backward compatibility and has no meaning any more. ParticleAccessors always use the property pool of the owning particle handler.
    │ │ │ │
    Member Particles::ParticleHandler< dim, spacedim >::register_load_callback_function (const bool serialization)
    │ │ │ │
    Please use unpack_after_coarsening_and_refinement() or deserialize() instead. See there for further information about the purpose of this function.
    │ │ │ │
    Member Particles::ParticleHandler< dim, spacedim >::register_store_callback_function ()
    │ │ │ │
    Please use prepare_for_coarsening_and_refinement() or prepare_for_serialization() instead. See there for further information about the purpose of this function.
    │ │ │ │
    Class PathSearch
    │ │ │ │ -
    Use the std::filesystem facilities instead.
    │ │ │ │ +
    Use the std::filesystem facilities instead.
    │ │ │ │
    Member PETScWrappers::SolverBiCG::SolverBiCG (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverBicgstab::SolverBicgstab (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverCG::SolverCG (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverCGS::SolverCGS (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverChebychev::SolverChebychev (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverCR::SolverCR (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverGMRES::SolverGMRES (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverLSQR::SolverLSQR (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverPreOnly::SolverPreOnly (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverRichardson::SolverRichardson (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverTCQMR::SolverTCQMR (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SolverTFQMR::SolverTFQMR (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::SparseDirectMUMPS::SparseDirectMUMPS (SolverControl &cn, const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
    │ │ │ │ -
    │ │ │ │ +
    │ │ │ │
    Member PETScWrappers::TimeStepper< VectorType, PMatrixType, AMatrixType >::decide_for_coarsening_and_refinement
    │ │ │ │
    This callback is equivalent to decide_and_prepare_for_remeshing except that it returns the decision whether or not to stop operations via the last reference argument of the function object instead of a plain return value. This callback is deprecated. Use decide_and_prepare_for_remeshing instead.
    │ │ │ │
    Member PETScWrappers::TimeStepper< VectorType, PMatrixType, AMatrixType >::distribute
    │ │ │ │
    This callback is equivalent to update_constrained_components, but is deprecated. Use update_constrained_components instead.
    │ │ │ │
    Member PETScWrappers::TimeStepper< VectorType, PMatrixType, AMatrixType >::interpolate
    │ │ │ │
    This callback is equivalent to transfer_solution_vectors_to_new_mesh, but is deprecated. Use transfer_solution_vectors_to_new_mesh instead.
    │ │ │ │
    Member Physics::Transformations::Rotations::rotation_matrix_3d (const Point< 3, Number > &axis, const Number &angle)
    │ │ │ │ -
    Use the variant with a Tensor as an axis.
    │ │ │ │ +
    Use the variant with a Tensor as an axis.
    │ │ │ │
    Member PolarManifold< dim, spacedim >::center
    │ │ │ │
    Use get_center() instead.
    │ │ │ │ -
    Member QProjector< dim >::DataSetDescriptor::face (const ReferenceCell &reference_cell, const unsigned int face_no, const bool face_orientation, const bool face_flip, const bool face_rotation, const unsigned int n_quadrature_points)
    │ │ │ │ -
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │
    Member QProjector< dim >::DataSetDescriptor::face (const ReferenceCell &reference_cell, const unsigned int face_no, const bool face_orientation, const bool face_flip, const bool face_rotation, const hp::QCollection< dim - 1 > &quadrature)
    │ │ │ │ -
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │ +
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │ +
    Member QProjector< dim >::DataSetDescriptor::face (const ReferenceCell &reference_cell, const unsigned int face_no, const bool face_orientation, const bool face_flip, const bool face_rotation, const unsigned int n_quadrature_points)
    │ │ │ │ +
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │
    Member QProjector< dim >::DataSetDescriptor::subface (const ReferenceCell &reference_cell, const unsigned int face_no, const unsigned int subface_no, const bool face_orientation, const bool face_flip, const bool face_rotation, const unsigned int n_quadrature_points, const internal::SubfaceCase< dim > ref_case=internal::SubfaceCase< dim >::case_isotropic)
    │ │ │ │ -
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │ +
    Use the version of this function which takes a combined_orientation argument instead.
    │ │ │ │
    Member ReferenceCell::compute_orientation (const std::array< T, N > &vertices_0, const std::array< T, N > &vertices_1) const
    │ │ │ │
    Use get_combined_orientation() instead.
    │ │ │ │
    Member ReferenceCell::permute_according_orientation (const std::array< T, N > &vertices, const unsigned int orientation) const
    │ │ │ │
    Use permute_by_combined_orientation() instead.
    │ │ │ │
    Class SLEPcWrappers::TransformationSpectrumFolding
    │ │ │ │ -
    Since deal.II requires PETSc 3.7 or newer this class no longer does anything.
    │ │ │ │ +
    Since deal.II requires PETSc 3.7 or newer this class no longer does anything.
    │ │ │ │
    Member SolverGMRES< VectorType >::AdditionalData::max_n_tmp_vectors
    │ │ │ │
    Use max_basis_size instead.
    │ │ │ │
    Member SparsityTools::distribute_sparsity_pattern (BlockDynamicSparsityPattern &dsp, const std::vector< IndexSet > &owned_set_per_cpu, const MPI_Comm mpi_comm, const IndexSet &myrange)
    │ │ │ │
    Use the distribute_sparsity_pattern() with a single index set for the present MPI process only.
    │ │ │ │
    Member SphericalManifold< dim, spacedim >::center
    │ │ │ │
    Use get_center() instead.
    │ │ │ │
    Member SymmetricTensor< rank_, dim, Number >::begin_raw ()
    │ │ │ │ -
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │
    Member SymmetricTensor< rank_, dim, Number >::begin_raw () const
    │ │ │ │ -
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │
    Member SymmetricTensor< rank_, dim, Number >::end_raw () const
    │ │ │ │ -
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │
    Member SymmetricTensor< rank_, dim, Number >::end_raw ()
    │ │ │ │ -
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │ +
    This function suggests that the elements of a SymmetricTensor object are stored as a contiguous array, but this is not in fact true and one should not pretend that this so. As a consequence, this function is deprecated.
    │ │ │ │
    Member Tensor< rank_, dim, Number >::unroll (Vector< OtherNumber > &result) const
    │ │ │ │ -
    Use the more general function that takes a pair of iterators instead.
    │ │ │ │ +
    Use the more general function that takes a pair of iterators instead.
    │ │ │ │
    Member Triangulation< dim, spacedim >::CELL_COARSEN
    │ │ │ │
    This is an alias for backward compatibility. Use CellStatus directly.
    │ │ │ │
    Member Triangulation< dim, spacedim >::CELL_INVALID
    │ │ │ │
    This is an alias for backward compatibility. Use CellStatus directly.
    │ │ │ │
    Member Triangulation< dim, spacedim >::CELL_PERSIST
    │ │ │ │
    This is an alias for backward compatibility. Use CellStatus directly.
    │ │ │ │
    Member Triangulation< dim, spacedim >::CELL_REFINE
    │ │ │ │
    This is an alias for backward compatibility. Use CellStatus directly.
    │ │ │ │
    Member Triangulation< dim, spacedim >::CellStatus
    │ │ │ │
    This is an alias for backward compatibility. Use CellStatus directly.
    │ │ │ │
    Member TrilinosWrappers::MPI::Vector::import (const LinearAlgebra::ReadWriteVector< double > &rwv, const VectorOperation::values operation)
    │ │ │ │
    Use import_elements() instead.
    │ │ │ │
    Member Utilities::MPI::create_group (const MPI_Comm comm, const MPI_Group &group, const int tag, MPI_Comm *new_comm)
    │ │ │ │ -
    Use MPI_Comm_create_group directly
    │ │ │ │ +
    Use MPI_Comm_create_group directly
    │ │ │ │
    Member Utilities::MPI::RemotePointEvaluation< dim, spacedim >::RemotePointEvaluation (const double tolerance, const bool enforce_unique_mapping=false, const unsigned int rtree_level=0, const std::function< std::vector< bool >()> &marked_vertices={})
    │ │ │ │
    │ │ │ │
    Member XDMFEntry::get_xdmf_content (const unsigned int indent_level, const ReferenceCell &reference_cell) const
    │ │ │ │ -
    Use the other function instead.
    │ │ │ │ +
    Use the other function instead.
    │ │ │ │
    Member XDMFEntry::XDMFEntry (const std::string &mesh_filename, const std::string &solution_filename, const double time, const std::uint64_t nodes, const std::uint64_t cells, const unsigned int dim, const unsigned int spacedim)
    │ │ │ │ -
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ +
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │
    Member XDMFEntry::XDMFEntry (const std::string &mesh_filename, const std::string &solution_filename, const double time, const std::uint64_t nodes, const std::uint64_t cells, const unsigned int dim)
    │ │ │ │ -
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ +
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │
    Member XDMFEntry::XDMFEntry (const std::string &filename, const double time, const std::uint64_t nodes, const std::uint64_t cells, const unsigned int dim)
    │ │ │ │ -
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ +
    Use the constructor that additionally takes a ReferenceCell.
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
     
    static ::ExceptionBaseSparsityTools::ExcZOLTANNotInstalled ()
     
    static ::ExceptionBaseTrilinosWrappers::BlockSparseMatrix::ExcIncompatibleRowNumbers (int arg1, int arg2, int arg3, int arg4)
     
    static ::ExceptionBaseTrilinosWrappers::BlockSparseMatrix::ExcIncompatibleColNumbers (int arg1, int arg2, int arg3, int arg4)
     
    static ::ExceptionBaseLinearAlgebra::EpetraWrappers::Vector::ExcDifferentParallelPartitioning ()
    static ::ExceptionBaseLinearAlgebra::EpetraWrappers::Vector::ExcDifferentParallelPartitioning ()
     
    static ::ExceptionBaseLinearAlgebra::EpetraWrappers::Vector::ExcVectorTypeNotCompatible ()
    static ::ExceptionBaseLinearAlgebra::EpetraWrappers::Vector::ExcVectorTypeNotCompatible ()
     
    static ::ExceptionBaseLinearAlgebra::EpetraWrappers::Vector::ExcTrilinosError (int arg1)
    static ::ExceptionBaseLinearAlgebra::EpetraWrappers::Vector::ExcTrilinosError (int arg1)
     
    static ::ExceptionBaseTrilinosWrappers::MPI::BlockVector::ExcIteratorRangeDoesNotMatchVectorSize ()
     
    static ::ExceptionBaseTrilinosWrappers::MPI::BlockVector::ExcNonMatchingBlockVectors ()
     
    static ::ExceptionBaseTrilinosWrappers::PreconditionBase::ExcNonMatchingMaps (std::string arg1)
     
     
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::SparsityPattern< MemorySpace >::ExcInvalidIndex (size_type arg1, size_type arg2)
     
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::SparsityPattern< MemorySpace >::ExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
     
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::SparsityPattern< MemorySpace >::ExcAccessToNonPresentElement (size_type arg1, size_type arg2)
     
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcDifferentParallelPartitioning ()
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcDifferentParallelPartitioning ()
     
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcVectorTypeNotCompatible ()
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcVectorTypeNotCompatible ()
     
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
     
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcMissingIndexSet ()
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcMissingIndexSet ()
     
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcTrilinosError (int arg1)
    static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcTrilinosError (int arg1)
     
    static ::ExceptionBaseTrilinosWrappers::MPI::Vector::ExcDifferentParallelPartitioning ()
    static ::ExceptionBaseTrilinosWrappers::MPI::Vector::ExcDifferentParallelPartitioning ()
     
    static ::ExceptionBaseTrilinosWrappers::MPI::Vector::ExcTrilinosError (int arg1)
    static ::ExceptionBaseTrilinosWrappers::MPI::Vector::ExcTrilinosError (int arg1)
     
    static ::ExceptionBaseTrilinosWrappers::MPI::Vector::ExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
    static ::ExceptionBaseTrilinosWrappers::MPI::Vector::ExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
     
    static ::ExceptionBaseVectorMemory< VectorType >::ExcNotAllocatedHere ()
     
    static ::ExceptionBaseinternal::ExcAccessToUninitializedField ()
     
    static ::ExceptionBaseinternal::ExcMatrixFreeAccessToUninitializedMappingField (std::string arg1)
     
    │ │ │ │
    │ │ │ │ static
    │ │ │ │
    │ │ │ │ -
    Todo:
    Write description
    │ │ │ │ +
    Todo:
    Write description
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ ExcGridNotCoarser()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -6489,15 +6489,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ static
    │ │ │ │
    │ │ │ │ -
    Todo:
    Write description
    │ │ │ │ +
    Todo:
    Write description
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ ExcGridsDontMatch()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -6515,15 +6515,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ static
    │ │ │ │
    │ │ │ │ -
    Todo:
    Write description
    │ │ │ │ +
    Todo:
    Write description
    │ │ │ │

    Exception

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ ExcNoFESelected() [2/2]

    │ │ │ │ │ │ │ │ @@ -6568,15 +6568,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ static
    │ │ │ │
    │ │ │ │ -
    Todo:
    Write description
    │ │ │ │ +
    Todo:
    Write description
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ ExcNoComponentSelected()

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -13646,15 +13646,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & LinearAlgebra::EpetraWrappers::Vector::ExcDifferentParallelPartitioning static ::ExceptionBase & LinearAlgebra::EpetraWrappers::Vector::ExcDifferentParallelPartitioning ()
    │ │ │ │
    │ │ │ │ @@ -13672,15 +13672,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & LinearAlgebra::EpetraWrappers::Vector::ExcVectorTypeNotCompatible static ::ExceptionBase & LinearAlgebra::EpetraWrappers::Vector::ExcVectorTypeNotCompatible ()
    │ │ │ │
    │ │ │ │ @@ -13698,15 +13698,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -15157,21 +15157,21 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ ExcDifferentParallelPartitioning() [2/3]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & LinearAlgebra::EpetraWrappers::Vector::ExcTrilinosError static ::ExceptionBase & LinearAlgebra::EpetraWrappers::Vector::ExcTrilinosError (int arg1)
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcDifferentParallelPartitioning static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcDifferentParallelPartitioning ()
    │ │ │ │
    │ │ │ │ @@ -15185,21 +15185,21 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ ExcVectorTypeNotCompatible() [5/5]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcVectorTypeNotCompatible static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcVectorTypeNotCompatible ()
    │ │ │ │
    │ │ │ │ @@ -15213,21 +15213,21 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ ExcAccessToNonLocalElement() [6/7]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -15264,21 +15264,21 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ ExcMissingIndexSet()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │
    static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcAccessToNonLocalElement static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcAccessToNonLocalElement (size_type arg1,
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcMissingIndexSet static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcMissingIndexSet ()
    │ │ │ │
    │ │ │ │ @@ -15292,21 +15292,21 @@ │ │ │ │ │ │ │ │ │ │ │ │

    ◆ ExcTrilinosError() [9/10]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ +template<typename Number , typename MemorySpace = ::MemorySpace::Host>
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -15325,15 +15325,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcTrilinosError static ::ExceptionBase & LinearAlgebra::TpetraWrappers::Vector< Number, MemorySpace >::ExcTrilinosError (int arg1)
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & TrilinosWrappers::MPI::Vector::ExcDifferentParallelPartitioning static ::ExceptionBase & TrilinosWrappers::MPI::Vector::ExcDifferentParallelPartitioning ()
    │ │ │ │
    │ │ │ │ @@ -15351,15 +15351,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -15378,15 +15378,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & TrilinosWrappers::MPI::Vector::ExcTrilinosError static ::ExceptionBase & TrilinosWrappers::MPI::Vector::ExcTrilinosError (int arg1)
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -985,22 +985,22 @@ │ │ │ │ │ _E_x_c_I_n_c_o_m_p_a_t_i_b_l_e_R_o_w_N_u_m_b_e_r_s (_i_n_t arg1, _i_n_t arg2, _i_n_t │ │ │ │ │ arg3, _i_n_t arg4) │ │ │ │ │   │ │ │ │ │ static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_B_l_o_c_k_S_p_a_r_s_e_M_a_t_r_i_x_:_: │ │ │ │ │ _E_x_c_I_n_c_o_m_p_a_t_i_b_l_e_C_o_l_N_u_m_b_e_r_s (_i_n_t arg1, _i_n_t arg2, _i_n_t │ │ │ │ │ arg3, _i_n_t arg4) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ _E_x_c_V_e_c_t_o_r_T_y_p_e_N_o_t_C_o_m_p_a_t_i_b_l_e () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ - _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t arg1) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ + _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t _a_r_g_1) │ │ │ │ │   │ │ │ │ │ static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_B_l_o_c_k_V_e_c_t_o_r_:_: │ │ │ │ │ _E_x_c_I_t_e_r_a_t_o_r_R_a_n_g_e_D_o_e_s_N_o_t_M_a_t_c_h_V_e_c_t_o_r_S_i_z_e () │ │ │ │ │   │ │ │ │ │ static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_B_l_o_c_k_V_e_c_t_o_r_:_: │ │ │ │ │ _E_x_c_N_o_n_M_a_t_c_h_i_n_g_B_l_o_c_k_V_e_c_t_o_r_s () │ │ │ │ │   │ │ │ │ │ @@ -1150,39 +1150,39 @@ │ │ │ │ │ _M_e_m_o_r_y_S_p_a_c_e_ _>_:_:_E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t (_s_i_z_e___t_y_p_e │ │ │ │ │ arg1, _s_i_z_e___t_y_p_e arg2, _s_i_z_e___t_y_p_e arg3, _s_i_z_e___t_y_p_e arg4) │ │ │ │ │   │ │ │ │ │ static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_S_p_a_r_s_i_t_y_P_a_t_t_e_r_n_< │ │ │ │ │ _M_e_m_o_r_y_S_p_a_c_e_ _>_:_:_E_x_c_A_c_c_e_s_s_T_o_N_o_n_P_r_e_s_e_n_t_E_l_e_m_e_n_t │ │ │ │ │ (_s_i_z_e___t_y_p_e arg1, _s_i_z_e___t_y_p_e arg2) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ _M_e_m_o_r_y_S_p_a_c_e_ _>_:_:_E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ _M_e_m_o_r_y_S_p_a_c_e_ _>_:_:_E_x_c_V_e_c_t_o_r_T_y_p_e_N_o_t_C_o_m_p_a_t_i_b_l_e () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ _M_e_m_o_r_y_S_p_a_c_e_ _>_:_:_E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t (_s_i_z_e___t_y_p_e │ │ │ │ │ - arg1, _s_i_z_e___t_y_p_e arg2, _s_i_z_e___t_y_p_e arg3, _s_i_z_e___t_y_p_e arg4) │ │ │ │ │ + _a_r_g_1, _s_i_z_e___t_y_p_e _a_r_g_2, _s_i_z_e___t_y_p_e _a_r_g_3, _s_i_z_e___t_y_p_e _a_r_g_4) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ _M_e_m_o_r_y_S_p_a_c_e_ _>_:_:_E_x_c_M_i_s_s_i_n_g_I_n_d_e_x_S_e_t () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ - _M_e_m_o_r_y_S_p_a_c_e_ _>_:_:_E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t arg1) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_<_ _N_u_m_b_e_r_, │ │ │ │ │ + _M_e_m_o_r_y_S_p_a_c_e_ _>_:_:_E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t _a_r_g_1) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g () │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t │ │ │ │ │ - arg1) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_:_E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r (_i_n_t │ │ │ │ │ + _a_r_g_1) │ │ │ │ │   │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ - _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t (_s_i_z_e___t_y_p_e arg1, _s_i_z_e___t_y_p_e │ │ │ │ │ - arg2, _s_i_z_e___t_y_p_e arg3, _s_i_z_e___t_y_p_e arg4) │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_M_P_I_:_:_V_e_c_t_o_r_:_: │ │ │ │ │ + _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t (_s_i_z_e___t_y_p_e _a_r_g_1, _s_i_z_e___t_y_p_e │ │ │ │ │ + _a_r_g_2, _s_i_z_e___t_y_p_e _a_r_g_3, _s_i_z_e___t_y_p_e _a_r_g_4) │ │ │ │ │   │ │ │ │ │ static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _V_e_c_t_o_r_M_e_m_o_r_y_<_ _V_e_c_t_o_r_T_y_p_e_ _>_:_:_E_x_c_N_o_t_A_l_l_o_c_a_t_e_d_H_e_r_e () │ │ │ │ │   │ │ │ │ │ static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _i_n_t_e_r_n_a_l_:_:_E_x_c_A_c_c_e_s_s_T_o_U_n_i_n_i_t_i_a_l_i_z_e_d_F_i_e_l_d () │ │ │ │ │   │ │ │ │ │ static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e &  _i_n_t_e_r_n_a_l_:_: │ │ │ │ │ _E_x_c_M_a_t_r_i_x_F_r_e_e_A_c_c_e_s_s_T_o_U_n_i_n_i_t_i_a_l_i_z_e_d_M_a_p_p_i_n_g_F_i_e_l_d (std:: │ │ │ │ │ @@ -5843,24 +5843,24 @@ │ │ │ │ │ ) │ │ │ │ │ Exception │ │ │ │ │ Note │ │ │ │ │ The message that will be printed by this exception reads: │ │ │ │ │ << "The blocks [" << arg1 << ',' << arg2 << "] and [" << arg3 << ',' << │ │ │ │ │ arg4 << "] have differing column numbers." │ │ │ │ │ ********** _?◆_? EExxccDDiiffffeerreennttPPaarraalllleellPPaarrttiittiioonniinngg(()) [[11//33]] ********** │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & LinearAlgebra::EpetraWrappers:: ( ) static │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & LinearAlgebra::EpetraWrappers:: ( ) static │ │ │ │ │ Vector::ExcDifferentParallelPartitioning │ │ │ │ │ The vectors have different partitioning, i.e. their _I_n_d_e_x_S_e_t objects don't │ │ │ │ │ represent the same indices. │ │ │ │ │ ********** _?◆_? EExxccVVeeccttoorrTTyyppeeNNoottCCoommppaattiibbllee(()) [[44//55]] ********** │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & LinearAlgebra::EpetraWrappers:: ( ) static │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & LinearAlgebra::EpetraWrappers:: ( ) static │ │ │ │ │ Vector::ExcVectorTypeNotCompatible │ │ │ │ │ Attempt to perform an operation between two incompatible vector types. │ │ │ │ │ ********** _?◆_? EExxccTTrriilliinnoossEErrrroorr(()) [[22//1100]] ********** │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & LinearAlgebra:: ( _i_n_t  aarrgg11 ) static │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & LinearAlgebra:: ( _i_n_t  aarrgg11 ) static │ │ │ │ │ EpetraWrappers::Vector::ExcTrilinosError │ │ │ │ │ Exception thrown by an error in Trilinos. │ │ │ │ │ Note │ │ │ │ │ The message that will be printed by this exception reads: │ │ │ │ │ << "An error with error number " << arg1 << " occurred while calling a │ │ │ │ │ Trilinos function" │ │ │ │ │ ********** _?◆_? EExxccIItteerraattoorrRRaannggeeDDooeessNNoottMMaattcchhVVeeccttoorrSSiizzee(()) [[44//44]] ********** │ │ │ │ │ @@ -6304,28 +6304,28 @@ │ │ │ │ │ Exception │ │ │ │ │ Note │ │ │ │ │ The message that will be printed by this exception reads: │ │ │ │ │ << "You tried to access element (" << arg1 << '/' << arg2 << ')' << " of │ │ │ │ │ a sparse matrix, but it appears to not" << " exist in the Trilinos │ │ │ │ │ sparsity pattern." │ │ │ │ │ ********** _?◆_? EExxccDDiiffffeerreennttPPaarraalllleellPPaarrttiittiioonniinngg(()) [[22//33]] ********** │ │ │ │ │ -template │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >:: ( ) static │ │ │ │ │ ExcDifferentParallelPartitioning │ │ │ │ │ The vectors have different partitioning, i.e. their _I_n_d_e_x_S_e_t objects don't │ │ │ │ │ represent the same indices. │ │ │ │ │ ********** _?◆_? EExxccVVeeccttoorrTTyyppeeNNoottCCoommppaattiibbllee(()) [[55//55]] ********** │ │ │ │ │ -template │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( ) static │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( ) static │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >::ExcVectorTypeNotCompatible │ │ │ │ │ Attempt to perform an operation between two incompatible vector types. │ │ │ │ │ ********** _?◆_? EExxccAAcccceessssTTooNNoonnLLooccaallEElleemmeenntt(()) [[66//77]] ********** │ │ │ │ │ -template │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: ( _s_i_z_e___t_y_p_e  aarrgg11, │ │ │ │ │ ExcAccessToNonLocalElement │ │ │ │ │ _s_i_z_e___t_y_p_e  aarrgg22, static │ │ │ │ │ _s_i_z_e___t_y_p_e  aarrgg33, │ │ │ │ │ _s_i_z_e___t_y_p_e  aarrgg44  │ │ │ │ │ ) │ │ │ │ │ Note │ │ │ │ │ @@ -6339,48 +6339,48 @@ │ │ │ │ │ stored locally." << "\n\n" << "A common source for this kind of problem │ │ │ │ │ is that you " << "are passing a 'fully distributed' vector into a │ │ │ │ │ function " << "that needs read access to vector elements that correspond │ │ │ │ │ " << "to degrees of freedom on ghost cells (or at least to " << "'locally │ │ │ │ │ active' degrees of freedom that are not also " << "'locally owned'). You │ │ │ │ │ need to pass a vector that has these " << "elements as ghost entries." │ │ │ │ │ ********** _?◆_? EExxccMMiissssiinnggIInnddeexxSSeett(()) ********** │ │ │ │ │ -template │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( ) static │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_: ( ) static │ │ │ │ │ _V_e_c_t_o_r< Number, MemorySpace >::ExcMissingIndexSet │ │ │ │ │ Missing index set. │ │ │ │ │ Note │ │ │ │ │ The message that will be printed by this exception reads: │ │ │ │ │ "To compress a vector, a locally_relevant_dofs " "index set, and a │ │ │ │ │ locally_owned_dofs index set " "must be provided. These index sets must │ │ │ │ │ be " "provided either when the vector is initialized " "or when compress │ │ │ │ │ is called. See the documentation " "of compress() for more information." │ │ │ │ │ ********** _?◆_? EExxccTTrriilliinnoossEErrrroorr(()) [[99//1100]] ********** │ │ │ │ │ -template │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ +template<_t_y_p_e_n_a_m_e Number , _t_y_p_e_n_a_m_e MemorySpace = ::MemorySpace::Host> │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & _L_i_n_e_a_r_A_l_g_e_b_r_a_:_: │ │ │ │ │ _T_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r< Number, MemorySpace >:: ( _i_n_t  aarrgg11 ) static │ │ │ │ │ ExcTrilinosError │ │ │ │ │ Exception thrown by an error in Trilinos. │ │ │ │ │ Note │ │ │ │ │ The message that will be printed by this exception reads: │ │ │ │ │ << "An error with error number " << arg1 << " occurred while calling a │ │ │ │ │ Trilinos function" │ │ │ │ │ ********** _?◆_? EExxccDDiiffffeerreennttPPaarraalllleellPPaarrttiittiioonniinngg(()) [[33//33]] ********** │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & TrilinosWrappers::MPI:: ( ) static │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & TrilinosWrappers::MPI:: ( ) static │ │ │ │ │ Vector::ExcDifferentParallelPartitioning │ │ │ │ │ Exception │ │ │ │ │ ********** _?◆_? EExxccTTrriilliinnoossEErrrroorr(()) [[1100//1100]] ********** │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & TrilinosWrappers::MPI:: ( _i_n_t  aarrgg11 ) static │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & TrilinosWrappers::MPI:: ( _i_n_t  aarrgg11 ) static │ │ │ │ │ Vector::ExcTrilinosError │ │ │ │ │ Exception │ │ │ │ │ Note │ │ │ │ │ The message that will be printed by this exception reads: │ │ │ │ │ << "An error with error number " << arg1 << " occurred while calling a │ │ │ │ │ Trilinos function" │ │ │ │ │ ********** _?◆_? EExxccAAcccceessssTTooNNoonnLLooccaallEElleemmeenntt(()) [[77//77]] ********** │ │ │ │ │ -static _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & TrilinosWrappers::MPI:: ( _s_i_z_e___t_y_p_e  aarrgg11, │ │ │ │ │ +_s_t_a_t_i_c _:_:_E_x_c_e_p_t_i_o_n_B_a_s_e & TrilinosWrappers::MPI:: ( _s_i_z_e___t_y_p_e  aarrgg11, │ │ │ │ │ Vector::ExcAccessToNonLocalElement │ │ │ │ │ _s_i_z_e___t_y_p_e  aarrgg22, static │ │ │ │ │ _s_i_z_e___t_y_p_e  aarrgg33, │ │ │ │ │ _s_i_z_e___t_y_p_e  aarrgg44  │ │ │ │ │ ) │ │ │ │ │ Exception │ │ │ │ │ Note │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/local__results_8h_source.html │ │ │ │ @@ -181,31 +181,31 @@ │ │ │ │
    136
    │ │ │ │
    140 const BlockVector<number> &
    │ │ │ │
    │ │ │ │
    141 vector(const unsigned int i) const;
    │ │ │ │
    142
    │ │ │ │ │ │ │ │
    │ │ │ │ -
    150 matrix(const unsigned int i, const bool external = false);
    │ │ │ │ +
    150 matrix(const unsigned int i, const bool external = false);
    │ │ │ │
    151
    │ │ │ │ │ │ │ │
    │ │ │ │ -
    159 matrix(const unsigned int i, const bool external = false) const;
    │ │ │ │ +
    159 matrix(const unsigned int i, const bool external = false) const;
    │ │ │ │
    160
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    168
    │ │ │ │
    172 number &
    │ │ │ │
    │ │ │ │ -
    173 quadrature_value(const unsigned int k, const unsigned int i);
    │ │ │ │ +
    173 quadrature_value(const unsigned int k, const unsigned int i);
    │ │ │ │
    174
    │ │ │ │
    178 number
    │ │ │ │
    │ │ │ │ -
    179 quadrature_value(const unsigned int k, const unsigned int i) const;
    │ │ │ │ +
    179 quadrature_value(const unsigned int k, const unsigned int i) const;
    │ │ │ │
    180
    │ │ │ │
    186 void
    │ │ │ │
    │ │ │ │
    187 initialize_numbers(const unsigned int n);
    │ │ │ │
    188
    │ │ │ │
    194 void
    │ │ │ │
    │ │ │ │ @@ -225,23 +225,23 @@ │ │ │ │
    227 void
    │ │ │ │
    │ │ │ │ │ │ │ │
    229 bool both);
    │ │ │ │
    230
    │ │ │ │
    235 void
    │ │ │ │
    │ │ │ │ -
    236 initialize_quadrature(const unsigned int np, const unsigned int nv);
    │ │ │ │ +
    236 initialize_quadrature(const unsigned int np, const unsigned int nv);
    │ │ │ │
    237
    │ │ │ │
    243 void
    │ │ │ │ -
    244 reinit(const BlockIndices &local_sizes);
    │ │ │ │ + │ │ │ │
    245
    │ │ │ │
    246 template <typename StreamType>
    │ │ │ │
    247 void
    │ │ │ │
    │ │ │ │ -
    248 print_debug(StreamType &os) const;
    │ │ │ │ + │ │ │ │
    249
    │ │ │ │
    253 std::size_t
    │ │ │ │
    254 memory_consumption() const;
    │ │ │ │
    255
    │ │ │ │
    256 private:
    │ │ │ │
    260 std::vector<number> J;
    │ │ │ │
    261
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -77,27 +77,27 @@ │ │ │ │ │ 134 _B_l_o_c_k_V_e_c_t_o_r_<_n_u_m_b_e_r_> & │ │ │ │ │ _1_3_5 _v_e_c_t_o_r(const unsigned int i); │ │ │ │ │ 136 │ │ │ │ │ 140 const _B_l_o_c_k_V_e_c_t_o_r_<_n_u_m_b_e_r_> & │ │ │ │ │ _1_4_1 _v_e_c_t_o_r(const unsigned int i) const; │ │ │ │ │ 142 │ │ │ │ │ 149 _M_a_t_r_i_x_B_l_o_c_k_<_F_u_l_l_M_a_t_r_i_x_<_n_u_m_b_e_r_>> & │ │ │ │ │ -_1_5_0 _m_a_t_r_i_x(const unsigned int i, const bool external = false); │ │ │ │ │ +_1_5_0 _m_a_t_r_i_x(const unsigned int i, const bool _e_x_t_e_r_n_a_l = false); │ │ │ │ │ 151 │ │ │ │ │ 158 const _M_a_t_r_i_x_B_l_o_c_k_<_F_u_l_l_M_a_t_r_i_x_<_n_u_m_b_e_r_>> & │ │ │ │ │ -_1_5_9 _m_a_t_r_i_x(const unsigned int i, const bool external = false) const; │ │ │ │ │ +_1_5_9 _m_a_t_r_i_x(const unsigned int i, const bool _e_x_t_e_r_n_a_l = false) const; │ │ │ │ │ 160 │ │ │ │ │ 166 _T_a_b_l_e_<_2_,_ _n_u_m_b_e_r_> & │ │ │ │ │ _1_6_7 _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e_s(); │ │ │ │ │ 168 │ │ │ │ │ 172 number & │ │ │ │ │ -_1_7_3 _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e(const unsigned int k, const unsigned int i); │ │ │ │ │ +_1_7_3 _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e(const unsigned int _k, const unsigned int i); │ │ │ │ │ 174 │ │ │ │ │ 178 number │ │ │ │ │ -_1_7_9 _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e(const unsigned int k, const unsigned int i) const; │ │ │ │ │ +_1_7_9 _q_u_a_d_r_a_t_u_r_e___v_a_l_u_e(const unsigned int _k, const unsigned int i) const; │ │ │ │ │ 180 │ │ │ │ │ 186 void │ │ │ │ │ _1_8_7 _i_n_i_t_i_a_l_i_z_e___n_u_m_b_e_r_s(const unsigned int n); │ │ │ │ │ 188 │ │ │ │ │ 194 void │ │ │ │ │ _1_9_5 _i_n_i_t_i_a_l_i_z_e___v_e_c_t_o_r_s(const unsigned int n); │ │ │ │ │ 196 │ │ │ │ │ @@ -111,22 +111,22 @@ │ │ │ │ │ 218 │ │ │ │ │ 226 template │ │ │ │ │ 227 void │ │ │ │ │ _2_2_8 _i_n_i_t_i_a_l_i_z_e___m_a_t_r_i_c_e_s(const _M_G_M_a_t_r_i_x_B_l_o_c_k_V_e_c_t_o_r_<_M_a_t_r_i_x_T_y_p_e_> &matrices, │ │ │ │ │ 229 bool both); │ │ │ │ │ 230 │ │ │ │ │ 235 void │ │ │ │ │ -_2_3_6 _i_n_i_t_i_a_l_i_z_e___q_u_a_d_r_a_t_u_r_e(const unsigned int np, const unsigned int nv); │ │ │ │ │ +_2_3_6 _i_n_i_t_i_a_l_i_z_e___q_u_a_d_r_a_t_u_r_e(const unsigned int _n_p, const unsigned int _n_v); │ │ │ │ │ 237 │ │ │ │ │ 243 void │ │ │ │ │ -244 _r_e_i_n_i_t(const _B_l_o_c_k_I_n_d_i_c_e_s &local_sizes); │ │ │ │ │ +244 _r_e_i_n_i_t(const _B_l_o_c_k_I_n_d_i_c_e_s &_l_o_c_a_l___s_i_z_e_s); │ │ │ │ │ 245 │ │ │ │ │ 246 template │ │ │ │ │ 247 void │ │ │ │ │ -_2_4_8 _p_r_i_n_t___d_e_b_u_g(StreamType &os) const; │ │ │ │ │ +_2_4_8 _p_r_i_n_t___d_e_b_u_g(_S_t_r_e_a_m_T_y_p_e &os) const; │ │ │ │ │ 249 │ │ │ │ │ 253 std::size_t │ │ │ │ │ 254 _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n() const; │ │ │ │ │ 255 │ │ │ │ │ 256 private: │ │ │ │ │ _2_6_0 std::vector _J; │ │ │ │ │ 261 │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/meshworker_2dof__info_8h_source.html │ │ │ │ @@ -164,38 +164,38 @@ │ │ │ │
    110
    │ │ │ │ │ │ │ │
    115
    │ │ │ │
    120 DoFInfo(const DoFHandler<dim, spacedim> &dof_handler);
    │ │ │ │
    121
    │ │ │ │
    125 template <class DHCellIterator>
    │ │ │ │
    126 void
    │ │ │ │ -
    127 reinit(const DHCellIterator &c);
    │ │ │ │ +
    127 reinit(const DHCellIterator &c);
    │ │ │ │
    128
    │ │ │ │
    132 template <class DHCellIterator, class DHFaceIterator>
    │ │ │ │
    133 void
    │ │ │ │ -
    134 reinit(const DHCellIterator &c,
    │ │ │ │ -
    135 const DHFaceIterator &f,
    │ │ │ │ -
    136 const unsigned int face_no);
    │ │ │ │ +
    134 reinit(const DHCellIterator &c,
    │ │ │ │ +
    135 const DHFaceIterator &f,
    │ │ │ │ +
    136 const unsigned int face_no);
    │ │ │ │
    137
    │ │ │ │
    141 template <class DHCellIterator, class DHFaceIterator>
    │ │ │ │
    142 void
    │ │ │ │ -
    143 reinit(const DHCellIterator &c,
    │ │ │ │ -
    144 const DHFaceIterator &f,
    │ │ │ │ -
    145 const unsigned int face_no,
    │ │ │ │ -
    146 const unsigned int subface_no);
    │ │ │ │ +
    143 reinit(const DHCellIterator &c,
    │ │ │ │ +
    144 const DHFaceIterator &f,
    │ │ │ │ +
    145 const unsigned int face_no,
    │ │ │ │ +
    146 const unsigned int subface_no);
    │ │ │ │
    147
    │ │ │ │
    152 template <class DHFaceIterator>
    │ │ │ │
    153 void
    │ │ │ │ -
    154 set_face(const DHFaceIterator &f, const unsigned int face_no);
    │ │ │ │ +
    154 set_face(const DHFaceIterator &f, const unsigned int face_no);
    │ │ │ │
    155
    │ │ │ │
    160 template <class DHFaceIterator>
    │ │ │ │
    161 void
    │ │ │ │ -
    162 set_subface(const DHFaceIterator &f,
    │ │ │ │ -
    163 const unsigned int face_no,
    │ │ │ │ -
    164 const unsigned int subface_no);
    │ │ │ │ + │ │ │ │ +
    163 const unsigned int face_no,
    │ │ │ │ +
    164 const unsigned int subface_no);
    │ │ │ │
    165
    │ │ │ │
    166 const BlockIndices &
    │ │ │ │
    167 local_indices() const;
    │ │ │ │
    168
    │ │ │ │
    169
    │ │ │ │ │ │ │ │
    172
    │ │ │ │ @@ -205,15 +205,15 @@ │ │ │ │
    184 DoFInfo();
    │ │ │ │
    185
    │ │ │ │
    187 void
    │ │ │ │ │ │ │ │
    189
    │ │ │ │
    191 template <class DHCellIterator>
    │ │ │ │
    192 void
    │ │ │ │ -
    193 get_indices(const DHCellIterator &c);
    │ │ │ │ +
    193 get_indices(const DHCellIterator &c);
    │ │ │ │
    194
    │ │ │ │
    196 std::vector<types::global_dof_index> indices_org;
    │ │ │ │
    197
    │ │ │ │ │ │ │ │
    204
    │ │ │ │
    205 friend class DoFInfoBox<dim, DoFInfo<dim, spacedim, number>>;
    │ │ │ │
    206 };
    │ │ │ │ @@ -545,14 +545,15 @@ │ │ │ │
    Triangulation< dim, spacedim >::face_iterator face
    The current face.
    Definition dof_info.h:81
    │ │ │ │
    std::vector< std::vector< types::global_dof_index > > indices_by_block
    Definition dof_info.h:109
    │ │ │ │
    SmartPointer< const BlockInfo, DoFInfo< dim, spacedim > > block_info
    The block structure of the system.
    Definition dof_info.h:171
    │ │ │ │
    unsigned int face_number
    Definition dof_info.h:89
    │ │ │ │
    void reinit(const DHCellIterator &c)
    Definition dof_info.h:331
    │ │ │ │
    Triangulation< dim, spacedim >::cell_iterator cell
    The current cell.
    Definition dof_info.h:78
    │ │ │ │ │ │ │ │ +
    BlockVector< number > & vector(const unsigned int i)
    │ │ │ │
    void reinit(const BlockIndices &local_sizes)
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    #define DEAL_II_NAMESPACE_OPEN
    Definition config.h:501
    │ │ │ │
    #define DEAL_II_NAMESPACE_CLOSE
    Definition config.h:502
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -70,38 +70,38 @@ │ │ │ │ │ 110 │ │ │ │ │ _1_1_4 _D_o_F_I_n_f_o(const _B_l_o_c_k_I_n_f_o &_b_l_o_c_k___i_n_f_o); │ │ │ │ │ 115 │ │ │ │ │ 120 _D_o_F_I_n_f_o(const _D_o_F_H_a_n_d_l_e_r_<_d_i_m_,_ _s_p_a_c_e_d_i_m_> &dof_handler); │ │ │ │ │ 121 │ │ │ │ │ 125 template │ │ │ │ │ 126 void │ │ │ │ │ -127 _r_e_i_n_i_t(const DHCellIterator &c); │ │ │ │ │ +127 _r_e_i_n_i_t(const _D_H_C_e_l_l_I_t_e_r_a_t_o_r &c); │ │ │ │ │ 128 │ │ │ │ │ 132 template │ │ │ │ │ 133 void │ │ │ │ │ -134 _r_e_i_n_i_t(const DHCellIterator &c, │ │ │ │ │ -135 const DHFaceIterator &f, │ │ │ │ │ -136 const unsigned int face_no); │ │ │ │ │ +134 _r_e_i_n_i_t(const _D_H_C_e_l_l_I_t_e_r_a_t_o_r &c, │ │ │ │ │ +135 const _D_H_F_a_c_e_I_t_e_r_a_t_o_r &f, │ │ │ │ │ +136 const unsigned int _f_a_c_e___n_o); │ │ │ │ │ 137 │ │ │ │ │ 141 template │ │ │ │ │ 142 void │ │ │ │ │ -143 _r_e_i_n_i_t(const DHCellIterator &c, │ │ │ │ │ -144 const DHFaceIterator &f, │ │ │ │ │ -145 const unsigned int face_no, │ │ │ │ │ -146 const unsigned int subface_no); │ │ │ │ │ +143 _r_e_i_n_i_t(const _D_H_C_e_l_l_I_t_e_r_a_t_o_r &c, │ │ │ │ │ +144 const _D_H_F_a_c_e_I_t_e_r_a_t_o_r &f, │ │ │ │ │ +145 const unsigned int _f_a_c_e___n_o, │ │ │ │ │ +146 const unsigned int _s_u_b_f_a_c_e___n_o); │ │ │ │ │ 147 │ │ │ │ │ 152 template │ │ │ │ │ 153 void │ │ │ │ │ -154 _s_e_t___f_a_c_e(const DHFaceIterator &f, const unsigned int face_no); │ │ │ │ │ +154 _s_e_t___f_a_c_e(const _D_H_F_a_c_e_I_t_e_r_a_t_o_r &f, const unsigned int _f_a_c_e___n_o); │ │ │ │ │ 155 │ │ │ │ │ 160 template │ │ │ │ │ 161 void │ │ │ │ │ -162 _s_e_t___s_u_b_f_a_c_e(const DHFaceIterator &f, │ │ │ │ │ -163 const unsigned int face_no, │ │ │ │ │ -164 const unsigned int subface_no); │ │ │ │ │ +162 _s_e_t___s_u_b_f_a_c_e(const _D_H_F_a_c_e_I_t_e_r_a_t_o_r &f, │ │ │ │ │ +163 const unsigned int _f_a_c_e___n_o, │ │ │ │ │ +164 const unsigned int _s_u_b_f_a_c_e___n_o); │ │ │ │ │ 165 │ │ │ │ │ 166 const _B_l_o_c_k_I_n_d_i_c_e_s & │ │ │ │ │ 167 _l_o_c_a_l___i_n_d_i_c_e_s() const; │ │ │ │ │ 168 │ │ │ │ │ 169 │ │ │ │ │ _1_7_1 _S_m_a_r_t_P_o_i_n_t_e_r_<_c_o_n_s_t_ _B_l_o_c_k_I_n_f_o_,_ _D_o_F_I_n_f_o_<_d_i_m_,_ _s_p_a_c_e_d_i_m_>> _b_l_o_c_k___i_n_f_o; │ │ │ │ │ 172 │ │ │ │ │ @@ -111,15 +111,15 @@ │ │ │ │ │ 184 _D_o_F_I_n_f_o(); │ │ │ │ │ 185 │ │ │ │ │ 187 void │ │ │ │ │ _1_8_8 _s_e_t___b_l_o_c_k___i_n_d_i_c_e_s(); │ │ │ │ │ 189 │ │ │ │ │ 191 template │ │ │ │ │ 192 void │ │ │ │ │ -193 _g_e_t___i_n_d_i_c_e_s(const DHCellIterator &c); │ │ │ │ │ +193 _g_e_t___i_n_d_i_c_e_s(const _D_H_C_e_l_l_I_t_e_r_a_t_o_r &c); │ │ │ │ │ 194 │ │ │ │ │ _1_9_6 std::vector _i_n_d_i_c_e_s___o_r_g; │ │ │ │ │ 197 │ │ │ │ │ _2_0_3 _B_l_o_c_k_I_n_d_i_c_e_s _a_u_x___l_o_c_a_l___i_n_d_i_c_e_s; │ │ │ │ │ 204 │ │ │ │ │ 205 friend class _D_o_F_I_n_f_o_B_o_x>; │ │ │ │ │ 206 }; │ │ │ │ │ @@ -497,14 +497,17 @@ │ │ │ │ │ DDeeffiinniittiioonn _d_o_f___i_n_f_o_._h_:_3_3_1 │ │ │ │ │ _M_e_s_h_W_o_r_k_e_r_:_:_D_o_F_I_n_f_o_:_:_c_e_l_l │ │ │ │ │ Triangulation< dim, spacedim >::cell_iterator cell │ │ │ │ │ The current cell. │ │ │ │ │ DDeeffiinniittiioonn _d_o_f___i_n_f_o_._h_:_7_8 │ │ │ │ │ _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s │ │ │ │ │ DDeeffiinniittiioonn _l_o_c_a_l___r_e_s_u_l_t_s_._h_:_8_2 │ │ │ │ │ +_M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s_:_:_v_e_c_t_o_r │ │ │ │ │ +BlockVector< number > & vector(const unsigned int i) │ │ │ │ │ +DDeeffiinniittiioonn _l_o_c_a_l___r_e_s_u_l_t_s_._h_:_4_4_0 │ │ │ │ │ _M_e_s_h_W_o_r_k_e_r_:_:_L_o_c_a_l_R_e_s_u_l_t_s_:_:_r_e_i_n_i_t │ │ │ │ │ void reinit(const BlockIndices &local_sizes) │ │ │ │ │ DDeeffiinniittiioonn _m_e_s_h___w_o_r_k_e_r_._c_c_:_2_7 │ │ │ │ │ _S_m_a_r_t_P_o_i_n_t_e_r │ │ │ │ │ DDeeffiinniittiioonn _s_m_a_r_t_p_o_i_n_t_e_r_._h_:_9_3 │ │ │ │ │ _T_r_i_a_I_t_e_r_a_t_o_r │ │ │ │ │ DDeeffiinniittiioonn _t_r_i_a___i_t_e_r_a_t_o_r_._h_:_5_7_4 │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/namespaceDataOutBase.html │ │ │ │ @@ -1716,15 +1716,15 @@ │ │ │ │
  • │ │ │ │ vtu: .vtu
  • │ │ │ │
  • │ │ │ │ svg: .svg
  • │ │ │ │
  • │ │ │ │ deal_II_intermediate: .d2.
  • │ │ │ │ │ │ │ │ -
    Deprecated:
    Using Tecplot binary output is deprecated.
    │ │ │ │ +
    Deprecated:
    Using Tecplot binary output is deprecated.
    │ │ │ │ │ │ │ │

    Definition at line 2496 of file data_out_base.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ operator<<()

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/namespaceDoFTools.html │ │ │ │ @@ -1390,15 +1390,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    static ::ExceptionBase & TrilinosWrappers::MPI::Vector::ExcAccessToNonLocalElement static ::ExceptionBase & TrilinosWrappers::MPI::Vector::ExcAccessToNonLocalElement (size_type arg1,
    )
    │ │ │ │
    │ │ │ │

    Extract the set of global DoF indices that are active on the current DoFHandler. For regular DoFHandlers, these are all DoF indices, but for DoFHandler objects built on parallel::distributed::Triangulation this set is a superset of DoFHandler::locally_owned_dofs() and contains all DoF indices that live on all locally owned cells (including on the interface to ghost cells). However, it does not contain the DoF indices that are exclusively defined on ghost or artificial cells (see the glossary).

    │ │ │ │

    The degrees of freedom identified by this function equal those obtained from the dof_indices_with_subdomain_association() function when called with the locally owned subdomain id.

    │ │ │ │ -
    Deprecated:
    Use the previous function instead.
    │ │ │ │ +
    Deprecated:
    Use the previous function instead.
    │ │ │ │ │ │ │ │

    Definition at line 1105 of file dof_tools.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ extract_locally_active_level_dofs() [1/2]

    │ │ │ │ @@ -1463,15 +1463,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Same function as above but for a certain (multigrid-)level. This function returns all DoF indices that live on all locally owned cells (including on the interface to ghost cells) on the given level.

    │ │ │ │ -
    Deprecated:
    Use the previous function instead.
    │ │ │ │ +
    Deprecated:
    Use the previous function instead.
    │ │ │ │ │ │ │ │

    Definition at line 1152 of file dof_tools.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ extract_locally_relevant_dofs() [1/2]

    │ │ │ │ @@ -1520,15 +1520,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Extract the set of global DoF indices that are active on the current DoFHandler. For regular DoFHandlers, these are all DoF indices, but for DoFHandler objects built on parallel::distributed::Triangulation this set is the union of DoFHandler::locally_owned_dofs() and the DoF indices on all ghost cells. In essence, it is the DoF indices on all cells that are not artificial (see the glossary).

    │ │ │ │ -
    Deprecated:
    Use the previous function instead.
    │ │ │ │ +
    Deprecated:
    Use the previous function instead.
    │ │ │ │ │ │ │ │

    Definition at line 1202 of file dof_tools.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ locally_owned_dofs_per_component()

    │ │ │ │ @@ -1674,15 +1674,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │

    Same as extract_locally_relevant_dofs() but for multigrid DoFs for the given level.

    │ │ │ │ -
    Deprecated:
    Use the previous function instead.
    │ │ │ │ +
    Deprecated:
    Use the previous function instead.
    │ │ │ │ │ │ │ │

    Definition at line 1258 of file dof_tools.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_subdomain_association()

    │ │ │ │ @@ -2311,15 +2311,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │

    For each active cell of a DoFHandler, extract the active finite element index and fill the vector given as second argument. This vector is assumed to have as many entries as there are active cells.

    │ │ │ │

    For DoFHandler objects without hp-capabilities given as first argument, the returned vector will consist of only zeros, indicating that all cells use the same finite element. In hp-mode, the values may be different, though.

    │ │ │ │

    As we do not know the active FE index on artificial cells, we set them to the invalid value numbers::invalid_fe_index.

    │ │ │ │ -
    Deprecated:
    Use DoFHandler::get_active_fe_indices() that returns the result vector.
    │ │ │ │ +
    Deprecated:
    Use DoFHandler::get_active_fe_indices() that returns the result vector.
    │ │ │ │ │ │ │ │

    Definition at line 1499 of file dof_tools.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ count_dofs_on_patch()

    │ │ │ │ @@ -2652,15 +2652,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │ -

    A version of the function of same name that returns the map via its third argument. This function is deprecated.

    Deprecated:
    Use the function that returns the std::map instead.
    │ │ │ │ +

    A version of the function of same name that returns the map via its third argument. This function is deprecated.

    Deprecated:
    Use the function that returns the std::map instead.
    │ │ │ │ │ │ │ │

    Definition at line 2430 of file dof_tools.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ map_dofs_to_support_points() [6/6]

    │ │ │ │ @@ -2697,15 +2697,15 @@ │ │ │ │
    )
    │ │ │ │
    │ │ │ │ -

    A version of the function of same name that returns the map via its third argument. This function is deprecated.

    Deprecated:
    Use the function that returns the std::map instead.
    │ │ │ │ +

    A version of the function of same name that returns the map via its third argument. This function is deprecated.

    Deprecated:
    Use the function that returns the std::map instead.
    │ │ │ │ │ │ │ │

    Definition at line 2451 of file dof_tools.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ map_support_points_to_dofs()

    │ │ │ │ @@ -2739,15 +2739,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │

    This is the opposite function to the one above. It generates a map where the keys are the support points of the degrees of freedom, while the values are the DoF indices. For a definition of support points, see this glossary entry.

    │ │ │ │

    Since there is no natural order in the space of points (except for the 1d case), you have to provide a map with an explicitly specified comparator object. This function is therefore templatized on the comparator object. Previous content of the map object is deleted in this function.

    │ │ │ │

    Just as with the function above, it is assumed that the finite element in use here actually supports the notion of support points of all its components.

    │ │ │ │ -
    Todo:
    This function should generate a multimap, rather than just a map, since several dofs may be located at the same support point. Currently, only the last value in the map returned by map_dofs_to_support_points() for each point will be returned.
    │ │ │ │ +
    Todo:
    This function should generate a multimap, rather than just a map, since several dofs may be located at the same support point. Currently, only the last value in the map returned by map_dofs_to_support_points() for each point will be returned.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ distribute_cell_to_dof_vector()

    │ │ │ │ │ │ │ │
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/namespaceGridTools.html │ │ │ │ @@ -747,15 +747,15 @@ │ │ │ │
    [in]angleAngle in radians to rotate the Triangulation by.
    [in]axisIndex of the coordinate axis to rotate around, keeping that coordinate fixed (0=x axis, 1=y axis, 2=z axis).
    [in,out]triangulationThe Triangulation object to rotate.
    │ │ │ │ │ │ │ │ │ │ │ │
    Note
    Implemented for dim=1, 2, and 3.
    │ │ │ │ -
    Deprecated:
    Use the alternative with the unit vector instead.
    │ │ │ │ +
    Deprecated:
    Use the alternative with the unit vector instead.
    │ │ │ │ │ │ │ │

    Definition at line 241 of file grid_tools.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ laplace_transform() [1/2]

    │ │ │ │ @@ -2883,15 +2883,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │

    Given a triangulation and a list of cells whose children have become distorted as a result of mesh refinement, try to fix these cells up by moving the center node around.

    │ │ │ │

    The function returns a list of cells with distorted children that couldn't be fixed up for whatever reason. The returned list is therefore a subset of the input argument.

    │ │ │ │

    For a definition of the concept of distorted cells, see the glossary entry. The first argument passed to the current function is typically the exception thrown by the Triangulation::execute_coarsening_and_refinement function.

    │ │ │ │ -
    Deprecated:
    This function predates deal.II's use of manifolds and use of cell-local transfinite interpolation to place new points and is no longer necessary. See Manifolds::get_default_points_and_weights() for more information.
    │ │ │ │ +
    Deprecated:
    This function predates deal.II's use of manifolds and use of cell-local transfinite interpolation to place new points and is no longer necessary. See Manifolds::get_default_points_and_weights() for more information.
    │ │ │ │ │ │ │ │

    Definition at line 2759 of file grid_tools.cc.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    ◆ get_patch_around_cell()

    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/namespacePhysics_1_1Transformations_1_1Rotations.html │ │ │ │ @@ -236,15 +236,15 @@ │ │ │ │
    Parameters
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    [in]axisA unit vector that defines the axis of rotation
    [in]angleThe rotation angle in radians
    │ │ │ │
    │ │ │ │
    │ │ │ │ -
    Deprecated:
    Use the variant with a Tensor as an axis.
    │ │ │ │ +
    Deprecated:
    Use the variant with a Tensor as an axis.
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    void serialize (Archive &ar, const unsigned int version)
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Public Attributes

    std::vector< unsigned intvertices
     
    union { 
    union { 
     
       types::material_id   material_id 
     
       types::boundary_id   boundary_id 
     
    };  
     
       types::material_id   material_id 
     
       types::boundary_id   boundary_id 
     
    };  
     
    types::manifold_id manifold_id
     
    │ │ │ │

    Detailed Description

    │ │ │ │
    template<int structdim>
    │ │ │ │ struct CellData< structdim >

    The CellData class (and the related SubCellData class) is used to provide a comprehensive, but minimal, description of the cells when creating a triangulation via Triangulation::create_triangulation(). Specifically, each CellData object – describing one cell in a triangulation – has member variables for indices of the \(2^d\) vertices (the actual coordinates of the vertices are described in a separate vector passed to Triangulation::create_triangulation(), so the CellData object only needs to store indices into that vector), the material id of the cell that can be used in applications to describe which part of the domain a cell belongs to (see the glossary entry on material ids), and a manifold id that is used to describe the geometry object that is responsible for this cell (see the glossary entry on manifold ids) to describe the manifold this object belongs to.

    │ │ │ │

    This structure is also used to represent data for faces and edges when used as a member of the SubCellData class. In this case, the template argument structdim of an object will be less than the dimension dim of the triangulation. If this is so, then vertices array represents the indices of the vertices of one face or edge of one of the cells passed to Triangulation::create_triangulation(). Furthermore, for faces the material id has no meaning, and the material_id field is reused to store a boundary_id instead to designate which part of the boundary the face or edge belongs to (see the glossary entry on boundary ids).

    │ │ │ │ @@ -295,16 +295,16 @@ │ │ │ │

    The boundary id of a face or edge being described. See the documentation of the CellData class for examples of how to use this field.

    │ │ │ │

    This variable can only be used if the current object is used to describe a face or edge, i.e., if structdim is less than the dimension dim of a triangulation. In this case, the CellData object this variable belongs to will be part of a SubCellData object.

    │ │ │ │ │ │ │ │

    Definition at line 129 of file tria_description.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ - │ │ │ │ -

    ◆ [union]

    │ │ │ │ + │ │ │ │ +

    ◆ [union]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/structDataOutBase_1_1VtkFlags.html │ │ │ │ @@ -183,15 +183,15 @@ │ │ │ │
    union { ... } CellData< structdim >
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    using DataOutBase::VtkFlags::ZlibCompressionLevel = DataOutBase::CompressionLevel
    │ │ │ │
    │ │ │ │

    A data type providing the different possible zlib compression levels. These map directly to constants defined by zlib.

    │ │ │ │ -
    Deprecated:
    Use DataOutBase::CompressionLevel instead.
    │ │ │ │ +
    Deprecated:
    Use DataOutBase::CompressionLevel instead.
    │ │ │ │ │ │ │ │

    Definition at line 1166 of file data_out_base.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Constructor & Destructor Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/structGridOutFlags_1_1Vtk.html │ │ │ │ @@ -197,15 +197,15 @@ │ │ │ │
    │ │ │ │ inherited
    │ │ │ │
    │ │ │ │

    A data type providing the different possible zlib compression levels. These map directly to constants defined by zlib.

    │ │ │ │ -
    Deprecated:
    Use DataOutBase::CompressionLevel instead.
    │ │ │ │ +
    Deprecated:
    Use DataOutBase::CompressionLevel instead.
    │ │ │ │ │ │ │ │

    Definition at line 1166 of file data_out_base.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Constructor & Destructor Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/structGridOutFlags_1_1Vtu.html │ │ │ │ @@ -191,15 +191,15 @@ │ │ │ │
    │ │ │ │ inherited
    │ │ │ │
    │ │ │ │

    A data type providing the different possible zlib compression levels. These map directly to constants defined by zlib.

    │ │ │ │ -
    Deprecated:
    Use DataOutBase::CompressionLevel instead.
    │ │ │ │ +
    Deprecated:
    Use DataOutBase::CompressionLevel instead.
    │ │ │ │ │ │ │ │

    Definition at line 1166 of file data_out_base.h.

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Constructor & Destructor Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/structinternal_1_1TriangulationImplementation_1_1TriaObjects_1_1BoundaryOrMaterialId.html │ │ │ │ @@ -118,22 +118,22 @@ │ │ │ │

    │ │ │ │ Static Public Member Functions

    static std::size_t memory_consumption ()
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

    │ │ │ │ Public Attributes

    union { 
    union { 
     
       types::boundary_id   boundary_id 
     
       types::material_id   material_id 
     
    };  
     
       types::boundary_id   boundary_id 
     
       types::material_id   material_id 
     
    };  
     
    │ │ │ │

    Detailed Description

    │ │ │ │

    We use this union to store boundary and material data. Because only one out of these two is actually needed here, we use an union.

    │ │ │ │ │ │ │ │

    Definition at line 135 of file tria_objects.h.

    │ │ │ │

    Constructor & Destructor Documentation

    │ │ │ │ │ │ │ │ @@ -255,16 +255,16 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    Definition at line 140 of file tria_objects.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ - │ │ │ │ -

    ◆ [union]

    │ │ │ │ + │ │ │ │ +

    ◆ [union]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/structinternal_1_1TriangulationImplementation_1_1TriaObjects_1_1UserData.html │ │ │ │ @@ -112,22 +112,22 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    union { ... } internal::TriangulationImplementation::TriaObjects::BoundaryOrMaterialId
     
    template<class Archive >
    void serialize (Archive &ar, const unsigned int version)
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │

    │ │ │ │ Public Attributes

    union { 
    union { 
     
       void *   p 
     
       unsigned int   i 
     
    };  
     
       void *   p 
     
       unsigned int   i 
     
    };  
     
    │ │ │ │

    Detailed Description

    │ │ │ │

    The data type storing user pointers or user indices.

    │ │ │ │ │ │ │ │

    Definition at line 312 of file tria_objects.h.

    │ │ │ │

    Constructor & Destructor Documentation

    │ │ │ │ │ │ │ │ @@ -223,16 +223,16 @@ │ │ │ │
    │ │ │ │

    The entry used as user index.

    │ │ │ │ │ │ │ │

    Definition at line 321 of file tria_objects.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ - │ │ │ │ -

    ◆ [union]

    │ │ │ │ + │ │ │ │ +

    ◆ [union]

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/template__constraints_8h.html │ │ │ │ @@ -313,15 +313,15 @@ │ │ │ │
    union { ... } internal::TriangulationImplementation::TriaObjects::UserData
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    using identity = std_cxx20::type_identity<T>
    │ │ │ │
    │ │ │ │

    A using declaration to make the std::identity_type class available under the name that deal.II has used for a long time.

    │ │ │ │ -
    Deprecated:
    Use std_cxx20::type_identity instead.
    │ │ │ │ +
    Deprecated:
    Use std_cxx20::type_identity instead.
    │ │ │ │ │ │ │ │

    Definition at line 322 of file template_constraints.h.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Variable Documentation

    │ │ │ │ │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/todo.html │ │ │ │ @@ -107,61 +107,61 @@ │ │ │ │
    Class DataOutFaces< dim, spacedim >
    │ │ │ │
    Reimplement this whole class using actual FEFaceValues and MeshWorker.
    │ │ │ │
    Member DataOutFaces< dim, spacedim >::build_patches (const Mapping< dim, spacedim > &mapping, const unsigned int n_subdivisions=0)
    │ │ │ │
    The mapping argument should be replaced by a hp::MappingCollection in case of a DoFHandler with hp-capabilities.
    │ │ │ │
    Class Differentiation::AD::HelperBase< ADNumberTypeCode, ScalarType >
    │ │ │ │
    Make this class thread safe for Sacado number and ADOL-C tapeless numbers (if supported).
    │ │ │ │
    Member DoFTools::ExcFiniteElementsDontMatch ()
    │ │ │ │ -
    Write description
    │ │ │ │ +
    Write description
    │ │ │ │
    Member DoFTools::ExcGridNotCoarser ()
    │ │ │ │ -
    Write description
    │ │ │ │ +
    Write description
    │ │ │ │
    Member DoFTools::ExcGridsDontMatch ()
    │ │ │ │ -
    Write description
    │ │ │ │ +
    Write description
    │ │ │ │
    Member DoFTools::ExcInvalidBoundaryIndicator ()
    │ │ │ │ -
    Write description
    │ │ │ │ +
    Write description
    │ │ │ │
    Member DoFTools::map_support_points_to_dofs (const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof_handler, std::map< Point< spacedim >, types::global_dof_index, Comp > &point_to_index_map)
    │ │ │ │ -
    This function should generate a multimap, rather than just a map, since several dofs may be located at the same support point. Currently, only the last value in the map returned by map_dofs_to_support_points() for each point will be returned.
    │ │ │ │ +
    This function should generate a multimap, rather than just a map, since several dofs may be located at the same support point. Currently, only the last value in the map returned by map_dofs_to_support_points() for each point will be returned.
    │ │ │ │
    Class FE_ABF< dim >
    │ │ │ │ -
    Even if this element is implemented for two and three space dimensions, the definition of the node values relies on consistently oriented faces in 3d. Therefore, care should be taken on complicated meshes.
    │ │ │ │ +
    Even if this element is implemented for two and three space dimensions, the definition of the node values relies on consistently oriented faces in 3d. Therefore, care should be taken on complicated meshes.
    │ │ │ │
    Class FE_BDM< dim >
    │ │ │ │ -

    Restriction matrices are missing.

    │ │ │ │ -

    The 3d version exhibits some numerical instabilities, in particular for higher order

    │ │ │ │ +

    Restriction matrices are missing.

    │ │ │ │ +

    The 3d version exhibits some numerical instabilities, in particular for higher order

    │ │ │ │
    │ │ │ │
    Class FE_Nedelec< dim >
    │ │ │ │
    Even if this element is implemented for two and three space dimensions, the definition of the node values relies on consistently oriented faces in 3d. Therefore, care should be taken on complicated meshes.
    │ │ │ │
    Class FE_Poly< dim, spacedim >
    │ │ │ │
    Since nearly all functions for spacedim != dim are specialized, this class needs cleaning up.
    │ │ │ │
    Class FE_RT_Bubbles< dim >
    │ │ │ │
    Implement restriction matrices
    │ │ │ │
    Member FESubfaceValues< dim, spacedim >::ExcFaceHasNoSubfaces ()
    │ │ │ │
    Document this
    │ │ │ │
    Member FESubfaceValues< dim, spacedim >::ExcReinitCalledWithBoundaryFace ()
    │ │ │ │
    Document this
    │ │ │ │
    Member GinkgoWrappers::SolverBase< ValueType, IndexType >::system_matrix
    │ │ │ │ -
    Templatize based on Matrix type.
    │ │ │ │ +
    Templatize based on Matrix type.
    │ │ │ │
    Member internal::TriangulationImplementation::TriaObjects::next_free_pair_object (const Triangulation< dim, spacedim > &tria)
    │ │ │ │
    This function is not instantiated for the codim-one case
    │ │ │ │
    Member internal::TriangulationImplementation::TriaObjects::next_free_single_object (const Triangulation< dim, spacedim > &tria)
    │ │ │ │
    This function is not instantiated for the codim-one case
    │ │ │ │
    Member LocalIntegrators::Divergence::cell_residual (Vector< number > &result, const FEValuesBase< dim > &fetest, const ArrayView< const std::vector< double > > &input, const double factor=1.)
    │ │ │ │
    Verify: The function cell_matrix() is the Frechet derivative of this function with respect to the test functions.
    │ │ │ │
    Member LocalIntegrators::Divergence::gradient_residual (Vector< number > &result, const FEValuesBase< dim > &fetest, const std::vector< double > &input, const double factor=1.)
    │ │ │ │
    Verify: The function gradient_matrix() is the Frechet derivative of this function with respect to the test functions.
    │ │ │ │
    Class Mapping< dim, spacedim >
    │ │ │ │ -
    Document what happens in the codimension-1 case.
    │ │ │ │ +
    Document what happens in the codimension-1 case.
    │ │ │ │
    Member Mapping< dim, spacedim >::transform (const ArrayView< const Tensor< 2, dim > > &input, const MappingKind kind, const typename Mapping< dim, spacedim >::InternalDataBase &internal, const ArrayView< Tensor< 2, spacedim > > &output) const =0
    │ │ │ │ -
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │ +
    The formulas for mapping_covariant_gradient, mapping_contravariant_gradient and mapping_piola_gradient are only true as stated for linear mappings. If, for example, the mapping is bilinear (or has a higher order polynomial degree) then there is a missing term associated with the derivative of \(J\).
    │ │ │ │
    Class MatrixBlock< MatrixType >
    │ │ │ │ -
    Example for the product preconditioner of the pressure Schur complement.
    │ │ │ │ +
    Example for the product preconditioner of the pressure Schur complement.
    │ │ │ │
    Member MatrixBlock< MatrixType >::add (const std::vector< size_type > &indices, const FullMatrix< number > &full_matrix, const bool elide_zero_values=true)
    │ │ │ │ -
    elide_zero_values is currently ignored.
    │ │ │ │ -
    Member MatrixBlock< MatrixType >::add (const std::vector< size_type > &row_indices, const std::vector< size_type > &col_indices, const FullMatrix< number > &full_matrix, const bool elide_zero_values=true)
    │ │ │ │
    elide_zero_values is currently ignored.
    │ │ │ │ -
    Member MatrixBlock< MatrixType >::add (const size_type row_index, const std::vector< size_type > &col_indices, const std::vector< number > &values, const bool elide_zero_values=true)
    │ │ │ │ +
    Member MatrixBlock< MatrixType >::add (const std::vector< size_type > &row_indices, const std::vector< size_type > &col_indices, const FullMatrix< number > &full_matrix, const bool elide_zero_values=true)
    │ │ │ │
    elide_zero_values is currently ignored.
    │ │ │ │ +
    Member MatrixBlock< MatrixType >::add (const size_type row_index, const std::vector< size_type > &col_indices, const std::vector< number > &values, const bool elide_zero_values=true)
    │ │ │ │ +
    elide_zero_values is currently ignored.
    │ │ │ │
    Member MatrixCreator::create_boundary_mass_matrix (const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof, const Quadrature< dim - 1 > &q, SparseMatrix< number > &matrix, const std::map< types::boundary_id, const Function< spacedim, number > * > &boundary_functions, Vector< number > &rhs_vector, std::vector< types::global_dof_index > &dof_to_boundary_mapping, const Function< spacedim, number > *const weight=0, std::vector< unsigned int > component_mapping={})
    │ │ │ │
    This function does not work for finite elements with cell-dependent shape functions.
    │ │ │ │
    Class MeshWorker::Assembler::MGMatrixSimple< MatrixType >
    │ │ │ │
    The matrix structures needed for assembling level matrices with local refinement and continuous elements are missing.
    │ │ │ │
    Class MeshWorker::Assembler::ResidualLocalBlocksToGlobalBlocks< VectorType >
    │ │ │ │
    Comprehensive model currently not implemented.
    │ │ │ │
    Class MeshWorker::DoFInfoBox< dim, DOFINFO >
    │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__vector_8cc_source.html │ │ │ │ @@ -218,36 +218,36 @@ │ │ │ │
    106
    │ │ │ │
    107 void
    │ │ │ │
    │ │ │ │
    108 Vector::reinit(const IndexSet &parallel_partitioner,
    │ │ │ │
    109 const MPI_Comm communicator,
    │ │ │ │
    110 const bool omit_zeroing_entries)
    │ │ │ │
    111 {
    │ │ │ │ -
    112 Epetra_Map input_map =
    │ │ │ │ -
    113 parallel_partitioner.make_trilinos_map(communicator, false);
    │ │ │ │ -
    114 if (vector->Map().SameAs(input_map) == false)
    │ │ │ │ -
    115 vector = std::make_unique<Epetra_FEVector>(input_map);
    │ │ │ │ -
    116 else if (omit_zeroing_entries == false)
    │ │ │ │ +
    112 Epetra_Map input_map =
    │ │ │ │ +
    113 parallel_partitioner.make_trilinos_map(communicator, false);
    │ │ │ │ +
    114 if (vector->Map().SameAs(input_map) == false)
    │ │ │ │ +
    115 vector = std::make_unique<Epetra_FEVector>(input_map);
    │ │ │ │ +
    116 else if (omit_zeroing_entries == false)
    │ │ │ │
    117 {
    │ │ │ │ -
    118 const int ierr = vector->PutScalar(0.);
    │ │ │ │ -
    119 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    120 (void)ierr;
    │ │ │ │ +
    118 const int ierr = vector->PutScalar(0.);
    │ │ │ │ + │ │ │ │ +
    120 (void)ierr;
    │ │ │ │
    121 }
    │ │ │ │
    122 }
    │ │ │ │
    │ │ │ │
    123
    │ │ │ │
    124
    │ │ │ │
    125
    │ │ │ │
    126 void
    │ │ │ │
    │ │ │ │
    127 Vector::reinit(const Vector &V, const bool omit_zeroing_entries)
    │ │ │ │
    128 {
    │ │ │ │ │ │ │ │ │ │ │ │ -
    131 omit_zeroing_entries);
    │ │ │ │ + │ │ │ │
    132 }
    │ │ │ │
    │ │ │ │
    133
    │ │ │ │
    134
    │ │ │ │
    135
    │ │ │ │
    136 void
    │ │ │ │
    │ │ │ │ @@ -258,17 +258,17 @@ │ │ │ │
    141 AssertDimension(indices.size(), elements.size());
    │ │ │ │
    142 const auto &vector = trilinos_vector();
    │ │ │ │
    143 const auto &map = vector.Map();
    │ │ │ │
    144
    │ │ │ │
    145 for (unsigned int i = 0; i < indices.size(); ++i)
    │ │ │ │
    146 {
    │ │ │ │
    147 AssertIndexRange(indices[i], size());
    │ │ │ │ -
    148 const auto trilinos_i =
    │ │ │ │ +
    148 const auto trilinos_i =
    │ │ │ │
    149 map.LID(static_cast<TrilinosWrappers::types::int_type>(indices[i]));
    │ │ │ │ -
    150 elements[i] = vector[0][trilinos_i];
    │ │ │ │ +
    150 elements[i] = vector[0][trilinos_i];
    │ │ │ │
    151 }
    │ │ │ │
    152 }
    │ │ │ │
    │ │ │ │
    153
    │ │ │ │
    154
    │ │ │ │
    155
    │ │ │ │
    156 Vector &
    │ │ │ │ @@ -281,21 +281,21 @@ │ │ │ │
    162 // - Third case: the vectors have different size.
    │ │ │ │
    163 if (vector->Map().SameAs(V.trilinos_vector().Map()))
    │ │ │ │
    164 *vector = V.trilinos_vector();
    │ │ │ │
    165 else
    │ │ │ │
    166 {
    │ │ │ │
    167 if (size() == V.size())
    │ │ │ │
    168 {
    │ │ │ │ -
    169 Epetra_Import data_exchange(vector->Map(),
    │ │ │ │ +
    169 Epetra_Import data_exchange(vector->Map(),
    │ │ │ │
    170 V.trilinos_vector().Map());
    │ │ │ │
    171
    │ │ │ │ -
    172 const int ierr =
    │ │ │ │ -
    173 vector->Import(V.trilinos_vector(), data_exchange, Insert);
    │ │ │ │ -
    174 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    175 (void)ierr;
    │ │ │ │ +
    172 const int ierr =
    │ │ │ │ + │ │ │ │ + │ │ │ │ +
    175 (void)ierr;
    │ │ │ │
    176 }
    │ │ │ │
    177 else
    │ │ │ │
    178 vector = std::make_unique<Epetra_FEVector>(V.trilinos_vector());
    │ │ │ │
    179 }
    │ │ │ │
    180
    │ │ │ │
    181 return *this;
    │ │ │ │
    182 }
    │ │ │ │ @@ -305,17 +305,17 @@ │ │ │ │
    185
    │ │ │ │
    186 Vector &
    │ │ │ │
    │ │ │ │
    187 Vector::operator=(const double s)
    │ │ │ │
    188 {
    │ │ │ │
    189 Assert(s == 0., ExcMessage("Only 0 can be assigned to a vector."));
    │ │ │ │
    190
    │ │ │ │ -
    191 const int ierr = vector->PutScalar(s);
    │ │ │ │ -
    192 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    193 (void)ierr;
    │ │ │ │ +
    191 const int ierr = vector->PutScalar(s);
    │ │ │ │ + │ │ │ │ +
    193 (void)ierr;
    │ │ │ │
    194
    │ │ │ │
    195 return *this;
    │ │ │ │
    196 }
    │ │ │ │
    │ │ │ │
    197
    │ │ │ │
    198
    │ │ │ │
    199
    │ │ │ │ @@ -325,15 +325,15 @@ │ │ │ │ │ │ │ │
    203 VectorOperation::values operation,
    │ │ │ │
    204 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase>
    │ │ │ │
    205 &communication_pattern)
    │ │ │ │
    206 {
    │ │ │ │
    207 // If no communication pattern is given, create one. Otherwise, use the
    │ │ │ │
    208 // one given.
    │ │ │ │ -
    209 if (communication_pattern == nullptr)
    │ │ │ │ +
    209 if (communication_pattern == nullptr)
    │ │ │ │
    210 {
    │ │ │ │
    211 // The first time import is called, a communication pattern is
    │ │ │ │
    212 // created. Check if the communication pattern already exists and if
    │ │ │ │
    213 // it can be reused.
    │ │ │ │ │ │ │ │
    215 V.get_stored_elements().size()) ||
    │ │ │ │ │ │ │ │ @@ -343,37 +343,37 @@ │ │ │ │
    220 dynamic_cast<const Epetra_MpiComm &>(vector->Comm()).Comm());
    │ │ │ │
    221 }
    │ │ │ │
    222 }
    │ │ │ │
    223 else
    │ │ │ │
    224 {
    │ │ │ │ │ │ │ │
    226 std::dynamic_pointer_cast<const CommunicationPattern>(
    │ │ │ │ -
    227 communication_pattern);
    │ │ │ │ + │ │ │ │ │ │ │ │
    229 epetra_comm_pattern != nullptr,
    │ │ │ │ │ │ │ │
    231 std::string("The communication pattern is not of type ") +
    │ │ │ │
    232 "LinearAlgebra::EpetraWrappers::CommunicationPattern."));
    │ │ │ │
    233 }
    │ │ │ │
    234
    │ │ │ │ -
    235 Epetra_Import import_map(epetra_comm_pattern->get_epetra_import());
    │ │ │ │ +
    235 Epetra_Import import_map(epetra_comm_pattern->get_epetra_import());
    │ │ │ │
    236
    │ │ │ │
    237 // The TargetMap and the SourceMap have their roles inverted.
    │ │ │ │ -
    238 Epetra_FEVector source_vector(import_map.TargetMap());
    │ │ │ │ -
    239 double *values = source_vector.Values();
    │ │ │ │ +
    238 Epetra_FEVector source_vector(import_map.TargetMap());
    │ │ │ │ +
    239 double *values = source_vector.Values();
    │ │ │ │
    240 std::copy(V.begin(), V.end(), values);
    │ │ │ │
    241
    │ │ │ │
    242 if (operation == VectorOperation::insert)
    │ │ │ │ -
    243 vector->Export(source_vector, import_map, Insert);
    │ │ │ │ + │ │ │ │
    244 else if (operation == VectorOperation::add)
    │ │ │ │ -
    245 vector->Export(source_vector, import_map, Add);
    │ │ │ │ + │ │ │ │
    246 else if (operation == VectorOperation::max)
    │ │ │ │ -
    247 vector->Export(source_vector, import_map, Epetra_Max);
    │ │ │ │ + │ │ │ │
    248 else if (operation == VectorOperation::min)
    │ │ │ │ -
    249 vector->Export(source_vector, import_map, Epetra_Min);
    │ │ │ │ + │ │ │ │
    250 else
    │ │ │ │ │ │ │ │
    252 }
    │ │ │ │
    │ │ │ │
    253
    │ │ │ │
    254
    │ │ │ │
    255
    │ │ │ │ @@ -407,43 +407,43 @@ │ │ │ │
    279 Vector &
    │ │ │ │
    │ │ │ │ │ │ │ │
    281 {
    │ │ │ │
    282 // If the maps are the same we can Update right away.
    │ │ │ │
    283 if (vector->Map().SameAs(V.trilinos_vector().Map()))
    │ │ │ │
    284 {
    │ │ │ │ -
    285 const int ierr = vector->Update(1., V.trilinos_vector(), 1.);
    │ │ │ │ -
    286 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    287 (void)ierr;
    │ │ │ │ +
    285 const int ierr = vector->Update(1., V.trilinos_vector(), 1.);
    │ │ │ │ + │ │ │ │ +
    287 (void)ierr;
    │ │ │ │
    288 }
    │ │ │ │
    289 else
    │ │ │ │
    290 {
    │ │ │ │
    291 Assert(this->size() == V.size(),
    │ │ │ │
    292 ExcDimensionMismatch(this->size(), V.size()));
    │ │ │ │
    293
    │ │ │ │
    294# if DEAL_II_TRILINOS_VERSION_GTE(11, 11, 0)
    │ │ │ │ -
    295 Epetra_Import data_exchange(vector->Map(), V.trilinos_vector().Map());
    │ │ │ │ -
    296 const int ierr = vector->Import(V.trilinos_vector(),
    │ │ │ │ -
    297 data_exchange,
    │ │ │ │ -
    298 Epetra_AddLocalAlso);
    │ │ │ │ -
    299 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    300 (void)ierr;
    │ │ │ │ +
    295 Epetra_Import data_exchange(vector->Map(), V.trilinos_vector().Map());
    │ │ │ │ +
    296 const int ierr = vector->Import(V.trilinos_vector(),
    │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
    300 (void)ierr;
    │ │ │ │
    301# else
    │ │ │ │
    302 // In versions older than 11.11 the Import function is broken for
    │ │ │ │
    303 // adding Hence, we provide a workaround in this case
    │ │ │ │
    304
    │ │ │ │ -
    305 Epetra_MultiVector dummy(vector->Map(), 1, false);
    │ │ │ │ -
    306 Epetra_Import data_exchange(dummy.Map(), V.trilinos_vector().Map());
    │ │ │ │ +
    305 Epetra_MultiVector dummy(vector->Map(), 1, false);
    │ │ │ │ +
    306 Epetra_Import data_exchange(dummy.Map(), V.trilinos_vector().Map());
    │ │ │ │
    307
    │ │ │ │ -
    308 int ierr = dummy.Import(V.trilinos_vector(), data_exchange, Insert);
    │ │ │ │ -
    309 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    308 int ierr = dummy.Import(V.trilinos_vector(), data_exchange, Insert);
    │ │ │ │ + │ │ │ │
    310
    │ │ │ │ -
    311 ierr = vector->Update(1.0, dummy, 1.0);
    │ │ │ │ -
    312 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    313 (void)ierr;
    │ │ │ │ +
    311 ierr = vector->Update(1.0, dummy, 1.0);
    │ │ │ │ + │ │ │ │ +
    313 (void)ierr;
    │ │ │ │
    314# endif
    │ │ │ │
    315 }
    │ │ │ │
    316
    │ │ │ │
    317 return *this;
    │ │ │ │
    318 }
    │ │ │ │
    │ │ │ │
    319
    │ │ │ │ @@ -466,20 +466,20 @@ │ │ │ │
    333 Vector::operator*(const Vector &V) const
    │ │ │ │
    334 {
    │ │ │ │
    335 Assert(this->size() == V.size(),
    │ │ │ │
    336 ExcDimensionMismatch(this->size(), V.size()));
    │ │ │ │
    337 Assert(vector->Map().SameAs(V.trilinos_vector().Map()),
    │ │ │ │ │ │ │ │
    339
    │ │ │ │ -
    340 double result(0.);
    │ │ │ │ -
    341 const int ierr = vector->Dot(V.trilinos_vector(), &result);
    │ │ │ │ -
    342 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    343 (void)ierr;
    │ │ │ │ +
    340 double result(0.);
    │ │ │ │ +
    341 const int ierr = vector->Dot(V.trilinos_vector(), &result);
    │ │ │ │ + │ │ │ │ +
    343 (void)ierr;
    │ │ │ │
    344
    │ │ │ │ -
    345 return result;
    │ │ │ │ +
    345 return result;
    │ │ │ │
    346 }
    │ │ │ │ │ │ │ │
    347
    │ │ │ │
    348
    │ │ │ │
    349
    │ │ │ │
    350 void
    │ │ │ │
    │ │ │ │ @@ -498,17 +498,17 @@ │ │ │ │
    │ │ │ │
    362 Vector::add(const double a, const Vector &V)
    │ │ │ │
    363 {
    │ │ │ │ │ │ │ │
    365 Assert(vector->Map().SameAs(V.trilinos_vector().Map()),
    │ │ │ │ │ │ │ │
    367
    │ │ │ │ -
    368 const int ierr = vector->Update(a, V.trilinos_vector(), 1.);
    │ │ │ │ -
    369 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    370 (void)ierr;
    │ │ │ │ +
    368 const int ierr = vector->Update(a, V.trilinos_vector(), 1.);
    │ │ │ │ + │ │ │ │ +
    370 (void)ierr;
    │ │ │ │
    371 }
    │ │ │ │
    │ │ │ │
    372
    │ │ │ │
    373
    │ │ │ │
    374
    │ │ │ │
    375 void
    │ │ │ │
    │ │ │ │ @@ -520,18 +520,18 @@ │ │ │ │
    381 Assert(vector->Map().SameAs(V.trilinos_vector().Map()),
    │ │ │ │ │ │ │ │
    383 Assert(vector->Map().SameAs(W.trilinos_vector().Map()),
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    387
    │ │ │ │ -
    388 const int ierr =
    │ │ │ │ +
    388 const int ierr =
    │ │ │ │
    389 vector->Update(a, V.trilinos_vector(), b, W.trilinos_vector(), 1.);
    │ │ │ │ -
    390 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    391 (void)ierr;
    │ │ │ │ + │ │ │ │ +
    391 (void)ierr;
    │ │ │ │
    392 }
    │ │ │ │
    │ │ │ │
    393
    │ │ │ │
    394
    │ │ │ │
    395
    │ │ │ │
    396 void
    │ │ │ │
    │ │ │ │ @@ -546,21 +546,21 @@ │ │ │ │
    404
    │ │ │ │
    405
    │ │ │ │
    406
    │ │ │ │
    407 void
    │ │ │ │
    │ │ │ │
    408 Vector::scale(const Vector &scaling_factors)
    │ │ │ │
    409 {
    │ │ │ │ -
    410 Assert(vector->Map().SameAs(scaling_factors.trilinos_vector().Map()),
    │ │ │ │ +
    410 Assert(vector->Map().SameAs(scaling_factors.trilinos_vector().Map()),
    │ │ │ │ │ │ │ │
    412
    │ │ │ │ -
    413 const int ierr =
    │ │ │ │ -
    414 vector->Multiply(1.0, scaling_factors.trilinos_vector(), *vector, 0.0);
    │ │ │ │ -
    415 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    416 (void)ierr;
    │ │ │ │ +
    413 const int ierr =
    │ │ │ │ +
    414 vector->Multiply(1.0, scaling_factors.trilinos_vector(), *vector, 0.0);
    │ │ │ │ + │ │ │ │ +
    416 (void)ierr;
    │ │ │ │
    417 }
    │ │ │ │
    │ │ │ │
    418
    │ │ │ │
    419
    │ │ │ │
    420
    │ │ │ │
    421 void
    │ │ │ │
    │ │ │ │ @@ -568,108 +568,108 @@ │ │ │ │
    423 {
    │ │ │ │
    424 // If we don't have the same map, copy.
    │ │ │ │
    425 if (vector->Map().SameAs(V.trilinos_vector().Map()) == false)
    │ │ │ │
    426 this->sadd(0., a, V);
    │ │ │ │
    427 else
    │ │ │ │
    428 {
    │ │ │ │
    429 // Otherwise, just update
    │ │ │ │ -
    430 int ierr = vector->Update(a, V.trilinos_vector(), 0.);
    │ │ │ │ -
    431 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    432 (void)ierr;
    │ │ │ │ +
    430 int ierr = vector->Update(a, V.trilinos_vector(), 0.);
    │ │ │ │ + │ │ │ │ +
    432 (void)ierr;
    │ │ │ │
    433 }
    │ │ │ │
    434 }
    │ │ │ │
    │ │ │ │
    435
    │ │ │ │
    436
    │ │ │ │
    437
    │ │ │ │
    438 bool
    │ │ │ │
    │ │ │ │ │ │ │ │
    440 {
    │ │ │ │
    441 // get a representation of the vector and
    │ │ │ │
    442 // loop over all the elements
    │ │ │ │ -
    443 double *start_ptr = (*vector)[0];
    │ │ │ │ -
    444 const double *ptr = start_ptr, *eptr = start_ptr + vector->MyLength();
    │ │ │ │ +
    443 double *start_ptr = (*vector)[0];
    │ │ │ │ +
    444 const double *ptr = start_ptr, *eptr = start_ptr + vector->MyLength();
    │ │ │ │
    445 unsigned int flag = 0;
    │ │ │ │ -
    446 while (ptr != eptr)
    │ │ │ │ +
    446 while (ptr != eptr)
    │ │ │ │
    447 {
    │ │ │ │
    448 if (*ptr != 0)
    │ │ │ │
    449 {
    │ │ │ │
    450 flag = 1;
    │ │ │ │
    451 break;
    │ │ │ │
    452 }
    │ │ │ │
    453 ++ptr;
    │ │ │ │
    454 }
    │ │ │ │
    455
    │ │ │ │
    456 // Check that the vector is zero on _all_ processors.
    │ │ │ │
    457 const Epetra_MpiComm *mpi_comm =
    │ │ │ │
    458 dynamic_cast<const Epetra_MpiComm *>(&vector->Map().Comm());
    │ │ │ │
    459 Assert(mpi_comm != nullptr, ExcInternalError());
    │ │ │ │ -
    460 unsigned int num_nonzero = Utilities::MPI::sum(flag, mpi_comm->Comm());
    │ │ │ │ +
    460 unsigned int num_nonzero = Utilities::MPI::sum(flag, mpi_comm->Comm());
    │ │ │ │
    461
    │ │ │ │ -
    462 return num_nonzero == 0;
    │ │ │ │ +
    462 return num_nonzero == 0;
    │ │ │ │
    463 }
    │ │ │ │
    │ │ │ │
    464
    │ │ │ │
    465
    │ │ │ │
    466
    │ │ │ │
    467 double
    │ │ │ │
    │ │ │ │ │ │ │ │
    469 {
    │ │ │ │
    470 double mean_value(0.);
    │ │ │ │
    471
    │ │ │ │ -
    472 int ierr = vector->MeanValue(&mean_value);
    │ │ │ │ -
    473 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    474 (void)ierr;
    │ │ │ │ +
    472 int ierr = vector->MeanValue(&mean_value);
    │ │ │ │ + │ │ │ │ +
    474 (void)ierr;
    │ │ │ │
    475
    │ │ │ │
    476 return mean_value;
    │ │ │ │
    477 }
    │ │ │ │
    │ │ │ │
    478
    │ │ │ │
    479
    │ │ │ │
    480
    │ │ │ │
    481 double
    │ │ │ │
    │ │ │ │ │ │ │ │
    483 {
    │ │ │ │
    484 double norm(0.);
    │ │ │ │ -
    485 int ierr = vector->Norm1(&norm);
    │ │ │ │ -
    486 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    487 (void)ierr;
    │ │ │ │ +
    485 int ierr = vector->Norm1(&norm);
    │ │ │ │ + │ │ │ │ +
    487 (void)ierr;
    │ │ │ │
    488
    │ │ │ │
    489 return norm;
    │ │ │ │
    490 }
    │ │ │ │
    │ │ │ │
    491
    │ │ │ │
    492
    │ │ │ │
    493
    │ │ │ │
    494 double
    │ │ │ │
    │ │ │ │ │ │ │ │
    496 {
    │ │ │ │
    497 double norm(0.);
    │ │ │ │ -
    498 int ierr = vector->Norm2(&norm);
    │ │ │ │ -
    499 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    500 (void)ierr;
    │ │ │ │ +
    498 int ierr = vector->Norm2(&norm);
    │ │ │ │ + │ │ │ │ +
    500 (void)ierr;
    │ │ │ │
    501
    │ │ │ │
    502 return norm;
    │ │ │ │
    503 }
    │ │ │ │
    │ │ │ │
    504
    │ │ │ │
    505
    │ │ │ │
    506
    │ │ │ │
    507 double
    │ │ │ │
    │ │ │ │ │ │ │ │
    509 {
    │ │ │ │
    510 double norm(0.);
    │ │ │ │ -
    511 int ierr = vector->NormInf(&norm);
    │ │ │ │ -
    512 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    513 (void)ierr;
    │ │ │ │ +
    511 int ierr = vector->NormInf(&norm);
    │ │ │ │ + │ │ │ │ +
    513 (void)ierr;
    │ │ │ │
    514
    │ │ │ │
    515 return norm;
    │ │ │ │
    516 }
    │ │ │ │
    │ │ │ │
    517
    │ │ │ │
    518
    │ │ │ │
    519
    │ │ │ │ @@ -709,54 +709,54 @@ │ │ │ │
    547
    │ │ │ │
    548
    │ │ │ │
    549
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    552 {
    │ │ │ │ -
    553 const Epetra_MpiComm *epetra_comm =
    │ │ │ │ +
    553 const Epetra_MpiComm *epetra_comm =
    │ │ │ │
    554 dynamic_cast<const Epetra_MpiComm *>(&(vector->Comm()));
    │ │ │ │ -
    555 Assert(epetra_comm != nullptr, ExcInternalError());
    │ │ │ │ -
    556 return epetra_comm->GetMpiComm();
    │ │ │ │ +
    555 Assert(epetra_comm != nullptr, ExcInternalError());
    │ │ │ │ +
    556 return epetra_comm->GetMpiComm();
    │ │ │ │
    557 }
    │ │ │ │
    │ │ │ │
    558
    │ │ │ │
    559
    │ │ │ │
    560
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    563 {
    │ │ │ │ -
    564 IndexSet is(size());
    │ │ │ │ +
    564 IndexSet is(size());
    │ │ │ │
    565
    │ │ │ │
    566 // easy case: local range is contiguous
    │ │ │ │
    567 if (vector->Map().LinearMap())
    │ │ │ │
    568 {
    │ │ │ │
    569# ifndef DEAL_II_WITH_64BIT_INDICES
    │ │ │ │ -
    570 is.add_range(vector->Map().MinMyGID(), vector->Map().MaxMyGID() + 1);
    │ │ │ │ +
    570 is.add_range(vector->Map().MinMyGID(), vector->Map().MaxMyGID() + 1);
    │ │ │ │
    571# else
    │ │ │ │ -
    572 is.add_range(vector->Map().MinMyGID64(),
    │ │ │ │ +
    572 is.add_range(vector->Map().MinMyGID64(),
    │ │ │ │
    573 vector->Map().MaxMyGID64() + 1);
    │ │ │ │
    574# endif
    │ │ │ │
    575 }
    │ │ │ │
    576 else if (vector->Map().NumMyElements() > 0)
    │ │ │ │
    577 {
    │ │ │ │ -
    578 const size_type n_indices = vector->Map().NumMyElements();
    │ │ │ │ +
    578 const size_type n_indices = vector->Map().NumMyElements();
    │ │ │ │
    579# ifndef DEAL_II_WITH_64BIT_INDICES
    │ │ │ │ -
    580 unsigned int *vector_indices =
    │ │ │ │ +
    580 unsigned int *vector_indices =
    │ │ │ │
    581 reinterpret_cast<unsigned int *>(vector->Map().MyGlobalElements());
    │ │ │ │
    582# else
    │ │ │ │ -
    583 size_type *vector_indices =
    │ │ │ │ + │ │ │ │
    584 reinterpret_cast<size_type *>(vector->Map().MyGlobalElements64());
    │ │ │ │
    585# endif
    │ │ │ │ -
    586 is.add_indices(vector_indices, vector_indices + n_indices);
    │ │ │ │ + │ │ │ │
    587 }
    │ │ │ │ -
    588 is.compress();
    │ │ │ │ +
    588 is.compress();
    │ │ │ │
    589
    │ │ │ │ -
    590 return is;
    │ │ │ │ +
    590 return is;
    │ │ │ │
    591 }
    │ │ │ │
    │ │ │ │
    592
    │ │ │ │
    593
    │ │ │ │
    594 void
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -789,31 +789,31 @@ │ │ │ │
    │ │ │ │
    617 Vector::print(std::ostream &out,
    │ │ │ │
    618 const unsigned int precision,
    │ │ │ │
    619 const bool scientific,
    │ │ │ │
    620 const bool across) const
    │ │ │ │
    621 {
    │ │ │ │
    622 AssertThrow(out.fail() == false, ExcIO());
    │ │ │ │ -
    623 boost::io::ios_flags_saver restore_flags(out);
    │ │ │ │ +
    623 boost::io::ios_flags_saver restore_flags(out);
    │ │ │ │
    624
    │ │ │ │
    625 // Get a representation of the vector and loop over all
    │ │ │ │
    626 // the elements
    │ │ │ │
    627 double *val;
    │ │ │ │ -
    628 int leading_dimension;
    │ │ │ │ -
    629 int ierr = vector->ExtractView(&val, &leading_dimension);
    │ │ │ │ + │ │ │ │ +
    629 int ierr = vector->ExtractView(&val, &leading_dimension);
    │ │ │ │
    630
    │ │ │ │ -
    631 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    632 (void)ierr;
    │ │ │ │ + │ │ │ │ +
    632 (void)ierr;
    │ │ │ │
    633 out.precision(precision);
    │ │ │ │
    634 if (scientific)
    │ │ │ │
    635 out.setf(std::ios::scientific, std::ios::floatfield);
    │ │ │ │
    636 else
    │ │ │ │
    637 out.setf(std::ios::fixed, std::ios::floatfield);
    │ │ │ │
    638
    │ │ │ │ -
    639 if (across)
    │ │ │ │ +
    639 if (across)
    │ │ │ │
    640 for (int i = 0; i < vector->MyLength(); ++i)
    │ │ │ │
    641 out << val[i] << ' ';
    │ │ │ │
    642 else
    │ │ │ │
    643 for (int i = 0; i < vector->MyLength(); ++i)
    │ │ │ │
    644 out << val[i] << std::endl;
    │ │ │ │
    645 out << std::endl;
    │ │ │ │
    646
    │ │ │ │ @@ -838,35 +838,31 @@ │ │ │ │
    662
    │ │ │ │
    663
    │ │ │ │
    664 void
    │ │ │ │
    │ │ │ │ │ │ │ │
    666 const MPI_Comm mpi_comm)
    │ │ │ │
    667 {
    │ │ │ │ -
    668 source_stored_elements = source_index_set;
    │ │ │ │ + │ │ │ │ │ │ │ │
    670 std::make_shared<CommunicationPattern>(locally_owned_elements(),
    │ │ │ │ -
    671 source_index_set,
    │ │ │ │ + │ │ │ │
    672 mpi_comm);
    │ │ │ │
    673 }
    │ │ │ │
    │ │ │ │
    674 } // namespace EpetraWrappers
    │ │ │ │
    675} // namespace LinearAlgebra
    │ │ │ │
    676
    │ │ │ │ │ │ │ │
    678
    │ │ │ │
    679#endif
    │ │ │ │ │ │ │ │
    std::size_t size() const
    Definition array_view.h:684
    │ │ │ │ │ │ │ │
    size_type size() const
    Definition index_set.h:1776
    │ │ │ │ -
    Epetra_Map make_trilinos_map(const MPI_Comm communicator=MPI_COMM_WORLD, const bool overlapping=false) const
    │ │ │ │ -
    void add_range(const size_type begin, const size_type end)
    Definition index_set.h:1803
    │ │ │ │ -
    void compress() const
    Definition index_set.h:1784
    │ │ │ │ -
    void add_indices(const ForwardIterator &begin, const ForwardIterator &end)
    Definition index_set.h:1831
    │ │ │ │ │ │ │ │ │ │ │ │
    void equ(const double a, const Vector &V)
    │ │ │ │ │ │ │ │ │ │ │ │
    void compress(const VectorOperation::values operation)
    │ │ │ │
    void print(std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -117,34 +117,34 @@ │ │ │ │ │ 105 │ │ │ │ │ 106 │ │ │ │ │ 107 void │ │ │ │ │ _1_0_8 _V_e_c_t_o_r_:_:_r_e_i_n_i_t(const _I_n_d_e_x_S_e_t ¶llel_partitioner, │ │ │ │ │ 109 const _M_P_I___C_o_m_m communicator, │ │ │ │ │ 110 const bool omit_zeroing_entries) │ │ │ │ │ 111 { │ │ │ │ │ -112 Epetra_Map input_map = │ │ │ │ │ -113 parallel_partitioner._m_a_k_e___t_r_i_l_i_n_o_s___m_a_p(communicator, false); │ │ │ │ │ -114 if (_v_e_c_t_o_r->Map().SameAs(input_map) == false) │ │ │ │ │ -115 _v_e_c_t_o_r = std::make_unique(input_map); │ │ │ │ │ -116 else if (omit_zeroing_entries == false) │ │ │ │ │ +112 Epetra_Map _i_n_p_u_t___m_a_p = │ │ │ │ │ +113 _p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r.make_trilinos_map(communicator, false); │ │ │ │ │ +114 if (_v_e_c_t_o_r->Map().SameAs(_i_n_p_u_t___m_a_p) == false) │ │ │ │ │ +115 _v_e_c_t_o_r = std::make_unique(_i_n_p_u_t___m_a_p); │ │ │ │ │ +116 else if (_o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s == false) │ │ │ │ │ 117 { │ │ │ │ │ -118 const int ierr = _v_e_c_t_o_r->PutScalar(0.); │ │ │ │ │ -119 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -120 (void)ierr; │ │ │ │ │ +118 const int _i_e_r_r = _v_e_c_t_o_r->PutScalar(0.); │ │ │ │ │ +119 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +120 (void)_i_e_r_r; │ │ │ │ │ 121 } │ │ │ │ │ 122 } │ │ │ │ │ 123 │ │ │ │ │ 124 │ │ │ │ │ 125 │ │ │ │ │ 126 void │ │ │ │ │ _1_2_7 _V_e_c_t_o_r_:_:_r_e_i_n_i_t(const _V_e_c_t_o_r &V, const bool omit_zeroing_entries) │ │ │ │ │ 128 { │ │ │ │ │ 129 _r_e_i_n_i_t(V._l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s(), │ │ │ │ │ 130 V._g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r(), │ │ │ │ │ -131 omit_zeroing_entries); │ │ │ │ │ +131 _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s); │ │ │ │ │ 132 } │ │ │ │ │ 133 │ │ │ │ │ 134 │ │ │ │ │ 135 │ │ │ │ │ 136 void │ │ │ │ │ _1_3_7 _V_e_c_t_o_r_:_:_e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o( │ │ │ │ │ 138 const _A_r_r_a_y_V_i_e_w_<_c_o_n_s_t_ _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x_> &indices, │ │ │ │ │ @@ -153,17 +153,17 @@ │ │ │ │ │ 141 _A_s_s_e_r_t_D_i_m_e_n_s_i_o_n(indices._s_i_z_e(), elements._s_i_z_e()); │ │ │ │ │ 142 const auto &_v_e_c_t_o_r = _t_r_i_l_i_n_o_s___v_e_c_t_o_r(); │ │ │ │ │ 143 const auto &map = _v_e_c_t_o_r.Map(); │ │ │ │ │ 144 │ │ │ │ │ 145 for (unsigned int i = 0; i < indices._s_i_z_e(); ++i) │ │ │ │ │ 146 { │ │ │ │ │ 147 _A_s_s_e_r_t_I_n_d_e_x_R_a_n_g_e(indices[i], _s_i_z_e()); │ │ │ │ │ -148 const auto trilinos_i = │ │ │ │ │ +148 const auto _t_r_i_l_i_n_o_s___i = │ │ │ │ │ 149 map.LID(static_cast<_T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e>(indices[i])); │ │ │ │ │ -150 elements[i] = _v_e_c_t_o_r[0][trilinos_i]; │ │ │ │ │ +150 elements[i] = _v_e_c_t_o_r[0][_t_r_i_l_i_n_o_s___i]; │ │ │ │ │ 151 } │ │ │ │ │ 152 } │ │ │ │ │ 153 │ │ │ │ │ 154 │ │ │ │ │ 155 │ │ │ │ │ 156 _V_e_c_t_o_r & │ │ │ │ │ _1_5_7 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_=(const _V_e_c_t_o_r &V) │ │ │ │ │ @@ -174,21 +174,21 @@ │ │ │ │ │ 162 // - Third case: the vectors have different size. │ │ │ │ │ 163 if (_v_e_c_t_o_r->Map().SameAs(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map())) │ │ │ │ │ 164 *_v_e_c_t_o_r = V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(); │ │ │ │ │ 165 else │ │ │ │ │ 166 { │ │ │ │ │ 167 if (_s_i_z_e() == V._s_i_z_e()) │ │ │ │ │ 168 { │ │ │ │ │ -169 Epetra_Import data_exchange(_v_e_c_t_o_r->Map(), │ │ │ │ │ +169 Epetra_Import _d_a_t_a___e_x_c_h_a_n_g_e(_v_e_c_t_o_r->Map(), │ │ │ │ │ 170 V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()); │ │ │ │ │ 171 │ │ │ │ │ -172 const int ierr = │ │ │ │ │ -173 _v_e_c_t_o_r->Import(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), data_exchange, Insert); │ │ │ │ │ -174 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -175 (void)ierr; │ │ │ │ │ +172 const int _i_e_r_r = │ │ │ │ │ +173 _v_e_c_t_o_r->Import(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), _d_a_t_a___e_x_c_h_a_n_g_e, _I_n_s_e_r_t); │ │ │ │ │ +174 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +175 (void)_i_e_r_r; │ │ │ │ │ 176 } │ │ │ │ │ 177 else │ │ │ │ │ 178 _v_e_c_t_o_r = std::make_unique(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r()); │ │ │ │ │ 179 } │ │ │ │ │ 180 │ │ │ │ │ 181 return *this; │ │ │ │ │ 182 } │ │ │ │ │ @@ -196,17 +196,17 @@ │ │ │ │ │ 184 │ │ │ │ │ 185 │ │ │ │ │ 186 _V_e_c_t_o_r & │ │ │ │ │ _1_8_7 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_=(const double s) │ │ │ │ │ 188 { │ │ │ │ │ 189 _A_s_s_e_r_t(s == 0., _E_x_c_M_e_s_s_a_g_e("Only 0 can be assigned to a vector.")); │ │ │ │ │ 190 │ │ │ │ │ -191 const int ierr = _v_e_c_t_o_r->PutScalar(s); │ │ │ │ │ -192 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -193 (void)ierr; │ │ │ │ │ +191 const int _i_e_r_r = _v_e_c_t_o_r->PutScalar(s); │ │ │ │ │ +192 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +193 (void)_i_e_r_r; │ │ │ │ │ 194 │ │ │ │ │ 195 return *this; │ │ │ │ │ 196 } │ │ │ │ │ 197 │ │ │ │ │ 198 │ │ │ │ │ 199 │ │ │ │ │ 200 void │ │ │ │ │ @@ -214,15 +214,15 @@ │ │ │ │ │ 202 const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_d_o_u_b_l_e_> &V, │ │ │ │ │ 203 _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, │ │ │ │ │ 204 const std::shared_ptr │ │ │ │ │ 205 &communication_pattern) │ │ │ │ │ 206 { │ │ │ │ │ 207 // If no communication pattern is given, create one. Otherwise, use the │ │ │ │ │ 208 // one given. │ │ │ │ │ -209 if (communication_pattern == nullptr) │ │ │ │ │ +209 if (_c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n == nullptr) │ │ │ │ │ 210 { │ │ │ │ │ 211 // The first time import is called, a communication pattern is │ │ │ │ │ 212 // created. Check if the communication pattern already exists and if │ │ │ │ │ 213 // it can be reused. │ │ │ │ │ 214 if ((_s_o_u_r_c_e___s_t_o_r_e_d___e_l_e_m_e_n_t_s._s_i_z_e() != │ │ │ │ │ 215 V._g_e_t___s_t_o_r_e_d___e_l_e_m_e_n_t_s()._s_i_z_e()) || │ │ │ │ │ 216 (_s_o_u_r_c_e___s_t_o_r_e_d___e_l_e_m_e_n_t_s != V._g_e_t___s_t_o_r_e_d___e_l_e_m_e_n_t_s())) │ │ │ │ │ @@ -232,37 +232,37 @@ │ │ │ │ │ 220 dynamic_cast(_v_e_c_t_o_r->Comm()).Comm()); │ │ │ │ │ 221 } │ │ │ │ │ 222 } │ │ │ │ │ 223 else │ │ │ │ │ 224 { │ │ │ │ │ 225 _e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n = │ │ │ │ │ 226 std::dynamic_pointer_cast( │ │ │ │ │ -227 communication_pattern); │ │ │ │ │ +227 _c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n); │ │ │ │ │ 228 _A_s_s_e_r_t_T_h_r_o_w( │ │ │ │ │ 229 _e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n != nullptr, │ │ │ │ │ 230 _E_x_c_M_e_s_s_a_g_e( │ │ │ │ │ 231 std::string("The communication pattern is not of type ") + │ │ │ │ │ 232 "LinearAlgebra::EpetraWrappers::CommunicationPattern.")); │ │ │ │ │ 233 } │ │ │ │ │ 234 │ │ │ │ │ -235 Epetra_Import import_map(_e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n->get_epetra_import()); │ │ │ │ │ +235 Epetra_Import _i_m_p_o_r_t___m_a_p(_e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n->get_epetra_import()); │ │ │ │ │ 236 │ │ │ │ │ 237 // The TargetMap and the SourceMap have their roles inverted. │ │ │ │ │ -238 Epetra_FEVector source_vector(import_map.TargetMap()); │ │ │ │ │ -239 double *values = source_vector.Values(); │ │ │ │ │ +238 Epetra_FEVector _s_o_u_r_c_e___v_e_c_t_o_r(_i_m_p_o_r_t___m_a_p.TargetMap()); │ │ │ │ │ +239 double *values = _s_o_u_r_c_e___v_e_c_t_o_r.Values(); │ │ │ │ │ 240 std::copy(V._b_e_g_i_n(), V._e_n_d(), values); │ │ │ │ │ 241 │ │ │ │ │ 242 if (operation == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_i_n_s_e_r_t) │ │ │ │ │ -243 _v_e_c_t_o_r->Export(source_vector, import_map, Insert); │ │ │ │ │ +243 _v_e_c_t_o_r->Export(_s_o_u_r_c_e___v_e_c_t_o_r, _i_m_p_o_r_t___m_a_p, _I_n_s_e_r_t); │ │ │ │ │ 244 else if (operation == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_a_d_d) │ │ │ │ │ -245 _v_e_c_t_o_r->Export(source_vector, import_map, Add); │ │ │ │ │ +245 _v_e_c_t_o_r->Export(_s_o_u_r_c_e___v_e_c_t_o_r, _i_m_p_o_r_t___m_a_p, _A_d_d); │ │ │ │ │ 246 else if (operation == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_m_a_x) │ │ │ │ │ -247 _v_e_c_t_o_r->Export(source_vector, import_map, Epetra_Max); │ │ │ │ │ +247 _v_e_c_t_o_r->Export(_s_o_u_r_c_e___v_e_c_t_o_r, _i_m_p_o_r_t___m_a_p, _E_p_e_t_r_a___M_a_x); │ │ │ │ │ 248 else if (operation == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_m_i_n) │ │ │ │ │ -249 _v_e_c_t_o_r->Export(source_vector, import_map, Epetra_Min); │ │ │ │ │ +249 _v_e_c_t_o_r->Export(_s_o_u_r_c_e___v_e_c_t_o_r, _i_m_p_o_r_t___m_a_p, _E_p_e_t_r_a___M_i_n); │ │ │ │ │ 250 else │ │ │ │ │ 251 _A_s_s_e_r_t_T_h_r_o_w(false, _E_x_c_N_o_t_I_m_p_l_e_m_e_n_t_e_d()); │ │ │ │ │ 252 } │ │ │ │ │ 253 │ │ │ │ │ 254 │ │ │ │ │ 255 │ │ │ │ │ 256 _V_e_c_t_o_r & │ │ │ │ │ @@ -290,43 +290,43 @@ │ │ │ │ │ 278 │ │ │ │ │ 279 _V_e_c_t_o_r & │ │ │ │ │ _2_8_0 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_+_=(const _V_e_c_t_o_r &V) │ │ │ │ │ 281 { │ │ │ │ │ 282 // If the maps are the same we can Update right away. │ │ │ │ │ 283 if (_v_e_c_t_o_r->Map().SameAs(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map())) │ │ │ │ │ 284 { │ │ │ │ │ -285 const int ierr = _v_e_c_t_o_r->Update(1., V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), 1.); │ │ │ │ │ -286 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -287 (void)ierr; │ │ │ │ │ +285 const int _i_e_r_r = _v_e_c_t_o_r->Update(1., V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), 1.); │ │ │ │ │ +286 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +287 (void)_i_e_r_r; │ │ │ │ │ 288 } │ │ │ │ │ 289 else │ │ │ │ │ 290 { │ │ │ │ │ 291 _A_s_s_e_r_t(this->_s_i_z_e() == V._s_i_z_e(), │ │ │ │ │ 292 _E_x_c_D_i_m_e_n_s_i_o_n_M_i_s_m_a_t_c_h(this->_s_i_z_e(), V._s_i_z_e())); │ │ │ │ │ 293 │ │ │ │ │ 294# if DEAL_II_TRILINOS_VERSION_GTE(11, 11, 0) │ │ │ │ │ -295 Epetra_Import data_exchange(_v_e_c_t_o_r->Map(), V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()); │ │ │ │ │ -296 const int ierr = _v_e_c_t_o_r->Import(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), │ │ │ │ │ -297 data_exchange, │ │ │ │ │ -298 Epetra_AddLocalAlso); │ │ │ │ │ -299 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -300 (void)ierr; │ │ │ │ │ +295 Epetra_Import _d_a_t_a___e_x_c_h_a_n_g_e(_v_e_c_t_o_r->Map(), V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()); │ │ │ │ │ +296 const int _i_e_r_r = _v_e_c_t_o_r->Import(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), │ │ │ │ │ +297 _d_a_t_a___e_x_c_h_a_n_g_e, │ │ │ │ │ +298 _E_p_e_t_r_a___A_d_d_L_o_c_a_l_A_l_s_o); │ │ │ │ │ +299 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +300 (void)_i_e_r_r; │ │ │ │ │ 301# else │ │ │ │ │ 302 // In versions older than 11.11 the Import function is broken for │ │ │ │ │ 303 // adding Hence, we provide a workaround in this case │ │ │ │ │ 304 │ │ │ │ │ -305 Epetra_MultiVector dummy(_v_e_c_t_o_r->Map(), 1, false); │ │ │ │ │ -306 Epetra_Import data_exchange(dummy.Map(), V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()); │ │ │ │ │ +305 Epetra_MultiVector _d_u_m_m_y(_v_e_c_t_o_r->Map(), 1, false); │ │ │ │ │ +306 Epetra_Import _d_a_t_a___e_x_c_h_a_n_g_e(_d_u_m_m_y.Map(), V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()); │ │ │ │ │ 307 │ │ │ │ │ -308 int ierr = dummy.Import(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), data_exchange, Insert); │ │ │ │ │ -309 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +308 int _i_e_r_r = _d_u_m_m_y.Import(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), _d_a_t_a___e_x_c_h_a_n_g_e, _I_n_s_e_r_t); │ │ │ │ │ +309 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 310 │ │ │ │ │ -311 ierr = _v_e_c_t_o_r->Update(1.0, dummy, 1.0); │ │ │ │ │ -312 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -313 (void)ierr; │ │ │ │ │ +311 _i_e_r_r = _v_e_c_t_o_r->Update(1.0, _d_u_m_m_y, 1.0); │ │ │ │ │ +312 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +313 (void)_i_e_r_r; │ │ │ │ │ 314# endif │ │ │ │ │ 315 } │ │ │ │ │ 316 │ │ │ │ │ 317 return *this; │ │ │ │ │ 318 } │ │ │ │ │ 319 │ │ │ │ │ 320 │ │ │ │ │ @@ -345,20 +345,20 @@ │ │ │ │ │ _3_3_3 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_*(const _V_e_c_t_o_r &V) const │ │ │ │ │ 334 { │ │ │ │ │ 335 _A_s_s_e_r_t(this->_s_i_z_e() == V._s_i_z_e(), │ │ │ │ │ 336 _E_x_c_D_i_m_e_n_s_i_o_n_M_i_s_m_a_t_c_h(this->_s_i_z_e(), V._s_i_z_e())); │ │ │ │ │ 337 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()), │ │ │ │ │ 338 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ 339 │ │ │ │ │ -340 double result(0.); │ │ │ │ │ -341 const int ierr = _v_e_c_t_o_r->Dot(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), &result); │ │ │ │ │ -342 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -343 (void)ierr; │ │ │ │ │ +340 double _r_e_s_u_l_t(0.); │ │ │ │ │ +341 const int _i_e_r_r = _v_e_c_t_o_r->Dot(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), &_r_e_s_u_l_t); │ │ │ │ │ +342 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +343 (void)_i_e_r_r; │ │ │ │ │ 344 │ │ │ │ │ -345 return result; │ │ │ │ │ +345 return _r_e_s_u_l_t; │ │ │ │ │ 346 } │ │ │ │ │ 347 │ │ │ │ │ 348 │ │ │ │ │ 349 │ │ │ │ │ 350 void │ │ │ │ │ _3_5_1 _V_e_c_t_o_r_:_:_a_d_d(const double a) │ │ │ │ │ 352 { │ │ │ │ │ @@ -373,17 +373,17 @@ │ │ │ │ │ 361 void │ │ │ │ │ _3_6_2 _V_e_c_t_o_r_:_:_a_d_d(const double a, const _V_e_c_t_o_r &V) │ │ │ │ │ 363 { │ │ │ │ │ 364 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(a); │ │ │ │ │ 365 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()), │ │ │ │ │ 366 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ 367 │ │ │ │ │ -368 const int ierr = _v_e_c_t_o_r->Update(a, V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), 1.); │ │ │ │ │ -369 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -370 (void)ierr; │ │ │ │ │ +368 const int _i_e_r_r = _v_e_c_t_o_r->Update(a, V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), 1.); │ │ │ │ │ +369 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +370 (void)_i_e_r_r; │ │ │ │ │ 371 } │ │ │ │ │ 372 │ │ │ │ │ 373 │ │ │ │ │ 374 │ │ │ │ │ 375 void │ │ │ │ │ _3_7_6 _V_e_c_t_o_r_:_:_a_d_d(const double a, │ │ │ │ │ 377 const _V_e_c_t_o_r &V, │ │ │ │ │ @@ -393,18 +393,18 @@ │ │ │ │ │ 381 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()), │ │ │ │ │ 382 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ 383 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(W._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()), │ │ │ │ │ 384 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ 385 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(a); │ │ │ │ │ 386 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(b); │ │ │ │ │ 387 │ │ │ │ │ -388 const int ierr = │ │ │ │ │ +388 const int _i_e_r_r = │ │ │ │ │ 389 _v_e_c_t_o_r->Update(a, V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), b, W._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), 1.); │ │ │ │ │ -390 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -391 (void)ierr; │ │ │ │ │ +390 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +391 (void)_i_e_r_r; │ │ │ │ │ 392 } │ │ │ │ │ 393 │ │ │ │ │ 394 │ │ │ │ │ 395 │ │ │ │ │ 396 void │ │ │ │ │ _3_9_7 _V_e_c_t_o_r_:_:_s_a_d_d(const double s, const double a, const _V_e_c_t_o_r &V) │ │ │ │ │ 398 { │ │ │ │ │ @@ -415,118 +415,118 @@ │ │ │ │ │ 403 } │ │ │ │ │ 404 │ │ │ │ │ 405 │ │ │ │ │ 406 │ │ │ │ │ 407 void │ │ │ │ │ _4_0_8 _V_e_c_t_o_r_:_:_s_c_a_l_e(const _V_e_c_t_o_r &scaling_factors) │ │ │ │ │ 409 { │ │ │ │ │ -410 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(scaling_factors._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()), │ │ │ │ │ +410 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(_s_c_a_l_i_n_g___f_a_c_t_o_r_s.trilinos_vector().Map()), │ │ │ │ │ 411 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ 412 │ │ │ │ │ -413 const int ierr = │ │ │ │ │ -414 _v_e_c_t_o_r->Multiply(1.0, scaling_factors._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), *_v_e_c_t_o_r, 0.0); │ │ │ │ │ -415 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -416 (void)ierr; │ │ │ │ │ +413 const int _i_e_r_r = │ │ │ │ │ +414 _v_e_c_t_o_r->Multiply(1.0, _s_c_a_l_i_n_g___f_a_c_t_o_r_s.trilinos_vector(), *_v_e_c_t_o_r, 0.0); │ │ │ │ │ +415 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +416 (void)_i_e_r_r; │ │ │ │ │ 417 } │ │ │ │ │ 418 │ │ │ │ │ 419 │ │ │ │ │ 420 │ │ │ │ │ 421 void │ │ │ │ │ _4_2_2 _V_e_c_t_o_r_:_:_e_q_u(const double a, const _V_e_c_t_o_r &V) │ │ │ │ │ 423 { │ │ │ │ │ 424 // If we don't have the same map, copy. │ │ │ │ │ 425 if (_v_e_c_t_o_r->Map().SameAs(V._t_r_i_l_i_n_o_s___v_e_c_t_o_r().Map()) == false) │ │ │ │ │ 426 this->_s_a_d_d(0., a, V); │ │ │ │ │ 427 else │ │ │ │ │ 428 { │ │ │ │ │ 429 // Otherwise, just update │ │ │ │ │ -430 int ierr = _v_e_c_t_o_r->Update(a, V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), 0.); │ │ │ │ │ -431 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -432 (void)ierr; │ │ │ │ │ +430 int _i_e_r_r = _v_e_c_t_o_r->Update(a, V._t_r_i_l_i_n_o_s___v_e_c_t_o_r(), 0.); │ │ │ │ │ +431 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +432 (void)_i_e_r_r; │ │ │ │ │ 433 } │ │ │ │ │ 434 } │ │ │ │ │ 435 │ │ │ │ │ 436 │ │ │ │ │ 437 │ │ │ │ │ 438 bool │ │ │ │ │ _4_3_9 _V_e_c_t_o_r_:_:_a_l_l___z_e_r_o() const │ │ │ │ │ 440 { │ │ │ │ │ 441 // get a representation of the vector and │ │ │ │ │ 442 // loop over all the elements │ │ │ │ │ -443 double *start_ptr = (*vector)[0]; │ │ │ │ │ -444 const double *ptr = start_ptr, *eptr = start_ptr + _v_e_c_t_o_r->MyLength(); │ │ │ │ │ +443 double *_s_t_a_r_t___p_t_r = (*vector)[0]; │ │ │ │ │ +444 const double *ptr = _s_t_a_r_t___p_t_r, *_e_p_t_r = _s_t_a_r_t___p_t_r + _v_e_c_t_o_r->MyLength(); │ │ │ │ │ 445 unsigned int flag = 0; │ │ │ │ │ -446 while (ptr != eptr) │ │ │ │ │ +446 while (ptr != _e_p_t_r) │ │ │ │ │ 447 { │ │ │ │ │ 448 if (*ptr != 0) │ │ │ │ │ 449 { │ │ │ │ │ 450 flag = 1; │ │ │ │ │ 451 break; │ │ │ │ │ 452 } │ │ │ │ │ 453 ++ptr; │ │ │ │ │ 454 } │ │ │ │ │ 455 │ │ │ │ │ 456 // Check that the vector is zero on _all_ processors. │ │ │ │ │ 457 const Epetra_MpiComm *mpi_comm = │ │ │ │ │ 458 dynamic_cast(&_v_e_c_t_o_r->Map().Comm()); │ │ │ │ │ 459 _A_s_s_e_r_t(mpi_comm != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ -460 unsigned int num_nonzero = _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(flag, mpi_comm->Comm()); │ │ │ │ │ +460 unsigned int _n_u_m___n_o_n_z_e_r_o = _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(flag, mpi_comm->Comm()); │ │ │ │ │ 461 │ │ │ │ │ -462 return num_nonzero == 0; │ │ │ │ │ +462 return _n_u_m___n_o_n_z_e_r_o == 0; │ │ │ │ │ 463 } │ │ │ │ │ 464 │ │ │ │ │ 465 │ │ │ │ │ 466 │ │ │ │ │ 467 double │ │ │ │ │ _4_6_8 _V_e_c_t_o_r_:_:_m_e_a_n___v_a_l_u_e() const │ │ │ │ │ 469 { │ │ │ │ │ 470 double _m_e_a_n___v_a_l_u_e(0.); │ │ │ │ │ 471 │ │ │ │ │ -472 int ierr = _v_e_c_t_o_r->MeanValue(&_m_e_a_n___v_a_l_u_e); │ │ │ │ │ -473 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -474 (void)ierr; │ │ │ │ │ +472 int _i_e_r_r = _v_e_c_t_o_r->MeanValue(&_m_e_a_n___v_a_l_u_e); │ │ │ │ │ +473 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +474 (void)_i_e_r_r; │ │ │ │ │ 475 │ │ │ │ │ 476 return _m_e_a_n___v_a_l_u_e; │ │ │ │ │ 477 } │ │ │ │ │ 478 │ │ │ │ │ 479 │ │ │ │ │ 480 │ │ │ │ │ 481 double │ │ │ │ │ _4_8_2 _V_e_c_t_o_r_:_:_l_1___n_o_r_m() const │ │ │ │ │ 483 { │ │ │ │ │ 484 double norm(0.); │ │ │ │ │ -485 int ierr = _v_e_c_t_o_r->Norm1(&norm); │ │ │ │ │ -486 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -487 (void)ierr; │ │ │ │ │ +485 int _i_e_r_r = _v_e_c_t_o_r->Norm1(&norm); │ │ │ │ │ +486 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +487 (void)_i_e_r_r; │ │ │ │ │ 488 │ │ │ │ │ 489 return norm; │ │ │ │ │ 490 } │ │ │ │ │ 491 │ │ │ │ │ 492 │ │ │ │ │ 493 │ │ │ │ │ 494 double │ │ │ │ │ _4_9_5 _V_e_c_t_o_r_:_:_l_2___n_o_r_m() const │ │ │ │ │ 496 { │ │ │ │ │ 497 double norm(0.); │ │ │ │ │ -498 int ierr = _v_e_c_t_o_r->Norm2(&norm); │ │ │ │ │ -499 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -500 (void)ierr; │ │ │ │ │ +498 int _i_e_r_r = _v_e_c_t_o_r->Norm2(&norm); │ │ │ │ │ +499 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +500 (void)_i_e_r_r; │ │ │ │ │ 501 │ │ │ │ │ 502 return norm; │ │ │ │ │ 503 } │ │ │ │ │ 504 │ │ │ │ │ 505 │ │ │ │ │ 506 │ │ │ │ │ 507 double │ │ │ │ │ _5_0_8 _V_e_c_t_o_r_:_:_l_i_n_f_t_y___n_o_r_m() const │ │ │ │ │ 509 { │ │ │ │ │ 510 double norm(0.); │ │ │ │ │ -511 int ierr = _v_e_c_t_o_r->NormInf(&norm); │ │ │ │ │ -512 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -513 (void)ierr; │ │ │ │ │ +511 int _i_e_r_r = _v_e_c_t_o_r->NormInf(&norm); │ │ │ │ │ +512 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +513 (void)_i_e_r_r; │ │ │ │ │ 514 │ │ │ │ │ 515 return norm; │ │ │ │ │ 516 } │ │ │ │ │ 517 │ │ │ │ │ 518 │ │ │ │ │ 519 │ │ │ │ │ 520 double │ │ │ │ │ @@ -558,52 +558,52 @@ │ │ │ │ │ 546 } │ │ │ │ │ 547 │ │ │ │ │ 548 │ │ │ │ │ 549 │ │ │ │ │ 550 _M_P_I___C_o_m_m │ │ │ │ │ _5_5_1 _V_e_c_t_o_r_:_:_g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r() const │ │ │ │ │ 552 { │ │ │ │ │ -553 const Epetra_MpiComm *epetra_comm = │ │ │ │ │ +553 const Epetra_MpiComm *_e_p_e_t_r_a___c_o_m_m = │ │ │ │ │ 554 dynamic_cast(&(_v_e_c_t_o_r->Comm())); │ │ │ │ │ -555 _A_s_s_e_r_t(epetra_comm != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ -556 return epetra_comm->GetMpiComm(); │ │ │ │ │ +555 _A_s_s_e_r_t(_e_p_e_t_r_a___c_o_m_m != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ +556 return _e_p_e_t_r_a___c_o_m_m->GetMpiComm(); │ │ │ │ │ 557 } │ │ │ │ │ 558 │ │ │ │ │ 559 │ │ │ │ │ 560 │ │ │ │ │ 561 _:_:_I_n_d_e_x_S_e_t │ │ │ │ │ _5_6_2 _V_e_c_t_o_r_:_:_l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s() const │ │ │ │ │ 563 { │ │ │ │ │ -564 _I_n_d_e_x_S_e_t is(_s_i_z_e()); │ │ │ │ │ +564 _I_n_d_e_x_S_e_t _i_s(_s_i_z_e()); │ │ │ │ │ 565 │ │ │ │ │ 566 // easy case: local range is contiguous │ │ │ │ │ 567 if (_v_e_c_t_o_r->Map().LinearMap()) │ │ │ │ │ 568 { │ │ │ │ │ 569# ifndef DEAL_II_WITH_64BIT_INDICES │ │ │ │ │ -570 is._a_d_d___r_a_n_g_e(_v_e_c_t_o_r->Map().MinMyGID(), _v_e_c_t_o_r->Map().MaxMyGID() + 1); │ │ │ │ │ +570 _i_s.add_range(_v_e_c_t_o_r->Map().MinMyGID(), _v_e_c_t_o_r->Map().MaxMyGID() + 1); │ │ │ │ │ 571# else │ │ │ │ │ -572 is._a_d_d___r_a_n_g_e(_v_e_c_t_o_r->Map().MinMyGID64(), │ │ │ │ │ +572 _i_s.add_range(_v_e_c_t_o_r->Map().MinMyGID64(), │ │ │ │ │ 573 _v_e_c_t_o_r->Map().MaxMyGID64() + 1); │ │ │ │ │ 574# endif │ │ │ │ │ 575 } │ │ │ │ │ 576 else if (_v_e_c_t_o_r->Map().NumMyElements() > 0) │ │ │ │ │ 577 { │ │ │ │ │ -578 const _s_i_z_e___t_y_p_e n_indices = _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ +578 const _s_i_z_e___t_y_p_e _n___i_n_d_i_c_e_s = _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ 579# ifndef DEAL_II_WITH_64BIT_INDICES │ │ │ │ │ -580 unsigned int *vector_indices = │ │ │ │ │ +580 unsigned int *_v_e_c_t_o_r___i_n_d_i_c_e_s = │ │ │ │ │ 581 reinterpret_cast(_v_e_c_t_o_r->Map().MyGlobalElements()); │ │ │ │ │ 582# else │ │ │ │ │ -583 _s_i_z_e___t_y_p_e *vector_indices = │ │ │ │ │ +583 _s_i_z_e___t_y_p_e *_v_e_c_t_o_r___i_n_d_i_c_e_s = │ │ │ │ │ 584 reinterpret_cast<_s_i_z_e___t_y_p_e *>(_v_e_c_t_o_r->Map().MyGlobalElements64()); │ │ │ │ │ 585# endif │ │ │ │ │ -586 is._a_d_d___i_n_d_i_c_e_s(vector_indices, vector_indices + n_indices); │ │ │ │ │ +586 _i_s.add_indices(_v_e_c_t_o_r___i_n_d_i_c_e_s, _v_e_c_t_o_r___i_n_d_i_c_e_s + _n___i_n_d_i_c_e_s); │ │ │ │ │ 587 } │ │ │ │ │ -588 is._c_o_m_p_r_e_s_s(); │ │ │ │ │ +588 _i_s.compress(); │ │ │ │ │ 589 │ │ │ │ │ -590 return is; │ │ │ │ │ +590 return _i_s; │ │ │ │ │ 591 } │ │ │ │ │ 592 │ │ │ │ │ 593 │ │ │ │ │ 594 void │ │ │ │ │ _5_9_5 _V_e_c_t_o_r_:_:_c_o_m_p_r_e_s_s(const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s /*operation*/) │ │ │ │ │ 596 {} │ │ │ │ │ 597 │ │ │ │ │ @@ -628,31 +628,31 @@ │ │ │ │ │ 616 void │ │ │ │ │ _6_1_7 _V_e_c_t_o_r_:_:_p_r_i_n_t(std::ostream &out, │ │ │ │ │ 618 const unsigned int precision, │ │ │ │ │ 619 const bool scientific, │ │ │ │ │ 620 const bool across) const │ │ │ │ │ 621 { │ │ │ │ │ 622 _A_s_s_e_r_t_T_h_r_o_w(out.fail() == false, _E_x_c_I_O()); │ │ │ │ │ -623 boost::io::ios_flags_saver restore_flags(out); │ │ │ │ │ +623 boost::io::ios_flags_saver _r_e_s_t_o_r_e___f_l_a_g_s(out); │ │ │ │ │ 624 │ │ │ │ │ 625 // Get a representation of the vector and loop over all │ │ │ │ │ 626 // the elements │ │ │ │ │ 627 double *val; │ │ │ │ │ -628 int leading_dimension; │ │ │ │ │ -629 int ierr = _v_e_c_t_o_r->ExtractView(&val, &leading_dimension); │ │ │ │ │ +628 int _l_e_a_d_i_n_g___d_i_m_e_n_s_i_o_n; │ │ │ │ │ +629 int _i_e_r_r = _v_e_c_t_o_r->ExtractView(&val, &_l_e_a_d_i_n_g___d_i_m_e_n_s_i_o_n); │ │ │ │ │ 630 │ │ │ │ │ -631 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -632 (void)ierr; │ │ │ │ │ +631 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +632 (void)_i_e_r_r; │ │ │ │ │ 633 out.precision(precision); │ │ │ │ │ 634 if (scientific) │ │ │ │ │ 635 out.setf(std::ios::scientific, std::ios::floatfield); │ │ │ │ │ 636 else │ │ │ │ │ 637 out.setf(std::ios::fixed, std::ios::floatfield); │ │ │ │ │ 638 │ │ │ │ │ -639 if (across) │ │ │ │ │ +639 if (_a_c_r_o_s_s) │ │ │ │ │ 640 for (int i = 0; i < _v_e_c_t_o_r->MyLength(); ++i) │ │ │ │ │ 641 out << val[i] << ' '; │ │ │ │ │ 642 else │ │ │ │ │ 643 for (int i = 0; i < _v_e_c_t_o_r->MyLength(); ++i) │ │ │ │ │ 644 out << val[i] << std::endl; │ │ │ │ │ 645 out << std::endl; │ │ │ │ │ 646 │ │ │ │ │ @@ -673,18 +673,18 @@ │ │ │ │ │ 661 │ │ │ │ │ 662 │ │ │ │ │ 663 │ │ │ │ │ 664 void │ │ │ │ │ _6_6_5 _V_e_c_t_o_r_:_:_c_r_e_a_t_e___e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n(const _I_n_d_e_x_S_e_t &source_index_set, │ │ │ │ │ 666 const _M_P_I___C_o_m_m mpi_comm) │ │ │ │ │ 667 { │ │ │ │ │ -668 _s_o_u_r_c_e___s_t_o_r_e_d___e_l_e_m_e_n_t_s = source_index_set; │ │ │ │ │ +668 _s_o_u_r_c_e___s_t_o_r_e_d___e_l_e_m_e_n_t_s = _s_o_u_r_c_e___i_n_d_e_x___s_e_t; │ │ │ │ │ 669 _e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n = │ │ │ │ │ 670 std::make_shared(_l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s(), │ │ │ │ │ -671 source_index_set, │ │ │ │ │ +671 _s_o_u_r_c_e___i_n_d_e_x___s_e_t, │ │ │ │ │ 672 mpi_comm); │ │ │ │ │ 673 } │ │ │ │ │ 674 } // namespace EpetraWrappers │ │ │ │ │ 675} // namespace LinearAlgebra │ │ │ │ │ 676 │ │ │ │ │ 677_D_E_A_L___I_I___N_A_M_E_S_P_A_C_E___C_L_O_S_E │ │ │ │ │ 678 │ │ │ │ │ @@ -695,27 +695,14 @@ │ │ │ │ │ std::size_t size() const │ │ │ │ │ DDeeffiinniittiioonn _a_r_r_a_y___v_i_e_w_._h_:_6_8_4 │ │ │ │ │ _I_n_d_e_x_S_e_t │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_7_0 │ │ │ │ │ _I_n_d_e_x_S_e_t_:_:_s_i_z_e │ │ │ │ │ size_type size() const │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_7_7_6 │ │ │ │ │ -_I_n_d_e_x_S_e_t_:_:_m_a_k_e___t_r_i_l_i_n_o_s___m_a_p │ │ │ │ │ -Epetra_Map make_trilinos_map(const MPI_Comm communicator=MPI_COMM_WORLD, const │ │ │ │ │ -bool overlapping=false) const │ │ │ │ │ -DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._c_c_:_1_0_4_1 │ │ │ │ │ -_I_n_d_e_x_S_e_t_:_:_a_d_d___r_a_n_g_e │ │ │ │ │ -void add_range(const size_type begin, const size_type end) │ │ │ │ │ -DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_8_0_3 │ │ │ │ │ -_I_n_d_e_x_S_e_t_:_:_c_o_m_p_r_e_s_s │ │ │ │ │ -void compress() const │ │ │ │ │ -DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_7_8_4 │ │ │ │ │ -_I_n_d_e_x_S_e_t_:_:_a_d_d___i_n_d_i_c_e_s │ │ │ │ │ -void add_indices(const ForwardIterator &begin, const ForwardIterator &end) │ │ │ │ │ -DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_8_3_1 │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r │ │ │ │ │ DDeeffiinniittiioonn _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._h_:_2_2_7 │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_-_= │ │ │ │ │ Vector & operator-=(const Vector &V) │ │ │ │ │ DDeeffiinniittiioonn _t_r_i_l_i_n_o_s___e_p_e_t_r_a___v_e_c_t_o_r_._c_c_:_3_2_3 │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_E_p_e_t_r_a_W_r_a_p_p_e_r_s_:_:_V_e_c_t_o_r_:_:_e_q_u │ │ │ │ │ void equ(const double a, const Vector &V) │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__epetra__vector_8h_source.html │ │ │ │ @@ -249,24 +249,24 @@ │ │ │ │ │ │ │ │ │ │ │ │
    234
    │ │ │ │
    243 Vector();
    │ │ │ │
    244
    │ │ │ │
    249 Vector(const Vector &V);
    │ │ │ │
    250
    │ │ │ │ -
    257 explicit Vector(const IndexSet &parallel_partitioner,
    │ │ │ │ +
    257 explicit Vector(const IndexSet &parallel_partitioner,
    │ │ │ │
    258 const MPI_Comm communicator);
    │ │ │ │
    259
    │ │ │ │
    266 void
    │ │ │ │ -
    267 reinit(const IndexSet &parallel_partitioner,
    │ │ │ │ + │ │ │ │
    268 const MPI_Comm communicator,
    │ │ │ │ -
    269 const bool omit_zeroing_entries = false);
    │ │ │ │ +
    269 const bool omit_zeroing_entries = false);
    │ │ │ │
    270
    │ │ │ │
    275 void
    │ │ │ │ -
    276 reinit(const Vector &V, const bool omit_zeroing_entries = false);
    │ │ │ │ +
    276 reinit(const Vector &V, const bool omit_zeroing_entries = false);
    │ │ │ │
    277
    │ │ │ │
    281 virtual void
    │ │ │ │ │ │ │ │ │ │ │ │
    284 ArrayView<double> &elements) const override;
    │ │ │ │
    285
    │ │ │ │
    315 Vector &
    │ │ │ │ @@ -276,26 +276,26 @@ │ │ │ │
    323 operator=(const double s);
    │ │ │ │
    324
    │ │ │ │
    333 void
    │ │ │ │ │ │ │ │ │ │ │ │
    336 VectorOperation::values operation,
    │ │ │ │
    337 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase>
    │ │ │ │ -
    338 &communication_pattern = {});
    │ │ │ │ + │ │ │ │
    339
    │ │ │ │ │ │ │ │
    344 void
    │ │ │ │
    │ │ │ │
    345 import(
    │ │ │ │ │ │ │ │
    347 const VectorOperation::values operation,
    │ │ │ │
    348 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase>
    │ │ │ │ -
    349 &communication_pattern = {})
    │ │ │ │ + │ │ │ │
    350 {
    │ │ │ │ -
    351 import_elements(V, operation, communication_pattern);
    │ │ │ │ + │ │ │ │
    352 }
    │ │ │ │
    │ │ │ │
    353
    │ │ │ │ │ │ │ │
    370 operator()(const size_type index);
    │ │ │ │
    371
    │ │ │ │ │ │ │ │ @@ -331,15 +331,15 @@ │ │ │ │
    453 void
    │ │ │ │
    454 add(const double a, const Vector &V, const double b, const Vector &W);
    │ │ │ │
    455
    │ │ │ │
    460 void
    │ │ │ │
    461 sadd(const double s, const double a, const Vector &V);
    │ │ │ │
    462
    │ │ │ │
    469 void
    │ │ │ │ -
    470 scale(const Vector &scaling_factors);
    │ │ │ │ + │ │ │ │
    471
    │ │ │ │
    475 void
    │ │ │ │
    476 equ(const double a, const Vector &V);
    │ │ │ │
    477
    │ │ │ │
    481 bool
    │ │ │ │
    482 all_zero() const;
    │ │ │ │
    483
    │ │ │ │ @@ -382,31 +382,31 @@ │ │ │ │
    624 Epetra_FEVector &
    │ │ │ │ │ │ │ │
    626
    │ │ │ │
    630 void
    │ │ │ │
    631 print(std::ostream &out,
    │ │ │ │
    632 const unsigned int precision = 3,
    │ │ │ │
    633 const bool scientific = true,
    │ │ │ │ -
    634 const bool across = true) const;
    │ │ │ │ +
    634 const bool across = true) const;
    │ │ │ │
    635
    │ │ │ │
    639 std::size_t
    │ │ │ │
    640 memory_consumption() const;
    │ │ │ │
    641
    │ │ │ │ │ │ │ │
    649
    │ │ │ │ │ │ │ │
    656
    │ │ │ │ │ │ │ │
    663 int,
    │ │ │ │ -
    664 << "An error with error number " << arg1
    │ │ │ │ +
    664 << "An error with error number " << arg1
    │ │ │ │
    665 << " occurred while calling a Trilinos function");
    │ │ │ │
    666
    │ │ │ │
    667 private:
    │ │ │ │
    673 void
    │ │ │ │ -
    674 create_epetra_comm_pattern(const IndexSet &source_index_set,
    │ │ │ │ + │ │ │ │
    675 const MPI_Comm mpi_comm);
    │ │ │ │
    676
    │ │ │ │
    680 std::unique_ptr<Epetra_FEVector> vector;
    │ │ │ │
    681
    │ │ │ │ │ │ │ │
    686
    │ │ │ │
    691 std::shared_ptr<const CommunicationPattern> epetra_comm_pattern;
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -153,24 +153,24 @@ │ │ │ │ │ _2_3_2 using _r_e_f_e_r_e_n_c_e = _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e; │ │ │ │ │ _2_3_3 using _c_o_n_s_t___r_e_f_e_r_e_n_c_e = const _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e; │ │ │ │ │ 234 │ │ │ │ │ 243 _V_e_c_t_o_r(); │ │ │ │ │ 244 │ │ │ │ │ 249 _V_e_c_t_o_r(const _V_e_c_t_o_r &V); │ │ │ │ │ 250 │ │ │ │ │ -257 explicit _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t ¶llel_partitioner, │ │ │ │ │ +257 explicit _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r, │ │ │ │ │ 258 const _M_P_I___C_o_m_m communicator); │ │ │ │ │ 259 │ │ │ │ │ 266 void │ │ │ │ │ -267 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t ¶llel_partitioner, │ │ │ │ │ +267 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r, │ │ │ │ │ 268 const _M_P_I___C_o_m_m communicator, │ │ │ │ │ -269 const bool omit_zeroing_entries = false); │ │ │ │ │ +269 const bool _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s = false); │ │ │ │ │ 270 │ │ │ │ │ 275 void │ │ │ │ │ -276 _r_e_i_n_i_t(const _V_e_c_t_o_r &V, const bool omit_zeroing_entries = false); │ │ │ │ │ +276 _r_e_i_n_i_t(const _V_e_c_t_o_r &V, const bool _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s = false); │ │ │ │ │ 277 │ │ │ │ │ 281 virtual void │ │ │ │ │ 282 _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o( │ │ │ │ │ 283 const _A_r_r_a_y_V_i_e_w_<_c_o_n_s_t_ _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x_> &indices, │ │ │ │ │ 284 _A_r_r_a_y_V_i_e_w_<_d_o_u_b_l_e_> &elements) const override; │ │ │ │ │ 285 │ │ │ │ │ 315 _V_e_c_t_o_r & │ │ │ │ │ @@ -180,25 +180,25 @@ │ │ │ │ │ 323 _o_p_e_r_a_t_o_r_=(const double s); │ │ │ │ │ 324 │ │ │ │ │ 333 void │ │ │ │ │ 334 _i_m_p_o_r_t___e_l_e_m_e_n_t_s( │ │ │ │ │ 335 const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_d_o_u_b_l_e_> &V, │ │ │ │ │ 336 _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, │ │ │ │ │ 337 const std::shared_ptr │ │ │ │ │ -338 &communication_pattern = {}); │ │ │ │ │ +338 &_c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n = {}); │ │ │ │ │ 339 │ │ │ │ │ 343 _D_E_A_L___I_I___D_E_P_R_E_C_A_T_E_D │ │ │ │ │ 344 void │ │ │ │ │ _3_4_5 import( │ │ │ │ │ 346 const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_d_o_u_b_l_e_> &V, │ │ │ │ │ 347 const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, │ │ │ │ │ 348 const std::shared_ptr │ │ │ │ │ -349 &communication_pattern = {}) │ │ │ │ │ +349 &_c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n = {}) │ │ │ │ │ 350 { │ │ │ │ │ -351 _i_m_p_o_r_t___e_l_e_m_e_n_t_s(V, operation, communication_pattern); │ │ │ │ │ +351 _i_m_p_o_r_t___e_l_e_m_e_n_t_s(V, operation, _c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n); │ │ │ │ │ 352 } │ │ │ │ │ 353 │ │ │ │ │ 369 _r_e_f_e_r_e_n_c_e │ │ │ │ │ 370 _o_p_e_r_a_t_o_r_(_)(const _s_i_z_e___t_y_p_e index); │ │ │ │ │ 371 │ │ │ │ │ 379 _v_a_l_u_e___t_y_p_e │ │ │ │ │ _3_8_0 _o_p_e_r_a_t_o_r_(_)(const _s_i_z_e___t_y_p_e index) const; │ │ │ │ │ @@ -233,15 +233,15 @@ │ │ │ │ │ 453 void │ │ │ │ │ 454 _a_d_d(const double a, const _V_e_c_t_o_r &V, const double b, const _V_e_c_t_o_r &W); │ │ │ │ │ 455 │ │ │ │ │ 460 void │ │ │ │ │ 461 _s_a_d_d(const double s, const double a, const _V_e_c_t_o_r &V); │ │ │ │ │ 462 │ │ │ │ │ 469 void │ │ │ │ │ -470 _s_c_a_l_e(const _V_e_c_t_o_r &scaling_factors); │ │ │ │ │ +470 _s_c_a_l_e(const _V_e_c_t_o_r &_s_c_a_l_i_n_g___f_a_c_t_o_r_s); │ │ │ │ │ 471 │ │ │ │ │ 475 void │ │ │ │ │ 476 _e_q_u(const double a, const _V_e_c_t_o_r &V); │ │ │ │ │ 477 │ │ │ │ │ 481 bool │ │ │ │ │ 482 _a_l_l___z_e_r_o() const; │ │ │ │ │ 483 │ │ │ │ │ @@ -284,31 +284,31 @@ │ │ │ │ │ 624 Epetra_FEVector & │ │ │ │ │ 625 _t_r_i_l_i_n_o_s___v_e_c_t_o_r(); │ │ │ │ │ 626 │ │ │ │ │ 630 void │ │ │ │ │ 631 _p_r_i_n_t(std::ostream &out, │ │ │ │ │ 632 const unsigned int precision = 3, │ │ │ │ │ 633 const bool scientific = true, │ │ │ │ │ -634 const bool across = true) const; │ │ │ │ │ +634 const bool _a_c_r_o_s_s = true) const; │ │ │ │ │ 635 │ │ │ │ │ 639 std::size_t │ │ │ │ │ 640 _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n() const; │ │ │ │ │ 641 │ │ │ │ │ _6_4_8 _D_e_c_l_E_x_c_e_p_t_i_o_n_0(_E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g); │ │ │ │ │ 649 │ │ │ │ │ _6_5_5 _D_e_c_l_E_x_c_e_p_t_i_o_n_0(_E_x_c_V_e_c_t_o_r_T_y_p_e_N_o_t_C_o_m_p_a_t_i_b_l_e); │ │ │ │ │ 656 │ │ │ │ │ 662 _D_e_c_l_E_x_c_e_p_t_i_o_n_1(_E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r, │ │ │ │ │ 663 int, │ │ │ │ │ -664 << "An error with error number " << arg1 │ │ │ │ │ +664 << "An error with error number " << _a_r_g_1 │ │ │ │ │ _6_6_5 << " occurred while calling a Trilinos function"); │ │ │ │ │ 666 │ │ │ │ │ 667 private: │ │ │ │ │ 673 void │ │ │ │ │ -674 _c_r_e_a_t_e___e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n(const _I_n_d_e_x_S_e_t &source_index_set, │ │ │ │ │ +674 _c_r_e_a_t_e___e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n(const _I_n_d_e_x_S_e_t &_s_o_u_r_c_e___i_n_d_e_x___s_e_t, │ │ │ │ │ 675 const _M_P_I___C_o_m_m mpi_comm); │ │ │ │ │ 676 │ │ │ │ │ _6_8_0 std::unique_ptr _v_e_c_t_o_r; │ │ │ │ │ 681 │ │ │ │ │ _6_8_5 _:_:_I_n_d_e_x_S_e_t _s_o_u_r_c_e___s_t_o_r_e_d___e_l_e_m_e_n_t_s; │ │ │ │ │ 686 │ │ │ │ │ _6_9_1 std::shared_ptr _e_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n; │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__tpetra__vector_8h_source.html │ │ │ │ @@ -299,39 +299,39 @@ │ │ │ │ │ │ │ │
    311
    │ │ │ │
    316 Vector(const Vector &V);
    │ │ │ │
    317
    │ │ │ │ │ │ │ │ │ │ │ │
    323
    │ │ │ │ -
    331 explicit Vector(const IndexSet &parallel_partitioner,
    │ │ │ │ + │ │ │ │
    332 const MPI_Comm communicator);
    │ │ │ │
    333
    │ │ │ │ -
    348 explicit Vector(const IndexSet &locally_owned_entries,
    │ │ │ │ -
    349 const IndexSet &ghost_entries,
    │ │ │ │ + │ │ │ │ +
    349 const IndexSet &ghost_entries,
    │ │ │ │
    350 const MPI_Comm communicator,
    │ │ │ │ -
    351 const bool vector_writable = false);
    │ │ │ │ +
    351 const bool vector_writable = false);
    │ │ │ │
    352
    │ │ │ │
    357 void
    │ │ │ │ │ │ │ │
    359
    │ │ │ │
    366 void
    │ │ │ │ -
    367 reinit(const IndexSet &parallel_partitioner,
    │ │ │ │ -
    368 const MPI_Comm communicator = MPI_COMM_WORLD,
    │ │ │ │ -
    369 const bool omit_zeroing_entries = false);
    │ │ │ │ + │ │ │ │ +
    368 const MPI_Comm communicator = MPI_COMM_WORLD,
    │ │ │ │ +
    369 const bool omit_zeroing_entries = false);
    │ │ │ │
    370
    │ │ │ │
    385 void
    │ │ │ │ -
    386 reinit(const IndexSet &locally_owned_entries,
    │ │ │ │ -
    387 const IndexSet &locally_relevant_or_ghost_entries,
    │ │ │ │ -
    388 const MPI_Comm communicator = MPI_COMM_WORLD,
    │ │ │ │ -
    389 const bool vector_writable = false);
    │ │ │ │ + │ │ │ │ + │ │ │ │ +
    388 const MPI_Comm communicator = MPI_COMM_WORLD,
    │ │ │ │ +
    389 const bool vector_writable = false);
    │ │ │ │
    390
    │ │ │ │
    395 void
    │ │ │ │ │ │ │ │ -
    397 const bool omit_zeroing_entries = false);
    │ │ │ │ +
    397 const bool omit_zeroing_entries = false);
    │ │ │ │
    398
    │ │ │ │
    414 virtual void
    │ │ │ │
    │ │ │ │
    415 swap(Vector &v) noexcept;
    │ │ │ │
    416
    │ │ │ │
    420 virtual void
    │ │ │ │ │ │ │ │ @@ -349,23 +349,23 @@ │ │ │ │
    471 operator=(const Number s);
    │ │ │ │
    472
    │ │ │ │
    481 void
    │ │ │ │ │ │ │ │ │ │ │ │
    484 VectorOperation::values operation,
    │ │ │ │
    485 const Teuchos::RCP<const Utilities::MPI::CommunicationPatternBase>
    │ │ │ │ -
    486 &communication_pattern);
    │ │ │ │ + │ │ │ │
    487
    │ │ │ │ │ │ │ │
    492 void
    │ │ │ │ │ │ │ │ │ │ │ │
    495 VectorOperation::values operation,
    │ │ │ │
    496 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase>
    │ │ │ │ -
    497 &communication_pattern);
    │ │ │ │ + │ │ │ │
    498
    │ │ │ │
    499 /*
    │ │ │ │
    500 * Imports all the elements present in the vector's IndexSet from the
    │ │ │ │
    501 * input vector @p V. VectorOperation::values @p operation is used to decide if
    │ │ │ │
    502 * the elements in @p V should be added to the current vector or replace the
    │ │ │ │
    503 * current elements.
    │ │ │ │
    504 */
    │ │ │ │ @@ -375,17 +375,17 @@ │ │ │ │
    508
    │ │ │ │ │ │ │ │
    513 void
    │ │ │ │
    │ │ │ │
    514 import(const ReadWriteVector<Number> &V,
    │ │ │ │
    515 VectorOperation::values operation,
    │ │ │ │
    516 std::shared_ptr<const Utilities::MPI::CommunicationPatternBase>
    │ │ │ │ -
    517 communication_pattern = {})
    │ │ │ │ + │ │ │ │
    518 {
    │ │ │ │ -
    519 import_elements(V, operation, communication_pattern);
    │ │ │ │ + │ │ │ │
    520 }
    │ │ │ │
    │ │ │ │
    521
    │ │ │ │ │ │ │ │
    │ │ │ │
    538 operator()(const size_type index);
    │ │ │ │
    539
    │ │ │ │ @@ -447,15 +447,15 @@ │ │ │ │
    662 void
    │ │ │ │
    │ │ │ │
    663 set(const size_type n_elements,
    │ │ │ │
    664 const size_type *indices,
    │ │ │ │
    665 const Number *values);
    │ │ │ │
    666
    │ │ │ │
    673 void
    │ │ │ │ -
    674 scale(const Vector<Number, MemorySpace> &scaling_factors);
    │ │ │ │ + │ │ │ │
    675
    │ │ │ │
    679 void
    │ │ │ │
    680 equ(const Number a, const Vector<Number, MemorySpace> &V);
    │ │ │ │
    681
    │ │ │ │
    685 bool
    │ │ │ │
    686 all_zero() const;
    │ │ │ │
    687
    │ │ │ │ @@ -529,15 +529,15 @@ │ │ │ │
    925 Teuchos::RCP<TpetraTypes::VectorType<Number, MemorySpace>>
    │ │ │ │ │ │ │ │
    927
    │ │ │ │
    931 void
    │ │ │ │
    932 print(std::ostream &out,
    │ │ │ │
    933 const unsigned int precision = 3,
    │ │ │ │
    934 const bool scientific = true,
    │ │ │ │ -
    935 const bool across = true) const;
    │ │ │ │ +
    935 const bool across = true) const;
    │ │ │ │
    936
    │ │ │ │
    940 std::size_t
    │ │ │ │ │ │ │ │
    942
    │ │ │ │ │ │ │ │
    947 mpi_comm() const;
    │ │ │ │
    948
    │ │ │ │ @@ -552,20 +552,20 @@ │ │ │ │
    971 */
    │ │ │ │ │ │ │ │ │ │ │ │
    974 size_type,
    │ │ │ │
    975 size_type,
    │ │ │ │
    976 size_type,
    │ │ │ │
    977 size_type,
    │ │ │ │ -
    978 << "You are trying to access element " << arg1
    │ │ │ │ +
    978 << "You are trying to access element " << arg1
    │ │ │ │
    979 << " of a distributed vector, but this element is not stored "
    │ │ │ │ -
    980 << "on the current processor. Note: There are " << arg2
    │ │ │ │ +
    980 << "on the current processor. Note: There are " << arg2
    │ │ │ │
    981 << " elements stored "
    │ │ │ │ -
    982 << "on the current processor from within the range [" << arg3 << ','
    │ │ │ │ -
    983 << arg4 << "] but Trilinos vectors need not store contiguous "
    │ │ │ │ +
    982 << "on the current processor from within the range [" << arg3 << ','
    │ │ │ │ +
    983 << arg4 << "] but Trilinos vectors need not store contiguous "
    │ │ │ │
    984 << "ranges on each processor, and not every element in "
    │ │ │ │
    985 << "this range may in fact be stored locally."
    │ │ │ │
    986 << "\n\n"
    │ │ │ │
    987 << "A common source for this kind of problem is that you "
    │ │ │ │
    988 << "are passing a 'fully distributed' vector into a function "
    │ │ │ │
    989 << "that needs read access to vector elements that correspond "
    │ │ │ │
    990 << "to degrees of freedom on ghost cells (or at least to "
    │ │ │ │ @@ -579,20 +579,20 @@ │ │ │ │
    1003 "must be provided. These index sets must be "
    │ │ │ │
    1004 "provided either when the vector is initialized "
    │ │ │ │
    1005 "or when compress is called. See the documentation "
    │ │ │ │
    1006 "of compress() for more information.");
    │ │ │ │
    1007
    │ │ │ │ │ │ │ │
    1014 int,
    │ │ │ │ -
    1015 << "An error with error number " << arg1
    │ │ │ │ +
    1015 << "An error with error number " << arg1
    │ │ │ │
    1016 << " occurred while calling a Trilinos function");
    │ │ │ │
    1017
    │ │ │ │
    1018 private:
    │ │ │ │
    1024 void
    │ │ │ │ -
    1025 create_tpetra_comm_pattern(const IndexSet &source_index_set,
    │ │ │ │ + │ │ │ │
    1026 const MPI_Comm mpi_comm);
    │ │ │ │
    1027
    │ │ │ │ │ │ │ │
    1033
    │ │ │ │ │ │ │ │
    1043
    │ │ │ │
    1047 Teuchos::RCP<TpetraTypes::VectorType<Number, MemorySpace>> vector;
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -201,39 +201,39 @@ │ │ │ │ │ _3_1_0 _V_e_c_t_o_r(); │ │ │ │ │ 311 │ │ │ │ │ _3_1_6 _V_e_c_t_o_r(const _V_e_c_t_o_r &V); │ │ │ │ │ 317 │ │ │ │ │ _3_2_1 _V_e_c_t_o_r( │ │ │ │ │ 322 const Teuchos::RCP<_T_p_e_t_r_a_T_y_p_e_s_:_:_V_e_c_t_o_r_T_y_p_e_<_N_u_m_b_e_r_,_ _M_e_m_o_r_y_S_p_a_c_e_>> V); │ │ │ │ │ 323 │ │ │ │ │ -_3_3_1 explicit _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t ¶llel_partitioner, │ │ │ │ │ +_3_3_1 explicit _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r, │ │ │ │ │ 332 const _M_P_I___C_o_m_m communicator); │ │ │ │ │ 333 │ │ │ │ │ -_3_4_8 explicit _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t &locally_owned_entries, │ │ │ │ │ -349 const _I_n_d_e_x_S_e_t &ghost_entries, │ │ │ │ │ +_3_4_8 explicit _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t &_l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s, │ │ │ │ │ +349 const _I_n_d_e_x_S_e_t &_g_h_o_s_t___e_n_t_r_i_e_s, │ │ │ │ │ 350 const _M_P_I___C_o_m_m communicator, │ │ │ │ │ -351 const bool vector_writable = false); │ │ │ │ │ +351 const bool _v_e_c_t_o_r___w_r_i_t_a_b_l_e = false); │ │ │ │ │ 352 │ │ │ │ │ 357 void │ │ │ │ │ _3_5_8 _c_l_e_a_r(); │ │ │ │ │ 359 │ │ │ │ │ 366 void │ │ │ │ │ -_3_6_7 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t ¶llel_partitioner, │ │ │ │ │ -368 const _M_P_I___C_o_m_m communicator = MPI_COMM_WORLD, │ │ │ │ │ -369 const bool omit_zeroing_entries = false); │ │ │ │ │ +_3_6_7 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r, │ │ │ │ │ +368 const _M_P_I___C_o_m_m communicator = _M_P_I___C_O_M_M___W_O_R_L_D, │ │ │ │ │ +369 const bool _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s = false); │ │ │ │ │ 370 │ │ │ │ │ 385 void │ │ │ │ │ -_3_8_6 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t &locally_owned_entries, │ │ │ │ │ -387 const _I_n_d_e_x_S_e_t &locally_relevant_or_ghost_entries, │ │ │ │ │ -388 const _M_P_I___C_o_m_m communicator = MPI_COMM_WORLD, │ │ │ │ │ -389 const bool vector_writable = false); │ │ │ │ │ +_3_8_6 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t &_l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s, │ │ │ │ │ +387 const _I_n_d_e_x_S_e_t &_l_o_c_a_l_l_y___r_e_l_e_v_a_n_t___o_r___g_h_o_s_t___e_n_t_r_i_e_s, │ │ │ │ │ +388 const _M_P_I___C_o_m_m communicator = _M_P_I___C_O_M_M___W_O_R_L_D, │ │ │ │ │ +389 const bool _v_e_c_t_o_r___w_r_i_t_a_b_l_e = false); │ │ │ │ │ 390 │ │ │ │ │ 395 void │ │ │ │ │ _3_9_6 _r_e_i_n_i_t(const _V_e_c_t_o_r_<_N_u_m_b_e_r_,_ _M_e_m_o_r_y_S_p_a_c_e_> &V, │ │ │ │ │ -397 const bool omit_zeroing_entries = false); │ │ │ │ │ +397 const bool _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s = false); │ │ │ │ │ 398 │ │ │ │ │ 414 virtual void │ │ │ │ │ _4_1_5 _s_w_a_p(_V_e_c_t_o_r &v) noexcept; │ │ │ │ │ 416 │ │ │ │ │ 420 virtual void │ │ │ │ │ _4_2_1 _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o( │ │ │ │ │ 422 const _A_r_r_a_y_V_i_e_w_<_c_o_n_s_t_ _t_y_p_e_s_:_:_g_l_o_b_a_l___d_o_f___i_n_d_e_x_> &indices, │ │ │ │ │ @@ -250,23 +250,23 @@ │ │ │ │ │ _4_7_1 _o_p_e_r_a_t_o_r_=(const Number s); │ │ │ │ │ 472 │ │ │ │ │ 481 void │ │ │ │ │ _4_8_2 _i_m_p_o_r_t___e_l_e_m_e_n_t_s( │ │ │ │ │ 483 const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_N_u_m_b_e_r_> &V, │ │ │ │ │ 484 _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, │ │ │ │ │ 485 const Teuchos::RCP │ │ │ │ │ -486 &communication_pattern); │ │ │ │ │ +486 &_c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n); │ │ │ │ │ 487 │ │ │ │ │ 491 _D_E_A_L___I_I___D_E_P_R_E_C_A_T_E_D │ │ │ │ │ 492 void │ │ │ │ │ _4_9_3 _i_m_p_o_r_t___e_l_e_m_e_n_t_s( │ │ │ │ │ 494 const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_N_u_m_b_e_r_> &V, │ │ │ │ │ 495 _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, │ │ │ │ │ 496 const std::shared_ptr │ │ │ │ │ -497 &communication_pattern); │ │ │ │ │ +497 &_c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n); │ │ │ │ │ 498 │ │ │ │ │ 499 /* │ │ │ │ │ 500 * Imports all the elements present in the vector's IndexSet from the │ │ │ │ │ 501 * input vector @p V. VectorOperation::values @p operation is used to decide │ │ │ │ │ if │ │ │ │ │ 502 * the elements in @p V should be added to the current vector or replace the │ │ │ │ │ 503 * current elements. │ │ │ │ │ @@ -276,17 +276,17 @@ │ │ │ │ │ 507 _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation); │ │ │ │ │ 508 │ │ │ │ │ 512 _D_E_A_L___I_I___D_E_P_R_E_C_A_T_E_D │ │ │ │ │ 513 void │ │ │ │ │ _5_1_4 import(const _R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_N_u_m_b_e_r_> &V, │ │ │ │ │ 515 _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation, │ │ │ │ │ 516 std::shared_ptr │ │ │ │ │ -517 communication_pattern = {}) │ │ │ │ │ +517 _c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n = {}) │ │ │ │ │ 518 { │ │ │ │ │ -519 _i_m_p_o_r_t___e_l_e_m_e_n_t_s(V, operation, communication_pattern); │ │ │ │ │ +519 _i_m_p_o_r_t___e_l_e_m_e_n_t_s(V, operation, _c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n); │ │ │ │ │ 520 } │ │ │ │ │ 521 │ │ │ │ │ 537 _r_e_f_e_r_e_n_c_e │ │ │ │ │ _5_3_8 _o_p_e_r_a_t_o_r_(_)(const _s_i_z_e___t_y_p_e index); │ │ │ │ │ 539 │ │ │ │ │ 547 Number │ │ │ │ │ _5_4_8 _o_p_e_r_a_t_o_r_(_)(const _s_i_z_e___t_y_p_e index) const; │ │ │ │ │ @@ -341,15 +341,15 @@ │ │ │ │ │ 655 │ │ │ │ │ 662 void │ │ │ │ │ _6_6_3 _s_e_t(const _s_i_z_e___t_y_p_e n_elements, │ │ │ │ │ 664 const _s_i_z_e___t_y_p_e *indices, │ │ │ │ │ 665 const Number *values); │ │ │ │ │ 666 │ │ │ │ │ 673 void │ │ │ │ │ -_6_7_4 _s_c_a_l_e(const _V_e_c_t_o_r_<_N_u_m_b_e_r_,_ _M_e_m_o_r_y_S_p_a_c_e_> &scaling_factors); │ │ │ │ │ +_6_7_4 _s_c_a_l_e(const _V_e_c_t_o_r_<_N_u_m_b_e_r_,_ _M_e_m_o_r_y_S_p_a_c_e_> &_s_c_a_l_i_n_g___f_a_c_t_o_r_s); │ │ │ │ │ 675 │ │ │ │ │ 679 void │ │ │ │ │ _6_8_0 _e_q_u(const Number a, const _V_e_c_t_o_r_<_N_u_m_b_e_r_,_ _M_e_m_o_r_y_S_p_a_c_e_> &V); │ │ │ │ │ 681 │ │ │ │ │ 685 bool │ │ │ │ │ _6_8_6 _a_l_l___z_e_r_o() const; │ │ │ │ │ 687 │ │ │ │ │ @@ -421,15 +421,15 @@ │ │ │ │ │ 925 Teuchos::RCP> │ │ │ │ │ _9_2_6 _t_r_i_l_i_n_o_s___r_c_p(); │ │ │ │ │ 927 │ │ │ │ │ 931 void │ │ │ │ │ _9_3_2 _p_r_i_n_t(std::ostream &out, │ │ │ │ │ 933 const unsigned int precision = 3, │ │ │ │ │ 934 const bool scientific = true, │ │ │ │ │ -935 const bool across = true) const; │ │ │ │ │ +935 const bool _a_c_r_o_s_s = true) const; │ │ │ │ │ 936 │ │ │ │ │ 940 std::size_t │ │ │ │ │ _9_4_1 _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n() const; │ │ │ │ │ 942 │ │ │ │ │ 946 _M_P_I___C_o_m_m │ │ │ │ │ _9_4_7 _m_p_i___c_o_m_m() const; │ │ │ │ │ 948 │ │ │ │ │ @@ -444,20 +444,20 @@ │ │ │ │ │ 971 */ │ │ │ │ │ 972 _D_e_c_l_E_x_c_e_p_t_i_o_n_4( │ │ │ │ │ 973 _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t, │ │ │ │ │ 974 _s_i_z_e___t_y_p_e, │ │ │ │ │ 975 _s_i_z_e___t_y_p_e, │ │ │ │ │ 976 _s_i_z_e___t_y_p_e, │ │ │ │ │ 977 _s_i_z_e___t_y_p_e, │ │ │ │ │ -978 << "You are trying to access element " << arg1 │ │ │ │ │ +978 << "You are trying to access element " << _a_r_g_1 │ │ │ │ │ 979 << " of a distributed vector, but this element is not stored " │ │ │ │ │ -980 << "on the current processor. Note: There are " << arg2 │ │ │ │ │ +980 << "on the current processor. Note: There are " << _a_r_g_2 │ │ │ │ │ 981 << " elements stored " │ │ │ │ │ -982 << "on the current processor from within the range [" << arg3 << ',' │ │ │ │ │ -983 << arg4 << "] but Trilinos vectors need not store contiguous " │ │ │ │ │ +982 << "on the current processor from within the range [" << _a_r_g_3 << ',' │ │ │ │ │ +983 << _a_r_g_4 << "] but Trilinos vectors need not store contiguous " │ │ │ │ │ 984 << "ranges on each processor, and not every element in " │ │ │ │ │ 985 << "this range may in fact be stored locally." │ │ │ │ │ 986 << "\n\n" │ │ │ │ │ 987 << "A common source for this kind of problem is that you " │ │ │ │ │ 988 << "are passing a 'fully distributed' vector into a function " │ │ │ │ │ 989 << "that needs read access to vector elements that correspond " │ │ │ │ │ 990 << "to degrees of freedom on ghost cells (or at least to " │ │ │ │ │ @@ -471,20 +471,20 @@ │ │ │ │ │ 1003 "must be provided. These index sets must be " │ │ │ │ │ 1004 "provided either when the vector is initialized " │ │ │ │ │ 1005 "or when compress is called. See the documentation " │ │ │ │ │ _1_0_0_6 "of compress() for more information."); │ │ │ │ │ 1007 │ │ │ │ │ 1013 _D_e_c_l_E_x_c_e_p_t_i_o_n_1(_E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r, │ │ │ │ │ 1014 int, │ │ │ │ │ -1015 << "An error with error number " << arg1 │ │ │ │ │ +1015 << "An error with error number " << _a_r_g_1 │ │ │ │ │ _1_0_1_6 << " occurred while calling a Trilinos function"); │ │ │ │ │ 1017 │ │ │ │ │ 1018 private: │ │ │ │ │ 1024 void │ │ │ │ │ -_1_0_2_5 _c_r_e_a_t_e___t_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n(const _I_n_d_e_x_S_e_t &source_index_set, │ │ │ │ │ +_1_0_2_5 _c_r_e_a_t_e___t_p_e_t_r_a___c_o_m_m___p_a_t_t_e_r_n(const _I_n_d_e_x_S_e_t &_s_o_u_r_c_e___i_n_d_e_x___s_e_t, │ │ │ │ │ 1026 const _M_P_I___C_o_m_m _m_p_i___c_o_m_m); │ │ │ │ │ 1027 │ │ │ │ │ _1_0_3_2 bool _c_o_m_p_r_e_s_s_e_d; │ │ │ │ │ 1033 │ │ │ │ │ _1_0_4_2 bool _h_a_s___g_h_o_s_t; │ │ │ │ │ 1043 │ │ │ │ │ _1_0_4_7 Teuchos::RCP> _v_e_c_t_o_r; │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__vector_8cc_source.html │ │ │ │ @@ -196,15 +196,15 @@ │ │ │ │
    88
    │ │ │ │
    89
    │ │ │ │
    │ │ │ │
    90 Vector::Vector(const IndexSet &parallel_partitioning,
    │ │ │ │
    91 const MPI_Comm communicator)
    │ │ │ │
    92 : Vector()
    │ │ │ │
    93 {
    │ │ │ │ -
    94 reinit(parallel_partitioning, communicator);
    │ │ │ │ +
    94 reinit(parallel_partitioning, communicator);
    │ │ │ │
    95 }
    │ │ │ │
    │ │ │ │
    96
    │ │ │ │
    97
    │ │ │ │
    98
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -232,23 +232,23 @@ │ │ │ │
    118
    │ │ │ │
    │ │ │ │
    119 Vector::Vector(const IndexSet &parallel_partitioner,
    │ │ │ │
    120 const Vector &v,
    │ │ │ │
    121 const MPI_Comm communicator)
    │ │ │ │
    122 : Vector()
    │ │ │ │
    123 {
    │ │ │ │ -
    124 AssertThrow(parallel_partitioner.size() ==
    │ │ │ │ + │ │ │ │
    125 static_cast<size_type>(
    │ │ │ │ │ │ │ │ -
    127 ExcDimensionMismatch(parallel_partitioner.size(),
    │ │ │ │ + │ │ │ │ │ │ │ │
    129 v.vector->Map())));
    │ │ │ │
    130
    │ │ │ │
    131 vector = std::make_unique<Epetra_FEVector>(
    │ │ │ │ -
    132 parallel_partitioner.make_trilinos_map(communicator, true));
    │ │ │ │ +
    132 parallel_partitioner.make_trilinos_map(communicator, true));
    │ │ │ │
    133 reinit(v, false, true);
    │ │ │ │
    134 }
    │ │ │ │
    │ │ │ │
    135
    │ │ │ │
    136
    │ │ │ │
    137
    │ │ │ │
    │ │ │ │ @@ -265,37 +265,37 @@ │ │ │ │
    147
    │ │ │ │
    148 void
    │ │ │ │
    │ │ │ │ │ │ │ │
    150 {
    │ │ │ │
    151 // When we clear the vector, reset the pointer and generate an empty
    │ │ │ │
    152 // vector.
    │ │ │ │ -
    153 Epetra_Map map(0, 0, Epetra_MpiComm(MPI_COMM_SELF));
    │ │ │ │ +
    153 Epetra_Map map(0, 0, Epetra_MpiComm(MPI_COMM_SELF));
    │ │ │ │
    154
    │ │ │ │
    155 has_ghosts = false;
    │ │ │ │
    156 vector = std::make_unique<Epetra_FEVector>(map);
    │ │ │ │ -
    157 last_action = Zero;
    │ │ │ │ + │ │ │ │
    158 }
    │ │ │ │
    │ │ │ │
    159
    │ │ │ │
    160
    │ │ │ │
    161
    │ │ │ │
    162 void
    │ │ │ │
    │ │ │ │
    163 Vector::reinit(const IndexSet &parallel_partitioner,
    │ │ │ │
    164 const MPI_Comm communicator,
    │ │ │ │
    165 const bool /*omit_zeroing_entries*/)
    │ │ │ │
    166 {
    │ │ │ │
    167 nonlocal_vector.reset();
    │ │ │ │
    168
    │ │ │ │
    169 const bool overlapping =
    │ │ │ │ -
    170 !parallel_partitioner.is_ascending_and_one_to_one(communicator);
    │ │ │ │ +
    170 !parallel_partitioner.is_ascending_and_one_to_one(communicator);
    │ │ │ │
    171
    │ │ │ │
    172 Epetra_Map map =
    │ │ │ │ -
    173 parallel_partitioner.make_trilinos_map(communicator, overlapping);
    │ │ │ │ +
    173 parallel_partitioner.make_trilinos_map(communicator, overlapping);
    │ │ │ │
    174
    │ │ │ │
    175 vector = std::make_unique<Epetra_FEVector>(map);
    │ │ │ │
    176
    │ │ │ │
    177 has_ghosts = vector->Map().UniqueGIDs() == false;
    │ │ │ │
    178
    │ │ │ │
    179 // If the IndexSets are overlapping, we don't really know
    │ │ │ │
    180 // which process owns what. So we decide that no process
    │ │ │ │ @@ -303,24 +303,24 @@ │ │ │ │
    182 // the locally owned elements is not allowed.
    │ │ │ │
    183 if (has_ghosts)
    │ │ │ │
    184 {
    │ │ │ │ │ │ │ │ │ │ │ │
    187 }
    │ │ │ │
    188 else
    │ │ │ │ -
    189 owned_elements = parallel_partitioner;
    │ │ │ │ + │ │ │ │
    190
    │ │ │ │
    191# ifdef DEBUG
    │ │ │ │ -
    192 const size_type n_elements_global =
    │ │ │ │ + │ │ │ │ │ │ │ │
    194
    │ │ │ │ -
    195 Assert(has_ghosts || n_elements_global == size(), ExcInternalError());
    │ │ │ │ + │ │ │ │
    196# endif
    │ │ │ │
    197
    │ │ │ │ -
    198 last_action = Zero;
    │ │ │ │ + │ │ │ │
    199 }
    │ │ │ │
    │ │ │ │
    200
    │ │ │ │
    201
    │ │ │ │
    202
    │ │ │ │
    203 void
    │ │ │ │
    │ │ │ │ @@ -329,80 +329,80 @@ │ │ │ │
    206 const bool allow_different_maps)
    │ │ │ │
    207 {
    │ │ │ │
    208 nonlocal_vector.reset();
    │ │ │ │
    209
    │ │ │ │
    210 // In case we do not allow to have different maps, this call means that
    │ │ │ │
    211 // we have to reset the vector. So clear the vector, initialize our map
    │ │ │ │
    212 // with the map in v, and generate the vector.
    │ │ │ │ -
    213 if (allow_different_maps == false)
    │ │ │ │ +
    213 if (allow_different_maps == false)
    │ │ │ │
    214 {
    │ │ │ │
    215 // check equality for MPI communicators: We can only choose the fast
    │ │ │ │
    216 // version in case the underlying Epetra_MpiComm object is the same,
    │ │ │ │
    217 // otherwise we might access an MPI_Comm object that has been
    │ │ │ │
    218 // deleted
    │ │ │ │ -
    219 const Epetra_MpiComm *my_comm =
    │ │ │ │ +
    219 const Epetra_MpiComm *my_comm =
    │ │ │ │
    220 dynamic_cast<const Epetra_MpiComm *>(&vector->Comm());
    │ │ │ │ -
    221 const Epetra_MpiComm *v_comm =
    │ │ │ │ +
    221 const Epetra_MpiComm *v_comm =
    │ │ │ │
    222 dynamic_cast<const Epetra_MpiComm *>(&v.vector->Comm());
    │ │ │ │ -
    223 const bool same_communicators =
    │ │ │ │ -
    224 my_comm != nullptr && v_comm != nullptr &&
    │ │ │ │ -
    225 my_comm->DataPtr() == v_comm->DataPtr();
    │ │ │ │ -
    226 if (!same_communicators ||
    │ │ │ │ +
    223 const bool same_communicators =
    │ │ │ │ +
    224 my_comm != nullptr && v_comm != nullptr &&
    │ │ │ │ +
    225 my_comm->DataPtr() == v_comm->DataPtr();
    │ │ │ │ +
    226 if (!same_communicators ||
    │ │ │ │
    227 vector->Map().SameAs(v.vector->Map()) == false)
    │ │ │ │
    228 {
    │ │ │ │
    229 vector = std::make_unique<Epetra_FEVector>(v.vector->Map());
    │ │ │ │ │ │ │ │ -
    231 last_action = Zero;
    │ │ │ │ + │ │ │ │ │ │ │ │
    233 }
    │ │ │ │ -
    234 else if (omit_zeroing_entries == false)
    │ │ │ │ +
    234 else if (omit_zeroing_entries == false)
    │ │ │ │
    235 {
    │ │ │ │
    236 // old and new vectors have exactly the same map, i.e. size and
    │ │ │ │
    237 // parallel distribution
    │ │ │ │ -
    238 int ierr;
    │ │ │ │ -
    239 ierr = vector->GlobalAssemble(last_action);
    │ │ │ │ -
    240 (void)ierr;
    │ │ │ │ -
    241 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    238 int ierr;
    │ │ │ │ +
    239 ierr = vector->GlobalAssemble(last_action);
    │ │ │ │ +
    240 (void)ierr;
    │ │ │ │ + │ │ │ │
    242
    │ │ │ │ -
    243 ierr = vector->PutScalar(0.0);
    │ │ │ │ -
    244 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    243 ierr = vector->PutScalar(0.0);
    │ │ │ │ + │ │ │ │
    245
    │ │ │ │ -
    246 last_action = Zero;
    │ │ │ │ + │ │ │ │
    247 }
    │ │ │ │
    248 }
    │ │ │ │
    249
    │ │ │ │
    250 // Otherwise, we have to check that the two vectors are already of the
    │ │ │ │
    251 // same size, create an object for the data exchange and then insert all
    │ │ │ │
    252 // the data. The first assertion is only a check whether the user knows
    │ │ │ │
    253 // what they are doing.
    │ │ │ │
    254 else
    │ │ │ │
    255 {
    │ │ │ │ -
    256 Assert(omit_zeroing_entries == false,
    │ │ │ │ + │ │ │ │ │ │ │ │
    258 "It is not possible to exchange data with the "
    │ │ │ │
    259 "option 'omit_zeroing_entries' set, which would not write "
    │ │ │ │
    260 "elements."));
    │ │ │ │
    261
    │ │ │ │
    262 AssertThrow(size() == v.size(),
    │ │ │ │ │ │ │ │
    264
    │ │ │ │ -
    265 Epetra_Import data_exchange(vector->Map(), v.vector->Map());
    │ │ │ │ +
    265 Epetra_Import data_exchange(vector->Map(), v.vector->Map());
    │ │ │ │
    266
    │ │ │ │ -
    267 const int ierr = vector->Import(*v.vector, data_exchange, Insert);
    │ │ │ │ -
    268 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    267 const int ierr = vector->Import(*v.vector, data_exchange, Insert);
    │ │ │ │ + │ │ │ │
    269
    │ │ │ │ -
    270 last_action = Insert;
    │ │ │ │ + │ │ │ │
    271 }
    │ │ │ │
    272# ifdef DEBUG
    │ │ │ │ -
    273 const Epetra_MpiComm *comm_ptr =
    │ │ │ │ +
    273 const Epetra_MpiComm *comm_ptr =
    │ │ │ │
    274 dynamic_cast<const Epetra_MpiComm *>(&(v.vector->Comm()));
    │ │ │ │ -
    275 Assert(comm_ptr != nullptr, ExcInternalError());
    │ │ │ │ -
    276 const size_type n_elements_global =
    │ │ │ │ -
    277 Utilities::MPI::sum(owned_elements.n_elements(), comm_ptr->Comm());
    │ │ │ │ -
    278 Assert(has_ghosts || n_elements_global == size(), ExcInternalError());
    │ │ │ │ +
    275 Assert(comm_ptr != nullptr, ExcInternalError());
    │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
    279# endif
    │ │ │ │
    280 }
    │ │ │ │
    │ │ │ │
    281
    │ │ │ │
    282
    │ │ │ │
    283
    │ │ │ │
    284 void
    │ │ │ │ @@ -417,155 +417,155 @@ │ │ │ │
    292 // we have to reset the vector. So clear the vector, initialize our map
    │ │ │ │
    293 // with the map in v, and generate the vector.
    │ │ │ │
    294 if (v.n_blocks() == 0)
    │ │ │ │
    295 return;
    │ │ │ │
    296
    │ │ │ │
    297 // create a vector that holds all the elements contained in the block
    │ │ │ │
    298 // vector. need to manually create an Epetra_Map.
    │ │ │ │ -
    299 size_type n_elements = 0, added_elements = 0, block_offset = 0;
    │ │ │ │ +
    299 size_type n_elements = 0, added_elements = 0, block_offset = 0;
    │ │ │ │
    300 for (size_type block = 0; block < v.n_blocks(); ++block)
    │ │ │ │
    301 n_elements += v.block(block).vector->Map().NumMyElements();
    │ │ │ │ -
    302 std::vector<TrilinosWrappers::types::int_type> global_ids(n_elements, -1);
    │ │ │ │ +
    302 std::vector<TrilinosWrappers::types::int_type> global_ids(n_elements, -1);
    │ │ │ │
    303 for (size_type block = 0; block < v.n_blocks(); ++block)
    │ │ │ │
    304 {
    │ │ │ │ -
    305 TrilinosWrappers::types::int_type *glob_elements =
    │ │ │ │ + │ │ │ │ │ │ │ │
    307 v.block(block).trilinos_partitioner());
    │ │ │ │ -
    308 size_type vector_size = v.block(block).vector->Map().NumMyElements();
    │ │ │ │ -
    309 for (size_type i = 0; i < vector_size; ++i)
    │ │ │ │ -
    310 global_ids[added_elements++] = glob_elements[i] + block_offset;
    │ │ │ │ +
    308 size_type vector_size = v.block(block).vector->Map().NumMyElements();
    │ │ │ │ +
    309 for (size_type i = 0; i < vector_size; ++i)
    │ │ │ │ + │ │ │ │
    311 owned_elements.add_indices(v.block(block).owned_elements,
    │ │ │ │ -
    312 block_offset);
    │ │ │ │ -
    313 block_offset += v.block(block).size();
    │ │ │ │ + │ │ │ │ +
    313 block_offset += v.block(block).size();
    │ │ │ │
    314 }
    │ │ │ │
    315
    │ │ │ │ -
    316 Assert(n_elements == added_elements, ExcInternalError());
    │ │ │ │ -
    317 Epetra_Map new_map(v.size(),
    │ │ │ │ +
    316 Assert(n_elements == added_elements, ExcInternalError());
    │ │ │ │ +
    317 Epetra_Map new_map(v.size(),
    │ │ │ │
    318 n_elements,
    │ │ │ │ -
    319 global_ids.data(),
    │ │ │ │ +
    319 global_ids.data(),
    │ │ │ │
    320 0,
    │ │ │ │
    321 v.block(0).trilinos_partitioner().Comm());
    │ │ │ │
    322
    │ │ │ │ -
    323 auto actual_vec = std::make_unique<Epetra_FEVector>(new_map);
    │ │ │ │ +
    323 auto actual_vec = std::make_unique<Epetra_FEVector>(new_map);
    │ │ │ │
    324
    │ │ │ │
    325 TrilinosScalar *entries = (*actual_vec)[0];
    │ │ │ │
    326 for (size_type block = 0; block < v.n_blocks(); ++block)
    │ │ │ │
    327 {
    │ │ │ │
    328 v.block(block).trilinos_vector().ExtractCopy(entries, 0);
    │ │ │ │
    329 entries += v.block(block).vector->Map().NumMyElements();
    │ │ │ │
    330 }
    │ │ │ │
    331
    │ │ │ │
    332 if (import_data == true)
    │ │ │ │
    333 {
    │ │ │ │ │ │ │ │ -
    335 *actual_vec)) == v.size(),
    │ │ │ │ +
    335 *actual_vec)) == v.size(),
    │ │ │ │ │ │ │ │ -
    337 *actual_vec),
    │ │ │ │ +
    337 *actual_vec),
    │ │ │ │
    338 v.size()));
    │ │ │ │
    339
    │ │ │ │ -
    340 Epetra_Import data_exchange(vector->Map(), actual_vec->Map());
    │ │ │ │ +
    340 Epetra_Import data_exchange(vector->Map(), actual_vec->Map());
    │ │ │ │
    341
    │ │ │ │ -
    342 const int ierr = vector->Import(*actual_vec, data_exchange, Insert);
    │ │ │ │ -
    343 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    342 const int ierr = vector->Import(*actual_vec, data_exchange, Insert);
    │ │ │ │ + │ │ │ │
    344
    │ │ │ │ -
    345 last_action = Insert;
    │ │ │ │ + │ │ │ │
    346 }
    │ │ │ │
    347 else
    │ │ │ │ -
    348 vector = std::move(actual_vec);
    │ │ │ │ +
    348 vector = std::move(actual_vec);
    │ │ │ │
    349# ifdef DEBUG
    │ │ │ │ -
    350 const Epetra_MpiComm *comm_ptr =
    │ │ │ │ +
    350 const Epetra_MpiComm *comm_ptr =
    │ │ │ │
    351 dynamic_cast<const Epetra_MpiComm *>(&(vector->Comm()));
    │ │ │ │ -
    352 Assert(comm_ptr != nullptr, ExcInternalError());
    │ │ │ │ -
    353 const size_type n_elements_global =
    │ │ │ │ -
    354 Utilities::MPI::sum(owned_elements.n_elements(), comm_ptr->Comm());
    │ │ │ │ +
    352 Assert(comm_ptr != nullptr, ExcInternalError());
    │ │ │ │ + │ │ │ │ + │ │ │ │
    355
    │ │ │ │ -
    356 Assert(has_ghosts || n_elements_global == size(), ExcInternalError());
    │ │ │ │ + │ │ │ │
    357# endif
    │ │ │ │
    358 }
    │ │ │ │
    │ │ │ │
    359
    │ │ │ │
    360
    │ │ │ │
    361
    │ │ │ │
    362 void
    │ │ │ │
    │ │ │ │
    363 Vector::reinit(const IndexSet &locally_owned_entries,
    │ │ │ │
    364 const IndexSet &ghost_entries,
    │ │ │ │
    365 const MPI_Comm communicator,
    │ │ │ │
    366 const bool vector_writable)
    │ │ │ │
    367 {
    │ │ │ │
    368 nonlocal_vector.reset();
    │ │ │ │ -
    369 owned_elements = locally_owned_entries;
    │ │ │ │ -
    370 if (vector_writable == false)
    │ │ │ │ + │ │ │ │ +
    370 if (vector_writable == false)
    │ │ │ │
    371 {
    │ │ │ │ -
    372 IndexSet parallel_partitioner = locally_owned_entries;
    │ │ │ │ -
    373 parallel_partitioner.add_indices(ghost_entries);
    │ │ │ │ + │ │ │ │ + │ │ │ │
    374 Epetra_Map map =
    │ │ │ │ -
    375 parallel_partitioner.make_trilinos_map(communicator, true);
    │ │ │ │ +
    375 parallel_partitioner.make_trilinos_map(communicator, true);
    │ │ │ │
    376 vector = std::make_unique<Epetra_FEVector>(map);
    │ │ │ │
    377 }
    │ │ │ │
    378 else
    │ │ │ │
    379 {
    │ │ │ │
    380 Epetra_Map map =
    │ │ │ │ -
    381 locally_owned_entries.make_trilinos_map(communicator, true);
    │ │ │ │ +
    381 locally_owned_entries.make_trilinos_map(communicator, true);
    │ │ │ │
    382 Assert(map.IsOneToOne(),
    │ │ │ │
    383 ExcMessage("A writable vector must not have ghost entries in "
    │ │ │ │
    384 "its parallel partitioning"));
    │ │ │ │
    385
    │ │ │ │
    386 if (vector->Map().SameAs(map) == false)
    │ │ │ │
    387 vector = std::make_unique<Epetra_FEVector>(map);
    │ │ │ │
    388 else
    │ │ │ │
    389 {
    │ │ │ │ -
    390 const int ierr = vector->PutScalar(0.);
    │ │ │ │ -
    391 (void)ierr;
    │ │ │ │ -
    392 Assert(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    390 const int ierr = vector->PutScalar(0.);
    │ │ │ │ +
    391 (void)ierr;
    │ │ │ │ + │ │ │ │
    393 }
    │ │ │ │
    394
    │ │ │ │ -
    395 IndexSet nonlocal_entries(ghost_entries);
    │ │ │ │ -
    396 nonlocal_entries.subtract_set(locally_owned_entries);
    │ │ │ │ + │ │ │ │ + │ │ │ │
    397 if (Utilities::MPI::n_mpi_processes(communicator) > 1)
    │ │ │ │
    398 {
    │ │ │ │ -
    399 Epetra_Map nonlocal_map =
    │ │ │ │ -
    400 nonlocal_entries.make_trilinos_map(communicator, true);
    │ │ │ │ +
    399 Epetra_Map nonlocal_map =
    │ │ │ │ +
    400 nonlocal_entries.make_trilinos_map(communicator, true);
    │ │ │ │ │ │ │ │ -
    402 std::make_unique<Epetra_MultiVector>(nonlocal_map, 1);
    │ │ │ │ +
    402 std::make_unique<Epetra_MultiVector>(nonlocal_map, 1);
    │ │ │ │
    403 }
    │ │ │ │
    404 }
    │ │ │ │
    405
    │ │ │ │
    406 has_ghosts = vector->Map().UniqueGIDs() == false;
    │ │ │ │
    407
    │ │ │ │ -
    408 last_action = Zero;
    │ │ │ │ + │ │ │ │
    409
    │ │ │ │
    410# ifdef DEBUG
    │ │ │ │ -
    411 const size_type n_elements_global =
    │ │ │ │ + │ │ │ │ │ │ │ │
    413
    │ │ │ │ -
    414 Assert(has_ghosts || n_elements_global == size(), ExcInternalError());
    │ │ │ │ + │ │ │ │
    415# endif
    │ │ │ │
    416 }
    │ │ │ │
    │ │ │ │
    417
    │ │ │ │
    418
    │ │ │ │
    419
    │ │ │ │
    420 void
    │ │ │ │
    │ │ │ │ │ │ │ │
    422 const std::shared_ptr<const Utilities::MPI::Partitioner> &partitioner,
    │ │ │ │
    423 const bool make_ghosted,
    │ │ │ │
    424 const bool vector_writable)
    │ │ │ │
    425 {
    │ │ │ │ -
    426 if (make_ghosted)
    │ │ │ │ +
    426 if (make_ghosted)
    │ │ │ │
    427 {
    │ │ │ │
    428 Assert(partitioner->ghost_indices_initialized(),
    │ │ │ │
    429 ExcMessage("You asked to create a ghosted vector, but the "
    │ │ │ │
    430 "partitioner does not provide ghost indices."));
    │ │ │ │
    431
    │ │ │ │
    432 this->reinit(partitioner->locally_owned_range(),
    │ │ │ │
    433 partitioner->ghost_indices(),
    │ │ │ │
    434 partitioner->get_mpi_communicator(),
    │ │ │ │ -
    435 vector_writable);
    │ │ │ │ + │ │ │ │
    436 }
    │ │ │ │
    437 else
    │ │ │ │
    438 {
    │ │ │ │
    439 this->reinit(partitioner->locally_owned_range(),
    │ │ │ │
    440 partitioner->get_mpi_communicator());
    │ │ │ │
    441 }
    │ │ │ │
    442 }
    │ │ │ │ @@ -578,20 +578,20 @@ │ │ │ │ │ │ │ │
    448 {
    │ │ │ │
    449 Assert(vector.get() != nullptr,
    │ │ │ │
    450 ExcMessage("Vector is not constructed properly."));
    │ │ │ │
    451
    │ │ │ │
    452 // check equality for MPI communicators to avoid accessing a possibly
    │ │ │ │
    453 // invalid MPI_Comm object
    │ │ │ │ -
    454 const Epetra_MpiComm *my_comm =
    │ │ │ │ +
    454 const Epetra_MpiComm *my_comm =
    │ │ │ │
    455 dynamic_cast<const Epetra_MpiComm *>(&vector->Comm());
    │ │ │ │ -
    456 const Epetra_MpiComm *v_comm =
    │ │ │ │ +
    456 const Epetra_MpiComm *v_comm =
    │ │ │ │
    457 dynamic_cast<const Epetra_MpiComm *>(&v.vector->Comm());
    │ │ │ │ -
    458 const bool same_communicators = my_comm != nullptr && v_comm != nullptr &&
    │ │ │ │ -
    459 my_comm->DataPtr() == v_comm->DataPtr();
    │ │ │ │ +
    458 const bool same_communicators = my_comm != nullptr && v_comm != nullptr &&
    │ │ │ │ +
    459 my_comm->DataPtr() == v_comm->DataPtr();
    │ │ │ │
    460 // Need to ask MPI whether the communicators are the same. We would like
    │ │ │ │
    461 // to use the following checks but currently we cannot make sure the
    │ │ │ │
    462 // memory of my_comm is not stale from some MPI_Comm_free
    │ │ │ │
    463 // somewhere. This can happen when a vector lives in GrowingVectorMemory
    │ │ │ │
    464 // data structures. Thus, the following code is commented out.
    │ │ │ │
    465 //
    │ │ │ │
    466 // if (my_comm != nullptr &&
    │ │ │ │ @@ -610,21 +610,21 @@ │ │ │ │
    479 // same_communicators = true;
    │ │ │ │
    480 // }
    │ │ │ │
    481
    │ │ │ │
    482 // distinguish three cases. First case: both vectors have the same
    │ │ │ │
    483 // layout (just need to copy the local data, not reset the memory and
    │ │ │ │
    484 // the underlying Epetra_Map). The third case means that we have to
    │ │ │ │
    485 // rebuild the calling vector.
    │ │ │ │ -
    486 if (same_communicators && v.vector->Map().SameAs(vector->Map()))
    │ │ │ │ +
    486 if (same_communicators && v.vector->Map().SameAs(vector->Map()))
    │ │ │ │
    487 {
    │ │ │ │
    488 *vector = *v.vector;
    │ │ │ │
    489 if (v.nonlocal_vector.get() != nullptr)
    │ │ │ │ │ │ │ │
    491 std::make_unique<Epetra_MultiVector>(v.nonlocal_vector->Map(), 1);
    │ │ │ │ -
    492 last_action = Zero;
    │ │ │ │ + │ │ │ │
    493 }
    │ │ │ │
    494 // Second case: vectors have the same global
    │ │ │ │
    495 // size, but different parallel layouts (and
    │ │ │ │
    496 // one of them a one-to-one mapping). Then we
    │ │ │ │
    497 // can call the import/export functionality.
    │ │ │ │
    498 else if (size() == v.size() &&
    │ │ │ │
    499 (v.vector->Map().UniqueGIDs() || vector->Map().UniqueGIDs()))
    │ │ │ │ @@ -632,15 +632,15 @@ │ │ │ │
    501 reinit(v, false, true);
    │ │ │ │
    502 }
    │ │ │ │
    503 // Third case: Vectors do not have the same
    │ │ │ │
    504 // size.
    │ │ │ │
    505 else
    │ │ │ │
    506 {
    │ │ │ │
    507 vector = std::make_unique<Epetra_FEVector>(*v.vector);
    │ │ │ │ -
    508 last_action = Zero;
    │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │
    511 }
    │ │ │ │
    512
    │ │ │ │
    513 if (v.nonlocal_vector.get() != nullptr)
    │ │ │ │ │ │ │ │
    515 std::make_unique<Epetra_MultiVector>(v.nonlocal_vector->Map(), 1);
    │ │ │ │ @@ -697,20 +697,20 @@ │ │ │ │
    560 ExcMessage("The input vector has overlapping data, "
    │ │ │ │
    561 "which is not allowed."));
    │ │ │ │
    562
    │ │ │ │
    563 if (vector->Map().SameAs(m.trilinos_matrix().ColMap()) == false)
    │ │ │ │
    564 vector =
    │ │ │ │
    565 std::make_unique<Epetra_FEVector>(m.trilinos_matrix().ColMap());
    │ │ │ │
    566
    │ │ │ │ -
    567 Epetra_Import data_exchange(vector->Map(), v.vector->Map());
    │ │ │ │ -
    568 const int ierr = vector->Import(*v.vector, data_exchange, Insert);
    │ │ │ │ +
    567 Epetra_Import data_exchange(vector->Map(), v.vector->Map());
    │ │ │ │ +
    568 const int ierr = vector->Import(*v.vector, data_exchange, Insert);
    │ │ │ │
    569
    │ │ │ │ -
    570 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ + │ │ │ │
    571
    │ │ │ │ -
    572 last_action = Insert;
    │ │ │ │ + │ │ │ │
    573 }
    │ │ │ │
    │ │ │ │
    574
    │ │ │ │
    575
    │ │ │ │
    576 void
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -725,20 +725,20 @@ │ │ │ │
    586 // this class will (hopefully) be retired eventually.
    │ │ │ │ │ │ │ │ │ │ │ │
    589
    │ │ │ │
    590 if (operation == VectorOperation::insert)
    │ │ │ │
    591 {
    │ │ │ │
    592 for (const auto idx : this->locally_owned_elements())
    │ │ │ │ -
    593 (*this)[idx] = rwv[idx];
    │ │ │ │ +
    593 (*this)[idx] = rwv[idx];
    │ │ │ │
    594 }
    │ │ │ │
    595 else if (operation == VectorOperation::add)
    │ │ │ │
    596 {
    │ │ │ │
    597 for (const auto idx : this->locally_owned_elements())
    │ │ │ │ -
    598 (*this)[idx] += rwv[idx];
    │ │ │ │ +
    598 (*this)[idx] += rwv[idx];
    │ │ │ │
    599 }
    │ │ │ │
    600 else
    │ │ │ │ │ │ │ │
    602
    │ │ │ │
    603 this->compress(operation);
    │ │ │ │
    604 }
    │ │ │ │
    │ │ │ │ @@ -758,93 +758,93 @@ │ │ │ │
    617
    │ │ │ │
    618 // Select which mode to send to Trilinos. Note that we use last_action if
    │ │ │ │
    619 // available and ignore what the user tells us to detect wrongly mixed
    │ │ │ │
    620 // operations. Typically given_last_action is only used on machines that
    │ │ │ │
    621 // do not execute an operation (because they have no own cells for
    │ │ │ │
    622 // example).
    │ │ │ │
    623 Epetra_CombineMode mode = last_action;
    │ │ │ │ -
    624 if (last_action == Zero)
    │ │ │ │ +
    624 if (last_action == Zero)
    │ │ │ │
    625 {
    │ │ │ │ -
    626 if (given_last_action == VectorOperation::add)
    │ │ │ │ -
    627 mode = Add;
    │ │ │ │ -
    628 else if (given_last_action == VectorOperation::insert)
    │ │ │ │ -
    629 mode = Insert;
    │ │ │ │ + │ │ │ │ +
    627 mode = Add;
    │ │ │ │ + │ │ │ │ +
    629 mode = Insert;
    │ │ │ │
    630 else
    │ │ │ │
    631 Assert(
    │ │ │ │
    632 false,
    │ │ │ │ │ │ │ │
    634 "compress() can only be called with VectorOperation add, insert, or unknown"));
    │ │ │ │
    635 }
    │ │ │ │
    636 else
    │ │ │ │
    637 {
    │ │ │ │
    638 Assert(
    │ │ │ │ -
    639 ((last_action == Add) &&
    │ │ │ │ -
    640 (given_last_action == VectorOperation::add)) ||
    │ │ │ │ -
    641 ((last_action == Insert) &&
    │ │ │ │ -
    642 (given_last_action == VectorOperation::insert)),
    │ │ │ │ +
    639 ((last_action == Add) &&
    │ │ │ │ + │ │ │ │ +
    641 ((last_action == Insert) &&
    │ │ │ │ + │ │ │ │ │ │ │ │
    644 "The last operation on the Vector and the given last action in the compress() call do not agree!"));
    │ │ │ │
    645 }
    │ │ │ │
    646
    │ │ │ │
    647
    │ │ │ │
    648# ifdef DEBUG
    │ │ │ │
    649 // check that every process has decided to use the same mode. This will
    │ │ │ │
    650 // otherwise result in undefined behavior in the call to
    │ │ │ │
    651 // GlobalAssemble().
    │ │ │ │ -
    652 const double double_mode = mode;
    │ │ │ │ -
    653 const Epetra_MpiComm *comm_ptr =
    │ │ │ │ +
    652 const double double_mode = mode;
    │ │ │ │ +
    653 const Epetra_MpiComm *comm_ptr =
    │ │ │ │
    654 dynamic_cast<const Epetra_MpiComm *>(&(trilinos_partitioner().Comm()));
    │ │ │ │ -
    655 Assert(comm_ptr != nullptr, ExcInternalError());
    │ │ │ │ +
    655 Assert(comm_ptr != nullptr, ExcInternalError());
    │ │ │ │
    656
    │ │ │ │ -
    657 const Utilities::MPI::MinMaxAvg result =
    │ │ │ │ -
    658 Utilities::MPI::min_max_avg(double_mode, comm_ptr->GetMpiComm());
    │ │ │ │ -
    659 Assert(result.max == result.min,
    │ │ │ │ + │ │ │ │ + │ │ │ │ +
    659 Assert(result.max == result.min,
    │ │ │ │ │ │ │ │
    661 "Not all processors agree whether the last operation on "
    │ │ │ │
    662 "this vector was an addition or a set operation. This will "
    │ │ │ │
    663 "prevent the compress() operation from succeeding."));
    │ │ │ │
    664
    │ │ │ │
    665# endif
    │ │ │ │
    666
    │ │ │ │
    667 // Now pass over the information about what we did last to the vector.
    │ │ │ │ -
    668 if (nonlocal_vector.get() == nullptr || mode != Add)
    │ │ │ │ +
    668 if (nonlocal_vector.get() == nullptr || mode != Add)
    │ │ │ │
    669 {
    │ │ │ │ -
    670 const auto ierr = vector->GlobalAssemble(mode);
    │ │ │ │ -
    671 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    670 const auto ierr = vector->GlobalAssemble(mode);
    │ │ │ │ + │ │ │ │
    672 }
    │ │ │ │
    673 else
    │ │ │ │
    674 {
    │ │ │ │ -
    675 Epetra_Export exporter(nonlocal_vector->Map(), vector->Map());
    │ │ │ │ +
    675 Epetra_Export exporter(nonlocal_vector->Map(), vector->Map());
    │ │ │ │
    676
    │ │ │ │ -
    677 int ierr = vector->Export(*nonlocal_vector, exporter, mode);
    │ │ │ │ -
    678 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    677 int ierr = vector->Export(*nonlocal_vector, exporter, mode);
    │ │ │ │ + │ │ │ │
    679
    │ │ │ │ -
    680 ierr = nonlocal_vector->PutScalar(0.);
    │ │ │ │ -
    681 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    680 ierr = nonlocal_vector->PutScalar(0.);
    │ │ │ │ + │ │ │ │
    682 }
    │ │ │ │ -
    683 last_action = Zero;
    │ │ │ │ + │ │ │ │
    684
    │ │ │ │
    685 compressed = true;
    │ │ │ │
    686 }
    │ │ │ │
    │ │ │ │
    687
    │ │ │ │
    688
    │ │ │ │
    689
    │ │ │ │ │ │ │ │
    │ │ │ │
    691 Vector::operator()(const size_type index) const
    │ │ │ │
    692 {
    │ │ │ │
    693 // Extract local indices in the vector.
    │ │ │ │ -
    694 TrilinosWrappers::types::int_type trilinos_i = vector->Map().LID(
    │ │ │ │ + │ │ │ │
    695 static_cast<TrilinosWrappers::types::int_type>(index));
    │ │ │ │
    696 TrilinosScalar value = 0.;
    │ │ │ │
    697
    │ │ │ │
    698 // If the element is not present on the current processor, we can't
    │ │ │ │
    699 // continue. This is the main difference to the el() function.
    │ │ │ │ -
    700 if (trilinos_i == -1)
    │ │ │ │ +
    700 if (trilinos_i == -1)
    │ │ │ │
    701 {
    │ │ │ │
    702# ifndef DEAL_II_WITH_64BIT_INDICES
    │ │ │ │
    703 Assert(false,
    │ │ │ │ │ │ │ │
    705 vector->Map().NumMyElements(),
    │ │ │ │
    706 vector->Map().MinMyGID(),
    │ │ │ │
    707 vector->Map().MaxMyGID()));
    │ │ │ │ @@ -853,52 +853,52 @@ │ │ │ │ │ │ │ │
    711 vector->Map().NumMyElements(),
    │ │ │ │
    712 vector->Map().MinMyGID64(),
    │ │ │ │
    713 vector->Map().MaxMyGID64()));
    │ │ │ │
    714# endif
    │ │ │ │
    715 }
    │ │ │ │
    716 else
    │ │ │ │ -
    717 value = (*vector)[0][trilinos_i];
    │ │ │ │ +
    717 value = (*vector)[0][trilinos_i];
    │ │ │ │
    718
    │ │ │ │
    719 return value;
    │ │ │ │
    720 }
    │ │ │ │
    │ │ │ │
    721
    │ │ │ │
    722
    │ │ │ │
    723
    │ │ │ │
    724 void
    │ │ │ │
    │ │ │ │
    725 Vector::add(const Vector &v, const bool allow_different_maps)
    │ │ │ │
    726 {
    │ │ │ │ -
    727 if (allow_different_maps == false)
    │ │ │ │ +
    727 if (allow_different_maps == false)
    │ │ │ │
    728 *this += v;
    │ │ │ │
    729 else
    │ │ │ │
    730 {
    │ │ │ │ │ │ │ │
    732 AssertThrow(size() == v.size(),
    │ │ │ │ │ │ │ │
    734
    │ │ │ │
    735# if DEAL_II_TRILINOS_VERSION_GTE(11, 11, 0)
    │ │ │ │ -
    736 Epetra_Import data_exchange(vector->Map(), v.vector->Map());
    │ │ │ │ -
    737 int ierr =
    │ │ │ │ -
    738 vector->Import(*v.vector, data_exchange, Epetra_AddLocalAlso);
    │ │ │ │ -
    739 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    740 last_action = Add;
    │ │ │ │ +
    736 Epetra_Import data_exchange(vector->Map(), v.vector->Map());
    │ │ │ │ +
    737 int ierr =
    │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
    741# else
    │ │ │ │
    742 // In versions older than 11.11 the Import function is broken for
    │ │ │ │
    743 // adding Hence, we provide a workaround in this case
    │ │ │ │
    744
    │ │ │ │ -
    745 Epetra_MultiVector dummy(vector->Map(), 1, false);
    │ │ │ │ -
    746 Epetra_Import data_exchange(dummy.Map(), v.vector->Map());
    │ │ │ │ +
    745 Epetra_MultiVector dummy(vector->Map(), 1, false);
    │ │ │ │ +
    746 Epetra_Import data_exchange(dummy.Map(), v.vector->Map());
    │ │ │ │
    747
    │ │ │ │ -
    748 int ierr = dummy.Import(*v.vector, data_exchange, Insert);
    │ │ │ │ -
    749 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    748 int ierr = dummy.Import(*v.vector, data_exchange, Insert);
    │ │ │ │ + │ │ │ │
    750
    │ │ │ │ -
    751 ierr = vector->Update(1.0, dummy, 1.0);
    │ │ │ │ -
    752 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    751 ierr = vector->Update(1.0, dummy, 1.0);
    │ │ │ │ + │ │ │ │
    753# endif
    │ │ │ │
    754 }
    │ │ │ │
    755 }
    │ │ │ │
    │ │ │ │
    756
    │ │ │ │
    757
    │ │ │ │
    758
    │ │ │ │ @@ -906,16 +906,16 @@ │ │ │ │
    │ │ │ │ │ │ │ │
    761 {
    │ │ │ │
    762 Assert(size() == v.size(), ExcDimensionMismatch(size(), v.size()));
    │ │ │ │
    763 if (vector->Map().NumMyElements() != v.vector->Map().NumMyElements())
    │ │ │ │
    764 return false;
    │ │ │ │
    765
    │ │ │ │ -
    766 size_type vector_size = vector->Map().NumMyElements();
    │ │ │ │ -
    767 for (size_type i = 0; i < vector_size; ++i)
    │ │ │ │ +
    766 size_type vector_size = vector->Map().NumMyElements();
    │ │ │ │ +
    767 for (size_type i = 0; i < vector_size; ++i)
    │ │ │ │
    768 if ((*(v.vector))[0][i] != (*vector)[0][i])
    │ │ │ │
    769 return false;
    │ │ │ │
    770
    │ │ │ │
    771 return true;
    │ │ │ │
    772 }
    │ │ │ │
    │ │ │ │
    773
    │ │ │ │ @@ -935,108 +935,108 @@ │ │ │ │
    785
    │ │ │ │
    786 bool
    │ │ │ │
    │ │ │ │ │ │ │ │
    788 {
    │ │ │ │
    789 // get a representation of the vector and
    │ │ │ │
    790 // loop over all the elements
    │ │ │ │ -
    791 TrilinosScalar *start_ptr = (*vector)[0];
    │ │ │ │ -
    792 const TrilinosScalar *ptr = start_ptr,
    │ │ │ │ -
    793 *eptr = start_ptr + vector->Map().NumMyElements();
    │ │ │ │ +
    791 TrilinosScalar *start_ptr = (*vector)[0];
    │ │ │ │ +
    792 const TrilinosScalar *ptr = start_ptr,
    │ │ │ │ +
    793 *eptr = start_ptr + vector->Map().NumMyElements();
    │ │ │ │
    794 unsigned int flag = 0;
    │ │ │ │ -
    795 while (ptr != eptr)
    │ │ │ │ +
    795 while (ptr != eptr)
    │ │ │ │
    796 {
    │ │ │ │
    797 if (*ptr != 0)
    │ │ │ │
    798 {
    │ │ │ │
    799 flag = 1;
    │ │ │ │
    800 break;
    │ │ │ │
    801 }
    │ │ │ │
    802 ++ptr;
    │ │ │ │
    803 }
    │ │ │ │
    804
    │ │ │ │
    805 // in parallel, check that the vector
    │ │ │ │
    806 // is zero on _all_ processors.
    │ │ │ │
    807 const Epetra_MpiComm *mpi_comm =
    │ │ │ │
    808 dynamic_cast<const Epetra_MpiComm *>(&vector->Map().Comm());
    │ │ │ │
    809 Assert(mpi_comm != nullptr, ExcInternalError());
    │ │ │ │ -
    810 unsigned int num_nonzero = Utilities::MPI::sum(flag, mpi_comm->Comm());
    │ │ │ │ -
    811 return num_nonzero == 0;
    │ │ │ │ +
    810 unsigned int num_nonzero = Utilities::MPI::sum(flag, mpi_comm->Comm());
    │ │ │ │ +
    811 return num_nonzero == 0;
    │ │ │ │
    812 }
    │ │ │ │
    │ │ │ │
    813
    │ │ │ │
    814
    │ │ │ │
    815
    │ │ │ │
    816 bool
    │ │ │ │
    │ │ │ │ │ │ │ │
    818 {
    │ │ │ │
    819 // get a representation of the vector and
    │ │ │ │
    820 // loop over all the elements
    │ │ │ │ -
    821 TrilinosScalar *start_ptr = (*vector)[0];
    │ │ │ │ -
    822 const TrilinosScalar *ptr = start_ptr,
    │ │ │ │ -
    823 *eptr = start_ptr + vector->Map().NumMyElements();
    │ │ │ │ +
    821 TrilinosScalar *start_ptr = (*vector)[0];
    │ │ │ │ +
    822 const TrilinosScalar *ptr = start_ptr,
    │ │ │ │ +
    823 *eptr = start_ptr + vector->Map().NumMyElements();
    │ │ │ │
    824 unsigned int flag = 0;
    │ │ │ │ -
    825 while (ptr != eptr)
    │ │ │ │ +
    825 while (ptr != eptr)
    │ │ │ │
    826 {
    │ │ │ │
    827 if (*ptr < 0.0)
    │ │ │ │
    828 {
    │ │ │ │
    829 flag = 1;
    │ │ │ │
    830 break;
    │ │ │ │
    831 }
    │ │ │ │
    832 ++ptr;
    │ │ │ │
    833 }
    │ │ │ │
    834
    │ │ │ │
    835 // in parallel, check that the vector
    │ │ │ │
    836 // is zero on _all_ processors.
    │ │ │ │ -
    837 const auto max_n_negative =
    │ │ │ │ +
    837 const auto max_n_negative =
    │ │ │ │ │ │ │ │ -
    839 return max_n_negative == 0;
    │ │ │ │ +
    839 return max_n_negative == 0;
    │ │ │ │
    840 }
    │ │ │ │
    │ │ │ │
    841
    │ │ │ │
    842
    │ │ │ │
    843
    │ │ │ │
    844 void
    │ │ │ │
    │ │ │ │
    845 Vector::print(std::ostream &out,
    │ │ │ │
    846 const unsigned int precision,
    │ │ │ │
    847 const bool scientific,
    │ │ │ │
    848 const bool across) const
    │ │ │ │
    849 {
    │ │ │ │
    850 AssertThrow(out.fail() == false, ExcIO());
    │ │ │ │ -
    851 boost::io::ios_flags_saver restore_flags(out);
    │ │ │ │ +
    851 boost::io::ios_flags_saver restore_flags(out);
    │ │ │ │
    852
    │ │ │ │
    853
    │ │ │ │
    854 out.precision(precision);
    │ │ │ │
    855 if (scientific)
    │ │ │ │
    856 out.setf(std::ios::scientific, std::ios::floatfield);
    │ │ │ │
    857 else
    │ │ │ │
    858 out.setf(std::ios::fixed, std::ios::floatfield);
    │ │ │ │
    859
    │ │ │ │ -
    860 size_type vector_size = vector->Map().NumMyElements();
    │ │ │ │ -
    861 if (size() != vector_size)
    │ │ │ │ +
    860 size_type vector_size = vector->Map().NumMyElements();
    │ │ │ │ +
    861 if (size() != vector_size)
    │ │ │ │
    862 {
    │ │ │ │ -
    863 auto global_id = [&](const size_type index) {
    │ │ │ │ +
    863 auto global_id = [&](const size_type index) {
    │ │ │ │
    864 return gid(vector->Map(), index);
    │ │ │ │
    865 };
    │ │ │ │
    866 out << "size:" << size()
    │ │ │ │
    867 << " locally_owned_size:" << vector->Map().NumMyElements() << " :"
    │ │ │ │
    868 << std::endl;
    │ │ │ │ -
    869 for (size_type i = 0; i < vector_size; ++i)
    │ │ │ │ -
    870 out << "[" << global_id(i) << "]: " << (*(vector))[0][i]
    │ │ │ │ +
    869 for (size_type i = 0; i < vector_size; ++i)
    │ │ │ │ +
    870 out << "[" << global_id(i) << "]: " << (*(vector))[0][i]
    │ │ │ │
    871 << std::endl;
    │ │ │ │
    872 }
    │ │ │ │
    873 else
    │ │ │ │
    874 {
    │ │ │ │
    875 TrilinosScalar *val;
    │ │ │ │ -
    876 int leading_dimension;
    │ │ │ │ -
    877 int ierr = vector->ExtractView(&val, &leading_dimension);
    │ │ │ │ + │ │ │ │ +
    877 int ierr = vector->ExtractView(&val, &leading_dimension);
    │ │ │ │
    878
    │ │ │ │ -
    879 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ -
    880 if (across)
    │ │ │ │ + │ │ │ │ +
    880 if (across)
    │ │ │ │
    881 for (size_type i = 0; i < size(); ++i)
    │ │ │ │
    882 out << static_cast<double>(val[i]) << ' ';
    │ │ │ │
    883 else
    │ │ │ │
    884 for (size_type i = 0; i < size(); ++i)
    │ │ │ │
    885 out << static_cast<double>(val[i]) << std::endl;
    │ │ │ │
    886 out << std::endl;
    │ │ │ │
    887 }
    │ │ │ │ @@ -1087,21 +1087,17 @@ │ │ │ │ │ │ │ │
    928
    │ │ │ │
    929#endif // DEAL_II_WITH_TRILINOS
    │ │ │ │
    virtual size_type size() const override
    │ │ │ │
    unsigned int n_blocks() const
    │ │ │ │
    BlockType & block(const unsigned int i)
    │ │ │ │ │ │ │ │ -
    bool is_ascending_and_one_to_one(const MPI_Comm communicator) const
    │ │ │ │ -
    size_type size() const
    Definition index_set.h:1776
    │ │ │ │
    size_type n_elements() const
    Definition index_set.h:1934
    │ │ │ │
    void set_size(const size_type size)
    Definition index_set.h:1764
    │ │ │ │ -
    Epetra_Map make_trilinos_map(const MPI_Comm communicator=MPI_COMM_WORLD, const bool overlapping=false) const
    │ │ │ │
    void clear()
    Definition index_set.h:1752
    │ │ │ │ -
    void subtract_set(const IndexSet &other)
    Definition index_set.cc:473
    │ │ │ │
    void add_indices(const ForwardIterator &begin, const ForwardIterator &end)
    Definition index_set.h:1831
    │ │ │ │ │ │ │ │
    size_type size() const override
    │ │ │ │
    const IndexSet & get_stored_elements() const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1164,16 +1160,14 @@ │ │ │ │
    unsigned int n_mpi_processes(const MPI_Comm mpi_communicator)
    Definition mpi.cc:92
    │ │ │ │
    T max(const T &t, const MPI_Comm mpi_communicator)
    │ │ │ │
    MinMaxAvg min_max_avg(const double my_value, const MPI_Comm mpi_communicator)
    Definition mpi.cc:66
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -99,15 +99,15 @@ │ │ │ │ │ 87 │ │ │ │ │ 88 │ │ │ │ │ 89 │ │ │ │ │ _9_0 _V_e_c_t_o_r_:_:_V_e_c_t_o_r(const _I_n_d_e_x_S_e_t ¶llel_partitioning, │ │ │ │ │ 91 const _M_P_I___C_o_m_m communicator) │ │ │ │ │ 92 : _V_e_c_t_o_r() │ │ │ │ │ 93 { │ │ │ │ │ -94 _r_e_i_n_i_t(parallel_partitioning, communicator); │ │ │ │ │ +94 _r_e_i_n_i_t(_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_i_n_g, communicator); │ │ │ │ │ 95 } │ │ │ │ │ 96 │ │ │ │ │ 97 │ │ │ │ │ 98 │ │ │ │ │ _9_9 _V_e_c_t_o_r_:_:_V_e_c_t_o_r(const _V_e_c_t_o_r &v) │ │ │ │ │ 100 : _V_e_c_t_o_r() │ │ │ │ │ 101 { │ │ │ │ │ @@ -129,23 +129,23 @@ │ │ │ │ │ 117 │ │ │ │ │ 118 │ │ │ │ │ _1_1_9 _V_e_c_t_o_r_:_:_V_e_c_t_o_r(const _I_n_d_e_x_S_e_t ¶llel_partitioner, │ │ │ │ │ 120 const _V_e_c_t_o_r &v, │ │ │ │ │ 121 const _M_P_I___C_o_m_m communicator) │ │ │ │ │ 122 : _V_e_c_t_o_r() │ │ │ │ │ 123 { │ │ │ │ │ -124 _A_s_s_e_r_t_T_h_r_o_w(parallel_partitioner._s_i_z_e() == │ │ │ │ │ +124 _A_s_s_e_r_t_T_h_r_o_w(_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r.size() == │ │ │ │ │ 125 static_cast<_s_i_z_e___t_y_p_e>( │ │ │ │ │ 126 _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_n___g_l_o_b_a_l___e_l_e_m_e_n_t_s(v._v_e_c_t_o_r->Map())), │ │ │ │ │ -127 _E_x_c_D_i_m_e_n_s_i_o_n_M_i_s_m_a_t_c_h(parallel_partitioner._s_i_z_e(), │ │ │ │ │ +127 _E_x_c_D_i_m_e_n_s_i_o_n_M_i_s_m_a_t_c_h(_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r.size(), │ │ │ │ │ 128 _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_n___g_l_o_b_a_l___e_l_e_m_e_n_t_s( │ │ │ │ │ 129 v._v_e_c_t_o_r->Map()))); │ │ │ │ │ 130 │ │ │ │ │ 131 _v_e_c_t_o_r = std::make_unique( │ │ │ │ │ -132 parallel_partitioner._m_a_k_e___t_r_i_l_i_n_o_s___m_a_p(communicator, true)); │ │ │ │ │ +132 _p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r.make_trilinos_map(communicator, true)); │ │ │ │ │ 133 _r_e_i_n_i_t(v, false, true); │ │ │ │ │ 134 } │ │ │ │ │ 135 │ │ │ │ │ 136 │ │ │ │ │ 137 │ │ │ │ │ _1_3_8 _V_e_c_t_o_r_:_:_V_e_c_t_o_r(const _I_n_d_e_x_S_e_t &local, │ │ │ │ │ 139 const _I_n_d_e_x_S_e_t &ghost, │ │ │ │ │ @@ -158,35 +158,35 @@ │ │ │ │ │ 146 │ │ │ │ │ 147 │ │ │ │ │ 148 void │ │ │ │ │ _1_4_9 _V_e_c_t_o_r_:_:_c_l_e_a_r() │ │ │ │ │ 150 { │ │ │ │ │ 151 // When we clear the vector, reset the pointer and generate an empty │ │ │ │ │ 152 // vector. │ │ │ │ │ -153 Epetra_Map map(0, 0, Epetra_MpiComm(MPI_COMM_SELF)); │ │ │ │ │ +153 Epetra_Map map(0, 0, Epetra_MpiComm(_M_P_I___C_O_M_M___S_E_L_F)); │ │ │ │ │ 154 │ │ │ │ │ 155 _h_a_s___g_h_o_s_t_s = false; │ │ │ │ │ 156 _v_e_c_t_o_r = std::make_unique(map); │ │ │ │ │ -157 _l_a_s_t___a_c_t_i_o_n = Zero; │ │ │ │ │ +157 _l_a_s_t___a_c_t_i_o_n = _Z_e_r_o; │ │ │ │ │ 158 } │ │ │ │ │ 159 │ │ │ │ │ 160 │ │ │ │ │ 161 │ │ │ │ │ 162 void │ │ │ │ │ _1_6_3 _V_e_c_t_o_r_:_:_r_e_i_n_i_t(const _I_n_d_e_x_S_e_t ¶llel_partitioner, │ │ │ │ │ 164 const _M_P_I___C_o_m_m communicator, │ │ │ │ │ 165 const bool /*omit_zeroing_entries*/) │ │ │ │ │ 166 { │ │ │ │ │ 167 _n_o_n_l_o_c_a_l___v_e_c_t_o_r.reset(); │ │ │ │ │ 168 │ │ │ │ │ 169 const bool _o_v_e_r_l_a_p_p_i_n_g = │ │ │ │ │ -170 !parallel_partitioner._i_s___a_s_c_e_n_d_i_n_g___a_n_d___o_n_e___t_o___o_n_e(communicator); │ │ │ │ │ +170 !_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r.is_ascending_and_one_to_one(communicator); │ │ │ │ │ 171 │ │ │ │ │ 172 Epetra_Map map = │ │ │ │ │ -173 parallel_partitioner._m_a_k_e___t_r_i_l_i_n_o_s___m_a_p(communicator, _o_v_e_r_l_a_p_p_i_n_g); │ │ │ │ │ +173 _p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r.make_trilinos_map(communicator, _o_v_e_r_l_a_p_p_i_n_g); │ │ │ │ │ 174 │ │ │ │ │ 175 _v_e_c_t_o_r = std::make_unique(map); │ │ │ │ │ 176 │ │ │ │ │ 177 _h_a_s___g_h_o_s_t_s = _v_e_c_t_o_r->Map().UniqueGIDs() == false; │ │ │ │ │ 178 │ │ │ │ │ 179 // If the IndexSets are overlapping, we don't really know │ │ │ │ │ 180 // which process owns what. So we decide that no process │ │ │ │ │ @@ -194,104 +194,104 @@ │ │ │ │ │ 182 // the locally owned elements is not allowed. │ │ │ │ │ 183 if (_h_a_s___g_h_o_s_t_s) │ │ │ │ │ 184 { │ │ │ │ │ 185 _o_w_n_e_d___e_l_e_m_e_n_t_s._c_l_e_a_r(); │ │ │ │ │ 186 _o_w_n_e_d___e_l_e_m_e_n_t_s._s_e_t___s_i_z_e(0); │ │ │ │ │ 187 } │ │ │ │ │ 188 else │ │ │ │ │ -189 _o_w_n_e_d___e_l_e_m_e_n_t_s = parallel_partitioner; │ │ │ │ │ +189 _o_w_n_e_d___e_l_e_m_e_n_t_s = _p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r; │ │ │ │ │ 190 │ │ │ │ │ 191# ifdef DEBUG │ │ │ │ │ -192 const _s_i_z_e___t_y_p_e n_elements_global = │ │ │ │ │ +192 const _s_i_z_e___t_y_p_e _n___e_l_e_m_e_n_t_s___g_l_o_b_a_l = │ │ │ │ │ 193 _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(_o_w_n_e_d___e_l_e_m_e_n_t_s._n___e_l_e_m_e_n_t_s(), communicator); │ │ │ │ │ 194 │ │ │ │ │ -195 _A_s_s_e_r_t(_h_a_s___g_h_o_s_t_s || n_elements_global == _s_i_z_e(), _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ +195 _A_s_s_e_r_t(_h_a_s___g_h_o_s_t_s || _n___e_l_e_m_e_n_t_s___g_l_o_b_a_l == _s_i_z_e(), _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ 196# endif │ │ │ │ │ 197 │ │ │ │ │ -198 _l_a_s_t___a_c_t_i_o_n = Zero; │ │ │ │ │ +198 _l_a_s_t___a_c_t_i_o_n = _Z_e_r_o; │ │ │ │ │ 199 } │ │ │ │ │ 200 │ │ │ │ │ 201 │ │ │ │ │ 202 │ │ │ │ │ 203 void │ │ │ │ │ _2_0_4 _V_e_c_t_o_r_:_:_r_e_i_n_i_t(const _V_e_c_t_o_r &v, │ │ │ │ │ 205 const bool omit_zeroing_entries, │ │ │ │ │ 206 const bool allow_different_maps) │ │ │ │ │ 207 { │ │ │ │ │ 208 _n_o_n_l_o_c_a_l___v_e_c_t_o_r.reset(); │ │ │ │ │ 209 │ │ │ │ │ 210 // In case we do not allow to have different maps, this call means that │ │ │ │ │ 211 // we have to reset the vector. So clear the vector, initialize our map │ │ │ │ │ 212 // with the map in v, and generate the vector. │ │ │ │ │ -213 if (allow_different_maps == false) │ │ │ │ │ +213 if (_a_l_l_o_w___d_i_f_f_e_r_e_n_t___m_a_p_s == false) │ │ │ │ │ 214 { │ │ │ │ │ 215 // check equality for MPI communicators: We can only choose the fast │ │ │ │ │ 216 // version in case the underlying Epetra_MpiComm object is the same, │ │ │ │ │ 217 // otherwise we might access an MPI_Comm object that has been │ │ │ │ │ 218 // deleted │ │ │ │ │ -219 const Epetra_MpiComm *my_comm = │ │ │ │ │ +219 const Epetra_MpiComm *_m_y___c_o_m_m = │ │ │ │ │ 220 dynamic_cast(&_v_e_c_t_o_r->Comm()); │ │ │ │ │ -221 const Epetra_MpiComm *v_comm = │ │ │ │ │ +221 const Epetra_MpiComm *_v___c_o_m_m = │ │ │ │ │ 222 dynamic_cast(&v._v_e_c_t_o_r->Comm()); │ │ │ │ │ -223 const bool same_communicators = │ │ │ │ │ -224 my_comm != nullptr && v_comm != nullptr && │ │ │ │ │ -225 my_comm->DataPtr() == v_comm->DataPtr(); │ │ │ │ │ -226 if (!same_communicators || │ │ │ │ │ +223 const bool _s_a_m_e___c_o_m_m_u_n_i_c_a_t_o_r_s = │ │ │ │ │ +224 _m_y___c_o_m_m != nullptr && _v___c_o_m_m != nullptr && │ │ │ │ │ +225 _m_y___c_o_m_m->DataPtr() == _v___c_o_m_m->DataPtr(); │ │ │ │ │ +226 if (!_s_a_m_e___c_o_m_m_u_n_i_c_a_t_o_r_s || │ │ │ │ │ 227 _v_e_c_t_o_r->Map().SameAs(v._v_e_c_t_o_r->Map()) == false) │ │ │ │ │ 228 { │ │ │ │ │ 229 _v_e_c_t_o_r = std::make_unique(v._v_e_c_t_o_r->Map()); │ │ │ │ │ 230 _h_a_s___g_h_o_s_t_s = v._h_a_s___g_h_o_s_t_s; │ │ │ │ │ -231 _l_a_s_t___a_c_t_i_o_n = Zero; │ │ │ │ │ +231 _l_a_s_t___a_c_t_i_o_n = _Z_e_r_o; │ │ │ │ │ 232 _o_w_n_e_d___e_l_e_m_e_n_t_s = v._o_w_n_e_d___e_l_e_m_e_n_t_s; │ │ │ │ │ 233 } │ │ │ │ │ -234 else if (omit_zeroing_entries == false) │ │ │ │ │ +234 else if (_o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s == false) │ │ │ │ │ 235 { │ │ │ │ │ 236 // old and new vectors have exactly the same map, i.e. size and │ │ │ │ │ 237 // parallel distribution │ │ │ │ │ -238 int ierr; │ │ │ │ │ -239 ierr = _v_e_c_t_o_r->GlobalAssemble(_l_a_s_t___a_c_t_i_o_n); │ │ │ │ │ -240 (void)ierr; │ │ │ │ │ -241 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +238 int _i_e_r_r; │ │ │ │ │ +239 _i_e_r_r = _v_e_c_t_o_r->GlobalAssemble(_l_a_s_t___a_c_t_i_o_n); │ │ │ │ │ +240 (void)_i_e_r_r; │ │ │ │ │ +241 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 242 │ │ │ │ │ -243 ierr = _v_e_c_t_o_r->PutScalar(0.0); │ │ │ │ │ -244 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +243 _i_e_r_r = _v_e_c_t_o_r->PutScalar(0.0); │ │ │ │ │ +244 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 245 │ │ │ │ │ -246 _l_a_s_t___a_c_t_i_o_n = Zero; │ │ │ │ │ +246 _l_a_s_t___a_c_t_i_o_n = _Z_e_r_o; │ │ │ │ │ 247 } │ │ │ │ │ 248 } │ │ │ │ │ 249 │ │ │ │ │ 250 // Otherwise, we have to check that the two vectors are already of the │ │ │ │ │ 251 // same size, create an object for the data exchange and then insert all │ │ │ │ │ 252 // the data. The first assertion is only a check whether the user knows │ │ │ │ │ 253 // what they are doing. │ │ │ │ │ 254 else │ │ │ │ │ 255 { │ │ │ │ │ -256 _A_s_s_e_r_t(omit_zeroing_entries == false, │ │ │ │ │ +256 _A_s_s_e_r_t(_o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s == false, │ │ │ │ │ 257 _E_x_c_M_e_s_s_a_g_e( │ │ │ │ │ 258 "It is not possible to exchange data with the " │ │ │ │ │ 259 "option 'omit_zeroing_entries' set, which would not write " │ │ │ │ │ 260 "elements.")); │ │ │ │ │ 261 │ │ │ │ │ 262 _A_s_s_e_r_t_T_h_r_o_w(_s_i_z_e() == v._s_i_z_e(), │ │ │ │ │ 263 _E_x_c_D_i_m_e_n_s_i_o_n_M_i_s_m_a_t_c_h(_s_i_z_e(), v._s_i_z_e())); │ │ │ │ │ 264 │ │ │ │ │ -265 Epetra_Import data_exchange(_v_e_c_t_o_r->Map(), v._v_e_c_t_o_r->Map()); │ │ │ │ │ +265 Epetra_Import _d_a_t_a___e_x_c_h_a_n_g_e(_v_e_c_t_o_r->Map(), v._v_e_c_t_o_r->Map()); │ │ │ │ │ 266 │ │ │ │ │ -267 const int ierr = _v_e_c_t_o_r->Import(*v._v_e_c_t_o_r, data_exchange, Insert); │ │ │ │ │ -268 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +267 const int _i_e_r_r = _v_e_c_t_o_r->Import(*v._v_e_c_t_o_r, _d_a_t_a___e_x_c_h_a_n_g_e, _I_n_s_e_r_t); │ │ │ │ │ +268 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 269 │ │ │ │ │ -270 _l_a_s_t___a_c_t_i_o_n = Insert; │ │ │ │ │ +270 _l_a_s_t___a_c_t_i_o_n = _I_n_s_e_r_t; │ │ │ │ │ 271 } │ │ │ │ │ 272# ifdef DEBUG │ │ │ │ │ -273 const Epetra_MpiComm *comm_ptr = │ │ │ │ │ +273 const Epetra_MpiComm *_c_o_m_m___p_t_r = │ │ │ │ │ 274 dynamic_cast(&(v._v_e_c_t_o_r->Comm())); │ │ │ │ │ -275 _A_s_s_e_r_t(comm_ptr != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ -276 const _s_i_z_e___t_y_p_e n_elements_global = │ │ │ │ │ -277 _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(_o_w_n_e_d___e_l_e_m_e_n_t_s._n___e_l_e_m_e_n_t_s(), comm_ptr->Comm()); │ │ │ │ │ -278 _A_s_s_e_r_t(_h_a_s___g_h_o_s_t_s || n_elements_global == _s_i_z_e(), _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ +275 _A_s_s_e_r_t(_c_o_m_m___p_t_r != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ +276 const _s_i_z_e___t_y_p_e _n___e_l_e_m_e_n_t_s___g_l_o_b_a_l = │ │ │ │ │ +277 _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(_o_w_n_e_d___e_l_e_m_e_n_t_s._n___e_l_e_m_e_n_t_s(), _c_o_m_m___p_t_r->Comm()); │ │ │ │ │ +278 _A_s_s_e_r_t(_h_a_s___g_h_o_s_t_s || _n___e_l_e_m_e_n_t_s___g_l_o_b_a_l == _s_i_z_e(), _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ 279# endif │ │ │ │ │ 280 } │ │ │ │ │ 281 │ │ │ │ │ 282 │ │ │ │ │ 283 │ │ │ │ │ 284 void │ │ │ │ │ _2_8_5 _V_e_c_t_o_r_:_:_r_e_i_n_i_t(const _M_P_I_:_:_B_l_o_c_k_V_e_c_t_o_r &v, const bool import_data) │ │ │ │ │ @@ -304,151 +304,151 @@ │ │ │ │ │ 292 // we have to reset the vector. So clear the vector, initialize our map │ │ │ │ │ 293 // with the map in v, and generate the vector. │ │ │ │ │ 294 if (v._n___b_l_o_c_k_s() == 0) │ │ │ │ │ 295 return; │ │ │ │ │ 296 │ │ │ │ │ 297 // create a vector that holds all the elements contained in the block │ │ │ │ │ 298 // vector. need to manually create an Epetra_Map. │ │ │ │ │ -299 _s_i_z_e___t_y_p_e n_elements = 0, added_elements = 0, block_offset = 0; │ │ │ │ │ +299 _s_i_z_e___t_y_p_e n_elements = 0, _a_d_d_e_d___e_l_e_m_e_n_t_s = 0, _b_l_o_c_k___o_f_f_s_e_t = 0; │ │ │ │ │ 300 for (_s_i_z_e___t_y_p_e block = 0; block < v._n___b_l_o_c_k_s(); ++block) │ │ │ │ │ 301 n_elements += v._b_l_o_c_k(block).vector->Map().NumMyElements(); │ │ │ │ │ -302 std::vector global_ids(n_elements, -1); │ │ │ │ │ +302 std::vector _g_l_o_b_a_l___i_d_s(n_elements, -1); │ │ │ │ │ 303 for (_s_i_z_e___t_y_p_e block = 0; block < v._n___b_l_o_c_k_s(); ++block) │ │ │ │ │ 304 { │ │ │ │ │ -305 _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e *glob_elements = │ │ │ │ │ +305 _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e *_g_l_o_b___e_l_e_m_e_n_t_s = │ │ │ │ │ 306 _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_m_y___g_l_o_b_a_l___e_l_e_m_e_n_t_s( │ │ │ │ │ 307 v._b_l_o_c_k(block).trilinos_partitioner()); │ │ │ │ │ -308 _s_i_z_e___t_y_p_e vector_size = v._b_l_o_c_k(block).vector->Map().NumMyElements(); │ │ │ │ │ -309 for (_s_i_z_e___t_y_p_e i = 0; i < vector_size; ++i) │ │ │ │ │ -310 global_ids[added_elements++] = glob_elements[i] + block_offset; │ │ │ │ │ +308 _s_i_z_e___t_y_p_e _v_e_c_t_o_r___s_i_z_e = v._b_l_o_c_k(block).vector->Map().NumMyElements(); │ │ │ │ │ +309 for (_s_i_z_e___t_y_p_e i = 0; i < _v_e_c_t_o_r___s_i_z_e; ++i) │ │ │ │ │ +310 _g_l_o_b_a_l___i_d_s[_a_d_d_e_d___e_l_e_m_e_n_t_s++] = _g_l_o_b___e_l_e_m_e_n_t_s[i] + _b_l_o_c_k___o_f_f_s_e_t; │ │ │ │ │ 311 _o_w_n_e_d___e_l_e_m_e_n_t_s._a_d_d___i_n_d_i_c_e_s(v._b_l_o_c_k(block).owned_elements, │ │ │ │ │ -312 block_offset); │ │ │ │ │ -313 block_offset += v._b_l_o_c_k(block).size(); │ │ │ │ │ +312 _b_l_o_c_k___o_f_f_s_e_t); │ │ │ │ │ +313 _b_l_o_c_k___o_f_f_s_e_t += v._b_l_o_c_k(block).size(); │ │ │ │ │ 314 } │ │ │ │ │ 315 │ │ │ │ │ -316 _A_s_s_e_r_t(n_elements == added_elements, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ -317 Epetra_Map new_map(v._s_i_z_e(), │ │ │ │ │ +316 _A_s_s_e_r_t(n_elements == _a_d_d_e_d___e_l_e_m_e_n_t_s, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ +317 Epetra_Map _n_e_w___m_a_p(v._s_i_z_e(), │ │ │ │ │ 318 n_elements, │ │ │ │ │ -319 global_ids.data(), │ │ │ │ │ +319 _g_l_o_b_a_l___i_d_s.data(), │ │ │ │ │ 320 0, │ │ │ │ │ 321 v._b_l_o_c_k(0).trilinos_partitioner().Comm()); │ │ │ │ │ 322 │ │ │ │ │ -323 auto actual_vec = std::make_unique(new_map); │ │ │ │ │ +323 auto _a_c_t_u_a_l___v_e_c = std::make_unique(_n_e_w___m_a_p); │ │ │ │ │ 324 │ │ │ │ │ 325 _T_r_i_l_i_n_o_s_S_c_a_l_a_r *entries = (*actual_vec)[0]; │ │ │ │ │ 326 for (_s_i_z_e___t_y_p_e block = 0; block < v._n___b_l_o_c_k_s(); ++block) │ │ │ │ │ 327 { │ │ │ │ │ 328 v._b_l_o_c_k(block).trilinos_vector().ExtractCopy(entries, 0); │ │ │ │ │ 329 entries += v._b_l_o_c_k(block).vector->Map().NumMyElements(); │ │ │ │ │ 330 } │ │ │ │ │ 331 │ │ │ │ │ 332 if (import_data == true) │ │ │ │ │ 333 { │ │ │ │ │ 334 _A_s_s_e_r_t_T_h_r_o_w(static_cast<_s_i_z_e___t_y_p_e>(_T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_g_l_o_b_a_l___l_e_n_g_t_h( │ │ │ │ │ -335 *actual_vec)) == v._s_i_z_e(), │ │ │ │ │ +335 *_a_c_t_u_a_l___v_e_c)) == v._s_i_z_e(), │ │ │ │ │ 336 _E_x_c_D_i_m_e_n_s_i_o_n_M_i_s_m_a_t_c_h(_T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_g_l_o_b_a_l___l_e_n_g_t_h( │ │ │ │ │ -337 *actual_vec), │ │ │ │ │ +337 *_a_c_t_u_a_l___v_e_c), │ │ │ │ │ 338 v._s_i_z_e())); │ │ │ │ │ 339 │ │ │ │ │ -340 Epetra_Import data_exchange(_v_e_c_t_o_r->Map(), actual_vec->Map()); │ │ │ │ │ +340 Epetra_Import _d_a_t_a___e_x_c_h_a_n_g_e(_v_e_c_t_o_r->Map(), _a_c_t_u_a_l___v_e_c->Map()); │ │ │ │ │ 341 │ │ │ │ │ -342 const int ierr = _v_e_c_t_o_r->Import(*actual_vec, data_exchange, Insert); │ │ │ │ │ -343 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +342 const int _i_e_r_r = _v_e_c_t_o_r->Import(*_a_c_t_u_a_l___v_e_c, _d_a_t_a___e_x_c_h_a_n_g_e, _I_n_s_e_r_t); │ │ │ │ │ +343 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 344 │ │ │ │ │ -345 _l_a_s_t___a_c_t_i_o_n = Insert; │ │ │ │ │ +345 _l_a_s_t___a_c_t_i_o_n = _I_n_s_e_r_t; │ │ │ │ │ 346 } │ │ │ │ │ 347 else │ │ │ │ │ -348 _v_e_c_t_o_r = std::move(actual_vec); │ │ │ │ │ +348 _v_e_c_t_o_r = std::move(_a_c_t_u_a_l___v_e_c); │ │ │ │ │ 349# ifdef DEBUG │ │ │ │ │ -350 const Epetra_MpiComm *comm_ptr = │ │ │ │ │ +350 const Epetra_MpiComm *_c_o_m_m___p_t_r = │ │ │ │ │ 351 dynamic_cast(&(_v_e_c_t_o_r->Comm())); │ │ │ │ │ -352 _A_s_s_e_r_t(comm_ptr != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ -353 const _s_i_z_e___t_y_p_e n_elements_global = │ │ │ │ │ -354 _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(_o_w_n_e_d___e_l_e_m_e_n_t_s._n___e_l_e_m_e_n_t_s(), comm_ptr->Comm()); │ │ │ │ │ +352 _A_s_s_e_r_t(_c_o_m_m___p_t_r != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ +353 const _s_i_z_e___t_y_p_e _n___e_l_e_m_e_n_t_s___g_l_o_b_a_l = │ │ │ │ │ +354 _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(_o_w_n_e_d___e_l_e_m_e_n_t_s._n___e_l_e_m_e_n_t_s(), _c_o_m_m___p_t_r->Comm()); │ │ │ │ │ 355 │ │ │ │ │ -356 _A_s_s_e_r_t(_h_a_s___g_h_o_s_t_s || n_elements_global == _s_i_z_e(), _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ +356 _A_s_s_e_r_t(_h_a_s___g_h_o_s_t_s || _n___e_l_e_m_e_n_t_s___g_l_o_b_a_l == _s_i_z_e(), _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ 357# endif │ │ │ │ │ 358 } │ │ │ │ │ 359 │ │ │ │ │ 360 │ │ │ │ │ 361 │ │ │ │ │ 362 void │ │ │ │ │ _3_6_3 _V_e_c_t_o_r_:_:_r_e_i_n_i_t(const _I_n_d_e_x_S_e_t &locally_owned_entries, │ │ │ │ │ 364 const _I_n_d_e_x_S_e_t &ghost_entries, │ │ │ │ │ 365 const _M_P_I___C_o_m_m communicator, │ │ │ │ │ 366 const bool vector_writable) │ │ │ │ │ 367 { │ │ │ │ │ 368 _n_o_n_l_o_c_a_l___v_e_c_t_o_r.reset(); │ │ │ │ │ -369 _o_w_n_e_d___e_l_e_m_e_n_t_s = locally_owned_entries; │ │ │ │ │ -370 if (vector_writable == false) │ │ │ │ │ +369 _o_w_n_e_d___e_l_e_m_e_n_t_s = _l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s; │ │ │ │ │ +370 if (_v_e_c_t_o_r___w_r_i_t_a_b_l_e == false) │ │ │ │ │ 371 { │ │ │ │ │ -372 _I_n_d_e_x_S_e_t parallel_partitioner = locally_owned_entries; │ │ │ │ │ -373 parallel_partitioner._a_d_d___i_n_d_i_c_e_s(ghost_entries); │ │ │ │ │ +372 _I_n_d_e_x_S_e_t _p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r = _l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s; │ │ │ │ │ +373 _p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r._a_d_d___i_n_d_i_c_e_s(_g_h_o_s_t___e_n_t_r_i_e_s); │ │ │ │ │ 374 Epetra_Map map = │ │ │ │ │ -375 parallel_partitioner._m_a_k_e___t_r_i_l_i_n_o_s___m_a_p(communicator, true); │ │ │ │ │ +375 _p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r.make_trilinos_map(communicator, true); │ │ │ │ │ 376 _v_e_c_t_o_r = std::make_unique(map); │ │ │ │ │ 377 } │ │ │ │ │ 378 else │ │ │ │ │ 379 { │ │ │ │ │ 380 Epetra_Map map = │ │ │ │ │ -381 locally_owned_entries._m_a_k_e___t_r_i_l_i_n_o_s___m_a_p(communicator, true); │ │ │ │ │ +381 _l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s.make_trilinos_map(communicator, true); │ │ │ │ │ 382 _A_s_s_e_r_t(map.IsOneToOne(), │ │ │ │ │ 383 _E_x_c_M_e_s_s_a_g_e("A writable vector must not have ghost entries in " │ │ │ │ │ 384 "its parallel partitioning")); │ │ │ │ │ 385 │ │ │ │ │ 386 if (_v_e_c_t_o_r->Map().SameAs(map) == false) │ │ │ │ │ 387 _v_e_c_t_o_r = std::make_unique(map); │ │ │ │ │ 388 else │ │ │ │ │ 389 { │ │ │ │ │ -390 const int ierr = _v_e_c_t_o_r->PutScalar(0.); │ │ │ │ │ -391 (void)ierr; │ │ │ │ │ -392 _A_s_s_e_r_t(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +390 const int _i_e_r_r = _v_e_c_t_o_r->PutScalar(0.); │ │ │ │ │ +391 (void)_i_e_r_r; │ │ │ │ │ +392 _A_s_s_e_r_t(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 393 } │ │ │ │ │ 394 │ │ │ │ │ -395 _I_n_d_e_x_S_e_t nonlocal_entries(ghost_entries); │ │ │ │ │ -396 nonlocal_entries._s_u_b_t_r_a_c_t___s_e_t(locally_owned_entries); │ │ │ │ │ +395 _I_n_d_e_x_S_e_t _n_o_n_l_o_c_a_l___e_n_t_r_i_e_s(_g_h_o_s_t___e_n_t_r_i_e_s); │ │ │ │ │ +396 _n_o_n_l_o_c_a_l___e_n_t_r_i_e_s.subtract_set(_l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s); │ │ │ │ │ 397 if (_U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_n___m_p_i___p_r_o_c_e_s_s_e_s(communicator) > 1) │ │ │ │ │ 398 { │ │ │ │ │ -399 Epetra_Map nonlocal_map = │ │ │ │ │ -400 nonlocal_entries._m_a_k_e___t_r_i_l_i_n_o_s___m_a_p(communicator, true); │ │ │ │ │ +399 Epetra_Map _n_o_n_l_o_c_a_l___m_a_p = │ │ │ │ │ +400 _n_o_n_l_o_c_a_l___e_n_t_r_i_e_s.make_trilinos_map(communicator, true); │ │ │ │ │ 401 _n_o_n_l_o_c_a_l___v_e_c_t_o_r = │ │ │ │ │ -402 std::make_unique(nonlocal_map, 1); │ │ │ │ │ +402 std::make_unique(_n_o_n_l_o_c_a_l___m_a_p, 1); │ │ │ │ │ 403 } │ │ │ │ │ 404 } │ │ │ │ │ 405 │ │ │ │ │ 406 _h_a_s___g_h_o_s_t_s = _v_e_c_t_o_r->Map().UniqueGIDs() == false; │ │ │ │ │ 407 │ │ │ │ │ -408 _l_a_s_t___a_c_t_i_o_n = Zero; │ │ │ │ │ +408 _l_a_s_t___a_c_t_i_o_n = _Z_e_r_o; │ │ │ │ │ 409 │ │ │ │ │ 410# ifdef DEBUG │ │ │ │ │ -411 const _s_i_z_e___t_y_p_e n_elements_global = │ │ │ │ │ +411 const _s_i_z_e___t_y_p_e _n___e_l_e_m_e_n_t_s___g_l_o_b_a_l = │ │ │ │ │ 412 _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(_o_w_n_e_d___e_l_e_m_e_n_t_s._n___e_l_e_m_e_n_t_s(), communicator); │ │ │ │ │ 413 │ │ │ │ │ -414 _A_s_s_e_r_t(_h_a_s___g_h_o_s_t_s || n_elements_global == _s_i_z_e(), _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ +414 _A_s_s_e_r_t(_h_a_s___g_h_o_s_t_s || _n___e_l_e_m_e_n_t_s___g_l_o_b_a_l == _s_i_z_e(), _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ 415# endif │ │ │ │ │ 416 } │ │ │ │ │ 417 │ │ │ │ │ 418 │ │ │ │ │ 419 │ │ │ │ │ 420 void │ │ │ │ │ _4_2_1 _V_e_c_t_o_r_:_:_r_e_i_n_i_t( │ │ │ │ │ 422 const std::shared_ptr &partitioner, │ │ │ │ │ 423 const bool make_ghosted, │ │ │ │ │ 424 const bool vector_writable) │ │ │ │ │ 425 { │ │ │ │ │ -426 if (make_ghosted) │ │ │ │ │ +426 if (_m_a_k_e___g_h_o_s_t_e_d) │ │ │ │ │ 427 { │ │ │ │ │ 428 _A_s_s_e_r_t(partitioner->ghost_indices_initialized(), │ │ │ │ │ 429 _E_x_c_M_e_s_s_a_g_e("You asked to create a ghosted vector, but the " │ │ │ │ │ 430 "partitioner does not provide ghost indices.")); │ │ │ │ │ 431 │ │ │ │ │ 432 this->_r_e_i_n_i_t(partitioner->locally_owned_range(), │ │ │ │ │ 433 partitioner->ghost_indices(), │ │ │ │ │ 434 partitioner->get_mpi_communicator(), │ │ │ │ │ -435 vector_writable); │ │ │ │ │ +435 _v_e_c_t_o_r___w_r_i_t_a_b_l_e); │ │ │ │ │ 436 } │ │ │ │ │ 437 else │ │ │ │ │ 438 { │ │ │ │ │ 439 this->_r_e_i_n_i_t(partitioner->locally_owned_range(), │ │ │ │ │ 440 partitioner->get_mpi_communicator()); │ │ │ │ │ 441 } │ │ │ │ │ 442 } │ │ │ │ │ @@ -459,20 +459,20 @@ │ │ │ │ │ _4_4_7 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_=(const _V_e_c_t_o_r &v) │ │ │ │ │ 448 { │ │ │ │ │ 449 _A_s_s_e_r_t(_v_e_c_t_o_r.get() != nullptr, │ │ │ │ │ 450 _E_x_c_M_e_s_s_a_g_e("Vector is not constructed properly.")); │ │ │ │ │ 451 │ │ │ │ │ 452 // check equality for MPI communicators to avoid accessing a possibly │ │ │ │ │ 453 // invalid MPI_Comm object │ │ │ │ │ -454 const Epetra_MpiComm *my_comm = │ │ │ │ │ +454 const Epetra_MpiComm *_m_y___c_o_m_m = │ │ │ │ │ 455 dynamic_cast(&_v_e_c_t_o_r->Comm()); │ │ │ │ │ -456 const Epetra_MpiComm *v_comm = │ │ │ │ │ +456 const Epetra_MpiComm *_v___c_o_m_m = │ │ │ │ │ 457 dynamic_cast(&v._v_e_c_t_o_r->Comm()); │ │ │ │ │ -458 const bool same_communicators = my_comm != nullptr && v_comm != nullptr && │ │ │ │ │ -459 my_comm->DataPtr() == v_comm->DataPtr(); │ │ │ │ │ +458 const bool _s_a_m_e___c_o_m_m_u_n_i_c_a_t_o_r_s = _m_y___c_o_m_m != nullptr && _v___c_o_m_m != nullptr && │ │ │ │ │ +459 _m_y___c_o_m_m->DataPtr() == _v___c_o_m_m->DataPtr(); │ │ │ │ │ 460 // Need to ask MPI whether the communicators are the same. We would like │ │ │ │ │ 461 // to use the following checks but currently we cannot make sure the │ │ │ │ │ 462 // memory of my_comm is not stale from some MPI_Comm_free │ │ │ │ │ 463 // somewhere. This can happen when a vector lives in GrowingVectorMemory │ │ │ │ │ 464 // data structures. Thus, the following code is commented out. │ │ │ │ │ 465 // │ │ │ │ │ 466 // if (my_comm != nullptr && │ │ │ │ │ @@ -491,21 +491,21 @@ │ │ │ │ │ 479 // same_communicators = true; │ │ │ │ │ 480 // } │ │ │ │ │ 481 │ │ │ │ │ 482 // distinguish three cases. First case: both vectors have the same │ │ │ │ │ 483 // layout (just need to copy the local data, not reset the memory and │ │ │ │ │ 484 // the underlying Epetra_Map). The third case means that we have to │ │ │ │ │ 485 // rebuild the calling vector. │ │ │ │ │ -486 if (same_communicators && v._v_e_c_t_o_r->Map().SameAs(_v_e_c_t_o_r->Map())) │ │ │ │ │ +486 if (_s_a_m_e___c_o_m_m_u_n_i_c_a_t_o_r_s && v._v_e_c_t_o_r->Map().SameAs(_v_e_c_t_o_r->Map())) │ │ │ │ │ 487 { │ │ │ │ │ 488 *_v_e_c_t_o_r = *v._v_e_c_t_o_r; │ │ │ │ │ 489 if (v._n_o_n_l_o_c_a_l___v_e_c_t_o_r.get() != nullptr) │ │ │ │ │ 490 _n_o_n_l_o_c_a_l___v_e_c_t_o_r = │ │ │ │ │ 491 std::make_unique(v._n_o_n_l_o_c_a_l___v_e_c_t_o_r->Map(), 1); │ │ │ │ │ -492 _l_a_s_t___a_c_t_i_o_n = Zero; │ │ │ │ │ +492 _l_a_s_t___a_c_t_i_o_n = _Z_e_r_o; │ │ │ │ │ 493 } │ │ │ │ │ 494 // Second case: vectors have the same global │ │ │ │ │ 495 // size, but different parallel layouts (and │ │ │ │ │ 496 // one of them a one-to-one mapping). Then we │ │ │ │ │ 497 // can call the import/export functionality. │ │ │ │ │ 498 else if (_s_i_z_e() == v._s_i_z_e() && │ │ │ │ │ 499 (v._v_e_c_t_o_r->Map().UniqueGIDs() || _v_e_c_t_o_r->Map().UniqueGIDs())) │ │ │ │ │ @@ -513,15 +513,15 @@ │ │ │ │ │ 501 _r_e_i_n_i_t(v, false, true); │ │ │ │ │ 502 } │ │ │ │ │ 503 // Third case: Vectors do not have the same │ │ │ │ │ 504 // size. │ │ │ │ │ 505 else │ │ │ │ │ 506 { │ │ │ │ │ 507 _v_e_c_t_o_r = std::make_unique(*v._v_e_c_t_o_r); │ │ │ │ │ -508 _l_a_s_t___a_c_t_i_o_n = Zero; │ │ │ │ │ +508 _l_a_s_t___a_c_t_i_o_n = _Z_e_r_o; │ │ │ │ │ 509 _h_a_s___g_h_o_s_t_s = v._h_a_s___g_h_o_s_t_s; │ │ │ │ │ 510 _o_w_n_e_d___e_l_e_m_e_n_t_s = v._o_w_n_e_d___e_l_e_m_e_n_t_s; │ │ │ │ │ 511 } │ │ │ │ │ 512 │ │ │ │ │ 513 if (v._n_o_n_l_o_c_a_l___v_e_c_t_o_r.get() != nullptr) │ │ │ │ │ 514 _n_o_n_l_o_c_a_l___v_e_c_t_o_r = │ │ │ │ │ 515 std::make_unique(v._n_o_n_l_o_c_a_l___v_e_c_t_o_r->Map(), 1); │ │ │ │ │ @@ -573,20 +573,20 @@ │ │ │ │ │ 560 _E_x_c_M_e_s_s_a_g_e("The input vector has overlapping data, " │ │ │ │ │ 561 "which is not allowed.")); │ │ │ │ │ 562 │ │ │ │ │ 563 if (_v_e_c_t_o_r->Map().SameAs(m._t_r_i_l_i_n_o_s___m_a_t_r_i_x().ColMap()) == false) │ │ │ │ │ 564 _v_e_c_t_o_r = │ │ │ │ │ 565 std::make_unique(m._t_r_i_l_i_n_o_s___m_a_t_r_i_x().ColMap()); │ │ │ │ │ 566 │ │ │ │ │ -567 Epetra_Import data_exchange(_v_e_c_t_o_r->Map(), v._v_e_c_t_o_r->Map()); │ │ │ │ │ -568 const int ierr = _v_e_c_t_o_r->Import(*v._v_e_c_t_o_r, data_exchange, Insert); │ │ │ │ │ +567 Epetra_Import _d_a_t_a___e_x_c_h_a_n_g_e(_v_e_c_t_o_r->Map(), v._v_e_c_t_o_r->Map()); │ │ │ │ │ +568 const int _i_e_r_r = _v_e_c_t_o_r->Import(*v._v_e_c_t_o_r, _d_a_t_a___e_x_c_h_a_n_g_e, _I_n_s_e_r_t); │ │ │ │ │ 569 │ │ │ │ │ -570 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +570 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 571 │ │ │ │ │ -572 _l_a_s_t___a_c_t_i_o_n = Insert; │ │ │ │ │ +572 _l_a_s_t___a_c_t_i_o_n = _I_n_s_e_r_t; │ │ │ │ │ 573 } │ │ │ │ │ 574 │ │ │ │ │ 575 │ │ │ │ │ 576 void │ │ │ │ │ _5_7_7 _V_e_c_t_o_r_:_:_i_m_p_o_r_t___e_l_e_m_e_n_t_s(const _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_d_o_u_b_l_e_> &rwv, │ │ │ │ │ 578 const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation) │ │ │ │ │ 579 { │ │ │ │ │ @@ -599,20 +599,20 @@ │ │ │ │ │ 586 // this class will (hopefully) be retired eventually. │ │ │ │ │ 587 _A_s_s_e_r_t(this->_l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s() == rwv._g_e_t___s_t_o_r_e_d___e_l_e_m_e_n_t_s(), │ │ │ │ │ 588 _E_x_c_N_o_t_I_m_p_l_e_m_e_n_t_e_d()); │ │ │ │ │ 589 │ │ │ │ │ 590 if (operation == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_i_n_s_e_r_t) │ │ │ │ │ 591 { │ │ │ │ │ 592 for (const auto idx : this->_l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s()) │ │ │ │ │ -593 (*this)[idx] = rwv[idx]; │ │ │ │ │ +593 (*this)[idx] = _r_w_v[idx]; │ │ │ │ │ 594 } │ │ │ │ │ 595 else if (operation == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_a_d_d) │ │ │ │ │ 596 { │ │ │ │ │ 597 for (const auto idx : this->_l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s()) │ │ │ │ │ -598 (*this)[idx] += rwv[idx]; │ │ │ │ │ +598 (*this)[idx] += _r_w_v[idx]; │ │ │ │ │ 599 } │ │ │ │ │ 600 else │ │ │ │ │ 601 _A_s_s_e_r_t_T_h_r_o_w(false, _E_x_c_N_o_t_I_m_p_l_e_m_e_n_t_e_d()); │ │ │ │ │ 602 │ │ │ │ │ 603 this->_c_o_m_p_r_e_s_s(operation); │ │ │ │ │ 604 } │ │ │ │ │ 605 │ │ │ │ │ @@ -630,93 +630,93 @@ │ │ │ │ │ 617 │ │ │ │ │ 618 // Select which mode to send to Trilinos. Note that we use last_action if │ │ │ │ │ 619 // available and ignore what the user tells us to detect wrongly mixed │ │ │ │ │ 620 // operations. Typically given_last_action is only used on machines that │ │ │ │ │ 621 // do not execute an operation (because they have no own cells for │ │ │ │ │ 622 // example). │ │ │ │ │ 623 Epetra_CombineMode mode = _l_a_s_t___a_c_t_i_o_n; │ │ │ │ │ -624 if (_l_a_s_t___a_c_t_i_o_n == Zero) │ │ │ │ │ +624 if (_l_a_s_t___a_c_t_i_o_n == _Z_e_r_o) │ │ │ │ │ 625 { │ │ │ │ │ -626 if (given_last_action == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_a_d_d) │ │ │ │ │ -627 mode = Add; │ │ │ │ │ -628 else if (given_last_action == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_i_n_s_e_r_t) │ │ │ │ │ -629 mode = Insert; │ │ │ │ │ +626 if (_g_i_v_e_n___l_a_s_t___a_c_t_i_o_n == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_a_d_d) │ │ │ │ │ +627 mode = _A_d_d; │ │ │ │ │ +628 else if (_g_i_v_e_n___l_a_s_t___a_c_t_i_o_n == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_i_n_s_e_r_t) │ │ │ │ │ +629 mode = _I_n_s_e_r_t; │ │ │ │ │ 630 else │ │ │ │ │ 631 _A_s_s_e_r_t( │ │ │ │ │ 632 false, │ │ │ │ │ 633 _E_x_c_M_e_s_s_a_g_e( │ │ │ │ │ 634 "compress() can only be called with VectorOperation add, insert, or │ │ │ │ │ unknown")); │ │ │ │ │ 635 } │ │ │ │ │ 636 else │ │ │ │ │ 637 { │ │ │ │ │ 638 _A_s_s_e_r_t( │ │ │ │ │ -639 ((_l_a_s_t___a_c_t_i_o_n == Add) && │ │ │ │ │ -640 (given_last_action == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_a_d_d)) || │ │ │ │ │ -641 ((_l_a_s_t___a_c_t_i_o_n == Insert) && │ │ │ │ │ -642 (given_last_action == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_i_n_s_e_r_t)), │ │ │ │ │ +639 ((_l_a_s_t___a_c_t_i_o_n == _A_d_d) && │ │ │ │ │ +640 (_g_i_v_e_n___l_a_s_t___a_c_t_i_o_n == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_a_d_d)) || │ │ │ │ │ +641 ((_l_a_s_t___a_c_t_i_o_n == _I_n_s_e_r_t) && │ │ │ │ │ +642 (_g_i_v_e_n___l_a_s_t___a_c_t_i_o_n == _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_i_n_s_e_r_t)), │ │ │ │ │ 643 _E_x_c_M_e_s_s_a_g_e( │ │ │ │ │ 644 "The last operation on the Vector and the given last action in the compress │ │ │ │ │ () call do not agree!")); │ │ │ │ │ 645 } │ │ │ │ │ 646 │ │ │ │ │ 647 │ │ │ │ │ 648# ifdef DEBUG │ │ │ │ │ 649 // check that every process has decided to use the same mode. This will │ │ │ │ │ 650 // otherwise result in undefined behavior in the call to │ │ │ │ │ 651 // GlobalAssemble(). │ │ │ │ │ -652 const double double_mode = mode; │ │ │ │ │ -653 const Epetra_MpiComm *comm_ptr = │ │ │ │ │ +652 const double _d_o_u_b_l_e___m_o_d_e = mode; │ │ │ │ │ +653 const Epetra_MpiComm *_c_o_m_m___p_t_r = │ │ │ │ │ 654 dynamic_cast(&(_t_r_i_l_i_n_o_s___p_a_r_t_i_t_i_o_n_e_r().Comm())); │ │ │ │ │ -655 _A_s_s_e_r_t(comm_ptr != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ +655 _A_s_s_e_r_t(_c_o_m_m___p_t_r != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ 656 │ │ │ │ │ -657 const _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_M_i_n_M_a_x_A_v_g result = │ │ │ │ │ -658 _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_m_i_n___m_a_x___a_v_g(double_mode, comm_ptr->GetMpiComm()); │ │ │ │ │ -659 _A_s_s_e_r_t(result._m_a_x == result._m_i_n, │ │ │ │ │ +657 const _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_M_i_n_M_a_x_A_v_g _r_e_s_u_l_t = │ │ │ │ │ +658 _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_m_i_n___m_a_x___a_v_g(_d_o_u_b_l_e___m_o_d_e, _c_o_m_m___p_t_r->GetMpiComm()); │ │ │ │ │ +659 _A_s_s_e_r_t(_r_e_s_u_l_t.max == _r_e_s_u_l_t.min, │ │ │ │ │ 660 _E_x_c_M_e_s_s_a_g_e( │ │ │ │ │ 661 "Not all processors agree whether the last operation on " │ │ │ │ │ 662 "this vector was an addition or a set operation. This will " │ │ │ │ │ 663 "prevent the compress() operation from succeeding.")); │ │ │ │ │ 664 │ │ │ │ │ 665# endif │ │ │ │ │ 666 │ │ │ │ │ 667 // Now pass over the information about what we did last to the vector. │ │ │ │ │ -668 if (_n_o_n_l_o_c_a_l___v_e_c_t_o_r.get() == nullptr || mode != Add) │ │ │ │ │ +668 if (_n_o_n_l_o_c_a_l___v_e_c_t_o_r.get() == nullptr || mode != _A_d_d) │ │ │ │ │ 669 { │ │ │ │ │ -670 const auto ierr = _v_e_c_t_o_r->GlobalAssemble(mode); │ │ │ │ │ -671 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +670 const auto _i_e_r_r = _v_e_c_t_o_r->GlobalAssemble(mode); │ │ │ │ │ +671 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 672 } │ │ │ │ │ 673 else │ │ │ │ │ 674 { │ │ │ │ │ -675 Epetra_Export exporter(_n_o_n_l_o_c_a_l___v_e_c_t_o_r->Map(), _v_e_c_t_o_r->Map()); │ │ │ │ │ +675 Epetra_Export _e_x_p_o_r_t_e_r(_n_o_n_l_o_c_a_l___v_e_c_t_o_r->Map(), _v_e_c_t_o_r->Map()); │ │ │ │ │ 676 │ │ │ │ │ -677 int ierr = _v_e_c_t_o_r->Export(*_n_o_n_l_o_c_a_l___v_e_c_t_o_r, exporter, mode); │ │ │ │ │ -678 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +677 int _i_e_r_r = _v_e_c_t_o_r->Export(*_n_o_n_l_o_c_a_l___v_e_c_t_o_r, _e_x_p_o_r_t_e_r, mode); │ │ │ │ │ +678 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 679 │ │ │ │ │ -680 ierr = _n_o_n_l_o_c_a_l___v_e_c_t_o_r->PutScalar(0.); │ │ │ │ │ -681 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +680 _i_e_r_r = _n_o_n_l_o_c_a_l___v_e_c_t_o_r->PutScalar(0.); │ │ │ │ │ +681 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 682 } │ │ │ │ │ -683 _l_a_s_t___a_c_t_i_o_n = Zero; │ │ │ │ │ +683 _l_a_s_t___a_c_t_i_o_n = _Z_e_r_o; │ │ │ │ │ 684 │ │ │ │ │ 685 _c_o_m_p_r_e_s_s_e_d = true; │ │ │ │ │ 686 } │ │ │ │ │ 687 │ │ │ │ │ 688 │ │ │ │ │ 689 │ │ │ │ │ 690 _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ _6_9_1 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_(_)(const _s_i_z_e___t_y_p_e index) const │ │ │ │ │ 692 { │ │ │ │ │ 693 // Extract local indices in the vector. │ │ │ │ │ -694 _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e trilinos_i = _v_e_c_t_o_r->Map().LID( │ │ │ │ │ +694 _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e _t_r_i_l_i_n_o_s___i = _v_e_c_t_o_r->Map().LID( │ │ │ │ │ 695 static_cast<_T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e>(index)); │ │ │ │ │ 696 _T_r_i_l_i_n_o_s_S_c_a_l_a_r value = 0.; │ │ │ │ │ 697 │ │ │ │ │ 698 // If the element is not present on the current processor, we can't │ │ │ │ │ 699 // continue. This is the main difference to the el() function. │ │ │ │ │ -700 if (trilinos_i == -1) │ │ │ │ │ +700 if (_t_r_i_l_i_n_o_s___i == -1) │ │ │ │ │ 701 { │ │ │ │ │ 702# ifndef DEAL_II_WITH_64BIT_INDICES │ │ │ │ │ 703 _A_s_s_e_r_t(false, │ │ │ │ │ 704 _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t(index, │ │ │ │ │ 705 _v_e_c_t_o_r->Map().NumMyElements(), │ │ │ │ │ 706 _v_e_c_t_o_r->Map().MinMyGID(), │ │ │ │ │ 707 _v_e_c_t_o_r->Map().MaxMyGID())); │ │ │ │ │ @@ -725,65 +725,65 @@ │ │ │ │ │ 710 _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t(index, │ │ │ │ │ 711 _v_e_c_t_o_r->Map().NumMyElements(), │ │ │ │ │ 712 _v_e_c_t_o_r->Map().MinMyGID64(), │ │ │ │ │ 713 _v_e_c_t_o_r->Map().MaxMyGID64())); │ │ │ │ │ 714# endif │ │ │ │ │ 715 } │ │ │ │ │ 716 else │ │ │ │ │ -717 value = (*vector)[0][trilinos_i]; │ │ │ │ │ +717 value = (*vector)[0][_t_r_i_l_i_n_o_s___i]; │ │ │ │ │ 718 │ │ │ │ │ 719 return value; │ │ │ │ │ 720 } │ │ │ │ │ 721 │ │ │ │ │ 722 │ │ │ │ │ 723 │ │ │ │ │ 724 void │ │ │ │ │ _7_2_5 _V_e_c_t_o_r_:_:_a_d_d(const _V_e_c_t_o_r &v, const bool allow_different_maps) │ │ │ │ │ 726 { │ │ │ │ │ -727 if (allow_different_maps == false) │ │ │ │ │ +727 if (_a_l_l_o_w___d_i_f_f_e_r_e_n_t___m_a_p_s == false) │ │ │ │ │ 728 *this += v; │ │ │ │ │ 729 else │ │ │ │ │ 730 { │ │ │ │ │ 731 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 732 _A_s_s_e_r_t_T_h_r_o_w(_s_i_z_e() == v._s_i_z_e(), │ │ │ │ │ 733 _E_x_c_D_i_m_e_n_s_i_o_n_M_i_s_m_a_t_c_h(_s_i_z_e(), v._s_i_z_e())); │ │ │ │ │ 734 │ │ │ │ │ 735# if DEAL_II_TRILINOS_VERSION_GTE(11, 11, 0) │ │ │ │ │ -736 Epetra_Import data_exchange(_v_e_c_t_o_r->Map(), v._v_e_c_t_o_r->Map()); │ │ │ │ │ -737 int ierr = │ │ │ │ │ -738 _v_e_c_t_o_r->Import(*v._v_e_c_t_o_r, data_exchange, Epetra_AddLocalAlso); │ │ │ │ │ -739 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -740 _l_a_s_t___a_c_t_i_o_n = Add; │ │ │ │ │ +736 Epetra_Import _d_a_t_a___e_x_c_h_a_n_g_e(_v_e_c_t_o_r->Map(), v._v_e_c_t_o_r->Map()); │ │ │ │ │ +737 int _i_e_r_r = │ │ │ │ │ +738 _v_e_c_t_o_r->Import(*v._v_e_c_t_o_r, _d_a_t_a___e_x_c_h_a_n_g_e, _E_p_e_t_r_a___A_d_d_L_o_c_a_l_A_l_s_o); │ │ │ │ │ +739 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +740 _l_a_s_t___a_c_t_i_o_n = _A_d_d; │ │ │ │ │ 741# else │ │ │ │ │ 742 // In versions older than 11.11 the Import function is broken for │ │ │ │ │ 743 // adding Hence, we provide a workaround in this case │ │ │ │ │ 744 │ │ │ │ │ -745 Epetra_MultiVector dummy(_v_e_c_t_o_r->Map(), 1, false); │ │ │ │ │ -746 Epetra_Import data_exchange(dummy.Map(), v._v_e_c_t_o_r->Map()); │ │ │ │ │ +745 Epetra_MultiVector _d_u_m_m_y(_v_e_c_t_o_r->Map(), 1, false); │ │ │ │ │ +746 Epetra_Import _d_a_t_a___e_x_c_h_a_n_g_e(_d_u_m_m_y.Map(), v._v_e_c_t_o_r->Map()); │ │ │ │ │ 747 │ │ │ │ │ -748 int ierr = dummy.Import(*v._v_e_c_t_o_r, data_exchange, Insert); │ │ │ │ │ -749 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +748 int _i_e_r_r = _d_u_m_m_y.Import(*v._v_e_c_t_o_r, _d_a_t_a___e_x_c_h_a_n_g_e, _I_n_s_e_r_t); │ │ │ │ │ +749 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 750 │ │ │ │ │ -751 ierr = _v_e_c_t_o_r->Update(1.0, dummy, 1.0); │ │ │ │ │ -752 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +751 _i_e_r_r = _v_e_c_t_o_r->Update(1.0, _d_u_m_m_y, 1.0); │ │ │ │ │ +752 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 753# endif │ │ │ │ │ 754 } │ │ │ │ │ 755 } │ │ │ │ │ 756 │ │ │ │ │ 757 │ │ │ │ │ 758 │ │ │ │ │ 759 bool │ │ │ │ │ _7_6_0 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_=_=(const _V_e_c_t_o_r &v) const │ │ │ │ │ 761 { │ │ │ │ │ 762 _A_s_s_e_r_t(_s_i_z_e() == v._s_i_z_e(), _E_x_c_D_i_m_e_n_s_i_o_n_M_i_s_m_a_t_c_h(_s_i_z_e(), v._s_i_z_e())); │ │ │ │ │ 763 if (_v_e_c_t_o_r->Map().NumMyElements() != v._v_e_c_t_o_r->Map().NumMyElements()) │ │ │ │ │ 764 return false; │ │ │ │ │ 765 │ │ │ │ │ -766 _s_i_z_e___t_y_p_e vector_size = _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ -767 for (_s_i_z_e___t_y_p_e i = 0; i < vector_size; ++i) │ │ │ │ │ +766 _s_i_z_e___t_y_p_e _v_e_c_t_o_r___s_i_z_e = _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ +767 for (_s_i_z_e___t_y_p_e i = 0; i < _v_e_c_t_o_r___s_i_z_e; ++i) │ │ │ │ │ 768 if ((*(v._v_e_c_t_o_r))[0][i] != (*_v_e_c_t_o_r)[0][i]) │ │ │ │ │ 769 return false; │ │ │ │ │ 770 │ │ │ │ │ 771 return true; │ │ │ │ │ 772 } │ │ │ │ │ 773 │ │ │ │ │ 774 │ │ │ │ │ @@ -799,104 +799,104 @@ │ │ │ │ │ 784 │ │ │ │ │ 785 │ │ │ │ │ 786 bool │ │ │ │ │ _7_8_7 _V_e_c_t_o_r_:_:_a_l_l___z_e_r_o() const │ │ │ │ │ 788 { │ │ │ │ │ 789 // get a representation of the vector and │ │ │ │ │ 790 // loop over all the elements │ │ │ │ │ -791 _T_r_i_l_i_n_o_s_S_c_a_l_a_r *start_ptr = (*vector)[0]; │ │ │ │ │ -792 const _T_r_i_l_i_n_o_s_S_c_a_l_a_r *ptr = start_ptr, │ │ │ │ │ -793 *eptr = start_ptr + _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ +791 _T_r_i_l_i_n_o_s_S_c_a_l_a_r *_s_t_a_r_t___p_t_r = (*vector)[0]; │ │ │ │ │ +792 const _T_r_i_l_i_n_o_s_S_c_a_l_a_r *ptr = _s_t_a_r_t___p_t_r, │ │ │ │ │ +793 *_e_p_t_r = _s_t_a_r_t___p_t_r + _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ 794 unsigned int flag = 0; │ │ │ │ │ -795 while (ptr != eptr) │ │ │ │ │ +795 while (ptr != _e_p_t_r) │ │ │ │ │ 796 { │ │ │ │ │ 797 if (*ptr != 0) │ │ │ │ │ 798 { │ │ │ │ │ 799 flag = 1; │ │ │ │ │ 800 break; │ │ │ │ │ 801 } │ │ │ │ │ 802 ++ptr; │ │ │ │ │ 803 } │ │ │ │ │ 804 │ │ │ │ │ 805 // in parallel, check that the vector │ │ │ │ │ 806 // is zero on _all_ processors. │ │ │ │ │ 807 const Epetra_MpiComm *mpi_comm = │ │ │ │ │ 808 dynamic_cast(&_v_e_c_t_o_r->Map().Comm()); │ │ │ │ │ 809 _A_s_s_e_r_t(mpi_comm != nullptr, _E_x_c_I_n_t_e_r_n_a_l_E_r_r_o_r()); │ │ │ │ │ -810 unsigned int num_nonzero = _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(flag, mpi_comm->Comm()); │ │ │ │ │ -811 return num_nonzero == 0; │ │ │ │ │ +810 unsigned int _n_u_m___n_o_n_z_e_r_o = _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_s_u_m(flag, mpi_comm->Comm()); │ │ │ │ │ +811 return _n_u_m___n_o_n_z_e_r_o == 0; │ │ │ │ │ 812 } │ │ │ │ │ 813 │ │ │ │ │ 814 │ │ │ │ │ 815 │ │ │ │ │ 816 bool │ │ │ │ │ _8_1_7 _V_e_c_t_o_r_:_:_i_s___n_o_n___n_e_g_a_t_i_v_e() const │ │ │ │ │ 818 { │ │ │ │ │ 819 // get a representation of the vector and │ │ │ │ │ 820 // loop over all the elements │ │ │ │ │ -821 _T_r_i_l_i_n_o_s_S_c_a_l_a_r *start_ptr = (*vector)[0]; │ │ │ │ │ -822 const _T_r_i_l_i_n_o_s_S_c_a_l_a_r *ptr = start_ptr, │ │ │ │ │ -823 *eptr = start_ptr + _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ +821 _T_r_i_l_i_n_o_s_S_c_a_l_a_r *_s_t_a_r_t___p_t_r = (*vector)[0]; │ │ │ │ │ +822 const _T_r_i_l_i_n_o_s_S_c_a_l_a_r *ptr = _s_t_a_r_t___p_t_r, │ │ │ │ │ +823 *_e_p_t_r = _s_t_a_r_t___p_t_r + _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ 824 unsigned int flag = 0; │ │ │ │ │ -825 while (ptr != eptr) │ │ │ │ │ +825 while (ptr != _e_p_t_r) │ │ │ │ │ 826 { │ │ │ │ │ 827 if (*ptr < 0.0) │ │ │ │ │ 828 { │ │ │ │ │ 829 flag = 1; │ │ │ │ │ 830 break; │ │ │ │ │ 831 } │ │ │ │ │ 832 ++ptr; │ │ │ │ │ 833 } │ │ │ │ │ 834 │ │ │ │ │ 835 // in parallel, check that the vector │ │ │ │ │ 836 // is zero on _all_ processors. │ │ │ │ │ -837 const auto max_n_negative = │ │ │ │ │ +837 const auto _m_a_x___n___n_e_g_a_t_i_v_e = │ │ │ │ │ 838 _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_m_a_x(flag, _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r()); │ │ │ │ │ -839 return max_n_negative == 0; │ │ │ │ │ +839 return _m_a_x___n___n_e_g_a_t_i_v_e == 0; │ │ │ │ │ 840 } │ │ │ │ │ 841 │ │ │ │ │ 842 │ │ │ │ │ 843 │ │ │ │ │ 844 void │ │ │ │ │ _8_4_5 _V_e_c_t_o_r_:_:_p_r_i_n_t(std::ostream &out, │ │ │ │ │ 846 const unsigned int precision, │ │ │ │ │ 847 const bool scientific, │ │ │ │ │ 848 const bool across) const │ │ │ │ │ 849 { │ │ │ │ │ 850 _A_s_s_e_r_t_T_h_r_o_w(out.fail() == false, _E_x_c_I_O()); │ │ │ │ │ -851 boost::io::ios_flags_saver restore_flags(out); │ │ │ │ │ +851 boost::io::ios_flags_saver _r_e_s_t_o_r_e___f_l_a_g_s(out); │ │ │ │ │ 852 │ │ │ │ │ 853 │ │ │ │ │ 854 out.precision(precision); │ │ │ │ │ 855 if (scientific) │ │ │ │ │ 856 out.setf(std::ios::scientific, std::ios::floatfield); │ │ │ │ │ 857 else │ │ │ │ │ 858 out.setf(std::ios::fixed, std::ios::floatfield); │ │ │ │ │ 859 │ │ │ │ │ -860 _s_i_z_e___t_y_p_e vector_size = _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ -861 if (_s_i_z_e() != vector_size) │ │ │ │ │ +860 _s_i_z_e___t_y_p_e _v_e_c_t_o_r___s_i_z_e = _v_e_c_t_o_r->Map().NumMyElements(); │ │ │ │ │ +861 if (_s_i_z_e() != _v_e_c_t_o_r___s_i_z_e) │ │ │ │ │ 862 { │ │ │ │ │ -863 auto global_id = [&](const _s_i_z_e___t_y_p_e index) { │ │ │ │ │ +863 auto _g_l_o_b_a_l___i_d = [&](const _s_i_z_e___t_y_p_e index) { │ │ │ │ │ 864 return _g_i_d(_v_e_c_t_o_r->Map(), index); │ │ │ │ │ 865 }; │ │ │ │ │ 866 out << "size:" << _s_i_z_e() │ │ │ │ │ 867 << " locally_owned_size:" << _v_e_c_t_o_r->Map().NumMyElements() << " :" │ │ │ │ │ 868 << std::endl; │ │ │ │ │ -869 for (_s_i_z_e___t_y_p_e i = 0; i < vector_size; ++i) │ │ │ │ │ -870 out << "[" << global_id(i) << "]: " << (*(_v_e_c_t_o_r))[0][i] │ │ │ │ │ +869 for (_s_i_z_e___t_y_p_e i = 0; i < _v_e_c_t_o_r___s_i_z_e; ++i) │ │ │ │ │ +870 out << "[" << _g_l_o_b_a_l___i_d(i) << "]: " << (*(_v_e_c_t_o_r))[0][i] │ │ │ │ │ 871 << std::endl; │ │ │ │ │ 872 } │ │ │ │ │ 873 else │ │ │ │ │ 874 { │ │ │ │ │ 875 _T_r_i_l_i_n_o_s_S_c_a_l_a_r *val; │ │ │ │ │ -876 int leading_dimension; │ │ │ │ │ -877 int ierr = _v_e_c_t_o_r->ExtractView(&val, &leading_dimension); │ │ │ │ │ +876 int _l_e_a_d_i_n_g___d_i_m_e_n_s_i_o_n; │ │ │ │ │ +877 int _i_e_r_r = _v_e_c_t_o_r->ExtractView(&val, &_l_e_a_d_i_n_g___d_i_m_e_n_s_i_o_n); │ │ │ │ │ 878 │ │ │ │ │ -879 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ -880 if (across) │ │ │ │ │ +879 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ +880 if (_a_c_r_o_s_s) │ │ │ │ │ 881 for (_s_i_z_e___t_y_p_e i = 0; i < _s_i_z_e(); ++i) │ │ │ │ │ 882 out << static_cast(val[i]) << ' '; │ │ │ │ │ 883 else │ │ │ │ │ 884 for (_s_i_z_e___t_y_p_e i = 0; i < _s_i_z_e(); ++i) │ │ │ │ │ 885 out << static_cast(val[i]) << std::endl; │ │ │ │ │ 886 out << std::endl; │ │ │ │ │ 887 } │ │ │ │ │ @@ -946,36 +946,23 @@ │ │ │ │ │ virtual size_type size() const override │ │ │ │ │ _B_l_o_c_k_V_e_c_t_o_r_B_a_s_e_:_:_n___b_l_o_c_k_s │ │ │ │ │ unsigned int n_blocks() const │ │ │ │ │ _B_l_o_c_k_V_e_c_t_o_r_B_a_s_e_:_:_b_l_o_c_k │ │ │ │ │ BlockType & block(const unsigned int i) │ │ │ │ │ _I_n_d_e_x_S_e_t │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_7_0 │ │ │ │ │ -_I_n_d_e_x_S_e_t_:_:_i_s___a_s_c_e_n_d_i_n_g___a_n_d___o_n_e___t_o___o_n_e │ │ │ │ │ -bool is_ascending_and_one_to_one(const MPI_Comm communicator) const │ │ │ │ │ -DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._c_c_:_1_1_3_0 │ │ │ │ │ -_I_n_d_e_x_S_e_t_:_:_s_i_z_e │ │ │ │ │ -size_type size() const │ │ │ │ │ -DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_7_7_6 │ │ │ │ │ _I_n_d_e_x_S_e_t_:_:_n___e_l_e_m_e_n_t_s │ │ │ │ │ size_type n_elements() const │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_9_3_4 │ │ │ │ │ _I_n_d_e_x_S_e_t_:_:_s_e_t___s_i_z_e │ │ │ │ │ void set_size(const size_type size) │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_7_6_4 │ │ │ │ │ -_I_n_d_e_x_S_e_t_:_:_m_a_k_e___t_r_i_l_i_n_o_s___m_a_p │ │ │ │ │ -Epetra_Map make_trilinos_map(const MPI_Comm communicator=MPI_COMM_WORLD, const │ │ │ │ │ -bool overlapping=false) const │ │ │ │ │ -DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._c_c_:_1_0_4_1 │ │ │ │ │ _I_n_d_e_x_S_e_t_:_:_c_l_e_a_r │ │ │ │ │ void clear() │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_7_5_2 │ │ │ │ │ -_I_n_d_e_x_S_e_t_:_:_s_u_b_t_r_a_c_t___s_e_t │ │ │ │ │ -void subtract_set(const IndexSet &other) │ │ │ │ │ -DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._c_c_:_4_7_3 │ │ │ │ │ _I_n_d_e_x_S_e_t_:_:_a_d_d___i_n_d_i_c_e_s │ │ │ │ │ void add_indices(const ForwardIterator &begin, const ForwardIterator &end) │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_8_3_1 │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r │ │ │ │ │ DDeeffiinniittiioonn _r_e_a_d___w_r_i_t_e___v_e_c_t_o_r_._h_:_1_3_7 │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_:_:_s_i_z_e │ │ │ │ │ size_type size() const override │ │ │ │ │ @@ -1145,20 +1132,14 @@ │ │ │ │ │ _U_t_i_l_i_t_i_e_s │ │ │ │ │ DDeeffiinniittiioonn _c_o_m_m_u_n_i_c_a_t_i_o_n___p_a_t_t_e_r_n___b_a_s_e_._h_:_3_0 │ │ │ │ │ _i_n_t_e_r_n_a_l │ │ │ │ │ DDeeffiinniittiioonn _a_l_i_g_n_e_d___v_e_c_t_o_r_._h_:_7_2_7 │ │ │ │ │ _r_e_a_d___w_r_i_t_e___v_e_c_t_o_r_._h │ │ │ │ │ _U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_M_i_n_M_a_x_A_v_g │ │ │ │ │ DDeeffiinniittiioonn _m_p_i_._h_:_9_4_0 │ │ │ │ │ -_U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_M_i_n_M_a_x_A_v_g_:_:_m_i_n │ │ │ │ │ -double min │ │ │ │ │ -DDeeffiinniittiioonn _m_p_i_._h_:_9_5_1 │ │ │ │ │ -_U_t_i_l_i_t_i_e_s_:_:_M_P_I_:_:_M_i_n_M_a_x_A_v_g_:_:_m_a_x │ │ │ │ │ -double max │ │ │ │ │ -DDeeffiinniittiioonn _m_p_i_._h_:_9_5_7 │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s │ │ │ │ │ values │ │ │ │ │ DDeeffiinniittiioonn _v_e_c_t_o_r___o_p_e_r_a_t_i_o_n_._h_:_4_1 │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_a_d_d │ │ │ │ │ @ add │ │ │ │ │ DDeeffiinniittiioonn _v_e_c_t_o_r___o_p_e_r_a_t_i_o_n_._h_:_5_3 │ │ │ │ │ _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_i_n_s_e_r_t │ │ │ ├── ./usr/share/doc/libdeal.ii-doc/html/doxygen/deal.II/trilinos__vector_8h_source.html │ │ │ │ @@ -258,58 +258,58 @@ │ │ │ │ │ │ │ │ │ │ │ │
    419
    │ │ │ │
    429 Vector();
    │ │ │ │
    430
    │ │ │ │
    434 Vector(const Vector &v);
    │ │ │ │
    435
    │ │ │ │ -
    454 explicit Vector(const IndexSet &parallel_partitioning,
    │ │ │ │ -
    455 const MPI_Comm communicator = MPI_COMM_WORLD);
    │ │ │ │ +
    454 explicit Vector(const IndexSet &parallel_partitioning,
    │ │ │ │ +
    455 const MPI_Comm communicator = MPI_COMM_WORLD);
    │ │ │ │
    456
    │ │ │ │
    468 Vector(const IndexSet &local,
    │ │ │ │
    469 const IndexSet &ghost,
    │ │ │ │ -
    470 const MPI_Comm communicator = MPI_COMM_WORLD);
    │ │ │ │ +
    470 const MPI_Comm communicator = MPI_COMM_WORLD);
    │ │ │ │
    471
    │ │ │ │ -
    486 Vector(const IndexSet &parallel_partitioning,
    │ │ │ │ + │ │ │ │
    487 const Vector &v,
    │ │ │ │ -
    488 const MPI_Comm communicator = MPI_COMM_WORLD);
    │ │ │ │ +
    488 const MPI_Comm communicator = MPI_COMM_WORLD);
    │ │ │ │
    489
    │ │ │ │
    502 template <typename Number>
    │ │ │ │ -
    503 Vector(const IndexSet &parallel_partitioning,
    │ │ │ │ + │ │ │ │
    504 const ::Vector<Number> &v,
    │ │ │ │ -
    505 const MPI_Comm communicator = MPI_COMM_WORLD);
    │ │ │ │ +
    505 const MPI_Comm communicator = MPI_COMM_WORLD);
    │ │ │ │
    506
    │ │ │ │
    515 Vector(Vector &&v); // NOLINT
    │ │ │ │
    516
    │ │ │ │
    520 ~Vector() override = default;
    │ │ │ │
    521
    │ │ │ │
    526 void
    │ │ │ │
    527 clear();
    │ │ │ │
    528
    │ │ │ │
    552 void
    │ │ │ │
    553 reinit(const Vector &v,
    │ │ │ │ -
    554 const bool omit_zeroing_entries = false,
    │ │ │ │ -
    555 const bool allow_different_maps = false);
    │ │ │ │ +
    554 const bool omit_zeroing_entries = false,
    │ │ │ │ +
    555 const bool allow_different_maps = false);
    │ │ │ │
    556
    │ │ │ │
    579 void
    │ │ │ │ -
    580 reinit(const IndexSet &parallel_partitioning,
    │ │ │ │ -
    581 const MPI_Comm communicator = MPI_COMM_WORLD,
    │ │ │ │ -
    582 const bool omit_zeroing_entries = false);
    │ │ │ │ + │ │ │ │ +
    581 const MPI_Comm communicator = MPI_COMM_WORLD,
    │ │ │ │ +
    582 const bool omit_zeroing_entries = false);
    │ │ │ │
    583
    │ │ │ │
    618 void
    │ │ │ │ -
    619 reinit(const IndexSet &locally_owned_entries,
    │ │ │ │ -
    620 const IndexSet &locally_relevant_or_ghost_entries,
    │ │ │ │ -
    621 const MPI_Comm communicator = MPI_COMM_WORLD,
    │ │ │ │ -
    622 const bool vector_writable = false);
    │ │ │ │ + │ │ │ │ + │ │ │ │ +
    621 const MPI_Comm communicator = MPI_COMM_WORLD,
    │ │ │ │ +
    622 const bool vector_writable = false);
    │ │ │ │
    623
    │ │ │ │
    634 void
    │ │ │ │
    635 reinit(
    │ │ │ │
    636 const std::shared_ptr<const Utilities::MPI::Partitioner> &partitioner,
    │ │ │ │ -
    637 const bool make_ghosted = true,
    │ │ │ │ -
    638 const bool vector_writable = false);
    │ │ │ │ +
    637 const bool make_ghosted = true,
    │ │ │ │ +
    638 const bool vector_writable = false);
    │ │ │ │
    639
    │ │ │ │
    643 void
    │ │ │ │
    644 reinit(const BlockVector &v, const bool import_data = false);
    │ │ │ │
    645
    │ │ │ │
    662 void
    │ │ │ │ │ │ │ │
    664
    │ │ │ │ @@ -328,24 +328,24 @@ │ │ │ │
    729
    │ │ │ │
    747 void
    │ │ │ │ │ │ │ │
    749 const ::TrilinosWrappers::SparseMatrix &matrix,
    │ │ │ │
    750 const Vector &vector);
    │ │ │ │
    751
    │ │ │ │
    758 void
    │ │ │ │ - │ │ │ │ + │ │ │ │
    760 const VectorOperation::values operation);
    │ │ │ │
    761
    │ │ │ │ │ │ │ │
    766 void
    │ │ │ │
    │ │ │ │ - │ │ │ │ + │ │ │ │
    768 const VectorOperation::values operation)
    │ │ │ │
    769 {
    │ │ │ │ -
    770 import_elements(rwv, operation);
    │ │ │ │ +
    770 import_elements(rwv, operation);
    │ │ │ │
    771 }
    │ │ │ │
    │ │ │ │
    772
    │ │ │ │
    773
    │ │ │ │
    779 bool
    │ │ │ │
    780 operator==(const Vector &v) const;
    │ │ │ │
    781
    │ │ │ │ @@ -370,15 +370,15 @@ │ │ │ │
    861 bool
    │ │ │ │ │ │ │ │
    863
    │ │ │ │
    870 void
    │ │ │ │ │ │ │ │
    872
    │ │ │ │ │ │ │ │ -
    878 operator*(const Vector &vec) const;
    │ │ │ │ +
    878 operator*(const Vector &vec) const;
    │ │ │ │
    879
    │ │ │ │ │ │ │ │
    884 norm_sqr() const;
    │ │ │ │
    885
    │ │ │ │ │ │ │ │
    890 mean_value() const;
    │ │ │ │
    891
    │ │ │ │ @@ -426,17 +426,17 @@ │ │ │ │
    1029
    │ │ │ │
    1033 virtual void
    │ │ │ │ │ │ │ │
    1035 ArrayView<TrilinosScalar> &elements) const override;
    │ │ │ │
    1036
    │ │ │ │
    1064 template <typename ForwardIterator, typename OutputIterator>
    │ │ │ │
    1065 void
    │ │ │ │ -
    1066 extract_subvector_to(ForwardIterator indices_begin,
    │ │ │ │ -
    1067 const ForwardIterator indices_end,
    │ │ │ │ -
    1068 OutputIterator values_begin) const;
    │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │
    1069
    │ │ │ │
    1078 iterator
    │ │ │ │ │ │ │ │
    1080
    │ │ │ │ │ │ │ │
    1086 begin() const;
    │ │ │ │
    1087
    │ │ │ │ @@ -484,15 +484,15 @@ │ │ │ │
    1185 Vector &
    │ │ │ │ │ │ │ │
    1187
    │ │ │ │
    1192 void
    │ │ │ │ │ │ │ │
    1194
    │ │ │ │
    1207 void
    │ │ │ │ -
    1208 add(const Vector &V, const bool allow_different_maps = false);
    │ │ │ │ +
    1208 add(const Vector &V, const bool allow_different_maps = false);
    │ │ │ │
    1209
    │ │ │ │
    1213 void
    │ │ │ │
    1214 add(const TrilinosScalar a, const Vector &V);
    │ │ │ │
    1215
    │ │ │ │
    1219 void
    │ │ │ │ │ │ │ │
    1221 const Vector &V,
    │ │ │ │ @@ -502,60 +502,60 @@ │ │ │ │
    1229 void
    │ │ │ │
    1230 sadd(const TrilinosScalar s, const Vector &V);
    │ │ │ │
    1231
    │ │ │ │
    1235 void
    │ │ │ │
    1236 sadd(const TrilinosScalar s, const TrilinosScalar a, const Vector &V);
    │ │ │ │
    1237
    │ │ │ │
    1243 void
    │ │ │ │ -
    1244 scale(const Vector &scaling_factors);
    │ │ │ │ + │ │ │ │
    1245
    │ │ │ │
    1249 void
    │ │ │ │
    1250 equ(const TrilinosScalar a, const Vector &V);
    │ │ │ │
    1262 const Epetra_MultiVector &
    │ │ │ │ │ │ │ │
    1264
    │ │ │ │
    1269 Epetra_FEVector &
    │ │ │ │ │ │ │ │
    1271
    │ │ │ │ -
    1276 const Epetra_BlockMap &
    │ │ │ │ +
    1276 const Epetra_BlockMap &
    │ │ │ │ │ │ │ │
    1278
    │ │ │ │
    1286 void
    │ │ │ │
    1287 print(std::ostream &out,
    │ │ │ │
    1288 const unsigned int precision = 3,
    │ │ │ │
    1289 const bool scientific = true,
    │ │ │ │ -
    1290 const bool across = true) const;
    │ │ │ │ +
    1290 const bool across = true) const;
    │ │ │ │
    1291
    │ │ │ │
    1305 void
    │ │ │ │
    1306 swap(Vector &v) noexcept;
    │ │ │ │
    1307
    │ │ │ │
    1311 std::size_t
    │ │ │ │
    1312 memory_consumption() const;
    │ │ │ │
    1313
    │ │ │ │
    1317 MPI_Comm
    │ │ │ │ │ │ │ │ │ │ │ │
    1325
    │ │ │ │ │ │ │ │
    1330 int,
    │ │ │ │ -
    1331 << "An error with error number " << arg1
    │ │ │ │ +
    1331 << "An error with error number " << arg1
    │ │ │ │
    1332 << " occurred while calling a Trilinos function");
    │ │ │ │
    1333
    │ │ │ │ │ │ │ │ │ │ │ │
    1339 size_type,
    │ │ │ │
    1340 size_type,
    │ │ │ │
    1341 size_type,
    │ │ │ │
    1342 size_type,
    │ │ │ │ -
    1343 << "You are trying to access element " << arg1
    │ │ │ │ +
    1343 << "You are trying to access element " << arg1
    │ │ │ │
    1344 << " of a distributed vector, but this element is not stored "
    │ │ │ │ -
    1345 << "on the current processor. Note: There are " << arg2
    │ │ │ │ +
    1345 << "on the current processor. Note: There are " << arg2
    │ │ │ │
    1346 << " elements stored "
    │ │ │ │ -
    1347 << "on the current processor from within the range [" << arg3 << ','
    │ │ │ │ -
    1348 << arg4 << "] but Trilinos vectors need not store contiguous "
    │ │ │ │ +
    1347 << "on the current processor from within the range [" << arg3 << ','
    │ │ │ │ +
    1348 << arg4 << "] but Trilinos vectors need not store contiguous "
    │ │ │ │
    1349 << "ranges on each processor, and not every element in "
    │ │ │ │
    1350 << "this range may in fact be stored locally."
    │ │ │ │
    1351 << "\n\n"
    │ │ │ │
    1352 << "A common source for this kind of problem is that you "
    │ │ │ │
    1353 << "are passing a 'fully distributed' vector into a function "
    │ │ │ │
    1354 << "that needs read access to vector elements that correspond "
    │ │ │ │
    1355 << "to degrees of freedom on ghost cells (or at least to "
    │ │ │ │ @@ -678,17 +678,17 @@ │ │ │ │
    1508 } // namespace internal
    │ │ │ │
    1509
    │ │ │ │
    1510 namespace MPI
    │ │ │ │
    1511 {
    │ │ │ │
    1512 inline bool
    │ │ │ │
    1513 Vector::in_local_range(const size_type index) const
    │ │ │ │
    1514 {
    │ │ │ │ -
    1515 std::pair<size_type, size_type> range = local_range();
    │ │ │ │ +
    1515 std::pair<size_type, size_type> range = local_range();
    │ │ │ │
    1516
    │ │ │ │ -
    1517 return ((index >= range.first) && (index < range.second));
    │ │ │ │ +
    1517 return ((index >= range.first) && (index < range.second));
    │ │ │ │
    1518 }
    │ │ │ │
    1519
    │ │ │ │
    1520
    │ │ │ │
    1521
    │ │ │ │
    1522 inline IndexSet
    │ │ │ │ │ │ │ │
    1524 {
    │ │ │ │ @@ -766,19 +766,19 @@ │ │ │ │
    1596
    │ │ │ │
    1597 template <typename ForwardIterator, typename OutputIterator>
    │ │ │ │
    1598 inline void
    │ │ │ │
    1599 Vector::extract_subvector_to(ForwardIterator indices_begin,
    │ │ │ │
    1600 const ForwardIterator indices_end,
    │ │ │ │
    1601 OutputIterator values_begin) const
    │ │ │ │
    1602 {
    │ │ │ │ -
    1603 while (indices_begin != indices_end)
    │ │ │ │ +
    1603 while (indices_begin != indices_end)
    │ │ │ │
    1604 {
    │ │ │ │ -
    1605 *values_begin = operator()(*indices_begin);
    │ │ │ │ -
    1606 ++indices_begin;
    │ │ │ │ -
    1607 ++values_begin;
    │ │ │ │ + │ │ │ │ +
    1606 ++indices_begin;
    │ │ │ │ +
    1607 ++values_begin;
    │ │ │ │
    1608 }
    │ │ │ │
    1609 }
    │ │ │ │
    1610
    │ │ │ │
    1611
    │ │ │ │
    1612
    │ │ │ │
    1613 inline Vector::iterator
    │ │ │ │ │ │ │ │ @@ -847,34 +847,34 @@ │ │ │ │
    1677 const size_type *indices,
    │ │ │ │
    1678 const TrilinosScalar *values)
    │ │ │ │
    1679 {
    │ │ │ │
    1680 // if we have ghost values, do not allow
    │ │ │ │
    1681 // writing to this vector at all.
    │ │ │ │ │ │ │ │
    1683
    │ │ │ │ -
    1684 if (last_action == Add)
    │ │ │ │ +
    1684 if (last_action == Add)
    │ │ │ │
    1685 {
    │ │ │ │ -
    1686 const int ierr = vector->GlobalAssemble(Add);
    │ │ │ │ -
    1687 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    1686 const int ierr = vector->GlobalAssemble(Add);
    │ │ │ │ + │ │ │ │
    1688 }
    │ │ │ │
    1689
    │ │ │ │ -
    1690 if (last_action != Insert)
    │ │ │ │ -
    1691 last_action = Insert;
    │ │ │ │ +
    1690 if (last_action != Insert)
    │ │ │ │ + │ │ │ │
    1692
    │ │ │ │
    1693 for (size_type i = 0; i < n_elements; ++i)
    │ │ │ │
    1694 {
    │ │ │ │
    1695 const TrilinosWrappers::types::int_type row = indices[i];
    │ │ │ │ -
    1696 const TrilinosWrappers::types::int_type local_row =
    │ │ │ │ + │ │ │ │
    1697 vector->Map().LID(row);
    │ │ │ │ -
    1698 if (local_row != -1)
    │ │ │ │ -
    1699 (*vector)[0][local_row] = values[i];
    │ │ │ │ +
    1698 if (local_row != -1)
    │ │ │ │ +
    1699 (*vector)[0][local_row] = values[i];
    │ │ │ │
    1700 else
    │ │ │ │
    1701 {
    │ │ │ │ -
    1702 const int ierr = vector->ReplaceGlobalValues(1, &row, &values[i]);
    │ │ │ │ -
    1703 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    1702 const int ierr = vector->ReplaceGlobalValues(1, &row, &values[i]);
    │ │ │ │ + │ │ │ │
    1704 compressed = false;
    │ │ │ │
    1705 }
    │ │ │ │
    1706 // in set operation, do not use the pre-allocated vector for nonlocal
    │ │ │ │
    1707 // entries even if it exists. This is to ensure that we really only
    │ │ │ │
    1708 // set the elements touched by the set() method and not all contained
    │ │ │ │
    1709 // in the nonlocal entries vector (there is no way to distinguish them
    │ │ │ │
    1710 // on the receiving processor)
    │ │ │ │ @@ -916,54 +916,54 @@ │ │ │ │
    1746 const size_type *indices,
    │ │ │ │
    1747 const TrilinosScalar *values)
    │ │ │ │
    1748 {
    │ │ │ │
    1749 // if we have ghost values, do not allow
    │ │ │ │
    1750 // writing to this vector at all.
    │ │ │ │ │ │ │ │
    1752
    │ │ │ │ -
    1753 if (last_action != Add)
    │ │ │ │ +
    1753 if (last_action != Add)
    │ │ │ │
    1754 {
    │ │ │ │ -
    1755 if (last_action == Insert)
    │ │ │ │ +
    1755 if (last_action == Insert)
    │ │ │ │
    1756 {
    │ │ │ │ -
    1757 const int ierr = vector->GlobalAssemble(Insert);
    │ │ │ │ -
    1758 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    1757 const int ierr = vector->GlobalAssemble(Insert);
    │ │ │ │ + │ │ │ │
    1759 }
    │ │ │ │ -
    1760 last_action = Add;
    │ │ │ │ +
    1760 last_action = Add;
    │ │ │ │
    1761 }
    │ │ │ │
    1762
    │ │ │ │
    1763 for (size_type i = 0; i < n_elements; ++i)
    │ │ │ │
    1764 {
    │ │ │ │
    1765 const size_type row = indices[i];
    │ │ │ │ -
    1766 const TrilinosWrappers::types::int_type local_row = vector->Map().LID(
    │ │ │ │ + │ │ │ │
    1767 static_cast<TrilinosWrappers::types::int_type>(row));
    │ │ │ │ -
    1768 if (local_row != -1)
    │ │ │ │ -
    1769 (*vector)[0][local_row] += values[i];
    │ │ │ │ +
    1768 if (local_row != -1)
    │ │ │ │ +
    1769 (*vector)[0][local_row] += values[i];
    │ │ │ │
    1770 else if (nonlocal_vector.get() == nullptr)
    │ │ │ │
    1771 {
    │ │ │ │ -
    1772 const int ierr = vector->SumIntoGlobalValues(
    │ │ │ │ +
    1772 const int ierr = vector->SumIntoGlobalValues(
    │ │ │ │
    1773 1,
    │ │ │ │
    1774 reinterpret_cast<const TrilinosWrappers::types::int_type *>(
    │ │ │ │
    1775 &row),
    │ │ │ │
    1776 &values[i]);
    │ │ │ │ -
    1777 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ + │ │ │ │
    1778 compressed = false;
    │ │ │ │
    1779 }
    │ │ │ │
    1780 else
    │ │ │ │
    1781 {
    │ │ │ │
    1782 // use pre-allocated vector for non-local entries if it exists for
    │ │ │ │
    1783 // addition operation
    │ │ │ │ - │ │ │ │ + │ │ │ │
    1785 nonlocal_vector->Map().LID(
    │ │ │ │
    1786 static_cast<TrilinosWrappers::types::int_type>(row));
    │ │ │ │ -
    1787 Assert(my_row != -1,
    │ │ │ │ +
    1787 Assert(my_row != -1,
    │ │ │ │
    1788 ExcMessage(
    │ │ │ │
    1789 "Attempted to write into off-processor vector entry "
    │ │ │ │
    1790 "that has not be specified as being writable upon "
    │ │ │ │
    1791 "initialization"));
    │ │ │ │ -
    1792 (*nonlocal_vector)[0][my_row] += values[i];
    │ │ │ │ +
    1792 (*nonlocal_vector)[0][my_row] += values[i];
    │ │ │ │
    1793 compressed = false;
    │ │ │ │
    1794 }
    │ │ │ │
    1795 }
    │ │ │ │
    1796 }
    │ │ │ │
    1797
    │ │ │ │
    1798
    │ │ │ │
    1799
    │ │ │ │ @@ -1012,24 +1012,24 @@ │ │ │ │
    1842 }
    │ │ │ │
    1843
    │ │ │ │
    1844
    │ │ │ │
    1845
    │ │ │ │
    1846 inline TrilinosScalar
    │ │ │ │
    1847 Vector::operator*(const Vector &vec) const
    │ │ │ │
    1848 {
    │ │ │ │ -
    1849 Assert(vector->Map().SameAs(vec.vector->Map()),
    │ │ │ │ +
    1849 Assert(vector->Map().SameAs(vec.vector->Map()),
    │ │ │ │ │ │ │ │ │ │ │ │
    1852
    │ │ │ │ -
    1853 TrilinosScalar result;
    │ │ │ │ + │ │ │ │
    1854
    │ │ │ │ -
    1855 const int ierr = vector->Dot(*(vec.vector), &result);
    │ │ │ │ -
    1856 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    1855 const int ierr = vector->Dot(*(vec.vector), &result);
    │ │ │ │ + │ │ │ │
    1857
    │ │ │ │ -
    1858 return result;
    │ │ │ │ +
    1858 return result;
    │ │ │ │
    1859 }
    │ │ │ │
    1860
    │ │ │ │
    1861
    │ │ │ │
    1862
    │ │ │ │
    1863 inline Vector::real_type
    │ │ │ │
    1864 Vector::norm_sqr() const
    │ │ │ │
    1865 {
    │ │ │ │ @@ -1041,86 +1041,86 @@ │ │ │ │
    1871
    │ │ │ │
    1872 inline TrilinosScalar
    │ │ │ │
    1873 Vector::mean_value() const
    │ │ │ │
    1874 {
    │ │ │ │ │ │ │ │
    1876
    │ │ │ │ │ │ │ │ -
    1878 const int ierr = vector->MeanValue(&mean);
    │ │ │ │ -
    1879 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    1878 const int ierr = vector->MeanValue(&mean);
    │ │ │ │ + │ │ │ │
    1880
    │ │ │ │
    1881 return mean;
    │ │ │ │
    1882 }
    │ │ │ │
    1883
    │ │ │ │
    1884
    │ │ │ │
    1885
    │ │ │ │
    1886 inline TrilinosScalar
    │ │ │ │
    1887 Vector::min() const
    │ │ │ │
    1888 {
    │ │ │ │ -
    1889 TrilinosScalar min_value;
    │ │ │ │ -
    1890 const int ierr = vector->MinValue(&min_value);
    │ │ │ │ -
    1891 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ + │ │ │ │ +
    1890 const int ierr = vector->MinValue(&min_value);
    │ │ │ │ + │ │ │ │
    1892
    │ │ │ │ -
    1893 return min_value;
    │ │ │ │ +
    1893 return min_value;
    │ │ │ │
    1894 }
    │ │ │ │
    1895
    │ │ │ │
    1896
    │ │ │ │
    1897
    │ │ │ │
    1898 inline TrilinosScalar
    │ │ │ │
    1899 Vector::max() const
    │ │ │ │
    1900 {
    │ │ │ │ -
    1901 TrilinosScalar max_value;
    │ │ │ │ -
    1902 const int ierr = vector->MaxValue(&max_value);
    │ │ │ │ -
    1903 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ + │ │ │ │ +
    1902 const int ierr = vector->MaxValue(&max_value);
    │ │ │ │ + │ │ │ │
    1904
    │ │ │ │ -
    1905 return max_value;
    │ │ │ │ +
    1905 return max_value;
    │ │ │ │
    1906 }
    │ │ │ │
    1907
    │ │ │ │
    1908
    │ │ │ │
    1909
    │ │ │ │
    1910 inline Vector::real_type
    │ │ │ │
    1911 Vector::l1_norm() const
    │ │ │ │
    1912 {
    │ │ │ │ │ │ │ │
    1914
    │ │ │ │ │ │ │ │ -
    1916 const int ierr = vector->Norm1(&d);
    │ │ │ │ -
    1917 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    1916 const int ierr = vector->Norm1(&d);
    │ │ │ │ + │ │ │ │
    1918
    │ │ │ │
    1919 return d;
    │ │ │ │
    1920 }
    │ │ │ │
    1921
    │ │ │ │
    1922
    │ │ │ │
    1923
    │ │ │ │
    1924 inline Vector::real_type
    │ │ │ │
    1925 Vector::l2_norm() const
    │ │ │ │
    1926 {
    │ │ │ │ │ │ │ │
    1928
    │ │ │ │ │ │ │ │ -
    1930 const int ierr = vector->Norm2(&d);
    │ │ │ │ -
    1931 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    1930 const int ierr = vector->Norm2(&d);
    │ │ │ │ + │ │ │ │
    1932
    │ │ │ │
    1933 return d;
    │ │ │ │
    1934 }
    │ │ │ │
    1935
    │ │ │ │
    1936
    │ │ │ │
    1937
    │ │ │ │
    1938 inline Vector::real_type
    │ │ │ │
    1939 Vector::lp_norm(const TrilinosScalar p) const
    │ │ │ │
    1940 {
    │ │ │ │ │ │ │ │
    1942
    │ │ │ │
    1943 TrilinosScalar norm = 0;
    │ │ │ │
    1944 TrilinosScalar sum = 0;
    │ │ │ │ -
    1945 const size_type n_local = locally_owned_size();
    │ │ │ │ + │ │ │ │
    1946
    │ │ │ │
    1947 // loop over all the elements because
    │ │ │ │
    1948 // Trilinos does not support lp norms
    │ │ │ │ -
    1949 for (size_type i = 0; i < n_local; ++i)
    │ │ │ │ +
    1949 for (size_type i = 0; i < n_local; ++i)
    │ │ │ │
    1950 sum += std::pow(std::fabs((*vector)[0][i]), p);
    │ │ │ │
    1951
    │ │ │ │
    1952 norm = std::pow(sum, static_cast<TrilinosScalar>(1. / p));
    │ │ │ │
    1953
    │ │ │ │
    1954 return norm;
    │ │ │ │
    1955 }
    │ │ │ │
    1956
    │ │ │ │ @@ -1131,16 +1131,16 @@ │ │ │ │
    1961 {
    │ │ │ │
    1962 // while we disallow the other
    │ │ │ │
    1963 // norm operations on ghosted
    │ │ │ │
    1964 // vectors, this particular norm
    │ │ │ │
    1965 // is safe to run even in the
    │ │ │ │
    1966 // presence of ghost elements
    │ │ │ │ │ │ │ │ -
    1968 const int ierr = vector->NormInf(&d);
    │ │ │ │ -
    1969 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    1968 const int ierr = vector->NormInf(&d);
    │ │ │ │ + │ │ │ │
    1970
    │ │ │ │
    1971 return d;
    │ │ │ │
    1972 }
    │ │ │ │
    1973
    │ │ │ │
    1974
    │ │ │ │
    1975
    │ │ │ │
    1976 inline TrilinosScalar
    │ │ │ │ @@ -1160,16 +1160,16 @@ │ │ │ │
    1990 // call. This reduces the overhead of the
    │ │ │ │
    1991 // wrapper class.
    │ │ │ │
    1992 inline Vector &
    │ │ │ │ │ │ │ │
    1994 {
    │ │ │ │
    1995 AssertIsFinite(a);
    │ │ │ │
    1996
    │ │ │ │ -
    1997 const int ierr = vector->Scale(a);
    │ │ │ │ -
    1998 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    1997 const int ierr = vector->Scale(a);
    │ │ │ │ + │ │ │ │
    1999
    │ │ │ │
    2000 return *this;
    │ │ │ │
    2001 }
    │ │ │ │
    2002
    │ │ │ │
    2003
    │ │ │ │
    2004
    │ │ │ │
    2005 inline Vector &
    │ │ │ │ @@ -1177,62 +1177,62 @@ │ │ │ │
    2007 {
    │ │ │ │
    2008 AssertIsFinite(a);
    │ │ │ │
    2009
    │ │ │ │
    2010 const TrilinosScalar factor = 1. / a;
    │ │ │ │
    2011
    │ │ │ │
    2012 AssertIsFinite(factor);
    │ │ │ │
    2013
    │ │ │ │ -
    2014 const int ierr = vector->Scale(factor);
    │ │ │ │ -
    2015 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2014 const int ierr = vector->Scale(factor);
    │ │ │ │ + │ │ │ │
    2016
    │ │ │ │
    2017 return *this;
    │ │ │ │
    2018 }
    │ │ │ │
    2019
    │ │ │ │
    2020
    │ │ │ │
    2021
    │ │ │ │
    2022 inline Vector &
    │ │ │ │
    2023 Vector::operator+=(const Vector &v)
    │ │ │ │
    2024 {
    │ │ │ │
    2025 AssertDimension(size(), v.size());
    │ │ │ │
    2026 Assert(vector->Map().SameAs(v.vector->Map()),
    │ │ │ │ │ │ │ │
    2028
    │ │ │ │ -
    2029 const int ierr = vector->Update(1.0, *(v.vector), 1.0);
    │ │ │ │ -
    2030 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2029 const int ierr = vector->Update(1.0, *(v.vector), 1.0);
    │ │ │ │ + │ │ │ │
    2031
    │ │ │ │
    2032 return *this;
    │ │ │ │
    2033 }
    │ │ │ │
    2034
    │ │ │ │
    2035
    │ │ │ │
    2036
    │ │ │ │
    2037 inline Vector &
    │ │ │ │
    2038 Vector::operator-=(const Vector &v)
    │ │ │ │
    2039 {
    │ │ │ │
    2040 AssertDimension(size(), v.size());
    │ │ │ │
    2041 Assert(vector->Map().SameAs(v.vector->Map()),
    │ │ │ │ │ │ │ │
    2043
    │ │ │ │ -
    2044 const int ierr = vector->Update(-1.0, *(v.vector), 1.0);
    │ │ │ │ -
    2045 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2044 const int ierr = vector->Update(-1.0, *(v.vector), 1.0);
    │ │ │ │ + │ │ │ │
    2046
    │ │ │ │
    2047 return *this;
    │ │ │ │
    2048 }
    │ │ │ │
    2049
    │ │ │ │
    2050
    │ │ │ │
    2051
    │ │ │ │
    2052 inline void
    │ │ │ │ │ │ │ │
    2054 {
    │ │ │ │
    2055 // if we have ghost values, do not allow
    │ │ │ │
    2056 // writing to this vector at all.
    │ │ │ │ │ │ │ │
    2058 AssertIsFinite(s);
    │ │ │ │
    2059
    │ │ │ │ -
    2060 size_type n_local = locally_owned_size();
    │ │ │ │ -
    2061 for (size_type i = 0; i < n_local; ++i)
    │ │ │ │ + │ │ │ │ +
    2061 for (size_type i = 0; i < n_local; ++i)
    │ │ │ │
    2062 (*vector)[0][i] += s;
    │ │ │ │
    2063 }
    │ │ │ │
    2064
    │ │ │ │
    2065
    │ │ │ │
    2066
    │ │ │ │
    2067 inline void
    │ │ │ │
    2068 Vector::add(const TrilinosScalar a, const Vector &v)
    │ │ │ │ @@ -1240,16 +1240,16 @@ │ │ │ │
    2070 // if we have ghost values, do not allow
    │ │ │ │
    2071 // writing to this vector at all.
    │ │ │ │ │ │ │ │ │ │ │ │
    2074
    │ │ │ │
    2075 AssertIsFinite(a);
    │ │ │ │
    2076
    │ │ │ │ -
    2077 const int ierr = vector->Update(a, *(v.vector), 1.);
    │ │ │ │ -
    2078 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2077 const int ierr = vector->Update(a, *(v.vector), 1.);
    │ │ │ │ + │ │ │ │
    2079 }
    │ │ │ │
    2080
    │ │ │ │
    2081
    │ │ │ │
    2082
    │ │ │ │
    2083 inline void
    │ │ │ │ │ │ │ │
    2085 const Vector &v,
    │ │ │ │ @@ -1261,17 +1261,17 @@ │ │ │ │ │ │ │ │ │ │ │ │
    2093 AssertDimension(locally_owned_size(), w.locally_owned_size());
    │ │ │ │
    2094
    │ │ │ │
    2095 AssertIsFinite(a);
    │ │ │ │
    2096 AssertIsFinite(b);
    │ │ │ │
    2097
    │ │ │ │ -
    2098 const int ierr = vector->Update(a, *(v.vector), b, *(w.vector), 1.);
    │ │ │ │ +
    2098 const int ierr = vector->Update(a, *(v.vector), b, *(w.vector), 1.);
    │ │ │ │
    2099
    │ │ │ │ -
    2100 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ + │ │ │ │
    2101 }
    │ │ │ │
    2102
    │ │ │ │
    2103
    │ │ │ │
    2104
    │ │ │ │
    2105 inline void
    │ │ │ │
    2106 Vector::sadd(const TrilinosScalar s, const Vector &v)
    │ │ │ │
    2107 {
    │ │ │ │ @@ -1285,16 +1285,16 @@ │ │ │ │
    2115 // We assume that the vectors have the same Map
    │ │ │ │
    2116 // if the local size is the same and if the vectors are not ghosted
    │ │ │ │ │ │ │ │
    2118 !v.has_ghost_elements())
    │ │ │ │
    2119 {
    │ │ │ │
    2120 Assert(this->vector->Map().SameAs(v.vector->Map()) == true,
    │ │ │ │ │ │ │ │ -
    2122 const int ierr = vector->Update(1., *(v.vector), s);
    │ │ │ │ -
    2123 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2122 const int ierr = vector->Update(1., *(v.vector), s);
    │ │ │ │ + │ │ │ │
    2124 }
    │ │ │ │
    2125 else
    │ │ │ │
    2126 {
    │ │ │ │
    2127 (*this) *= s;
    │ │ │ │
    2128 this->add(v, true);
    │ │ │ │
    2129 }
    │ │ │ │
    2130 }
    │ │ │ │ @@ -1316,16 +1316,16 @@ │ │ │ │
    2146 // We assume that the vectors have the same Map
    │ │ │ │
    2147 // if the local size is the same and if the vectors are not ghosted
    │ │ │ │ │ │ │ │
    2149 !v.has_ghost_elements())
    │ │ │ │
    2150 {
    │ │ │ │
    2151 Assert(this->vector->Map().SameAs(v.vector->Map()) == true,
    │ │ │ │ │ │ │ │ -
    2153 const int ierr = vector->Update(a, *(v.vector), s);
    │ │ │ │ -
    2154 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2153 const int ierr = vector->Update(a, *(v.vector), s);
    │ │ │ │ + │ │ │ │
    2155 }
    │ │ │ │
    2156 else
    │ │ │ │
    2157 {
    │ │ │ │
    2158 (*this) *= s;
    │ │ │ │
    2159 Vector tmp = v;
    │ │ │ │
    2160 tmp *= a;
    │ │ │ │
    2161 this->add(tmp, true);
    │ │ │ │ @@ -1338,16 +1338,16 @@ │ │ │ │
    2168 Vector::scale(const Vector &factors)
    │ │ │ │
    2169 {
    │ │ │ │
    2170 // if we have ghost values, do not allow
    │ │ │ │
    2171 // writing to this vector at all.
    │ │ │ │ │ │ │ │ │ │ │ │
    2174
    │ │ │ │ -
    2175 const int ierr = vector->Multiply(1.0, *(factors.vector), *vector, 0.0);
    │ │ │ │ -
    2176 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2175 const int ierr = vector->Multiply(1.0, *(factors.vector), *vector, 0.0);
    │ │ │ │ + │ │ │ │
    2177 }
    │ │ │ │
    2178
    │ │ │ │
    2179
    │ │ │ │
    2180
    │ │ │ │
    2181 inline void
    │ │ │ │
    2182 Vector::equ(const TrilinosScalar a, const Vector &v)
    │ │ │ │
    2183 {
    │ │ │ │ @@ -1360,18 +1360,18 @@ │ │ │ │
    2190 if (vector->Map().SameAs(v.vector->Map()) == false)
    │ │ │ │
    2191 {
    │ │ │ │
    2192 this->sadd(0., a, v);
    │ │ │ │
    2193 }
    │ │ │ │
    2194 else
    │ │ │ │
    2195 {
    │ │ │ │
    2196 // Otherwise, just update
    │ │ │ │ -
    2197 int ierr = vector->Update(a, *v.vector, 0.0);
    │ │ │ │ -
    2198 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2197 int ierr = vector->Update(a, *v.vector, 0.0);
    │ │ │ │ + │ │ │ │
    2199
    │ │ │ │ -
    2200 last_action = Zero;
    │ │ │ │ +
    2200 last_action = Zero;
    │ │ │ │
    2201 }
    │ │ │ │
    2202 }
    │ │ │ │
    2203
    │ │ │ │
    2204
    │ │ │ │
    2205
    │ │ │ │
    2206 inline const Epetra_MultiVector &
    │ │ │ │ │ │ │ │ @@ -1409,32 +1409,32 @@ │ │ │ │
    2239
    │ │ │ │
    2240 template <typename number>
    │ │ │ │
    2241 Vector::Vector(const IndexSet &parallel_partitioner,
    │ │ │ │
    2242 const ::Vector<number> &v,
    │ │ │ │
    2243 const MPI_Comm communicator)
    │ │ │ │
    2244 {
    │ │ │ │
    2245 *this =
    │ │ │ │ -
    2246 Vector(parallel_partitioner.make_trilinos_map(communicator, true), v);
    │ │ │ │ -
    2247 owned_elements = parallel_partitioner;
    │ │ │ │ +
    2246 Vector(parallel_partitioner.make_trilinos_map(communicator, true), v);
    │ │ │ │ + │ │ │ │
    2248 }
    │ │ │ │
    2249
    │ │ │ │
    2250
    │ │ │ │
    2251
    │ │ │ │
    2252 inline Vector &
    │ │ │ │ │ │ │ │
    2254 {
    │ │ │ │
    2255 AssertIsFinite(s);
    │ │ │ │
    2256
    │ │ │ │ -
    2257 int ierr = vector->PutScalar(s);
    │ │ │ │ -
    2258 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2257 int ierr = vector->PutScalar(s);
    │ │ │ │ + │ │ │ │
    2259
    │ │ │ │
    2260 if (nonlocal_vector.get() != nullptr)
    │ │ │ │
    2261 {
    │ │ │ │ -
    2262 ierr = nonlocal_vector->PutScalar(0.);
    │ │ │ │ -
    2263 AssertThrow(ierr == 0, ExcTrilinosError(ierr));
    │ │ │ │ +
    2262 ierr = nonlocal_vector->PutScalar(0.);
    │ │ │ │ + │ │ │ │
    2264 }
    │ │ │ │
    2265
    │ │ │ │
    2266 return *this;
    │ │ │ │
    2267 }
    │ │ │ │
    2268 } /* end of namespace MPI */
    │ │ │ │
    2269
    │ │ │ │
    2270# endif /* DOXYGEN */
    │ │ │ │ @@ -1501,15 +1501,14 @@ │ │ │ │ │ │ │ │ │ │ │ │
    std::size_t size() const
    Definition array_view.h:684
    │ │ │ │ │ │ │ │ │ │ │ │
    size_type size() const
    Definition index_set.h:1776
    │ │ │ │
    size_type n_elements() const
    Definition index_set.h:1934
    │ │ │ │ -
    Epetra_Map make_trilinos_map(const MPI_Comm communicator=MPI_COMM_WORLD, const bool overlapping=false) const
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -160,58 +160,58 @@ │ │ │ │ │ _4_1_7 using _r_e_f_e_r_e_n_c_e = _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e; │ │ │ │ │ _4_1_8 using _c_o_n_s_t___r_e_f_e_r_e_n_c_e = const _i_n_t_e_r_n_a_l_:_:_V_e_c_t_o_r_R_e_f_e_r_e_n_c_e; │ │ │ │ │ 419 │ │ │ │ │ 429 _V_e_c_t_o_r(); │ │ │ │ │ 430 │ │ │ │ │ 434 _V_e_c_t_o_r(const _V_e_c_t_o_r &v); │ │ │ │ │ 435 │ │ │ │ │ -454 explicit _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t ¶llel_partitioning, │ │ │ │ │ -455 const _M_P_I___C_o_m_m communicator = MPI_COMM_WORLD); │ │ │ │ │ +454 explicit _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_i_n_g, │ │ │ │ │ +455 const _M_P_I___C_o_m_m communicator = _M_P_I___C_O_M_M___W_O_R_L_D); │ │ │ │ │ 456 │ │ │ │ │ 468 _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t &local, │ │ │ │ │ 469 const _I_n_d_e_x_S_e_t &ghost, │ │ │ │ │ -470 const _M_P_I___C_o_m_m communicator = MPI_COMM_WORLD); │ │ │ │ │ +470 const _M_P_I___C_o_m_m communicator = _M_P_I___C_O_M_M___W_O_R_L_D); │ │ │ │ │ 471 │ │ │ │ │ -486 _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t ¶llel_partitioning, │ │ │ │ │ +486 _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_i_n_g, │ │ │ │ │ 487 const _V_e_c_t_o_r &v, │ │ │ │ │ -488 const _M_P_I___C_o_m_m communicator = MPI_COMM_WORLD); │ │ │ │ │ +488 const _M_P_I___C_o_m_m communicator = _M_P_I___C_O_M_M___W_O_R_L_D); │ │ │ │ │ 489 │ │ │ │ │ 502 template │ │ │ │ │ -_5_0_3 _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t ¶llel_partitioning, │ │ │ │ │ +_5_0_3 _V_e_c_t_o_r(const _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_i_n_g, │ │ │ │ │ 504 const ::Vector &v, │ │ │ │ │ -505 const _M_P_I___C_o_m_m communicator = MPI_COMM_WORLD); │ │ │ │ │ +505 const _M_P_I___C_o_m_m communicator = _M_P_I___C_O_M_M___W_O_R_L_D); │ │ │ │ │ 506 │ │ │ │ │ 515 _V_e_c_t_o_r(_V_e_c_t_o_r &&v); // NOLINT │ │ │ │ │ 516 │ │ │ │ │ _5_2_0 _~_V_e_c_t_o_r() override = default; │ │ │ │ │ 521 │ │ │ │ │ 526 void │ │ │ │ │ 527 _c_l_e_a_r(); │ │ │ │ │ 528 │ │ │ │ │ 552 void │ │ │ │ │ 553 _r_e_i_n_i_t(const _V_e_c_t_o_r &v, │ │ │ │ │ -554 const bool omit_zeroing_entries = false, │ │ │ │ │ -555 const bool allow_different_maps = false); │ │ │ │ │ +554 const bool _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s = false, │ │ │ │ │ +555 const bool _a_l_l_o_w___d_i_f_f_e_r_e_n_t___m_a_p_s = false); │ │ │ │ │ 556 │ │ │ │ │ 579 void │ │ │ │ │ -580 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t ¶llel_partitioning, │ │ │ │ │ -581 const _M_P_I___C_o_m_m communicator = MPI_COMM_WORLD, │ │ │ │ │ -582 const bool omit_zeroing_entries = false); │ │ │ │ │ +580 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t &_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_i_n_g, │ │ │ │ │ +581 const _M_P_I___C_o_m_m communicator = _M_P_I___C_O_M_M___W_O_R_L_D, │ │ │ │ │ +582 const bool _o_m_i_t___z_e_r_o_i_n_g___e_n_t_r_i_e_s = false); │ │ │ │ │ 583 │ │ │ │ │ 618 void │ │ │ │ │ -619 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t &locally_owned_entries, │ │ │ │ │ -620 const _I_n_d_e_x_S_e_t &locally_relevant_or_ghost_entries, │ │ │ │ │ -621 const _M_P_I___C_o_m_m communicator = MPI_COMM_WORLD, │ │ │ │ │ -622 const bool vector_writable = false); │ │ │ │ │ +619 _r_e_i_n_i_t(const _I_n_d_e_x_S_e_t &_l_o_c_a_l_l_y___o_w_n_e_d___e_n_t_r_i_e_s, │ │ │ │ │ +620 const _I_n_d_e_x_S_e_t &_l_o_c_a_l_l_y___r_e_l_e_v_a_n_t___o_r___g_h_o_s_t___e_n_t_r_i_e_s, │ │ │ │ │ +621 const _M_P_I___C_o_m_m communicator = _M_P_I___C_O_M_M___W_O_R_L_D, │ │ │ │ │ +622 const bool _v_e_c_t_o_r___w_r_i_t_a_b_l_e = false); │ │ │ │ │ 623 │ │ │ │ │ 634 void │ │ │ │ │ 635 _r_e_i_n_i_t( │ │ │ │ │ 636 const std::shared_ptr &partitioner, │ │ │ │ │ -637 const bool make_ghosted = true, │ │ │ │ │ -638 const bool vector_writable = false); │ │ │ │ │ +637 const bool _m_a_k_e___g_h_o_s_t_e_d = true, │ │ │ │ │ +638 const bool _v_e_c_t_o_r___w_r_i_t_a_b_l_e = false); │ │ │ │ │ 639 │ │ │ │ │ 643 void │ │ │ │ │ 644 _r_e_i_n_i_t(const _B_l_o_c_k_V_e_c_t_o_r &v, const bool import_data = false); │ │ │ │ │ 645 │ │ │ │ │ 662 void │ │ │ │ │ 663 _c_o_m_p_r_e_s_s(_V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation); │ │ │ │ │ 664 │ │ │ │ │ @@ -230,23 +230,23 @@ │ │ │ │ │ 729 │ │ │ │ │ 747 void │ │ │ │ │ 748 _i_m_p_o_r_t___n_o_n_l_o_c_a_l___d_a_t_a___f_o_r___f_e( │ │ │ │ │ 749 const ::TrilinosWrappers::SparseMatrix &matrix, │ │ │ │ │ 750 const _V_e_c_t_o_r &_v_e_c_t_o_r); │ │ │ │ │ 751 │ │ │ │ │ 758 void │ │ │ │ │ -759 _i_m_p_o_r_t___e_l_e_m_e_n_t_s(const _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_d_o_u_b_l_e_> &rwv, │ │ │ │ │ +759 _i_m_p_o_r_t___e_l_e_m_e_n_t_s(const _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_d_o_u_b_l_e_> &_r_w_v, │ │ │ │ │ 760 const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation); │ │ │ │ │ 761 │ │ │ │ │ 765 _D_E_A_L___I_I___D_E_P_R_E_C_A_T_E_D │ │ │ │ │ 766 void │ │ │ │ │ -_7_6_7 import(const _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_d_o_u_b_l_e_> &rwv, │ │ │ │ │ +_7_6_7 import(const _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r_<_d_o_u_b_l_e_> &_r_w_v, │ │ │ │ │ 768 const _V_e_c_t_o_r_O_p_e_r_a_t_i_o_n_:_:_v_a_l_u_e_s operation) │ │ │ │ │ 769 { │ │ │ │ │ -770 _i_m_p_o_r_t___e_l_e_m_e_n_t_s(rwv, operation); │ │ │ │ │ +770 _i_m_p_o_r_t___e_l_e_m_e_n_t_s(_r_w_v, operation); │ │ │ │ │ 771 } │ │ │ │ │ 772 │ │ │ │ │ 773 │ │ │ │ │ 779 bool │ │ │ │ │ 780 _o_p_e_r_a_t_o_r_=_=(const _V_e_c_t_o_r &v) const; │ │ │ │ │ 781 │ │ │ │ │ 787 bool │ │ │ │ │ @@ -270,15 +270,15 @@ │ │ │ │ │ 861 bool │ │ │ │ │ _8_6_2 _h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s() const; │ │ │ │ │ 863 │ │ │ │ │ 870 void │ │ │ │ │ _8_7_1 _u_p_d_a_t_e___g_h_o_s_t___v_a_l_u_e_s() const; │ │ │ │ │ 872 │ │ │ │ │ 877 _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ -_8_7_8 _o_p_e_r_a_t_o_r_*(const _V_e_c_t_o_r &vec) const; │ │ │ │ │ +_8_7_8 _o_p_e_r_a_t_o_r_*(const _V_e_c_t_o_r &_v_e_c) const; │ │ │ │ │ 879 │ │ │ │ │ 883 _r_e_a_l___t_y_p_e │ │ │ │ │ _8_8_4 _n_o_r_m___s_q_r() const; │ │ │ │ │ 885 │ │ │ │ │ 889 _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ _8_9_0 _m_e_a_n___v_a_l_u_e() const; │ │ │ │ │ 891 │ │ │ │ │ @@ -326,17 +326,17 @@ │ │ │ │ │ 1029 │ │ │ │ │ 1033 virtual void │ │ │ │ │ _1_0_3_4 _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o(const _A_r_r_a_y_V_i_e_w_<_c_o_n_s_t_ _s_i_z_e___t_y_p_e_> &indices, │ │ │ │ │ 1035 _A_r_r_a_y_V_i_e_w_<_T_r_i_l_i_n_o_s_S_c_a_l_a_r_> &elements) const override; │ │ │ │ │ 1036 │ │ │ │ │ 1064 template │ │ │ │ │ 1065 void │ │ │ │ │ -_1_0_6_6 _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o(ForwardIterator indices_begin, │ │ │ │ │ -1067 const ForwardIterator indices_end, │ │ │ │ │ -1068 OutputIterator values_begin) const; │ │ │ │ │ +_1_0_6_6 _e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o(_F_o_r_w_a_r_d_I_t_e_r_a_t_o_r _i_n_d_i_c_e_s___b_e_g_i_n, │ │ │ │ │ +1067 const _F_o_r_w_a_r_d_I_t_e_r_a_t_o_r _i_n_d_i_c_e_s___e_n_d, │ │ │ │ │ +1068 _O_u_t_p_u_t_I_t_e_r_a_t_o_r _v_a_l_u_e_s___b_e_g_i_n) const; │ │ │ │ │ 1069 │ │ │ │ │ 1078 _i_t_e_r_a_t_o_r │ │ │ │ │ _1_0_7_9 _b_e_g_i_n(); │ │ │ │ │ 1080 │ │ │ │ │ 1085 _c_o_n_s_t___i_t_e_r_a_t_o_r │ │ │ │ │ _1_0_8_6 _b_e_g_i_n() const; │ │ │ │ │ 1087 │ │ │ │ │ @@ -384,15 +384,15 @@ │ │ │ │ │ 1185 _V_e_c_t_o_r & │ │ │ │ │ _1_1_8_6 _o_p_e_r_a_t_o_r_-_=(const _V_e_c_t_o_r &V); │ │ │ │ │ 1187 │ │ │ │ │ 1192 void │ │ │ │ │ _1_1_9_3 _a_d_d(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s); │ │ │ │ │ 1194 │ │ │ │ │ 1207 void │ │ │ │ │ -1208 _a_d_d(const _V_e_c_t_o_r &V, const bool allow_different_maps = false); │ │ │ │ │ +1208 _a_d_d(const _V_e_c_t_o_r &V, const bool _a_l_l_o_w___d_i_f_f_e_r_e_n_t___m_a_p_s = false); │ │ │ │ │ 1209 │ │ │ │ │ 1213 void │ │ │ │ │ _1_2_1_4 _a_d_d(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const _V_e_c_t_o_r &V); │ │ │ │ │ 1215 │ │ │ │ │ 1219 void │ │ │ │ │ _1_2_2_0 _a_d_d(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, │ │ │ │ │ 1221 const _V_e_c_t_o_r &V, │ │ │ │ │ @@ -402,60 +402,60 @@ │ │ │ │ │ 1229 void │ │ │ │ │ _1_2_3_0 _s_a_d_d(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s, const _V_e_c_t_o_r &V); │ │ │ │ │ 1231 │ │ │ │ │ 1235 void │ │ │ │ │ _1_2_3_6 _s_a_d_d(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s, const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const _V_e_c_t_o_r &V); │ │ │ │ │ 1237 │ │ │ │ │ 1243 void │ │ │ │ │ -_1_2_4_4 _s_c_a_l_e(const _V_e_c_t_o_r &scaling_factors); │ │ │ │ │ +_1_2_4_4 _s_c_a_l_e(const _V_e_c_t_o_r &_s_c_a_l_i_n_g___f_a_c_t_o_r_s); │ │ │ │ │ 1245 │ │ │ │ │ 1249 void │ │ │ │ │ _1_2_5_0 _e_q_u(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const _V_e_c_t_o_r &V); │ │ │ │ │ 1262 const Epetra_MultiVector & │ │ │ │ │ _1_2_6_3 _t_r_i_l_i_n_o_s___v_e_c_t_o_r() const; │ │ │ │ │ 1264 │ │ │ │ │ 1269 Epetra_FEVector & │ │ │ │ │ _1_2_7_0 _t_r_i_l_i_n_o_s___v_e_c_t_o_r(); │ │ │ │ │ 1271 │ │ │ │ │ -1276 const Epetra_BlockMap & │ │ │ │ │ +1276 const _E_p_e_t_r_a___B_l_o_c_k_M_a_p & │ │ │ │ │ _1_2_7_7 _t_r_i_l_i_n_o_s___p_a_r_t_i_t_i_o_n_e_r() const; │ │ │ │ │ 1278 │ │ │ │ │ 1286 void │ │ │ │ │ 1287 _p_r_i_n_t(std::ostream &out, │ │ │ │ │ 1288 const unsigned int precision = 3, │ │ │ │ │ 1289 const bool scientific = true, │ │ │ │ │ -1290 const bool across = true) const; │ │ │ │ │ +1290 const bool _a_c_r_o_s_s = true) const; │ │ │ │ │ 1291 │ │ │ │ │ 1305 void │ │ │ │ │ 1306 _s_w_a_p(_V_e_c_t_o_r &v) noexcept; │ │ │ │ │ 1307 │ │ │ │ │ 1311 std::size_t │ │ │ │ │ 1312 _m_e_m_o_r_y___c_o_n_s_u_m_p_t_i_o_n() const; │ │ │ │ │ 1313 │ │ │ │ │ 1317 _M_P_I___C_o_m_m │ │ │ │ │ _1_3_1_8 _g_e_t___m_p_i___c_o_m_m_u_n_i_c_a_t_o_r() const; │ │ │ │ │ _1_3_2_4 _D_e_c_l_E_x_c_e_p_t_i_o_n_0(_E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g); │ │ │ │ │ 1325 │ │ │ │ │ 1329 _D_e_c_l_E_x_c_e_p_t_i_o_n_1(_E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r, │ │ │ │ │ 1330 int, │ │ │ │ │ -1331 << "An error with error number " << arg1 │ │ │ │ │ +1331 << "An error with error number " << _a_r_g_1 │ │ │ │ │ _1_3_3_2 << " occurred while calling a Trilinos function"); │ │ │ │ │ 1333 │ │ │ │ │ 1337 _D_e_c_l_E_x_c_e_p_t_i_o_n_4( │ │ │ │ │ 1338 _E_x_c_A_c_c_e_s_s_T_o_N_o_n_L_o_c_a_l_E_l_e_m_e_n_t, │ │ │ │ │ 1339 _s_i_z_e___t_y_p_e, │ │ │ │ │ 1340 _s_i_z_e___t_y_p_e, │ │ │ │ │ 1341 _s_i_z_e___t_y_p_e, │ │ │ │ │ 1342 _s_i_z_e___t_y_p_e, │ │ │ │ │ -1343 << "You are trying to access element " << arg1 │ │ │ │ │ +1343 << "You are trying to access element " << _a_r_g_1 │ │ │ │ │ 1344 << " of a distributed vector, but this element is not stored " │ │ │ │ │ -1345 << "on the current processor. Note: There are " << arg2 │ │ │ │ │ +1345 << "on the current processor. Note: There are " << _a_r_g_2 │ │ │ │ │ 1346 << " elements stored " │ │ │ │ │ -1347 << "on the current processor from within the range [" << arg3 << ',' │ │ │ │ │ -1348 << arg4 << "] but Trilinos vectors need not store contiguous " │ │ │ │ │ +1347 << "on the current processor from within the range [" << _a_r_g_3 << ',' │ │ │ │ │ +1348 << _a_r_g_4 << "] but Trilinos vectors need not store contiguous " │ │ │ │ │ 1349 << "ranges on each processor, and not every element in " │ │ │ │ │ 1350 << "this range may in fact be stored locally." │ │ │ │ │ 1351 << "\n\n" │ │ │ │ │ 1352 << "A common source for this kind of problem is that you " │ │ │ │ │ 1353 << "are passing a 'fully distributed' vector into a function " │ │ │ │ │ 1354 << "that needs read access to vector elements that correspond " │ │ │ │ │ 1355 << "to degrees of freedom on ghost cells (or at least to " │ │ │ │ │ @@ -575,17 +575,17 @@ │ │ │ │ │ 1508 } // namespace internal │ │ │ │ │ 1509 │ │ │ │ │ 1510 namespace _M_P_I │ │ │ │ │ 1511 { │ │ │ │ │ 1512 inline bool │ │ │ │ │ 1513 _V_e_c_t_o_r_:_:_i_n___l_o_c_a_l___r_a_n_g_e(const size_type index) const │ │ │ │ │ 1514 { │ │ │ │ │ -1515 std::pair range = _l_o_c_a_l___r_a_n_g_e(); │ │ │ │ │ +1515 std::pair _r_a_n_g_e = _l_o_c_a_l___r_a_n_g_e(); │ │ │ │ │ 1516 │ │ │ │ │ -1517 return ((index >= range.first) && (index < range.second)); │ │ │ │ │ +1517 return ((index >= _r_a_n_g_e.first) && (index < _r_a_n_g_e.second)); │ │ │ │ │ 1518 } │ │ │ │ │ 1519 │ │ │ │ │ 1520 │ │ │ │ │ 1521 │ │ │ │ │ 1522 inline _I_n_d_e_x_S_e_t │ │ │ │ │ 1523 _V_e_c_t_o_r_:_:_l_o_c_a_l_l_y___o_w_n_e_d___e_l_e_m_e_n_t_s() const │ │ │ │ │ 1524 { │ │ │ │ │ @@ -663,19 +663,19 @@ │ │ │ │ │ 1596 │ │ │ │ │ 1597 template │ │ │ │ │ 1598 inline void │ │ │ │ │ 1599 _V_e_c_t_o_r_:_:_e_x_t_r_a_c_t___s_u_b_v_e_c_t_o_r___t_o(ForwardIterator indices_begin, │ │ │ │ │ 1600 const ForwardIterator indices_end, │ │ │ │ │ 1601 OutputIterator values_begin) const │ │ │ │ │ 1602 { │ │ │ │ │ -1603 while (indices_begin != indices_end) │ │ │ │ │ +1603 while (_i_n_d_i_c_e_s___b_e_g_i_n != _i_n_d_i_c_e_s___e_n_d) │ │ │ │ │ 1604 { │ │ │ │ │ -1605 *values_begin = _o_p_e_r_a_t_o_r_(_)(*indices_begin); │ │ │ │ │ -1606 ++indices_begin; │ │ │ │ │ -1607 ++values_begin; │ │ │ │ │ +1605 *_v_a_l_u_e_s___b_e_g_i_n = _o_p_e_r_a_t_o_r_(_)(*_i_n_d_i_c_e_s___b_e_g_i_n); │ │ │ │ │ +1606 ++_i_n_d_i_c_e_s___b_e_g_i_n; │ │ │ │ │ +1607 ++_v_a_l_u_e_s___b_e_g_i_n; │ │ │ │ │ 1608 } │ │ │ │ │ 1609 } │ │ │ │ │ 1610 │ │ │ │ │ 1611 │ │ │ │ │ 1612 │ │ │ │ │ 1613 inline _V_e_c_t_o_r_:_:_i_t_e_r_a_t_o_r │ │ │ │ │ 1614 _V_e_c_t_o_r_:_:_b_e_g_i_n() │ │ │ │ │ @@ -744,34 +744,34 @@ │ │ │ │ │ 1677 const size_type *indices, │ │ │ │ │ 1678 const _T_r_i_l_i_n_o_s_S_c_a_l_a_r *values) │ │ │ │ │ 1679 { │ │ │ │ │ 1680 // if we have ghost values, do not allow │ │ │ │ │ 1681 // writing to this vector at all. │ │ │ │ │ 1682 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 1683 │ │ │ │ │ -1684 if (_l_a_s_t___a_c_t_i_o_n == Add) │ │ │ │ │ +1684 if (_l_a_s_t___a_c_t_i_o_n == _A_d_d) │ │ │ │ │ 1685 { │ │ │ │ │ -1686 const int ierr = _v_e_c_t_o_r->GlobalAssemble(Add); │ │ │ │ │ -1687 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1686 const int _i_e_r_r = _v_e_c_t_o_r->GlobalAssemble(_A_d_d); │ │ │ │ │ +1687 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1688 } │ │ │ │ │ 1689 │ │ │ │ │ -1690 if (_l_a_s_t___a_c_t_i_o_n != Insert) │ │ │ │ │ -1691 _l_a_s_t___a_c_t_i_o_n = Insert; │ │ │ │ │ +1690 if (_l_a_s_t___a_c_t_i_o_n != _I_n_s_e_r_t) │ │ │ │ │ +1691 _l_a_s_t___a_c_t_i_o_n = _I_n_s_e_r_t; │ │ │ │ │ 1692 │ │ │ │ │ 1693 for (_s_i_z_e___t_y_p_e i = 0; i < n_elements; ++i) │ │ │ │ │ 1694 { │ │ │ │ │ 1695 const _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e row = indices[i]; │ │ │ │ │ -1696 const _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e local_row = │ │ │ │ │ +1696 const _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e _l_o_c_a_l___r_o_w = │ │ │ │ │ 1697 _v_e_c_t_o_r->Map().LID(row); │ │ │ │ │ -1698 if (local_row != -1) │ │ │ │ │ -1699 (*vector)[0][local_row] = _v_a_l_u_e_s[i]; │ │ │ │ │ +1698 if (_l_o_c_a_l___r_o_w != -1) │ │ │ │ │ +1699 (*vector)[0][_l_o_c_a_l___r_o_w] = _v_a_l_u_e_s[i]; │ │ │ │ │ 1700 else │ │ │ │ │ 1701 { │ │ │ │ │ -1702 const int ierr = _v_e_c_t_o_r->ReplaceGlobalValues(1, &row, &values[i]); │ │ │ │ │ -1703 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1702 const int _i_e_r_r = _v_e_c_t_o_r->ReplaceGlobalValues(1, &row, &values[i]); │ │ │ │ │ +1703 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1704 _c_o_m_p_r_e_s_s_e_d = false; │ │ │ │ │ 1705 } │ │ │ │ │ 1706 // in set operation, do not use the pre-allocated vector for nonlocal │ │ │ │ │ 1707 // entries even if it exists. This is to ensure that we really only │ │ │ │ │ 1708 // set the elements touched by the set() method and not all contained │ │ │ │ │ 1709 // in the nonlocal entries vector (there is no way to distinguish them │ │ │ │ │ 1710 // on the receiving processor) │ │ │ │ │ @@ -813,54 +813,54 @@ │ │ │ │ │ 1746 const size_type *indices, │ │ │ │ │ 1747 const _T_r_i_l_i_n_o_s_S_c_a_l_a_r *values) │ │ │ │ │ 1748 { │ │ │ │ │ 1749 // if we have ghost values, do not allow │ │ │ │ │ 1750 // writing to this vector at all. │ │ │ │ │ 1751 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 1752 │ │ │ │ │ -1753 if (_l_a_s_t___a_c_t_i_o_n != Add) │ │ │ │ │ +1753 if (_l_a_s_t___a_c_t_i_o_n != _A_d_d) │ │ │ │ │ 1754 { │ │ │ │ │ -1755 if (_l_a_s_t___a_c_t_i_o_n == Insert) │ │ │ │ │ +1755 if (_l_a_s_t___a_c_t_i_o_n == _I_n_s_e_r_t) │ │ │ │ │ 1756 { │ │ │ │ │ -1757 const int ierr = _v_e_c_t_o_r->GlobalAssemble(Insert); │ │ │ │ │ -1758 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1757 const int _i_e_r_r = _v_e_c_t_o_r->GlobalAssemble(_I_n_s_e_r_t); │ │ │ │ │ +1758 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1759 } │ │ │ │ │ -1760 _l_a_s_t___a_c_t_i_o_n = Add; │ │ │ │ │ +1760 _l_a_s_t___a_c_t_i_o_n = _A_d_d; │ │ │ │ │ 1761 } │ │ │ │ │ 1762 │ │ │ │ │ 1763 for (_s_i_z_e___t_y_p_e i = 0; i < n_elements; ++i) │ │ │ │ │ 1764 { │ │ │ │ │ 1765 const _s_i_z_e___t_y_p_e row = indices[i]; │ │ │ │ │ -1766 const _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e local_row = _v_e_c_t_o_r->Map().LID( │ │ │ │ │ +1766 const _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e _l_o_c_a_l___r_o_w = _v_e_c_t_o_r->Map().LID( │ │ │ │ │ 1767 static_cast<_T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e>(row)); │ │ │ │ │ -1768 if (local_row != -1) │ │ │ │ │ -1769 (*vector)[0][local_row] += _v_a_l_u_e_s[i]; │ │ │ │ │ +1768 if (_l_o_c_a_l___r_o_w != -1) │ │ │ │ │ +1769 (*vector)[0][_l_o_c_a_l___r_o_w] += _v_a_l_u_e_s[i]; │ │ │ │ │ 1770 else if (_n_o_n_l_o_c_a_l___v_e_c_t_o_r.get() == nullptr) │ │ │ │ │ 1771 { │ │ │ │ │ -1772 const int ierr = _v_e_c_t_o_r->SumIntoGlobalValues( │ │ │ │ │ +1772 const int _i_e_r_r = _v_e_c_t_o_r->SumIntoGlobalValues( │ │ │ │ │ 1773 1, │ │ │ │ │ 1774 reinterpret_cast( │ │ │ │ │ 1775 &row), │ │ │ │ │ 1776 &values[i]); │ │ │ │ │ -1777 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1777 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1778 _c_o_m_p_r_e_s_s_e_d = false; │ │ │ │ │ 1779 } │ │ │ │ │ 1780 else │ │ │ │ │ 1781 { │ │ │ │ │ 1782 // use pre-allocated vector for non-local entries if it exists for │ │ │ │ │ 1783 // addition operation │ │ │ │ │ -1784 const _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e my_row = │ │ │ │ │ +1784 const _T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e _m_y___r_o_w = │ │ │ │ │ 1785 _n_o_n_l_o_c_a_l___v_e_c_t_o_r->Map().LID( │ │ │ │ │ 1786 static_cast<_T_r_i_l_i_n_o_s_W_r_a_p_p_e_r_s_:_:_t_y_p_e_s_:_:_i_n_t___t_y_p_e>(row)); │ │ │ │ │ -1787 _A_s_s_e_r_t(my_row != -1, │ │ │ │ │ +1787 _A_s_s_e_r_t(_m_y___r_o_w != -1, │ │ │ │ │ 1788 _E_x_c_M_e_s_s_a_g_e( │ │ │ │ │ 1789 "Attempted to write into off-processor vector entry " │ │ │ │ │ 1790 "that has not be specified as being writable upon " │ │ │ │ │ 1791 "initialization")); │ │ │ │ │ -1792 (*nonlocal_vector)[0][my_row] += _v_a_l_u_e_s[i]; │ │ │ │ │ +1792 (*nonlocal_vector)[0][_m_y___r_o_w] += _v_a_l_u_e_s[i]; │ │ │ │ │ 1793 _c_o_m_p_r_e_s_s_e_d = false; │ │ │ │ │ 1794 } │ │ │ │ │ 1795 } │ │ │ │ │ 1796 } │ │ │ │ │ 1797 │ │ │ │ │ 1798 │ │ │ │ │ 1799 │ │ │ │ │ @@ -909,24 +909,24 @@ │ │ │ │ │ 1842 } │ │ │ │ │ 1843 │ │ │ │ │ 1844 │ │ │ │ │ 1845 │ │ │ │ │ 1846 inline _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ 1847 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_*(const _V_e_c_t_o_r &vec) const │ │ │ │ │ 1848 { │ │ │ │ │ -1849 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(vec.vector->Map()), │ │ │ │ │ +1849 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(_v_e_c.vector->Map()), │ │ │ │ │ 1850 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ 1851 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 1852 │ │ │ │ │ -1853 _T_r_i_l_i_n_o_s_S_c_a_l_a_r result; │ │ │ │ │ +1853 _T_r_i_l_i_n_o_s_S_c_a_l_a_r _r_e_s_u_l_t; │ │ │ │ │ 1854 │ │ │ │ │ -1855 const int ierr = _v_e_c_t_o_r->Dot(*(vec.vector), &result); │ │ │ │ │ -1856 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1855 const int _i_e_r_r = _v_e_c_t_o_r->Dot(*(_v_e_c.vector), &_r_e_s_u_l_t); │ │ │ │ │ +1856 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1857 │ │ │ │ │ -1858 return result; │ │ │ │ │ +1858 return _r_e_s_u_l_t; │ │ │ │ │ 1859 } │ │ │ │ │ 1860 │ │ │ │ │ 1861 │ │ │ │ │ 1862 │ │ │ │ │ 1863 inline _V_e_c_t_o_r_:_:_r_e_a_l___t_y_p_e │ │ │ │ │ 1864 _V_e_c_t_o_r_:_:_n_o_r_m___s_q_r() const │ │ │ │ │ 1865 { │ │ │ │ │ @@ -938,86 +938,86 @@ │ │ │ │ │ 1871 │ │ │ │ │ 1872 inline _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ 1873 _V_e_c_t_o_r_:_:_m_e_a_n___v_a_l_u_e() const │ │ │ │ │ 1874 { │ │ │ │ │ 1875 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 1876 │ │ │ │ │ 1877 _T_r_i_l_i_n_o_s_S_c_a_l_a_r _m_e_a_n; │ │ │ │ │ -1878 const int ierr = _v_e_c_t_o_r->MeanValue(&mean); │ │ │ │ │ -1879 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1878 const int _i_e_r_r = _v_e_c_t_o_r->MeanValue(&mean); │ │ │ │ │ +1879 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1880 │ │ │ │ │ 1881 return _m_e_a_n; │ │ │ │ │ 1882 } │ │ │ │ │ 1883 │ │ │ │ │ 1884 │ │ │ │ │ 1885 │ │ │ │ │ 1886 inline _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ 1887 _V_e_c_t_o_r_:_:_m_i_n() const │ │ │ │ │ 1888 { │ │ │ │ │ -1889 _T_r_i_l_i_n_o_s_S_c_a_l_a_r min_value; │ │ │ │ │ -1890 const int ierr = _v_e_c_t_o_r->MinValue(&min_value); │ │ │ │ │ -1891 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1889 _T_r_i_l_i_n_o_s_S_c_a_l_a_r _m_i_n___v_a_l_u_e; │ │ │ │ │ +1890 const int _i_e_r_r = _v_e_c_t_o_r->MinValue(&_m_i_n___v_a_l_u_e); │ │ │ │ │ +1891 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1892 │ │ │ │ │ -1893 return min_value; │ │ │ │ │ +1893 return _m_i_n___v_a_l_u_e; │ │ │ │ │ 1894 } │ │ │ │ │ 1895 │ │ │ │ │ 1896 │ │ │ │ │ 1897 │ │ │ │ │ 1898 inline _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ 1899 _V_e_c_t_o_r_:_:_m_a_x() const │ │ │ │ │ 1900 { │ │ │ │ │ -1901 _T_r_i_l_i_n_o_s_S_c_a_l_a_r max_value; │ │ │ │ │ -1902 const int ierr = _v_e_c_t_o_r->MaxValue(&max_value); │ │ │ │ │ -1903 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1901 _T_r_i_l_i_n_o_s_S_c_a_l_a_r _m_a_x___v_a_l_u_e; │ │ │ │ │ +1902 const int _i_e_r_r = _v_e_c_t_o_r->MaxValue(&_m_a_x___v_a_l_u_e); │ │ │ │ │ +1903 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1904 │ │ │ │ │ -1905 return max_value; │ │ │ │ │ +1905 return _m_a_x___v_a_l_u_e; │ │ │ │ │ 1906 } │ │ │ │ │ 1907 │ │ │ │ │ 1908 │ │ │ │ │ 1909 │ │ │ │ │ 1910 inline _V_e_c_t_o_r_:_:_r_e_a_l___t_y_p_e │ │ │ │ │ 1911 _V_e_c_t_o_r_:_:_l_1___n_o_r_m() const │ │ │ │ │ 1912 { │ │ │ │ │ 1913 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 1914 │ │ │ │ │ 1915 _T_r_i_l_i_n_o_s_S_c_a_l_a_r _d; │ │ │ │ │ -1916 const int ierr = _v_e_c_t_o_r->Norm1(&d); │ │ │ │ │ -1917 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1916 const int _i_e_r_r = _v_e_c_t_o_r->Norm1(&d); │ │ │ │ │ +1917 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1918 │ │ │ │ │ 1919 return _d; │ │ │ │ │ 1920 } │ │ │ │ │ 1921 │ │ │ │ │ 1922 │ │ │ │ │ 1923 │ │ │ │ │ 1924 inline _V_e_c_t_o_r_:_:_r_e_a_l___t_y_p_e │ │ │ │ │ 1925 _V_e_c_t_o_r_:_:_l_2___n_o_r_m() const │ │ │ │ │ 1926 { │ │ │ │ │ 1927 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 1928 │ │ │ │ │ 1929 _T_r_i_l_i_n_o_s_S_c_a_l_a_r _d; │ │ │ │ │ -1930 const int ierr = _v_e_c_t_o_r->Norm2(&d); │ │ │ │ │ -1931 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1930 const int _i_e_r_r = _v_e_c_t_o_r->Norm2(&d); │ │ │ │ │ +1931 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1932 │ │ │ │ │ 1933 return _d; │ │ │ │ │ 1934 } │ │ │ │ │ 1935 │ │ │ │ │ 1936 │ │ │ │ │ 1937 │ │ │ │ │ 1938 inline _V_e_c_t_o_r_:_:_r_e_a_l___t_y_p_e │ │ │ │ │ 1939 _V_e_c_t_o_r_:_:_l_p___n_o_r_m(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r p) const │ │ │ │ │ 1940 { │ │ │ │ │ 1941 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 1942 │ │ │ │ │ 1943 _T_r_i_l_i_n_o_s_S_c_a_l_a_r _n_o_r_m = 0; │ │ │ │ │ 1944 _T_r_i_l_i_n_o_s_S_c_a_l_a_r _s_u_m = 0; │ │ │ │ │ -1945 const _s_i_z_e___t_y_p_e n_local = _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e(); │ │ │ │ │ +1945 const _s_i_z_e___t_y_p_e _n___l_o_c_a_l = _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e(); │ │ │ │ │ 1946 │ │ │ │ │ 1947 // loop over all the elements because │ │ │ │ │ 1948 // Trilinos does not support lp norms │ │ │ │ │ -1949 for (_s_i_z_e___t_y_p_e i = 0; i < n_local; ++i) │ │ │ │ │ +1949 for (_s_i_z_e___t_y_p_e i = 0; i < _n___l_o_c_a_l; ++i) │ │ │ │ │ 1950 sum += _s_t_d_:_:_p_o_w(std::fabs((*_v_e_c_t_o_r)[0][i]), p); │ │ │ │ │ 1951 │ │ │ │ │ 1952 _n_o_r_m = _s_t_d_:_:_p_o_w(sum, static_cast<_T_r_i_l_i_n_o_s_S_c_a_l_a_r>(1. / p)); │ │ │ │ │ 1953 │ │ │ │ │ 1954 return _n_o_r_m; │ │ │ │ │ 1955 } │ │ │ │ │ 1956 │ │ │ │ │ @@ -1028,16 +1028,16 @@ │ │ │ │ │ 1961 { │ │ │ │ │ 1962 // while we disallow the other │ │ │ │ │ 1963 // norm operations on ghosted │ │ │ │ │ 1964 // vectors, this particular norm │ │ │ │ │ 1965 // is safe to run even in the │ │ │ │ │ 1966 // presence of ghost elements │ │ │ │ │ 1967 _T_r_i_l_i_n_o_s_S_c_a_l_a_r _d; │ │ │ │ │ -1968 const int ierr = _v_e_c_t_o_r->NormInf(&d); │ │ │ │ │ -1969 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1968 const int _i_e_r_r = _v_e_c_t_o_r->NormInf(&d); │ │ │ │ │ +1969 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1970 │ │ │ │ │ 1971 return _d; │ │ │ │ │ 1972 } │ │ │ │ │ 1973 │ │ │ │ │ 1974 │ │ │ │ │ 1975 │ │ │ │ │ 1976 inline _T_r_i_l_i_n_o_s_S_c_a_l_a_r │ │ │ │ │ @@ -1057,16 +1057,16 @@ │ │ │ │ │ 1990 // call. This reduces the overhead of the │ │ │ │ │ 1991 // wrapper class. │ │ │ │ │ 1992 inline _V_e_c_t_o_r & │ │ │ │ │ 1993 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_*_=(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a) │ │ │ │ │ 1994 { │ │ │ │ │ 1995 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(a); │ │ │ │ │ 1996 │ │ │ │ │ -1997 const int ierr = _v_e_c_t_o_r->Scale(a); │ │ │ │ │ -1998 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +1997 const int _i_e_r_r = _v_e_c_t_o_r->Scale(a); │ │ │ │ │ +1998 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 1999 │ │ │ │ │ 2000 return *this; │ │ │ │ │ 2001 } │ │ │ │ │ 2002 │ │ │ │ │ 2003 │ │ │ │ │ 2004 │ │ │ │ │ 2005 inline _V_e_c_t_o_r & │ │ │ │ │ @@ -1074,62 +1074,62 @@ │ │ │ │ │ 2007 { │ │ │ │ │ 2008 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(a); │ │ │ │ │ 2009 │ │ │ │ │ 2010 const _T_r_i_l_i_n_o_s_S_c_a_l_a_r factor = 1. / a; │ │ │ │ │ 2011 │ │ │ │ │ 2012 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(factor); │ │ │ │ │ 2013 │ │ │ │ │ -2014 const int ierr = _v_e_c_t_o_r->Scale(factor); │ │ │ │ │ -2015 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2014 const int _i_e_r_r = _v_e_c_t_o_r->Scale(factor); │ │ │ │ │ +2015 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2016 │ │ │ │ │ 2017 return *this; │ │ │ │ │ 2018 } │ │ │ │ │ 2019 │ │ │ │ │ 2020 │ │ │ │ │ 2021 │ │ │ │ │ 2022 inline _V_e_c_t_o_r & │ │ │ │ │ 2023 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_+_=(const _V_e_c_t_o_r &v) │ │ │ │ │ 2024 { │ │ │ │ │ 2025 _A_s_s_e_r_t_D_i_m_e_n_s_i_o_n(_s_i_z_e(), v._s_i_z_e()); │ │ │ │ │ 2026 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(v.vector->Map()), │ │ │ │ │ 2027 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ 2028 │ │ │ │ │ -2029 const int ierr = _v_e_c_t_o_r->Update(1.0, *(v.vector), 1.0); │ │ │ │ │ -2030 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2029 const int _i_e_r_r = _v_e_c_t_o_r->Update(1.0, *(v.vector), 1.0); │ │ │ │ │ +2030 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2031 │ │ │ │ │ 2032 return *this; │ │ │ │ │ 2033 } │ │ │ │ │ 2034 │ │ │ │ │ 2035 │ │ │ │ │ 2036 │ │ │ │ │ 2037 inline _V_e_c_t_o_r & │ │ │ │ │ 2038 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_-_=(const _V_e_c_t_o_r &v) │ │ │ │ │ 2039 { │ │ │ │ │ 2040 _A_s_s_e_r_t_D_i_m_e_n_s_i_o_n(_s_i_z_e(), v._s_i_z_e()); │ │ │ │ │ 2041 _A_s_s_e_r_t(_v_e_c_t_o_r->Map().SameAs(v.vector->Map()), │ │ │ │ │ 2042 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ 2043 │ │ │ │ │ -2044 const int ierr = _v_e_c_t_o_r->Update(-1.0, *(v.vector), 1.0); │ │ │ │ │ -2045 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2044 const int _i_e_r_r = _v_e_c_t_o_r->Update(-1.0, *(v.vector), 1.0); │ │ │ │ │ +2045 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2046 │ │ │ │ │ 2047 return *this; │ │ │ │ │ 2048 } │ │ │ │ │ 2049 │ │ │ │ │ 2050 │ │ │ │ │ 2051 │ │ │ │ │ 2052 inline void │ │ │ │ │ 2053 _V_e_c_t_o_r_:_:_a_d_d(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s) │ │ │ │ │ 2054 { │ │ │ │ │ 2055 // if we have ghost values, do not allow │ │ │ │ │ 2056 // writing to this vector at all. │ │ │ │ │ 2057 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 2058 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(s); │ │ │ │ │ 2059 │ │ │ │ │ -2060 _s_i_z_e___t_y_p_e n_local = _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e(); │ │ │ │ │ -2061 for (_s_i_z_e___t_y_p_e i = 0; i < n_local; ++i) │ │ │ │ │ +2060 _s_i_z_e___t_y_p_e _n___l_o_c_a_l = _l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e(); │ │ │ │ │ +2061 for (_s_i_z_e___t_y_p_e i = 0; i < _n___l_o_c_a_l; ++i) │ │ │ │ │ 2062 (*_v_e_c_t_o_r)[0][i] += s; │ │ │ │ │ 2063 } │ │ │ │ │ 2064 │ │ │ │ │ 2065 │ │ │ │ │ 2066 │ │ │ │ │ 2067 inline void │ │ │ │ │ 2068 _V_e_c_t_o_r_:_:_a_d_d(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const _V_e_c_t_o_r &v) │ │ │ │ │ @@ -1137,16 +1137,16 @@ │ │ │ │ │ 2070 // if we have ghost values, do not allow │ │ │ │ │ 2071 // writing to this vector at all. │ │ │ │ │ 2072 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 2073 _A_s_s_e_r_t_D_i_m_e_n_s_i_o_n(_l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e(), v._l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e()); │ │ │ │ │ 2074 │ │ │ │ │ 2075 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(a); │ │ │ │ │ 2076 │ │ │ │ │ -2077 const int ierr = _v_e_c_t_o_r->Update(a, *(v.vector), 1.); │ │ │ │ │ -2078 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2077 const int _i_e_r_r = _v_e_c_t_o_r->Update(a, *(v.vector), 1.); │ │ │ │ │ +2078 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2079 } │ │ │ │ │ 2080 │ │ │ │ │ 2081 │ │ │ │ │ 2082 │ │ │ │ │ 2083 inline void │ │ │ │ │ 2084 _V_e_c_t_o_r_:_:_a_d_d(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, │ │ │ │ │ 2085 const _V_e_c_t_o_r &v, │ │ │ │ │ @@ -1158,17 +1158,17 @@ │ │ │ │ │ 2091 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 2092 _A_s_s_e_r_t_D_i_m_e_n_s_i_o_n(_l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e(), v._l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e()); │ │ │ │ │ 2093 _A_s_s_e_r_t_D_i_m_e_n_s_i_o_n(_l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e(), _w.locally_owned_size()); │ │ │ │ │ 2094 │ │ │ │ │ 2095 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(a); │ │ │ │ │ 2096 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(b); │ │ │ │ │ 2097 │ │ │ │ │ -2098 const int ierr = _v_e_c_t_o_r->Update(a, *(v.vector), b, *(_w.vector), 1.); │ │ │ │ │ +2098 const int _i_e_r_r = _v_e_c_t_o_r->Update(a, *(v.vector), b, *(_w.vector), 1.); │ │ │ │ │ 2099 │ │ │ │ │ -2100 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2100 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2101 } │ │ │ │ │ 2102 │ │ │ │ │ 2103 │ │ │ │ │ 2104 │ │ │ │ │ 2105 inline void │ │ │ │ │ 2106 _V_e_c_t_o_r_:_:_s_a_d_d(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s, const _V_e_c_t_o_r &v) │ │ │ │ │ 2107 { │ │ │ │ │ @@ -1182,16 +1182,16 @@ │ │ │ │ │ 2115 // We assume that the vectors have the same Map │ │ │ │ │ 2116 // if the local size is the same and if the vectors are not ghosted │ │ │ │ │ 2117 if (_l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e() == v._l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e() && │ │ │ │ │ 2118 !v._h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s()) │ │ │ │ │ 2119 { │ │ │ │ │ 2120 _A_s_s_e_r_t(this->_v_e_c_t_o_r->Map().SameAs(v.vector->Map()) == true, │ │ │ │ │ 2121 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ -2122 const int ierr = _v_e_c_t_o_r->Update(1., *(v.vector), s); │ │ │ │ │ -2123 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2122 const int _i_e_r_r = _v_e_c_t_o_r->Update(1., *(v.vector), s); │ │ │ │ │ +2123 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2124 } │ │ │ │ │ 2125 else │ │ │ │ │ 2126 { │ │ │ │ │ 2127 (*this) *= s; │ │ │ │ │ 2128 this->_a_d_d(v, true); │ │ │ │ │ 2129 } │ │ │ │ │ 2130 } │ │ │ │ │ @@ -1213,16 +1213,16 @@ │ │ │ │ │ 2146 // We assume that the vectors have the same Map │ │ │ │ │ 2147 // if the local size is the same and if the vectors are not ghosted │ │ │ │ │ 2148 if (_l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e() == v._l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e() && │ │ │ │ │ 2149 !v._h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s()) │ │ │ │ │ 2150 { │ │ │ │ │ 2151 _A_s_s_e_r_t(this->_v_e_c_t_o_r->Map().SameAs(v.vector->Map()) == true, │ │ │ │ │ 2152 _E_x_c_D_i_f_f_e_r_e_n_t_P_a_r_a_l_l_e_l_P_a_r_t_i_t_i_o_n_i_n_g()); │ │ │ │ │ -2153 const int ierr = _v_e_c_t_o_r->Update(a, *(v.vector), s); │ │ │ │ │ -2154 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2153 const int _i_e_r_r = _v_e_c_t_o_r->Update(a, *(v.vector), s); │ │ │ │ │ +2154 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2155 } │ │ │ │ │ 2156 else │ │ │ │ │ 2157 { │ │ │ │ │ 2158 (*this) *= s; │ │ │ │ │ 2159 _V_e_c_t_o_r tmp = v; │ │ │ │ │ 2160 tmp *= a; │ │ │ │ │ 2161 this->_a_d_d(tmp, true); │ │ │ │ │ @@ -1235,16 +1235,16 @@ │ │ │ │ │ 2168 _V_e_c_t_o_r_:_:_s_c_a_l_e(const _V_e_c_t_o_r &factors) │ │ │ │ │ 2169 { │ │ │ │ │ 2170 // if we have ghost values, do not allow │ │ │ │ │ 2171 // writing to this vector at all. │ │ │ │ │ 2172 _A_s_s_e_r_t(!_h_a_s___g_h_o_s_t___e_l_e_m_e_n_t_s(), _E_x_c_G_h_o_s_t_s_P_r_e_s_e_n_t()); │ │ │ │ │ 2173 _A_s_s_e_r_t_D_i_m_e_n_s_i_o_n(_l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e(), factors._l_o_c_a_l_l_y___o_w_n_e_d___s_i_z_e()); │ │ │ │ │ 2174 │ │ │ │ │ -2175 const int ierr = _v_e_c_t_o_r->Multiply(1.0, *(factors.vector), *_v_e_c_t_o_r, 0.0); │ │ │ │ │ -2176 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2175 const int _i_e_r_r = _v_e_c_t_o_r->Multiply(1.0, *(factors.vector), *_v_e_c_t_o_r, 0.0); │ │ │ │ │ +2176 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2177 } │ │ │ │ │ 2178 │ │ │ │ │ 2179 │ │ │ │ │ 2180 │ │ │ │ │ 2181 inline void │ │ │ │ │ 2182 _V_e_c_t_o_r_:_:_e_q_u(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r a, const _V_e_c_t_o_r &v) │ │ │ │ │ 2183 { │ │ │ │ │ @@ -1257,18 +1257,18 @@ │ │ │ │ │ 2190 if (_v_e_c_t_o_r->Map().SameAs(v.vector->Map()) == false) │ │ │ │ │ 2191 { │ │ │ │ │ 2192 this->_s_a_d_d(0., a, v); │ │ │ │ │ 2193 } │ │ │ │ │ 2194 else │ │ │ │ │ 2195 { │ │ │ │ │ 2196 // Otherwise, just update │ │ │ │ │ -2197 int ierr = _v_e_c_t_o_r->Update(a, *v.vector, 0.0); │ │ │ │ │ -2198 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2197 int _i_e_r_r = _v_e_c_t_o_r->Update(a, *v.vector, 0.0); │ │ │ │ │ +2198 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2199 │ │ │ │ │ -2200 _l_a_s_t___a_c_t_i_o_n = Zero; │ │ │ │ │ +2200 _l_a_s_t___a_c_t_i_o_n = _Z_e_r_o; │ │ │ │ │ 2201 } │ │ │ │ │ 2202 } │ │ │ │ │ 2203 │ │ │ │ │ 2204 │ │ │ │ │ 2205 │ │ │ │ │ 2206 inline const Epetra_MultiVector & │ │ │ │ │ 2207 _V_e_c_t_o_r_:_:_t_r_i_l_i_n_o_s___v_e_c_t_o_r() const │ │ │ │ │ @@ -1306,32 +1306,32 @@ │ │ │ │ │ 2239 │ │ │ │ │ 2240 template │ │ │ │ │ 2241 _V_e_c_t_o_r_:_:_V_e_c_t_o_r(const _I_n_d_e_x_S_e_t ¶llel_partitioner, │ │ │ │ │ 2242 const ::Vector &v, │ │ │ │ │ 2243 const _M_P_I___C_o_m_m communicator) │ │ │ │ │ 2244 { │ │ │ │ │ 2245 *this = │ │ │ │ │ -2246 _V_e_c_t_o_r(parallel_partitioner._m_a_k_e___t_r_i_l_i_n_o_s___m_a_p(communicator, true), v); │ │ │ │ │ -2247 _o_w_n_e_d___e_l_e_m_e_n_t_s = parallel_partitioner; │ │ │ │ │ +2246 _V_e_c_t_o_r(_p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r.make_trilinos_map(communicator, true), v); │ │ │ │ │ +2247 _o_w_n_e_d___e_l_e_m_e_n_t_s = _p_a_r_a_l_l_e_l___p_a_r_t_i_t_i_o_n_e_r; │ │ │ │ │ 2248 } │ │ │ │ │ 2249 │ │ │ │ │ 2250 │ │ │ │ │ 2251 │ │ │ │ │ 2252 inline _V_e_c_t_o_r & │ │ │ │ │ 2253 _V_e_c_t_o_r_:_:_o_p_e_r_a_t_o_r_=(const _T_r_i_l_i_n_o_s_S_c_a_l_a_r s) │ │ │ │ │ 2254 { │ │ │ │ │ 2255 _A_s_s_e_r_t_I_s_F_i_n_i_t_e(s); │ │ │ │ │ 2256 │ │ │ │ │ -2257 int ierr = _v_e_c_t_o_r->PutScalar(s); │ │ │ │ │ -2258 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2257 int _i_e_r_r = _v_e_c_t_o_r->PutScalar(s); │ │ │ │ │ +2258 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2259 │ │ │ │ │ 2260 if (_n_o_n_l_o_c_a_l___v_e_c_t_o_r.get() != nullptr) │ │ │ │ │ 2261 { │ │ │ │ │ -2262 ierr = _n_o_n_l_o_c_a_l___v_e_c_t_o_r->PutScalar(0.); │ │ │ │ │ -2263 _A_s_s_e_r_t_T_h_r_o_w(ierr == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(ierr)); │ │ │ │ │ +2262 _i_e_r_r = _n_o_n_l_o_c_a_l___v_e_c_t_o_r->PutScalar(0.); │ │ │ │ │ +2263 _A_s_s_e_r_t_T_h_r_o_w(_i_e_r_r == 0, _E_x_c_T_r_i_l_i_n_o_s_E_r_r_o_r(_i_e_r_r)); │ │ │ │ │ 2264 } │ │ │ │ │ 2265 │ │ │ │ │ 2266 return *this; │ │ │ │ │ 2267 } │ │ │ │ │ 2268 } /* end of namespace MPI */ │ │ │ │ │ 2269 │ │ │ │ │ 2270# endif /* DOXYGEN */ │ │ │ │ │ @@ -1399,18 +1399,14 @@ │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_7_0 │ │ │ │ │ _I_n_d_e_x_S_e_t_:_:_s_i_z_e │ │ │ │ │ size_type size() const │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_7_7_6 │ │ │ │ │ _I_n_d_e_x_S_e_t_:_:_n___e_l_e_m_e_n_t_s │ │ │ │ │ size_type n_elements() const │ │ │ │ │ DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._h_:_1_9_3_4 │ │ │ │ │ -_I_n_d_e_x_S_e_t_:_:_m_a_k_e___t_r_i_l_i_n_o_s___m_a_p │ │ │ │ │ -Epetra_Map make_trilinos_map(const MPI_Comm communicator=MPI_COMM_WORLD, const │ │ │ │ │ -bool overlapping=false) const │ │ │ │ │ -DDeeffiinniittiioonn _i_n_d_e_x___s_e_t_._c_c_:_1_0_4_1 │ │ │ │ │ _L_i_n_e_a_r_A_l_g_e_b_r_a_:_:_R_e_a_d_W_r_i_t_e_V_e_c_t_o_r │ │ │ │ │ DDeeffiinniittiioonn _r_e_a_d___w_r_i_t_e___v_e_c_t_o_r_._h_:_1_3_7 │ │ │ │ │ _M_P_I___C_o_m_m │ │ │ │ │ _R_e_a_d_V_e_c_t_o_r │ │ │ │ │ DDeeffiinniittiioonn _r_e_a_d___v_e_c_t_o_r_._h_:_4_1 │ │ │ │ │ _S_p_a_r_s_e_M_a_t_r_i_x │ │ │ │ │ DDeeffiinniittiioonn _s_p_a_r_s_e___m_a_t_r_i_x_._h_:_5_2_0