On 7/24/24 10:34, Vinayak Vijay wrote:

Since all the quantities in the rhs are SymmetricTensors, the operator*() recognises the multiplication as a double contraction. However, we want it to be a single contraction. So I must first convert 'b' to the type Tensor and then apply the formula. This will lead to Jc being of the type Tensor and not SymmetricTensor. Now there's a function symmetrize() to symmetrize the type Tensor<2,dim>, but not for higher-order tensor types. One could manually do this, but is there a better way?  If not, would it be a good idea to extend the symmetrize() function to Tensor<4,dim> since this type is often used to represent many quantities, such as the elasticity tensors?

Vinayak,
I would accept a patch for such a function, though perhaps under a different name. The issue with the term 'symmetrize()' is that there are multiple ways in which one could interpret it for tensors of rank 4. Do you want the result to satisfy
  A_{ijkl} = A_{ijlk} = A_{jikl} = A_{jilk}
or do you want it to be
  A_{ijkl} = A_{klij}
or something else? The same discussion of course applies to the name "symmetric tensor of rank 4", which specifically uses the first of these definitions above -- i.e., it maps symmetric tensors of rank 2 to symmetric tensors of rank 2.

Best
 W.

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/8b18931d-d3a4-4f54-9a7d-1a3c442c35f6%40colostate.edu.

Reply via email to