Hi,
We have just posted a new version (0.3) of SageManifolds at
http://sagemanifolds.obspm.fr
SageManifolds is an attempt to include differential geometry and tensor
calculus in Sage (cf. the initial
post<https://groups.google.com/forum/#!topic/sage-devel/RjqMIWjSC-0>,
the v0.2 post<https://groups.google.com/forum/#!topic/sage-devel/j1zfFSFwsjg>
and trac
14865<http://www.google.com/url?q=http%3A%2F%2Ftrac.sagemath.org%2Fticket%2F14865&sa=D&sntz=1&usg=AFQjCNGzTrK0EbxxuoTmTNi55FE3PHB8aA>).
It is still in some preliminary stage but following the comments made on
this list and during meetings of Paris Sage group (thanks to all!), we have
worked towards a better integration into Sage. In particular:
- Parent / Element scheme is now used for Manifold / Point
- The instantiation of most objects is now performed via factory
methods, so that there is no need to have the class name in the global
namespace and tab completion can be used to guess the method to employ.
- The coordinates associated with a chart are no longer put by default
in the global namespace; to do so, one has to use the preparser tool
<x,y,...> during the chart instantiation.
For example, the sphere S^2, along with the two charts associated with
stereographic projections from two poles, is set up as follows:
sage: M = Manifold(2, 'S^2') # 2 = dimension of the manifold
sage: U = M.open_domain('U') # the complement of the North pole
sage: stereoN.<x,y> = U.chart('x y', 'stereoN') # (x,y) = stereographic
coord. from the North pole
sage: V = M.open_domain('V') # the complement of the South pole
sage: stereoS.<u,v> = V.chart('u v', 'stereoS') # (u,v) = stereographic
coord. from the South pole
sage: phi = stereoN.transition_map(stereoS, (x/(x^2+y^2), y/(x^2+y^2)), \
....: intersection_name='W', \
....: chart1_name='stereoN_W', restrictions1=[x^2+y^2!=0],
\
....: chart2_name='stereoS_W', restrictions2=[u^2+v^2!=0])
sage: phi(x,y)
(x/(x^2 + y^2), y/(x^2 + y^2))
sage: M.domains['W'] is U.intersection(V)
True
sage: M.atlas
{'stereoN': chart 'stereoN' (U, (x, y)),
'stereoN_W': chart 'stereoN_W' (W, (x, y)),
'stereoS': chart 'stereoS' (V, (u, v)),
'stereoS_W': chart 'stereoS_W' (W, (u, v))}
sage: M.frames
{'stereoN_W_b': coordinate basis 'stereoN_W_b' (d/dx,d/dy),
'stereoN_b': coordinate basis 'stereoN_b' (d/dx,d/dy),
'stereoS_W_b': coordinate basis 'stereoS_W_b' (d/du,d/dv),
'stereoS_b': coordinate basis 'stereoS_b' (d/du,d/dv)}
The sphere example is detailed on
http://sagemanifolds.obspm.fr/examples.html </> (embedding into R^3,
induced metric, curvature, spherical coordinates).
Many things remain to be done. People interested in contributing are
welcome! We have set up a git repository (
https://gitroc.obspm.fr/gitweb/SageManifolds.git </>) for this (see the
instructions here </>), as well as a mailing list </>.
Eric Gourgoulhon & Michal Bejger.
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.