CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::SymRepBuilderInterface Class Referenceabstract

#include <SymRepBuilder.hh>

+ Inheritance diagram for CASM::SymRepBuilderInterface:

Detailed Description

Abstract base class that provides interface for converting cartesian isometry to specialized transformation matrix Given a symmetry operation as a 3x3 orthogonal matrix acting on Cartesian space, a 3x1 Cartesian translation, and a time-reversal flag (true indicates +t goes to -t and false indicates +t goes to +t), returns a particular NxN matrix transformation whose dimension and value depends on the underlying implementation.

Definition at line 21 of file SymRepBuilder.hh.

Public Member Functions

 SymRepBuilderInterface (std::string const &_name, bool _time_reversal_active)
 Interace class manages the name of the SymRepBuilder and whether it is affected by time-reversal (i.e., time_reversal_active() is true) More...
 
std::string const & name () const
 Returns name of SymRepBuilder type. More...
 
bool time_reversal_active () const
 Returns true if symmetry representation is affected by time-reversal. More...
 
virtual ~SymRepBuilderInterface ()
 Virtual destructor allows deletion of derived classes through pointer to interface. More...
 
virtual Eigen::MatrixXd symop_to_matrix (Eigen::Ref< const Eigen::Matrix3d > const &_matrix, Eigen::Ref< const Eigen::Vector3d > const &_tau, bool time_reversal, Index dim) const =0
 Given the 3x3 rotation/rotoreflection matrix, translation vector 'tau', and time_reversal operator of Cartesian SymOp, constructs a dim x dim matrix representation of the symop Derived implementations may require that dim have a specific value, or fall within a range of allowed values. More...
 
virtual Eigen::MatrixXcd symop_to_complex_matrix (Eigen::Ref< const Eigen::Matrix3d > const &_matrix, Eigen::Ref< const Eigen::Vector3d > const &_tau, bool time_reversal, Index dim) const
 Given the 3x3 rotation/rotoreflection matrix, translation vector 'tau', and time_reversal operator of Cartesian SymOp, constructs a dim x dim complexmatrix representation of the symop Derived implementations may require that dim have a specific value, or fall within a range of allowed values. More...
 
std::unique_ptr< SymRepBuilderInterfaceclone () const
 

Private Member Functions

virtual SymRepBuilderInterface_clone () const =0
 

Private Attributes

std::string m_name
 
bool m_time_reversal_active
 

Constructor & Destructor Documentation

◆ SymRepBuilderInterface()

CASM::SymRepBuilderInterface::SymRepBuilderInterface ( std::string const &  _name,
bool  _time_reversal_active 
)
inline

Interace class manages the name of the SymRepBuilder and whether it is affected by time-reversal (i.e., time_reversal_active() is true)

Definition at line 25 of file SymRepBuilder.hh.

◆ ~SymRepBuilderInterface()

virtual CASM::SymRepBuilderInterface::~SymRepBuilderInterface ( )
inlinevirtual

Virtual destructor allows deletion of derived classes through pointer to interface.

Definition at line 37 of file SymRepBuilder.hh.

Member Function Documentation

◆ _clone()

◆ clone()

std::unique_ptr<SymRepBuilderInterface> CASM::SymRepBuilderInterface::clone ( ) const
inline

Definition at line 61 of file SymRepBuilder.hh.

◆ name()

std::string const& CASM::SymRepBuilderInterface::name ( ) const
inline

Returns name of SymRepBuilder type.

Definition at line 29 of file SymRepBuilder.hh.

◆ symop_to_complex_matrix()

virtual Eigen::MatrixXcd CASM::SymRepBuilderInterface::symop_to_complex_matrix ( Eigen::Ref< const Eigen::Matrix3d > const &  _matrix,
Eigen::Ref< const Eigen::Vector3d > const &  _tau,
bool  time_reversal,
Index  dim 
) const
inlinevirtual

Given the 3x3 rotation/rotoreflection matrix, translation vector 'tau', and time_reversal operator of Cartesian SymOp, constructs a dim x dim complexmatrix representation of the symop Derived implementations may require that dim have a specific value, or fall within a range of allowed values.

Definition at line 53 of file SymRepBuilder.hh.

◆ symop_to_matrix()

virtual Eigen::MatrixXd CASM::SymRepBuilderInterface::symop_to_matrix ( Eigen::Ref< const Eigen::Matrix3d > const &  _matrix,
Eigen::Ref< const Eigen::Vector3d > const &  _tau,
bool  time_reversal,
Index  dim 
) const
pure virtual

Given the 3x3 rotation/rotoreflection matrix, translation vector 'tau', and time_reversal operator of Cartesian SymOp, constructs a dim x dim matrix representation of the symop Derived implementations may require that dim have a specific value, or fall within a range of allowed values.

Implemented in CASM::Rank2TensorSymRepBuilder, CASM::dOrbitalOccupationSymRepBuilder, CASM::TimeReversalSwapSymRepBuilder, CASM::TimeReversalSymRepBuilder, CASM::AngularMomentumSymRepBuilder, CASM::IdentitySymRepBuilder, CASM::KroneckerSymRepBuilder< Builder1, Builder2, Dim1, Dim2 >, CASM::KroneckerSymRepBuilder< TimeReversalSwapSymRepBuilder, dOrbitalOccupationSymRepBuilder, 2, 15 >, CASM::CartesianSymRepBuilder, and CASM::NullSymRepBuilder.

◆ time_reversal_active()

bool CASM::SymRepBuilderInterface::time_reversal_active ( ) const
inline

Returns true if symmetry representation is affected by time-reversal.

Definition at line 33 of file SymRepBuilder.hh.

Member Data Documentation

◆ m_name

std::string CASM::SymRepBuilderInterface::m_name
private

Definition at line 68 of file SymRepBuilder.hh.

◆ m_time_reversal_active

bool CASM::SymRepBuilderInterface::m_time_reversal_active
private

Definition at line 69 of file SymRepBuilder.hh.


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