Various Euler angle related utilities. More...
#include <cmath>
#include <gsl/gsl_sf_gamma.h>
#include <gsl/gsl_sf_pow_int.h>
#include <core/matrix3.h>
Functions | |
vector3 | polarUnitVector (double alpha, double beta) |
Get the position of the new Z-axis, given alpha and beta (does not depend on gamma) | |
void | getEulerAxis (const vector3<> &newZ, vector3<> &euler) |
Calculates euler[0]=alpha and euler[1]=beta given newZ, the direction of the Z-axis in the rotated frame. | |
matrix3 | matrixFromEuler (const vector3<> &euler) |
Calculate rotation matrices from euler angles. | |
vector3 | eulerFromMatrix (const matrix3<> &mat) |
Calculate euler angles from rotation matrices. | |
double | wigner_d (const int j, const int m1, const int m2, const double beta) |
Wigner d-function d^j_{m1 m2}(beta) for ZYZ Euler angles. | |
Various Euler angle related utilities.
The Euler angle convention used here is R(alpha,beta,gamma) = R_Z(alpha) * R_Y(beta) * R_Z(gamma) All routines are inlined for performance.