# 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}(\mathfrak{X}(U,\Phi))$$ of the module $$\mathfrak{X}(U,\Phi)$$ of vector fields along $$U$$ with values on $$M\supset \Phi(U)$$ (see VectorFieldModule). Note that $$\mathfrak{X}(U, \Phi)$$ is a module over $$C^k(U)$$, the algebra of differentiable scalar fields on $$U$$. Elements of $$\mathrm{GL}(\mathfrak{X}(U, \Phi))$$ are fields along $$U$$ of automorphisms of tangent spaces to $$M$$.

Two classes implement $$\mathrm{GL}(\mathfrak{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)

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}(\mathfrak{X}(U,\Phi))$$ of the module $$\mathfrak{X}(U,\Phi)$$ of vector fields along $$U$$ with values on $$M \supset \Phi(U)$$ (see VectorFieldModule). Note that $$\mathfrak{X}(U,\Phi)$$ is a module over $$C^k(U)$$, the algebra of differentiable scalar fields on $$U$$. Elements of $$\mathrm{GL}(\mathfrak{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:

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 $$\mathfrak{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
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)

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}(\mathfrak{X}(U, \Phi))$$ of the module $$\mathfrak{X}(U, \Phi)$$ of vector fields along $$U$$ with values on $$M \supset \Phi(U)$$ (see VectorFieldFreeModule). Note that $$\mathfrak{X}(U, \Phi)$$ is a free module over $$C^k(U)$$, the algebra of differentiable scalar fields on $$U$$. Elements of $$\mathrm{GL}(\mathfrak{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:

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( \mathfrak{X}\left(M\right) \right)


G is nothing but the general linear group of the module $$\mathfrak{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 $$\mathfrak{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