NEML2 2.0.0
Loading...
Searching...
No Matches
Orientation Class Reference

Create batch of rotations, with various methods. More...

Detailed Description

Create batch of rotations, with various methods.

#include <Orientation.h>

Inheritance diagram for Orientation:

Public Member Functions

 Orientation (const OptionSet &options)
 
- Public Member Functions inherited from UserTensorBase< Rot >
 UserTensorBase (const OptionSet &options)
 
void setup () override
 Setup this object.
 
- Public Member Functions inherited from NEML2Object
 NEML2Object ()=delete
 
 NEML2Object (NEML2Object &&)=delete
 
 NEML2Object (const NEML2Object &)=delete
 
NEML2Objectoperator= (NEML2Object &&)=delete
 
NEML2Objectoperator= (const NEML2Object &)=delete
 
virtual ~NEML2Object ()=default
 
 NEML2Object (const OptionSet &options)
 Construct a new NEML2Object object.
 
const OptionSetinput_options () const
 
const std::string & name () const
 A readonly reference to the object's name.
 
const std::string & type () const
 A readonly reference to the object's type.
 
const std::string & path () const
 A readonly reference to the object's path.
 
const std::string & doc () const
 A readonly reference to the object's docstring.
 
Factoryfactory () const
 Get the factory that created this object.
 
const Settingssettings () const
 Settings.
 
template<typename T = NEML2Object>
const T * host () const
 Get a readonly pointer to the host.
 
template<typename T = NEML2Object>
T * host ()
 Get a writable pointer to the host.
 
template<typename T >
const T & resolve_tensor (const std::string &name)
 Resolve a TensorName to a Tensor.
 
template<class T >
std::shared_ptr< T > get_object (const std::string &section, const std::string &name)
 
template<class T = Solver>
std::shared_ptr< T > get_solver (const std::string &name)
 Get a solver from the factory.
 
template<class T = Data>
std::shared_ptr< T > get_data (const std::string &name)
 Get a data from the factory.
 
template<class T = Model>
std::shared_ptr< T > get_model (const std::string &name)
 Get a model from the factory.
 
template<class T = Driver>
std::shared_ptr< T > get_driver (const std::string &name)
 Get a driver from the factory.
 
template<class T = WorkScheduler>
std::shared_ptr< T > get_scheduler (const std::string &name)
 Get a scheduler from the factory.
 
- Public Member Functions inherited from Rot
R2 euler_rodrigues () const
 Generate a rotation matrix using the Euler-Rodrigues formula.
 
R3 deuler_rodrigues () const
 d(R2)/d(r) – useful in constructing other derivatives
 
Rot rotate (const Rot &r) const
 Rotate.
 
R2 drotate (const Rot &r) const
 Derivative of the rotated Rodrigues vector w.r.t. the other Rodrigues vector.
 
R2 drotate_self (const Rot &r) const
 Derivative of the rotated Rodrigues vector w.r.t. this vector.
 
Rot shadow () const
 Return the shadow parameter set (a set of MRPs that define the same orientation)
 
R2 dshadow () const
 Return the derivative of the shadow map.
 
Scalar dist (const Rot &r) const
 Distance measure between two rotations, accounting for shadow mapping.
 
Scalar gdist (const Rot &r) const
 Raw distance formula, not accounting for shadown mapping.
 
Scalar dV () const
 Volume element at locations.
 
- Public Member Functions inherited from VecBase< Rot >
Rot rotate (const Rot &r) const
 Rotate using a Rodrigues vector.
 
Rot rotate (const R2 &R) const
 Rotate using a rotation matrix.
 
R2 drotate (const Rot &r) const
 Derivative of the rotated vector w.r.t. the Rodrigues vector.
 
R3 drotate (const R2 &R) const
 Derivative of the rotated vector w.r.t. the rotation matrix.
 
- Public Member Functions inherited from PrimitiveTensor< Rot, 3 >
 PrimitiveTensor ()=default
 Special member functions.
 
 PrimitiveTensor (const ATensor &tensor, Size intmd_dim)
 Construct from an ATensor and infer dynamic shape.
 
 PrimitiveTensor (const ATensor &tensor, Size dynamic_dim, Size intmd_dim)
 Construct from an ATensor and extract dynamic shape given dynamic dimension.
 
 PrimitiveTensor (const ATensor &tensor, const TraceableTensorShape &dynamic_shape, Size intmd_dim)
 Construct from an ATensor given dynamic shape.
 
 PrimitiveTensor (const TensorBase< Derived2 > &tensor)
 Copy constructor.
 
 operator neml2::Tensor () const
 Implicit conversion to a Tensor (discards information on the fixed base shape)
 
Scalar operator() (Args... i) const
 Single-element accessor.
 
- Public Member Functions inherited from TensorBase< Rot >
 TensorBase ()=default
 Default constructor.
 
 TensorBase (const ATensor &tensor, Size dynamic_dim, Size intmd_dim)
 Construct from an ATensor with given dynamic dimension.
 
 TensorBase (const ATensor &tensor, TraceableTensorShape dynamic_shape, Size intmd_dim)
 Construct from an ATensor with given dynamic shape.
 
 TensorBase (const TensorBase< Derived2 > &tensor)
 Copy constructor.
 
 TensorBase (double)=delete
 
 TensorBase (float)=delete
 
 TensorBase (int)=delete
 
Rot variable_data () const
 Variable data without function graph.
 
Rot contiguous () const
 
Rot clone () const
 Clone (take ownership)
 
Rot detach () const
 Discard function graph.
 
Rot to (const TensorOptions &options) const
 Change tensor options.
 
Rot operator- () const
 Negation.
 
Size batch_dim () const
 
Size base_dim () const
 
Size dynamic_dim () const
 
Size static_dim () const
 
Size intmd_dim () const
 
TraceableTensorShape batch_sizes () const
 
TensorShapeRef base_sizes () const
 
const TraceableTensorShapedynamic_sizes () const
 
TensorShapeRef static_sizes () const
 
TensorShapeRef intmd_sizes () const
 
TraceableSize batch_size (Size i) const
 
Size base_size (Size i) const
 
const TraceableSizedynamic_size (Size i) const
 
Size static_size (Size i) const
 
Size intmd_size (Size i) const
 
Rot dynamic_index (indexing::TensorIndicesRef indices) const
 
Rot intmd_index (indexing::TensorIndicesRef indices) const
 
neml2::Tensor base_index (indexing::TensorIndicesRef indices) const
 
Rot dynamic_slice (Size d, const indexing::Slice &index) const
 
Rot intmd_slice (Size d, const indexing::Slice &index) const
 
neml2::Tensor base_slice (Size d, const indexing::Slice &index) const
 
void dynamic_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other)
 
void dynamic_index_put_ (indexing::TensorIndicesRef indices, const CScalar &v)
 
void intmd_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other)
 
void intmd_index_put_ (indexing::TensorIndicesRef indices, const CScalar &v)
 
void base_index_put_ (indexing::TensorIndicesRef indices, const ATensor &other)
 
void base_index_put_ (indexing::TensorIndicesRef indices, const CScalar &v)
 
Rot dynamic_expand (const TraceableTensorShape &shape) const
 
Rot intmd_expand (TensorShapeRef shape) const
 
neml2::Tensor base_expand (TensorShapeRef shape) const
 
Rot batch_expand (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape) const
 
neml2::Tensor static_expand (TensorShapeRef intmd_shape, TensorShapeRef base_shape) const
 
Rot dynamic_expand (const TraceableSize &size, Size d) const
 
Rot intmd_expand (Size size, Size d) const
 
neml2::Tensor base_expand (Size size, Size d) const
 
Rot dynamic_expand_as (const neml2::Tensor &other) const
 
Rot intmd_expand_as (const neml2::Tensor &other) const
 
neml2::Tensor base_expand_as (const neml2::Tensor &other) const
 
Rot batch_expand_as (const neml2::Tensor &other) const
 
neml2::Tensor static_expand_as (const neml2::Tensor &other) const
 
Rot dynamic_reshape (const TraceableTensorShape &shape) const
 
Rot intmd_reshape (TensorShapeRef shape) const
 
neml2::Tensor base_reshape (TensorShapeRef shape) const
 
Rot batch_reshape (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape) const
 
neml2::Tensor static_reshape (TensorShapeRef intmd_shape, TensorShapeRef base_shape) const
 
Rot dynamic_squeeze (Size d) const
 
Rot intmd_squeeze (Size d) const
 
neml2::Tensor base_squeeze (Size d) const
 
Rot dynamic_unsqueeze (Size d, Size n=1) const
 
Rot intmd_unsqueeze (Size d, Size n=1) const
 
neml2::Tensor base_unsqueeze (Size d, Size n=1) const
 
Rot dynamic_transpose (Size d1, Size d2) const
 
Rot intmd_transpose (Size d1, Size d2) const
 
neml2::Tensor base_transpose (Size d1, Size d2) const
 
Rot dynamic_movedim (Size old_dim, Size new_dim) const
 
Rot intmd_movedim (Size old_dim, Size new_dim) const
 
neml2::Tensor base_movedim (Size old_dim, Size new_dim) const
 
Rot dynamic_flatten () const
 
Rot intmd_flatten () const
 
neml2::Tensor base_flatten () const
 
Rot batch_flatten () const
 Flatten batch dimensions.
 
neml2::Tensor static_flatten () const
 Flatten static dimensions.
 

Static Public Member Functions

static OptionSet expected_options ()
 
- Static Public Member Functions inherited from UserTensorBase< Rot >
static OptionSet expected_options ()
 
- Static Public Member Functions inherited from NEML2Object
static OptionSet expected_options ()
 
- Static Public Member Functions inherited from Rot
static Rot identity (const TensorOptions &options=default_tensor_options())
 The identity rotation, helpfully the zero vector.
 
static Rot fill_euler_angles (const Vec &v, const std::string &angle_convention, const std::string &angle_type)
 Fill from Euler angle.
 
static Rot fill_matrix (const R2 &M)
 Fill from rotation matrix.
 
static Rot fill_rodrigues (const Scalar &rx, const Scalar &ry, const Scalar &rz)
 Fill from standard Rodrigues parameters.
 
static Rot rotation_from_to (const Vec &v1, const Vec &v2)
 Fill by forming the rotation between two vectors.
 
static Rot axis_angle (const Vec &n, const Scalar &theta)
 Fill with axis/angle pairs.
 
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.
 
static Rot rand (const TensorOptions &options=default_tensor_options())
 
static Rot rand (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape, const TensorOptions &options=default_tensor_options())
 
- Static Public Member Functions inherited from PrimitiveTensor< Rot, 3 >
static Rot create (const TensorDataContainer &data, Size intmd_dim=0, const TensorOptions &options=default_tensor_options())
 Arbitrary tensor from a nested container with inferred batch dimension.
 
static Rot einsum (c10::string_view equation, TensorList tensors)
 Einstein summation along base dimensions.
 
static Rot empty (const TensorOptions &options=default_tensor_options())
 
static Rot empty (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape={}, const TensorOptions &options=default_tensor_options())
 
static Rot zeros (const TensorOptions &options=default_tensor_options())
 
static Rot zeros (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape={}, const TensorOptions &options=default_tensor_options())
 
static Rot ones (const TensorOptions &options=default_tensor_options())
 
static Rot ones (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape={}, const TensorOptions &options=default_tensor_options())
 
static Rot full (const CScalar &init, const TensorOptions &options=default_tensor_options())
 
static Rot full (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape, const CScalar &init, const TensorOptions &options=default_tensor_options())
 
static Rot rand (const TensorOptions &options=default_tensor_options())
 
static Rot rand (const TraceableTensorShape &dynamic_shape, TensorShapeRef intmd_shape, const TensorOptions &options=default_tensor_options())
 
static Rot fill (Args &&... args)
 
- Static Public Member Functions inherited from TensorBase< Rot >
static Rot empty_like (const Rot &other)
 
static Rot zeros_like (const Rot &other)
 Zero tensor like another, i.e. same batch and base shapes, same tensor options, etc.
 
static Rot ones_like (const Rot &other)
 Unit tensor like another, i.e. same batch and base shapes, same tensor options, etc.
 
static Rot full_like (const Rot &other, const CScalar &init)
 
static Rot rand_like (const Rot &other)
 

Protected Member Functions

Rot make () const override
 Create the tensor given input options.
 
- Protected Member Functions inherited from UserTensorBase< Rot >
- Protected Member Functions inherited from PrimitiveTensor< Rot, 3 >
void validate_shapes_and_dims () const
 Validate shapes and dimensions.
 
- Protected Member Functions inherited from TensorBase< Rot >
void validate_shapes_and_dims () const
 Validate shapes and dimensions.
 

Additional Inherited Members

- Public Types inherited from PrimitiveTensor< Rot, 3 >
using base_sizes_sequence
 Base shape sequence.
 
- Static Public Attributes inherited from PrimitiveTensor< Rot, 3 >
static const TensorShape const_base_sizes
 The base shape.
 
static constexpr Size const_base_dim
 The base dim.
 
static constexpr Size const_base_numel
 The base numel.
 
- Static Protected Member Functions inherited from UserTensorBase< Rot >
static std::string tensor_type ()
 A human-readable description of the tensor type.
 

Constructor & Destructor Documentation

◆ Orientation()

Orientation ( const OptionSet & options)

Member Function Documentation

◆ expected_options()

OptionSet expected_options ( )
static

◆ make()

Rot make ( ) const
overrideprotectedvirtual

Create the tensor given input options.

Implements UserTensorBase< Rot >.