Source code for jarvis.tests.testfiles.analysis.structure.test_spacegroup

from jarvis.analysis.structure.spacegroup import (
    Spacegroup3D,
    symmetrically_distinct_miller_indices,
    get_wyckoff_position_operators,
)
from jarvis.core.atoms import Atoms
from jarvis.io.vasp.inputs import Poscar
import os
from collections import defaultdict
from jarvis.db.jsonutils import loadjson

s1 = Poscar.from_file(
    os.path.join(os.path.dirname(__file__), "..", "defects", "POSCAR-667.vasp")
).atoms
s2 = Poscar.from_file(
    os.path.join(os.path.dirname(__file__), "..", "..", "io", "wannier", "POSCAR")
).atoms
s3 = Poscar.from_file(os.path.join(os.path.dirname(__file__), "POSCAR-tetragonal")).atoms
s4 = Poscar.from_file(os.path.join(os.path.dirname(__file__), "POSCAR-Cmcm")).atoms
s5 = Poscar.from_file(os.path.join(os.path.dirname(__file__), "POSCAR-Aem2")).atoms
s6 = Poscar.from_file(os.path.join(os.path.dirname(__file__), "POSCAR-C2m")).atoms
s7 = Poscar.from_file(os.path.join(os.path.dirname(__file__), "POSCAR-Pc")).atoms
s8 = Poscar.from_file(os.path.join(os.path.dirname(__file__), "POSCAR-P-1")).atoms
s9 = Poscar.from_file(os.path.join(os.path.dirname(__file__), "POSCAR-P21m")).atoms


[docs]def test_spg229(): d = loadjson(os.path.join(os.path.dirname(__file__), "spg229.json")) for i in d: atoms = Atoms.from_dict(i["atoms"]) spg = Spacegroup3D(atoms).space_group_number assert spg == i["spg_number"]
[docs]def test_spg(): 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) spg = Spacegroup3D(atoms=Si) # .spacegroup_data() cvn = spg.conventional_standard_structure ml = symmetrically_distinct_miller_indices(max_index=3, cvn_atoms=cvn) # print ('ml',ml) x = get_wyckoff_position_operators(488) # print (x['wyckoff'][0]['letter']) assert ( spg.space_group_number, spg.space_group_symbol, cvn.num_atoms, ml[0][0], x["wyckoff"][0]["letter"], ) == (227, "Fd-3m", 8, 1, "l") spg = Spacegroup3D(atoms=s1) assert spg.space_group_number == 191 print(spg.space_group_number) cvn = spg.conventional_standard_structure spg = Spacegroup3D(atoms=s2) assert spg.space_group_number == 166 print(spg.space_group_number) cvn = spg.conventional_standard_structure spg = Spacegroup3D(atoms=s3) print(spg.space_group_number) cvn = spg.conventional_standard_structure assert spg.space_group_number == 139 spg = Spacegroup3D(atoms=s4) print(spg.space_group_number) cvn = spg.conventional_standard_structure assert spg.space_group_number == 63 spg = Spacegroup3D(atoms=s5) print(spg.space_group_number) cvn = spg.conventional_standard_structure assert spg.space_group_number == 39 spg = Spacegroup3D(atoms=s6) print(spg.space_group_number) cvn = spg.conventional_standard_structure assert spg.space_group_number == 12 spg = Spacegroup3D(atoms=s7) print(spg.space_group_number) cvn = spg.conventional_standard_structure assert spg.space_group_number == 7 spg = Spacegroup3D(atoms=s8) print(spg.space_group_number) cvn = spg.conventional_standard_structure assert spg.space_group_number == 2 spg = Spacegroup3D(atoms=s9) print(spg.space_group_number) cvn = spg.conventional_standard_structure assert spg.space_group_number == 11
[docs]def test_all_spgs(): """Moved to K-points module because of duplication.""" return True
# test_all_spgs() # test_spg()