CASM  1.1.0
A Clusters Approach to Statistical Mechanics
VectorOrbits.hh
Go to the documentation of this file.
1 #ifndef CASM_VectorOrbits
2 #define CASM_VectorOrbits
3 
4 #include <functional>
5 #include <iostream>
6 #include <utility>
7 #include <vector>
8 
10 
11 namespace CASM {
12 
13 /* -- Vector Orbit generating function declarations
14  * ------------------------------------- */
15 
17 template <typename GeneratorIterator, typename SymCompareType,
18  typename OrbitOutputIterator>
19 OrbitOutputIterator make_orbits(GeneratorIterator gen_begin,
20  GeneratorIterator gen_end,
21  const SymGroup &generating_group,
22  const SymCompareType &sym_compare,
23  OrbitOutputIterator result,
24  std::ostream &status) {
25  using OrbitType = OrbitOutpuIterator::container_type::value_type;
26  for (; get_begin != gen_end; ++gen_begin) {
27  *(result++) = OrbitType(*gen_begin, generating_group, sym_compare);
28  }
29  return result;
30 }
31 
32 } // namespace CASM
33 
34 #endif
SymGroup is a collection of symmetry operations that satisfy the group property The symmetry operatio...
Definition: SymGroup.hh:42
Main CASM namespace.
Definition: APICommand.hh:8
OrbitOutputIterator make_orbits(OrbitBranchSpecsIterator begin, OrbitBranchSpecsIterator end, const std::vector< IntegralClusterOrbitGenerator > &custom_generators, OrbitOutputIterator result, std::ostream &status)
Generate orbits of IntegralCluster using OrbitBranchSpecs.