sagemanifolds / SageManifolds

Jupyter notebooks and documentation for SageManifolds
https://sagemanifolds.obspm.fr/
49 stars 9 forks source link

How to specify a diffeomorphism between real and complex manifolds? #3

Open tobiasdiez opened 7 years ago

tobiasdiez commented 7 years ago

How can I specify a diffeomorphism between a real and a complex manifold, say for example S^2 and the Riemann sphere. I tried

Phi = S2.diffeomorphism(Cinfty,
                    {(stereoN, Zorigin): [Xn + Yn*I],
                     (stereoS, Zinfty): [Xs - Ys*I]},
                     name='Iso', latex_name=r'\Phi')

where

Cinfty = Manifold(1, r'C_\infty', field='complex')
S2 = Manifold(2, 'S^2', latex_name=r'\mathbb{S}^2', start_index=1)

But this results in the following error

ValueError: for an isomorphism, the source manifold and target manifold must have the same dimension

So I suspect that SageManifold doesn't take dim_C = 2 dim_R into account. But even if I replace diffeomorphism by diff_map above, it doesn't really work: Phi.display() prints no coordinate expression. However, the pullback of a function is ok (except that the pullback of a complex-valued function is printed as real-valued).

On a related note: is the concept of embedding somewhere defined? For example, I would like to invert the natural embedding of S^2 into R^3 on the image (to display the coordinate expression of the inverse).

egourgoulhon commented 7 years ago

In the current setting of SageManifolds, maps are implemented only between manifolds over the same field K, see the differentiable map documentation. Your example shows that it would be interesting to extend this, at least when the field of the map's domain and that of the codomain have some canonical relation, like R and C. By the way, there is some project to extend SageManifolds towards complex manifolds: trac 18786, but it is stalled at the moment...

Regarding the concept of embedding: no, it is not defined as such, only as a differentiable map...

PS: please consider subscribing to SageManifolds list and asking such questions there instead. You will find a greater audience susceptible to answer them.