27#include "neml2/tensors/VecBase.h"
66 const std::string & angle_convention,
67 const std::string & angle_type);
117 Vec to_euler_angles(
const std::string & angle_convention,
const std::string & angle_type)
const;
Base class for second order tensor.
Definition R2.h:49
Third order tensor without symmetry.
Definition R3.h:41
Rotation stored as modified Rodrigues parameters.
Definition Rot.h:49
Rot rotate(const Rot &r) const
Rotate.
Definition Rot.cxx:223
Vec to_euler_angles(const std::string &angle_convention, const std::string &angle_type) const
Convert back to Euler angles.
Definition Rot.cxx:302
static Rot fill_rodrigues(const Scalar &rx, const Scalar &ry, const Scalar &rz)
Fill from standard Rodrigues parameters.
Definition Rot.cxx:158
Scalar dist(const Rot &r) const
Distance measure between two rotations, accounting for shadow mapping.
Definition Rot.cxx:274
R3 deuler_rodrigues() const
d(R2)/d(r) – useful in constructing other derivatives
Definition Rot.cxx:208
static Rot axis_angle_standard(const Vec &n, const Scalar &theta)
Fill with axis/angle pairs as a standard Rodrigues parameter, then convert to MRP.
Definition Rot.cxx:190
static Rot rand(const TensorOptions &options=default_tensor_options())
Definition Rot.cxx:63
Rot shadow() const
Return the shadow parameter set (a set of MRPs that define the same orientation)
Definition Rot.cxx:261
R2 dshadow() const
Return the derivative of the shadow map.
Definition Rot.cxx:267
static Rot fill_matrix(const R2 &M)
Fill from rotation matrix.
Definition Rot.cxx:140
static Rot identity(const TensorOptions &options=default_tensor_options())
The identity rotation, helpfully the zero vector.
Definition Rot.cxx:86
static Rot fill_euler_angles(const Vec &v, const std::string &angle_convention, const std::string &angle_type)
Fill from Euler angle.
Definition Rot.cxx:92
R2 euler_rodrigues() const
Generate a rotation matrix using the Euler-Rodrigues formula.
Definition Rot.cxx:197
R2 drotate_self(const Rot &r) const
Derivative of the rotated Rodrigues vector w.r.t. this vector.
Definition Rot.cxx:245
Scalar gdist(const Rot &r) const
Raw distance formula, not accounting for shadown mapping.
Definition Rot.cxx:287
static Rot axis_angle(const Vec &n, const Scalar &theta)
Fill with axis/angle pairs.
Definition Rot.cxx:181
Scalar dV() const
Volume element at locations.
Definition Rot.cxx:296
R2 drotate(const Rot &r) const
Derivative of the rotated Rodrigues vector w.r.t. the other Rodrigues vector.
Definition Rot.cxx:229
static Rot rotation_from_to(const Vec &v1, const Vec &v2)
Fill by forming the rotation between two vectors.
Definition Rot.cxx:169
Scalar.
Definition Scalar.h:38
Base class 3-vector.
Definition VecBase.h:42
3-vector.
Definition Vec.h:43
Definition DiagnosticsInterface.cxx:30
Vec convert_euler_angles_from_kocks(const Vec &angles, const std::string &to_convention)
Convert between Euler angle types.
Definition Rot.cxx:340
TensorOptions default_tensor_options()
Default floating point tensor options.
Definition defaults.cxx:42
Tensor operator*(const Tensor &a, const Tensor &b)
Definition operators.cxx:171
c10::TensorOptions TensorOptions
Definition types.h:63
c10::ArrayRef< Size > TensorShapeRef
Definition types.h:70
Traceable tensor shape.
Definition TraceableTensorShape.h:38