atlas 2 for Maple

Atlas Documentation

Declaration operators

Calculation operators

Standard DG operators

Utility operators

General Tutorials

Atlas Wizard Tutorials

Licenses & Pricing

atlas[Curvature] - calculation of curvature 2-forms 

Calling Sequence: 

    Curvature(Id) 

Parameters: 

    Id - variable - curvature identifier 

Description: 

  • The Curvature procedure allows one to calculate curvature 2-forms. If a connection is calculated or defined, then the curvature can be calculated completely, otherwise just the curvature identifier is declared as a curvature. To get the result of the calculation use eval or atlas[iota] operators.
 

  • The definition is as follows: `^`(Omega[l], j) = `+`(d(`^`(omega[l], j)), Sum(`⊗`(`^`(omega[k], j), `^`(omega[l], k)), k = 1 .. n)) , where `^`(omega[l], j) are connection 1-forms, n is the dimension.
 

Examples: 

Example 1 

Conformally flat metric of sphere - `*`(`^`(S, 3)) 

> restart:
with(atlas):
 

Declare forms: 

> Forms(e[j]=1,xi=1);
 

{xi, e[j]}(2.1.1)
 

Declare vectors: 

> Vectors(X,Y,Z,E[j]);
 

{X, Y, Z, E[j]}(2.1.2)
 

Declare constant lambda:
Constants(lambda); 

{`+`(`-`(I)), I, Pi, _Z, Catalan, lambda}(2.1.3)
 

Declare the coframe:
Coframe(e[1]=2*d(x)/(1+lambda*(x^2+y^2+z^2)),e[2]=2*d(y)/(1+lambda*(x^2+y^2+z^2)),e[3]=2*d(z)/(1+lambda*(x^2+y^2+z^2))); 

[e[1] = `+`(`/`(`*`(2, `*`(d(x))), `*`(`+`(1, `*`(lambda, `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)), `*`(`^`(z, 2))))))))), e[2] = `+`(`/`(`*`(2, `*`(d(y))), `*`(`+`(1, `*`(lambda, `*`(`+`(`*`(`^`(x, 2))...
[e[1] = `+`(`/`(`*`(2, `*`(d(x))), `*`(`+`(1, `*`(lambda, `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)), `*`(`^`(z, 2))))))))), e[2] = `+`(`/`(`*`(2, `*`(d(y))), `*`(`+`(1, `*`(lambda, `*`(`+`(`*`(`^`(x, 2))...
(2.1.4)
 

Declare the frame:
Frame(E[i]); 

[E[1] = `*`(`+`(`/`(1, 2), `*`(`/`(1, 2), `*`(lambda, `*`(`^`(x, 2)))), `*`(`/`(1, 2), `*`(lambda, `*`(`^`(y, 2)))), `*`(`/`(1, 2), `*`(lambda, `*`(`^`(z, 2))))), `*`(Diff(``, x))), E[2] = `*`(`+`(`/`...
[E[1] = `*`(`+`(`/`(1, 2), `*`(`/`(1, 2), `*`(lambda, `*`(`^`(x, 2)))), `*`(`/`(1, 2), `*`(lambda, `*`(`^`(y, 2)))), `*`(`/`(1, 2), `*`(lambda, `*`(`^`(z, 2))))), `*`(Diff(``, x))), E[2] = `*`(`+`(`/`...
[E[1] = `*`(`+`(`/`(1, 2), `*`(`/`(1, 2), `*`(lambda, `*`(`^`(x, 2)))), `*`(`/`(1, 2), `*`(lambda, `*`(`^`(y, 2)))), `*`(`/`(1, 2), `*`(lambda, `*`(`^`(z, 2))))), `*`(Diff(``, x))), E[2] = `*`(`+`(`/`...
(2.1.5)
 

Declare conformally flat metric of  `*`(`^`(S, 3)) (see atlas[Metric]):
Metric(g=e[1]&.e[1]+e[2]&.e[2]+e[3]&.e[3]); 

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

Connection calculation: 

> Connection(omega);
 

omega[i, j](2.1.7)
 

> 'iota[E[i]](omega[1,2])'=iota[E[i]](omega[1,2]);
 

iota[E[i]](omega[1, 2]) = `+`(`-`(`*`(lambda, `*`(y, `*`(delta[1, i])))), `*`(lambda, `*`(x, `*`(delta[2, i]))))(2.1.8)
 

Curvature calculation: 

> Curvature(Omega);
 

Omega[i, j](2.1.9)
 

Now curvature 2-forms Omega[i, j] are calculated: 

> eval(Omega);
 

table( [( 2, 3 ) = `*`(lambda, `*`(`&^`(e[2], e[3]))), ( 2, 2 ) = 0, ( 3, 2 ) = `+`(`-`(`*`(lambda, `*`(`&^`(e[2], e[3]))))), ( 3, 1 ) = `+`(`-`(`*`(lambda, `*`(`&^`(e[1], e[3]))))), ( 1, 1 ) = 0, ( 1...
table( [( 2, 3 ) = `*`(lambda, `*`(`&^`(e[2], e[3]))), ( 2, 2 ) = 0, ( 3, 2 ) = `+`(`-`(`*`(lambda, `*`(`&^`(e[2], e[3]))))), ( 3, 1 ) = `+`(`-`(`*`(lambda, `*`(`&^`(e[1], e[3]))))), ( 1, 1 ) = 0, ( 1...
table( [( 2, 3 ) = `*`(lambda, `*`(`&^`(e[2], e[3]))), ( 2, 2 ) = 0, ( 3, 2 ) = `+`(`-`(`*`(lambda, `*`(`&^`(e[2], e[3]))))), ( 3, 1 ) = `+`(`-`(`*`(lambda, `*`(`&^`(e[1], e[3]))))), ( 1, 1 ) = 0, ( 1...
(2.1.10)
 

> 'Omega[1,3]'=Omega[1,3];
 

Omega[1, 3] = `*`(lambda, `*`(`&^`(e[1], e[3])))(2.1.11)
 

> 'iota[E[k]](Omega[2,1])'=iota[E[k]](Omega[2,1]);
 

iota[E[k]](Omega[2, 1]) = `+`(`-`(`*`(lambda, `*`(`+`(`*`(delta[1, k], `*`(e[2])), `-`(`*`(delta[2, k], `*`(e[1]))))))))(2.1.12)
 

Example 2 

> restart:
with(atlas):
 

Declare forms: 

> Forms(e[j]=1,xi=1);
 

{xi, e[j]}(2.2.1)
 

Declare vectors: 

> Vectors(X,Y,Z,E[j]);
 

{X, Y, Z, E[j]}(2.2.2)
 

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

[e[1] = `+`(`*`(x, `*`(d(x))), `*`(y, `*`(d(y)))), e[2] = `+`(`*`(x, `*`(d(y))), `-`(`*`(y, `*`(d(x)))))](2.2.3)
 

Declare frame:
Frame(E[i]); 

[E[1] = `+`(`/`(`*`(x, `*`(Diff(``, x))), `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))))), `/`(`*`(y, `*`(Diff(``, y))), `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)))))), E[2] = `+`(`-`(`/`(`*`(y, `*`(Diff(``, x)...(2.2.4)
 

Connection definition: 

> omega[1,1]:=x*e[1];
 

`*`(e[1], `*`(x))(2.2.5)
 

> omega[2,2]:=y*e[2];
 

`*`(y, `*`(e[2]))(2.2.6)
 

> omega[1,2]:=y*e[1];
 

`*`(y, `*`(e[1]))(2.2.7)
 

> omega[2,1]:=-x*e[2];
 

`+`(`-`(`*`(x, `*`(e[2]))))(2.2.8)
 

Connection declaration: 

> Connection(omega);
 

omega[i, j](2.2.9)
 

Curvature calculation:
Curvature(Omega); 

Omega[i, j](2.2.10)
 

> eval(Omega);
 

table( [( 2, 2 ) = `/`(`*`(y, `*`(`+`(3, `*`(`^`(x, 3)), `*`(x, `*`(`^`(y, 2)))), `*`(`&^`(e[1], e[2])))), `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))))), ( 1, 2 ) = `/`(`*`(`+`(`-`(x), `*`(`^`(y, 2), `*`(...
table( [( 2, 2 ) = `/`(`*`(y, `*`(`+`(3, `*`(`^`(x, 3)), `*`(x, `*`(`^`(y, 2)))), `*`(`&^`(e[1], e[2])))), `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))))), ( 1, 2 ) = `/`(`*`(`+`(`-`(x), `*`(`^`(y, 2), `*`(...
table( [( 2, 2 ) = `/`(`*`(y, `*`(`+`(3, `*`(`^`(x, 3)), `*`(x, `*`(`^`(y, 2)))), `*`(`&^`(e[1], e[2])))), `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))))), ( 1, 2 ) = `/`(`*`(`+`(`-`(x), `*`(`^`(y, 2), `*`(...
table( [( 2, 2 ) = `/`(`*`(y, `*`(`+`(3, `*`(`^`(x, 3)), `*`(x, `*`(`^`(y, 2)))), `*`(`&^`(e[1], e[2])))), `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2))))), ( 1, 2 ) = `/`(`*`(`+`(`-`(x), `*`(`^`(y, 2), `*`(...
(2.2.11)
 

> 'L[E[1]](E[2])'=L[E[1]](E[2]);
 

L[E[1]](E[2]) = `+`(`*`(E[2], `*`(x)), `*`(y, `*`(E[1])))(2.2.12)
 

>
 

See Also:  

atlas, atlas[Frame], atlas[Coframe], atlas[Metric].