def test_to_dict(tmpdir): """Tests the conversion of atoms to dictionaries. """ from matdb.calculators import Vasp from matdb.atoms import Atoms as Atoms from matdb.utility import _set_config_paths _set_config_paths("AgPd_Enumerated", str(tmpdir)) target = str(tmpdir.join("atoms_dict")) globals_setup(target) if not path.isdir(target): mkdir(target) atSi = Atoms("Si8",positions=[[0,0,0],[0.25,0.25,0.25],[0.5,0.5,0],[0.75,0.75,0.25], [0.5,0,0.5],[0.75,0.25,0.75],[0,0.5,0.5],[0.25,0.75,0.75]], cell=[5.43,5.43,5.43]) kwargs = {"encut":400, "kpoints": {"rmin": 50}, "potcars":{"xc": "pbe", "directory": "./tests/vasp", "versions": {"Si": "05Jan2001"}}} calc = Vasp(atSi, target, '.', 0, **kwargs) atSi.set_calculator(calc) atSi.group_uuid = "123456" Sidict = atSi.to_dict() assert "calc" in Sidict assert "calc_kwargs" in Sidict assert Sidict["calc_kwargs"]["encut"] == 400 assert Sidict["group_uuid"] == "123456" assert "potcars" in Sidict["calc_kwargs"] assert "kpoints" in Sidict["calc_kwargs"]
def test_read_atoms(tmpdir): """Tests the reading of atoms objects from files. """ from matdb.calculators import Vasp from matdb.atoms import Atoms as Atoms from matdb.utility import _set_config_paths _set_config_paths("AgPd_Enumerated", str(tmpdir)) target = str(tmpdir.join("read_atoms")) globals_setup(target) if not path.isdir(target): mkdir(target) atSi = Atoms("Si8",positions=[[0,0,0],[0.25,0.25,0.25],[0.5,0.5,0],[0.75,0.75,0.25], [0.5,0,0.5],[0.75,0.25,0.75],[0,0.5,0.5],[0.25,0.75,0.75]], cell=[5.43,5.43,5.43]) kwargs = {"encut":400, "kpoints": {"rmin": 50}, "potcars":{"xc": "pbe", "directory": "./tests/vasp", "versions": {"Si": "05Jan2001"}}} calc = Vasp(atSi, target, '.', 0, **kwargs) atSi.set_calculator(calc) atSi.set_calculator(calc) atSi.add_property("vasp_force", [[-18057.59589857, -18057.59589857, -18057.59589857], [ -2997.55626529, -2997.55626529, -2997.55626529], [ 3044.17916471, 3044.17916471, -34130.71583118], [ 18969.1757571 , 18969.1757571 , 11159.15815145], [ 3044.17916471, -34130.71583118, 3044.17916471], [ 18969.1757571 , 11159.15815145, 18969.1757571 ], [-34130.71583118, 3044.17916471, 3044.17916471], [ 11159.15815145, 18969.1757571 , 18969.1757571 ]]) atSi.add_param("vasp_energy", 25360.504084423999) atSi.add_param("vasp_virial", [[ 33538.34327189, 11045.88697112, 11045.88697112], [ 11045.88697112, 33538.34327189, 11045.88697112], [ 11045.88697112, 11045.88697112, 33538.34327189]]) atSi.group_uuid = "123456" temp = path.join(target,"temp.h5") atSi.write(temp) atR = Atoms(temp) assert atR.calc.name == "Vasp" assert hasattr(atR.calc,"potcars") assert atR.calc.kwargs["encut"] == 400 assert np.allclose(atR.positions,[[0,0,0],[0.25,0.25,0.25],[0.5,0.5,0],[0.75,0.75,0.25], [0.5,0,0.5],[0.75,0.25,0.75],[0,0.5,0.5],[0.25,0.75,0.75]])