16 std::vector<double> disp;
17 for (
int i = 0; i <
m_size; i++) {
18 for (
int j = i + 1; j <
m_size; j++) {
41 return almost_equal(a, b, tol);
89 std::vector<xtal::Coordinate> coords;
90 for (
int i = 0; i <
m_size; ++i) {
92 coords.back().set_lattice(scel_lat,
CART);
94 std::vector<double> disp;
95 for (
int i = 0; i <
m_size; i++) {
96 for (
int j = i + 1; j <
m_size; j++) {
97 m_disp.push_back(coords[i].robust_min_dist(coords[j]));
118 return almost_equal(a, b, tol);
140 for (
int i = A.
displacement().size() - 1; i >= 0; i--) {
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.
size_type size() const
Number of elements in the cluster.
const PrimType & prim() const
xtal::Coordinate coordinate(size_type i) const
Return the coordinate corresponding to element(i)
const Lattice & lattice() const
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,...
Lattice make_superlattice(const Lattice &lat, const Eigen::Matrix< IntegralType, 3, 3, Options > &transf_mat)
Returns a super Lattice. Transformation matrix must be integer.
Eigen::Matrix3l transf_mat(const Lattice &prim_lat, const Lattice &super_lat)
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