Vector Bundle Fibers¶
The class VectorBundleFiber implements fibers over a vector bundle.
AUTHORS:
- Michael Jung (2019): initial version 
- class sage.manifolds.vector_bundle_fiber.VectorBundleFiber(vector_bundle, point)[source]¶
- Bases: - FiniteRankFreeModule- Fiber of a given vector bundle at a given point. - Let \(\pi: E \to M\) be a vector bundle of rank \(n\) over the field \(K\) (see - TopologicalVectorBundle) and \(p \in M\). The fiber \(E_p\) at \(p\) is defined via \(E_p := \pi^{-1}(p)\) and takes the structure of an \(n\)-dimensional vector space over the field \(K\).- INPUT: - vector_bundle–- TopologicalVectorBundle; vector bundle \(E\) on which the fiber is defined
- point–- ManifoldPoint; point \(p\) at which the fiber is defined
 - EXAMPLES: - A vector bundle fiber in a trivial rank 2 vector bundle over a 4-dimensional topological manifold: - sage: M = Manifold(4, 'M', structure='top') sage: X.<x,y,z,t> = M.chart() sage: p = M((0,0,0,0), name='p') sage: E = M.vector_bundle(2, 'E') sage: e = E.local_frame('e') sage: Ep = E.fiber(p); Ep Fiber of E at Point p on the 4-dimensional topological manifold M - >>> from sage.all import * >>> M = Manifold(Integer(4), 'M', structure='top') >>> X = M.chart(names=('x', 'y', 'z', 't',)); (x, y, z, t,) = X._first_ngens(4) >>> p = M((Integer(0),Integer(0),Integer(0),Integer(0)), name='p') >>> E = M.vector_bundle(Integer(2), 'E') >>> e = E.local_frame('e') >>> Ep = E.fiber(p); Ep Fiber of E at Point p on the 4-dimensional topological manifold M - Fibers are free modules of finite rank over - SymbolicRing(actually vector spaces of finite dimension over the vector bundle field \(K\), here \(K=\RR\)):- sage: Ep.base_ring() Symbolic Ring sage: Ep.category() Category of finite dimensional vector spaces over Symbolic Ring sage: Ep.rank() 2 sage: dim(Ep) 2 - >>> from sage.all import * >>> Ep.base_ring() Symbolic Ring >>> Ep.category() Category of finite dimensional vector spaces over Symbolic Ring >>> Ep.rank() 2 >>> dim(Ep) 2 - The fiber is automatically endowed with bases deduced from the local frames around the point: - sage: Ep.bases() [Basis (e_0,e_1) on the Fiber of E at Point p on the 4-dimensional topological manifold M] sage: E.frames() [Local frame (E|_M, (e_0,e_1))] - >>> from sage.all import * >>> Ep.bases() [Basis (e_0,e_1) on the Fiber of E at Point p on the 4-dimensional topological manifold M] >>> E.frames() [Local frame (E|_M, (e_0,e_1))] - At this stage, only one basis has been defined in the fiber, but new bases can be added from local frames on the vector bundle by means of the method - at():- sage: aut = E.section_module().automorphism() sage: aut[:] = [[-1, x], [y, 2]] sage: f = e.new_frame(aut, 'f') sage: fp = f.at(p); fp Basis (f_0,f_1) on the Fiber of E at Point p on the 4-dimensional topological manifold M sage: Ep.bases() [Basis (e_0,e_1) on the Fiber of E at Point p on the 4-dimensional topological manifold M, Basis (f_0,f_1) on the Fiber of E at Point p on the 4-dimensional topological manifold M] - >>> from sage.all import * >>> aut = E.section_module().automorphism() >>> aut[:] = [[-Integer(1), x], [y, Integer(2)]] >>> f = e.new_frame(aut, 'f') >>> fp = f.at(p); fp Basis (f_0,f_1) on the Fiber of E at Point p on the 4-dimensional topological manifold M >>> Ep.bases() [Basis (e_0,e_1) on the Fiber of E at Point p on the 4-dimensional topological manifold M, Basis (f_0,f_1) on the Fiber of E at Point p on the 4-dimensional topological manifold M] - The changes of bases are applied to the fibers: - sage: f[1].display(e) # second component of frame f f_1 = x e_0 + 2 e_1 sage: ep = e.at(p) sage: fp[1].display(ep) # second component of frame f at p f_1 = 2 e_1 - >>> from sage.all import * >>> f[Integer(1)].display(e) # second component of frame f f_1 = x e_0 + 2 e_1 >>> ep = e.at(p) >>> fp[Integer(1)].display(ep) # second component of frame f at p f_1 = 2 e_1 - All the bases defined on - Epare on the same footing. Accordingly the fiber is not in the category of modules with a distinguished basis:- sage: Ep in ModulesWithBasis(SR) False - >>> from sage.all import * >>> Ep in ModulesWithBasis(SR) False - It is simply in the category of modules: - sage: Ep in Modules(SR) True - >>> from sage.all import * >>> Ep in Modules(SR) True - Since the base ring is a field, it is actually in the category of vector spaces: - sage: Ep in VectorSpaces(SR) True - >>> from sage.all import * >>> Ep in VectorSpaces(SR) True - A typical element: - sage: v = Ep.an_element(); v Vector in the fiber of E at Point p on the 4-dimensional topological manifold M sage: v.display() e_0 + 2 e_1 sage: v.parent() Fiber of E at Point p on the 4-dimensional topological manifold M - >>> from sage.all import * >>> v = Ep.an_element(); v Vector in the fiber of E at Point p on the 4-dimensional topological manifold M >>> v.display() e_0 + 2 e_1 >>> v.parent() Fiber of E at Point p on the 4-dimensional topological manifold M - The zero vector: - sage: Ep.zero() Vector zero in the fiber of E at Point p on the 4-dimensional topological manifold M sage: Ep.zero().display() zero = 0 sage: Ep.zero().parent() Fiber of E at Point p on the 4-dimensional topological manifold M - >>> from sage.all import * >>> Ep.zero() Vector zero in the fiber of E at Point p on the 4-dimensional topological manifold M >>> Ep.zero().display() zero = 0 >>> Ep.zero().parent() Fiber of E at Point p on the 4-dimensional topological manifold M - Fibers are unique: - sage: E.fiber(p) is Ep True sage: p1 = M.point((0,0,0,0)) sage: E.fiber(p1) is Ep True - >>> from sage.all import * >>> E.fiber(p) is Ep True >>> p1 = M.point((Integer(0),Integer(0),Integer(0),Integer(0))) >>> E.fiber(p1) is Ep True - even if points are different instances: - sage: p1 is p False - >>> from sage.all import * >>> p1 is p False - but - p1and- pshare the same fiber because they compare equal:- sage: p1 == p True - >>> from sage.all import * >>> p1 == p True - See also - FiniteRankFreeModulefor more documentation.- Element[source]¶
- alias of - VectorBundleFiberElement
 - base_point()[source]¶
- Return the manifold point over which - selfis defined.- EXAMPLES: - sage: M = Manifold(2, 'M', structure='top') sage: X.<x,y> = M.chart() sage: E = M.vector_bundle(2, 'E') sage: e = E.local_frame('e') sage: p = M.point((3,-2), name='p') sage: Ep = E.fiber(p) sage: Ep.base_point() Point p on the 2-dimensional topological manifold M sage: p is Ep.base_point() True - >>> from sage.all import * >>> M = Manifold(Integer(2), 'M', structure='top') >>> X = M.chart(names=('x', 'y',)); (x, y,) = X._first_ngens(2) >>> E = M.vector_bundle(Integer(2), 'E') >>> e = E.local_frame('e') >>> p = M.point((Integer(3),-Integer(2)), name='p') >>> Ep = E.fiber(p) >>> Ep.base_point() Point p on the 2-dimensional topological manifold M >>> p is Ep.base_point() True 
 - dim()[source]¶
- Return the vector space dimension of - self.- EXAMPLES: - sage: M = Manifold(3, 'M', structure='top') sage: X.<x,y,z> = M.chart() sage: p = M((0,0,0), name='p') sage: E = M.vector_bundle(2, 'E') sage: Ep = E.fiber(p) sage: Ep.dim() 2 - >>> from sage.all import * >>> M = Manifold(Integer(3), 'M', structure='top') >>> X = M.chart(names=('x', 'y', 'z',)); (x, y, z,) = X._first_ngens(3) >>> p = M((Integer(0),Integer(0),Integer(0)), name='p') >>> E = M.vector_bundle(Integer(2), 'E') >>> Ep = E.fiber(p) >>> Ep.dim() 2 
 - dimension()[source]¶
- Return the vector space dimension of - self.- EXAMPLES: - sage: M = Manifold(3, 'M', structure='top') sage: X.<x,y,z> = M.chart() sage: p = M((0,0,0), name='p') sage: E = M.vector_bundle(2, 'E') sage: Ep = E.fiber(p) sage: Ep.dim() 2 - >>> from sage.all import * >>> M = Manifold(Integer(3), 'M', structure='top') >>> X = M.chart(names=('x', 'y', 'z',)); (x, y, z,) = X._first_ngens(3) >>> p = M((Integer(0),Integer(0),Integer(0)), name='p') >>> E = M.vector_bundle(Integer(2), 'E') >>> Ep = E.fiber(p) >>> Ep.dim() 2