27#include "neml2/tensors/VecBase.h"
66 const std::string & angle_convention,
67 const std::string & angle_type);
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
static Rot rand(const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape, const TensorOptions &options=default_tensor_options())
Rot rotate(const Rot &r) const
Rotate.
static Rot fill_euler_angles(const Vec &v, const std::string &angle_convention, const std::string &angle_type)
Fill from Euler angle.
Vec to_euler_angles(const std::string &angle_convention, const std::string &angle_type) const
Convert back to Euler angles.
Scalar dist(const Rot &r) const
Distance measure between two rotations, accounting for shadow mapping.
R3 deuler_rodrigues() const
d(R2)/d(r) – useful in constructing other derivatives
static Rot rotation_from_to(const Vec &v1, const Vec &v2)
Fill by forming the rotation between two vectors.
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.
Rot shadow() const
Return the shadow parameter set (a set of MRPs that define the same orientation).
static Rot fill_matrix(const R2 &M)
Fill from rotation matrix.
static Rot rand(const TensorOptions &options=default_tensor_options())
static Rot fill_rodrigues(const Scalar &rx, const Scalar &ry, const Scalar &rz)
Fill from standard Rodrigues parameters.
R2 dshadow() const
Return the derivative of the shadow map.
R2 euler_rodrigues() const
Generate a rotation matrix using the Euler-Rodrigues formula.
R2 drotate_self(const Rot &r) const
Derivative of the rotated Rodrigues vector w.r.t. this vector.
Scalar gdist(const Rot &r) const
Raw distance formula, not accounting for shadown mapping.
static Rot identity(const TensorOptions &options=default_tensor_options())
The identity rotation, helpfully the zero vector.
Scalar dV() const
Volume element at locations.
R2 drotate(const Rot &r) const
Derivative of the rotated Rodrigues vector w.r.t. the other Rodrigues vector.
static Rot axis_angle(const Vec &n, const Scalar &theta)
Fill with axis/angle pairs.
Scalar.
Definition Scalar.h:38
Base class 3-vector.
Definition VecBase.h:42
3-vector.
Definition Vec.h:43
Definition DiagnosticsInterface.h:31
Vec convert_euler_angles_from_kocks(const Vec &angles, const std::string &to_convention)
Convert between Euler angle types.
TensorOptions default_tensor_options()
Default floating point tensor options.
c10::TensorOptions TensorOptions
Definition types.h:66
c10::ArrayRef< Size > TensorShapeRef
Definition types.h:73
SparseTensorList operator*(const Scalar &, const SparseTensorList &)
Multiplication with scalar.
Traceable tensor shape.
Definition TraceableTensorShape.h:38