choreo.ChoreoSym#

class ChoreoSym(LoopTarget=0, LoopSource=0, SpaceRot=array([[1., 0.], [0., 1.]]), TimeRev=1, TimeShift=Fraction(0, 1))#

This class defines the symmetries of the action Useful to detect loops and constraints.

Syntax : Giving one ChoreoSym to setup_changevar prescribes the following symmetry / constraint :

\[x_{\text{LoopTarget}}(t) = \text{SpaceRot} \cdot x_{\text{LoopSource}} (\text{TimeRev} * (t - \text{TimeShift}))\]

Where SpaceRot is assumed orthogonal (never actually checked, so beware) and TimeShift is defined as a rational fraction.

__init__(LoopTarget=0, LoopSource=0, SpaceRot=array([[1., 0.], [0., 1.]]), TimeRev=1, TimeShift=Fraction(0, 1))#

__init__ Class constructor

Parameters:
  • LoopTarget (int, optional) – defaults to 0

  • LoopSource (int, optional) – defaults to 0

  • SpaceRot (np.array, optional) – defaults to np.identity(2,dtype=np.float64)

  • TimeShift (fractions.Fraction, optional) – defaults to fractions.Fraction(numerator=0,denominator=1)

Methods

ApplyT(Time)

Compose(A)

Returns the composition of two transformations.

ComposeLight(A)

Returns the composition of two transformations ignoring sources and targets.

Inverse()

Returns the inverse of a symmetry transformation

IsIdentity([atol])

Returns True if the transformation is close to identity.

IsSame(other[, atol])

Returns True if the two transformations are almost identical.

IsSameLight(other[, atol])

Returns True if the two transformations are almost identical, ignoring source and target

Random(geodim[, maxden, nbody])

Generates a random ChoreoSym

__init__([LoopTarget, LoopSource, SpaceRot, ...])

__init__ Class constructor