choreo.ActionSym#
- class ActionSym(Py_ssize_t[::1] BodyPerm, double[:, ::1] SpaceRot, Py_ssize_t TimeRev, Py_ssize_t TimeShiftNum, Py_ssize_t TimeShiftDen)#
This class defines the symmetries in a N-body system.
A symmetry \(\sigma\) is a transformation of paths that leaves the physics of a N-body system invariant.
\[x_{\text{LoopTarget}}(t) = \text{SpaceRot} \cdot x_{\text{LoopSource}} (\text{TimeRev} * (t - \text{TimeShift}))\]Where SpaceRot is assumed orthogonal and TimeShift is defined as a rational fraction.
Useful to detect loops and constraints.
cf Palais’ principle of symmetric criticality in [1]
- Cited:
[1]Richard S Palais. The principle of symmetric criticality. Communications in Mathematical Physics, 69(1):19–30, 1979.
Class Constructor
- __init__()
Specifies a symmetry of the action functional.
- Parameters:
BodyPerm (
numpy.ndarray
(shape = (nbody), dtype = np.intp)
) – Permutation of the bodies.SpaceRot (
numpy.ndarray
(shape = (geodim, geodim), dtype = np.float64)
) – Isometry of space.TimeRev (
int
) – A value of-1
denotes time reversal, and a value of1
denotes no time reversal.TimeShiftNum (
int
) – Numerator of the rational time shift.TimeShiftDen (
int
) – Denominator of the rational time shift.
Methods Summary
Returns a rational transformed time instant given an input rational time instant.
Returns a rational inverse transformed time instant given an input rational time instant.
Returns a rational inverse transformed time segment given an input rational time segment.
Returns a rational transformed time segment given an input rational time segment.
Builds the Cayley graph of a list of group generators.
Returns the composition of two transformations.
Returns the conjugation of a transformation with respect to another transformation.
Returns a new
choreo.ActionSym
from adict
.Returns the identity transformation.
Returns the inverse of a symmetry transformation.
Generates all involutive permutations of size
n
.Returns
True
if the transformation is withinatol
of the identity.Returns
True
if the body permutation part of the transformation is the identity permutation.Returns
True
if parts of the transformation are withinatol
of the identity.Returns
True
if parts of the transformation are withinatol
of the identity.Returns
True
if the space isometry part of the transformation is withinatol
of the identity.Returns
True
if parts of the transformation are withinatol
of the identity.Returns
True
if parts of the transformation are withinatol
of the identity.Returns
True
if the transformation does not reverse time.Returns
True
if the transformation does not shift time.Returns
True
if the two transformations are withinatol
of each other.Returns
True
if the two transformations have identical body permutations.Returns
True
if the two transformations have space isometries withinatol
of each other.Returns
True
if the two transformations have properties withinatol
of each other.Returns
True
if the two transformations have properties withinatol
of each other.Returns
True
if the two transformations have identical time reversal.Returns
True
if the two transformations have identical time shifts.Returns
True
if the transformation is well-formed.Returns a random transformation.
Surjective parametrization of direct isometries.
Returns the time derivative of a symmetry transformation.
Generates all rational fractions in \([0,1[\) with denominator lower or equal to
max_den
.Computes a transformed position by the space isometry.
Computes a transformed segment of positions by the time and space isometry.
Specifies a symmetry of the action functional.
Returns a
dict
containing the transformation informations.Attributes
numpy.ndarray
(shape = (nbody), dtype = np.intp)
Permutation of the bodies.numpy.ndarray
(shape = (nbody), dtype = np.intp)
Isometry of space.int
Time reversalint
Denominator of the rational time shift.int
Numerator of the rational time shift.