occ
Loading...
Searching...
No Matches
occ::core::SymOp Struct Reference

Structure/utility class for a point group symmetry operation. More...

#include <point_group.h>

Public Member Functions

 SymOp ()
 Default constructor - the identity/neutral Symop.
 
 SymOp (const Mat3 &rotation, const Vec3 &translation)
 Create a SymOp from a rotation matrix and a translation.
 
 SymOp (const Mat4 &transformation)
 Create a SymOp from a heterogeneous transformation matrix.
 
Mat3N apply (Mat3NConstRef coordinates) const
 Apply this symmetry operation to a block of coordinates.
 
const auto rotation () const
 Get the rotation matrix part of this SymOp.
 
const auto translation () const
 Get the translation vector part of this SymOp.
 

Static Public Member Functions

static SymOp from_rotation_vector (const Vec3 &vector, const Vec3 &origin=Vec3::Zero())
 Create a SymOp object from a rotation vector and optional origin.
 
static SymOp from_axis_angle (const Vec3 &vector, double angle, const Vec3 &origin=Vec3::Zero())
 Create a SymOp object from a rotation axis, angle and optional origin.
 
static SymOp reflection (const Vec3 &normal, const Vec3 &origin=Vec3::Zero())
 Create a SymOp object representing a reflection from a given normal vector.
 
static SymOp rotoreflection (const Vec3 &vector, double angle, const Vec3 &origin=Vec3::Zero())
 Create a SymOp object representing a combined rotation and reflection from a rotation axis, angle and optional origin.
 
static SymOp inversion ()
 The inversion symop i.e.
 
static SymOp identity ()
 The identity symop about the origin i.e.
 

Public Attributes

occ::Mat4 transformation
 The underlying data for the transform/symmetry operation.
 

Detailed Description

Structure/utility class for a point group symmetry operation.

Constructor & Destructor Documentation

◆ SymOp() [1/3]

occ::core::SymOp::SymOp ( )

Default constructor - the identity/neutral Symop.

◆ SymOp() [2/3]

occ::core::SymOp::SymOp ( const Mat3 rotation,
const Vec3 translation 
)

Create a SymOp from a rotation matrix and a translation.

Parameters
rotationa Mat3 representing a rotation matrix.
translationa Vec3 representing the translation (Angstroms)
Warning
the rotation matrix is not checked to be a valid rotation.

◆ SymOp() [3/3]

occ::core::SymOp::SymOp ( const Mat4 transformation)

Create a SymOp from a heterogeneous transformation matrix.

Parameters
transformationa Mat4 representing a transformation matrix
Warning
the transformation matrix is not checked to be a valid affine transformation.

Member Function Documentation

◆ apply()

Mat3N occ::core::SymOp::apply ( Mat3NConstRef  coordinates) const

Apply this symmetry operation to a block of coordinates.

Parameters
coordinatesan Eigen reference to a block of 3xN coordinates, assumed to be in Angstroms.
Returns
a new 3xN matrix of transformed coordinates

◆ from_axis_angle()

static SymOp occ::core::SymOp::from_axis_angle ( const Vec3 vector,
double  angle,
const Vec3 origin = Vec3::Zero() 
)
static

Create a SymOp object from a rotation axis, angle and optional origin.

Parameters
vectora rotation vector corresponding to a unit vector which corresponds to the axis of rotation
anglethe magnitude of the rotation in radians.
originthe position of the origin, in Angstroms. Default is the zero vector.
Returns
the newly constructed SymOp object

See also SymOp::from_rotation_vector.

◆ from_rotation_vector()

static SymOp occ::core::SymOp::from_rotation_vector ( const Vec3 vector,
const Vec3 origin = Vec3::Zero() 
)
static

Create a SymOp object from a rotation vector and optional origin.

Parameters
vectora rotation vector corresponding to a unit vector which corresponds to the axis of rotation, whose norm will be the magnitude of the rotation in radians.
originthe position of the origin, in Angstroms. Default is the zero vector.
Returns
the newly constructed SymOp object

See also SymOp::from_axis_angle.

◆ identity()

static SymOp occ::core::SymOp::identity ( )
static

The identity symop about the origin i.e.

I

Returns
the newly constructed SymOp object representing an identity operation.

◆ inversion()

static SymOp occ::core::SymOp::inversion ( )
static

The inversion symop i.e.

-I

Returns
the newly constructed SymOp object representing an inversion.

◆ reflection()

static SymOp occ::core::SymOp::reflection ( const Vec3 normal,
const Vec3 origin = Vec3::Zero() 
)
static

Create a SymOp object representing a reflection from a given normal vector.

Parameters
normala vector corresponding to the normal for the plane of reflection. Will be normalized/converted to a unit vector internally.
originthe position of the origin, in Angstroms. Default is the zero vector.
Returns
the newly constructed SymOp object

◆ rotation()

const auto occ::core::SymOp::rotation ( ) const
inline

Get the rotation matrix part of this SymOp.

Returns
the 3x3 block of the stored heterogeneous matrix corresponding to the rotation matrix.

◆ rotoreflection()

static SymOp occ::core::SymOp::rotoreflection ( const Vec3 vector,
double  angle,
const Vec3 origin = Vec3::Zero() 
)
static

Create a SymOp object representing a combined rotation and reflection from a rotation axis, angle and optional origin.

Parameters
vectora vector corresponding to the normal for the plane of reflection, and the axis of rotation. Will be normalized/converted to a unit vector internally.
anglethe magnitude of the rotation in radians.
originthe position of the origin, in Angstroms. Default is the zero vector.
Returns
the newly constructed SymOp object

◆ translation()

const auto occ::core::SymOp::translation ( ) const
inline

Get the translation vector part of this SymOp.

Returns
the 3x1 block of the stored heterogeneous matrix corresponding to the translation vector.

Member Data Documentation

◆ transformation

occ::Mat4 occ::core::SymOp::transformation

The underlying data for the transform/symmetry operation.


The documentation for this struct was generated from the following file: