Connection with torsion 

Description: 

This worksheet illustrates how to use the atlas package to make calculations with user defined connections.  

 

> restart:
with(atlas):
 

Function declaration:
Functions(f=f(x,y),h=h(x,y),g=g(x,y),z=z(x,y));
 

{f, g, h, z}(2.1)
 

Vector fields:
Vectors(E[i],X,Y,Z);
 

{X, Y, Z, E[i]}(2.2)
 

Differential p-forms:
Forms(e[j]=1);
 

{e[j]}(2.3)
 

Coframe 1-forms:
Coframe(e[1]=d(x),e[2]=d(y));
 

[e[1] = d(x), e[2] = d(y)](2.4)
 

Frame vector fields:
Frame(E[i]);
 

[E[1] = Diff(``, x), E[2] = Diff(``, y)](2.5)
 

Connection definition: 

> omega[1,1]:=f*e[2];
 

`*`(f, `*`(e[2]))(2.6)
 

> omega[1,2]:=0;
 

0(2.7)
 

> omega[2,1]:=0;
 

0(2.8)
 

> omega[2,2]:=h*e[1];
 

`*`(h, `*`(e[1]))(2.9)
 

Connection declaration:
Connection(omega); 

omega[i, j](2.10)
 

Curvature calculation:
Curvature(Omega); 

Omega[i, j](2.11)
 

Result:
eval(Omega); 

table( [( 1, 1 ) = `*`(Diff(f, x), `*`(`&^`(e[1], e[2]))), ( 1, 2 ) = 0, ( 2, 2 ) = `+`(`-`(`*`(Diff(h, y), `*`(`&^`(e[1], e[2]))))), ( 2, 1 ) = 0 ] )
table( [( 1, 1 ) = `*`(Diff(f, x), `*`(`&^`(e[1], e[2]))), ( 1, 2 ) = 0, ( 2, 2 ) = `+`(`-`(`*`(Diff(h, y), `*`(`&^`(e[1], e[2]))))), ( 2, 1 ) = 0 ] )
(2.12)
 

Torsion calculation:
Torsion(T); 

T[i](2.13)
 

Result:
eval(T); 

table( [( 1 ) = `+`(`-`(`*`(f, `*`(`&^`(e[1], e[2]))))), ( 2 ) = `*`(h, `*`(`&^`(e[1], e[2]))) ] )(2.14)
 

Curvature tensor calculation:
Riemann(R); 

R = `+`(`*`(`/`(1, 2), `*`(Diff(f, x), `*`(`&.`(E[1], e[1], `&^`(e[1], e[2]))))), `-`(`*`(`/`(1, 2), `*`(Diff(h, y), `*`(`&.`(E[2], e[2], `&^`(e[1], e[2])))))))
R = `+`(`*`(`/`(1, 2), `*`(Diff(f, x), `*`(`&.`(E[1], e[1], `&^`(e[1], e[2]))))), `-`(`*`(`/`(1, 2), `*`(Diff(h, y), `*`(`&.`(E[2], e[2], `&^`(e[1], e[2])))))))
(2.15)
 

Ricci tensor calculation:
Ricci(r); 

r = `+`(`*`(Diff(f, x), `*`(`&.`(e[1], e[2]))), `*`(Diff(h, y), `*`(`&.`(e[2], e[1]))))(2.16)
 

Some more simple calculations: 

Covariant derivatives:
'cov[E[j]](e[1])'=cov(E[j],e[1]);
'cov[E[j]](e[2])'=cov(E[j],e[2]);
 

 

cov[E[j]](e[1]) = `+`(`-`(`*`(f, `*`(delta[2, j], `*`(e[1])))))
cov[E[j]](e[2]) = `+`(`-`(`*`(h, `*`(delta[1, j], `*`(e[2])))))(2.17)
 

Lie derivative:
'L[E[1]](E[2])'=L[E[1]](E[2]); 

L[E[1]](E[2]) = `+`(`-`(`*`(f, `*`(E[1]))), `*`(h, `*`(E[2])))(2.18)
 

Interior products:
'iota[E[k]](T[1])'=iota[E[k]](T[1]);
'iota[E[k]](Omega[1,1])'=iota[E[k]](Omega[1,1]);
 

 

iota[E[k]](T[1]) = `+`(`-`(`*`(f, `*`(`+`(`*`(delta[1, k], `*`(e[2])), `-`(`*`(delta[2, k], `*`(e[1]))))))))
iota[E[k]](Omega[1, 1]) = `*`(Diff(f, x), `*`(`+`(`*`(delta[1, k], `*`(e[2])), `-`(`*`(delta[2, k], `*`(e[1]))))))(2.19)
 

>