# from_rodrigues#

classmethod Symmetry.from_rodrigues(ro: , angles: = None) [source]#

Create unit quaternions from three-component Rodrigues vectors $$\hat{\mathbf{n}}$$ or four-component Rodrigues-Frank vectors $$\mathbf{\rho}$$ .

Parameters:
ro

Rodrigues vectors $$\hat{\mathbf{n}}$$ of three components. These are the components of the Rodrigues-Frank vectors $$\mathbf{\rho}$$ if the angles $$\omega$$ are passed.

angles

Angles $$\omega$$ of the Rodrigues-Frank vectors $$\mathbf{\rho}$$, one per vector. If these are not passed, ro are the Rodrigues vectors $$\hat{\mathbf{n}}$$.

Returns:
Q

Unit quaternions.

Notes

The Rodrigues-Frank vector $$\mathbf{\rho}$$ is defined as

$\mathbf{\rho} = \hat{\mathbf{n}}\tan\frac{\omega}{2}.$

If the vector length is $$\rho = |\mathbf{\rho}|$$, the angle is given by

$\omega = 2\arctan\rho.$

O. Rodrigues’s 1840 vector description was popularized by F. C. Frank due to its useful rectilinear mapping of fundamental zones, as is well-demonstrated in . However, the length of these vectors, and thus their accuracy, scales with $$\tan\omega/2$$. Additionally, two-fold rotations produce vectors of infinite length. Thus, Frank and others introduced the Rodrigues-Frank vector of length 4, consisting of a unit vector followed by the scaling factor $$\tan\omega/2$$. This is better suited for storing data or performing rotation calculations, as discussed in .