diff --git a/dpdata/xyz/quip_gap_xyz.py b/dpdata/xyz/quip_gap_xyz.py index b9e2addc7..54e74376d 100644 --- a/dpdata/xyz/quip_gap_xyz.py +++ b/dpdata/xyz/quip_gap_xyz.py @@ -127,6 +127,7 @@ def handle_single_xyz_frame(lines): info_dict['coords'] = np.array([coords_array]).astype('float32') info_dict['energies'] = np.array([field_dict['energy']]).astype('float32') info_dict['forces'] = np.array([force_array]).astype('float32') - info_dict['virials'] = virials + if virials is not None: + info_dict['virials'] = virials info_dict['orig'] = [0,0,0] return info_dict diff --git a/setup.py b/setup.py index 57c8d4030..610fd850d 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,8 @@ 'dpdata/xyz', 'dpdata/pwmat', 'dpdata/amber', - 'dpdata/fhi_aims'], + 'dpdata/fhi_aims', + 'dpdata/gromacs'], package_data={'dpdata':['*.json']}, classifiers=[ "Programming Language :: Python :: 3.6", diff --git a/tests/POSCAR b/tests/POSCAR new file mode 100644 index 000000000..9c3b19d9d --- /dev/null +++ b/tests/POSCAR @@ -0,0 +1,17 @@ +H6 O3 +1.0 +7.8228387655643719e+00 0.0000000000000000e+00 1.0000000000000000e+00 +2.0000000000000000e+00 7.3535726471820508e+00 3.0000000000000000e+00 +4.0000000000000000e+00 5.0000000000000000e+00 9.0365185154237526e+00 +H O +6 3 +Cartesian + 1.7700000000 1.4900000000 2.6200000000 + 0.4600000000 1.4900000000 3.3900000000 + 5.6700000000 4.8100000000 0.3500000000 + 5.6800000000 4.8100000000 1.8600000000 + 6.5300000000 6.3400000000 3.3600000000 + 7.4300000000 5.1200000000 3.3600000000 + 1.3500000000 1.8300000000 3.4100000000 + 5.2000000000 4.4700000000 1.1100000000 + 6.5100000000 5.3900000000 3.3500000000 diff --git a/tests/poscars/shift_origin.dump b/tests/poscars/shift_origin.dump new file mode 100644 index 000000000..eb887f2a6 --- /dev/null +++ b/tests/poscars/shift_origin.dump @@ -0,0 +1,26 @@ +ITEM: TIMESTEP +0 +ITEM: NUMBER OF ATOMS +4 +ITEM: BOX BOUNDS xy xz yz pp pp pp +-2 6 0 + 0 5 0 + 0 3 0 +ITEM: ATOMS id type xs ys zs fx fy fz +1 1 0 0 0 -1.04083e-17 2.76472e-17 1.83013e-16 +2 1 0.5 0.5 0.5 1.21431e-17 5.04493e-17 -9.96382e-17 +3 1 0.5 0 0.75 1.21431e-17 1.39964e-17 -3.65837e-16 +4 1 0 0.5 0.25 -2.77556e-17 -9.16896e-17 2.23779e-16 +ITEM: TIMESTEP +100 +ITEM: NUMBER OF ATOMS +4 +ITEM: BOX BOUNDS xy xz yz pp pp pp +1 9 0 +0 5 0 +0 3 0 +ITEM: ATOMS id type xs ys zs fx fy fz +1 1 0 0 0 -1.04083e-17 2.76472e-17 1.83013e-16 +2 1 0.5 0.5 0.5 1.21431e-17 5.04493e-17 -9.96382e-17 +3 1 0.5 0 0.75 1.21431e-17 1.39964e-17 -3.65837e-16 +4 1 0 0.5 0.25 -2.77556e-17 -9.16896e-17 2.23779e-16 diff --git a/tests/test_lammps_dump_shift_origin.py b/tests/test_lammps_dump_shift_origin.py new file mode 100644 index 000000000..00754d1a5 --- /dev/null +++ b/tests/test_lammps_dump_shift_origin.py @@ -0,0 +1,14 @@ +import os +import numpy as np +import unittest +from context import dpdata +from comp_sys import CompSys, IsPBC + +class TestLammpsDumpShiftOrigin(unittest.TestCase, CompSys, IsPBC): + def setUp (self): + self.system_1 = dpdata.System('poscars/shift_origin.dump', fmt = 'lammps/dump')[0] + self.system_2 = dpdata.System('poscars/shift_origin.dump', fmt = 'lammps/dump')[1] + self.places = 6 + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_quip_gap_xyz.py b/tests/test_quip_gap_xyz.py index abfabb627..8a023bc4d 100644 --- a/tests/test_quip_gap_xyz.py +++ b/tests/test_quip_gap_xyz.py @@ -75,6 +75,17 @@ def setUp (self) : self.f_places = 6 self.v_places = 4 +class TestQuipGapxyzNoVirials(unittest.TestCase, CompLabeledSys, IsPBC): + def setUp(self): + self.multi_systems_1 = dpdata.MultiSystems.from_file('xyz/xyz_B5C7_novirials.xyz', fmt='quip/gap/xyz') + self.system_1 = self.multi_systems_1.systems['B5C7'] + self.system_1.sort_atom_types() + self.system_2 = dpdata.LabeledSystem('xyz/B5C7_novirials', fmt='deepmd/raw') + self.places = 6 + self.e_places = 6 + self.f_places = 6 + + if __name__ == '__main__': unittest.main() diff --git a/tests/xyz/B5C7_novirials/box.raw b/tests/xyz/B5C7_novirials/box.raw new file mode 100644 index 000000000..ec14075ca --- /dev/null +++ b/tests/xyz/B5C7_novirials/box.raw @@ -0,0 +1 @@ +2.405388593673706055e+00 0.000000000000000000e+00 0.000000000000000000e+00 6.669999947916949168e-07 8.830761909484863281e+00 0.000000000000000000e+00 2.145883798599243164e+00 6.300000165992969414e-08 2.066179037094116211e+00 diff --git a/tests/xyz/B5C7_novirials/coord.raw b/tests/xyz/B5C7_novirials/coord.raw new file mode 100644 index 000000000..7678d0c45 --- /dev/null +++ b/tests/xyz/B5C7_novirials/coord.raw @@ -0,0 +1 @@ +3.195669889450073242e+00 9.796500205993652344e-01 1.522500038146972656e+00 1.355610013008117676e+00 9.796500205993652344e-01 5.436800122261047363e-01 1.355610013008117676e+00 7.851109981536865234e+00 5.436800122261047363e-01 3.195669889450073242e+00 7.851109981536865234e+00 1.522500038146972656e+00 2.275640010833740234e+00 4.415380001068115234e+00 1.033089995384216309e+00 1.959050059318542480e+00 6.235050201416015625e+00 1.539360046386718750e+00 2.592220067977905273e+00 6.235050201416015625e+00 5.268200039863586426e-01 2.592220067977905273e+00 2.595710039138793945e+00 5.268200039863586426e-01 1.959050059318542480e+00 2.595710039138793945e+00 1.539360046386718750e+00 2.275640010833740234e+00 1.560019969940185547e+00 1.033089995384216309e+00 2.275640010833740234e+00 7.270740032196044922e+00 1.033089995384216309e+00 2.275640010833740234e+00 0.000000000000000000e+00 1.033089995384216309e+00 diff --git a/tests/xyz/B5C7_novirials/energy.raw b/tests/xyz/B5C7_novirials/energy.raw new file mode 100644 index 000000000..fa2fc8572 --- /dev/null +++ b/tests/xyz/B5C7_novirials/energy.raw @@ -0,0 +1 @@ +2.397022962570190430e+00 diff --git a/tests/xyz/B5C7_novirials/force.raw b/tests/xyz/B5C7_novirials/force.raw new file mode 100644 index 000000000..46d5e0a8f --- /dev/null +++ b/tests/xyz/B5C7_novirials/force.raw @@ -0,0 +1 @@ +-7.255659103393554688e+00 -8.829194068908691406e+00 4.687431812286376953e+00 7.255657196044921875e+00 -8.829194068908691406e+00 -4.687431812286376953e+00 7.255659103393554688e+00 8.829194068908691406e+00 -4.687431812286376953e+00 -7.255657196044921875e+00 8.829194068908691406e+00 4.687431812286376953e+00 -0.000000000000000000e+00 -0.000000000000000000e+00 0.000000000000000000e+00 -1.439490795135498047e+01 -1.912936592102050781e+01 -4.678572177886962891e+00 1.439490509033203125e+01 -1.912936592102050781e+01 4.678572177886962891e+00 1.439490795135498047e+01 1.912936592102050781e+01 4.678572177886962891e+00 -1.439490509033203125e+01 1.912936592102050781e+01 -4.678572177886962891e+00 -0.000000000000000000e+00 -4.519358158111572266e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.519358158111572266e+00 0.000000000000000000e+00 -0.000000000000000000e+00 -0.000000000000000000e+00 0.000000000000000000e+00 diff --git a/tests/xyz/B5C7_novirials/type.raw b/tests/xyz/B5C7_novirials/type.raw new file mode 100644 index 000000000..1f44d145f --- /dev/null +++ b/tests/xyz/B5C7_novirials/type.raw @@ -0,0 +1,12 @@ +0 +0 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 diff --git a/tests/xyz/B5C7_novirials/type_map.raw b/tests/xyz/B5C7_novirials/type_map.raw new file mode 100644 index 000000000..90659bd6b --- /dev/null +++ b/tests/xyz/B5C7_novirials/type_map.raw @@ -0,0 +1,2 @@ +B +C diff --git a/tests/xyz/xyz_B5C7_novirials.xyz b/tests/xyz/xyz_B5C7_novirials.xyz new file mode 100644 index 000000000..2a76ecb7c --- /dev/null +++ b/tests/xyz/xyz_B5C7_novirials.xyz @@ -0,0 +1,14 @@ +12 +energy=2.397023 Lattice="2.405388711 0.0 0.0 6.67e-07 8.830761667 0.0 2.145883783 6.3e-08 2.066179013" Properties=species:S:1:pos:R:3:Z:I:1:force:R:3 +B 3.19567000000 0.97965000000 1.52250000000 5 -7.25565900000 -8.82919400000 4.68743200000 +B 1.35561000000 0.97965000000 0.54368000000 5 7.25565700000 -8.82919400000 -4.68743200000 +B 1.35561000000 7.85111000000 0.54368000000 5 7.25565900000 8.82919400000 -4.68743200000 +B 3.19567000000 7.85111000000 1.52250000000 5 -7.25565700000 8.82919400000 4.68743200000 +B 2.27564000000 4.41538000000 1.03309000000 5 -0.00000000000 -0.00000000000 0.00000000000 +C 1.95905000000 6.23505000000 1.53936000000 6 -14.39490800000 -19.12936600000 -4.67857200000 +C 2.59222000000 6.23505000000 0.52682000000 6 14.39490500000 -19.12936600000 4.67857200000 +C 2.59222000000 2.59571000000 0.52682000000 6 14.39490800000 19.12936600000 4.67857200000 +C 1.95905000000 2.59571000000 1.53936000000 6 -14.39490500000 19.12936600000 -4.67857200000 +C 2.27564000000 1.56002000000 1.03309000000 6 -0.00000000000 -4.51935800000 0.00000000000 +C 2.27564000000 7.27074000000 1.03309000000 6 0.00000000000 4.51935800000 0.00000000000 +C 2.27564000000 0.00000000000 1.03309000000 6 -0.00000000000 -0.00000000000 0.00000000000