Actually, we are currently working at removing strings. If you download the 
latest version from the git server (see the instructions on the web page; 
it should become version 0.4 soon), you would notice that the new syntax is

X.<x,y,z> = M.chart('x y z')

The string 'xyz', which was used as a chart identifier, has disappeared. 
Indeed, the charts have been made hashable and are now used directely as 
keys in internal dictionaries (like the dictionary of the various 
coordinate expressions of a given scalar field), instead of their string 
"identifier". 

Le mercredi 18 décembre 2013 13:34:18 UTC+1, maldun a écrit :
>
> Good Job!
>
> But I have to agree with Volker, using strings is not a good idea.
> Why not using functions as input instead?
>

> e.g. in your example from the tutorial:
>
> X.<x,y,z> = M.chart('x y z', 'xyz')
>
> I would use something like
> var('x y z')
> charti = x*y*z
>
> X = M.chart(vars = [x,y,z], map = charti)
>
>
> On Sunday, November 24, 2013 10:32:45 PM UTC+1, Eric Gourgoulhon wrote:
>>
>> 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