mirror of https://github.com/phonopy/phonopy.git
65 lines
2.7 KiB
Python
65 lines
2.7 KiB
Python
import unittest
|
|
import os
|
|
import numpy as np
|
|
from phonopy import Phonopy
|
|
from phonopy.interface.vasp import read_vasp
|
|
from phonopy.file_IO import parse_FORCE_SETS, parse_BORN
|
|
|
|
data_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
class TestPhonopy(unittest.TestCase):
|
|
def setUp(self):
|
|
pass
|
|
|
|
def tearDown(self):
|
|
pass
|
|
|
|
def testPhonopy(self):
|
|
phonon = self._get_phonon()
|
|
self.assertTrue(phonon.version == phonon.get_version())
|
|
self.assertTrue(id(phonon.primitive) == id(phonon.get_primitive()))
|
|
self.assertTrue(id(phonon.unitcell) == id(phonon.get_unitcell()))
|
|
self.assertTrue(id(phonon.supercell) == id(phonon.get_supercell()))
|
|
self.assertTrue(id(phonon.symmetry) == id(phonon.get_symmetry()))
|
|
self.assertTrue(id(phonon.primitive_symmetry)
|
|
== id(phonon.get_primitive_symmetry()))
|
|
self.assertTrue(id(phonon.supercell_matrix)
|
|
== id(phonon.get_supercell_matrix()))
|
|
self.assertTrue(id(phonon.primitive_matrix)
|
|
== id(phonon.get_primitive_matrix()))
|
|
self.assertTrue(id(phonon.unit_conversion_factor)
|
|
== id(phonon.get_unit_conversion_factor()))
|
|
self.assertTrue(id(phonon.displacements)
|
|
== id(phonon.get_displacements()))
|
|
self.assertTrue(id(phonon.force_constants)
|
|
== id(phonon.get_force_constants()))
|
|
self.assertTrue(id(phonon.nac_params) == id(phonon.get_nac_params()))
|
|
self.assertTrue(id(phonon.supercells_with_displacements)
|
|
== id(phonon.get_supercells_with_displacements()))
|
|
self.assertTrue(id(phonon.dataset)
|
|
== id(phonon.get_displacement_dataset()))
|
|
phonon.run_mesh([11, 11, 11], with_eigenvectors=True)
|
|
phonon.get_mesh_dict()
|
|
|
|
def _get_phonon(self):
|
|
cell = read_vasp(os.path.join(data_dir, "POSCAR_NaCl"))
|
|
phonon = Phonopy(cell,
|
|
np.diag([2, 2, 2]),
|
|
primitive_matrix=[[0, 0.5, 0.5],
|
|
[0.5, 0, 0.5],
|
|
[0.5, 0.5, 0]])
|
|
filename = os.path.join(data_dir, "FORCE_SETS_NaCl")
|
|
force_sets = parse_FORCE_SETS(filename=filename)
|
|
phonon.set_displacement_dataset(force_sets)
|
|
phonon.produce_force_constants()
|
|
filename_born = os.path.join(data_dir, "BORN_NaCl")
|
|
nac_params = parse_BORN(phonon.get_primitive(), filename=filename_born)
|
|
phonon.set_nac_params(nac_params)
|
|
return phonon
|
|
|
|
|
|
if __name__ == '__main__':
|
|
suite = unittest.TestLoader().loadTestsFromTestCase(TestPhonopy)
|
|
unittest.TextTestRunner(verbosity=2).run(suite)
|