From eabec312c9bcbc1db8d64f4a0ca9721685d547b4 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sat, 21 Dec 2019 01:02:16 -0500 Subject: [PATCH 1/9] support nopbc --- dpdata/deepmd/comp.py | 5 ++++- dpdata/deepmd/raw.py | 5 ++++- dpdata/gaussian/log.py | 1 + dpdata/system.py | 9 +++++++++ tests/comp_sys.py | 3 +++ tests/test_gaussian_log.py | 3 +++ 6 files changed, 24 insertions(+), 2 deletions(-) diff --git a/dpdata/deepmd/comp.py b/dpdata/deepmd/comp.py index 326e7087e..36a65fca1 100644 --- a/dpdata/deepmd/comp.py +++ b/dpdata/deepmd/comp.py @@ -48,6 +48,8 @@ def to_system_data(folder, data['forces'] = np.concatenate(all_forces, axis = 0) if len(all_virs) > 0: data['virials'] = np.concatenate(all_virs, axis = 0) + if os.path.isfile(os.path.join(folder, "nopbc")): + data['nopbc'] = True return data @@ -101,5 +103,6 @@ def dump(folder, np.save(os.path.join(set_folder, 'virial'), virials[set_stt:set_end]) if 'atom_pref' in data: np.save(os.path.join(set_folder, "atom_pref"), atom_pref[set_stt:set_end]) - + if data.get("nopbc", False): + os.mknod(os.path.join(folder, "nopbc")) diff --git a/dpdata/deepmd/raw.py b/dpdata/deepmd/raw.py index 500c4bad9..b9caf3a17 100644 --- a/dpdata/deepmd/raw.py +++ b/dpdata/deepmd/raw.py @@ -49,6 +49,8 @@ def to_system_data(folder, type_map = None, labels = True) : if os.path.exists(os.path.join(folder, 'virial.raw')) : data['virials'] = np.loadtxt(os.path.join(folder, 'virial.raw')) data['virials'] = np.reshape(data['virials'], [nframes, 3, 3]) + if os.path.isfile(os.path.join(folder, "nopbc")): + data['nopbc'] = True return data else : raise RuntimeError('not dir ' + folder) @@ -67,5 +69,6 @@ def dump (folder, data) : np.savetxt(os.path.join(folder, 'force.raw'), np.reshape(data['forces'], [nframes, -1])) if 'virials' in data : np.savetxt(os.path.join(folder, 'virial.raw'), np.reshape(data['virials'], [nframes, 9])) - + if data.get("nopbc", False): + os.mknod(os.path.join(folder, "nopbc")) diff --git a/dpdata/gaussian/log.py b/dpdata/gaussian/log.py index 8d6c96a4e..ff28e09e3 100644 --- a/dpdata/gaussian/log.py +++ b/dpdata/gaussian/log.py @@ -69,4 +69,5 @@ def to_system_data(file_name, md=False): data['coords'] = np.array(coords_t) data['orig'] = np.array([0, 0, 0]) data['cells'] = np.array([[[100., 0., 0.], [0., 100., 0.], [0., 0., 100.]] for _ in energy_t]) + data['nopbc'] = True return data diff --git a/dpdata/system.py b/dpdata/system.py index c74f1c882..fce5de687 100644 --- a/dpdata/system.py +++ b/dpdata/system.py @@ -319,6 +319,9 @@ def append(self, system) : assert(all(eq)) for ii in ['coords', 'cells'] : self.data[ii] = np.concatenate((self.data[ii], system[ii]), axis = 0) + if self.nopbc and not system.nopbc: + # appended system uses PBC, cancel nopbc + self.data['nopbc'] = False return True def sort_atom_names(self, type_map=None): @@ -726,6 +729,12 @@ def perturb(self, perturbed_system.append(tmp_system) return perturbed_system + @property + def nopbc(self): + if self.data.get("nopbc", False): + return True + return False + def get_cell_perturb_matrix(cell_pert_fraction): if cell_pert_fraction<0: raise RuntimeError('cell_pert_fraction can not be negative') diff --git a/tests/comp_sys.py b/tests/comp_sys.py index c53e14a51..a386f8899 100644 --- a/tests/comp_sys.py +++ b/tests/comp_sys.py @@ -58,6 +58,9 @@ def test_coord(self): places = self.places, msg = 'coord[%d][%d][%d] failed' % (ff,ii,jj)) + def test_nopbc(self): + self.assertEqual(self.system_1.nopbc, self.system_2.nopbc) + class CompLabeledSys (CompSys) : def test_energy(self) : diff --git a/tests/test_gaussian_log.py b/tests/test_gaussian_log.py index df576fb40..7eba6fac0 100644 --- a/tests/test_gaussian_log.py +++ b/tests/test_gaussian_log.py @@ -18,6 +18,9 @@ def test_atom_types(self) : for ii in range(len(self.atom_types)) : self.assertEqual(self.system.data['atom_types'][ii], self.atom_types[ii]) + def test_nopbc(self): + self.assertEqual(self.nopbc, True) + class TestGaussianLoadLog(unittest.TestCase, TestGaussianLog): def setUp (self) : self.system = dpdata.LabeledSystem('gaussian/methane.gaussianlog', From 6486878366fb9181115d5965169db3ae254b51c0 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sat, 21 Dec 2019 01:17:57 -0500 Subject: [PATCH 2/9] Update test_gaussian_log.py --- tests/test_gaussian_log.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_gaussian_log.py b/tests/test_gaussian_log.py index 7eba6fac0..3e9619cee 100644 --- a/tests/test_gaussian_log.py +++ b/tests/test_gaussian_log.py @@ -19,7 +19,7 @@ def test_atom_types(self) : self.assertEqual(self.system.data['atom_types'][ii], self.atom_types[ii]) def test_nopbc(self): - self.assertEqual(self.nopbc, True) + self.assertEqual(self.system.nopbc, True) class TestGaussianLoadLog(unittest.TestCase, TestGaussianLog): def setUp (self) : From 3fba18fef8c6df634c99bab28d5df195f3951a86 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sat, 21 Dec 2019 01:21:43 -0500 Subject: [PATCH 3/9] Update comp.py --- dpdata/deepmd/comp.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dpdata/deepmd/comp.py b/dpdata/deepmd/comp.py index 36a65fca1..f38ca72af 100644 --- a/dpdata/deepmd/comp.py +++ b/dpdata/deepmd/comp.py @@ -103,6 +103,10 @@ def dump(folder, np.save(os.path.join(set_folder, 'virial'), virials[set_stt:set_end]) if 'atom_pref' in data: np.save(os.path.join(set_folder, "atom_pref"), atom_pref[set_stt:set_end]) + try: + os.remove(os.path.join(folder, "nopbc")) + except: + pass if data.get("nopbc", False): os.mknod(os.path.join(folder, "nopbc")) From c3451a204acdbc10acb52c05c37fc556ad0bae97 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sat, 21 Dec 2019 01:22:19 -0500 Subject: [PATCH 4/9] Update comp.py --- dpdata/deepmd/comp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dpdata/deepmd/comp.py b/dpdata/deepmd/comp.py index f38ca72af..5f52c1a0f 100644 --- a/dpdata/deepmd/comp.py +++ b/dpdata/deepmd/comp.py @@ -105,7 +105,7 @@ def dump(folder, np.save(os.path.join(set_folder, "atom_pref"), atom_pref[set_stt:set_end]) try: os.remove(os.path.join(folder, "nopbc")) - except: + except OSError: pass if data.get("nopbc", False): os.mknod(os.path.join(folder, "nopbc")) From 88bff6fc74033875c4f4450a35fcc9cf075ac05e Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sat, 21 Dec 2019 01:23:01 -0500 Subject: [PATCH 5/9] Update raw.py --- dpdata/deepmd/raw.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dpdata/deepmd/raw.py b/dpdata/deepmd/raw.py index b9caf3a17..039b3b787 100644 --- a/dpdata/deepmd/raw.py +++ b/dpdata/deepmd/raw.py @@ -69,6 +69,10 @@ def dump (folder, data) : np.savetxt(os.path.join(folder, 'force.raw'), np.reshape(data['forces'], [nframes, -1])) if 'virials' in data : np.savetxt(os.path.join(folder, 'virial.raw'), np.reshape(data['virials'], [nframes, 9])) + try: + os.remove(os.path.join(folder, "nopbc")) + except OSError: + pass if data.get("nopbc", False): os.mknod(os.path.join(folder, "nopbc")) From 809aa1da10858f9cc8a95621c8f8b9847085355a Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sat, 21 Dec 2019 01:31:46 -0500 Subject: [PATCH 6/9] Update system.py --- dpdata/system.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dpdata/system.py b/dpdata/system.py index fce5de687..3db5e1531 100644 --- a/dpdata/system.py +++ b/dpdata/system.py @@ -284,6 +284,7 @@ def sub_system(self, f_idx) : tmp.data[ii] = self.data[ii] tmp.data['cells'] = self.data['cells'][f_idx].reshape(-1, 3, 3) tmp.data['coords'] = self.data['coords'][f_idx].reshape(-1, self.data['coords'].shape[1], 3) + tmp.data['nopbc'] = self.nopbc return tmp @@ -1027,6 +1028,7 @@ def from_gaussian_log(self, file_name, md=False): self.data = dpdata.gaussian.log.to_system_data(file_name, md=md) except AssertionError: self.data['energies'], self.data['forces']= [], [] + self.data['nopbc'] = True def from_cp2k_output(self, file_name) : From c3017e582f46c9d9034b060b972d8489dff06875 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sat, 21 Dec 2019 01:35:07 -0500 Subject: [PATCH 7/9] Update system.py --- dpdata/system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dpdata/system.py b/dpdata/system.py index 3db5e1531..a69628e35 100644 --- a/dpdata/system.py +++ b/dpdata/system.py @@ -1256,7 +1256,7 @@ def to_deepmd_npy(self, folder, set_size = 5000, prec=np.float32) : def check_System(data): keys={'atom_names','atom_numbs','cells','coords','orig','atom_types'} assert( isinstance(data,dict) ) - assert( set(data.keys())==keys ) + assert( keys.issubset(set(data.keys())) ) if len(data['coords']) > 0 : assert( len(data['coords'][0])==len(data['atom_types'])==sum(data['atom_numbs']) ) else : From b5fbee043aff7e13ee8cbc4790fb431d576b22d0 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Mon, 30 Dec 2019 00:00:24 -0500 Subject: [PATCH 8/9] test nopdb for other formats --- tests/comp_sys.py | 10 +++++++++- tests/test_deepmd_comp.py | 8 ++++---- tests/test_deepmd_raw.py | 10 +++++----- tests/test_gaussian_log.py | 1 - tests/test_json.py | 6 +++--- tests/test_lammps_dump_skipload.py | 4 ++-- tests/test_multisystems.py | 9 +++++---- tests/test_perturb.py | 8 ++++---- tests/test_qe_cp_traj_skipload.py | 5 +++-- tests/test_quip_gap_xyz.py | 14 +++++++------- tests/test_replicate.py | 6 +++--- tests/test_system_append.py | 5 +++-- tests/test_to_ase.py | 4 ++-- tests/test_to_list.py | 4 ++-- tests/test_to_pymatgen.py | 4 ++-- tests/test_vasp_outcar.py | 8 ++++---- tests/test_vasp_poscar_to_system.py | 4 ++-- tests/test_vasp_xml.py | 7 ++++--- 18 files changed, 64 insertions(+), 53 deletions(-) diff --git a/tests/comp_sys.py b/tests/comp_sys.py index a386f8899..8148e985a 100644 --- a/tests/comp_sys.py +++ b/tests/comp_sys.py @@ -100,4 +100,12 @@ def test_virial(self) : places = self.v_places, msg = 'virials[%d][%d][%d] failed' % (ff,ii,jj)) - +class IsPBC: + def test_is_pbc(self): + self.assertFalse(self.system_1.nopbc) + self.assertFalse(self.system_2.nopbc) + +class IsNoPBC: + def test_is_nopbc(self): + self.assertTrue(self.system_1.nopbc) + self.assertTrue(self.system_2.nopbc) diff --git a/tests/test_deepmd_comp.py b/tests/test_deepmd_comp.py index 0536d3248..840712af4 100644 --- a/tests/test_deepmd_comp.py +++ b/tests/test_deepmd_comp.py @@ -2,9 +2,9 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompLabeledSys, CompSys +from comp_sys import CompLabeledSys, CompSys, IsPBC -class TestDeepmdLoadDumpComp(unittest.TestCase, CompLabeledSys): +class TestDeepmdLoadDumpComp(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.system_1 = dpdata.LabeledSystem('poscars/OUTCAR.h2o.md', fmt = 'vasp/outcar') @@ -25,7 +25,7 @@ def tearDown(self) : shutil.rmtree('tmp.deepmd.npy') -class TestDeepmdCompNoLabels(unittest.TestCase, CompSys) : +class TestDeepmdCompNoLabels(unittest.TestCase, CompSys, IsPBC) : def setUp (self) : self.system_1 = dpdata.System('poscars/POSCAR.h2o.md', fmt = 'vasp/poscar') @@ -45,7 +45,7 @@ def tearDown(self) : shutil.rmtree('tmp.deepmd.npy') -class TestDeepmdCompNoLabels(unittest.TestCase, CompSys) : +class TestDeepmdCompNoLabels(unittest.TestCase, CompSys, IsPBC) : def setUp(self) : self.dir_name = 'tmp.deepmd.npy.nol' natoms = 3 diff --git a/tests/test_deepmd_raw.py b/tests/test_deepmd_raw.py index 7778371e3..241da7167 100644 --- a/tests/test_deepmd_raw.py +++ b/tests/test_deepmd_raw.py @@ -2,9 +2,9 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompLabeledSys, CompSys +from comp_sys import CompLabeledSys, CompSys, IsPBC -class TestDeepmdLoadRaw(unittest.TestCase, CompLabeledSys): +class TestDeepmdLoadRaw(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.system_1 = dpdata.LabeledSystem('poscars/OUTCAR.h2o.md', fmt = 'vasp/outcar') @@ -17,7 +17,7 @@ def setUp (self) : self.v_places = 6 -class TestDeepmdDumpRaw(unittest.TestCase, CompLabeledSys): +class TestDeepmdDumpRaw(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.system_1 = dpdata.LabeledSystem('poscars/OUTCAR.h2o.md', fmt = 'vasp/outcar') @@ -131,7 +131,7 @@ def test_npy_type_map_enforce (self) : -class TestDeepmdRawNoLabels(unittest.TestCase, CompSys) : +class TestDeepmdRawNoLabels(unittest.TestCase, CompSys, IsPBC) : def setUp (self) : self.system_1 = dpdata.System('poscars/POSCAR.h2o.md', fmt = 'vasp/poscar') @@ -149,7 +149,7 @@ def tearDown(self) : shutil.rmtree('tmp.deepmd') -class TestDeepmdCompNoLabels(unittest.TestCase, CompSys) : +class TestDeepmdCompNoLabels(unittest.TestCase, CompSys, IsPBC) : def setUp(self) : self.dir_name = 'tmp.deepmd.nol' natoms = 3 diff --git a/tests/test_gaussian_log.py b/tests/test_gaussian_log.py index 3e9619cee..039c1d6c8 100644 --- a/tests/test_gaussian_log.py +++ b/tests/test_gaussian_log.py @@ -2,7 +2,6 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompLabeledSys class TestGaussianLog : def test_atom_names(self) : diff --git a/tests/test_json.py b/tests/test_json.py index 15f7e0117..0b5dc1847 100644 --- a/tests/test_json.py +++ b/tests/test_json.py @@ -2,9 +2,9 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompLabeledSys +from comp_sys import CompLabeledSys, IsNoPBC -class TestJsonLoad(unittest.TestCase, CompLabeledSys): +class TestJsonLoad(unittest.TestCase, CompLabeledSys, IsNoPBC): def setUp (self) : self.system_1 = dpdata.LabeledSystem('poscars/OUTCAR.h2o.md', fmt = 'vasp/outcar') @@ -14,7 +14,7 @@ def setUp (self) : self.f_places = 6 self.v_places = 4 -class TestAsDict(unittest.TestCase, CompLabeledSys): +class TestAsDict(unittest.TestCase, CompLabeledSys, IsNoPBC): def setUp (self) : self.system_1 = dpdata.LabeledSystem('poscars/OUTCAR.h2o.md', fmt = 'vasp/outcar') diff --git a/tests/test_lammps_dump_skipload.py b/tests/test_lammps_dump_skipload.py index 9ec7ade62..77f8fe6ab 100644 --- a/tests/test_lammps_dump_skipload.py +++ b/tests/test_lammps_dump_skipload.py @@ -2,9 +2,9 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompSys +from comp_sys import CompSys, IsNoPBC -class TestLmpDumpSkip(unittest.TestCase, CompSys): +class TestLmpDumpSkip(unittest.TestCase, CompSys, IsNoPBC): def setUp(self): self.system_1 = dpdata.System(os.path.join('poscars', 'conf.5.dump'), diff --git a/tests/test_multisystems.py b/tests/test_multisystems.py index 2d8606626..a87cc167c 100644 --- a/tests/test_multisystems.py +++ b/tests/test_multisystems.py @@ -4,6 +4,7 @@ from context import dpdata from comp_sys import CompSys from comp_sys import CompLabeledSys +from comp_sys import IsNoPBC from itertools import permutations class MultiSystems: @@ -17,7 +18,7 @@ def test_systems_size(self): def test_atom_names(self): self.assertEqual(self.atom_names, self.systems.atom_names) -class TestMultiSystems(unittest.TestCase, CompLabeledSys, MultiSystems): +class TestMultiSystems(unittest.TestCase, CompLabeledSys, MultiSystems, IsNoPBC): def setUp(self): self.places = 6 self.e_places = 6 @@ -39,7 +40,7 @@ def setUp(self): self.atom_names = ['C', 'H'] -class TestMultiSystemsAdd(unittest.TestCase, CompLabeledSys, MultiSystems): +class TestMultiSystemsAdd(unittest.TestCase, CompLabeledSys, MultiSystems, IsNoPBC): def setUp(self): self.places = 6 self.e_places = 6 @@ -76,7 +77,7 @@ def setUp(self): self.system_sizes = {'C1H4O0':1, 'C0H0O2':1} self.atom_names = ['C', 'H', 'O'] -class TestMultiDeepmdDumpRaw(unittest.TestCase, CompLabeledSys): +class TestMultiDeepmdDumpRaw(unittest.TestCase, CompLabeledSys, IsNoPBC): def setUp (self) : self.places = 6 self.e_places = 6 @@ -94,7 +95,7 @@ def setUp (self) : self.system_1 = dpdata.LabeledSystem(os.path.join(path, 'C1H3'), fmt='deepmd/raw', type_map = ['C', 'H']) self.system_2 = system_3 -class TestMultiDeepmdDumpComp(unittest.TestCase, CompLabeledSys): +class TestMultiDeepmdDumpComp(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.places = 6 self.e_places = 4 diff --git a/tests/test_perturb.py b/tests/test_perturb.py index e34626aab..fe63882f0 100644 --- a/tests/test_perturb.py +++ b/tests/test_perturb.py @@ -2,7 +2,7 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompSys +from comp_sys import CompSys, IsPBC from unittest.mock import Mock from unittest.mock import patch, MagicMock @@ -103,7 +103,7 @@ def get_rand_generator(): yield np.asarray([0.01525907, 0.68387374, 0.39768541, 0.55596047, 0.26557088, 0.60883073]) # %% -class TestPerturbNormal(unittest.TestCase, CompSys): +class TestPerturbNormal(unittest.TestCase, CompSys, IsPBC): @patch('numpy.random') def setUp (self, random_mock): random_mock.rand = NormalGenerator().rand @@ -113,7 +113,7 @@ def setUp (self, random_mock): self.system_2 = dpdata.System('poscars/POSCAR.SiC.normal',fmt='vasp/poscar') self.places = 6 -class TestPerturbUniform(unittest.TestCase, CompSys): +class TestPerturbUniform(unittest.TestCase, CompSys, IsPBC): @patch('numpy.random') def setUp (self, random_mock) : random_mock.rand = UniformGenerator().rand @@ -123,7 +123,7 @@ def setUp (self, random_mock) : self.system_2 = dpdata.System('poscars/POSCAR.SiC.uniform',fmt='vasp/poscar') self.places = 6 -class TestPerturbConst(unittest.TestCase, CompSys): +class TestPerturbConst(unittest.TestCase, CompSys, IsPBC): @patch('numpy.random') def setUp (self, random_mock) : random_mock.rand = ConstGenerator().rand diff --git a/tests/test_qe_cp_traj_skipload.py b/tests/test_qe_cp_traj_skipload.py index 1e1b31f88..dc02e6323 100644 --- a/tests/test_qe_cp_traj_skipload.py +++ b/tests/test_qe_cp_traj_skipload.py @@ -4,8 +4,9 @@ from context import dpdata from comp_sys import CompSys from comp_sys import CompLabeledSys +from comp_sys import IsPBC -class TestPWSCFTrajSkip(unittest.TestCase, CompSys): +class TestPWSCFTrajSkip(unittest.TestCase, CompSys, IsPBC): def setUp(self): self.system_1 = dpdata.System(os.path.join('qe.traj', 'traj6'), fmt = 'qe/cp/traj', @@ -21,7 +22,7 @@ def setUp(self): self.f_places = 6 self.v_places = 4 -class TestPWSCFLabeledTrajSkip(unittest.TestCase, CompLabeledSys): +class TestPWSCFLabeledTrajSkip(unittest.TestCase, CompLabeledSys, IsPBC): def setUp(self): self.system_1 = dpdata.LabeledSystem(os.path.join('qe.traj', 'traj6'), fmt = 'qe/cp/traj', diff --git a/tests/test_quip_gap_xyz.py b/tests/test_quip_gap_xyz.py index 20d40b2f3..abfabb627 100644 --- a/tests/test_quip_gap_xyz.py +++ b/tests/test_quip_gap_xyz.py @@ -2,9 +2,9 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompLabeledSys +from comp_sys import CompLabeledSys, IsPBC -class TestQuipGapxyz1(unittest.TestCase, CompLabeledSys): +class TestQuipGapxyz1(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.multi_systems = dpdata.MultiSystems.from_file('xyz/xyz_unittest.xyz','quip/gap/xyz') self.system_1 = self.multi_systems.systems['B1C9'] @@ -14,7 +14,7 @@ def setUp (self) : self.f_places = 6 self.v_places = 4 -class TestQuipGapxyz2(unittest.TestCase, CompLabeledSys): +class TestQuipGapxyz2(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.system_temp0 = dpdata.MultiSystems.from_file(file_name='xyz/xyz_unittest.xyz', fmt='quip/gap/xyz') self.system_1 = self.system_temp0.systems['B5C7'] # .sort_atom_types() @@ -27,7 +27,7 @@ def setUp (self) : self.f_places = 6 self.v_places = 4 -class TestQuipGapxyzsort1(unittest.TestCase, CompLabeledSys): +class TestQuipGapxyzsort1(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.multi_systems_1 = dpdata.MultiSystems.from_file('xyz/xyz_unittest.sort.xyz','quip/gap/xyz') self.system_1 = self.multi_systems_1.systems['B5C7'] @@ -39,7 +39,7 @@ def setUp (self) : self.f_places = 6 self.v_places = 4 -class TestQuipGapxyzsort2(unittest.TestCase, CompLabeledSys): +class TestQuipGapxyzsort2(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.multi_systems_1 = dpdata.MultiSystems.from_file('xyz/xyz_unittest.sort.xyz','quip/gap/xyz') self.system_1 = self.multi_systems_1.systems['B1C9'] @@ -51,7 +51,7 @@ def setUp (self) : self.f_places = 6 self.v_places = 4 -class TestQuipGapxyzfield(unittest.TestCase, CompLabeledSys): +class TestQuipGapxyzfield(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.multi_systems_1 = dpdata.MultiSystems.from_file('xyz/xyz_unittest.field.xyz','quip/gap/xyz') self.system_1 = self.multi_systems_1.systems['B1C9'] @@ -63,7 +63,7 @@ def setUp (self) : self.f_places = 6 self.v_places = 4 -class TestQuipGapxyzfield2(unittest.TestCase, CompLabeledSys): +class TestQuipGapxyzfield2(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.multi_systems_1 = dpdata.MultiSystems.from_file('xyz/xyz_unittest.field.xyz','quip/gap/xyz') self.system_1 = self.multi_systems_1.systems['B5C7'] diff --git a/tests/test_replicate.py b/tests/test_replicate.py index 18eba3d96..16ef8636b 100644 --- a/tests/test_replicate.py +++ b/tests/test_replicate.py @@ -2,16 +2,16 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompSys +from comp_sys import CompSys, IsPBC -class TestReplicate123(unittest.TestCase, CompSys): +class TestReplicate123(unittest.TestCase, CompSys, IsPBC): def setUp (self) : system_1_origin = dpdata.System('poscars/POSCAR.SiC',fmt='vasp/poscar') self.system_1 = system_1_origin.replicate((1,2,3,)) self.system_2 = dpdata.System('poscars/POSCAR.SiC.replicate123',fmt='vasp/poscar') self.places = 6 -class TestReplicate123_not_change_origin(unittest.TestCase, CompSys): +class TestReplicate123_not_change_origin(unittest.TestCase, CompSys, IsPBC): def setUp (self) : self.system_1 = dpdata.System('poscars/POSCAR.SiC',fmt='vasp/poscar') self.system_1.replicate((1,2,3,)) diff --git a/tests/test_system_append.py b/tests/test_system_append.py index 8dc5802aa..27ffbb87a 100644 --- a/tests/test_system_append.py +++ b/tests/test_system_append.py @@ -4,8 +4,9 @@ from context import dpdata from comp_sys import CompSys from comp_sys import CompLabeledSys +from comp_sys import IsPBC -class TestVaspXmlAppend(unittest.TestCase, CompLabeledSys): +class TestVaspXmlAppend(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.places = 6 # rotated vasp computation, subject to numerical error @@ -23,7 +24,7 @@ def setUp (self) : self.system_2 = dpdata.LabeledSystem('poscars/vasprun.h2o.md.10.xml').sub_system(np.arange(0,10,2)) -class TestDifferentOrderAppend(unittest.TestCase, CompLabeledSys): +class TestDifferentOrderAppend(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.places = 6 self.e_places = 6 diff --git a/tests/test_to_ase.py b/tests/test_to_ase.py index 257e1af18..1cd7200a9 100644 --- a/tests/test_to_ase.py +++ b/tests/test_to_ase.py @@ -2,7 +2,7 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompSys +from comp_sys import CompSys, IsPBC try: from ase import Atoms from ase.io import write @@ -11,7 +11,7 @@ exist_module=False @unittest.skipIf(not exist_module,"skip test_ase") -class TestASE(unittest.TestCase, CompSys): +class TestASE(unittest.TestCase, CompSys, IsPBC): def setUp(self): system_1 = dpdata.System() diff --git a/tests/test_to_list.py b/tests/test_to_list.py index b5251f847..e4c83cff3 100644 --- a/tests/test_to_list.py +++ b/tests/test_to_list.py @@ -2,9 +2,9 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompLabeledSys +from comp_sys import CompLabeledSys, IsPBC -class TestToList(unittest.TestCase, CompLabeledSys): +class TestToList(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : system = dpdata.LabeledSystem('poscars/OUTCAR.h2o.md', fmt = 'vasp/outcar') diff --git a/tests/test_to_pymatgen.py b/tests/test_to_pymatgen.py index bb4c40bf4..5922828b4 100644 --- a/tests/test_to_pymatgen.py +++ b/tests/test_to_pymatgen.py @@ -2,7 +2,7 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompSys +from comp_sys import CompSys, IsPBC try: from pymatgen import Structure exist_module=True @@ -10,7 +10,7 @@ exist_module=False @unittest.skipIf(not exist_module,"skip pymatgen") -class TestPymatgen(unittest.TestCase, CompSys): +class TestPymatgen(unittest.TestCase, CompSys, IsPBC): def setUp(self): system_1 = dpdata.System() diff --git a/tests/test_vasp_outcar.py b/tests/test_vasp_outcar.py index 94c25e023..e2ab2e3db 100644 --- a/tests/test_vasp_outcar.py +++ b/tests/test_vasp_outcar.py @@ -2,9 +2,9 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompLabeledSys +from comp_sys import CompLabeledSys, IsPBC -class TestVaspOUTCAR(unittest.TestCase, CompLabeledSys): +class TestVaspOUTCAR(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.system_1 = dpdata.LabeledSystem() self.system_1.from_vasp_xml('poscars/vasprun.h2o.md.xml') @@ -15,7 +15,7 @@ def setUp (self) : self.f_places = 6 self.v_places = 4 -class TestVaspOUTCARTypeMap(unittest.TestCase, CompLabeledSys): +class TestVaspOUTCARTypeMap(unittest.TestCase, CompLabeledSys, IsPBC): def setUp(self): sys0 = dpdata.LabeledSystem('poscars/OUTCAR.ch4.unconverged', fmt = 'vasp/outcar') sys0.data['atom_names'] = ['A', 'C', 'B', 'H', 'D'] @@ -29,7 +29,7 @@ def setUp(self): self.f_places = 6 self.v_places = 6 -class TestVaspOUTCARSkip(unittest.TestCase, CompLabeledSys): +class TestVaspOUTCARSkip(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : begin = 1 step = 3 diff --git a/tests/test_vasp_poscar_to_system.py b/tests/test_vasp_poscar_to_system.py index 0fa477693..f1248175e 100644 --- a/tests/test_vasp_poscar_to_system.py +++ b/tests/test_vasp_poscar_to_system.py @@ -2,7 +2,7 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompSys +from comp_sys import CompSys, IsPBC from poscars.poscar_ref_oh import TestPOSCARoh class TestPOSCARCart(unittest.TestCase, TestPOSCARoh): @@ -17,7 +17,7 @@ def setUp(self): self.system = dpdata.System() self.system.from_vasp_poscar(os.path.join('poscars', 'POSCAR.oh.d')) -class TestVaspPOSCARTypeMap(unittest.TestCase, CompSys): +class TestVaspPOSCARTypeMap(unittest.TestCase, CompSys, IsPBC): def setUp(self): sys0 = dpdata.System('poscars/POSCAR.oh.d', fmt = 'vasp/poscar') sys0.data['atom_names'] = ['A', 'H', 'B', 'O', 'D'] diff --git a/tests/test_vasp_xml.py b/tests/test_vasp_xml.py index 4db35027e..ed7ac6e80 100644 --- a/tests/test_vasp_xml.py +++ b/tests/test_vasp_xml.py @@ -4,8 +4,9 @@ from context import dpdata from comp_sys import CompSys from comp_sys import CompLabeledSys +from comp_sys import IsPBC -class TestVaspXml(unittest.TestCase, CompSys): +class TestVaspXml(unittest.TestCase, CompSys, IsPBC): def setUp (self) : self.places = 6 xml_sys = dpdata.LabeledSystem() @@ -18,7 +19,7 @@ def setUp (self) : self.system_2 = xml_sys.sub_system([-1]) -class TestVaspXmlRotSys(unittest.TestCase, CompLabeledSys): +class TestVaspXmlRotSys(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.places = 4 # rotated vasp computation, subject to numerical error @@ -29,7 +30,7 @@ def setUp (self) : self.system_2 = dpdata.LabeledSystem('poscars/vasprun.h2o.md.tribox.lower.xml') -class TestVaspXmlSkip(unittest.TestCase, CompLabeledSys): +class TestVaspXmlSkip(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.places = 6 # rotated vasp computation, subject to numerical error From 0ce98793221508ffadcd3a80c43e526df1027787 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Mon, 30 Dec 2019 00:07:33 -0500 Subject: [PATCH 9/9] fix bugs --- tests/test_json.py | 6 +++--- tests/test_lammps_dump_skipload.py | 4 ++-- tests/test_multisystems.py | 2 +- tests/test_system_append.py | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/test_json.py b/tests/test_json.py index 0b5dc1847..98be14040 100644 --- a/tests/test_json.py +++ b/tests/test_json.py @@ -2,9 +2,9 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompLabeledSys, IsNoPBC +from comp_sys import CompLabeledSys, IsPBC -class TestJsonLoad(unittest.TestCase, CompLabeledSys, IsNoPBC): +class TestJsonLoad(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.system_1 = dpdata.LabeledSystem('poscars/OUTCAR.h2o.md', fmt = 'vasp/outcar') @@ -14,7 +14,7 @@ def setUp (self) : self.f_places = 6 self.v_places = 4 -class TestAsDict(unittest.TestCase, CompLabeledSys, IsNoPBC): +class TestAsDict(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : self.system_1 = dpdata.LabeledSystem('poscars/OUTCAR.h2o.md', fmt = 'vasp/outcar') diff --git a/tests/test_lammps_dump_skipload.py b/tests/test_lammps_dump_skipload.py index 77f8fe6ab..9e6502f61 100644 --- a/tests/test_lammps_dump_skipload.py +++ b/tests/test_lammps_dump_skipload.py @@ -2,9 +2,9 @@ import numpy as np import unittest from context import dpdata -from comp_sys import CompSys, IsNoPBC +from comp_sys import CompSys, IsPBC -class TestLmpDumpSkip(unittest.TestCase, CompSys, IsNoPBC): +class TestLmpDumpSkip(unittest.TestCase, CompSys, IsPBC): def setUp(self): self.system_1 = dpdata.System(os.path.join('poscars', 'conf.5.dump'), diff --git a/tests/test_multisystems.py b/tests/test_multisystems.py index a87cc167c..8bf285dcc 100644 --- a/tests/test_multisystems.py +++ b/tests/test_multisystems.py @@ -95,7 +95,7 @@ def setUp (self) : self.system_1 = dpdata.LabeledSystem(os.path.join(path, 'C1H3'), fmt='deepmd/raw', type_map = ['C', 'H']) self.system_2 = system_3 -class TestMultiDeepmdDumpComp(unittest.TestCase, CompLabeledSys, IsPBC): +class TestMultiDeepmdDumpComp(unittest.TestCase, CompLabeledSys, IsNoPBC): def setUp (self) : self.places = 6 self.e_places = 4 diff --git a/tests/test_system_append.py b/tests/test_system_append.py index 27ffbb87a..2a3d21cc5 100644 --- a/tests/test_system_append.py +++ b/tests/test_system_append.py @@ -4,7 +4,7 @@ from context import dpdata from comp_sys import CompSys from comp_sys import CompLabeledSys -from comp_sys import IsPBC +from comp_sys import IsPBC, IsNoPBC class TestVaspXmlAppend(unittest.TestCase, CompLabeledSys, IsPBC): def setUp (self) : @@ -24,7 +24,7 @@ def setUp (self) : self.system_2 = dpdata.LabeledSystem('poscars/vasprun.h2o.md.10.xml').sub_system(np.arange(0,10,2)) -class TestDifferentOrderAppend(unittest.TestCase, CompLabeledSys, IsPBC): +class TestDifferentOrderAppend(unittest.TestCase, CompLabeledSys, IsNoPBC): def setUp (self) : self.places = 6 self.e_places = 6