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.

Reply via email to