Skip to content
This repository was archived by the owner on Feb 1, 2023. It is now read-only.

Commit b8eba57

Browse files
committed
Slight changes in the documentation and code of vector bundles
1 parent 12a86a4 commit b8eba57

File tree

2 files changed

+52
-21
lines changed

2 files changed

+52
-21
lines changed

src/sage/manifolds/differentiable/vector_bundle.py

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -387,17 +387,17 @@ def _repr_(self):
387387

388388
def fiber(self, point):
389389
r"""
390-
Return the tensor bundle fiber at ``point``.
390+
Return the tensor bundle fiber over a point.
391391
392392
INPUT:
393393
394394
- ``point`` -- :class:`~sage.manifolds.point.ManifoldPoint`;
395-
point `p` at which the fiber is defined
395+
point `p` of the base manifold of ``self``
396396
397-
OUPUT:
397+
OUTPUT:
398398
399399
- an instance of :class:`~sage.tensor.modules.finite_rank_free_module.FiniteRankFreeModule`
400-
representing the tensor bundle fiber
400+
representing the tensor bundle fiber over `p`
401401
402402
EXAMPLES::
403403
@@ -498,8 +498,8 @@ def section_module(self, domain=None):
498498

499499
def section(self, *args, **kwargs):
500500
r"""
501-
Return a section of ``self``, namely a tensor field on the corresponding
502-
tensor field module.
501+
Return a section of ``self``, namely a tensor field on the base
502+
manifold.
503503
504504
.. SEEALSO::
505505
@@ -520,6 +520,8 @@ def section(self, *args, **kwargs):
520520
is a dictionary) coordinate chart in which the components are
521521
expressed; if ``None``, the default chart on the domain of ``frame``
522522
is assumed
523+
- ``domain`` -- (default: ``None``) domain of the section; if ``None``,
524+
``self.base_space()`` is assumed
523525
- ``name`` -- (default: ``None``) name given to the tensor field
524526
- ``latex_name`` -- (default: ``None``) LaTeX symbol to denote the
525527
tensor field; if ``None``, the LaTeX symbol is set to ``name``
@@ -563,11 +565,19 @@ def section(self, *args, **kwargs):
563565
sage: t.display()
564566
t = d/dx*dx + x d/dx*dy + 2 d/dy*dy
565567
568+
An example of use with the arguments ``comp`` and ``domain``::
569+
570+
sage: TM = M.tangent_bundle()
571+
sage: w = TM.section([-y, x], domain=U); w
572+
Vector field on the Open subset U of the 2-dimensional differentiable manifold M
573+
sage: w.display()
574+
-y d/dx + x d/dy
575+
566576
"""
567577
nargs = [self._tensor_type[0], self._tensor_type[1]]
568578
nargs.extend(args)
569579
domain = kwargs.pop('domain', self._base_space)
570-
kwargs['dest_map'] = self._dest_map
580+
kwargs['dest_map'] = self._dest_map.restrict(domain)
571581
return domain.tensor_field(*nargs, **kwargs)
572582

573583
def set_change_of_frame(self, frame1, frame2, change_of_frame,
@@ -1101,11 +1111,14 @@ def local_frame(self, symbol=None, latex_symbol=None, from_frame=None,
11011111
indices=None, latex_indices=None, symbol_dual=None,
11021112
latex_symbol_dual=None, domain=None):
11031113
r"""
1104-
Define a vector frame on ``self``.
1114+
Define a local frame for ``self`` over some open subset of the base
1115+
space.
11051116
1106-
A *vector frame* is a field on the manifold that provides, at each
1107-
point `p` of the manifold, a vector basis of the tangent space at `p`
1108-
(or at `\Phi(p)` when a destination map is given to the bundle).
1117+
If `k` is the (vector bundle) rank of ``self`` and `U` is an open
1118+
subset of the base manifold of ``self``, a *local frame over* `U` is
1119+
a `k`-tuple of local sections `(s_1,\ldots,s_k)` over `U` such that
1120+
for each `p\in U`, `(s_1(p),\ldots,s_k(p))` is a vector basis of the
1121+
fiber over `p` .
11091122
11101123
.. SEEALSO::
11111124
@@ -1142,25 +1155,37 @@ def local_frame(self, symbol=None, latex_symbol=None, from_frame=None,
11421155
- ``latex_symbol_dual`` -- (default: ``None``) same as ``latex_symbol``
11431156
but for the dual coframe
11441157
- ``domain`` -- (default: ``None``) domain on which the local frame is
1145-
defined; if ``None`` is provided, the base space is assumed
1158+
defined; if ``None`` is provided, the base space of ``self`` is
1159+
assumed
11461160
11471161
OUTPUT:
11481162
1149-
- a :class:`~sage.manifolds.differentiable.vectorframe.VectorFrame`
1150-
representing the defined vector frame
1163+
- the local frame corresponding to the above specifications; this is
1164+
an instance of
1165+
:class:`~sage.manifolds.differentiable.vectorframe.VectorFrame`
1166+
if ``self`` is a tangent bundle.
11511167
11521168
EXAMPLES:
11531169
1154-
Setting a vector frame on a 3-dimensional manifold::
1170+
Defining a local frame for the tangent bundle of a 3-dimensional
1171+
manifold::
11551172
11561173
sage: M = Manifold(3, 'M')
1157-
sage: X.<x,y,z> = M.chart()
11581174
sage: TM = M.tangent_bundle()
1159-
sage: e = TM.vector_frame('e'); e
1175+
sage: e = TM.local_frame('e'); e
11601176
Vector frame (M, (e_0,e_1,e_2))
11611177
sage: e[0]
11621178
Vector field e_0 on the 3-dimensional differentiable manifold M
11631179
1180+
Specifying the domain of the local frame::
1181+
1182+
sage: U = M.open_subset('U')
1183+
sage: f = TM.local_frame('f', domain=U); f
1184+
Vector frame (U, (f_0,f_1,f_2))
1185+
sage: f[0]
1186+
Vector field f_0 on the Open subset U of the 3-dimensional
1187+
differentiable manifold M
1188+
11641189
.. SEEALSO::
11651190
11661191
For more options, in particular for the choice of symbols and
@@ -1169,10 +1194,15 @@ def local_frame(self, symbol=None, latex_symbol=None, from_frame=None,
11691194
11701195
"""
11711196
from .vectorframe import VectorFrame
1197+
if self._tensor_type != (1, 0):
1198+
raise NotImplementedError("local frames are not implemented for "
1199+
"tensor bundles of type {}".format(
1200+
self._tensor_type))
11721201
if domain is None:
11731202
domain = self._base_space
1174-
return VectorFrame(domain.vector_field_module(dest_map=self._dest_map,
1175-
force_free=True),
1203+
return VectorFrame(domain.vector_field_module(
1204+
dest_map=self._dest_map.restrict(domain),
1205+
force_free=True),
11761206
symbol=symbol, latex_symbol=latex_symbol,
11771207
from_frame=from_frame, indices=indices,
11781208
latex_indices=latex_indices, symbol_dual=symbol_dual,

src/sage/manifolds/vector_bundle.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -658,16 +658,17 @@ def section_module(self, domain=None, force_free=False):
658658

659659
def fiber(self, point):
660660
r"""
661-
Return the vector bundle fiber at ``point``.
661+
Return the vector bundle fiber over a point.
662662
663663
INPUT:
664664
665665
- ``point`` -- :class:`~sage.manifolds.point.ManifoldPoint`;
666-
point `p` at which the fiber is defined
666+
point `p` of the base space of ``self``
667667
668668
OUTPUT:
669669
670670
- instance of :class:`~sage.manifolds.vector_bundle_fiber.VectorBundleFiber`
671+
representing the fiber over `p`
671672
672673
EXAMPLES::
673674

0 commit comments

Comments
 (0)