Group of Tangent-Space Automorphism Fields

Given a differentiable manifold \(U\) and a differentiable map \(\Phi: U \rightarrow M\) to a differentiable manifold \(M\) (possibly \(U = M\) and \(\Phi=\mathrm{Id}_M\)), the group of tangent-space automorphism fields associated with \(U\) and \(\Phi\) is the general linear group \(\mathrm{GL}(\mathcal{X}(U,\Phi))\) of the module \(\mathcal{X}(U,\Phi)\) of vector fields along \(U\) with values on \(M\supset \Phi(U)\) (see VectorFieldModule). Note that \(\mathcal{X}(U, \Phi)\) is a module over \(C^k(U)\), the algebra of differentiable scalar fields on \(U\). Elements of \(\mathrm{GL}(\mathcal{X}(U, \Phi))\) are fields along \(U\) of automorphisms of tangent spaces to \(M\).

Two classes implement \(\mathrm{GL}(\mathcal{X}(U, \Phi))\) depending whether \(M\) is parallelizable or not: AutomorphismFieldParalGroup and AutomorphismFieldGroup.

AUTHORS:

  • Eric Gourgoulhon (2015): initial version
  • Travis Scrimshaw (2016): review tweaks

REFERENCES:

class sage.manifolds.differentiable.automorphismfield_group.AutomorphismFieldGroup(vector_field_module)

Bases: sage.structure.unique_representation.UniqueRepresentation, sage.structure.parent.Parent

General linear group of the module of vector fields along a differentiable manifold \(U\) with values on a differentiable manifold \(M\).

Given a differentiable manifold \(U\) and a differentiable map \(\Phi: U \rightarrow M\) to a differentiable manifold \(M\) (possibly \(U = M\) and \(\Phi = \mathrm{Id}_M\)), the group of tangent-space automorphism fields associated with \(U\) and \(\Phi\) is the general linear group \(\mathrm{GL}(\mathcal{X}(U,\Phi))\) of the module \(\mathcal{X}(U,\Phi)\) of vector fields along \(U\) with values on \(M \supset \Phi(U)\) (see VectorFieldModule). Note that \(\mathcal{X}(U,\Phi)\) is a module over \(C^k(U)\), the algebra of differentiable scalar fields on \(U\). Elements of \(\mathrm{GL}(\mathcal{X}(U,\Phi))\) are fields along \(U\) of automorphisms of tangent spaces to \(M\).

Note

If \(M\) is parallelizable, then AutomorphismFieldParalGroup must be used instead.

INPUT:

  • vector_field_moduleVectorFieldModule; module \(\mathcal{X}(U,\Phi)\) of vector fields along \(U\) with values on \(M\)

EXAMPLES:

Group of tangent-space automorphism fields of the 2-sphere:

sage: M = Manifold(2, 'M') # the 2-dimensional sphere S^2
sage: U = M.open_subset('U') # complement of the North pole
sage: c_xy.<x,y> = U.chart() # stereographic coordinates from the North pole
sage: V = M.open_subset('V') # complement of the South pole
sage: c_uv.<u,v> = V.chart() # stereographic coordinates from the South pole
sage: M.declare_union(U,V)   # S^2 is the union of U and V
sage: xy_to_uv = c_xy.transition_map(c_uv, (x/(x^2+y^2), y/(x^2+y^2)),
....:             intersection_name='W',
....:             restrictions1= x^2+y^2!=0, restrictions2= u^2+v^2!=0)
sage: uv_to_xy = xy_to_uv.inverse()
sage: G = M.automorphism_field_group() ; G
General linear group of the Module X(M) of vector fields on the
 2-dimensional differentiable manifold M

G is the general linear group of the vector field module \(\mathcal{X}(M)\):

sage: XM = M.vector_field_module() ; XM
Module X(M) of vector fields on the 2-dimensional differentiable
 manifold M
sage: G is XM.general_linear_group()
True

G is a non-abelian group:

sage: G.category()
Category of groups
sage: G in Groups()
True
sage: G in CommutativeAdditiveGroups()
False

The elements of G are tangent-space automorphisms:

sage: a = G.an_element(); a
Field of tangent-space automorphisms on the 2-dimensional
 differentiable manifold M
sage: a.parent() is G
True
sage: a.restrict(U).display()
2 d/dx*dx + 2 d/dy*dy
sage: a.restrict(V).display()
2 d/du*du + 2 d/dv*dv

The identity element of the group G:

sage: e = G.one() ; e
Field of tangent-space identity maps on the 2-dimensional
 differentiable manifold M
sage: eU = U.default_frame() ; eU
Coordinate frame (U, (d/dx,d/dy))
sage: eV = V.default_frame() ; eV
Coordinate frame (V, (d/du,d/dv))
sage: e.display(eU)
Id = d/dx*dx + d/dy*dy
sage: e.display(eV)
Id = d/du*du + d/dv*dv
Element

alias of AutomorphismField

base_module()

Return the vector-field module of which self is the general linear group.

OUTPUT:

EXAMPLES:

Base module of the group of tangent-space automorphism fields of the 2-sphere:

sage: M = Manifold(2, 'M') # the 2-dimensional sphere S^2
sage: U = M.open_subset('U') # complement of the North pole
sage: c_xy.<x,y> = U.chart() # stereographic coordinates from the North pole
sage: V = M.open_subset('V') # complement of the South pole
sage: c_uv.<u,v> = V.chart() # stereographic coordinates from the South pole
sage: M.declare_union(U,V)   # S^2 is the union of U and V
sage: xy_to_uv = c_xy.transition_map(c_uv, (x/(x^2+y^2), y/(x^2+y^2)),
....:                                intersection_name='W', restrictions1= x^2+y^2!=0,
....:                                restrictions2= u^2+v^2!=0)
sage: uv_to_xy = xy_to_uv.inverse()
sage: G = M.automorphism_field_group()
sage: G.base_module()
Module X(M) of vector fields on the 2-dimensional differentiable
 manifold M
sage: G.base_module() is M.vector_field_module()
True
one()

Return identity element of self.

The group identity element is the field of tangent-space identity maps.

OUTPUT:

EXAMPLES:

Identity element of the group of tangent-space automorphism fields of the 2-sphere:

sage: M = Manifold(2, 'M') # the 2-dimensional sphere S^2
sage: U = M.open_subset('U') # complement of the North pole
sage: c_xy.<x,y> = U.chart() # stereographic coordinates from the North pole
sage: V = M.open_subset('V') # complement of the South pole
sage: c_uv.<u,v> = V.chart() # stereographic coordinates from the South pole
sage: M.declare_union(U,V)   # S^2 is the union of U and V
sage: xy_to_uv = c_xy.transition_map(c_uv, (x/(x^2+y^2), y/(x^2+y^2)),
....:                                intersection_name='W', restrictions1= x^2+y^2!=0,
....:                                restrictions2= u^2+v^2!=0)
sage: uv_to_xy = xy_to_uv.inverse()
sage: G = M.automorphism_field_group()
sage: G.one()
Field of tangent-space identity maps on the 2-dimensional differentiable manifold M
sage: G.one().restrict(U)[:]
[1 0]
[0 1]
sage: G.one().restrict(V)[:]
[1 0]
[0 1]
class sage.manifolds.differentiable.automorphismfield_group.AutomorphismFieldParalGroup(vector_field_module)

Bases: sage.tensor.modules.free_module_linear_group.FreeModuleLinearGroup

General linear group of the module of vector fields along a differentiable manifold \(U\) with values on a parallelizable manifold \(M\).

Given a differentiable manifold \(U\) and a differentiable map \(\Phi: U \rightarrow M\) to a parallelizable manifold \(M\) (possibly \(U = M\) and \(\Phi = \mathrm{Id}_M\)), the group of tangent-space automorphism fields associated with \(U\) and \(\Phi\) is the general linear group \(\mathrm{GL}(\mathcal{X}(U, \Phi))\) of the module \(\mathcal{X}(U, \Phi)\) of vector fields along \(U\) with values on \(M \supset \Phi(U)\) (see VectorFieldFreeModule). Note that \(\mathcal{X}(U, \Phi)\) is a free module over \(C^k(U)\), the algebra of differentiable scalar fields on \(U\). Elements of \(\mathrm{GL}(\mathcal{X}(U, \Phi))\) are fields along \(U\) of automorphisms of tangent spaces to \(M\).

Note

If \(M\) is not parallelizable, the class AutomorphismFieldGroup must be used instead.

INPUT:

  • vector_field_moduleVectorFieldFreeModule; free module \(\mathcal{X}(U,\Phi)\) of vector fields along \(U\) with values on \(M\)

EXAMPLES:

Group of tangent-space automorphism fields of a 2-dimensional parallelizable manifold:

sage: M = Manifold(2, 'M')
sage: X.<x,y> = M.chart()
sage: XM = M.vector_field_module() ; XM
Free module X(M) of vector fields on the 2-dimensional differentiable
 manifold M
sage: G = M.automorphism_field_group(); G
General linear group of the Free module X(M) of vector fields on the
 2-dimensional differentiable manifold M
sage: latex(G)
\mathrm{GL}\left( \mathcal{X}\left(M\right) \right)

G is nothing but the general linear group of the module \(\mathcal{X}(M)\):

sage: G is XM.general_linear_group()
True

G is a group:

sage: G.category()
Category of groups
sage: G in Groups()
True

It is not an abelian group:

sage: G in CommutativeAdditiveGroups()
False

The elements of G are tangent-space automorphisms:

sage: G.Element
<class 'sage.manifolds.differentiable.automorphismfield.AutomorphismFieldParal'>
sage: a = G.an_element() ; a
Field of tangent-space automorphisms on the 2-dimensional
 differentiable manifold M
sage: a.parent() is G
True

As automorphisms of \(\mathcal{X}(M)\), the elements of G map a vector field to a vector field:

sage: v = XM.an_element() ; v
Vector field on the 2-dimensional differentiable manifold M
sage: v.display()
2 d/dx + 2 d/dy
sage: a(v)
Vector field on the 2-dimensional differentiable manifold M
sage: a(v).display()
2 d/dx - 2 d/dy

Indeed the matrix of a with respect to the frame \((\partial_x, \partial_y)\) is:

sage: a[X.frame(),:]
[ 1  0]
[ 0 -1]

The elements of G can also be considered as tensor fields of type \((1,1)\):

sage: a.tensor_type()
(1, 1)
sage: a.tensor_rank()
2
sage: a.domain()
2-dimensional differentiable manifold M
sage: a.display()
d/dx*dx - d/dy*dy

The identity element of the group G is:

sage: id = G.one() ; id
Field of tangent-space identity maps on the 2-dimensional
 differentiable manifold M
sage: id*a == a
True
sage: a*id == a
True
sage: a*a^(-1) == id
True
sage: a^(-1)*a == id
True

Construction of an element by providing its components with respect to the manifold’s default frame (frame associated to the coordinates \((x,y)\)):

sage: b = G([[1+x^2,0], [0,1+y^2]]) ; b
Field of tangent-space automorphisms on the 2-dimensional
 differentiable manifold M
sage: b.display()
(x^2 + 1) d/dx*dx + (y^2 + 1) d/dy*dy
sage: (~b).display()  # the inverse automorphism
1/(x^2 + 1) d/dx*dx + 1/(y^2 + 1) d/dy*dy

We check the group law on these elements:

sage: (a*b)^(-1) == b^(-1) * a^(-1)
True

Invertible tensor fields of type \((1,1)\) can be converted to elements of G:

sage: t = M.tensor_field(1, 1, name='t')
sage: t[:] = [[1+exp(y), x*y], [0, 1+x^2]]
sage: t1 = G(t) ; t1
Field of tangent-space automorphisms t on the 2-dimensional
 differentiable manifold M
sage: t1 in G
True
sage: t1.display()
t = (e^y + 1) d/dx*dx + x*y d/dx*dy + (x^2 + 1) d/dy*dy
sage: t1^(-1)
Field of tangent-space automorphisms t^(-1) on the 2-dimensional
 differentiable manifold M
sage: (t1^(-1)).display()
t^(-1) = 1/(e^y + 1) d/dx*dx - x*y/(x^2 + (x^2 + 1)*e^y + 1) d/dx*dy
 + 1/(x^2 + 1) d/dy*dy

Since any automorphism field can be considered as a tensor field of type-\((1,1)\) on M, there is a coercion map from G to the module \(T^{(1,1)}(M)\) of type-\((1,1)\) tensor fields:

sage: T11 = M.tensor_field_module((1,1)) ; T11
Free module T^(1,1)(M) of type-(1,1) tensors fields on the
 2-dimensional differentiable manifold M
sage: T11.has_coerce_map_from(G)
True

An explicit call of this coercion map is:

sage: tt = T11(t1) ; tt
Tensor field t of type (1,1) on the 2-dimensional differentiable
 manifold M
sage: tt == t
True

An implicit call of the coercion map is performed to subtract an element of G from an element of \(T^{(1,1)}(M)\):

sage: s = t - t1 ; s
Tensor field t-t of type (1,1) on
 the 2-dimensional differentiable manifold M
sage: s.parent() is T11
True
sage: s.display()
t-t = 0

as well as for the reverse operation:

sage: s = t1 - t ; s
Tensor field t-t of type (1,1) on the 2-dimensional differentiable
 manifold M
sage: s.display()
t-t = 0
Element

alias of AutomorphismFieldParal