CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
Clex.hh
Go to the documentation of this file.
1 #ifndef CASM_Clex
2 #define CASM_Clex
3 #include <cstddef>
4 
8 
9 namespace CASM {
10 
11  class PrimClex;
12  class ECIContainer;
13  template<typename ClustType> class GenericOrbitree;
14  class SiteCluster;
16 
23  class Clex {
25 
26  public:
27 
28  Clex() {}
29 
30  Clex(const PrimClex &_primclex) :
31  m_primclex(&_primclex), m_orbitree(nullptr), m_eci(nullptr) {}
32 
33  Clex(const PrimClex &_primclex, const ClexDescription &_desc) :
34  m_primclex(&_primclex), m_desc(_desc), m_orbitree(nullptr), m_eci(nullptr) {}
35 
36 
37  const PrimClex &primclex() const;
38 
39  const ClexDescription &desc() const;
40 
41  const SiteOrbitree &orbitree() const;
42 
43  Clexulator &clexulator(Log &status_log = null_log()) const;
44 
45  const ECIContainer &eci() const;
46 
47 
48  private:
49 
50 
53 
56 
58  mutable const SiteOrbitree *m_orbitree;
59 
63 
65  mutable const ECIContainer *m_eci;
66 
67  };
68 
70  bool operator<(const Clex &A, const Clex &B);
71 
73 }
74 
75 #endif
Clex(const PrimClex &_primclex, const ClexDescription &_desc)
Definition: Clex.hh:33
Specifies a particular cluster expansion.
const SiteOrbitree * m_orbitree
Pointer to SiteOrbitree held by PrimClex.
Definition: Clex.hh:58
const PrimClex & primclex() const
Definition: Clex.cc:8
Clexulator & clexulator(Log &status_log=null_log()) const
Definition: Clex.cc:24
ClexDescription m_desc
Cluster expansion description: name, property, calctype, ref, bset, eci.
Definition: Clex.hh:55
bool operator<(const ClexDescription &A, const ClexDescription &B)
Compare using name strings: A.name < B.name.
const SiteOrbitree & orbitree() const
Definition: Clex.cc:16
const ClexDescription & desc() const
Definition: Clex.cc:12
Main CASM namespace.
Definition: complete.cpp:8
Log & null_log()
Definition: Log.hh:211
const ECIContainer * m_eci
Pointer to ECIContainer held by PrimClex.
Definition: Clex.hh:65
Clexulator m_clexulator
Definition: Clex.hh:62
Clex()
Definition: Clex.hh:28
GenericOrbitree< SiteCluster > SiteOrbitree
Definition: Clex.hh:14
Evaluates correlations.
Definition: Clexulator.hh:240
Clex(const PrimClex &_primclex)
Definition: Clex.hh:30
PrimClex is the top-level data structure for a CASM project.
Definition: PrimClex.hh:52
const PrimClex * m_primclex
Pointer to PrimClex.
Definition: Clex.hh:52
const ECIContainer & eci() const
Definition: Clex.cc:32
Definition: Log.hh:9
Data structure used for cluster expansions.
Definition: Clex.hh:24
A sparse container of ECI values and their corresponding orbit indices.
Definition: ECIContainer.hh:12