-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Loading status checks…
Merge pull request #219 from pyiron/equivalent-atoms
Fix equivalent atoms and add tests
Showing
2 changed files
with
34 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import unittest | ||
from ase.build import bulk | ||
import numpy as np | ||
from structuretoolkit.analyse.phonopy import get_equivalent_atoms | ||
from structuretoolkit.common.phonopy import atoms_to_phonopy, phonopy_to_atoms | ||
|
||
|
||
try: | ||
import spglib | ||
|
||
spglib_not_available = False | ||
except ImportError: | ||
spglib_not_available = True | ||
|
||
|
||
@unittest.skipIf( | ||
spglib_not_available, "spglib is not installed, so the spglib tests are skipped." | ||
) | ||
class TestPhonopyAtoms(unittest.TestCase): | ||
def test_get_equivalent_atoms(self): | ||
equivalent_atoms = get_equivalent_atoms( | ||
structure=bulk("Al", cubic=True), symprec=1e-5, angle_tolerance=-1.0 | ||
) | ||
self.assertTrue(all(equivalent_atoms == [0, 0, 0, 0])) | ||
|
||
def test_convert(self): | ||
structure = bulk("Al", cubic=True) | ||
structure_converted = phonopy_to_atoms(atoms_to_phonopy(structure)) | ||
self.assertTrue(np.all(structure.symbols == structure_converted.symbols)) | ||
self.assertTrue(np.all(structure.positions == structure_converted.positions)) | ||
self.assertTrue(np.all(structure.cell == structure_converted.cell)) |