How to define a specific symmetric property for my rank-3 tensor?

279 views
Skip to first unread message

Sebastian Bahamonde

unread,
Nov 24, 2023, 1:01:30 PM11/24/23
to xAct Tensor Computer Algebra
  Hello, 

I have been trying to efficiently incorporate in xAct a particular symmetric property for one of my tensors and I cannot do it.

I have a 3-rank tensor which is antisymmetric in the last two indices:

t_{λ[ρμ]}= t_{λ[μρ]} . 

On top of this, this tensor is totally traceless. 

To do this I am using:   

DefTensor[ttensor[-\[Mu], -\[Nu], -\[Lambda]], M,
 Antisymmetric[{-\[Nu], -\[Lambda]}]]

AutomaticRules[ttensor,
  MakeRule[{ttensor[-\[Lambda], -\[Mu], \[Mu]], 0},
   PatternIndices -> All, MetricOn -> All]];
AutomaticRules[ttensor,
  MakeRule[{ttensor[-\[Mu], -\[Lambda], \[Mu]], 0},
   PatternIndices -> All, MetricOn -> All]];

That's the simplest part. However, my tensor has another symmetric property, which is the vanishing of its totally antisymmetric part:

t_ {[ρμν]} = 1/3( t_ {μνρ}    -  t_{νμρ}+   t_{ρμν} )=0     

 ->   . t_{νμρ}=t_ {μνρ}+  t_{ρμν}.

How can I incorporate that specific symmetric property?

I am using
zerotrule3 =   MakeRule[{ttensor[-\[Nu], -\[Mu], -\[Rho]],
    ttensor[-\[Rho], -\[Mu], -\[Nu]] +
     ttensor[-\[Mu], -\[Nu], -\[Rho]]}]; 

but it does not work properly, since if I use it:
photo1.jpg
so, the rule is applied to all the tensors, and then, the simplification does not work.

On the other hand, if i manually replace it in one of the terms:

photo2.jpg

it gives me the correct result.  

I would like to incorporate this rule in a more efficient way since I do not want to manually replace it in every part of my code (I have very long equations)

Is there any way to do this? Perhaps, using "GenSet[whatever]" with a specific group symmetry (but I do not know the group symmetry of my tensor).

Thank you very much in advance,
Sebastian




Jose

unread,
Dec 16, 2023, 5:21:31 AM12/16/23
to xAct Tensor Computer Algebra
Hi,

This is a multiterm symmetry that cannot be implemented with a generating set. You would need to use a Young tableaux, or a rule that takes into account the order of the indices. For example:

ttensor /: ttensor[\[Nu]_, \[Mu]_, \[Rho]_] := -ttensor[\[Mu], \[Rho], \[Nu]] - ttensor[\[Rho], \[Nu], \[Mu]] /; OrderedQ[{\[Mu], \[Nu]}] && OrderedQ[{\[Rho], \[Nu]}]

Then something like this works:

In[8]:= ttensor[-\[Mu], -\[Nu], -\[Rho]] - ttensor[-\[Nu], -\[Mu], -\[Rho]] + ttensor[-\[Rho], -\[Mu], -\[Nu]] // ToCanonical
Out[8]= 0

Cheers,
Jose.

Reply all
Reply to author
Forward
0 new messages