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