pele.mindist.ExactMatchCluster#

class pele.mindist.ExactMatchCluster(tol=0.01, accuracy=0.01, transform=<pele.mindist._minpermdist_policies.TransformAtomicCluster object>, measure=<pele.mindist._minpermdist_policies.MeasureAtomicCluster object>)[source]#

Deterministic check if 2 clusters are a perfect match

Determines quickly if 2 clusters are a perfect match. It uses check_standard_alignment_cluster to get possible orientations.

Parameters:
accuracy: float, optional

maximum deviation of atoms to still consider cluster as a match

check_inversion: boolean, optional

check for inversion symmetry, default is True

permlist: iteratable, optional

list of allowed permutations. Default is None which means all particles can be permuted

align_com: boolean, optional

Flag if com should be removed before comparison

Examples

>>> x1 = np.random.random(3*natoms)
>>> x2 = x1 + 1e-4*np.random.random(x1.shape)
>>> matches = ExactClusterMatch(accuracy=1e-3)
>>> if match(x1, x2):
>>>     print "the two structures are identical

Methods

__call__(coords1, coords2[, check_inversion])

return True if the structures are an exact mach, False otherwise

apply_transformation(x, tform)

check_match(x1, x2, rot, invert)

Give a rotation and inversion, make a more detailed comparison if the 2 structures match

find_transformation(coords1, coords2[, ...])

Return None if the two structures are different, else return the transformations that brings them into alignment

standard_alignments(coords1, coords2)

return an iterator over the standard alignments

Attributes