npl

The NanoParticleLibrary (NPL) is a Python library for simulating and optimizing nanoparticle structures, built on ASE.

https://github.com/farrisric/npl

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.8%) to scientific vocabulary

Keywords

global-optimization nanoparticles
Last synced: 6 months ago · JSON representation ·

Repository

The NanoParticleLibrary (NPL) is a Python library for simulating and optimizing nanoparticle structures, built on ASE.

Basic Info
  • Host: GitHub
  • Owner: farrisric
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 3.55 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Topics
global-optimization nanoparticles
Created over 3 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

License GitHub issues Documentation Status DOI

NanoParticleLibrary (NPL)

NPL Logo

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://npl.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:

sh pip install npl

or from github:

sh git clone https://github.com/farrisric/npl pip install ./npl

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.

```python

from npl.descriptors import ExtendedTopologicalFeaturesClassifier from npl.calculators import TOPCalculator from npl.core import Nanoparticle from npl.montecarlo import runmontecarlo from npl.visualize import plotparted_particle

energycalculator = TOPCalculator('ETOP', stoichiometry='Pt151Cu50', featureclassifier=ExtendedTopologicalFeaturesClassifier) featureclassifier = energycalculator.getfeatureclassifier()

temperature = 250 max_steps = 10000

startparticle = Nanoparticle() startparticle.truncatedoctahedron(7, 2, {'Pt': 151, 'Cu': 50}) bestparticle, acceptedenergies = runmontecarlo(temperature, maxsteps, startparticle, energycalculator, feature_classifier)

plotpartedparticle(best_particle) ```

Tutorial Image

References

If you use this code, please cite our papers:

```bibtex @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:

License

This project is licensed under the MIT License - see the LICENSE file for details.

Owner

  • Name: Riccardo Farris
  • Login: farrisric
  • Kind: user
  • Company: @reac-nps

PhD Student in Theoretical and Computational Chemistry in the @reac-nps group at the Universidad de Barcelona,

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "The NanoParticleLibrary (NPL): a Python library for simulating and optimizing nanoparticle structures."
authors:
- family-names: Farris
  given-names: Riccardo
  affiliation: "Universitat de Barcelona"
date-released: "2025-05-01"
version: "1.0.5"
url: "https://github.com/farrisric/NPlib"
doi: "10.5072/zenodo.262135"
date-released: "2025-05-28"

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1