Solution:
Load atlas package:
Just for right simplification:
| > | `atlas/simp`:=proc(a) factor(simplify(a,trig)) end: |
Description of the total space
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);
 | (2.1.1) |
Declare 1-forms for the space coframe:
Forms(e[k]=1);
![{e[k]}](Maple/atlas/Templates/images/toruscurve_5.gif) | (2.1.2) |
Declare vectors for the space frame:
Vectors(E[j]);
![{E[j]}](Maple/atlas/Templates/images/toruscurve_6.gif) | (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)]](Maple/atlas/Templates/images/toruscurve_7.gif) | (2.1.4) |
Declare frame on the space:
Frame(E[k]);
![[E[1] = Diff(``, x), E[2] = Diff(``, y), E[3] = Diff(``, z)]](Maple/atlas/Templates/images/toruscurve_8.gif) | (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]))](Maple/atlas/Templates/images/toruscurve_9.gif) | (2.1.6) |
Calculate connection of the metric:
Connection(omega);
![omega[i, j]](Maple/atlas/Templates/images/toruscurve_10.gif) | (2.1.7) |
Description of the curve C (winding line on a torus)
Define the curve as a manifold:
Domain(C);
 | (2.2.1) |
Declare constants a, b and m, n:
Constants(a,b,m,n);
 | (2.2.2) |
Declare 1-form for curve's coframe
Forms(u[i]=1);
![{e[k], u[i]}](Maple/atlas/Templates/images/toruscurve_13.gif) | (2.2.3) |
Declare vectors for curve's frame:
Vectors(U[k]);
![{U[k]}](Maple/atlas/Templates/images/toruscurve_14.gif) | (2.2.4) |
Declare coframe on the curve:
Coframe(u[1]=d(tau));
![[u[1] = d(tau)]](Maple/atlas/Templates/images/toruscurve_15.gif) | (2.2.5) |
Declare frame of the curve:
Frame(U[l]);
![[U[1] = Diff(``, tau)]](Maple/atlas/Templates/images/toruscurve_16.gif) | (2.2.6) |
Mapping
:
and its invariants (metric, moving frame, curvature, torsion)
Declare mapping of the curve into
:
Mapping(pi,C,R^3,x=(a+b*cos(n*tau))*cos(m*tau),
y=(a+b*cos(n*tau))*sin(m*tau),
z=b*sin(n*tau));
 |
 | (2.3.1) |
One can also calculate metric induced on the curve by the mapping:
| > | Metric(g[C] = g[R] &/ pi); |
![g[C] = `*`(`+`(`*`(`^`(m, 2), `*`(`^`(a, 2))), `*`(2, `*`(`^`(m, 2), `*`(a, `*`(b, `*`(cos(`*`(n, `*`(tau)))))))), `*`(`^`(m, 2), `*`(`^`(b, 2), `*`(`^`(cos(`*`(n, `*`(tau))), 2)))), `*`(`^`(b, 2), `*...](Maple/atlas/Templates/images/toruscurve_22.gif)
![g[C] = `*`(`+`(`*`(`^`(m, 2), `*`(`^`(a, 2))), `*`(2, `*`(`^`(m, 2), `*`(a, `*`(b, `*`(cos(`*`(n, `*`(tau)))))))), `*`(`^`(m, 2), `*`(`^`(b, 2), `*`(`^`(cos(`*`(n, `*`(tau))), 2)))), `*`(`^`(b, 2), `*...](Maple/atlas/Templates/images/toruscurve_23.gif) | (2.3.2) |
It is obvious that the metric gives squared differential of the curve's arc:
Calculate invariants of the mapping:
Inv[pi]:=Invariants(pi):
Extract tangent normalized vector field:
Extract principal normal normalized vector field:
Extract binormal normalized vector field:
Extract curvature of the curve:
| > | k1:=Inv[pi][curvatures][1]; |
Extract torsion of the curve:
| > | chi1:=Inv[pi][curvatures][2]; |
Let us check the "orthonormality" of the moving frame vectors. To do this we use metric tensor field
:
| > | 'g[R](T1,T1)'=simplify(g[R](T1,T1)); 'g[R](B1,B1)'=simplify(g[R](B1,B1)); 'g[R](N1,N1)'=simplify(g[R](N1,N1)); |
| > | 'g[R](T1,N1)'=simplify(g[R](T1,N1)); 'g[R](T1,B1)'=simplify(g[R](T1,B1)); 'g[R](B1,N1)'=simplify(g[R](B1,N1)); |
Description of the torus
Define the torus as a manifold:
Domain(T^2);
 | (2.4.1) |
Declare 1-form for the torus coframe
Forms(phi[i]=1);
![{e[k], phi[i], u[i]}](Maple/atlas/Templates/images/toruscurve_141.gif) | (2.4.2) |
Declare vectors for the torus frame:
Vectors(Phi[j]);
![{Phi[j]}](Maple/atlas/Templates/images/toruscurve_142.gif) | (2.4.3) |
Declare coframe on the torus:
Coframe(phi[1]=d(alpha),phi[2]=d(beta));
![[phi[1] = d(alpha), phi[2] = d(beta)]](Maple/atlas/Templates/images/toruscurve_143.gif) | (2.4.4) |
Declare frame of the torus:
Frame(Phi[l]);
![[Phi[1] = Diff(``, alpha), Phi[2] = Diff(``, beta)]](Maple/atlas/Templates/images/toruscurve_144.gif) | (2.4.5) |
Embedding
:
and induced metric calculation
Declare mapping of the torus into
:
Mapping(f,T^2,R^3,x=(a+b*cos(beta))*cos(alpha),
y=(a+b*cos(beta))*sin(alpha),
z=b*sin(beta));
 |
 | (2.5.1) |
Calculate metric (induced by the embedding) on the torus using `&/` operator:
Metric(g[T] = g[R] &/ f);
![g[T] = `+`(`*`(`^`(`+`(a, `*`(b, `*`(cos(beta)))), 2), `*`(`&.`(phi[1], phi[1]))), `*`(`^`(b, 2), `*`(`&.`(phi[2], phi[2]))))](Maple/atlas/Templates/images/toruscurve_150.gif) | (2.5.2) |
Calculate connection on the torus
Connection(Gamma);
![Gamma[i, j]](Maple/atlas/Templates/images/toruscurve_151.gif) | (2.5.3) |
Let us see the result:
eval(Gamma);
![table( [( 2, 2 ) = 0, ( 1, 1 ) = `+`(`-`(`/`(`*`(b, `*`(sin(beta), `*`(phi[2]))), `*`(`+`(a, `*`(b, `*`(cos(beta)))))))), ( 2, 1 ) = `/`(`*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(sin(beta), `*`(phi[1]))...](Maple/atlas/Templates/images/toruscurve_152.gif)
![table( [( 2, 2 ) = 0, ( 1, 1 ) = `+`(`-`(`/`(`*`(b, `*`(sin(beta), `*`(phi[2]))), `*`(`+`(a, `*`(b, `*`(cos(beta)))))))), ( 2, 1 ) = `/`(`*`(`+`(a, `*`(b, `*`(cos(beta)))), `*`(sin(beta), `*`(phi[1]))...](Maple/atlas/Templates/images/toruscurve_153.gif) | (2.5.4) |
We can calculate the corresponding invariants of the mapping. The invarians are: second fundamental form and field of mean curvature vectors. We do not need these quantities anyway, but it's hard to keep from the calculation:
Embedding
:
and its invariants (metric, moving frame, curvature)
Declare mapping of the curve into
:
Mapping(psi,C,T^2,
alpha=m*tau,
beta=n*tau);
 |
 | (2.6.1) |
Calculate metric (induced by the embedding) on the curve using `&/` operator:
g[T] &/ psi;
 | (2.6.2) |
Calculate invariants of the mapping:
Inv[psi]:=Invariants(psi);
Extract tangent normalized vector field:
| > | T2:=Inv[psi][basis][0]; |
![`+`(`/`(`*`(m, `*`(Phi[1])), `*`(`^`(`+`(`*`(`^`(m, 2), `*`(`^`(a, 2))), `*`(2, `*`(`^`(m, 2), `*`(a, `*`(b, `*`(cos(`*`(n, `*`(tau)))))))), `*`(`^`(m, 2), `*`(`^`(b, 2), `*`(`^`(cos(`*`(n, `*`(tau)))...](Maple/atlas/Templates/images/toruscurve_177.gif)
![`+`(`/`(`*`(m, `*`(Phi[1])), `*`(`^`(`+`(`*`(`^`(m, 2), `*`(`^`(a, 2))), `*`(2, `*`(`^`(m, 2), `*`(a, `*`(b, `*`(cos(`*`(n, `*`(tau)))))))), `*`(`^`(m, 2), `*`(`^`(b, 2), `*`(`^`(cos(`*`(n, `*`(tau)))...](Maple/atlas/Templates/images/toruscurve_178.gif) | (2.6.4) |
Extract principal normal normalized vector field:
| > | N2:=Inv[psi][basis][1]; |
Extract curvature of the curve:
| > | k2:=Inv[psi][curvatures][1]; |

 | (2.6.6) |
Let us check the "orthonormality" of the moving frame vectors. To do this we use metric tensor field
, but in this case the metric is not flat and its components (in any coframe) are verify from one torus point to another:
![g[T] = `+`(`*`(`^`(`+`(a, `*`(b, `*`(cos(beta)))), 2), `*`(`&.`(phi[1], phi[1]))), `*`(`^`(b, 2), `*`(`&.`(phi[2], phi[2]))))](Maple/atlas/Templates/images/toruscurve_186.gif) | (2.6.7) |
Thus we have to make calculations on the curve C:
| > | sub:={alpha=m*tau,beta=n*tau}; |
 | (2.6.8) |
| > | 'g[T](T2,T2)'=simplify(subs(sub,g[T](T2,T2))); 'g[T](N2,N2)'=simplify(subs(sub,g[T](N2,N2))); |
 = 1](Maple/atlas/Templates/images/toruscurve_188.gif) |
 = 1](Maple/atlas/Templates/images/toruscurve_189.gif) | (2.6.9) |
| > | 'g[T](T2,N2)'=simplify(subs(sub,g[T](T2,N2))); |
 = 0](Maple/atlas/Templates/images/toruscurve_190.gif) | (2.6.10) |