-
-
Notifications
You must be signed in to change notification settings - Fork 452
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Euclidean spaces and vector calculus #24623
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:4
This is a first sketch (not ready yet). Last 10 new commits:
|
Commit: |
comment:5
#24792 introduces more flexibility in naming the elements of vector frames, for instance using |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:8
I wonder whether some of this (in terms of the div/grad/curl) could be exposed in the symbolic calculus places, at least with some well-placed and well-formed examples that would be understandable to someone teaching Calc III to engineers (in the US framework) who may not be a differential geometer. |
comment:9
Replying to @kcrisman:
Indeed, the aim here is to provide some interface which does not require any knowledge of differential geometry on manifolds. The class |
comment:10
That's great! The reason I brought it up is because folders like Is there a way to use something like (say) |
comment:11
Replying to @kcrisman:
Yes, this is precisely the aim of the current ticket. The above notebook is still at the level of semi-Riemannian manifolds (i.e. it illustrates only ticket #24622), while the user interface of the current ticket will be much simpler. It should also provide an easy way to change from Cartesian coordinates to e.g. polar or cylindrical ones.
Thanks for pointing this version; I was not aware of it. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
This comment has been minimized.
This comment has been minimized.
comment:15
Here is some status update: functionalities regarding the 2-dimensional case are almost complete, as you can see in this demo worksheet (any feedback is of course appreciated). The 3-dimensional case is under preparation. The generic n-dimensional case, with n=1 or n>=4 is ready, since only Cartesian coordinates will be introduced (by default) in this case. Regarding a question raised in comment:10, it is now possible to construct a vector field on an Euclidean space from a
where |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:26
Replying to @kcrisman:
I have added an entry "Vector Calculus" to |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
This comment has been minimized.
This comment has been minimized.
comment:31
Okay, I have made my way through the code. Overall, it looks good. I remove the function There is something very subtle happening as some of the doctest output for display names of The rest of my changes were mostly cosmetic. |
Reviewer: Travis Scrimshaw |
comment:32
Replying to @tscrim:
Thanks a lot for looking into this.
This is a nice improvement, thanks!
Indeed; I will look into this...
Thanks for all of them. |
comment:33
I should also say that if you approve of my changes, then you can set a positive review. (Unfortunately, a number of the doctests are just slow because of feeding calls off to Maxima and the simplifications. Although I don't think there is anything we can do about that.) |
comment:35
The above commit fixes the
in line 591 of Moreover, since it is now possible to skip the dimension as first argument of I also took the opportunity of this commit to add a single-line fix of a (small) bug in |
comment:36
Yep, LGTM. Thank you for tracking that down. |
comment:37
Replying to @tscrim:
Thank you very much for the review, and the associated improvements in the code! |
Changed branch from public/manifolds/Euclidean_spaces to |
Changed commit from |
comment:39
Merged in Sage 8.3.beta0. |
This ticket implements Euclidean spaces as Riemannian manifolds diffeomorphic to Rn and equipped with a flat metric, which defines the Euclidean dot product. Using the operators introduced in #24622, this provides the standard operators of vector calculus: dot product, norm, cross product, gradient, divergence, curl and Laplacian, along with the standard coordinate systems (Cartesian, spherical, cylindrical, etc.).
See this ask.sagemath question for a motivation, as well as this one.
The implementation is performed via the parent class
EuclideanSpace
, which inherits fromPseudoRiemannianManifold
(introduced in #24622). Two subclasses are devoted to specific cases:EuclideanPlane
for n=2Euclidean3dimSpace
for n=3The user interface for constructing an Euclidean space relies on the
EuclideanSpace.__classcall_private__
to direct to the appropriate subclass.The implementation through the manifold framework allows for an easy use of various coordinate systems, along with the related transformations. However, the user interface does not assume any knowledge of Riemannian geometry. In particular, no direct manipulation of the metric tensor is required.
A minimal example is
The transformation to spherical coordinates:
More detailed examples are in the following Jupyter notebooks:
This work is part of the SageManifolds project, see #18528 for an overview.
Depends on #24622
Depends on #24792
CC: @sagetrac-tmonteil
Component: geometry
Keywords: Euclidean space, vector calculus, gradient, divergence, curl, Laplacian
Author: Eric Gourgoulhon
Branch:
220726c
Reviewer: Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/24623
The text was updated successfully, but these errors were encountered: