Class MEAL::Rotation
-
class Rotation : public MEAL::Complex2
Represents a rotation (passive unitary transformation) about a free axis.
This class represents a unitary matrix,
\[ \rotat = \exp (\Ci\bm{\sigma}\cdot\hat{\bm{n}}\phi) = \pauli{0}\cos\phi + \Ci\bm{\sigma}\cdot\hat{\bm{n}}\sin\phi\, \]that rotates the Stokes polarization vector about the axis \(\hat{\bm{n}}\) by an angle \(-2\phi\). The rotation is parameterized by a three-vector,\[ \bm{r}=\hat{\bm{n}}\phi = (r_1, r_2, r_3) \]such that \(\phi=|\bm{r}|\),\[ \rotat = \pauli{0}\cos\phi + \Ci\bm{\sigma\cdot r}\,\sinc\phi, \]\[ {\partial\phi\over\partial r_j} = {r_j\over\phi}, \]and\[ {\partial\rotat\over\partial r_j} = -\pauli{0}\,r_j\,\sinc\phi + \Ci \pauli{j}\,\sinc\phi + \Ci \bm{\sigma}\cdot\bm{r} {r_j\over\phi^2} (\cos\phi -\sinc\phi). \]Public Functions
-
Rotation()
Default constructor.
-
Rotation(const Vector<3, double> &axis, double angle)
Construct with rotation axis and angle in radians.
-
void set_axis_angle(Vector<3, double> axis, double angle)
Set the rotation axis and angle in radians.
-
Vector<3, double> get_axis() const
Get the unit-vector along which the rotation occurs.
-
double get_phi() const
Get the rotation angle, phi.
-
void set_vector(const Vector<3, double>&)
Set the three free parameters as a vector.
-
Vector<3, double> get_vector() const
Get the three free parameters as a vector.
-
virtual std::string get_name() const
Return the name of the class.
-
Rotation()