From 233490eb6f3bffbf770b6853b91814e716dd372b Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Wed, 6 Apr 2005 04:14:45 +0000 Subject: [PATCH] Introduce conversion operators to full tensors. git-svn-id: https://svn.dealii.org/trunk@10374 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/base/include/base/symmetric_tensor.h | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/deal.II/base/include/base/symmetric_tensor.h b/deal.II/base/include/base/symmetric_tensor.h index ba35bee7ee..5af05ade35 100644 --- a/deal.II/base/include/base/symmetric_tensor.h +++ b/deal.II/base/include/base/symmetric_tensor.h @@ -615,6 +615,14 @@ class SymmetricTensor */ SymmetricTensor & operator = (const SymmetricTensor &); + /** + * Convert the present symmetric tensor + * into a full tensor with the same + * elements, but using the different + * storage scheme of full tensors. + */ + operator Tensor () const; + /** * Test for equality of two tensors. */ @@ -897,6 +905,42 @@ SymmetricTensor::operator = (const SymmetricTensor &t) +template <> +inline +SymmetricTensor<2,1>:: +operator Tensor<2,1> () const +{ + const double t[1][1] = {{data[0]}}; + return Tensor<2,1>(t); +} + + + +template <> +inline +SymmetricTensor<2,2>:: +operator Tensor<2,2> () const +{ + const double t[2][2] = {{data[0], data[2]}, + {data[2], data[1]}}; + return Tensor<2,2>(t); +} + + + +template <> +inline +SymmetricTensor<2,3>:: +operator Tensor<2,3> () const +{ + const double t[3][3] = {{data[0], data[3], data[4]}, + {data[3], data[1], data[5]}, + {data[4], data[5], data[2]}}; + return Tensor<2,3>(t); +} + + + template inline bool -- 2.39.5