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)
{
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
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>();
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>();
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>();
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>
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
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)
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)