summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Gourgoulhon <eric.gourgoulhon@obspm.fr>2015-06-28 18:59:18 +0200
committerEric Gourgoulhon <eric.gourgoulhon@obspm.fr>2015-06-28 18:59:18 +0200
commit8c8bfcd65b92a6d2208c1424063dd1d1c38fb9ae (patch)
treeb71fa01615e30203501e1bf48cab7ceac3ded938
parentMinor modifications in CoordFunctionSymb and ContinuousMap.__invert__ (diff)
Improve documentation of differentiable manifolds
-rw-r--r--src/sage/manifolds/chart.py8
-rw-r--r--src/sage/manifolds/continuous_map.py53
-rw-r--r--src/sage/manifolds/differentiable/chart.py31
-rw-r--r--src/sage/manifolds/differentiable/diff_map.py30
-rw-r--r--src/sage/manifolds/differentiable/manifold.py136
-rw-r--r--src/sage/manifolds/differentiable/manifold_homset.py14
-rw-r--r--src/sage/manifolds/differentiable/scalarfield.py79
-rw-r--r--src/sage/manifolds/differentiable/scalarfield_algebra.py57
-rw-r--r--src/sage/manifolds/manifold.py36
9 files changed, 267 insertions, 177 deletions
diff --git a/src/sage/manifolds/chart.py b/src/sage/manifolds/chart.py
index 5e5eab1..9de211c 100644
--- a/src/sage/manifolds/chart.py
+++ b/src/sage/manifolds/chart.py
@@ -50,8 +50,8 @@ class Chart(UniqueRepresentation, SageObject):
an open subset `V` of `K^n`.
The components `(x^1,\ldots,x^n)` of `\varphi`, defined by
- `\varphi(p) = (x^1(p),\ldots,x^n(p))`, are called the *coordinates* of the
- chart `(U,\varphi)`.
+ `\varphi(p) = (x^1(p),\ldots,x^n(p))\in K^n` for any point `p\in U`,
+ are called the *coordinates* of the chart `(U,\varphi)`.
INPUT:
@@ -1051,8 +1051,8 @@ class RealChart(Chart):
an open subset `V` of `\RR^n`.
The components `(x^1,\ldots,x^n)` of `\varphi`, defined by
- `\varphi(p) = (x^1(p),\ldots,x^n(p))`, are called the *coordinates* of the
- chart `(U,\varphi)`.
+ `\varphi(p) = (x^1(p),\ldots,x^n(p))\in \RR^n` for any point `p\in U`,
+ are called the *coordinates* of the chart `(U,\varphi)`.
INPUT:
diff --git a/src/sage/manifolds/continuous_map.py b/src/sage/manifolds/continuous_map.py
index de89ed7..c258496 100644
--- a/src/sage/manifolds/continuous_map.py
+++ b/src/sage/manifolds/continuous_map.py
@@ -50,9 +50,6 @@ class ContinuousMap(Morphism):
where `M` and `N` are topological manifolds over the same topological
field `K`, `U` is an open subset of `M` and `V` is an open subset of `N`.
- In what follows, `M` is called the *start manifold* and
- `N` the *arrival manifold*.
-
Continuous maps are the *morphisms* of the *category* of
topological manifolds. The set of all continuous maps from
`U` to `V` is therefore the homset between `U` and `V` and is denoted
@@ -70,7 +67,7 @@ class ContinuousMap(Morphism):
coordinates of the image expressed in terms of the coordinates of
the considered point) with the pairs of charts (chart1, chart2)
as keys (chart1 being a chart on `U` and chart2 a chart on `V`).
- If the dimension of the arrival manifold is 1, a single coordinate
+ If the dimension of the map's codomain is 1, a single coordinate
expression can be passed instead of a tuple with a single element
- ``name`` -- (default: ``None``) name given to the continuous map
- ``latex_name`` -- (default: ``None``) LaTeX symbol to denote the
@@ -214,7 +211,7 @@ class ContinuousMap(Morphism):
on U: (x, y) |--> (xP, yP) = (x, y)
on V: (u, v) |--> (xP, yP) = (u/(u^2 + v^2), v/(u^2 + v^2))
- If the arrival manifold is 1-dimensional, a continuous map must be
+ If its codomain is 1-dimensional, a continuous map must be
defined by a single symbolic expression for each pair of charts, and not
by a list/tuple with a single element::
@@ -912,7 +909,7 @@ class ContinuousMap(Morphism):
INPUT:
- ``chart1`` -- (default: ``None``) chart on the map's domain; if ``None``,
- the display is performed on all the charts on the start manifold
+ the display is performed on all the charts on the domain
in which the map is known or computable via some change of
coordinates
- ``chart2`` -- (default: ``None``) chart on the map's codomain; if
@@ -953,7 +950,7 @@ class ContinuousMap(Morphism):
\begin{array}{llcl} \Phi:& S^2 & \longrightarrow & \RR^3 \\ \mbox{on}\ U : & \left(x, y\right) & \longmapsto & \left(X, Y, Z\right) = \left(\frac{2 \, x}{x^{2} + y^{2} + 1}, \frac{2 \, y}{x^{2} + y^{2} + 1}, \frac{x^{2} + y^{2} - 1}{x^{2} + y^{2} + 1}\right) \end{array}
If the argument ``chart2`` is not specified, the display is performed
- on all the charts on the arrival manifold in which the map is known
+ on all the charts on the codomain in which the map is known
or computable via some change of coordinates (here only one chart:
c_cart)::
@@ -962,7 +959,7 @@ class ContinuousMap(Morphism):
on U: (x, y) |--> (X, Y, Z) = (2*x/(x^2 + y^2 + 1), 2*y/(x^2 + y^2 + 1), (x^2 + y^2 - 1)/(x^2 + y^2 + 1))
Similarly, if the argument ``chart1`` is omitted, the display is
- performed on all the charts on the start manifold in which the
+ performed on all the charts on the map's domain in which the
map is known or computable via some change of coordinates::
sage: Phi.display(chart2=c_cart)
@@ -1191,8 +1188,8 @@ class ContinuousMap(Morphism):
change_arrival.append(ochart2)
if chart2 == ochart2:
change_start.append(ochart1)
- # 1/ Trying to make a change of chart only on the arrival domain:
- # the arrival default chart is privileged:
+ # 1/ Trying to make a change of chart only on the codomain:
+ # the codomain's default chart is privileged:
sel_chart2 = None # selected chart2
if def_chart2 in change_arrival \
and (def_chart2, chart2) in dom2._coord_changes:
@@ -1210,7 +1207,7 @@ class ContinuousMap(Morphism):
return self._coord_expression[(chart1, chart2)]
# 2/ Trying to make a change of chart only on the start domain:
- # the start default chart is privileged:
+ # the domain's default chart is privileged:
sel_chart1 = None # selected chart1
if def_chart1 in change_start \
and (chart1, def_chart1) in dom1._coord_changes:
@@ -1358,7 +1355,7 @@ class ContinuousMap(Morphism):
- ``coord_functions`` -- the coordinate symbolic expression of the
map in the above charts: list (or tuple) of the coordinates of
the image expressed in terms of the coordinates of the considered
- point; if the dimension of the arrival manifold is 1, a single
+ point; if the dimension of the codomain is 1, a single
expression is expected (not a list with a single element)
EXAMPLES:
@@ -1450,7 +1447,7 @@ class ContinuousMap(Morphism):
- ``coord_functions`` -- the coordinate symbolic expression of the
map in the above charts: list (or tuple) of the coordinates of
the image expressed in terms of the coordinates of the considered
- point; if the dimension of the arrival manifold is 1, a single
+ point; if the dimension of the codomain is 1, a single
expression is expected (not a list with a single element)
.. WARNING::
@@ -1728,6 +1725,36 @@ class ContinuousMap(Morphism):
sage: ~rot is rot.inverse()
True
+ An example with multiple charts: the equatorial symmetry on the
+ 2-sphere::
+
+ sage: M = TopManifold(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: s = M.homeomorphism(M, {(c_xy, c_uv): [x, y], (c_uv, c_xy): [u, v]}, name='s')
+ sage: s.display()
+ s: M --> M
+ on U: (x, y) |--> (u, v) = (x, y)
+ on V: (u, v) |--> (x, y) = (u, v)
+ sage: si = s.inverse(); si
+ Homeomorphism s^(-1) of the 2-dimensional topological manifold M
+ sage: si.display()
+ s^(-1): M --> M
+ on U: (x, y) |--> (u, v) = (x, y)
+ on V: (u, v) |--> (x, y) = (u, v)
+
+ The equatorial symmetry is of course an involution::
+
+ sage: si == s
+ True
+
"""
from sage.symbolic.ring import SR
from sage.symbolic.relation import solve
diff --git a/src/sage/manifolds/differentiable/chart.py b/src/sage/manifolds/differentiable/chart.py
index 12cc326..76614db 100644
--- a/src/sage/manifolds/differentiable/chart.py
+++ b/src/sage/manifolds/differentiable/chart.py
@@ -17,8 +17,8 @@ AUTHORS:
REFERENCES:
-- Chap. 1 of J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer
- (New York) (2013)
+.. [1] Chap. 1 of J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer
+ (New York) (2013)
"""
@@ -39,13 +39,14 @@ class DiffChart(Chart):
Chart on a differentiable manifold.
Given a differentiable manifold `M` of dimension `n` over a topological
- field `K`, a *chart* is a pair `(U,\varphi)`, where `U` is an open subset
- of `M` and `\varphi: U \rightarrow V \subset K^n` is a homeomorphism from
+ field `K`, a *chart* is a member `(U,\varphi)` of the manifold's
+ differentiable atlas; `U` is then an open subset of `M` and
+ `\varphi: U \rightarrow V \subset K^n` is a homeomorphism from
`U` to an open subset `V` of `K^n`.
The components `(x^1,\ldots,x^n)` of `\varphi`, defined by
- `\varphi(p) = (x^1(p),\ldots,x^n(p))`, are called the *coordinates* of the
- chart `(U,\varphi)`.
+ `\varphi(p) = (x^1(p),\ldots,x^n(p))\in K^n` for any point `p\in U`, are
+ called the *coordinates* of the chart `(U,\varphi)`.
INPUT:
@@ -263,6 +264,11 @@ class DiffChart(Chart):
`(U,\varphi)` on the open subset where the two charts intersect, i.e.
on `U\cap V`.
+ By definition, the transition map `\psi\circ\varphi^{-1}` must be
+ of classe `C^k`, where `k` is the degree of differentiability of the
+ manifold (cf.
+ :meth:`~sage.manifolds.differentiable.manifold.DiffManifold.diff_degree`).
+
INPUT:
- ``other`` -- the chart `(V,\psi)`
@@ -291,7 +297,7 @@ class DiffChart(Chart):
OUTPUT:
- The transition map `\psi\circ\varphi^{-1}` defined on `U\cap V`, as an
- instance of :class:`CoordChange`.
+ instance of :class:`DiffCoordChange`.
EXAMPLES:
@@ -324,7 +330,7 @@ class DiffChart(Chart):
sage: M.atlas()
[Chart (U, (x,)), Chart (V, (y,)), Chart (W, (x,)), Chart (W, (y,))]
- Transition map between the spherical chart and the Cartesian one on
+ Transition map between the polar chart and the Cartesian one on
`\RR^2`::
sage: DiffManifold._clear_cache_() # for doctests only
@@ -380,8 +386,8 @@ class RealDiffChart(RealChart, DiffChart):
an open subset `V` of `\RR^n`.
The components `(x^1,\ldots,x^n)` of `\varphi`, defined by
- `\varphi(p) = (x^1(p),\ldots,x^n(p))`, are called the *coordinates* of the
- chart `(U,\varphi)`.
+ `\varphi(p) = (x^1(p),\ldots,x^n(p))\in \RR^n` for any point `p\in U`, are
+ called the *coordinates* of the chart `(U,\varphi)`.
INPUT:
@@ -635,6 +641,11 @@ class DiffCoordChange(CoordChange):
`(x^1,\ldots,x^n)` of `(U,\varphi)` on the open subset where the two
charts intersect, i.e. on `U\cap V`.
+ By definition, the transition map `\psi\circ\varphi^{-1}` must be
+ of classe `C^k`, where `k` is the degree of differentiability of the
+ manifold (cf.
+ :meth:`~sage.manifolds.differentiable.manifold.DiffManifold.diff_degree`).
+
INPUT:
- ``chart1`` -- chart `(U,\varphi)`
diff --git a/src/sage/manifolds/differentiable/diff_map.py b/src/sage/manifolds/differentiable/diff_map.py
index 7528ac8..5fe86eb 100644
--- a/src/sage/manifolds/differentiable/diff_map.py
+++ b/src/sage/manifolds/differentiable/diff_map.py
@@ -17,11 +17,10 @@ AUTHORS:
REFERENCES:
-- Chap. 1 of S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*,
- vol. 1, Interscience Publishers (New York) (1963)
-- Chaps. 2 and 3 of J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed.,
- Springer (New York) (2013)
-
+.. [1] Chap. 1 of S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*,
+ vol. 1, Interscience Publishers (New York) (1963)
+.. [2] Chaps. 2 and 3 of J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed.,
+ Springer (New York) (2013)
"""
@@ -51,9 +50,6 @@ class DiffMap(ContinuousMap):
field `K` (in most applications, `K = \RR` or `K = \CC`), `U` is an open
subset of `M` and `V` is an open subset of `N`.
- In what follows, `M` is called the *start manifold* and
- `N` the *arrival manifold*.
-
Differentiable maps are the *morphisms* of the *category* of
differentiable manifolds. The set of all differentiable maps from
`U` to `V` is therefore the homset between `U` and `V` and is denoted
@@ -62,6 +58,9 @@ class DiffMap(ContinuousMap):
The class :class:`DiffMap` is a Sage *element* class, whose *parent*
class is
:class:`~sage.manifolds.differentiable.manifold_homset.DiffManifoldHomset`.
+ It inherits from the class
+ :class:`~sage.manifolds.continuous_map.ContinuousMap` since a
+ differentiable map is obviously a continuous one.
INPUT:
@@ -72,7 +71,7 @@ class DiffMap(ContinuousMap):
coordinates of the image expressed in terms of the coordinates of
the considered point) with the pairs of charts (chart1, chart2)
as keys (chart1 being a chart on `U` and chart2 a chart on `V`).
- If the dimension of the arrival manifold is 1, a single coordinate
+ If the dimension of codomain is 1, a single coordinate
expression can be passed instead of a tuple with a single element
- ``name`` -- (default: ``None``) name given to the differentiable map
- ``latex_name`` -- (default: ``None``) LaTeX symbol to denote the
@@ -90,7 +89,8 @@ class DiffMap(ContinuousMap):
If the information passed by means of the argument ``coord_functions``
is not sufficient to fully specify the differentiable map,
further coordinate expressions, in other charts, can be subsequently
- added by means of the method :meth:`add_expr`
+ added by means of the method
+ :meth:`~sage.manifolds.continuous_map.ContinuousMap.add_expr`
EXAMPLES:
@@ -128,7 +128,7 @@ class DiffMap(ContinuousMap):
on V: (u, v) |--> (X, Y, Z) = (2*u/(u^2 + v^2 + 1), 2*v/(u^2 + v^2 + 1), -(u^2 + v^2 - 1)/(u^2 + v^2 + 1))
It is possible to create the map via the method
- :meth:`~sage.manifolds.manifold.DiffManifold.diff_map`
+ :meth:`~sage.manifolds.differentiable.manifold.DiffManifold.diff_map`
only in a single pair of charts: the argument ``coord_functions`` is then
a mere list of coordinate expressions (and not a dictionary) and the
arguments ``chart1`` and ``chart2`` have to be provided if the charts
@@ -150,7 +150,8 @@ class DiffMap(ContinuousMap):
Phi: S^2 --> R^3
on U: (x, y) |--> (X, Y, Z) = (2*x/(x^2 + y^2 + 1), 2*y/(x^2 + y^2 + 1), (x^2 + y^2 - 1)/(x^2 + y^2 + 1))
- The definition can be completed by means of the method :meth:`add_expr`::
+ The definition can be completed by means of the method
+ :meth:`~sage.manifolds.continuous_map.ContinuousMap.add_expr`::
sage: Phi1.add_expr(c_uv, c_cart, [2*u/(1+u^2+v^2), 2*v/(1+u^2+v^2), (1-u^2-v^2)/(1+u^2+v^2)])
sage: Phi1.display()
@@ -216,7 +217,7 @@ class DiffMap(ContinuousMap):
on U: (x, y) |--> (xP, yP) = (x, y)
on V: (u, v) |--> (xP, yP) = (u/(u^2 + v^2), v/(u^2 + v^2))
- If the arrival manifold is 1-dimensional, a differentiable map must be
+ If its codomain is 1-dimensional, a differentiable map must be
defined by a single symbolic expression for each pair of charts, and not
by a list/tuple with a single element::
@@ -270,7 +271,8 @@ class DiffMap(ContinuousMap):
sage: q.coord()
(1/3*sqrt(3), 0)
- The inverse diffeomorphism is computed by means of the method :meth:`inverse`::
+ The inverse diffeomorphism is computed by means of the method
+ :meth:`~sage.manifolds.continuous_map.ContinuousMap.inverse`::
sage: Phi.inverse()
Diffeomorphism Phi^(-1) from the 2-dimensional differentiable manifold R^2
diff --git a/src/sage/manifolds/differentiable/manifold.py b/src/sage/manifolds/differentiable/manifold.py
index cb5e517..b785983 100644
--- a/src/sage/manifolds/differentiable/manifold.py
+++ b/src/sage/manifolds/differentiable/manifold.py
@@ -2,7 +2,7 @@ r"""
Differentiable manifolds
Given a topological field `K` (in most applications, `K = \RR` or `K = \CC`;
-see Ser92_ for `K = \QQ_p` and Bertram for more general fields),
+see however [4]_ for `K = \QQ_p` and [5]_ for other fields),
a *differentiable manifold over* `K` is a topological manifold `M` over `K`
equipped with an atlas whose transitions maps are of class `C^k` (i.e.
`k`-times continuously differentiable) for a fixed positive integer `k`
@@ -14,7 +14,7 @@ Note that
- If `K=\CC`, any `C^k`-manifold with `k\geq 1` is actually a
`C^\infty`-manifold (even an analytic manifold)
- If `K=\RR`, any `C^k`-manifold with `k\geq 1` admits a compatible `C^\infty`
- structure (Whitney smoothing theorem)
+ structure (Whitney's smoothing theorem)
Differentiable manifolds are implemented via the class :class:`DiffManifold`.
Open subsets of differentiable manifolds are also implemented via
@@ -256,21 +256,17 @@ AUTHORS:
REFERENCES:
-.. _Ser92:
-
-- J.-P. Serre : *Lie Algebras and Lie Groups*, 2nd ed., Springer
- (Berlin) (1992); :doi:`10.1007/978-3-540-70634-2`
-
-
-- J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer (New York)
- (2012); :doi:`10.1007/978-1-4419-9982-5`
-- S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*, vol. 1,
- Interscience Publishers (New York) (1963)
-- D. Huybrechts : *Complex Geometry*, Springer (Berlin) (2005);
- :doi:`10.1007/b137952`
-- W. Bertram : *Differential Geometry, Lie Groups and Symmetric Spaces over
- General Base Fields and Rings*, Memoirs of the American Mathematical
- Society, vol. 192 (2008); :doi:`10.1090/memo/0900`; :arxiv:`math/0502168`
+.. [1] J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer
+ (New York) (2012); :doi:`10.1007/978-1-4419-9982-5`
+.. [2] S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*,
+ vol. 1, Interscience Publishers (New York) (1963)
+.. [3] D. Huybrechts : *Complex Geometry*, Springer (Berlin) (2005);
+ :doi:`10.1007/b137952`
+.. [4] J.-P. Serre : *Lie Algebras and Lie Groups*, 2nd ed., Springer
+ (Berlin) (1992); :doi:`10.1007/978-3-540-70634-2`
+.. [5] W. Bertram : *Differential Geometry, Lie Groups and Symmetric Spaces
+ over General Base Fields and Rings*, Memoirs of the American Mathematical
+ Society, vol. 192 (2008); :doi:`10.1090/memo/0900`; :arxiv:`math/0502168`
"""
@@ -298,12 +294,12 @@ class DiffManifold(TopManifold):
r"""
Differentiable manifold over a topological field `K`.
- Given a topological field `K` (in most applications, `K = \RR` or
- `K = \CC`), a *differentiable manifold over* `K` is a topological manifold
- `M` over `K` equipped with an atlas whose transitions maps are of class
- `C^k` (i.e. `k`-times continuously differentiable) for a fixed positive
- integer `k` (possibly `k=\infty`). `M` is then called a `C^k`-*manifold
- over* `K`.
+ Given a topological field `K` (in most applications, `K = \RR` or `K = \CC`;
+ see however [4]_ for `K = \QQ_p` and [5]_ for other fields),
+ a *differentiable manifold over* `K` is a topological manifold `M` over `K`
+ equipped with an atlas whose transitions maps are of class `C^k` (i.e.
+ `k`-times continuously differentiable) for a fixed positive integer `k`
+ (possibly `k=\infty`). `M` is then called a `C^k`-*manifold over* `K`.
Note that
@@ -311,7 +307,7 @@ class DiffManifold(TopManifold):
- If `K=\CC`, any `C^k`-manifold with `k\geq 1` is actually a
`C^\infty`-manifold (even an analytic manifold)
- If `K=\RR`, any `C^k`-manifold with `k\geq 1` admits a compatible
- `C^\infty` structure (Whitney smoothing theorem)
+ `C^\infty` structure (Whitney's smoothing theorem)
INPUT:
@@ -325,7 +321,7 @@ class DiffManifold(TopManifold):
- 'real' for a manifold over `\RR`
- 'complex' for a manifold over `\CC`
- an object in the category of fields (see
- :class:`~sage.categories.fields.Fields`) for more general manifolds
+ :class:`~sage.categories.fields.Fields`) for other types of manifolds
- ``diff_degree`` -- (default: ``infinity``) degree `k` of differentiability
- ``start_index`` -- (default: 0) integer; lower value of the range of
@@ -369,12 +365,21 @@ class DiffManifold(TopManifold):
sage: N = DiffManifold(3, 'N', field='complex'); N
3-dimensional complex manifold N
- A manifold over `\QQ`::
+ A differentiable manifold over `\QQ_5`, the field of 5-adic numbers::
+
+ sage: N = DiffManifold(2, 'N', field=Qp(5)); N
+ 2-dimensional differentiable manifold N over the 5-adic Field with
+ capped relative precision 20
- sage: N = DiffManifold(6, 'N', field=QQ); N
- 6-dimensional differentiable manifold N over the Rational Field
+ A differentiable manifold is of course a topological manifold::
+
+ sage: isinstance(M, TopManifold)
+ True
+ sage: isinstance(N, TopManifold)
+ True
- A manifold is a Sage *parent* object, in the category of sets::
+ A differentiable manifold is a Sage *parent* object, in the category of
+ sets::
sage: isinstance(M, Parent)
True
@@ -466,6 +471,7 @@ class DiffManifold(TopManifold):
sage: TestSuite(M).run()
"""
+ from sage.rings.integer import Integer
if category is None:
category = Sets()
#*# After #18175, this should become
@@ -533,6 +539,19 @@ class DiffManifold(TopManifold):
def diff_degree(self):
r"""
Return the manifold's degree of differentiability.
+
+ The degree of differentiablity is the integer `k` (possibly `k=\infty`)
+ such that the manifold is a `C^k`-manifold over its base field.
+
+ EXAMPLES::
+
+ sage: M = DiffManifold(2, 'M')
+ sage: M.diff_degree()
+ +Infinity
+ sage: M = DiffManifold(2, 'M', diff_degree=3)
+ sage: M.diff_degree()
+ 3
+
"""
return self._diff_degree
@@ -637,25 +656,28 @@ class DiffManifold(TopManifold):
def chart(self, coordinates='', names=None):
r"""
- Define a chart the domain of which is the manifold.
+ Define a chart, the domain of which is the manifold, in the
+ differentiable atlas of the manifold.
- A *chart* is a pair `(U,\varphi)`, where `U` is the current manifold
- and `\varphi: U \rightarrow V \subset K^n`
+ A *chart* is a member `(U,\varphi)` of the manifold's differentiable
+ atlas, where `U` stands for the manifold and
+ `\varphi: U \rightarrow V \subset K^n`
is a homeomorphism from `U` to an open subset `V` of `K^n`, `K` being
- the field on which the manifold containing the open set is defined.
+ the field on which the manifold is defined.
The components `(x^1,\ldots,x^n)` of `\varphi`, defined by
- `\varphi(p) = (x^1(p),\ldots,x^n(p))`, are called the *coordinates*
- of the chart `(U,\varphi)`.
+ `\varphi(p) = (x^1(p),\ldots,x^n(p))\in K^n` for any point `p\in U`,
+ are called the *coordinates* of the chart `(U,\varphi)`.
- See :class:`~sage.manifolds.chart.Chart` for a complete
- documentation.
+ See :class:`~sage.manifolds.differentiable.chart.DiffChart` for a
+ complete documentation.
INPUT:
- - ``coordinates`` -- single string defining the coordinate symbols and
- ranges: the coordinates are separated by ' ' (space) and each
- coordinate has at most three fields, separated by ':':
+ - ``coordinates`` -- (default: '' (empty string)) single string
+ defining the coordinate symbols and ranges: the coordinates are
+ separated by ' ' (space) and each coordinate has at most three
+ fields, separated by ':':
1. The coordinate symbol (a letter or a few letters)
2. (optional, only for manifolds over `\RR`) The interval `I`
@@ -667,8 +689,8 @@ class DiffManifold(TopManifold):
(a,b] (or equivalently ]a,b]) are allowed.
Note that the interval declaration must not contain any space
character.
- 3. (optional) The LaTeX spelling of the coordinate; if not provided the
- coordinate symbol given in the first field will be used.
+ 3. (optional) The LaTeX spelling of the coordinate; if not provided,
+ the coordinate symbol given in the first field will be used.
The order of the fields 2 and 3 does not matter and each of them can
be omitted.
@@ -677,21 +699,23 @@ class DiffManifold(TopManifold):
treatment of the backslash character (see examples below).
If no interval range and no LaTeX spelling is to be provided for any
coordinate, the argument ``coordinates`` can be omitted when the
- shortcut operator <,> is used via Sage preparser (see examples below)
+ shortcut operator ``<,>`` is used via Sage preparser (see examples below)
- ``names`` -- (default: ``None``) unused argument, except if
``coordinates`` is not provided; it must then be a tuple containing
- the coordinate symbols (this is guaranted if the shortcut operator <,>
- is used).
+ the coordinate symbols (this is guaranted if the shortcut operator
+ ``<,>`` is used).
OUTPUT:
- the created chart, as an instance of
- :class:`~sage.manifolds.chart.Chart` or of the subclass
- :class:`~sage.manifolds.chart.RealChart` for manifolds over `\RR`.
+ :class:`~sage.manifolds.differentiable.chart.DiffChart` or of the
+ subclass
+ :class:`~sage.manifolds.differentiable.chart.RealDiffChart` for
+ manifolds over `\RR`.
EXAMPLES:
- Chart on a 2-dimensional manifold::
+ Chart on a 2-dimensional differentiable manifold::
sage: DiffManifold._clear_cache_() # for doctests only
sage: M = DiffManifold(2, 'M')
@@ -742,8 +766,9 @@ class DiffManifold(TopManifold):
``X = U.chart('x y')`` and ``(x,y) = X[:]``.
See the documentation of class
- :class:`~sage.manifolds.chart.Chart` for more examples,
- especially regarding the coordinates ranges and restrictions.
+ :class:`~sage.manifolds.differentiable.chart.RealDiffChart`
+ for more examples, especially regarding the coordinates ranges and
+ restrictions.
"""
from sage.manifolds.differentiable.chart import DiffChart, RealDiffChart
@@ -753,7 +778,7 @@ class DiffManifold(TopManifold):
def scalar_field_algebra(self):
r"""
- Returns the algebra of scalar fields defined the manifold
+ Return the algebra of scalar fields defined the manifold.
See
:class:`~sage.manifolds.differentiable.scalarfield_algebra.DiffScalarFieldAlgebra`
@@ -764,7 +789,8 @@ class DiffManifold(TopManifold):
- instance of
:class:`~sage.manifolds.differentiable.scalarfield_algebra.DiffScalarFieldAlgebra`
representing the algebra `C^k(U)` of all scalar fields defined
- on `U` = ``self``.
+ on `U` = ``self``, `k` being the degree of differentiability of the
+ manifold.
EXAMPLE:
@@ -774,11 +800,13 @@ class DiffManifold(TopManifold):
sage: M = DiffManifold(3, 'M')
sage: U = M.open_subset('U')
sage: CU = U.scalar_field_algebra() ; CU
- Algebra of differentiable scalar fields on the Open subset U of the 3-dimensional differentiable manifold M
+ Algebra of differentiable scalar fields on the Open subset U of the
+ 3-dimensional differentiable manifold M
sage: CU.category()
Category of commutative algebras over Symbolic Ring
sage: CU.zero()
- Scalar field zero on the Open subset U of the 3-dimensional differentiable manifold M
+ Scalar field zero on the Open subset U of the 3-dimensional
+ differentiable manifold M
"""
if self._scalar_field_algebra is None:
diff --git a/src/sage/manifolds/differentiable/manifold_homset.py b/src/sage/manifolds/differentiable/manifold_homset.py
index 7cea1e5..8c56bb1 100644
--- a/src/sage/manifolds/differentiable/manifold_homset.py
+++ b/src/sage/manifolds/differentiable/manifold_homset.py
@@ -12,10 +12,10 @@ AUTHORS:
REFERENCES:
-- J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer (New York)
- (2013)
-- S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*, vol. 1,
- Interscience Publishers (New York) (1963)
+.. [1] J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer
+ (New York) (2013)
+.. [2] S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*, vol. 1,
+ Interscience Publishers (New York) (1963)
"""
#******************************************************************************
@@ -59,8 +59,8 @@ class DiffManifoldHomset(TopManifoldHomset):
EXAMPLES:
- Set of differentiable maps between a 2-dimensional manifold and a
- 3-dimensional one::
+ Set of differentiable maps between a 2-dimensional differentiable manifold
+ and a 3-dimensional one::
sage: M = DiffManifold(2, 'M')
sage: X.<x,y> = M.chart()
@@ -113,7 +113,7 @@ class DiffManifoldHomset(TopManifoldHomset):
sage: E in Monoids()
True
- This was of course not the case of ``H = Hom(M, N)``::
+ This was of course not the case for ``H = Hom(M, N)``::
sage: H in Monoids()
False
diff --git a/src/sage/manifolds/differentiable/scalarfield.py b/src/sage/manifolds/differentiable/scalarfield.py
index 62e4688..bf70613 100644
--- a/src/sage/manifolds/differentiable/scalarfield.py
+++ b/src/sage/manifolds/differentiable/scalarfield.py
@@ -1,9 +1,9 @@
r"""
Differentiable scalar fields
-Given a `C^k`-manifold `M` over a topological field `K` (in most applications,
-`K = \RR` or `K = \CC`), a *differentiable scalar field* on `M` is a map
-of class `C^k`
+Given a differentiable manifold `M` of class `C^k` over a topological field `K`
+(in most applications, `K = \RR` or `K = \CC`), a *differentiable scalar field*
+on `M` is a map of class `C^k`
.. MATH::
@@ -11,7 +11,8 @@ of class `C^k`
where `U` is an open subset of `M`.
-Differentiable scalar fields are implemented by the class :class:`DiffScalarField`.
+Differentiable scalar fields are implemented by the class
+:class:`DiffScalarField`.
AUTHORS:
@@ -19,11 +20,11 @@ AUTHORS:
REFERENCES:
-- S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*, vol. 1,
- Interscience Publishers (New York) (1963)
-- J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer (New York)
- (2013)
-- B O'Neill : *Semi-Riemannian Geometry*, Academic Press (San Diego) (1983)
+.. [1] S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*, vol. 1,
+ Interscience Publishers (New York) (1963)
+.. [2] J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer
+ (New York) (2013)
+.. [3] B O'Neill : *Semi-Riemannian Geometry*, Academic Press (San Diego) (1983)
"""
@@ -43,14 +44,22 @@ class DiffScalarField(ScalarField):
r"""
Differentiable scalar field on a differentiable manifold.
- Given a `C^k`-manifold `M` over a topological field `K` (in most
- applications, `K = \RR` or `K = \CC`), and an open subset `U` of `M`,
- a *differentiable scalar field* defined on `U` a `C^k`-map
+ Given a differentiable manifold `M` of class `C^k` over a topological field
+ `K` (in most applications, `K = \RR` or `K = \CC`), and an open subset `U`
+ of `M`, a *differentiable scalar field* defined on `U` a map
.. MATH::
f: U\subset M \longrightarrow K
+ that is `k`-times continuously differentiable.
+
+ The class :class:`DiffScalarField` is a Sage *element* class, whose
+ *parent* class is
+ :class:`~sage.manifolds.differentiable.scalarfield_algebra.DiffScalarFieldAlgebra`.
+ It inherits from the class :class:`~sage.manifolds.scalarfield.ScalarField`
+ devoted to generic continuous scalar fields on a topological manifold.
+
INPUT:
- ``domain`` -- the manifold open subset `U` on which the scalar field is
@@ -68,8 +77,10 @@ class DiffScalarField(ScalarField):
NB: If ``coord_expression`` is ``None`` or incomplete, coordinate
expressions can be added after the creation of the object, by means of
- the methods :meth:`add_expr`, :meth:`add_expr_by_continuation` and
- :meth:`set_expr`
+ the methods
+ :meth:`~sage.manifolds.scalarfield.ScalarField.add_expr`,
+ :meth:`~sage.manifolds.scalarfield.ScalarField.add_expr_by_continuation`
+ and :meth:`~sage.manifolds.scalarfield.ScalarField.set_expr`
- ``chart`` -- (default: ``None``) chart defining the coordinates used
in ``coord_expression`` when the latter is a single coordinate
expression; if none is provided (default), the default chart of the
@@ -134,8 +145,9 @@ class DiffScalarField(ScalarField):
Scalar field f on the 2-dimensional differentiable manifold M
Their definition must then be completed by providing the expressions on
- other charts, via the method :meth:`add_expr`, to get a global cover of
- the manifold::
+ other charts, via the method
+ :meth:`~sage.manifolds.scalarfield.ScalarField.add_expr`, to get a global
+ cover of the manifold::
sage: f.add_expr((u^2+v^2)/(1+u^2+v^2), chart=c_uv)
sage: f.display()
@@ -154,9 +166,10 @@ class DiffScalarField(ScalarField):
on U: (x, y) |--> 1/(x^2 + y^2 + 1)
on V: (u, v) |--> (u^2 + v^2)/(u^2 + v^2 + 1)
- We may also use the method :meth:`add_expr_by_continuation` to complete
- the coordinate definition using the analytic continuation from domains in
- which charts overlap::
+ We may also use the method
+ :meth:`~sage.manifolds.scalarfield.ScalarField.add_expr_by_continuation`
+ to complete the coordinate definition using the analytic continuation from
+ domains in which charts overlap::
sage: f = M.scalar_field(1/(1+x^2+y^2), chart=c_xy, name='f') ; f
Scalar field f on the 2-dimensional differentiable manifold M
@@ -187,15 +200,16 @@ class DiffScalarField(ScalarField):
\mathcal{F}
The coordinate expression in a given chart is obtained via the method
- :meth:`expr`, which returns a symbolic expression::
+ :meth:`~sage.manifolds.scalarfield.ScalarField.expr`, which returns a
+ symbolic expression::
sage: f.expr(c_uv)
(u^2 + v^2)/(u^2 + v^2 + 1)
sage: type(f.expr(c_uv))
<type 'sage.symbolic.expression.Expression'>
- The method :meth:`coord_function` returns instead a function of the
- chart coordinates, i.e. an instance of
+ The method :meth:`~sage.manifolds.scalarfield.ScalarField.coord_function`
+ returns instead a function of the chart coordinates, i.e. an instance of
:class:`~sage.manifolds.coord_func.CoordFunction`::
sage: f.coord_function(c_uv)
@@ -205,8 +219,9 @@ class DiffScalarField(ScalarField):
sage: f.coord_function(c_uv).display()
(u, v) |--> (u^2 + v^2)/(u^2 + v^2 + 1)
- The value returned by the method :meth:`expr` is actually the coordinate
- expression of the chart function::
+ The value returned by the method
+ :meth:`~sage.manifolds.scalarfield.ScalarField.expr`
+ is actually the coordinate expression of the chart function::
sage: f.expr(c_uv) is f.coord_function(c_uv).expr()
True
@@ -253,7 +268,7 @@ class DiffScalarField(ScalarField):
sage: zer is M.zero_scalar_field()
True
- A third way is to get it as the zero element of the algebra `C^0(M)`
+ A third way is to get it as the zero element of the algebra `C^k(M)`
of scalar fields on `M` (see below)::
sage: zer is M.scalar_field_algebra().zero()
@@ -325,8 +340,8 @@ class DiffScalarField(ScalarField):
.. RUBRIC:: Arithmetics of scalar fields
- Scalar fields on `M` (resp. `U`) belong to the algebra `C^0(M)`
- (resp. `C^0(U)`)::
+ Scalar fields on `M` (resp. `U`) belong to the algebra `C^k(M)`
+ (resp. `C^k(U)`)::
sage: f.parent()
Algebra of differentiable scalar fields on the 2-dimensional
@@ -426,8 +441,8 @@ class DiffScalarField(ScalarField):
True
In Sage framework, the addition of `f` and `g` is permitted because
- there is a *coercion* of the parent of `f`, namely `C^0(M)`, to
- the parent of `g`, namely `C^0(U)` (see
+ there is a *coercion* of the parent of `f`, namely `C^k(M)`, to
+ the parent of `g`, namely `C^k(U)` (see
:class:`~sage.manifolds.scalarfield_algebra.ScalarFieldAlgebra`)::
sage: CM = M.scalar_field_algebra()
@@ -440,7 +455,7 @@ class DiffScalarField(ScalarField):
sage: CU.coerce(f) == f.restrict(U)
True
- Since the algebra `C^0(M)` is a vector space over `\RR`, scalar fields
+ Since the algebra `C^k(M)` is a vector space over `\RR`, scalar fields
can be multiplied by a number, either an explicit one::
sage: s = 2*f ; s
@@ -484,7 +499,7 @@ class DiffScalarField(ScalarField):
sage: (-2)*f == - f - f
True
- The ring multiplication of the algebras `C^0(M)` and `C^0(U)`
+ The ring multiplication of the algebras `C^k(M)` and `C^k(U)`
is the pointwise multiplication of functions::
sage: s = f*f ; s
@@ -500,7 +515,7 @@ class DiffScalarField(ScalarField):
(x, y) |--> x*y*H(x, y)
on W: (u, v) |--> u*v*H(u/(u^2 + v^2), v/(u^2 + v^2))/(u^4 + 2*u^2*v^2 + v^4)
- Thanks to the coercion `C^0(M)\rightarrow C^0(U)` mentionned
+ Thanks to the coercion `C^k(M)\rightarrow C^k(U)` mentionned
above, it is possible to multiply a scalar field defined on `M` by a
scalar field defined on `U`, the result being a scalar field defined on
`U`::
diff --git a/src/sage/manifolds/differentiable/scalarfield_algebra.py b/src/sage/manifolds/differentiable/scalarfield_algebra.py
index 13713fe..aa88dab 100644
--- a/src/sage/manifolds/differentiable/scalarfield_algebra.py
+++ b/src/sage/manifolds/differentiable/scalarfield_algebra.py
@@ -2,12 +2,12 @@ r"""
Algebra of differentiable scalar fields
The class :class:`DiffScalarFieldAlgebra` implements the commutative algebra
-`C^k(U)` of scalar fields on some open subset `U` of a
-differentiable manifold `M` over a topological field `K` (in most applications,
-`K = \RR` or `K = \CC`). By *differentiable scalar field*, it
-is meant a function of class C^`k` `U\rightarrow K`.
-`C^k(U)` is an algebra over `K`, whose ring product is the pointwise
-multiplication of `K`-valued functions, which is clearly commutative.
+`C^k(U)` of scalar fields on some open subset `U` of a differentiable manifold
+`M` of class `C^k` over a topological field `K` (in most applications,
+`K = \RR` or `K = \CC`). By *differentiable scalar field*, it is meant a
+function `U\rightarrow K` that is `k`-times continuously differentiable.
+`C^k(U)` is an algebra over `K`, whose ring product is the
+pointwise multiplication of `K`-valued functions, which is clearly commutative.
AUTHORS:
@@ -15,11 +15,11 @@ AUTHORS:
REFERENCES:
-- S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*, vol. 1,
- Interscience Publishers (New York) (1963)
-- J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer (New York)
- (2013)
-- B O'Neill : *Semi-Riemannian Geometry*, Academic Press (San Diego) (1983)
+.. [1] S. Kobayashi & K. Nomizu : *Foundations of Differential Geometry*, vol. 1,
+ Interscience Publishers (New York) (1963)
+.. [2] J.M. Lee : *Introduction to Smooth Manifolds*, 2nd ed., Springer
+ (New York) (2013)
+.. [3] B O'Neill : *Semi-Riemannian Geometry*, Academic Press (San Diego) (1983)
"""
@@ -43,22 +43,23 @@ class DiffScalarFieldAlgebra(ScalarFieldAlgebra):
Commutative algebra of differentiable scalar fields on some open subset of
a differentiable manifold.
- If `M` is a differentiable manifold over a topological field `K` and `U`
- an open subset of `M`, the commutative algebra of scalar fields on `U`
- is the set `C^0(U)` of all continuous maps `U\rightarrow K`.
- `C^0(U)` is an algebra over `K`, whose ring product is the pointwise
- multiplication of `K`-valued functions, which is clearly commutative.
+ If `M` is a differentiable manifold of class `C^k` over a topological
+ field `K` and `U` is an open subset of `M`, the *commutative algebra of
+ scalar fields on* `U` is the set `C^k(U)` of all `k`-times continuously
+ differentiable maps `U\rightarrow K`. The set `C^k(U)` is an algebra over
+ `K`, whose ring product is the pointwise multiplication of `K`-valued
+ functions, which is clearly commutative.
If `K = \RR` or `K = \CC`, the field `K` over which the
- albegra `C^0(U)` is constructed,
+ albegra `C^k(U)` is constructed,
is represented by Sage's Symbolic Ring SR, since there is no exact
representation of `\RR` nor `\CC` in Sage.
- The class :class:`ScalarFieldAlgebra` inherits from
+ The class :class:`DiffScalarFieldAlgebra` inherits from
:class:`~sage.structure.parent.Parent`, with the category set to
:class:`~sage.categories.commutative_algebras.CommutativeAlgebras`.
The corresponding *element* class is
- :class:`~sage.manifolds.scalarfield.ScalarField`.
+ :class:`~sage.manifolds.differentiable.scalarfield.DiffScalarField`.
INPUT:
@@ -88,7 +89,7 @@ class DiffScalarFieldAlgebra(ScalarFieldAlgebra):
Algebra of differentiable scalar fields on the Open subset W of the
2-dimensional differentiable manifold M
- `C^0(M)` and `C^0(W)` belong to the category of commutative
+ `C^k(M)` and `C^k(W)` belong to the category of commutative
algebras over `\RR` (represented here by Sage's Symbolic Ring)::
sage: CM.category()
@@ -100,7 +101,7 @@ class DiffScalarFieldAlgebra(ScalarFieldAlgebra):
sage: CW.base_ring()
Symbolic Ring
- The elements of `C^0(M)` are scalar fields on `M`::
+ The elements of `C^k(M)` are scalar fields on `M`::
sage: CM.an_element()
Scalar field on the 2-dimensional differentiable manifold M
@@ -109,7 +110,7 @@ class DiffScalarFieldAlgebra(ScalarFieldAlgebra):
on U: (x, y) |--> 2
on V: (u, v) |--> 2
- Those of `C^0(W)` are scalar fields on `W`::
+ Those of `C^k(W)` are scalar fields on `W`::
sage: CW.an_element()
Scalar field on the Open subset W of the 2-dimensional differentiable manifold M
@@ -195,7 +196,7 @@ class DiffScalarFieldAlgebra(ScalarFieldAlgebra):
sage: M.scalar_field(0, chart='all') == CM.zero()
True
- The algebra `C^0(M)` coerces to `C^0(W)` since `W` is an open
+ The algebra `C^k(M)` coerces to `C^k(W)` since `W` is an open
subset of `M`::
sage: CW.has_coerce_map_from(CM)
@@ -221,9 +222,9 @@ class DiffScalarFieldAlgebra(ScalarFieldAlgebra):
sage: CW(CM.one()) == CW.one()
True
- The coercion map allows for the addition of elements of `C^0(W)`
- with elements of `C^0(M)`, the result being an element of
- `C^0(W)`::
+ The coercion map allows for the addition of elements of `C^k(W)`
+ with elements of `C^k(M)`, the result being an element of
+ `C^k(W)`::
sage: s = fW + f
sage: s.parent()
@@ -303,7 +304,7 @@ class DiffScalarFieldAlgebra(ScalarFieldAlgebra):
sage: s/f == fW
True
- Multiplication by a real number::
+ Multiplication by a number::
sage: s = 2*f ; s
Scalar field on the 2-dimensional differentiable manifold M
@@ -354,7 +355,7 @@ class DiffScalarFieldAlgebra(ScalarFieldAlgebra):
running ._test_some_elements() . . . pass
running ._test_zero() . . . pass
- It is passed also for `C^0(W)`::
+ It is passed also for `C^k(W)`::
sage: TestSuite(CW).run()
diff --git a/src/sage/manifolds/manifold.py b/src/sage/manifolds/manifold.py
index ac7b1e0..d21448d 100644
--- a/src/sage/manifolds/manifold.py
+++ b/src/sage/manifolds/manifold.py
@@ -1231,25 +1231,26 @@ class TopManifold(TopManifoldSubset):
def chart(self, coordinates='', names=None):
r"""
- Define a chart the domain of which is the manifold.
+ Define a chart, the domain of which is the manifold.
A *chart* is a pair `(U,\varphi)`, where `U` is the current manifold
and `\varphi: U \rightarrow V \subset K^n`
is a homeomorphism from `U` to an open subset `V` of `K^n`, `K` being
- the field on which the manifold containing the open set is defined.
+ the field on which the manifold is defined.
The components `(x^1,\ldots,x^n)` of `\varphi`, defined by
- `\varphi(p) = (x^1(p),\ldots,x^n(p))`, are called the *coordinates*
- of the chart `(U,\varphi)`.
+ `\varphi(p) = (x^1(p),\ldots,x^n(p))\in K^n` for any point `p\in U`,
+ are called the *coordinates* of the chart `(U,\varphi)`.
See :class:`~sage.manifolds.chart.Chart` for a complete
documentation.
INPUT:
- - ``coordinates`` -- single string defining the coordinate symbols and
- ranges: the coordinates are separated by ' ' (space) and each
- coordinate has at most three fields, separated by ':':
+ - ``coordinates`` -- (default: '' (empty string)) single string
+ defining the coordinate symbols and ranges: the coordinates are
+ separated by ' ' (space) and each coordinate has at most three fields,
+ separated by ':':
1. The coordinate symbol (a letter or a few letters)
2. (optional, only for manifolds over `\RR`) The interval `I`
@@ -1261,8 +1262,8 @@ class TopManifold(TopManifoldSubset):
(a,b] (or equivalently ]a,b]) are allowed.
Note that the interval declaration must not contain any space
character.
- 3. (optional) The LaTeX spelling of the coordinate; if not provided the
- coordinate symbol given in the first field will be used.
+ 3. (optional) The LaTeX spelling of the coordinate; if not provided
+ the coordinate symbol given in the first field will be used.
The order of the fields 2 and 3 does not matter and each of them can
be omitted.
@@ -1271,11 +1272,12 @@ class TopManifold(TopManifoldSubset):
treatment of the backslash character (see examples below).
If no interval range and no LaTeX spelling is to be provided for any
coordinate, the argument ``coordinates`` can be omitted when the
- shortcut operator <,> is used via Sage preparser (see examples below)
+ shortcut operator ``<,>`` is used via Sage preparser (see examples
+ below)
- ``names`` -- (default: ``None``) unused argument, except if
``coordinates`` is not provided; it must then be a tuple containing
- the coordinate symbols (this is guaranted if the shortcut operator <,>
- is used).
+ the coordinate symbols (this is guaranted if the shortcut operator
+ ``<,>`` is used).
OUTPUT:
@@ -1383,8 +1385,9 @@ class TopManifold(TopManifoldSubset):
r"""
Define a scalar field on the manifold.
- See :class:`~sage.manifolds.scalarfield.ScalarField` for a
- complete documentation.
+ See :class:`~sage.manifolds.scalarfield.ScalarField` (or
+ :class:`~sage.manifolds.differentiable.scalarfield.DiffScalarField`
+ if the manifold is differentiable) for a complete documentation.
INPUT:
@@ -1415,7 +1418,10 @@ class TopManifold(TopManifoldSubset):
OUTPUT:
- instance of :class:`~sage.manifolds.scalarfield.ScalarField`
- representing the defined scalar field.
+ (or of the subclass
+ :class:`~sage.manifolds.differentiable.scalarfield.DiffScalarField`
+ if the manifold is differentiable) representing the defined scalar
+ field.
EXAMPLES: