CASM  1.1.0
A Clusters Approach to Statistical Mechanics
ConfigEnumInput.hh
Go to the documentation of this file.
1 #ifndef CASM_ConfigEnumInput
2 #define CASM_ConfigEnumInput
3 
4 #include <set>
5 #include <string>
6 #include <vector>
7 
10 
11 namespace CASM {
12 
24  public:
26  ConfigEnumInput(Configuration const &_configuration);
27 
29  ConfigEnumInput(Supercell const &_supercell);
30 
32  ConfigEnumInput(Configuration const &_configuration,
33  std::set<Index> const &_site_index_selection);
34 
37  ConfigEnumInput(Supercell const &_supercell,
38  std::set<Index> const &_site_index_selection);
39 
40  Configuration const &configuration() const;
41 
42  // /// (deprecated) Prefer using configuration()
43  // Configuration const &config() const;
44  //
45  // /// (deprecated) Prefer using configuration().supercell()
46  // Supercell const &supercell() const;
47  //
48  // /// (deprecated) Prefer using configuration().configdof()
49  // ConfigDoF const &configdof() const;
50 
53  std::set<Index> const &sites() const;
54 
56  void clear_sites();
57 
58  void select_all_sites();
59 
60  void select_site(Index site_index);
61 
62  void select_site(UnitCellCoord const &site_uccord);
63 
65  template <typename SiteContainer>
66  void select_sites(SiteContainer const &_container);
67 
69  void select_sublattice(Index sublattice_index);
70 
72  template <typename SublatticeIndexContainer>
73  void select_sublattices(SublatticeIndexContainer const &_container);
74 
75  private:
76  std::set<Index> m_site_index_selection;
78 };
79 
83 std::vector<PermuteIterator> make_invariant_subgroup(
84  ConfigEnumInput const &config_enum_input);
85 
89 template <typename PermuteIteratorIt>
90 std::vector<PermuteIterator> make_invariant_subgroup(
91  ConfigEnumInput const &config_enum_input, PermuteIteratorIt group_begin,
92  PermuteIteratorIt group_end);
93 
95 } // namespace CASM
96 
97 #endif
std::set< Index > m_site_index_selection
Configuration m_configuration
Represents a supercell of the primitive parent crystal structure.
Definition: Supercell.hh:51
Unit Cell Coordinates.
ConfigEnumInput(Configuration const &_configuration)
Construct with a Configuration and all sites selected.
void select_site(Index site_index)
std::set< Index > const & sites() const
Configuration const & configuration() const
void select_sublattices(SublatticeIndexContainer const &_container)
Select all sites on multiples sublattices.
void clear_sites()
Clear site selection. After condition is no sites are selected.
std::vector< PermuteIterator > make_invariant_subgroup(ConfigEnumInput const &config_enum_input)
void select_sublattice(Index sublattice_index)
Select all sites on a sublattice.
void select_sites(SiteContainer const &_container)
Select sites by "site_index" or "site_uccoord".
Main CASM namespace.
Definition: APICommand.hh:8
INDEX_TYPE Index
For long integer indexing:
Definition: definitions.hh:39