Digi Area Group - Math Tools for Professionals
   Maple and Mathematica packages - math tools for professionals

atlas™ - modern differential geometry for Maple™

> Features List & Examples
> Template Worksheets
> Screenshots
> Documentation & Downloads
> License & Pricing
> Buy Online

 
 
 
 
Google

Features List & Examples  |  Introduction  |  Dimension  |  Indexing  |  Forms  |  Metric  |  atlasWizard - Maplet™

Conformally flat metric on 2-dimentional sphere
 
 
Copyright © 2004-2008  DigiArea Group . All rights reserved.

Description:

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:

simple1         

We construct the metric on sphere S^2  and calculate connection 1-forms , curvature 2-forms , curvature tensor field  ( Riemann   tensor  field), Ricci tensor  field and Ricci scalar  function which is proportional to scalar curvature . We also calculate some additional quantities: Lie derivatives, exterior derivatives, interior products etc.

Load atlas package:

restart:
with(atlas):

Conformally flat metric on sphere S^2 :

Declare constant lambda :
Constants(lambda);

{Catalan, _Z, Pi, I, lambda, -I}

Declare functions:
Functions(f=f(x,y),h=h(f));

{h, f}

Declear forms:
Forms(e[i]=1,xi=1,theta=p);

{theta, e[i], xi}

Declare vectors:
Vectors(E[j],X,Y,Z);

{X, Y, Z, E[j]}

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

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

Declare frame vectors:
Frame(E[j]);

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

Metric declaration:
Metric(g=4*(d(x)&.d(x)+d(y)&.d(y))/(1+lambda*(x^2+y^2))^2);

g = 4*(`&.`(e[1],e[1])+`&.`(e[2],e[2]))/(1+lambda*(x^2+y^2))^2

Calculate connection 1-forms:
Connection(omega);

omega[i,j]

Let us see the result:
eval(omega);

TABLE([(1, 2) = -2/(1+lambda*x^2+lambda*y^2)*lambda*y*e[1]+2*lambda*x/(1+lambda*x^2+lambda*y^2)*e[2], (1, 1) = -2*lambda*x/(1+lambda*x^2+lambda*y^2)*e[1]-2/(1+lambda*x^2+lambda*y^2)*lambda*y*e[2], (2, ...
TABLE([(1, 2) = -2/(1+lambda*x^2+lambda*y^2)*lambda*y*e[1]+2*lambda*x/(1+lambda*x^2+lambda*y^2)*e[2], (1, 1) = -2*lambda*x/(1+lambda*x^2+lambda*y^2)*e[1]-2/(1+lambda*x^2+lambda*y^2)*lambda*y*e[2], (2, ...
TABLE([(1, 2) = -2/(1+lambda*x^2+lambda*y^2)*lambda*y*e[1]+2*lambda*x/(1+lambda*x^2+lambda*y^2)*e[2], (1, 1) = -2*lambda*x/(1+lambda*x^2+lambda*y^2)*e[1]-2/(1+lambda*x^2+lambda*y^2)*lambda*y*e[2], (2, ...
TABLE([(1, 2) = -2/(1+lambda*x^2+lambda*y^2)*lambda*y*e[1]+2*lambda*x/(1+lambda*x^2+lambda*y^2)*e[2], (1, 1) = -2*lambda*x/(1+lambda*x^2+lambda*y^2)*e[1]-2/(1+lambda*x^2+lambda*y^2)*lambda*y*e[2], (2, ...

Calculate curvature 2-forms:
Curvature(Omega);

Omega[i,j]

Let us see the result:
eval(Omega);

TABLE([(1, 2) = 4*lambda/(1+lambda*x^2+lambda*y^2)^2*`&^`(e[1],e[2]), (1, 1) = 0, (2, 1) = -4*lambda/(1+lambda*x^2+lambda*y^2)^2*`&^`(e[1],e[2]), (2, 2) = 0])

Riemann tensor:
Riemann(R);

R = 16/(1+lambda*x^2+lambda*y^2)^4*lambda*`&.`(`&^`(e[1],e[2]),`&^`(e[1],e[2]))

Ricci tensor:
Ricci(r);

r = 4*lambda/(1+lambda*x^2+lambda*y^2)^2*`&.`(e[1],e[1])+4*lambda/(1+lambda*x^2+lambda*y^2)^2*`&.`(e[2],e[2])

Ricci scalar:
RicciScalar(s);

s = 2*lambda

Show 1-form omega[2,1] :
'omega[2,1]'=factor(omega[2,1]);

omega[2,1] = -2*lambda*(-y*e[1]+x*e[2])/(1+lambda*x^2+lambda*y^2)

Verify that there is no Killing vector field among frame vector fields:
'L[E[j]](g)'=L[E[j]](g);

L[E[j]](g) = -8*(`&.`(e[1],e[1])+`&.`(e[2],e[2]))*lambda/(1+lambda*x^2+lambda*y^2)^3*(2*x*delta[1,j]+2*y*delta[2,j])

Verify that "rotation" vector field Z := x*Diff(``,y)-y*Diff(``,x)   is a Killing one:
Z:=x*E[2]-y*E[1];
'L[Z]'(g)=L[Z](g);

Z := x*E[2]-y*E[1]

L[Z](g) = 0

Calculation of volume form using Hodge operator &** :
'&**(1)'=radsimp(&**(1));

`&**`(1) = 4/abs(1+lambda*x^2+lambda*y^2)^2*`&^`(e[1],e[2])

Some more calculations:

Using interior product operator - iota :
'iota[E[j]](&**(1))'=iota[E[j]](radsimp(&**(1)));

iota[E[j]](`&**`(1)) = 4/abs(1+lambda*x^2+lambda*y^2)^2*(delta[1,j]*e[2]-delta[2,j]*e[1])

The same with metric tensor g:
'iota[E[k]](g)'=iota[E[k]](g);

iota[E[k]](g) = 4/(1+lambda*x^2+lambda*y^2)^2*(delta[1,k]*e[1]+delta[2,k]*e[2])

Using exterior derivative operator - d :
'd(f)'=d(f);

d(f) = Diff(f,x)*e[1]+Diff(f,y)*e[2]


'd(h)'=d(h);

d(h) = Diff(h,f)*(Diff(f,x)*e[1]+Diff(f,y)*e[2])


'd(f*xi)'=d(f*xi);

d(f*xi) = -Diff(f,x)*`&^`(xi,e[1])-Diff(f,y)*`&^`(xi,e[2])+f*d(xi)


'&**(d(f))'=radsimp(&**(d(f)));

`&**`(d(f)) = (1+lambda*x^2+lambda*y^2)^2*(Diff(f,x)*e[2]-Diff(f,y)*e[1])/abs(1+lambda*x^2+lambda*y^2)^2

As e[k]  are coframe 1-forms and E[i]  are frame vectors then:
'iota[E[i]](e[k])'=iota[E[i]](e[k]);

iota[E[i]](e[k]) = delta[i,k]

"ToBasis" decomposition:
X=ToBasis(X);
xi=ToBasis(xi);

X = iota[X](e[1])*E[1]+iota[X](e[2])*E[2]

xi = iota[E[1]](xi)*e[1]+iota[E[2]](xi)*e[2]