CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
ConfigEnumRandomOccupations.hh
Go to the documentation of this file.
1 #ifndef CASM_ConfigEnumRandomOccupations
2 #define CASM_ConfigEnumRandomOccupations
3 
8 
9 extern "C" {
11 }
12 
13 class MTRand;
14 
15 namespace CASM {
16 
24  class ConfigEnumRandomOccupations : public InputEnumeratorBase<Configuration> {
27 
28  // -- Required members -------------------
29 
30  public:
31 
34  Supercell &_scel,
35  Index _n_config,
36  MTRand &_mtrand);
37 
38  std::string name() const override {
39  return enumerator_name;
40  }
41 
42  static const std::string enumerator_name;
43  static const std::string interface_help;
44  static int run(PrimClex &primclex, const jsonParser &kwargs, const Completer::EnumOption &enum_opt);
45 
46  private:
47 
48 
50  void increment() override;
51 
52  // -- Unique -------------------
53 
54  void randomize();
55 
57  MTRand *m_mtrand;
60  };
61 
63 }
64 
65 #endif
PrimClex * primclex
Definition: settings.cc:101
notstd::cloneable_ptr< Configuration > m_current
ConfigEnumRandomOccupations(Supercell &_scel, Index _n_config, MTRand &_mtrand)
Construct with a Supercell, using all permutations.
Base class for generic use of enumerators that may be accessed through the API.
Definition: Enumerator.hh:418
Main CASM namespace.
Definition: complete.cpp:8
static int run(PrimClex &primclex, const jsonParser &kwargs, const Completer::EnumOption &enum_opt)
CASM::EnumInterfaceBase * make_ConfigEnumRandomOccupations_interface()
EigenIndex Index
For long integer indexing:
std::string name() const override
Derived enumerators must implement name, via ENUM_MEMBERS.
PrimClex is the top-level data structure for a CASM project.
Definition: PrimClex.hh:52
void increment() override
Implements increment.