Conformally flat metric on 2-dimentional sphere
This worksheet illustrates how to use atlas package to solve problems in elementary differential geometry. As an example we discuss conformally flat metric on 2-dimensional sphere
We construct the metric on sphere and calculate connection 1-forms , curvature 2-forms , curvature tensor field (Riemann tensor field), Ricci tensor field and Ricci scalar expression which is proportional to scalar curvature . We also calculate some additional quantities: Lie derivatives, exterior derivatives, interior products etc.
| > | restart: with(atlas): |
Conformally flat metric on sphere
:
Declare constant
:
Constants(lambda);
| (2.1) |
Declare functions:
Functions(f=f(x,y),h=h(f));
| (2.2) |
Declear forms:
Forms(e[i]=1,xi=1,theta=p);
| (2.3) |
Declare vectors:
Vectors(E[j],X,Y,Z);
| (2.4) |
Declare coframe 1-forms:
Coframe(e[1]=d(x),e[2]=d(y));
| (2.5) |
Now coframe 1-forms are
.
Declare frame vectors:
Frame(E[j]);
| (2.6) |
Now frame vectors are
.
Metric declaration:
Metric(g=4*(d(x)&.d(x)+d(y)&.d(y))/(1+lambda*(x^2+y^2))^2);
![]() | (2.7) |
Calculate connection 1-forms:
Connection(omega);
| (2.8) |
Calculate curvature 2-forms:
Curvature(Omega);
| (2.9) |
Riemann tensor:
Riemann(R);
![]() | (2.10) |
Ricci tensor:
Ricci(r);
![]() | (2.11) |
Ricci scalar:
RicciScalar(s);
| (2.12) |
Show 1-form
:
'omega[2,1]'=factor(omega[2,1]);
![]() | (2.13) |
Verify that there is no Killing vector field among frame vector fields:
'L[E[j]](g)'=L[E[j]](g);
![]() | (2.14) |
Verify that "rotation" vector field
is a Killing one:
Z:=x*E[2]-y*E[1];
'L[Z]'(g)=L[Z](g);
| (2.15) |
Calculation of volume form using Hodge operator &** :
'&**(1)'=radsimp(&**(1));
![]() | (2.16) |
Some more calculations:
Using interior product operator -
:
'iota[E[j]](&**(1))'=iota[E[j]](radsimp(&**(1)));
![]() | (2.17) |
The same with metric tensor g:
'iota[E[k]](g)'=iota[E[k]](g);
![]() | (2.18) |
Using exterior derivative operator -
:
'd(f)'=d(f);
| (2.19) |
| > | 'd(h)'=d(h); |
| (2.20) |
| > | 'd(f*xi)'=d(f*xi); |
| (2.21) |
| > | '&**(d(f))'=radsimp(&**(d(f))); |
![]() | (2.22) |
As
are coframe 1-forms and
are frame vectors then:
'iota[E[i]](e[k])'=iota[E[i]](e[k]);
| (2.23) |
"ToBasis" decomposition:
X=ToBasis(X);
xi=ToBasis(xi);
| (2.24) |
| > |

![g = `+`(`/`(`*`(4, `*`(`+`(`&.`(e[1], e[1]), `&.`(e[2], e[2])))), `*`(`^`(`+`(1, `*`(lambda, `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)))))), 2))))](Maple/atlas/examples/images/simple_13.gif)
![R = `+`(`/`(`*`(16, `*`(lambda, `*`(`&.`(`&^`(e[1], e[2]), `&^`(e[1], e[2]))))), `*`(`^`(`+`(1, `*`(lambda, `*`(`^`(x, 2))), `*`(lambda, `*`(`^`(y, 2)))), 4))))](Maple/atlas/examples/images/simple_16.gif)
![r = `+`(`/`(`*`(4, `*`(lambda, `*`(`&.`(e[1], e[1])))), `*`(`^`(`+`(1, `*`(lambda, `*`(`^`(x, 2))), `*`(lambda, `*`(`^`(y, 2)))), 2))), `/`(`*`(4, `*`(lambda, `*`(`&.`(e[2], e[2])))), `*`(`^`(`+`(1, `...](Maple/atlas/examples/images/simple_17.gif)
![omega[2, 1] = `+`(`-`(`/`(`*`(2, `*`(lambda, `*`(`+`(`-`(`*`(y, `*`(e[1]))), `*`(x, `*`(e[2])))))), `*`(`+`(1, `*`(lambda, `*`(`^`(x, 2))), `*`(lambda, `*`(`^`(y, 2))))))))](Maple/atlas/examples/images/simple_20.gif)
![L[E[j]](g) = `+`(`-`(`/`(`*`(8, `*`(`+`(`&.`(e[1], e[1]), `&.`(e[2], e[2])), `*`(lambda, `*`(`+`(`*`(2, `*`(x, `*`(delta[1, j]))), `*`(2, `*`(y, `*`(delta[2, j])))))))), `*`(`^`(`+`(1, `*`(lambda, `*`...](Maple/atlas/examples/images/simple_21.gif)
![`&**`(1) = `+`(`/`(`*`(4, `*`(`&^`(e[1], e[2]))), `*`(`^`(abs(`+`(1, `*`(lambda, `*`(`^`(x, 2))), `*`(lambda, `*`(`^`(y, 2))))), 2))))](Maple/atlas/examples/images/simple_25.gif)
![iota[E[j]](`&**`(1)) = `+`(`/`(`*`(4, `*`(`+`(`*`(delta[1, j], `*`(e[2])), `-`(`*`(delta[2, j], `*`(e[1])))))), `*`(`^`(abs(`+`(1, `*`(lambda, `*`(`^`(x, 2))), `*`(lambda, `*`(`^`(y, 2))))), 2))))](Maple/atlas/examples/images/simple_27.gif)
![iota[E[k]](g) = `+`(`/`(`*`(4, `*`(`+`(`*`(delta[1, k], `*`(e[1])), `*`(delta[2, k], `*`(e[2]))))), `*`(`^`(`+`(1, `*`(lambda, `*`(`^`(x, 2))), `*`(lambda, `*`(`^`(y, 2)))), 2))))](Maple/atlas/examples/images/simple_28.gif)
![`&**`(d(f)) = `/`(`*`(`^`(`+`(1, `*`(lambda, `*`(`^`(x, 2))), `*`(lambda, `*`(`^`(y, 2)))), 2), `*`(`+`(`*`(Diff(f, x), `*`(e[2])), `-`(`*`(Diff(f, y), `*`(e[1])))))), `*`(`^`(abs(`+`(1, `*`(lambda, `...](Maple/atlas/examples/images/simple_33.gif)