CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::DoFIsEquivalent Class Reference

#include <DoFIsEquivalent.hh>

Detailed Description

Class for checking equivalence of two DoFSet objects, with respect to symmetry transformations.

DoFSets dofA and dofB are considered equivalent if

Definition at line 27 of file DoFIsEquivalent.hh.

Public Member Functions

 DoFIsEquivalent (DoFSet const &_dof, double tol=TOL)
 
bool operator() (DoFSet const &_other) const
 
bool operator() (xtal::SymOp const &_op) const
 returns true if copy_apply(_op,m_dof.basis()) = m_dof.basis()*U More...
 
bool operator() (xtal::SymOp const &_op, DoFSet const &_other) const
 returns true if copy_apply(_op,m_dof.basis()) = _other.basis()*U More...
 
Eigen::MatrixXd const & U () const
 

Private Member Functions

bool _label_equiv (DoFSet const &_other) const
 returns true if m_dof and _other are same type and same size More...
 
bool _vector_equiv (Eigen::Ref< const Eigen::MatrixXd > const &_before_basis, Eigen::Ref< const Eigen::MatrixXd > const &_after_basis) const
 

Private Attributes

DoFSet m_dof
 
double m_tol
 
Eigen::MatrixXd m_U
 

Constructor & Destructor Documentation

◆ DoFIsEquivalent()

CASM::DoFIsEquivalent::DoFIsEquivalent ( DoFSet const &  _dof,
double  tol = TOL 
)
inline

Definition at line 29 of file DoFIsEquivalent.hh.

Member Function Documentation

◆ _label_equiv()

bool CASM::DoFIsEquivalent::_label_equiv ( DoFSet const &  _other) const
private

returns true if m_dof and _other are same type and same size

Definition at line 33 of file DoFIsEquivalent.cc.

◆ _vector_equiv()

bool CASM::DoFIsEquivalent::_vector_equiv ( Eigen::Ref< const Eigen::MatrixXd > const &  _before_basis,
Eigen::Ref< const Eigen::MatrixXd > const &  _after_basis 
) const
private

returns true if the matrix equation _before_basis * U = _after_basis has a unique solution U stores solution in m_U

Definition at line 37 of file DoFIsEquivalent.cc.

◆ operator()() [1/3]

bool CASM::DoFIsEquivalent::operator() ( DoFSet const &  _other) const

returns true if m_dof and _other have matching labels, and m_dof.basis() = _other.basis()*U

Definition at line 9 of file DoFIsEquivalent.cc.

◆ operator()() [2/3]

bool CASM::DoFIsEquivalent::operator() ( xtal::SymOp const &  _op) const

returns true if copy_apply(_op,m_dof.basis()) = m_dof.basis()*U

Definition at line 13 of file DoFIsEquivalent.cc.

◆ operator()() [3/3]

bool CASM::DoFIsEquivalent::operator() ( xtal::SymOp const &  _op,
DoFSet const &  _other 
) const

returns true if copy_apply(_op,m_dof.basis()) = _other.basis()*U

Definition at line 22 of file DoFIsEquivalent.cc.

◆ U()

Eigen::MatrixXd const& CASM::DoFIsEquivalent::U ( ) const
inline

return transformation matrix U calculated during last successful comparison

Definition at line 44 of file DoFIsEquivalent.hh.

Member Data Documentation

◆ m_dof

DoFSet CASM::DoFIsEquivalent::m_dof
private

Definition at line 56 of file DoFIsEquivalent.hh.

◆ m_tol

double CASM::DoFIsEquivalent::m_tol
private

Definition at line 58 of file DoFIsEquivalent.hh.

◆ m_U

Eigen::MatrixXd CASM::DoFIsEquivalent::m_U
mutableprivate

Definition at line 60 of file DoFIsEquivalent.hh.


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