atlas 2 for Maple

Atlas Documentation

Declaration operators

Calculation operators

Standard DG operators

Utility operators

General Tutorials

Atlas Wizard Tutorials

Licenses & Pricing

atlas[Invariants] - calculation of a mapping invariants   

Calling Sequence: 

    Invariants(F) 

Parameters: 

    F - mapping identifier 

Description: 

The Invariants procedure allows one to calculate invariants of a mapping between manifolds (see atlas[Mapping]). If mapping F is the embedding of a curve  then the curve's normalized moving frame  and the curve's curvatures  are calculated. If mapping F is an embedding  or immersion then the second fundamental form and mean curvature vector are calculated. If mapping F is a submersion then the A and T invariants are calculated. In that case, some additional calculations are performed: the mean curvature vector of corresponding fibers, the integrability obstruction of corresponding horizontal distribution and the riemannian obstruction (if the submersion is not a riemannian one). The corresponding rules are as follows:
 

  • Let mapping F: proc (M) options operator, arrow; N end proc  be declared by functions (see atlas[Mapping]):



    where  m = dim(M), n = dim(N);  {x[1], x[2], () .. x[m]} are local coordinates on M and  {y[1], y[2], () .. y[n]} are local coordinates on N.
 

Curve 

If m = 1 then the mapping is treated as a curve embedding, thus the curve's normalized moving frame and the corresponding curvatures are calculated. The corresponding invariants satisfy the equations: 

`/`(`*`(D(nu[p])), `*`(ds)) = `+`(`-`(`*`(chi[p], `*`(nu[`+`(p, `-`(1))]))), `*`(chi[`+`(p, 1)], `*`(nu[`+`(p, 1)])))  

where p = 0 .. `+`(n, `-`(1)) and 

  nu[p] are basis vectors of normalized moving frame of the embedded curve; 

  chi[p] are curvatures of the embedded curve ( chi[0] = 0, chi[n] = 0 ). 

If N manifold is 3-dimensional Euclidean space than chi[1] is the curvature of the curve and chi[2] is the torsion. In that case the sign of the torsion is the same for left or right - handed curves just because in the presented algorithm the moving frame is right-handed for right-handed curve and left-handed for left-handed curve.  

It should be pointed out that the calculation is only available if the actual metric and connection are declared on an N manifold. 

Embedding 

If `<`(m, n) then the mapping is treated as an embedding or immersion, thus the second fundamental form and mean curvature vector are calculated. If N and T are corresponding normal and tangential projectors (see atlas[Projectors]) then the embedding (or immersion) invariants are defined as follows.
For any vector fields X and Y on M we have:
      for
second fundamental form: B[X](Y) = N(D[TX](TY))
      for
mean curvature vector: mu = trace[g](B). 

It should be pointed out that the calculation is only available if the actual metric and the connection are declared (calculated) on the N manifold and  

that the actual metric is declared (calculated) on the M manifold. 

Submersion 

If `<=`(n, m) then the mapping is treated as a submersion, thus the mean curvature vectors, A and T invariants, riemannian and integrability obstructions are  

calculated. If H and V are corresponding horizontal and vertical projectors then the submersion invariants are defined as follows.
For any vector fields X and Y on M we have:
     for tensor
A: A[X](Y) = `+`(H(D[HX](VY)), V(D[HX](HY)));
     for tensor
T: T[X](Y) = `+`(H(D[VX](VY)), V(D[VX](HY)));
     for
meanCurvature vector: mu = trace[g](T);
     for
integrabilityObstruction: O[X](Y) = `+`(A[X](Y), `-`(A[Y](X)));
     for
riemannianObstruction: O[X](Y) = `+`(A[X](Y), A[Y](X)). 

It should be pointed out that the calculation is only available if the actual metric and connection are declared on the M manifold. 

  • The procedure returns a table with corresponding indexes (meanCurvature, A, T, secondForm, riemannianObstruction, integrabilityObstruction, curvatures, basis) and entries. The entries are corresponding values (see examples below).
 

 

Examples: 

> restart:
with(atlas):
 

Domain `*`(`^`(S, 3)): 

> Domain(S^3);
 

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

Declare constant Lambda:
Constants(Lambda); 

{`+`(`-`(I)), I, Pi, _Z, Catalan, Lambda}(2.1.2)
 

Declare 1-forms for to use them as a coframe:
Forms(e[j]=1); 

{e[j]}(2.1.3)
 

Declare vector fields to use them as a frame:
Vectors(E[i]); 

{E[i]}(2.1.4)
 

Declare coframe 1-forms:
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.5)
 

Declare frame vectors:
Frame(E[j]); 

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

Declare metric:
Metric(g=4*(d(x)&.d(x)+d(y)&.d(y)+d(z)&.d(z))/(1+Lambda*(x^2+y^2+z^2))^2);
 

g = `+`(`/`(`*`(4, `*`(`+`(`&.`(e[1], e[1]), `&.`(e[2], e[2]), `&.`(e[3], e[3])))), `*`(`^`(`+`(1, `*`(Lambda, `*`(`+`(`*`(`^`(x, 2)), `*`(`^`(y, 2)), `*`(`^`(z, 2)))))), 2))))(2.1.7)
 

Calculate connection:
Connection(omega); 

omega[i, j](2.1.8)
 

Domain `*`(`^`(S, 2)) 

> Domain(S^2);
 

`*`(`^`(S, 2))(2.2.1)
 

Declare constant lambda:
Constants(lambda); 

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

Declare 1-forms for coframe:
Forms(u[k]=1); 

{e[j], u[k]}(2.2.3)
 

Declare vector fields for frame:
Vectors(U[j]); 

{U[j]}(2.2.4)
 

Coframe declaration:
Coframe(u[1]=d(zeta),u[2]=d(xi)); 

[u[1] = d(zeta), u[2] = d(xi)](2.2.5)
 

Frame declaration for the sphere:
Frame(U[k]); 

[U[1] = Diff(``, zeta), U[2] = Diff(``, xi)](2.2.6)
 

Domain `^`(S, `1`) 

> Domain(S);
 

S(2.3.1)
 

Declare 1-forms for coframe:
Forms(w[k]=1); 

{e[j], u[k], w[k]}(2.3.2)
 

Declare vector fields for frame:
Vectors(W[j]); 

{W[j]}(2.3.3)
 

Coframe declaration:
Coframe(w[1]=d(tau)); 

[w[1] = d(tau)](2.3.4)
 

Frame declaration for the sphere:
Frame(W[k]); 

[W[1] = Diff(``, tau)](2.3.5)
 

Mappings 

Simple mapping of the 2-sphere `*`(`^`(S, 2)) into 3-sphere `*`(`^`(S, 3)) (embedding):
Mapping(psi,S^2,S^3,
       x=zeta,
       y=xi,
       z=lambda);
 

 

psi
`.`(`*`(`^`(S, 2)), `--->`, `*`(`^`(S, 3)))(2.4.1)
 

Simple mapping of the 3-sphere `*`(`^`(S, 3)) into 2-sphere  `*`(`^`(S, 2)) (submersion):
Mapping(pi,S^3,S^2,
       zeta=x^2+y^2,
       xi=z);
 

 

pi
`.`(`*`(`^`(S, 3)), `--->`, `*`(`^`(S, 2)))(2.4.2)
 

Simple mapping of the 1-sphere `^`(S, `1`) into 3-sphere `*`(`^`(S, 3)) (curve):
Mapping(phi,S,S^3,
       x=1/sqrt(2*Lambda)*cos(tau),
       y=1/sqrt(2*Lambda)*sin(tau),
       z=1/sqrt(2*Lambda));
 

 

phi
`.`(S, `--->`, `*`(`^`(S, 3)))(2.4.3)
 

>
 

Metric and connection induced on 2-sphere - `*`(`^`(S, 2)) by psi embedding 

Jump to 2-sphere:
Domain(S^2); 

`*`(`^`(S, 2))(2.5.1)
 

After that we can calculate metric induced on  2-sphere `*`(`^`(S, 2)) by psi embedding:
Metric(G = g &/ psi); 

G = `+`(`/`(`*`(4, `*`(`&.`(u[1], u[1]))), `*`(`^`(`+`(1, `*`(Lambda, `*`(`^`(zeta, 2))), `*`(Lambda, `*`(`^`(xi, 2))), `*`(Lambda, `*`(`^`(lambda, 2)))), 2))), `/`(`*`(4, `*`(`&.`(u[2], u[2]))), `*`(...(2.5.2)
 

> Connection(Gamma);
 

Gamma[i, j](2.5.3)
 

psi - invariants (embedding) 

Calculation of the invariants:
Inv[psi]:=Invariants(psi); 

table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(2, `*`(Lambda, `*`(lambda, `*`(E[3])))), `*`(`+`(1, `*`(Lambda, `*`(`^`(zeta, 2))), `*`(Lambda, `*`(`^`(xi, 2))), `*`(Lambda, `*`(`^`(lambda, 2...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(2, `*`(Lambda, `*`(lambda, `*`(E[3])))), `*`(`+`(1, `*`(Lambda, `*`(`^`(zeta, 2))), `*`(Lambda, `*`(`^`(xi, 2))), `*`(Lambda, `*`(`^`(lambda, 2...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(2, `*`(Lambda, `*`(lambda, `*`(E[3])))), `*`(`+`(1, `*`(Lambda, `*`(`^`(zeta, 2))), `*`(Lambda, `*`(`^`(xi, 2))), `*`(Lambda, `*`(`^`(lambda, 2...
(2.6.1)
 

Pi - invariants (submersion) 

Calculation of the invariants:
Inv[pi]:=Invariants(pi); 

table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
table( [( riemannianObstruction ) = 0, ( integrabilityObstruction ) = 0, ( A ) = 0, ( meanCurvature ) = `+`(`/`(`*`(`/`(1, 4), `*`(`+`(1, `*`(Lambda, `*`(`^`(x, 2))), `*`(Lambda, `*`(`^`(y, 2))), `*`(...
(2.7.1)
 

>
 

phi - invariants (curve) 

To simplify the results:
`atlas/simp`:=proc(a) factor(simplify(a)) end: 

Calculation of the invariants:
Inv[phi]:=Invariants(phi); 

table( [( basis ) = table( [( 0 ) = [`+`(`-`(`*`(sin(tau), `*`(E[1]))), `*`(cos(tau), `*`(E[2])))], ( 1 ) = [`+`(`-`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(cos(tau), `*`(E[1]))))), `-`(`*`(`/`(1, 2...
table( [( basis ) = table( [( 0 ) = [`+`(`-`(`*`(sin(tau), `*`(E[1]))), `*`(cos(tau), `*`(E[2])))], ( 1 ) = [`+`(`-`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(cos(tau), `*`(E[1]))))), `-`(`*`(`/`(1, 2...
table( [( basis ) = table( [( 0 ) = [`+`(`-`(`*`(sin(tau), `*`(E[1]))), `*`(cos(tau), `*`(E[2])))], ( 1 ) = [`+`(`-`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(cos(tau), `*`(E[1]))))), `-`(`*`(`/`(1, 2...
table( [( basis ) = table( [( 0 ) = [`+`(`-`(`*`(sin(tau), `*`(E[1]))), `*`(cos(tau), `*`(E[2])))], ( 1 ) = [`+`(`-`(`*`(`/`(1, 2), `*`(`^`(2, `/`(1, 2)), `*`(cos(tau), `*`(E[1]))))), `-`(`*`(`/`(1, 2...
(2.8.1)
 

>
 

See Also:  

atlas, atlas[Domain], atlas[`&/`], atlas[Projectors].