def gen_impurity(symbol='H', tetrahedral=True, sup_cell=[5, 5, 5]): """ Add an element of type symbol to a supercell defined by the size sup_cell. If tetrahedral is true the element is initially placed in a tetrahedral position otherwise it is placed in an octahedral position. """ #Molybdenum is 42!!! alat = 2.82893 atomic_number_dict = {'H': 1, 'B': 5, 'C': 6, 'P': 15, 'Mn': 25, 'Mo': 42} tetra_pos = alat * np.array([0.5, 0.0, 0.75]) octa_pos = alat * np.array([0.5, 0.5, 0.0]) #Structures ats = BodyCenteredCubic(directions=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], size=(sup_cell[0], sup_cell[1], sup_cell[2]), symbol='Fe', pbc=(1, 1, 1), latticeconstant=alat) mid_point = 0.5 * (np.diag(ats.get_cell())) mid_point = [((sup_cell[0] - 1) / 2.) * alat for sp in sup_cell] if tetrahedral: tetra_pos += mid_point ats.append(Atom(position=tetra_pos, symbol=symbol)) else: octa_pos += mid_point ats.append(Atom(position=octa_pos, symbol=symbol)) return ats