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:
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 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 : Declare constant : Constants(lambda); 
Declare functions: Functions(f=f(x,y),h=h(f)); 
Declear forms: Forms(e[i]=1,xi=1,theta=p); ![{theta, e[i], xi}](prod/atlas/examples/images/simple7.gif)
Declare vectors: Vectors(E[j],X,Y,Z); ![{X, Y, Z, E[j]}](prod/atlas/examples/images/simple8.gif)
Declare coframe 1-forms: Coframe(e[1]=d(x),e[2]=d(y)); ![[e[1] = d(x), e[2] = d(y)]](prod/atlas/examples/images/simple9.gif)
Declare frame vectors: Frame(E[j]); ![[E[1] = Diff(``,x), E[2] = Diff(``,y)]](prod/atlas/examples/images/simple10.gif)
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](prod/atlas/examples/images/simple11.gif)
Calculate connection 1-forms: Connection(omega); ![omega[i,j]](prod/atlas/examples/images/simple12.gif)
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, ...](prod/atlas/examples/images/simple16.gif)
Calculate curvature 2-forms: Curvature(Omega); ![Omega[i,j]](prod/atlas/examples/images/simple17.gif)
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])](prod/atlas/examples/images/simple18.gif)
Riemann tensor: Riemann(R); ![R = 16/(1+lambda*x^2+lambda*y^2)^4*lambda*`&.`(`&^`(e[1],e[2]),`&^`(e[1],e[2]))](prod/atlas/examples/images/simple19.gif)
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])](prod/atlas/examples/images/simple20.gif)
Ricci scalar: RicciScalar(s); 
Show 1-form : '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)](prod/atlas/examples/images/simple23.gif)
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])](prod/atlas/examples/images/simple24.gif)
Verify that "rotation" vector field is a Killing one: Z:=x*E[2]-y*E[1]; 'L[Z]'(g)=L[Z](g); ![Z := x*E[2]-y*E[1]](prod/atlas/examples/images/simple26.gif)
 = 0](prod/atlas/examples/images/simple27.gif)
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])](prod/atlas/examples/images/simple28.gif)
Some more calculations: Using interior product operator - : '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])](prod/atlas/examples/images/simple30.gif)
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])](prod/atlas/examples/images/simple31.gif)
Using exterior derivative operator - : 'd(f)'=d(f); ![d(f) = Diff(f,x)*e[1]+Diff(f,y)*e[2]](prod/atlas/examples/images/simple33.gif)
'd(h)'=d(h);
![d(h) = Diff(h,f)*(Diff(f,x)*e[1]+Diff(f,y)*e[2])](prod/atlas/examples/images/simple34.gif)
'd(f*xi)'=d(f*xi);
![d(f*xi) = -Diff(f,x)*`&^`(xi,e[1])-Diff(f,y)*`&^`(xi,e[2])+f*d(xi)](prod/atlas/examples/images/simple35.gif)
'&**(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](prod/atlas/examples/images/simple36.gif)
As are coframe 1-forms and are frame vectors then: 'iota[E[i]](e[k])'=iota[E[i]](e[k]); ![iota[E[i]](e[k]) = delta[i,k]](prod/atlas/examples/images/simple39.gif)
"ToBasis" decomposition: X=ToBasis(X); xi=ToBasis(xi); *E[1]+iota[X](e[2])*E[2]](prod/atlas/examples/images/simple40.gif)
![xi = iota[E[1]](xi)*e[1]+iota[E[2]](xi)*e[2]](prod/atlas/examples/images/simple41.gif)
|