Python Package developed for Demystifying the Chemical Ordering of Multimetallic Nanoparticles by Dennis Loevlie, Brenno Ferreira, and Giannis Mpourmpakis*
Read the publication here: https://pubs.acs.org/doi/10.1021/acs.accounts.2c00646
First you will need to install the original GA repo at https://github.com/mpourmpakis/ce_expansion. You can install it via pip with:
pip install git+https://github.com/mpourmpakis/ce_expansion.git
You can then install and work with the code from this repo with the following command:
git clone https://github.com/mpourmpakis/CANELa_NP.git
cd CANELA_NP
pip install -e .
from CANELa_NP.Nanotools import Nanoparticle
import ase.cluster as ac
atoms = ac.Icosahedron('Au',5)
print(atoms)
>>> Atoms(symbols='Au309', pbc=False, tags=...)
atoms.symbols[100:] = 'Pd'
print(atoms)
>>> Atoms(symbols='Au100Pd209', pbc=False, tags=...)
NP = Nanoparticle(atoms)
NP.core_shell_plot()
NP.run_ga(max_gens=-1,max_nochange=1_000)
--------------------------------------------------
GA Sim for Au100Pd209 - none:
Min: -3.66177 eV/atom -- Gen: 02840
Form: Au100Pd209
nAtom: 309
nGens: 2840
Start: -3.44202 eV/atom
Best: -3.66177 eV/atom
Diff: -0.21974 eV/atom (6.38%)
Mute: 80.0%
Pop: 50
Time: 0:00:28
--------------------------------------------------
Saving optimized structure...
Done!
NP.core_shell_plot()
Viewing the full NP
NP.view() |
NP.view(rotate=True) |
---|---|
Viewing a slice of the NP (in the x-direction)
NP.view(cut=True) |
NP.view(cut=True,rotate=True) |
---|---|
xyz_file = 'Example_Data/AuPdPt.xyz'
NP = Nanoparticle(xyz_file)
NP.core_shell_plot()
If you would like to generate gamma values for metal combinations that have not been done yet please follow the following steps from the publication Demystifying the Chemical Ordering of Multimetallic Nanoparticles by Dennis Loevlie, Brenno Ferreira, and Giannis Mpourmpakis*.
- Generate equally distributed NP xyz files using the script: generate_nps
- Geometrically optimize these structures to find the most stable energy.
- Use this script with the optimized energy values and previously generated structures to calculate the new gamma values (they will be stored in "CANELa_NP/Data/np_gammas.json")
If you find the code useful, please also consider the following BibTeX entry.
@article{doi:10.1021/acs.accounts.2c00646,
author = {Loevlie, Dennis Johan and Ferreira, Brenno and Mpourmpakis, Giannis},
title = {Demystifying the Chemical Ordering of Multimetallic Nanoparticles},
journal = {Accounts of Chemical Research},
volume = {56},
number = {3},
pages = {248-257},
year = {2023},
doi = {10.1021/acs.accounts.2c00646},
URL = {https://doi.org/10.1021/acs.accounts.2c00646},