Introducing a trace-reversed Perturbation with xPert

307 views
Skip to first unread message

Jorge Preciado

unread,
Jan 9, 2014, 5:19:52 AM1/9/14
to xa...@googlegroups.com
Hi everyone

I recently started using this wonderful tool with xPert for linearized gravity. However, I'm having problems when i study perturbations and try to introduce a trace-reversed perturbation, as it is usually done in the literature, (see for example eq. (5.15) http://elmer.caltech.edu/ph237/week6/KipNewWindow5.pdf). This trace-reversed metric perturbation allows to nicely express the linearized equations of gravity. This is what I have tried:

(*INITIALIZATION*)

<< xAct`xPert`

$PrePrint = ScreenDollarIndices; 

$CovDFormat = "Prefix"; 

$CommuteCovDsOnScalars = True;

(*Print the Perturbation Order in Blue Color*)
Unprotect[IndexForm];
IndexForm[LI[x_]] := ColorString[ToString[x], RGBColor[0, 0, 1]];
Protect[IndexForm];


(* Organize terms acoording to perturbation order *)
org[expr_] := Collect[ContractMetric[expr], $PerturbationParameter, ToCanonical]; 


(*Definitions*)

DefManifold[M, 4, {a, b, c, d, e, f, l, m, n}]
DefMetric[-1, g[-a, -b], CD, PrintAs -> "g", WeightedWithBasis -> AIndex,CurvatureRelations -> True]


(*HERE I TRY TO INTRODUCE THE TRACE-REVERSED PERTURBATION*)

DefMetricPerturbation[g, h, ε]
DefTensor[H[LI["order"], -a, -b], M, Symmetric[{-a, -b}]]

h[LI[ord_Integer?Positive], inds__] := H[LI[ord], inds] - 1/2 g[inds] Module[{c}, H[LI[order], c, -c]]



NOW THE PROBLEM!!!

When I try to calculate the perturbation of the Christoffel and the Riemann tensors this apparently works, but for the Ricci Tensor, Ricci Scalar and Einstein Tensor I get an ERROR. For example:


Perturbed[RicciCD[-a, -b] , 1] // ExpandPerturbation // Simplification // org

Validate::inhom : Found inhomogeneous indices: {IndexList[-a, -b], IndexList[-b, -n$35799]}.

Throw::nocatch : Uncaught Throw[Null] returned to top level.



I really need to solve this problem but I have no idea how to do it and I'm also not a Mathematica expert. Could you please help me??



Cheers,


Jorge Preciado

ghadir jafari

unread,
Jan 9, 2014, 2:53:30 PM1/9/14
to xa...@googlegroups.com
Hi  Jorge Preciado
" Validate::inhom : Found inhomogeneous indices" Is because free indices in an expression do not match.
probably in one rule substitution this happened.  may be there:

h[LI[ord_Integer?Positive], inds__] := H[LI[ord], inds] - 1/2 g[inds] Module[{c}, H[LI[order], c, -c]]

I Can't understand what this is for.

در پنجشنبه 9 ژانویهٔ 2014، ساعت 13:49:52 (UTC+3:30)، Jorge Preciado نوشته:

Barry Wardell

unread,
Jan 9, 2014, 4:48:47 PM1/9/14
to Jorge Preciado, xAct Tensor Computer Algebra
Hi Jorge,

I'm not sure why xPert is giving you that specific error, but one option to achieve what you want is to use an IndexRule to replace h with H. To do this you would replace your last two lines (defining h in terms of H and computing the perturbed Ricci) with the following:

traceReverse = IndexRule[h[LI[ord_Integer?Positive], a_, b_], H[LI[ord], a, b] - 1/2 g[a, b] H[LI[order], c, -c]];
ExpandPerturbation[Perturbed[RicciCD[-a, -b], 1]] /. traceReverse // Simplification // org

Regards,
Barry



--
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.
For more options, visit https://groups.google.com/groups/opt_out.

Jorge Preciado

unread,
Jan 11, 2014, 4:58:54 PM1/11/14
to xa...@googlegroups.com
Hi Ghadir Jafari

You're right the problem is due to a conflict with some indices but I still don't know very well why this happens. The problem has been nicely solved with the recommendation of Barry Wardell, by using an IndexRule instead of a delayed function substitution.

Thank you very much for your comment!!

Jorge

Jorge Preciado

unread,
Jan 11, 2014, 5:13:45 PM1/11/14
to xa...@googlegroups.com, Jorge Preciado
Hi Barry

Your recommendation has worked perfectly and solved the problem related with the indices that do not match. This seems to be a problem when a perturbation requires the introduction of dummy indices. For example you don't need dummy indices to express the perturbation of the Christoffel Symbol. But for the perturbation of the Ricci and Einstein Tensors or the Ricci Scalar, they are required.

This is why my original idea only worked for perturbations of the metric or the Christoffel symbols. Once I used your recommendation I was able to calculate the perturbation of any of the curvature tensors. However, even by using your rule one must be careful because I then tried to commute some covariant derivatives and experienced some problems again due to the dummy indices problem. I just had to include a ScreenDollarIndices command after every perturbation. For example:

ExpandPerturbation[Perturbed[EinsteinCD[a, b] , 1]] /. traceReverse // ToCanonical // Simplification // org // ScreenDollarIndices


I don't know why I have to include a ScreenDollarIndices if I have previously set $PrePrint = ScreenDollarIndices; but with this everything works perfectly.

Thank you very much for your help. I truly appreciate it!!

Jorge
Reply all
Reply to author
Forward
0 new messages