Opened 16 months ago

Last modified 15 months ago

#28716 closed enhancement

Construction of a vector frame from a family of vector fields — at Version 3

Reported by: egourgoulhon Owned by:
Priority: major Milestone: sage-9.0
Component: geometry Keywords: manifolds, vector_frame
Cc: tscrim Merged in:
Authors: Eric Gourgoulhon Reviewers:
Report Upstream: N/A Work issues:
Branch: public/manifolds/vector_frame_from_family-28716 (Commits, GitHub, GitLab) Commit: 013fb8b665adaf1339372c457fca851246d30a3c
Dependencies: Stopgaps:

Status badges

Description (last modified by egourgoulhon)

This ticket introduces the keyword argument from_family to DifferentiableManifold.vector_frame() to allow for constructing a vector frame from a spanning family of linearly independent vector fields:

sage: M = Manifold(2, 'M')
sage: X.<x,y> = M.chart()
sage: e0 = M.vector_field(1+x^2, 1+y^2)
sage: e1 = M.vector_field(2, -x*y)
sage: e = M.vector_frame('e', from_family=(e0, e1)); e
Vector frame (M, (e_0,e_1))
sage: e[0].display()
e_0 = (x^2 + 1) d/dx + (y^2 + 1) d/dy
sage: e[1].display()
e_1 = 2 d/dx - x*y d/dy
sage: (e[0], e[1]) == (e0, e1)
True

Previously, the only way to introduce the vector frame e was to first introduce the automorphism relating the frame (d/dx, d/dy) to (e0, e1) and to pass this automorphism to VectorFrame.new_frame():

sage: aut = M.automorphism_field()
sage: aut[:] = [[e0[0], e1[0]], [e0[1], e1[1]]]
sage: e = X.frame().new_frame(aut, 'e')

The introduction of from_family in vector_frame() simplifies this process.

Implementation details: such functionality already existed for bases of finite rank free modules; the relevant code is extracted from the method FiniteRankFreeModule.basis() and put into the new method FreeModuleBasis._init_from_family(), in order to be used in DifferentiableManifold.vector_frame() as well.

Change History (3)

comment:1 Changed 16 months ago by egourgoulhon

  • Branch set to public/manifolds/vector_frame_from_family-28716
  • Commit set to 013fb8b665adaf1339372c457fca851246d30a3c

New commits:

013fb8bAdd construction of a vector frame from a family of vector fields

comment:2 Changed 16 months ago by egourgoulhon

  • Cc tscrim added
  • Status changed from new to needs_review

comment:3 Changed 16 months ago by egourgoulhon

  • Description modified (diff)
Note: See TracTickets for help on using tickets.