CASM  1.1.0
A Clusters Approach to Statistical Mechanics
ClusterInvariants.hh
Go to the documentation of this file.
1 #ifndef CASM_ClusterInvariants
2 #define CASM_ClusterInvariants
3 
4 #include <iostream>
5 #include <vector>
6 
7 #include "casm/global/eigen.hh"
9 
10 namespace CASM {
11 
12 class IntegralCluster;
13 
19 /* -- ClusterInvariants Declarations ------------------------------------- */
20 
31  public:
33  explicit ClusterInvariants(IntegralCluster const &cluster);
34 
36  int size() const;
37 
40  std::vector<double> const &displacement() const;
41 
42  private:
44  int m_size;
45 
48  std::vector<double> m_disp;
49 };
50 
52 bool almost_equal(ClusterInvariants const &A, ClusterInvariants const &B,
53  double tol);
54 
56 bool compare(ClusterInvariants const &A, ClusterInvariants const &B,
57  double tol);
58 
70  public:
73  explicit WithinScelClusterInvariants(IntegralCluster const &cluster,
75 
77  int size() const;
78 
82  std::vector<double> const &displacement() const;
83 
84  private:
86  int m_size;
87 
90  std::vector<double> m_disp;
91 };
92 
95  WithinScelClusterInvariants const &B, double tol);
96 
99  WithinScelClusterInvariants const &B, double tol);
100 
101 } // namespace CASM
102 
103 #endif
Stores cluster invariants: number of sites and site distances.
int size() const
Number of elements in the cluster.
ClusterInvariants(IntegralCluster const &cluster)
Construct and calculate cluster invariants.
std::vector< double > const & displacement() const
const Access displacements between coordinates in the cluster, sorted in ascending order
int m_size
Number of UnitCellCoords in cluster.
std::vector< double > m_disp
Displacement between each pair of UnitCellCoords, sorted in ascending order.
Stores cluster invariants: number of sites and site distances (using robust_min_dist)
std::vector< double > m_disp
Displacement between each pair of UnitCellCoords, sorted in ascending order.
WithinScelClusterInvariants(IntegralCluster const &cluster, Eigen::Matrix3l const &transf_mat)
Construct and calculate cluster invariants, using robust_min_dist in the supercell lattice.
int m_size
Number of UnitCellCoords in cluster.
int size() const
Number of elements in the cluster.
std::vector< double > const & displacement() const
const Access displacements between coordinates in the cluster, sorted in ascending order,...
Base class for cloning.
#define CLONEABLE(T)
Eigen::Matrix3l transf_mat(const Lattice &prim_lat, const Lattice &super_lat)
Main CASM namespace.
Definition: APICommand.hh:8
bool almost_equal(ClusterInvariants const &A, ClusterInvariants const &B, double tol)
Check if ClusterInvariants are equal.
bool compare(ClusterInvariants const &A, ClusterInvariants const &B, double tol)
Compare ClusterInvariants.
Matrix< long int, 3, 3 > Matrix3l
Definition: eigen.hh:12