atlas 2 for Maple

Atlas Documentation

Declaration operators

Calculation operators

Standard DG operators

Utility operators

General Tutorials

Atlas Wizard Tutorials

Licenses & Pricing

Surface geometry 

Description: 

This worksheet illustrates how to use the atlas package to solve problems in elementary differential geometry. As an example we find the geometry of the  

following surfaces: torus, helicoid and abstract revolution surface. 

 

Plot_2d  Plot_2d   Plot_2d 

We assume that the geometry is induced by the corresponding embedding of a surface into the flat Euclidian 3-dimensional space. Thus we construct the  

corresponding embedding and calculate the following quantities: first fundamental form (metric tensor field), second fundamental form and field of mean  

curvature vectors. Besides that we calculate the connection, curvature, curvature tensor field (Riemann tensor field), Ricci tensor field and Ricci scalar  

function which is proportional to scalar curvature. 

Solution: 

Load atlas package: 

> restart:
with(atlas):
 

Just for right simplification:
`atlas/simp`:=proc(a) factor(simplify(a,trig)) end: 

Description of the total space `*`(`^`(R, 3)) 

First of all we have to describe the space we are working in. The space is 3-dimensional Euclidean (flat) space. To define the space we declare domain, forms, vectors, coframe, frame, flat metric and calculate connection (it is equal to zero of course). 

Define Euclidean space as a manifold:
Domain(R^3); 

`*`(`^`(R, 3))(2.1.1)
 

Declare 1-forms for the space coframe:
Forms(e[k]=1); 

{e[k]}(2.1.2)
 

Declare vectors for the space frame:
Vectors(E[j]); 

{E[j]}(2.1.3)
 

Declare coframe on the space:
Coframe(e[1]=d(x),e[2]=d(y),e[3]=d(z)); 

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

Declare frame on the space:
Frame(E[k]); 

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

Declare flat metric on the space:
Metric(g[R]=d(x)&.d(x)+d(y)&.d(y)+d(z)&.d(z)); 

g[R] = `+`(`&.`(e[1], e[1]), `&.`(e[2], e[2]), `&.`(e[3], e[3]))(2.1.6)
 

Calculate connection of the metric:
Connection(Gamma); 

Gamma[i, j](2.1.7)
 

 Torus  

Define the torus as a manifold:
Domain(T); 

T(2.2.1)
 

Declare constants a, b, c:
Constants(a,b); 

{`+`(`-`(I)), I, Pi, _Z, a, b, Catalan}(2.2.2)
 

Declare 1-forms for torus coframe
Forms(w[i]=1); 

{e[k], w[i]}(2.2.3)
 

Declare vectors for torus frame:
Vectors(W[k]); 

{W[k]}(2.2.4)
 

Declare coframe on the torus:
Coframe(w[1]=d(alpha),w[2]=d(beta)); 

[w[1] = d(alpha), w[2] = d(beta)](2.2.5)
 

Declare frame of the surface:
Frame(W[l]); 

[W[1] = Diff(``, alpha), W[2] = Diff(``, beta)](2.2.6)
 

Declare mapping of the torus into `*`(`^`(R, 2)):
Mapping(pi,T,R^3,x=(a+b*cos(beta))*cos(alpha),
                y=(a+b*cos(beta))*sin(alpha),
                z=b*sin(beta));
 

 

pi
`.`(T, `--->`, `*`(`^`(R, 3)))(2.2.7)
 

Calculate metric on the torus using `&/` operator:
Metric(g[T] = g[R] &/ pi); 

g[T] = `+`(`*`(`^`(`+`(a, `*`(b, `*`(cos(beta)))), 2), `*`(`&.`(w[1], w[1]))), `*`(`^`(b, 2), `*`(`&.`(w[2], w[2]))))(2.2.8)
 

Calculate invariants of the mapping:
Inv[T]:=Invariants(pi); 

table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))...
(2.2.9)
 

Extract second fundamental form as a table:
sF:=eval(Inv[T][secondForm]); 

table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))))], ( 1, 1 ) = [`+`(`-`(...
table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))))], ( 1, 1 ) = [`+`(`-`(...
table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))))], ( 1, 1 ) = [`+`(`-`(...
table( [( 2, 2 ) = [`+`(`-`(`*`(cos(alpha), `*`(b, `*`(cos(beta), `*`(E[1]))))), `-`(`*`(sin(alpha), `*`(b, `*`(cos(beta), `*`(E[2]))))), `-`(`*`(b, `*`(sin(beta), `*`(E[3])))))], ( 1, 1 ) = [`+`(`-`(...
(2.2.10)
 

Construct second fundamental form as corresponding tensor field (`&.` -  is tensor product operator):
B:=add(add(`&.`(e[i],e[j],sF[i,j]),i=1..3),j=1..3); 

`+`(`-`(`*`(cos(alpha), `*`(`^`(cos(beta), 2), `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(`&.`(e[1], e[1], E[1])))))), `-`(`*`(`^`(cos(beta), 2), `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(sin(alpha), `*`(`...
`+`(`-`(`*`(cos(alpha), `*`(`^`(cos(beta), 2), `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(`&.`(e[1], e[1], E[1])))))), `-`(`*`(`^`(cos(beta), 2), `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(sin(alpha), `*`(`...
`+`(`-`(`*`(cos(alpha), `*`(`^`(cos(beta), 2), `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(`&.`(e[1], e[1], E[1])))))), `-`(`*`(`^`(cos(beta), 2), `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(sin(alpha), `*`(`...
`+`(`-`(`*`(cos(alpha), `*`(`^`(cos(beta), 2), `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(`&.`(e[1], e[1], E[1])))))), `-`(`*`(`^`(cos(beta), 2), `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(sin(alpha), `*`(`...
(2.2.11)
 

Extract mean curvature vector:
mu:=Inv[T][meanCurvature]; 

`+`(`-`(`/`(`*`(cos(alpha), `*`(cos(beta), `*`(`+`(`*`(2, `*`(b, `*`(cos(beta)))), a), `*`(E[1])))), `*`(b, `*`(`+`(a, `*`(b, `*`(cos(beta)))))))), `-`(`/`(`*`(sin(alpha), `*`(cos(beta), `*`(`+`(`*`(2...
`+`(`-`(`/`(`*`(cos(alpha), `*`(cos(beta), `*`(`+`(`*`(2, `*`(b, `*`(cos(beta)))), a), `*`(E[1])))), `*`(b, `*`(`+`(a, `*`(b, `*`(cos(beta)))))))), `-`(`/`(`*`(sin(alpha), `*`(cos(beta), `*`(`+`(`*`(2...
`+`(`-`(`/`(`*`(cos(alpha), `*`(cos(beta), `*`(`+`(`*`(2, `*`(b, `*`(cos(beta)))), a), `*`(E[1])))), `*`(b, `*`(`+`(a, `*`(b, `*`(cos(beta)))))))), `-`(`/`(`*`(sin(alpha), `*`(cos(beta), `*`(`+`(`*`(2...
(2.2.12)
 

Calculate mean curvature:
chi:=simplify(g[R](mu,mu)); 

`/`(`*`(`+`(`*`(4, `*`(`^`(b, 2), `*`(`^`(cos(beta), 2)))), `*`(4, `*`(a, `*`(b, `*`(cos(beta))))), `*`(`^`(a, 2)))), `*`(`^`(b, 2), `*`(`+`(`*`(`^`(a, 2)), `*`(2, `*`(a, `*`(b, `*`(cos(beta))))), `*`...(2.2.13)
 

Use differential operator `&D` to express tangent vectors on the torus W[i] by total space frame vectors E[j]:
W1:=W[1] &D pi;
W2:=W[2] &D pi;
 

 

`*`(`+`(`-`(`*`(sin(alpha), `*`(E[1]))), `*`(cos(alpha), `*`(E[2]))), `*`(`+`(a, `*`(b, `*`(cos(beta))))))
`*`(b, `*`(`+`(`-`(`*`(sin(beta), `*`(cos(alpha), `*`(E[1])))), `-`(`*`(sin(beta), `*`(sin(alpha), `*`(E[2])))), `*`(cos(beta), `*`(E[3])))))(2.2.14)
 

Verify that mean curvature vector field is normal to the tangent space of the torus:
'g[R](mu,W1)'=simplify(g[R](mu,W1));
'g[R](mu,W2)'=simplify(g[R](mu,W2));
 

 

g[R](mu, W1) = 0
g[R](mu, W2) = 0(2.2.15)
 

Calculate connection of the embedding:
Connection(omega[T]); 

omega[T][i, j](2.2.16)
 

Calculate curvature of the embedding:
Curvature(Omega[T]); 

Omega[T][i, j](2.2.17)
 

Calculate Riemann tensor field:
Riemann(R[T]); 

R[T] = `*`(b, `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(cos(beta), `*`(`&.`(`&^`(w[1], w[2]), `&^`(w[1], w[2]))))))(2.2.18)
 

Calculate Ricci tensor field:
Ricci(ric[T]); 

ric[T] = `+`(`/`(`*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(cos(beta), `*`(`&.`(w[1], w[1])))), `*`(b)), `/`(`*`(b, `*`(cos(beta), `*`(`&.`(w[2], w[2])))), `*`(`+`(a, `*`(b, `*`(cos(beta)))))))
ric[T] = `+`(`/`(`*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(cos(beta), `*`(`&.`(w[1], w[1])))), `*`(b)), `/`(`*`(b, `*`(cos(beta), `*`(`&.`(w[2], w[2])))), `*`(`+`(a, `*`(b, `*`(cos(beta)))))))
(2.2.19)
 

Calculate Ricci scalar curvature:
RicciScalar(scal[T]); 

scal[T] = `+`(`/`(`*`(2, `*`(cos(beta))), `*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(b))))(2.2.20)
 

 Helicoid 

Define the surface as a manifold:
Domain(H); 

H(2.3.1)
 

Declare 1-form for surface coframe
Forms(s[i]=1); 

{e[k], s[i], w[i]}(2.3.2)
 

Declare vectors for surface frame:
Vectors(S[k]); 

{S[k]}(2.3.3)
 

Declare coframe on the surface:
Coframe(s[1]=d(u[h]),s[2]=d(v[h])); 

[s[1] = d(u[h]), s[2] = d(v[h])](2.3.4)
 

Declare frame of the surface:
Frame(S[k]); 

[S[1] = Diff(``, u[h]), S[2] = Diff(``, v[h])](2.3.5)
 

Declare mapping of the surface into `*`(`^`(R, 3)):
Mapping(psi,H,R^3,x=u[h]*cos(v[h]),
                 y=u[h]*sin(v[h]),
                 z=b*v[h]);
 

 

psi
`.`(H, `--->`, `*`(`^`(R, 3)))(2.3.6)
 

One can also calculate metric induced on the surface by the mapping. 

> Metric(g[H] = g[R] &/ psi);
 

g[H] = `+`(`&.`(s[1], s[1]), `*`(`+`(`*`(`^`(b, 2)), `*`(`^`(u[h], 2))), `*`(`&.`(s[2], s[2]))))(2.3.7)
 

Calculate invariants of the mapping:
Inv[H]:=Invariants(psi); 

table( [( secondForm ) = table( [( 1, 2 ) = [`+`(`-`(`/`(`*`(`^`(b, 2), `*`(sin(v[h]), `*`(E[1]))), `*`(`+`(`*`(`^`(b, 2)), `*`(`^`(u[h], 2)))))), `/`(`*`(cos(v[h]), `*`(`^`(b, 2), `*`(E[2]))), `*`(`+...
table( [( secondForm ) = table( [( 1, 2 ) = [`+`(`-`(`/`(`*`(`^`(b, 2), `*`(sin(v[h]), `*`(E[1]))), `*`(`+`(`*`(`^`(b, 2)), `*`(`^`(u[h], 2)))))), `/`(`*`(cos(v[h]), `*`(`^`(b, 2), `*`(E[2]))), `*`(`+...
table( [( secondForm ) = table( [( 1, 2 ) = [`+`(`-`(`/`(`*`(`^`(b, 2), `*`(sin(v[h]), `*`(E[1]))), `*`(`+`(`*`(`^`(b, 2)), `*`(`^`(u[h], 2)))))), `/`(`*`(cos(v[h]), `*`(`^`(b, 2), `*`(E[2]))), `*`(`+...
(2.3.8)
 

It is well known that helicoid is a minimal surface. Thus nothing surprising about zero mean curvature vector field.  

Calculate connection of the embedding:
Connection(omega[H]); 

omega[H][i, j](2.3.9)
 

Calculate curvature of the embedding:
Curvature(Omega[H]); 

Omega[H][i, j](2.3.10)
 

Calculate Riemann tensor field:
Riemann(R[H]); 

R[H] = `+`(`-`(`/`(`*`(`^`(b, 2), `*`(`&.`(`&^`(s[1], s[2]), `&^`(s[1], s[2])))), `*`(`+`(`*`(`^`(b, 2)), `*`(`^`(u[h], 2)))))))(2.3.11)
 

Calculate Ricci tensor field:
Ricci(ric[H]); 

ric[H] = `+`(`-`(`/`(`*`(`^`(b, 2), `*`(`&.`(s[1], s[1]))), `*`(`^`(`+`(`*`(`^`(b, 2)), `*`(`^`(u[h], 2))), 2)))), `-`(`/`(`*`(`^`(b, 2), `*`(`&.`(s[2], s[2]))), `*`(`+`(`*`(`^`(b, 2)), `*`(`^`(u[h], ...(2.3.12)
 

Calculate Ricci scalar curvature:
RicciScalar(scal[H]); 

scal[H] = `+`(`-`(`/`(`*`(2, `*`(`^`(b, 2))), `*`(`^`(`+`(`*`(`^`(b, 2)), `*`(`^`(u[h], 2))), 2)))))(2.3.13)
 

 Abstract revolution surface 

Define the surface as a manifold:
Domain(A); 

A(2.4.1)
 

Declare functions:
Functions(rho=rho(u),zeta=zeta(u)); 

{rho, zeta}(2.4.2)
 

Declare 1-form for surface coframe
Forms(p[i]=1); 

{e[k], p[i], s[i], w[i]}(2.4.3)
 

Declare vectors for surface frame:
Vectors(P[k]); 

{P[k]}(2.4.4)
 

Declare coframe on the surface:
Coframe(p[1]=d(u),p[2]=d(v)); 

[p[1] = d(u), p[2] = d(v)](2.4.5)
 

Declare frame of the surface:
Frame(P[l]); 

[P[1] = Diff(``, u), P[2] = Diff(``, v)](2.4.6)
 

Declare mapping of the surface into `*`(`^`(R, 3)):
Mapping(f,A,R^3,x=rho*cos(v),
               y=rho*sin(v),
               z=zeta);
 

 

f
`.`(A, `--->`, `*`(`^`(R, 3)))(2.4.7)
 

One can also calculate metric induced on the surface by the mapping. 

> Metric(g[A] = g[R] &/ f);
 

g[A] = `+`(`*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2))), `*`(`&.`(p[1], p[1]))), `*`(`^`(rho, 2), `*`(`&.`(p[2], p[2]))))(2.4.8)
 

Calculate invariants of the mapping:
Inv[A]:=Invariants(f); 

table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
table( [( secondForm ) = table( [( 2, 2 ) = [`+`(`-`(`/`(`*`(rho, `*`(cos(v), `*`(`^`(Diff(zeta, u), 2), `*`(E[1])))), `*`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`(`^`(Diff(zeta, u), 2)))))), `-`(`/`(`*`(rh...
(2.4.9)
 

Calculate connection of the embedding:
Connection(omega[A]); 

omega[A][i, j](2.4.10)
 

Calculate curvature of the embedding:
Curvature(Omega[A]); 

Omega[A][i, j](2.4.11)
 

Calculate Riemann tensor field:
Riemann(R[A]); 

R[A] = `+`(`-`(`/`(`*`(rho, `*`(Diff(zeta, u), `*`(`+`(`*`(Diff(rho, u, u), `*`(Diff(zeta, u))), `-`(`*`(Diff(zeta, u, u), `*`(Diff(rho, u))))), `*`(`&.`(`&^`(p[1], p[2]), `&^`(p[1], p[2])))))), `*`(`...
R[A] = `+`(`-`(`/`(`*`(rho, `*`(Diff(zeta, u), `*`(`+`(`*`(Diff(rho, u, u), `*`(Diff(zeta, u))), `-`(`*`(Diff(zeta, u, u), `*`(Diff(rho, u))))), `*`(`&.`(`&^`(p[1], p[2]), `&^`(p[1], p[2])))))), `*`(`...
(2.4.12)
 

Calculate Ricci tensor field:
Ricci(ric[A]); 

ric[A] = `+`(`-`(`/`(`*`(Diff(zeta, u), `*`(`+`(`*`(Diff(rho, u, u), `*`(Diff(zeta, u))), `-`(`*`(Diff(zeta, u, u), `*`(Diff(rho, u))))), `*`(`&.`(p[1], p[1])))), `*`(rho, `*`(`+`(`*`(`^`(Diff(rho, u)...
ric[A] = `+`(`-`(`/`(`*`(Diff(zeta, u), `*`(`+`(`*`(Diff(rho, u, u), `*`(Diff(zeta, u))), `-`(`*`(Diff(zeta, u, u), `*`(Diff(rho, u))))), `*`(`&.`(p[1], p[1])))), `*`(rho, `*`(`+`(`*`(`^`(Diff(rho, u)...
(2.4.13)
 

Calculate Ricci scalar curvature:
RicciScalar(scal[A]); 

scal[A] = `+`(`-`(`/`(`*`(2, `*`(Diff(zeta, u), `*`(`+`(`*`(Diff(rho, u, u), `*`(Diff(zeta, u))), `-`(`*`(Diff(zeta, u, u), `*`(Diff(rho, u)))))))), `*`(rho, `*`(`^`(`+`(`*`(`^`(Diff(rho, u), 2)), `*`...(2.4.14)
 

>