atlas 2 for Maple

atlas package Overview

Declaration operators

Calculation operators

Standard DG operators

Utility operators

Features List & Examples

atlasWizard - Maplet™

Template Worksheets

Licenses & Pricing

Coordinate system changing 

Description: 

This worksheet illustrates how to use the atlas package to solve problems in elementary differential geometry. As an example, we discuss changing from Cartesian to bipolar coordinate systems. 

 

Plot_2d Plot_2d
 

We construct a Cartesian domain (C) with the standard flat metric and a bipolar domain (B). We map C into B and then calculate metric tensor field and connection induced on B by the mapping. We also obtain the Laplace operator, Killing vector fields, geodesic lines and tangent vector fields on the bipolar domain. We show by direct computation that the geometry on domains C and B is just the same namely flat geometry of the plane.
  
 

Solution: 

Load atlas package: 

> restart:
with(atlas):
 

Redefine `atlas/simp` procedure to simplify the results:
`atlas/simp`:=proc(a) factor(simplify(a,trig)) end: 

Cartesian domain 

The Cartesian domain is a 2-dimensional Euclidean (flat) space i.e. a plane with a Cartesian coordinate system. To define the space, we declare domain, forms, vectors, coframe, frame, flat metric and calculate the connection (it is equal to zero of course). 

Define the Euclidean space as a manifold:
Domain(C); 

C(2.1.1)
 

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

{e[k]}(2.1.2)
 

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

{E[j]}(2.1.3)
 

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

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

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

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

Declare a flat metric on the space:
Metric(g=d(x)&.d(x)+d(y)&.d(y)); 

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

Calculate the connection of the metric:
Connection(omega); 

omega[i, j](2.1.7)
 

 Bipolar domain 

Define new domain:
Domain(B); 

B(2.2.1)
 

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

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

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

{W[k]}(2.2.3)
 

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

[w[1] = d(u), w[2] = d(v)](2.2.4)
 

Declare the frame of the domain:
Frame(W[j]); 

[W[1] = Diff(``, u), W[2] = Diff(``, v)](2.2.5)
 

Declare a mapping of the domain into `*`(`^`(R, 2)):
Mapping(pi,B,C,x=sinh(v)/(cosh(v)-cos(u)),
              y=sin(u)/(cosh(v)-cos(u)));
 

 

pi
`.`(B, `--->`, C)(2.2.6)
 

Now we can calculate the metric induced on the domain by the mapping.
Metric(G = g &/ pi); 

G = `+`(`/`(`*`(`&.`(w[1], w[1])), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2))), `/`(`*`(`&.`(w[2], w[2])), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2))))(2.2.7)
 

Calculate the connection:
Connection(Gamma); 

Gamma[i, j](2.2.8)
 

Let us see the result:
eval(Gamma); 

table( [( 1, 1 ) = `+`(`-`(`/`(`*`(sin(u), `*`(w[1])), `*`(`+`(cosh(v), `-`(cos(u)))))), `-`(`/`(`*`(sinh(v), `*`(w[2])), `*`(`+`(cosh(v), `-`(cos(u))))))), ( 2, 2 ) = `+`(`-`(`/`(`*`(sin(u), `*`(w[1]...
table( [( 1, 1 ) = `+`(`-`(`/`(`*`(sin(u), `*`(w[1])), `*`(`+`(cosh(v), `-`(cos(u)))))), `-`(`/`(`*`(sinh(v), `*`(w[2])), `*`(`+`(cosh(v), `-`(cos(u))))))), ( 2, 2 ) = `+`(`-`(`/`(`*`(sin(u), `*`(w[1]...
table( [( 1, 1 ) = `+`(`-`(`/`(`*`(sin(u), `*`(w[1])), `*`(`+`(cosh(v), `-`(cos(u)))))), `-`(`/`(`*`(sinh(v), `*`(w[2])), `*`(`+`(cosh(v), `-`(cos(u))))))), ( 2, 2 ) = `+`(`-`(`/`(`*`(sin(u), `*`(w[1]...
table( [( 1, 1 ) = `+`(`-`(`/`(`*`(sin(u), `*`(w[1])), `*`(`+`(cosh(v), `-`(cos(u)))))), `-`(`/`(`*`(sinh(v), `*`(w[2])), `*`(`+`(cosh(v), `-`(cos(u))))))), ( 2, 2 ) = `+`(`-`(`/`(`*`(sin(u), `*`(w[1]...
(2.2.9)
 

The connection is not equal to zero. Nevertheless the domain has flat metric. To verify this fact we compute curvature 2-forms: 

> Curvature(Phi);
 

Phi[i, j](2.2.10)
 

Obvious result:
eval(Phi); 

table( [( 1, 1 ) = 0, ( 2, 2 ) = 0, ( 2, 1 ) = 0, ( 1, 2 ) = 0 ] )(2.2.11)
 

Calculations in B domain 

Declare abstract functions on B domain:
Functions(f=f(u,v),h=h(u,v)); 

{f, h}(2.3.1)
 

Calculate the gradient of the function f:
'grad(f)'=grad(f); 

grad(f) = `+`(`*`(Diff(f, u), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2), `*`(W[1]))), `*`(Diff(f, v), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2), `*`(W[2]))))
grad(f) = `+`(`*`(Diff(f, u), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2), `*`(W[1]))), `*`(Diff(f, v), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2), `*`(W[2]))))
(2.3.2)
 

Divergence of the frame vector fields:
'div(W[1])'=div(W[1]);
'div(W[2])'=div(W[2]);
 

 

div(W[1]) = `+`(`-`(`/`(`*`(2, `*`(sin(u))), `*`(`+`(cosh(v), `-`(cos(u)))))))
div(W[2]) = `+`(`-`(`/`(`*`(2, `*`(sinh(v))), `*`(`+`(cosh(v), `-`(cos(u)))))))(2.3.3)
 

The divergences are not equal to zero. Thus the coordinate lines on the bipolar domain "have sources and drains" (see graph paper above). 

To calculate the Laplace operator one can use the grad and div operators:   

> Delta(f)=div(grad(f));
 

Delta(f) = `+`(`*`(`^`(`+`(cosh(v), `-`(cos(u))), 2), `*`(Diff(f, u, u))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2), `*`(Diff(f, v, v))))(2.3.4)
 

Verify that there are no Killing vector fields in frame vector fields:
'L[W[j]](G)'=L[W[j]](G); 

L[W[j]](G) = `+`(`-`(`/`(`*`(2, `*`(`+`(`*`(sinh(v), `*`(delta[2, j])), `*`(sin(u), `*`(delta[1, j]))), `*`(`&.`(w[1], w[1])))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 3)))), `-`(`/`(`*`(2, `*`(`+`(`*`(si...
L[W[j]](G) = `+`(`-`(`/`(`*`(2, `*`(`+`(`*`(sinh(v), `*`(delta[2, j])), `*`(sin(u), `*`(delta[1, j]))), `*`(`&.`(w[1], w[1])))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 3)))), `-`(`/`(`*`(2, `*`(`+`(`*`(si...
(2.3.5)
 

How do we calculate the Killing vector fields in a bipolar domain? To do this we can use condition L[X](G) = 0 for the vector field X. 

Construct the vector field X as a linear combination of the frame vector fields:
X:=f*W[1]+h*W[2]; 

`+`(`*`(f, `*`(W[1])), `*`(h, `*`(W[2])))(2.3.6)
 

Calculate the corresponding Lie derivative:
'L[X](G)'=collect(L[X](G),`&.`); 

L[X](G) = `+`(`*`(`+`(`/`(`*`(2, `*`(Diff(f, u))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2))), `-`(`/`(`*`(2, `*`(f, `*`(sin(u)))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 3)))), `-`(`/`(`*`(2, `*`(h, `*`(sin...
L[X](G) = `+`(`*`(`+`(`/`(`*`(2, `*`(Diff(f, u))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2))), `-`(`/`(`*`(2, `*`(f, `*`(sin(u)))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 3)))), `-`(`/`(`*`(2, `*`(h, `*`(sin...
L[X](G) = `+`(`*`(`+`(`/`(`*`(2, `*`(Diff(f, u))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2))), `-`(`/`(`*`(2, `*`(f, `*`(sin(u)))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 3)))), `-`(`/`(`*`(2, `*`(h, `*`(sin...
L[X](G) = `+`(`*`(`+`(`/`(`*`(2, `*`(Diff(f, u))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2))), `-`(`/`(`*`(2, `*`(f, `*`(sin(u)))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 3)))), `-`(`/`(`*`(2, `*`(h, `*`(sin...
L[X](G) = `+`(`*`(`+`(`/`(`*`(2, `*`(Diff(f, u))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2))), `-`(`/`(`*`(2, `*`(f, `*`(sin(u)))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 3)))), `-`(`/`(`*`(2, `*`(h, `*`(sin...
L[X](G) = `+`(`*`(`+`(`/`(`*`(2, `*`(Diff(f, u))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2))), `-`(`/`(`*`(2, `*`(f, `*`(sin(u)))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 3)))), `-`(`/`(`*`(2, `*`(h, `*`(sin...
(2.3.7)
 

We have to solve the corresponding PDE system (L[X](G) = 0) and find the functions f and h. But ...But ...  

But it is obvious that the vector fields E[j] are Killing ones in the Cartesian domain. Thus these vectors are Killing ones on the B domain also. It means that we have to express fields E[j] by the frame vector fields W[i] on B.   

First of all we find the expressions for corresponding 1-forms using restriction of the mapping Pi.
e1:=e[1] &/ pi;
e2:=e[2] &/ pi;
 

 

`+`(`-`(`/`(`*`(sinh(v), `*`(sin(u), `*`(w[1]))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2)))), `-`(`/`(`*`(`+`(`-`(1), `*`(cosh(v), `*`(cos(u)))), `*`(w[2])), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2)))))
`+`(`/`(`*`(`+`(`-`(1), `*`(cosh(v), `*`(cos(u)))), `*`(w[1])), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2))), `-`(`/`(`*`(sinh(v), `*`(sin(u), `*`(w[2]))), `*`(`^`(`+`(cosh(v), `-`(cos(u))), 2)))))(2.3.8)
 

After that we use dual operator to convert 1-forms into corresponding vector fields ("rising indexes"):
E1:=dual(e1);
E2:=dual(e2);
 

 

`+`(`-`(`*`(sinh(v), `*`(sin(u), `*`(W[1])))), `-`(`*`(`+`(`-`(1), `*`(cosh(v), `*`(cos(u)))), `*`(W[2]))))
`+`(`*`(`+`(`-`(1), `*`(cosh(v), `*`(cos(u)))), `*`(W[1])), `-`(`*`(sinh(v), `*`(sin(u), `*`(W[2])))))(2.3.9)
 

Verify the result:
'L['E1'](G)'=simplify(L[E1](G));
'L['E2'](G)'=simplify(L[E2](G));
 

 

L['E1'](G) = 0
L['E2'](G) = 0(2.3.10)
 

By the way there are "no sources and drains" for these vector fields (just straight lines; see graph paper above):
'div(E1)'=div(E1);
'div(E2)'=div(E2);
 

 

div(E1) = 0
div(E2) = 0(2.3.11)
 

How to calculate the geodesic lines? To do this we can use the condition cov(X, X) = 0 for tangent vectors X of a geodesic line.  

Calculate the corresponding covariant derivative:
'cov[X](X)'=collect(cov[X](X),[W[1],W[2]]); 

cov[X](X) = `+`(`*`(`+`(`*`(f, `*`(`+`(Diff(f, u), `-`(`/`(`*`(f, `*`(sin(u))), `*`(`+`(cosh(v), `-`(cos(u))))))))), `-`(`/`(`*`(f, `*`(h, `*`(sinh(v)))), `*`(`+`(cosh(v), `-`(cos(u)))))), `*`(h, `*`(...
cov[X](X) = `+`(`*`(`+`(`*`(f, `*`(`+`(Diff(f, u), `-`(`/`(`*`(f, `*`(sin(u))), `*`(`+`(cosh(v), `-`(cos(u))))))))), `-`(`/`(`*`(f, `*`(h, `*`(sinh(v)))), `*`(`+`(cosh(v), `-`(cos(u)))))), `*`(h, `*`(...
cov[X](X) = `+`(`*`(`+`(`*`(f, `*`(`+`(Diff(f, u), `-`(`/`(`*`(f, `*`(sin(u))), `*`(`+`(cosh(v), `-`(cos(u))))))))), `-`(`/`(`*`(f, `*`(h, `*`(sinh(v)))), `*`(`+`(cosh(v), `-`(cos(u)))))), `*`(h, `*`(...
cov[X](X) = `+`(`*`(`+`(`*`(f, `*`(`+`(Diff(f, u), `-`(`/`(`*`(f, `*`(sin(u))), `*`(`+`(cosh(v), `-`(cos(u))))))))), `-`(`/`(`*`(f, `*`(h, `*`(sinh(v)))), `*`(`+`(cosh(v), `-`(cos(u)))))), `*`(h, `*`(...
(2.3.12)
 

We have to solve the corresponding PDE system (cov(X, X) = 0) and find functions f and h. But ...  

But the obvious result is as follows:
'cov['E1'](E1)'=simplify(cov[E1](E1));
'cov['E2'](E2)'=simplify(cov[E2](E2));
 

 

cov['E1'](E1) = 0
cov['E2'](E2) = 0(2.3.13)
 

>
 

Nothing surprising about it really. The vector fields E1, E2 are tangent fields of straight lines on the plane (just expressed by frame vectors of B domain). We are on the plane anyway (but with different coordinate system) thus the geometry on B is the same as on C.