Xact provides inconsistent answers with 3+1 decomposition

61 views
Skip to first unread message

Abhishek Hegde K R

unread,
May 9, 2025, 4:05:52 PMMay 9
to xAct Tensor Computer Algebra
Hi everyone,

I have been working on obtaining the 3+1 decomposition of the linearized Einstein equations from a Lagrangian. I have used the notebooks available online from Leo Stein and Helvi Witek to develop my code. I found that applying ToCanonical and Contractmetric sometimes gives the wrong answer. I have attached a MWE to this post to highlight when it happens.

The notebook first sets up the 3+1 decomposition following Leo's notebook. In the actual computation section, I define a tensor field hpert[mu,nu] that is supposed physically represent a metric perturbation.

Screenshot 2025-05-09 at 2.21.37 PM.png

I then define other auxillary tensors that I use for the 3+1 decomposition of the metric 
perturbation tensor 

Screenshot 2025-05-09 at 2.22.38 PM.png
which I store in the hpertrule3p1 rule

Screenshot 2025-05-09 at 2.23.51 PM.png
In the MWE, I use the Lagrangian function to show how xact gives inconsistent answers.
The commands that I use are

Screenshot 2025-05-09 at 2.25.01 PM.png
The behavior could be because of my misunderstanding of xact. Please let me know if there is some mistake that I might have made in the execution of the commands.

Best,
Abhishek




MWE.nb

Cyril Pitrou

unread,
May 9, 2025, 5:09:22 PMMay 9
to Abhishek Hegde K R, xAct Tensor Computer Algebra
Dear Abhishek,

Your MWE is very clear so I felt like understanding it.
I think the 1+3 of xAct is OK there.
As far as I can tell nothing is wrong there, and here is what I think happens :  

In the first case the Contractmetric moves the position of some indices, hence you end up having 
Lie derivatives of tensors or vectors with indices up in one case, and not in the other case.

Since the Lie derivative is not compatible with the metric in general, you cannot set by brute force that all Lie derivatives vanish.
That would require LieD[u][g[a,b]] = 0 which gives D_a u_b + D_b u_a=0. Contracted with u^a and the normalization of u, this implies that the acceleration must vanish.
You can notice that the difference in both expression involves the acceleration in all terms. 
This is because you would need to also set acceleration to 0 to have the right to remove all Lie derivatives, regardless of index positions.

I hope this helps,

All the best,
Cyril Pitrou


--
You received this message because you are subscribed to the Google Groups "xAct Tensor Computer Algebra" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xact+uns...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/xact/9a4d5428-94f7-4a09-b59c-83dd79914929n%40googlegroups.com.

Abhishek Hegde K R

unread,
May 9, 2025, 10:08:13 PMMay 9
to xAct Tensor Computer Algebra
Ah, I see. Thank you very much for catching the mistake. 

I do have a follow up question on this now. My ultimate goal is to calculate the 3+1 split of the Lagrangian function in the notebook. In the background spacetime there is a Killing vector t[mu] which is related to the normal vector as u[-mu] = - \alpha_1 t[-\mu]. The functions are independent of time and I made the mistake of assuming the Lie derivative along u would be zero. I can follow the route of defining a vector field t[mu] and making a rule which substitutes how u[mu] depends on t[mu]. But, I think this would lead to the same mistake as before if I'm not careful in contracting the indices.

What would be the best way to implement this? I am not sure what is the best way to go from the abstract expression to a derivative along t.

Best,
Abhishek

Reply all
Reply to author
Forward
0 new messages