orbithunter.OrbitKS.rotate

OrbitKS.rotate(distance, axis=0, units='plotting')[source]

Rotate the velocity field in either space or time.

Parameters
distancefloat

The rotation / translation amount, in dimensionless units of time or space.

axisint

The axis of the ndarray (state) that rotations

unitsstr

Determines the spatial units of the provided rotation

Returns
OrbitKS :

OrbitKS whose field has been rotated.

Notes

Due to periodic boundary conditions, translation is equivalent to rotation on a fundamental level here. Hence the use of ‘distance’ instead of ‘angle’. This can be negative. Also due to the periodic boundary conditions, a distance equaling the entire domain length is equivalent to no rotation. I.e. the rotation is always modulo L or modulo T.

The orbit only remains a converged solution if rotations coincide with collocation points. i.e. multiples of L / M and T / N. The reason for this is because arbitrary rotations require interpolation of the field.

Rotation breaks discrete symmetry and destroys the solution. Users encouraged to change to OrbitKS first.