JDFTx  1.7.0
Euler.h File Reference

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>


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.

Detailed Description

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.