Program for the hamiltonian treatment of general relativity (ADM) based on the 3+1 split of space-time. Here the program is adapted to Bianchi I space-time, but can be adapted to other metrics.
Author : D.N. Vulcanov - The West University of Timisoara, Romania
See : gr-qc/0010085 , physics/0010053
> restart;
> grtw();
Some general definitions, before downloading the metric !
The main notations are :
ha0 the hamiltonian constraint
ha(i) the momentum constraint
Ni(i) the shift vector
N the lapse function
g(i,j) the three-dimensional metric
pi(i,j) the momenta canonical conjugate to the metric components
derge(i,j) the dynamic equation for the three-dimensional metric
derpi(i,j) the dynamic equation for the momentum conponents
> grdef(`tr := pi{^i i}`);
`Warning ` = (`No definition found for object` = pi(up,dn))
Created definition for tr
> grdef(`ha0:=-sqrt(detg)*(Ricciscalar{}+(1/detg)*((1/2)*(tr{})^2-pi{i j}*pi{ ^i ^j }))`);
`Warning ` = (`No definition found for object` = pi(dn,dn))
`Warning ` = (`No definition found for object` = pi(up,up))
Created definition for ha0
> grdef(`ha{ ^i }:=-2*(pi{ ^i ^j ;j}-pi{ ^i ^j }*Chr{ p j ^p })`);
`Warning ` = (`No definition found for object` = pi(up,up,cdn))
`Warning ` = (`No definition found for object` = pi(up,up))
Created definition for ha(up)
> grdef(`derge{ i j }:=2*N(x,t)*(detg)^(-1/2)*(pi{ i j } - (1/2)*g{ i j}*tr)+Ni{ i ;j } + Ni{ j ;i }`);
`Warning ` = (`No definition found for object` = pi(dn,dn))
`Warning ` = (`No definition found for object` = Ni(dn,cdn))
Created definition for derge(dn,dn)
> grdef(`Ndd{ ^m j }:= Nd{ ^m ;j }`);
`Warning ` = (`No definition found for object` = Nd(up,cdn))
Created definition for Ndd(up,dn)
> grdef(`bum{ ^i ^j ^m}:=pi{ ^i ^j }*Ni{ ^m }`);
`Warning ` = (`No definition found for object` = Ni(up))
`Warning ` = (`No definition found for object` = pi(up,up))
Created definition for bum(up,up,up)
> grdef(`bla{ ^i ^j }:=bum{ ^i ^j ^m ;m }`);
Created a definition for bum(up,up,up,cdn)
Created definition for bla(up,up)
> grdef(`derpi{ ^i ^j }:=-N(x,t)*(detg)^(1/2)*(R{ ^i ^j }-(1/2)*g{ ^i ^j }*Ricciscalar)+ (1/2)*N(x,t)*(detg)^(-1/2)*g{ ^i ^j }*(pi{ ^k ^l }*pi{ k l }-(1/2)*(tr)^2)-2*N(x,t)*(detg)^(-1/2)*(pi{ ^i ^m }*pi{ ^j m }-(1/2)*pi{ ^i ^j }*tr)+ (detg)^(1/2)*(Ndd{ ^i ^j }-g{ ^i ^j }*Ndd{ ^m m }) + bla{ ^i ^j } - Ni{ ^i ;m }*pi{ ^m ^j }-Ni{ ^j ;m }*pi{ ^m ^i }`);
Created definition for Ndd(up,up)
`Warning ` = (`No definition found for object` = pi(up,dn))
`Warning ` = (`No definition found for object` = Ni(up,cdn))
Created definition for R(up,up)
`Warning ` = (`No definition found for object` = pi(dn,dn))
`Warning ` = (`No definition found for object` = pi(up,up))
Created definition for derpi(up,up)
Now download the metric ( biaI_din.mpl file) :
> qload(`biaI_din`);
Calculated ds for biaI_din (.003000 sec.)
From now one the definitions are depending strongly on the metric. Thus this part must be
modified in every specific case.
> grdef(`Nd{ ^ m } := [diff(N(x,t),x),0,0]`);
Components assigned for metric: biaI_din
Created definition for Nd(up)
> grdef(`Ni{ ^i } := [N1(x,t), N2(x,t), N3(x,t)]`);
Components assigned for metric: biaI_din
Created definition for Ni(up)
> grdef(`vi1{^i}:=[pix(x,t)*(2*XX(x,t))^(-1),0,0]`);
Components assigned for metric: biaI_din
Created definition for vi1(up)
> grdef(`vi3{^i}:=[0,0,piy*(4*YY)^(-1)]`);
>
Components assigned for metric: biaI_din
Created definition for vi3(up)
> grdef(`vi2{^i}:=[0,piy*(4*YY)^(-1),0]`);
Components assigned for metric: biaI_din
Created definition for vi2(up)
> grdef(`pi{ ^i ^j } := vi1{ ^i }*kdelta{^j $x}+vi2{ ^i }*kdelta{ ^j$y }+vi3{ ^i }*kdelta{^j $z}`);
Created definition for pi(up,up)
> grcalc(pi(up,up));
Calculated kdelta(up,dn) for biaI_din (.007000 sec.)
Calculated pi(up,up) for biaI_din (.017000 sec.)
> grdisplay(pi(up,up));
> grdef(`de1{ i }:=[diff(grcomponent(g(dn,dn),[x,x]),t),0,0]`);
Components assigned for metric: biaI_din
Created definition for de1(dn)
> grdef(`de2{ i }:=[0,diff(grcomponent(g(dn,dn),[y,y]),t),0]`);
Components assigned for metric: biaI_din
Created definition for de2(dn)
> grdef(`de3{ i }:=[0,0,diff(grcomponent(g(dn,dn),[z,z]),t)]`);
Components assigned for metric: biaI_din
Created definition for de3(dn)
> grdef(`ddgt({ i j }:=de1{ i }*kdelta{j $x}+de2{ i }*kdelta{ j$y }+de3{ i }*kdelta{ j $z}`);
Created definition for ddgt(dn,dn)
> grcalc(ddgt(dn,dn));
Calculated kdelta(dn,dn) for biaI_din (.006000 sec.)
Calculated ddgt(dn,dn) for biaI_din (.053000 sec.)
> grdisplay(ddgt(dn,dn));
> grdef(`act:=pi{ ^i ^j }*ddgt{ i j }`);
Created definition for act
> grcalc(act);
Calculated act for biaI_din (.004000 sec.)
> grdisplay(act);
Here check if the above action is in canonical form ! Redefine the components of the
momenta pi(ij) if necessary
> grcalc(ha0);
Created definition for pi(up,dn)
Created definition for pi(dn,dn)
Calculated pi(up,dn) for biaI_din (.013000 sec.)
Calculated tr for biaI_din (.004000 sec.)
Calculated detg for biaI_din (.004000 sec.)
Calculated g(up,up) for biaI_din (.011000 sec.)
Calculated g(dn,dn,pdn) for biaI_din (.018000 sec.)
Calculated Chr(dn,dn,dn) for biaI_din (.016000 sec.)
Calculated Chr(dn,dn,up) for biaI_din (.022000 sec.)
Calculated R(dn,dn) for biaI_din (.018000 sec.)
Calculated Ricciscalar for biaI_din (.003000 sec.)
Calculated pi(dn,dn) for biaI_din (.038000 sec.)
Calculated ha0 for biaI_din (.034000 sec.)
> gralter(ha0,simplify);
Component simplification of a GRTensorII object:
Applying routine simplify to object ha0
> grdisplay(ha0);
> grcalc(ha(up));
Created a definition for pi(up,up,cdn)
Calculated pi(up,up,cdn) for biaI_din (.040000 sec.)
Calculated ha(up) for biaI_din (.010000 sec.)
> grdisplay(ha(up));
> grcalc(derge(dn,dn));
Created definition for Ni(dn)
Created a definition for Ni(dn,cdn)
Calculated Ni(dn) for biaI_din (.007000 sec.)
Calculated Ni(dn,cdn) for biaI_din (.017000 sec.)
Calculated derge(dn,dn) for biaI_din (.022000 sec.)
> gralter(derge(dn,dn),simplify);
Component simplification of a GRTensorII object:
Applying routine simplify to object derge(dn,dn)
> grdisplay(derge(dn,dn));
> dertx:=(2*XX(x))^(-1)*grcomponent(derge(dn,dn),[x,x]);
> simplify(dertx);
> derty:=(2*YY)^(-1)*grcomponent(derge(dn,dn),[y,y]);
> simplify(derty);
> grcalc(derpi(up,up));
Created a definition for Nd(up,cdn)
Created a definition for Ni(up,cdn)
Calculated Nd(up,cdn) for biaI_din (.017000 sec.)
Calculated Ndd(up,dn) for biaI_din (.008000 sec.)
Calculated Ndd(up,up) for biaI_din (.013000 sec.)
Calculated Ni(up,cdn) for biaI_din (.014000 sec.)
Calculated R(up,up) for biaI_din (.016000 sec.)
Calculated bum(up,up,up) for biaI_din (.023000 sec.)
Calculated bum(up,up,up,cdn) for biaI_din (.140000 sec.)
Calculated bla(up,up) for biaI_din (.010000 sec.)
Calculated derpi(up,up) for biaI_din (.064000 sec.)
> gralter(derpi(up,up),simplify,sqrt,expand);
Component simplification of a GRTensorII object:
Applying routine simplify to object derpi(up,up)
Applying routine `simplify[sqrt]` to object derpi(up,up)
Applying routine expand to object derpi(up,up)
> grdisplay(derpi(up,up));
>
dertpix:=2*XX(x)*(grcomponent(derpi(up,up),[x,x]) + (1/2)*(1/(XX(x)*XX(x)))*pix(x)*dertx);
> simplify(dertpix);
> dertpiy:=4*YY*(grcomponent(derpi(up,up),[y,y]) + (1/4)*(1/(YY*YY))*piy*derty);
> simplify(dertpiy);
> grdef(`haf0 := ha0 + pif(x,t)*sqrt(1-( diff(phi(x,t),x)^2*(1/(XX(x,t)^2)) ))`);
>
Created definition for haf0
> grdef(`haf{ ^i } := ha{ ^i } +pif(x,t)*diff(phi(x,t),x)/(XX(x,t)^2)*kdelta{^i $x}`);
Created definition for haf(up)
> grcalc(haf0);
Calculated haf0 for biaI_din (.067000 sec.)
> grcalc(haf(up));
Calculated haf(up) for biaI_din (.008000 sec.)
> gralter(haf0,simplify,sqrt);
Component simplification of a GRTensorII object:
Applying routine simplify to object haf0
Applying routine `simplify[sqrt]` to object haf0
> grdisplay(haf0);
> gralter(haf(up),simplify);
Component simplification of a GRTensorII object:
Applying routine simplify to object haf(up)
> grdisplay(haf(up));
> phi(x,t):=t;
> grcalc(haf0);
> grcalc(haf(up));
> grdisplay(haf0);
> grdisplay(haf(up));
> aaa:=grcomponent(haf(up),[x]);
> pdsolve(aaa,pix(x,t));
> pix(x,t):=C;
> bbb:=grcomponent(haf0);
> pif(x,t):=solve(bbb,pif(x,t));
> pif(x,t);
>