1 | initial version |
Does the following correspond to what you want?
First we define the 2-form $\sigma$ on the 3-manifold $M$ covered by coordinates $(x,y,z)$:
sage: M = Manifold(3, 'M')
sage: X.<x,y,z> = M.chart()
sage: a = var('a', domain='real')
sage: sigma = M.diff_form(2)
sage: sigma[1,2] = x/a
sage: sigma[0,2] = -y/a
sage: sigma.display()
-y/a dx/\dz + x/a dy/\dz
Then we define the 2-manifold $N$ covered by coordinates $(\theta,z)$ and the map $g: N\to M$:
sage: N = Manifold(2, 'N')
sage: XN.<th,z> = N.chart(r'th:\theta:(0,2*pi) z')
sage: g = N.diff_map(M, [a*cos(th), a*sin(th), z])
sage: g.display()
N --> M
(th, z) |--> (x, y, z) = (a*cos(th), a*sin(th), z)
The pullback of $\sigma$ by $g$ is then
sage: s = g.pullback(sigma)
sage: s
2-form on the 2-dimensional differentiable manifold N
sage: s.display()
a dth/\dz