Nanoparticle Library for computational analysis of nanoparticles
Project description
NanoParticleLibrary (NPL)
Table of contents
About NPL
NPL is a Python library for the simulation and structural optimization of nanoparticles, specifically tailored for bimetallic nanoparticles. Built on the robust ASE (Atomic Simulation Environment), it enables users to easily set up and analyze complex nanoparticle structures across a range of chemical compositions and structures. NPL provides high-level abstractions, making it accessible for both beginners and experienced researchers aiming to perform detailed nanoparticle simulations.
Documentation
A partial documentation is available at: https://nplib.readthedocs.io/en/latest/
Installation
Requirements
- Python 3.9+
- Atomic Simulation Environment (ASE) >= 3.21
- scikit-learn
- sortedcontainers
Installation from PyPI
You can install NPL with pip:
pip install npl
or from github:
git clone https://github.com/farrisric/NPlib
pip install ./NPlib
Examples
Monte Carlo Run Example
Here’s a revised version without using lists:
This example demonstrates how to perform a Monte Carlo simulation using NPL. First, pre-trained topological coefficients are loaded to guide the simulation. A truncated octahedral Pt151Cu50 nanoparticle is then initialized as the system for the simulation. The Monte Carlo simulation is set up with a temperature parameter of 250 K and a total of 10,000 steps. Once the simulation is executed, the positions of the nanoparticle atoms are optimized. Finally, the optimized positions are printed for analysis.
from npl.descriptors import ExtendedTopologicalFeaturesClassifier
from npl.calculators import TOPCalculator
from npl.core import Nanoparticle
from npl.monte_carlo import run_monte_carlo
from npl.visualize import plot_parted_particle
energy_calculator = TOPCalculator('ETOP', stoichiometry='Pt151Cu50',
feature_classifier=ExtendedTopologicalFeaturesClassifier)
feature_classifier = energy_calculator.get_feature_classifier()
temperature = 250
max_steps = 10000
start_particle = Nanoparticle()
start_particle.truncated_octahedron(7, 2, {'Pt': 151, 'Cu': 50})
best_particle, accepted_energies = run_monte_carlo(temperature,
max_steps,
start_particle,
energy_calculator,
feature_classifier)
plot_parted_particle(best_particle)
References
If you use this code, please cite our papers:
@neuman{10.1063/5.0214377,
author = {Felix Neumann and Johannes T Margraf and Karsten Reuter and Albert Bruix},
title = "{Interplay between shape and composition in bimetallic nanoparticles
revealed by an efficient optimal-exchange optimization algorithm}",
archivePrefix = {ChemRxiv},
doi = {10.26434/chemrxiv-2021-26ztp},
}
@article{10.1063/5.0193848,
author = {Farris, Riccardo and Merinov, Boris V. and Bruix, Albert and Neyman, Konstantin M.},
title = "{Effects of Zr dopants on properties of PtNi nanoparticles for ORR catalysis: A DFT modeling}",
journal = {The Journal of Chemical Physics},
volume = {160},
number = {12},
pages = {124706},
year = {2024},
issn = {0021-9606},
doi = {10.1063/5.0193848},
url = {https://doi.org/10.1063/5.0193848},
}
@farris{10.1063/5.0214377,
author = {Farris, Riccardo and Neyman, Konstantin M. and Bruix, Albert},
title = "{Determining the chemical ordering in nanoalloys by considering atomic coordination types}",
journal = {The Journal of Chemical Physics},
volume = {161},
number = {13},
pages = {134114},
year = {2024},
issn = {0021-9606},
doi = {10.1063/5.0214377}
}
Contact
For any questions or issues, please contact:
- Riccardo Farris: rfarris@ub.edu
- GitHub Issues: NPlib Issues
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file npl-1.0.4.tar.gz.
File metadata
- Download URL: npl-1.0.4.tar.gz
- Upload date:
- Size: 52.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f4da54c53105a5a260fdbbcc7db1fda2064f1ba890ba1baca11360dce7d5e80
|
|
| MD5 |
6bba9eace91fd323f95da13235560b55
|
|
| BLAKE2b-256 |
6e8934b85c5d2d5c4296491adfce38df9d248d2c544da2c7801f4343078c6432
|
Provenance
The following attestation bundles were made for npl-1.0.4.tar.gz:
Publisher:
publish.yml on farrisric/NPlib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
npl-1.0.4.tar.gz -
Subject digest:
6f4da54c53105a5a260fdbbcc7db1fda2064f1ba890ba1baca11360dce7d5e80 - Sigstore transparency entry: 221861369
- Sigstore integration time:
-
Permalink:
farrisric/NPlib@16e52c664d71f7c8d9b0b6766640ffa7cd7df7ae -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/farrisric
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@16e52c664d71f7c8d9b0b6766640ffa7cd7df7ae -
Trigger Event:
push
-
Statement type:
File details
Details for the file npl-1.0.4-py3-none-any.whl.
File metadata
- Download URL: npl-1.0.4-py3-none-any.whl
- Upload date:
- Size: 69.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3eea1d4620609e76053160b89c187d6c2bea95b75a5d5b3f6a24d62005f87614
|
|
| MD5 |
0202acb4d0e7d617b6c1cf2195965452
|
|
| BLAKE2b-256 |
6af28eef90c74e376fa71dfda8a8f69c29c7e273efdbe328fa23cfe58bddb989
|
Provenance
The following attestation bundles were made for npl-1.0.4-py3-none-any.whl:
Publisher:
publish.yml on farrisric/NPlib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
npl-1.0.4-py3-none-any.whl -
Subject digest:
3eea1d4620609e76053160b89c187d6c2bea95b75a5d5b3f6a24d62005f87614 - Sigstore transparency entry: 221861372
- Sigstore integration time:
-
Permalink:
farrisric/NPlib@16e52c664d71f7c8d9b0b6766640ffa7cd7df7ae -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/farrisric
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@16e52c664d71f7c8d9b0b6766640ffa7cd7df7ae -
Trigger Event:
push
-
Statement type: