Source code for npl.utils.utils
from copy import deepcopy
from ase import Atoms
from ase.calculators.emt import EMT
from ase.optimize import BFGS
[docs]
def get_crystalline_structure(atoms: Atoms, surrogate_metal: str = 'Cu') -> Atoms:
original_symbols = deepcopy(atoms.symbols)
atoms.symbols = [surrogate_metal for _ in atoms.get_positions()]
atoms.calc = EMT()
opt = BFGS(atoms, logfile=None)
opt.run(fmax=0.01)
atoms.symbols = original_symbols
return atoms