From ca7fc09f8f56c0ec8897e6bd6fe48bf1e829fd76 Mon Sep 17 00:00:00 2001 From: wolf Date: Mon, 23 May 2005 19:30:08 +0000 Subject: [PATCH] Have a function that generates a unit tensor. git-svn-id: https://svn.dealii.org/trunk@10700 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/base/include/base/symmetric_tensor.h | 60 +++++++++++++++++++- 1 file changed, 58 insertions(+), 2 deletions(-) diff --git a/deal.II/base/include/base/symmetric_tensor.h b/deal.II/base/include/base/symmetric_tensor.h index 57a843aa5f..5e90df4723 100644 --- a/deal.II/base/include/base/symmetric_tensor.h +++ b/deal.II/base/include/base/symmetric_tensor.h @@ -20,7 +20,6 @@ template class SymmetricTensor; - namespace internal { /** @@ -859,10 +858,13 @@ class SymmetricTensor friend double determinant (const SymmetricTensor<2,2> &t); friend double determinant (const SymmetricTensor<2,3> &t); - + template friend SymmetricTensor<2,dim2> deviator (const SymmetricTensor<2,dim2> &t); + + template + friend SymmetricTensor<2,dim2> unit_symmetric_tensor (); }; @@ -1964,6 +1966,60 @@ deviator (const SymmetricTensor<2,dim> &t) +/** + * Return a unit symmetric tensor of rank 2 and dimension 1. + * + * @relates SymmetricTensor + * @author Wolfgang Bangerth, 2005 + */ +template <> +inline +SymmetricTensor<2,1> +unit_symmetric_tensor<1> () +{ + SymmetricTensor<2,1> tmp; + tmp.data[0] = 1; + return tmp; +} + + + +/** + * Return a unit symmetric tensor of rank 2 and dimension 2. + * + * @relates SymmetricTensor + * @author Wolfgang Bangerth, 2005 + */ +template <> +inline +SymmetricTensor<2,2> +unit_symmetric_tensor<2> () +{ + SymmetricTensor<2,2> tmp; + tmp.data[0] = tmp.data[1] = 1; + return tmp; +} + + + +/** + * Return a unit symmetric tensor of rank 2 and dimension 3. + * + * @relates SymmetricTensor + * @author Wolfgang Bangerth, 2005 + */ +template <> +inline +SymmetricTensor<2,3> +unit_symmetric_tensor<3> () +{ + SymmetricTensor<2,3> tmp; + tmp.data[0] = tmp.data[1] = tmp.data[2] = 1; + return tmp; +} + + + /** * Return the symmetrized version of the full rank-2 tensor, * i.e. (t+transpose(t))/2, as a symmetric rank-2 tensor. -- 2.39.5