8 struct MakeInvariantSubgroup {
10 MakeInvariantSubgroup(
double _tol) :
tol(_tol) {}
12 template<
typename SymOpIterator,
typename SymOpOutputIterator>
13 SymOpOutputIterator operator()(
17 SymOpOutputIterator result) {
18 return lat.find_invariant_subgroup(begin, end, result,
tol);
38 lat.canonical_form(super_g, tol), super_g.begin(), super_g.end(), MakeInvariantSubgroup(tol)) {
40 if(!super_g.
begin()->has_valid_master()) {
41 throw std::runtime_error(
"Error constructing LatticeEnumEquivalents: SymGroup has no MasterSymGroup");
SymGroup is a collection of symmetry operations that satisfy the group property The symmetry operatio...
LatticeEnumEquivalents(const Lattice &lat, const SymGroup &super_g, double tol)
Constructor.
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
static const std::string enumerator_name
Enumerate over all equivalents.
Basic std::vector like container (deprecated)