https://mooseframework.inl.gov
Loading...
Searching...
No Matches
EulerAngles.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "MooseTypes.h"
13#include "libmesh/vector_value.h"
14// Ignore depcrecated copy warnings for this class from libmesh Eigen contrib
15#include "libmesh/ignore_warnings.h"
16#include <Eigen/Geometry>
17
18// forward declaration
19class MooseRandom;
20
25{
26public:
27 Real phi1, Phi, phi2;
28
29 // default constructor
31 // Quaternions to Euler Angles
32 EulerAngles(const Eigen::Quaternion<Real> & q);
33 // Components to Euler Angles
34 EulerAngles(const Real & v0, const Real & v1, const Real & v2);
35
36 operator RealVectorValue() const { return RealVectorValue(phi1, Phi, phi2); }
37
38 void random();
40 // Euler to Quaternions
41 Eigen::Quaternion<Real> toQuaternion();
42};
43
44// Restore warnings for other classes
45#include "libmesh/restore_warnings.h"
Euler angle triplet.
Definition EulerAngles.h:25
void random()
Definition EulerAngles.C:84
Eigen::Quaternion< Real > toQuaternion()
Definition EulerAngles.C:55