Graded Algebra of Mixed Differential Forms#
Let \(M\) and \(N\) be differentiable manifolds and \(\varphi: M \to N\) a
differentiable map. The space of mixed differential forms along \(\varphi\),
denoted by \(\Omega^*(M,\varphi)\), is given by the direct sum
\(\bigoplus^n_{j=0} \Omega^j(M,\varphi)\) of differential form modules, where
\(n=\dim(N)\). With the wedge product, \(\Omega^*(M,\varphi)\) inherits the
structure of a graded algebra. See MixedFormAlgebra
for details.
This algebra is endowed with a natural chain complex structure induced by the
exterior derivative. The corresponding homology is called de Rham cohomology.
See
DeRhamCohomologyRing
for details.
AUTHORS:
Michael Jung (2019) : initial version
- class sage.manifolds.differentiable.mixed_form_algebra.MixedFormAlgebra(vector_field_module)[source]#
Bases:
Parent
,UniqueRepresentation
An instance of this class represents the graded algebra of mixed forms. That is, if \(\varphi: M \to N\) is a differentiable map between two differentiable manifolds \(M\) and \(N\), the graded algebra of mixed forms \(\Omega^*(M,\varphi)\) along \(\varphi\) is defined via the direct sum \(\bigoplus^{n}_{j=0} \Omega^j(M,\varphi)\) consisting of differential form modules (cf.
DiffFormModule
), where \(n\) is the dimension of \(N\). Hence, \(\Omega^*(M,\varphi)\) is a module over \(C^k(M)\) and a vector space over \(\RR\) or \(\CC\). Furthermore notice, that\[\Omega^*(M,\varphi) \cong C^k \left( \bigoplus^n_{j=0} \Lambda^j(\varphi^*T^*N) \right),\]where \(C^k\) denotes the global section functor for differentiable sections of order \(k\) here.
The wedge product induces a multiplication on \(\Omega^*(M,\varphi)\) and gives it the structure of a graded algebra since
\[\Omega^k(M,\varphi) \wedge \Omega^l(M,\varphi) \subset \Omega^{k+l}(M,\varphi).\]Moreover, \(\Omega^*(M,\varphi)\) inherits the structure of a chain complex, called de Rham complex, with the exterior derivative as boundary map, that is
\[0 \rightarrow \Omega^0(M,\varphi) \xrightarrow{\mathrm{d}_0} \Omega^1(M,\varphi) \xrightarrow{\mathrm{d}_1} \dots \xrightarrow{\mathrm{d}_{n-1}} \Omega^n(M,\varphi) \xrightarrow{\mathrm{d}_{n}} 0.\]The induced cohomology is called de Rham cohomology, see
cohomology()
orDeRhamCohomologyRing
respectively.INPUT:
vector_field_module
– module \(\mathfrak{X}(M,\varphi)\) of vector fields along \(M\) associated with the map \(\varphi: M \rightarrow N\)
EXAMPLES:
Graded algebra of mixed forms on a 3-dimensional manifold:
sage: M = Manifold(3, 'M') sage: X.<x,y,z> = M.chart() sage: Omega = M.mixed_form_algebra(); Omega Graded algebra Omega^*(M) of mixed differential forms on the 3-dimensional differentiable manifold M sage: Omega.category() Join of Category of graded algebras over Symbolic Ring and Category of chain complexes over Symbolic Ring sage: Omega.base_ring() Symbolic Ring sage: Omega.vector_field_module() Free module X(M) of vector fields on the 3-dimensional differentiable manifold M
>>> from sage.all import * >>> M = Manifold(Integer(3), 'M') >>> X = M.chart(names=('x', 'y', 'z',)); (x, y, z,) = X._first_ngens(3) >>> Omega = M.mixed_form_algebra(); Omega Graded algebra Omega^*(M) of mixed differential forms on the 3-dimensional differentiable manifold M >>> Omega.category() Join of Category of graded algebras over Symbolic Ring and Category of chain complexes over Symbolic Ring >>> Omega.base_ring() Symbolic Ring >>> Omega.vector_field_module() Free module X(M) of vector fields on the 3-dimensional differentiable manifold M
Elements can be created from scratch:
sage: A = Omega(0); A Mixed differential form zero on the 3-dimensional differentiable manifold M sage: A is Omega.zero() True sage: B = Omega(1); B Mixed differential form one on the 3-dimensional differentiable manifold M sage: B is Omega.one() True sage: C = Omega([2,0,0,0]); C Mixed differential form on the 3-dimensional differentiable manifold M
>>> from sage.all import * >>> A = Omega(Integer(0)); A Mixed differential form zero on the 3-dimensional differentiable manifold M >>> A is Omega.zero() True >>> B = Omega(Integer(1)); B Mixed differential form one on the 3-dimensional differentiable manifold M >>> B is Omega.one() True >>> C = Omega([Integer(2),Integer(0),Integer(0),Integer(0)]); C Mixed differential form on the 3-dimensional differentiable manifold M
There are some important coercions implemented:
sage: Omega0 = M.scalar_field_algebra(); Omega0 Algebra of differentiable scalar fields on the 3-dimensional differentiable manifold M sage: Omega.has_coerce_map_from(Omega0) True sage: Omega2 = M.diff_form_module(2); Omega2 Free module Omega^2(M) of 2-forms on the 3-dimensional differentiable manifold M sage: Omega.has_coerce_map_from(Omega2) True
>>> from sage.all import * >>> Omega0 = M.scalar_field_algebra(); Omega0 Algebra of differentiable scalar fields on the 3-dimensional differentiable manifold M >>> Omega.has_coerce_map_from(Omega0) True >>> Omega2 = M.diff_form_module(Integer(2)); Omega2 Free module Omega^2(M) of 2-forms on the 3-dimensional differentiable manifold M >>> Omega.has_coerce_map_from(Omega2) True
Restrictions induce coercions as well:
sage: U = M.open_subset('U'); U Open subset U of the 3-dimensional differentiable manifold M sage: OmegaU = U.mixed_form_algebra(); OmegaU Graded algebra Omega^*(U) of mixed differential forms on the Open subset U of the 3-dimensional differentiable manifold M sage: OmegaU.has_coerce_map_from(Omega) True
>>> from sage.all import * >>> U = M.open_subset('U'); U Open subset U of the 3-dimensional differentiable manifold M >>> OmegaU = U.mixed_form_algebra(); OmegaU Graded algebra Omega^*(U) of mixed differential forms on the Open subset U of the 3-dimensional differentiable manifold M >>> OmegaU.has_coerce_map_from(Omega) True
- cohomology(*args, **kwargs)[source]#
Return the de Rham cohomology of the de Rham complex
self
.The \(k\)-th de Rham cohomology is given by
\[H^k_{\mathrm{dR}}(M, \varphi) = \left. \mathrm{ker}(\mathrm{d}_k) \middle/ \mathrm{im}(\mathrm{d}_{k-1}) \right. .\]The corresponding ring is given by
\[H^*_{\mathrm{dR}}(M, \varphi) = \bigoplus^n_{k=0} H^k_{\mathrm{dR}}(M, \varphi),\]endowed with the cup product as multiplication induced by the wedge product.
See also
See
DeRhamCohomologyRing
for details.EXAMPLES:
sage: M = Manifold(3, 'M', latex_name=r'\mathcal{M}') sage: A = M.mixed_form_algebra() sage: A.cohomology() De Rham cohomology ring on the 3-dimensional differentiable manifold M
>>> from sage.all import * >>> M = Manifold(Integer(3), 'M', latex_name=r'\mathcal{M}') >>> A = M.mixed_form_algebra() >>> A.cohomology() De Rham cohomology ring on the 3-dimensional differentiable manifold M
- differential(degree=None)[source]#
Return the differential of the de Rham complex
self
given by the exterior derivative.INPUT:
degree
– (default:None
) degree of the differential operator; if none is provided, the differential operator onself
is returned.
EXAMPLES:
sage: M = Manifold(2, 'M') sage: X.<x,y> = M.chart() sage: C = M.de_rham_complex() sage: d = C.differential(); d Generic endomorphism of Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional differentiable manifold M sage: d0 = C.differential(0); d0 Generic morphism: From: Algebra of differentiable scalar fields on the 2-dimensional differentiable manifold M To: Free module Omega^1(M) of 1-forms on the 2-dimensional differentiable manifold M sage: f = M.scalar_field(x, name='f'); f.display() f: M → ℝ (x, y) ↦ x sage: d0(f).display() df = dx
>>> from sage.all import * >>> M = Manifold(Integer(2), 'M') >>> X = M.chart(names=('x', 'y',)); (x, y,) = X._first_ngens(2) >>> C = M.de_rham_complex() >>> d = C.differential(); d Generic endomorphism of Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional differentiable manifold M >>> d0 = C.differential(Integer(0)); d0 Generic morphism: From: Algebra of differentiable scalar fields on the 2-dimensional differentiable manifold M To: Free module Omega^1(M) of 1-forms on the 2-dimensional differentiable manifold M >>> f = M.scalar_field(x, name='f'); f.display() f: M → ℝ (x, y) ↦ x >>> d0(f).display() df = dx
- homology(*args, **kwargs)[source]#
Return the de Rham cohomology of the de Rham complex
self
.The \(k\)-th de Rham cohomology is given by
\[H^k_{\mathrm{dR}}(M, \varphi) = \left. \mathrm{ker}(\mathrm{d}_k) \middle/ \mathrm{im}(\mathrm{d}_{k-1}) \right. .\]The corresponding ring is given by
\[H^*_{\mathrm{dR}}(M, \varphi) = \bigoplus^n_{k=0} H^k_{\mathrm{dR}}(M, \varphi),\]endowed with the cup product as multiplication induced by the wedge product.
See also
See
DeRhamCohomologyRing
for details.EXAMPLES:
sage: M = Manifold(3, 'M', latex_name=r'\mathcal{M}') sage: A = M.mixed_form_algebra() sage: A.cohomology() De Rham cohomology ring on the 3-dimensional differentiable manifold M
>>> from sage.all import * >>> M = Manifold(Integer(3), 'M', latex_name=r'\mathcal{M}') >>> A = M.mixed_form_algebra() >>> A.cohomology() De Rham cohomology ring on the 3-dimensional differentiable manifold M
- irange(start=None)[source]#
Single index generator.
INPUT:
start
– (default:None
) initial value \(i_0\) of the index between 0 and \(n\), where \(n\) is the manifold’s dimension; if none is provided, the value 0 is assumed
OUTPUT:
an iterable index, starting from \(i_0\) and ending at \(n\), where \(n\) is the manifold’s dimension
EXAMPLES:
sage: M = Manifold(3, 'M') sage: A = M.mixed_form_algebra() sage: list(A.irange()) [0, 1, 2, 3] sage: list(A.irange(2)) [2, 3]
>>> from sage.all import * >>> M = Manifold(Integer(3), 'M') >>> A = M.mixed_form_algebra() >>> list(A.irange()) [0, 1, 2, 3] >>> list(A.irange(Integer(2))) [2, 3]
- lift_from_homology(x)[source]#
Lift a cohomology class to the algebra of mixed differential forms.
EXAMPLES:
sage: M = Manifold(2, 'M') sage: X.<x,y> = M.chart() sage: C = M.de_rham_complex() sage: H = C.cohomology() sage: alpha = M.diff_form(1, [1,1], name='alpha') sage: alpha.display() alpha = dx + dy sage: a = H(alpha); a [alpha] sage: C.lift_from_homology(a) Mixed differential form alpha on the 2-dimensional differentiable manifold M
>>> from sage.all import * >>> M = Manifold(Integer(2), 'M') >>> X = M.chart(names=('x', 'y',)); (x, y,) = X._first_ngens(2) >>> C = M.de_rham_complex() >>> H = C.cohomology() >>> alpha = M.diff_form(Integer(1), [Integer(1),Integer(1)], name='alpha') >>> alpha.display() alpha = dx + dy >>> a = H(alpha); a [alpha] >>> C.lift_from_homology(a) Mixed differential form alpha on the 2-dimensional differentiable manifold M
- one()[source]#
Return the one of
self
.EXAMPLES:
sage: M = Manifold(3, 'M') sage: A = M.mixed_form_algebra() sage: A.one() Mixed differential form one on the 3-dimensional differentiable manifold M
>>> from sage.all import * >>> M = Manifold(Integer(3), 'M') >>> A = M.mixed_form_algebra() >>> A.one() Mixed differential form one on the 3-dimensional differentiable manifold M
- vector_field_module()[source]#
Return the underlying vector field module.
EXAMPLES:
sage: M = Manifold(2, 'M') sage: N = Manifold(3, 'N') sage: Phi = M.diff_map(N, name='Phi'); Phi Differentiable map Phi from the 2-dimensional differentiable manifold M to the 3-dimensional differentiable manifold N sage: A = M.mixed_form_algebra(Phi); A Graded algebra Omega^*(M,Phi) of mixed differential forms along the 2-dimensional differentiable manifold M mapped into the 3-dimensional differentiable manifold N via Phi sage: A.vector_field_module() Module X(M,Phi) of vector fields along the 2-dimensional differentiable manifold M mapped into the 3-dimensional differentiable manifold N
>>> from sage.all import * >>> M = Manifold(Integer(2), 'M') >>> N = Manifold(Integer(3), 'N') >>> Phi = M.diff_map(N, name='Phi'); Phi Differentiable map Phi from the 2-dimensional differentiable manifold M to the 3-dimensional differentiable manifold N >>> A = M.mixed_form_algebra(Phi); A Graded algebra Omega^*(M,Phi) of mixed differential forms along the 2-dimensional differentiable manifold M mapped into the 3-dimensional differentiable manifold N via Phi >>> A.vector_field_module() Module X(M,Phi) of vector fields along the 2-dimensional differentiable manifold M mapped into the 3-dimensional differentiable manifold N
- zero()[source]#
Return the zero of
self
.EXAMPLES:
sage: M = Manifold(3, 'M') sage: A = M.mixed_form_algebra() sage: A.zero() Mixed differential form zero on the 3-dimensional differentiable manifold M
>>> from sage.all import * >>> M = Manifold(Integer(3), 'M') >>> A = M.mixed_form_algebra() >>> A.zero() Mixed differential form zero on the 3-dimensional differentiable manifold M