import os import sys from pymatgen.core.structure import Structure from pymatgen.symmetry.analyzer import SpacegroupAnalyzer from pymatgen.io.cif import CifWriter, CifParser infile = None prec = 1.0e-3 pause = 0 argv = sys.argv narg = len(argv) if narg >= 2: infile = argv[1] if narg >= 3: outfile = argv[2] else: dir_path = os.path.dirname(infile) filebody, ext = os.path.splitext(infile) outfile = os.path.join(dir_path, f"{filebody}-symmetrized.cif") if narg >= 4: prec = float(argv[3]) if narg >= 5: pause = int(argv[4]) print() print(f"infile: {infile}") print(f"outfile: {outfile}") print(f"prec: {prec}") struct = Structure.from_file(infile, primitive = False) print() print("input structure:") print(struct) symmetry_analyzer = SpacegroupAnalyzer(struct, symprec = prec) #, angle_tolerance = 5.0) symmetrized_structure = symmetry_analyzer.get_symmetrized_structure() print() print("symmetrized_structure:") print(symmetrized_structure) print() print(f"Save the symmetrized structure to [{outfile}]") writer = CifWriter(symmetrized_structure, symprec = prec) #, angle_tolerance = 5.0) writer.write_file(outfile) if pause: input("\nPress ENTER to terminate>>\n")