An open subset of Euclidian space with a specific set of coordinates. This is the background on which differential forms can be defined.
AUTHORS:
EXAMPLES:
sage: x, y, z = var('x, y, z')
sage: S = CoordinatePatch((x, y, z)); S
Open subset of R^3 with coordinates x, y, z
sage: u, v = var('u, v')
sage: S = CoordinatePatch((u, v)); S
Open subset of R^2 with coordinates u, v
TODO:
Bases: sage.structure.parent.Parent
Construct a coordinate patch, i.e. an open subset of Euclidian space with a given set of coordinates.
EXAMPLES:
sage: x, y, z = var('x, y, z')
sage: S = CoordinatePatch((x, y, z)); S
Open subset of R^3 with coordinates x, y, z
sage: u, v = var('u, v')
sage: T = CoordinatePatch((u, v)); T
Open subset of R^2 with coordinates u, v
sage: loads(T.dumps()) == T
True
In a future release, it will be possible to specify a metric tensor on a coordinate patch. For now, providing any kind of metric raises an exception:
sage: x, y, z = var('x, y, z')
sage: m = matrix(SR, 3)
sage: S = CoordinatePatch((x, y, z), metric=m)
Traceback (most recent call last):
...
NotImplementedError: Metric geometry not supported yet.
Return the coordinate on self
INPUT:
EXAMPLES:
sage: x, y, z = var('x, y, z')
sage: S = CoordinatePatch((x, y, z)); S
Open subset of R^3 with coordinates x, y, z
sage: S.coordinate(0)
x
sage: S.coordinate(1)
y
sage: S.coordinate(2)
z
Return coordinates on this coordinate patch.
OUTPUT:
EXAMPLES:
sage: x, y, z = var('x, y, z')
sage: S = CoordinatePatch((x, y, z)); S
Open subset of R^3 with coordinates x, y, z
sage: S.coordinates()
(x, y, z)
Return the dimension of this coordinate patch, i.e. the dimension of the Euclidian space of which this coordinate patch is an open subset.
EXAMPLES:
sage: a, b, c, d, e = var('a, b, c, d, e')
sage: U = CoordinatePatch((a, b, c, d, e)); U
Open subset of R^5 with coordinates a, b, c, d, e
sage: U.dim()
5