Opened 14 months ago
Last modified 5 months ago
#28813 new enhancement
Enhance symmetry handling for tensors
Reported by: | gh-LBrunswic | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-9.3 |
Component: | linear algebra | Keywords: | tensor, symmetries, tensor with indices, manifolds, permutation group |
Cc: | gh-mwageringel, egourgoulhon | Merged in: | |
Authors: | Léo Brunswic | Reviewers: | |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
Current implementation of symmetries has limited handling of symmetries that exclude for instance the symmetries of the Riemann tensor.
One would naturally expect:
- To be able to (anti)symmetries a tensor to obtain general symmetries i.e. obtain via the action of an abritrary subgroup of the SymmetricGroup? acting on indices. This should be possible both in index notation #28787 or via the methods {{symmetrize}} or {{antisymmetrize}}.
- To be able to check easily the symmetries of a tensor
- To declare symmetries of a tensor so that they are enforced during declaration on subsequent manipulations
- To exploit such symmetries to accelerate computations
Change History (10)
comment:1 follow-up: ↓ 2 Changed 14 months ago by
comment:2 in reply to: ↑ 1 ; follow-up: ↓ 3 Changed 14 months ago by
Indeed the Riemann tensor is an element of $\Lambda^2S^2T^*M$
. These so-called Young symmetrizer indeed allow for the construction of wide classes of linear representation of the symmetric groups. As such they are special cases of linear representations of the symmetric group.
I would say both view points are valid, I guess you suggest of more "linear group representation" approach while I was considering at first only symmetries on indices.
Symmetries are very easy to implement since #28787 does something very close by implementing permute_indices
method.
I don't know enough about how group actions work in sage to form an enlightened opinion.
comment:3 in reply to: ↑ 2 ; follow-up: ↓ 4 Changed 14 months ago by
Replying to gh-LBrunswic:
I would say both view points are valid
Absolutely. When I commented on #28784, I was mainly thinking of multi-symmetrizations like you implemented them, but generalizing this to group actions should indeed be straightforward.
As far as I know, this just requires defining a subclass of sage.categories.action.Action
that implements _act_
.
comment:4 in reply to: ↑ 3 ; follow-up: ↓ 5 Changed 14 months ago by
"generalizing this to group actions should indeed be straightforward"
To clariry, by "group actions", you mean linear group actions on the underlying vector space (like one can interpret while talking about Young symetrizers) or a simple group action one the indices?
comment:5 in reply to: ↑ 4 Changed 14 months ago by
Replying to gh-LBrunswic:
To clariry, by "group actions", you mean linear group actions on the underlying vector space (like one can interpret while talking about Young symetrizers) or a simple group action one the indices?
Sorry, I meant group actions on the indices by subgroups of the symmetric group, as you suggested in the ticket description.
comment:6 Changed 14 months ago by
Thx for the clarification.
If you don't mind, I would like to wait for the eventual positive review of #28787 before working in this ticket since I expect dependancies.
comment:7 Changed 13 months ago by
- Milestone changed from sage-9.0 to sage-9.1
Ticket retargeted after milestone closed
comment:8 Changed 9 months ago by
- Milestone changed from sage-9.1 to sage-9.2
Batch modifying tickets that will likely not be ready for 9.1, based on a review of the ticket title, branch/review status, and last modification date.
comment:9 Changed 5 months ago by
See also: #30276 Phased permutation groups
comment:10 Changed 5 months ago by
- Milestone changed from sage-9.2 to sage-9.3
The symmetries of the Riemann tensor are described by a Young symmetrizer which, as far as I understand, is the same as doing a symmetrization and an antisymmetrization. These are described by a Young tableau rather than a group action on the index set. This involves non-canonical choices though, e.g. whether to first symmetrize or antisymmetrize, but as long as one sticks to a convention this should not be a problem. It would be nice if Sage kept track of such symmetries and exploited these, but this might be too involved for now, or at least I would not know where to start with this.