Quit[]

Action and EOMS

Pacotes e definições

Load the xAct packages

<<xAct`xTensor`;
<<xAct`xPert`;
<<xAct`xCoba`;
<<xAct`xTras`;

Define the metric etc..

DefManifold[M,4,{a,b,c,d,e,f,h,i,j,k,l}];
DefMetric[-1,g[-a,-b],CD,SymbolOfCovD->{"|","∇"},PrintAs->"g"];
$Pre=ScreenDollarIndices;
SetOptions[ContractMetric,AllowUpperDerivatives->True];
Unprotect[IndexForm];
IndexForm[LI[x_]]:=ColorString[ToString[x],RGBColor[0,0,1]];
Protect[IndexForm];
DefMetricPerturbation[g,metpert,ϵ];
PrintAs[metpert]^="h";

DefConstantSymbol[Mp,PrintAs->"(Subscript[M, pl])"]

Define the Gauss Bonnet invariant

Define scalar and scalar function

DefScalarFunction[F]
DefScalarFunction[Vv]
DefScalarFunction[Vs]
DefTensor[Phi[],M,PrintAs->"ϕ"]
DefTensor[Phib[],M,PrintAs->"(OverBar[ϕ])"]
DefTensor[Av[a],M,PrintAs->"A"]
DefTensor[Bv[a],M,PrintAs->"B"]
DefTensor[Bvc[a],M,PrintAs->"(OverBar[B])"]
DefConstantSymbol[G]
DefConstantSymbol[Mass,PrintAs->"M"]
DefConstantSymbol[α,PrintAs->"α"]
DefConstantSymbol[q,PrintAs->"q"]
DefConstantSymbol[β]
DefConstantSymbol[κ]

I set (Subscript[M, pl]) = 1 to avoid confusion. If you want to see the G’s just comment this out.

Mp=1

resto

SF=-(1/2)(CD[-b][Phib[]]+I q Av[-b]Phib[])(CD[b][Phi[]]-I q Av[b]Phi[])-(1/2)Vs[Phib[]Phi[]]-(1/4)(CD[a][Av[b]]-CD[b][Av[a]])(CD[-a][Av[-b]]-CD[-b][Av[-a]])-(1/4)(CD[a][Bvc[b]]-CD[b][Bvc[a]])(CD[-a][Bv[-b]]-CD[-b][Bv[-a]])-(1/2)Vv[Bvc[-b]Bv[b]]

Load the action. Note that I set g=1 for simplicity. You can restore it by setting α’->α’/g^2

L=(((RicciScalarCD[])/κ)+SF);

Action=Sqrt[-Detg[]]*L

Define scalar perturbation

Clear[δϕ,δϕb,δA,δB,δBb,δg]

DefMetricPerturbation[g,δg,ϵ]
DefTensorPerturbation[δϕ[LI["order"]],Phi[],ϵ,PrintAs->"δϕ"]
DefTensorPerturbation[δϕb[LI["order"]],Phib[],ϵ,PrintAs->"δ(OverBar[ϕ])"]
DefTensorPerturbation[δA[LI["order"],a],Av[a],ϵ,PrintAs->"δA"]
DefTensorPerturbation[δB[LI["order"],a],Bv[a],ϵ,PrintAs->"δB"]
DefTensorPerturbation[δBb[LI["order"],a],Bvc[a],ϵ,PrintAs->"δ(OverBar[B])"]

Varied Lagrangian:

LagrP=Perturbation[Action]//ExpandPerturbation//ContractMetric//ToCanonical

Field equations:

LI is just a label index. We enforce the rule delta[-LI[1],LI[1]]->1 because xTensor does not deal with it

Modified Einstein’s equations:

EQgrav=κ((((VarD[δg[LI[1],a,b],CD][- LagrP])/(Sqrt[-Detg[]]))/.delta[-LI[1],LI[1]]->1))//RicciToEinstein//ContractMetric//ToCanonical//SortCovDs//Simplification

Scalar equation:

EQscal=2((((VarD[δϕb[LI[1]],CD][LagrP])/(Sqrt[-Detg[]]))/.delta[-LI[1],LI[1]]->1//ContractMetric//ToCanonical))//ScreenDollarIndices//RicciToEinstein//ContractMetric//Simplification//Simplify

EQEM=((((VarD[δA[LI[1],-a],CD][LagrP])/(Sqrt[-Detg[]]))/.delta[-LI[1],LI[1]]->1//ContractMetric//ToCanonical))//ScreenDollarIndices//RicciToEinstein//ContractMetric//Simplification//Simplify

EQVEC=2((((VarD[δBb[LI[1],-a],CD][LagrP])/(Sqrt[-Detg[]]))/.delta[-LI[1],LI[1]]->1//ContractMetric//ToCanonical))//ScreenDollarIndices//RicciToEinstein//ContractMetric//Simplification//Simplify

Trying to write in terms of the covariante derivative

Clear[Dd,Db,D2]

DefTensor[Dd[a],M,PrintAs->"Dϕ"]
DefTensor[D2[],M,PrintAs->"DDϕ"]
DefTensor[Db[a],M,PrintAs->"(OverBar[D])(OverBar[ϕ])"]

rulesf={CD[a][Phi[]]->Dd[a]+I q Phi[] Av[a],CD[a][Phib[]]->Db[a]-I q Phib[] Av[a],CD[-a][Phi[]]->Dd[-a]+I q Phi[] Av[-a],CD[-a][Phib[]]->Db[-a]-I q Phib[] Av[-a],CD[-a][Dd[a]]->D2[]+I q Av[-a]Dd[a],Av[a]CD[-a][Phi[]]->Av[a]Dd[-a]+I q Phi[] Av[-a]Av[a]};
rulesf2=Join[rulesf,rulesf/.a->b,rulesf/.a->c];

rulesf2[[-1]]

And for the stress tensor

Clear[Fm,Bm,Bmb];

DefTensor[Fm[a,b],M,PrintAs->"F"]
DefTensor[Bm[a,b],M,PrintAs->"B"]
DefTensor[Bmb[a,b],M,PrintAs->"(OverBar[B])"]

rulesf

rulesFB={CD[a][Av[b]]->Fm[a,b]+CD[b][Av[a]],CD[a][Bv[b]]->Bm[a,b]+CD[b][Bv[a]]};

Simplification[EQgrav/.rulesf2]

EQEM//.rulesf/.rulesFB//FullSimplify

EQscal//.rulesf/.rulesFB//Simplification//FullSimplify

EQVEC//.rulesf/.rulesFB//Simplification//FullSimplify