Skip to content

Code developed for the publication Demystifying the Chemical Ordering of Multimetallic Nanoparticles by Dennis Johan Loevlie, Brenno Ferreira, and Giannis Mpourmpakis*.

License

mpourmpakis/CANELa_NP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CANELa_NP

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

png


Installation

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 .

Package Tutorial (demonstration of use)

Importing packages

from CANELa_NP.Nanotools import Nanoparticle
import ase.cluster as ac

Creating a bimetallic NP with ASE

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=...)

Initializing the NP Object

NP = Nanoparticle(atoms)

Visualizing the core to shell element distribution

NP.core_shell_plot()

png

Optimizing the chemical ordering

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!

Visualizing the core/shell distribution of the optimized chemical ordering

NP.core_shell_plot()

png

Visualizing the NP (with ase gui and molgif)

Viewing the full NP

NP.view() NP.view(rotate=True)
png gif

Viewing a slice of the NP (in the x-direction)

NP.view(cut=True) NP.view(cut=True,rotate=True)
png png

Working with your own xyz files

xyz_file = 'Example_Data/AuPdPt.xyz'
NP = Nanoparticle(xyz_file)
NP.core_shell_plot()

png

Generating New Gamma Values

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*.

  1. Generate equally distributed NP xyz files using the script: generate_nps
  2. Geometrically optimize these structures to find the most stable energy.
  3. 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")

Citation

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},

About

Code developed for the publication Demystifying the Chemical Ordering of Multimetallic Nanoparticles by Dennis Johan Loevlie, Brenno Ferreira, and Giannis Mpourmpakis*.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages