]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Adjust return type of eigenvectors(SymmetricTensor). 17849/head
authorWolfgang Bangerth <bangerth@colostate.edu>
Thu, 7 Nov 2024 01:05:12 +0000 (18:05 -0700)
committerWolfgang Bangerth <bangerth@colostate.edu>
Thu, 7 Nov 2024 21:33:49 +0000 (14:33 -0700)
include/deal.II/base/symmetric_tensor.h
include/deal.II/base/symmetric_tensor.templates.h
source/base/symmetric_tensor.cc
source/base/symmetric_tensor.inst.in

index d0ac3626a8854d5f11df1db91bc1d002f0fca8cc..c2346b665b9a0994dc8e4da45353903aaece67f5 100644 (file)
@@ -3025,8 +3025,7 @@ enum struct SymmetricTensorEigenvectorMethod
  * @relatesalso SymmetricTensor
  */
 template <int dim, typename Number>
-std::array<std::pair<Number, Tensor<1, dim, Number>>,
-           std::integral_constant<int, dim>::value>
+std::array<std::pair<Number, Tensor<1, dim, Number>>, dim>
 eigenvectors(const SymmetricTensor<2, dim, Number> &T,
              const SymmetricTensorEigenvectorMethod method =
                SymmetricTensorEigenvectorMethod::ql_implicit_shifts);
index 2498998f1b6f3d7560f87a9412dd869bf1a474f7..b54b715939c8f638480747c1bb3db694ba1a7e60 100644 (file)
@@ -848,8 +848,7 @@ namespace internal
 
 
 template <int dim, typename Number>
-std::array<std::pair<Number, Tensor<1, dim, Number>>,
-           std::integral_constant<int, dim>::value>
+std::array<std::pair<Number, Tensor<1, dim, Number>>, dim>
 eigenvectors(const SymmetricTensor<2, dim, Number> &T,
              const SymmetricTensorEigenvectorMethod method)
 {
@@ -1055,18 +1054,18 @@ eigenvalues(const SymmetricTensor<2, 3, adouble> & /*T*/);
 
 template <>
 std::array<std::pair<adouble, Tensor<1, 1, adouble>>, 1>
-eigenvectors(const SymmetricTensor<2, 1, adouble> & /*T*/,
-             const SymmetricTensorEigenvectorMethod /*method*/);
+eigenvectors<1, adouble>(const SymmetricTensor<2, 1, adouble> & /*T*/,
+                         const SymmetricTensorEigenvectorMethod /*method*/);
 
 template <>
 std::array<std::pair<adouble, Tensor<1, 2, adouble>>, 2>
-eigenvectors(const SymmetricTensor<2, 2, adouble> & /*T*/,
-             const SymmetricTensorEigenvectorMethod /*method*/);
+eigenvectors<2, adouble>(const SymmetricTensor<2, 2, adouble> & /*T*/,
+                         const SymmetricTensorEigenvectorMethod /*method*/);
 
 template <>
 std::array<std::pair<adouble, Tensor<1, 3, adouble>>, 3>
-eigenvectors(const SymmetricTensor<2, 3, adouble> & /*T*/,
-             const SymmetricTensorEigenvectorMethod /*method*/);
+eigenvectors<3, adouble>(const SymmetricTensor<2, 3, adouble> & /*T*/,
+                         const SymmetricTensorEigenvectorMethod /*method*/);
 #endif
 
 DEAL_II_NAMESPACE_CLOSE
index 341420406b8eae703b83efae4bb3ee498608b15a..8c9fb0a3d3710242b60404080070e103cafaa69e 100644 (file)
@@ -83,8 +83,8 @@ eigenvalues(const SymmetricTensor<2, 3, adouble> & /*T*/)
 
 template <>
 std::array<std::pair<adouble, Tensor<1, 1, adouble>>, 1>
-eigenvectors(const SymmetricTensor<2, 1, adouble> & /*T*/,
-             const SymmetricTensorEigenvectorMethod /*method*/)
+eigenvectors<1, adouble>(const SymmetricTensor<2, 1, adouble> & /*T*/,
+                         const SymmetricTensorEigenvectorMethod /*method*/)
 {
   AssertThrow(false, ExcADOLCAdvancedBranching());
   return std::array<std::pair<adouble, Tensor<1, 1, adouble>>, 1>();
@@ -94,8 +94,8 @@ eigenvectors(const SymmetricTensor<2, 1, adouble> & /*T*/,
 
 template <>
 std::array<std::pair<adouble, Tensor<1, 2, adouble>>, 2>
-eigenvectors(const SymmetricTensor<2, 2, adouble> & /*T*/,
-             const SymmetricTensorEigenvectorMethod /*method*/)
+eigenvectors<2, adouble>(const SymmetricTensor<2, 2, adouble> & /*T*/,
+                         const SymmetricTensorEigenvectorMethod /*method*/)
 {
   AssertThrow(false, ExcADOLCAdvancedBranching());
   return std::array<std::pair<adouble, Tensor<1, 2, adouble>>, 2>();
@@ -105,8 +105,8 @@ eigenvectors(const SymmetricTensor<2, 2, adouble> & /*T*/,
 
 template <>
 std::array<std::pair<adouble, Tensor<1, 3, adouble>>, 3>
-eigenvectors(const SymmetricTensor<2, 3, adouble> & /*T*/,
-             const SymmetricTensorEigenvectorMethod /*method*/)
+eigenvectors<3, adouble>(const SymmetricTensor<2, 3, adouble> & /*T*/,
+                         const SymmetricTensorEigenvectorMethod /*method*/)
 {
   AssertThrow(false, ExcADOLCAdvancedBranching());
   return std::array<std::pair<adouble, Tensor<1, 3, adouble>>, 3>();
@@ -124,16 +124,16 @@ template std::array<adouble, 3>
 eigenvalues(const SymmetricTensor<2, 3, adouble> &);
 
 template std::array<std::pair<adouble, Tensor<1, 1, adouble>>, 1>
-eigenvectors(const SymmetricTensor<2, 1, adouble> &,
-             const SymmetricTensorEigenvectorMethod);
+eigenvectors<1, adouble>(const SymmetricTensor<2, 1, adouble> &,
+                         const SymmetricTensorEigenvectorMethod);
 
 template std::array<std::pair<adouble, Tensor<1, 2, adouble>>, 2>
-eigenvectors(const SymmetricTensor<2, 2, adouble> &,
-             const SymmetricTensorEigenvectorMethod);
+eigenvectors<2, adouble>(const SymmetricTensor<2, 2, adouble> &,
+                         const SymmetricTensorEigenvectorMethod);
 
 template std::array<std::pair<adouble, Tensor<1, 3, adouble>>, 3>
-eigenvectors(const SymmetricTensor<2, 3, adouble> &,
-             const SymmetricTensorEigenvectorMethod);
+eigenvectors<3, adouble>(const SymmetricTensor<2, 3, adouble> &,
+                         const SymmetricTensorEigenvectorMethod);
 #  endif
 
 template std::array<adtl::adouble, 1>
@@ -146,16 +146,16 @@ template std::array<adtl::adouble, 3>
 eigenvalues(const SymmetricTensor<2, 3, adtl::adouble> &);
 
 template std::array<std::pair<adtl::adouble, Tensor<1, 1, adtl::adouble>>, 1>
-eigenvectors(const SymmetricTensor<2, 1, adtl::adouble> &,
-             const SymmetricTensorEigenvectorMethod);
+eigenvectors<1, adtl::adouble>(const SymmetricTensor<2, 1, adtl::adouble> &,
+                               const SymmetricTensorEigenvectorMethod);
 
 template std::array<std::pair<adtl::adouble, Tensor<1, 2, adtl::adouble>>, 2>
-eigenvectors(const SymmetricTensor<2, 2, adtl::adouble> &,
-             const SymmetricTensorEigenvectorMethod);
+eigenvectors<2, adtl::adouble>(const SymmetricTensor<2, 2, adtl::adouble> &,
+                               const SymmetricTensorEigenvectorMethod);
 
 template std::array<std::pair<adtl::adouble, Tensor<1, 3, adtl::adouble>>, 3>
-eigenvectors(const SymmetricTensor<2, 3, adtl::adouble> &,
-             const SymmetricTensorEigenvectorMethod);
+eigenvectors<3, adtl::adouble>(const SymmetricTensor<2, 3, adtl::adouble> &,
+                               const SymmetricTensorEigenvectorMethod);
 #endif
 
 // explicit instantiations
index 0474476c6233bf5b7ed4300c369e714982a7c052..c402f3b55e8b26acafac193bc3450d6109fc6fbe 100644 (file)
@@ -23,9 +23,10 @@ for (deal_II_dimension : DIMENSIONS; number : REAL_SCALARS)
       const SymmetricTensor<2, deal_II_dimension, number> &);
 
     template std::array<std::pair<number, Tensor<1, deal_II_dimension, number>>,
-                        std::integral_constant<int, deal_II_dimension>::value>
-    eigenvectors(const SymmetricTensor<2, deal_II_dimension, number> &,
-                 const SymmetricTensorEigenvectorMethod);
+                        deal_II_dimension>
+    eigenvectors<deal_II_dimension, number>(
+      const SymmetricTensor<2, deal_II_dimension, number> &,
+      const SymmetricTensorEigenvectorMethod);
   }
 
 for (deal_II_dimension : DIMENSIONS; number : DIFFERENTIABLE_ADOLC_REAL_SCALARS)
@@ -46,9 +47,10 @@ for (deal_II_dimension : DIMENSIONS;
       const SymmetricTensor<2, deal_II_dimension, number> &);
 
     template std::array<std::pair<number, Tensor<1, deal_II_dimension, number>>,
-                        std::integral_constant<int, deal_II_dimension>::value>
-    eigenvectors(const SymmetricTensor<2, deal_II_dimension, number> &,
-                 const SymmetricTensorEigenvectorMethod);
+                        deal_II_dimension>
+    eigenvectors<deal_II_dimension, number>(
+      const SymmetricTensor<2, deal_II_dimension, number> &,
+      const SymmetricTensorEigenvectorMethod);
   }
 
 for (deal_II_dimension : DIMENSIONS; number : COMPLEX_SCALARS)

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.