Source code for ccu.structure.resizecell

"""This script resizes the c vector of all the .traj files in the current
working directory to the specified positive number (default is 10)"""

import pathlib

from ase.io import read
from numpy.linalg import norm


[docs] def run(structure: pathlib.Path, length: float): """Resize c-vector of structure and centres atoms in cell. Args: structure: A pathlib.Path instance leading to the structure whose cell is to be resized. length: A float specifying the new c-vector of the cell. """ atoms = read(structure) c_vector = atoms.cell[2] c_scale = length / norm(c_vector) atoms.cell[2] = c_vector * c_scale atoms.center() atoms.write(structure)