Source code for jarvis.tests.testfiles.analysis.defects.test_vacancy
from jarvis.analysis.defects.vacancy import Vacancy
from jarvis.core.atoms import Atoms
from jarvis.io.vasp.inputs import Poscar
import os
C = os.path.join(os.path.dirname(__file__), "POSCAR-667.vasp")
[docs]def test_vacancy():
box = [[2.715, 2.715, 0], [0, 2.715, 2.715], [2.715, 0, 2.715]]
coords = [[0, 0, 0], [0.25, 0.25, 0.25]]
elements = ["Si", "Si"]
Si = Atoms(lattice_mat=box, coords=coords, elements=elements)
v = Vacancy(atoms=Si)
vacs = v.generate_defects(enforce_c_size=10.0)
td = vacs[0].to_dict()
fd = Vacancy.from_dict(td)
# print ( len(vacs),(vacs[0].to_dict()["defect_structure"].num_atoms))
# print (vacs[0].to_dict()["defect_structure"])
assert (
len(vacs),
Atoms.from_dict(vacs[0].to_dict()["defect_structure"]).num_atoms,
) == (1, 53)
[docs]def test_2d():
p = Poscar.from_file(C).atoms
vacs = Vacancy(atoms=p).generate_defects(enforce_c_size=10.0, extend=1)
# print (vacs[0]._defect_structure)
assert (
Atoms.from_dict(vacs[0].to_dict()["defect_structure"]).num_atoms == 49
)
# test_2d()
# test_vacancy()