Skip to content
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

Enhance symmetry handling for tensors #28813

Open
LBrunswic mannequin opened this issue Nov 28, 2019 · 10 comments
Open

Enhance symmetry handling for tensors #28813

LBrunswic mannequin opened this issue Nov 28, 2019 · 10 comments

Comments

@LBrunswic
Copy link
Mannequin

LBrunswic mannequin commented Nov 28, 2019

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 _add_ method for tensors with indices #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

CC: @mwageringel @egourgoulhon

Component: linear algebra

Keywords: tensor, symmetries, tensor with indices, permutation group

Author: Léo Brunswic

Issue created by migration from https://trac.sagemath.org/ticket/28813

@LBrunswic LBrunswic mannequin added this to the sage-9.0 milestone Nov 28, 2019
@mwageringel
Copy link

comment:1

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.

@LBrunswic
Copy link
Mannequin Author

LBrunswic mannequin commented Nov 28, 2019

comment:2

Indeed the Riemann tensor is an element of $\Lambda<sup>2S</sup>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.

@mwageringel
Copy link

comment:3

Replying to @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_.

@LBrunswic
Copy link
Mannequin Author

LBrunswic mannequin commented Nov 28, 2019

comment:4

"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?

@mwageringel
Copy link

comment:5

Replying to @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.

@LBrunswic
Copy link
Mannequin Author

LBrunswic mannequin commented Nov 29, 2019

comment:6

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.

@embray
Copy link
Contributor

embray commented Jan 6, 2020

comment:7

Ticket retargeted after milestone closed

@embray embray modified the milestones: sage-9.0, sage-9.1 Jan 6, 2020
@mkoeppe
Copy link
Contributor

mkoeppe commented Apr 14, 2020

comment:8

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.

@mkoeppe mkoeppe modified the milestones: sage-9.1, sage-9.2 Apr 14, 2020
@mkoeppe
Copy link
Contributor

mkoeppe commented Aug 9, 2020

comment:9

See also: #30276 Phased permutation groups

@mkoeppe mkoeppe modified the milestones: sage-9.2, sage-9.3 Aug 29, 2020
@mkoeppe
Copy link
Contributor

mkoeppe commented Feb 13, 2021

comment:11

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Feb 13, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 18, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 Apr 1, 2022
@mkoeppe mkoeppe removed this from the sage-9.7 milestone Aug 31, 2022
@mkoeppe mkoeppe added this to the sage-9.8 milestone Aug 31, 2022
@mkoeppe mkoeppe removed this from the sage-9.8 milestone Jan 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants