Closed mkoeppe closed 3 years ago
That sounds extremely interesting!
Btw: Do you really mean cell complexes or rather simplicial complexes?
Simplicial is too narrow - that would not be enough (without triangulating) to represent general convex polyhedra and their boundary structure. So need something slightly more general.
Author: Matthias Koeppe, ...
New commits:
331aa59 | sage.manifolds.closure_topological_submanifold, TopologicalSubmanifold.closure: New |
Here's a beginning.
Currently, is there already a way to get the image of the embedding of the submanifold in the ambient manifold as a "subset"?
Replying to @mkoeppe:
New commits:
331aa59
sage.manifolds.closure_topological_submanifold, TopologicalSubmanifold.closure: New
Looks already nice!
Replying to @mkoeppe:
Simplicial is too narrow - that would not be enough (without triangulating) to represent general convex polyhedra and their boundary structure. So need something slightly more general.
Right, the cube is already a counter-example.
Replying to @mkoeppe:
Here's a beginning.
Currently, is there already a way to get the image of the embedding of the submanifold in the ambient manifold as a "subset"?
No, I don't think so.
Replying to @mjungmath:
Replying to @mkoeppe:
Here's a beginning.
Currently, is there already a way to get the image of the embedding of the submanifold in the ambient manifold as a "subset"?
No, I don't think so.
I confirm; more generally, there is no such functionality for continuous maps.
Speaking of boundary; I think we should slowly but surely consider to introduce manifolds with boundary...
Replying to @mjungmath:
Speaking of boundary; I think we should slowly but surely consider to introduce manifolds with boundary...
Indeed. There is even some demand for it: https://ask.sagemath.org/question/56532/.
Dependencies: #31653
Replying to @egourgoulhon:
Replying to @mjungmath:
Replying to @mkoeppe:
Currently, is there already a way to get the image of the embedding of the submanifold in the ambient manifold as a "subset"?
No, I don't think so.
I confirm; more generally, there is no such functionality for continuous maps.
OK, I have opened #31653 for this
Branch pushed to git repo; I updated commit sha1. New commits:
0579188 | Fixup |
Work Issues: redo on top of #31653
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
26c7e56 | src/sage/manifolds/continuous_map_image.py: Update doctests |
3e273bb | TopologicalSubmanifold.as_subset: New |
9726d36 | Docstring work |
19762ae | ImageManifoldSubset: New parameter domain_subset, use it in ContinuousMap.image |
964f9f7 | src/sage/manifolds/continuous_map.py: Update copyright |
e711215 | src/sage/manifolds/continuous_map_image.py: Add tests |
0f3e36d | Link in documentation of sage.manifolds.continuous_map_image |
218117b | sage.manifolds.closure_topological_submanifold, TopologicalSubmanifold.closure: New |
3b3662e | Fixup |
0666fae | Change to ClosureOfManifoldSubset |
Changed author from Matthias Koeppe, ... to Matthias Koeppe
Description changed:
---
+++
@@ -1,5 +1,6 @@
-We define a class for objects in the category of topological spaces that represents the topological closure of an embedded submanifold.
-Embedded submanifolds will provide a method `closure` to construct it. As far as this ticket is concerned, this object is abstract: it only knows what object it is the closure of and the ambient space.
+We define a subclass of `ManifoldSubset` whose instances represents the topological closure of given subset in the manifold.
+
+Subsets provide a method `closure` to construct it.
The purpose of this is to build a connection of manifolds to cell complexes and convex polyhedra: In a separate ticket, we will define embedded submanifolds of euclidean spaces that arise as interiors of polyhedra or relative interiors of their faces.
Changed work issues from redo on top of #31653 to none
Changed dependencies from #31653 to #31653, #31763
Description changed:
---
+++
@@ -1,6 +1,6 @@
We define a subclass of `ManifoldSubset` whose instances represents the topological closure of given subset in the manifold.
-Subsets provide a method `closure` to construct it.
+Subsets provide a method `closure` to construct it. When the subset is already closed, as detected by the new method `is_closed`, it just returns the input.
The purpose of this is to build a connection of manifolds to cell complexes and convex polyhedra: In a separate ticket, we will define embedded submanifolds of euclidean spaces that arise as interiors of polyhedra or relative interiors of their faces.
Changed dependencies from #31653, #31763 to #31653, #31763, #31798
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
6772570 | ManifoldSubset.union: Handle arbitrary unions |
edfea33 | ManifoldSubset.union: Add example and plots |
fdd0aba | ManifoldSubset.declare_union: Handle arbitrary unions |
c2f484c | src/sage/manifolds/subset.py: import itertools |
a083569 | ManifoldSubset._intersection_subset, _union_subset: Use declare_subset, declare_superset; fix doctest |
da91653 | ManifoldSubset._union_subset: Fixup |
3e6a9cf | Merge #31764 |
3786cee | ManifoldSubset.difference, complement: New |
decd831 | Merge #31798 |
0faec94 | ManifoldSubset.is_closed, declare_closed: New |
Description changed:
---
+++
@@ -2,5 +2,7 @@
Subsets provide a method `closure` to construct it. When the subset is already closed, as detected by the new method `is_closed`, it just returns the input.
+We also add a method `declare_closed`. It just sets up an open disjoint union with an open complement. (This is exactly what `is_closed` tests.)
+
The purpose of this is to build a connection of manifolds to cell complexes and convex polyhedra: In a separate ticket, we will define embedded submanifolds of euclidean spaces that arise as interiors of polyhedra or relative interiors of their faces.
I have put the new class in a new subpackage sage.manifolds.subsets
(see #30139 comment:33)
Looks nice, but there are several issues reported by the patchbot, including doctest failures.
Looks like the failures are originated in #31798.
Changed dependencies from #31653, #31763, #31798 to #31763, #31798
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
94edd68 | ManifoldSubset.declare_superset: Fix documentation |
41826b4 | ManifoldSubset.declare_{sub,super}set: Expand docstring |
1c14655 | Merge #31763 |
6370e88 | ManifoldSubset.difference, complement: New |
73eceac | Merge #31798 |
2028258 | sage.manifolds.subsets.closure, TopologicalSubmanifold.closure: New |
38c9e96 | ManifoldSubset.is_closed, declare_closed: New |
Redid the branch on top of only #31763, #31798
Branch pushed to git repo; I updated commit sha1. New commits:
3ef5141 | Merge #31763 |
79a625b | ManifoldSubset._reduce_intersection_members: Add examples, raise TypeError if input is empty family |
8e70023 | ManifoldSubset._reduce_union_members: Add examples |
ee4efc9 | ManifoldSubset._{union,intersection}_subset: Do cache the result here; add examples |
e7f7a7d | Merge #31764 |
9259a2c | Merge #31798 |
Branch pushed to git repo; I updated commit sha1. New commits:
ac53984 | src/sage/manifolds/subsets/__init__.py: New |
Branch pushed to git repo; I updated commit sha1. New commits:
21739de | src/sage/manifolds/subset.py: Simplify code, make pyflakes happy |
6bbd4ae | src/sage/manifolds/subset.py: Add coding header |
2d7fda7 | src/sage/manifolds/subset.py: Simplify code more to make pyflakes happy |
8d3ad85 | Merge #31764 |
60505b0 | Merge #31798 |
One doctest has failed. Is that related to this ticket?
No, it's unrelated, see #31848
Looks nice!
There is a spurious line feed in the html documentation of ManifoldSubsetClosure
, which can be fixed with
- ``name`` -- (default: computed from the name of the subset)
- string; name (symbol) given to the closure
+ string; name (symbol) given to the closure
Besides, there should be some EXAMPLES
section in the main docstring of ManifoldSubsetClosure
, and the latter should start with r"""
, instead of """
, I think.
Branch pushed to git repo; I updated commit sha1. New commits:
b9909c0 | ManifoldSubsetClosure: Add examples, fix docstring markup |
I would not perform the import of ManifoldSubsetClosure
in the EXAMPLES
section, but rather construct the closure via the dedicated method closure()
, since this is what the end user is supposed to do. In other words, I would rewrite the first part of the example as something like
sage: M = Manifold(2, 'R^2', structure='topological')
sage: c_cart.<x,y> = M.chart() # Cartesian coordinates on R^2
sage: D = M.open_subset('D', coord_def={c_cart: x^2+y^2<1}); D
Open subset D of the 2-dimensional topological manifold R^2
sage: cl_D = D.closure()
sage: cl_D
Topological closure cl_D of the Open subset D of the 2-dimensional
topological manifold R^2
sage: latex(cl_D)
\mathop{\mathrm{cl}}(D)
sage: type(cl_D)
<class 'sage.manifolds.subsets.closure.ManifoldSubsetClosure_with_category'>
sage: cl_D.category()
Category of subobjects of sets
Also, in the docstring of ManifoldSubset.closure()
, it would be nice to add an OUTPUT
field as follows:
OUTPUT:
- an instance of :class:`~sage.manifolds.subsets.closure.ManifoldSubsetClosure`
This allows one to easily access to the documentation of class ManifoldSubsetClosure
from that of closure()
. For completeness, one may also add an INPUT
field describing the arguments name
and latex_name
and their default values.
We define a subclass of
ManifoldSubset
whose instances represents the topological closure of given subset in the manifold.Subsets provide a method
closure
to construct it. When the subset is already closed, as detected by the new methodis_closed
, it just returns the input.We also add a method
declare_closed
. It just sets up an open disjoint union with an open complement. (This is exactly whatis_closed
tests.)The purpose of this is to build a connection of manifolds to cell complexes and convex polyhedra: In a separate ticket, we will define embedded submanifolds of euclidean spaces that arise as interiors of polyhedra or relative interiors of their faces.
Depends on #31763 Depends on #31798
CC: @egourgoulhon @tscrim @yuan-zhou @mjungmath
Component: manifolds
Author: Matthias Koeppe
Branch/Commit:
9abc617
Reviewer: Eric Gourgoulhon
Issue created by migration from https://trac.sagemath.org/ticket/31644