5 #include <unordered_set>
49 .colPivHouseholderQr()
93 .colPivHouseholderQr()
160 using TypeFunc = std::function<notstd::cloneable_ptr<AnisoValTraits>()>;
188 std::unordered_set<std::string> excluded_occupants = {});
282 void transform_basis(Eigen::Ref<const Eigen::MatrixXd>
const &trans_mat);
293 bool update_IDs(
const std::vector<Index> &before_IDs,
294 const std::vector<Index> &after_IDs);
Specifies traits of (possibly) anisotropic crystal properties.
std::string const & name() const
Const access of name.
void set_sequential_IDs()
std::vector< ContinuousDoF >::const_iterator const_iterator
std::vector< ContinuousDoF > m_components
ContinuousDoF components, one for each column in m_info->basis()
AnisoValTraits const & traits() const
Returns the AnisoValTraits object for the DoF type of this DoFSet.
static DoFSet make_default(AnisoValTraits const &_type)
void lock_IDs()
Locks IDs of components in this DoFSet so they can no longer be updated.
Index dim() const
Dimension of the DoFSet, equivalent to basis().cols()
std::function< notstd::cloneable_ptr< AnisoValTraits >()> TypeFunc
bool update_IDs(const std::vector< Index > &before_IDs, const std::vector< Index > &after_IDs)
SymGroupRepID const & symrep_ID() const
const_iterator cbegin() const
Const iterator to first ContinuousDoF component.
std::vector< ContinuousDoF > Container
bool is_excluded_occ(std::string const &_occ_name) const
Index size() const
Returns the number of components in this DoFSet.
ContinuousDoF const & operator[](Index i) const
void transform_basis(Eigen::Ref< const Eigen::MatrixXd > const &trans_mat)
Equivalent to m_basis=trans_mat*m_basis. Invalidates SymGroupRepID.
DoFSet(AnisoValTraits const &_type, std::vector< std::string > components, DoFSetInfo _info, std::unordered_set< std::string > excluded_occupants={})
const_iterator cend() const
Const iterator pointing one past last ContinuousDoF component.
Eigen::MatrixXd const & basis() const
bool identical(DoFSet const &rhs) const
Returns true if "rhs" has identical components and basis to this DoFSet.
std::unordered_set< std::string > m_excluded_occs
A list of site occupants for which the DoF does not apply.
DoFSetInfo const & info() const
const_iterator end() const
Iterator pointing one past last ContinuousDoF component.
std::string const & type_name() const
const_iterator begin() const
Iterator pointing to the first ContinuousDoF component.
Type-safe ID object for communicating and accessing Symmetry representation info.
IdentitySymRepBuilder Identity()
bool operator!=(DoFSet const &A, DoFSet const &B)
bool operator==(DoFSet const &A, DoFSet const &B)
INDEX_TYPE Index
For long integer indexing:
SymGroupRepID m_symrep_ID
Index dim() const
Dimension of the DoFSet, equivalent to basis().cols()
Eigen::MatrixXd const & inv_basis() const
SymGroupRepID const & symrep_ID() const
Returns SymGroupRepID of associated DoFSet.
DoFSetInfo(SymGroupRepID _id, Eigen::Ref< const Eigen::MatrixXd > const &_basis)
Eigen::MatrixXd set_basis(Eigen::Ref< const Eigen::MatrixXd > const &_basis)
Eigen::MatrixXd m_inv_basis
void set_symrep_ID(SymGroupRepID _id)
Sets SymGroupRepID.
Eigen::MatrixXd const & basis() const