Opened 22 months ago

Last modified 2 months ago

#28813 new enhancement

Enhance symmetry handling for tensors

Reported by: gh-LBrunswic Owned by:
Priority: major Milestone: sage-9.5
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:

Status badges

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 (12)

comment:1 follow-up: Changed 22 months ago by gh-mwageringel

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.

comment:2 in reply to: ↑ 1 ; follow-up: Changed 22 months ago by gh-LBrunswic

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: Changed 22 months ago by gh-mwageringel

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: Changed 22 months ago by gh-LBrunswic

"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 22 months ago by gh-mwageringel

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 22 months ago by gh-LBrunswic

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 21 months ago by embray

  • Milestone changed from sage-9.0 to sage-9.1

Ticket retargeted after milestone closed

comment:8 Changed 18 months ago by mkoeppe

  • 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 14 months ago by mkoeppe

See also: #30276 Phased permutation groups

comment:10 Changed 13 months ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-9.3

comment:11 Changed 7 months ago by mkoeppe

  • Milestone changed from sage-9.3 to sage-9.4

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

comment:12 Changed 2 months ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5
Note: See TracTickets for help on using tickets.