Expanding products of Riemann Tensors

303 views
Skip to first unread message

Nathan Moynihan

unread,
Jan 22, 2016, 3:27:59 PM1/22/16
to xAct Tensor Computer Algebra
I am trying to perturbatively expand the product of two Riemann Tensors, in fact what I want to expand is:

1/(2 k^2) Sqrt[-Detg[]]RiemannCD[s, -t, -a, -b]RiemannCD[t, -s, -m, -n]


I have roughly something like this:

<< xAct`xPert`;

(* Define a manifold *)
DefManifold[M4, 4, {a, b, c, d, e, m, n, p, q, r, s, t, l}];

(* Define a metric Subscript[g, ab] *)
DefMetric[{1, 3, 0}, g[-m, -n], CD, {";", "\[Del]"}, Torsion -> False, Curvature -> True, PrintAs -> "g"];

(* Define the metric perturbation *)
DefMetricPerturbation[g, h, k];

LGR = 1/(2 k^2)Sqrt[-Detg[]].RiemannCD[s, -t, -a, -b].RiemannCD[t, -s, -m, -n];

Perturbed[LGR, 2]


Now this does spit out something, but its still in terms of the Riemann tensor R^s_tab. How can I expand it only in terms of the flat space metric and the perturbing metric h?


Also, is there a way to define the Levi-Cevita tensor to contract with? For example if I wanted to do something like E^abcd R_abcd, where E is the Levi Cevita tensor and R the Riemann tensor.

Many Thanks,
Nathan

pedram karimi

unread,
Jan 22, 2016, 4:22:50 PM1/22/16
to xAct Tensor Computer Algebra
hello
check these commands
<< xAct`xPert`;
$PrePrint = ScreenDollarIndices
DefManifold[M4, 4, {a, b, c, d, e, m, n, p, q, r, s, t, l}];
DefMetric[{1, 3, 0}, g[-m, -n], CD, {";", "\[Del]"}, Torsion -> False,
   Curvature -> True, PrintAs -> "g"];
DefConstantSymbol[k]
DefMetricPerturbation[g, h, \[Epsilon]]
LGR = 1/(2 k^2) Sqrt[-Detg[]] RiemannCD[s, -t, -a, -b] RiemannCD[
   t, -s, -m, -n]
Perturbed[LGR, 2]
% // ExpandPerturbation


best Pedram

Jose

unread,
Jan 23, 2016, 12:34:04 AM1/23/16
to xAct Tensor Computer Algebra
Hi,

Two comments:

1) The epsilon tensor of your metric g is epsilong . So you can have epsilong[a, b, c, d] or epsilong[a, b, -c, -d] , etc.

2) To expand in terms of a flat background, the simplest thing to do is to eliminate all background Riemann tensors, so after the second order expansion given by Pedram you can replace RiemanCD -> Zero . Then you are left with a quadratic expression in terms of the first order H perturbations.

If you wanted to expand in terms of a nontrivial metric then you would have to load xCoba and define the metric in terms of CTensor objects, etc.

Cheers,
Jose.

Nathan Moynihan

unread,
Jan 23, 2016, 11:09:56 AM1/23/16
to xAct Tensor Computer Algebra
Thanks Jose,

One question - If I do Perturbed[expr,n], then I see things like Delta[epsilong[a, b, c, d]] showing up in the expansion (which I assume is the perturbation of the epsilon tensor), are these evaluated at somepoint, i.e. during ExpandPerturbation?

Also, is there a way to impose gauge conditions, i.e. the De Donder gauge or something during/after expansions? (Perhaps using MakeRule?)

Thanks,
Nathan

Jose

unread,
Jan 24, 2016, 11:56:50 AM1/24/16
to xAct Tensor Computer Algebra


On Saturday, January 23, 2016 at 10:09:56 AM UTC-6, Nathan Moynihan wrote:
Thanks Jose,

One question - If I do Perturbed[expr,n], then I see things like Delta[epsilong[a, b, c, d]] showing up in the expansion (which I assume is the perturbation of the epsilon tensor),

Yes, that's it. Perturbation[expr] is typeset as Delta[expr].

 
are these evaluated at somepoint, i.e. during ExpandPerturbation?

Exactly. ExpandPerturbation is the function that takes Perturbation[expr, n] objects and converts them into expressions involving the metric perturbations of appropriate order.

 

Also, is there a way to impose gauge conditions, i.e. the De Donder gauge or something during/after expansions? (Perhaps using MakeRule?)

I see this question has been answered by Mario in another thread. Just two comments:

- MakeRule will construct a rule that you have to use manually wherever needed, while AutomaticRules will try to make those rules work automatically. This is like the difference between Rule and Set, respectively. You decide what is most convenient for you.

- As pointed out by Mario, these rules will only work if the expression you want to replace appears in your input exactly as you wrote it in the LHS of the rules. If a covariant derivative appears in your input expanded into Christoffels for example, the rule will not see it. In other words, imposing a gauge may have more consequences (in objects other than the LHS of your rule) that you need to impose manually as well.

Cheers,
Jose.

Nathan Moynihan

unread,
Jan 24, 2016, 12:47:44 PM1/24/16
to xAct Tensor Computer Algebra
Thank you very much for your help Jose.

One more quick question if you don't mind - When I want to do something to the perturbed object, i.e. h[LI[1],a,b], is there a way I can operate on it without specifying the order? i.e. act on it to all orders?

Many Thanks,
Nathan

Jose

unread,
Jan 24, 2016, 1:03:04 PM1/24/16
to xAct Tensor Computer Algebra
I would use a pattern for the perturbation index. Say:

expr /. h[LI[n_], a_, b_] :> DoSomething[h[LI[n], a, b]]

or

expr /. hpert: h[_LI, _, _] :> DoSomething[hpert]

or using rules constructed with IndexRule or MakeRule. That can act on all metric perturbation objects h[...] of the expression expr.

Cheers,
Jose.

Nathan Moynihan

unread,
Jan 25, 2016, 9:17:28 AM1/25/16
to xAct Tensor Computer Algebra
Thanks Jose,

I have tried using MakeRules in this way, but it doesn't seem to work.

For example:
ruleDD = MakeRule[{CD[-a]@h[LI[z_], a, b], 1/2 CD[b]@h[LI[z], a, -a]}, MetricOn -> All, UseSymmetries -> True];

Gives me the error:

Pattern::patvar: "First element in pattern Pattern[z_,_] is not a valid pattern name"

What should I be using in this case?

Many Thanks,
Nathan

Reply all
Reply to author
Forward
0 new messages