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™

2D Coordinate system changing

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 coordinate system changing from Cartesian to bipolar:

[Maple Plot]   [Maple Plot]  

We construct Cartesian domain  (C) with standard flat metric  and 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 Laplace operator , Killing vector fields  and geodesic lines tangent vector fields  on the bipolar domain. We show by straight computations that 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

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

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

C

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

{e[k]}

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

{E[j]}

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

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

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

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

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

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

Calculate connection  of the metric:
Connection(omega);

omega[i,j]

  Bipolar domain

Define new domain :
Domain(B);

B

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

{e[k], w[i]}

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

{W[k]}

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

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

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

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

Declare 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

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

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

Calculate connection :
Connection(Gamma);

Gamma[i,j]

Let us see the result:
eval(Gamma);

coordchange20_1

coordchange20_2

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

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

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]

Obvious result:
eval(Phi);

TABLE([(1, 2) = 0, (2, 2) = 0, (2, 1) = 0, (1, 1) = 0])

Calculations in B domain

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

{f}

Calculate gradient  of a function:
'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]

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))

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

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

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

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

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

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

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

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

X := f*W[1]+h*W[2]

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

coordchange34_1

coordchange34_2

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

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

 But it is obvious that vector fields E[j]  are Killing ones in Cartesian domain. Thus these vectors are Killing ones on B domain also. It means that we have to express fields E[j]  by 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;

e1 := -sinh(v)/(cosh(v)-cos(u))^2*sin(u)*w[1]-(cosh(v)*cos(u)-1)/(cosh(v)-cos(u))^2*w[2]

e2 := (cosh(v)*cos(u)-1)/(cosh(v)-cos(u))^2*w[1]-sinh(v)/(cosh(v)-cos(u))^2*sin(u)*w[2]

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

E1 := -sinh(v)*sin(u)*W[1]-(cosh(v)*cos(u)-1)*W[2]

E2 := (cosh(v)*cos(u)-1)*W[1]-sinh(v)*sin(u)*W[2]

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

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

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

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

coordchange51_1
coordchange51_2
coordchange52_1
coordchange52_2

We have to solve 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

Nothing surprising about it really. Vector fields E1, E2 are tangent ones 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.