Skip to main content

Build and visualize complex crystalline nanoparticle architectures, including models on substrates, for materials science, X-ray data analysis, and electron microscopy research

Project description

pyNMB_banner

Most nanoparticles have a well-defined shape. The habit of a crystalline nanoparticle is dependent on its crystallographic form and growth conditions. Its properties depends on its size, shape, surface topology and composition, etc... Modeling nanoparticles at the atomic scale is a crucial preliminary step to evaluate their potential for various applications. However, the process of generating an initial conformation for modeling and simulation is not that easy. Several tools are already available, including in the python realm. But to the best of our knowledge, they do not give access to the fascinating diversity of shapes encountered at the nanoscale. pyNanoMatBuilder is a new python tool designed to create nanoparticle models from any crystal structure or atomically precise structures, i.e. magic numbers polyhedra.

Various atomic ordered arrangements can be obtained by instantiating specific classes:

  • The crystalNPs utility builds several shapes, such as spheres, cubes, ellipsoids, parallelepipeds, and more generally any Wulff constructions. In addition to the database of cif coordinates, users can upload a cif file. Some pre-defined Wulff constructions are available, and it is also possible to specify the Miller indices and assign the minimum surface energies. This functionality is expected to work for any Bravais lattice.
  • Wulff constructions based on Bravais lattices cannot give access to some polyhedra, such as the icosahedra or decahedra five-fold structures. This is the reason why additional classes generate atomic arrangements of specific atomically precise polyhedra: platonic NPs, archimedean NPs, Catalan NPs and Johnson NPs. The corresponding classes do not pretend to be exhaustive, but they provide frequently observed structures.

The crystal habits of the structures generated by pyNanoMatBuilder are summarized below:


Installation

Activate your python environment and run:

pip install pyNanoMatBuilder

Quick usage

Let's first make a sphere with a diameter of ~ 4 nm. This is the target size, but the measured size will be slightly different due to compound cristalline organization.

from pyNanoMatBuilder import crystalNPs as cyNP
from pyNanoMatBuilder import utils as pyNMBu

# Define parameters
sphere_diameter = [4] # Target diameter in nm
# Instantiate the Crystal object (Au fcc sphere)
AuNP = cyNP.Crystal(
    "Au fcc",
    size=sphere_diameter, 
    shape="sphere", 
    thresholdCoreSurface=1, 
    skipSymmetryAnalyzis=False, 
    noOutput=False
)

# Save the results in various formats
# The 'write' utility automatically creates the 'coords/' directory, if it does not exist
pyNMBu.write("coords/SphericalAuNP.xyz", AuNP.NP)                # Main coordinates
pyNMBu.write("coords/SphericalAuNP_CoreSurface.xyz", AuNP.NPcs)  # Core/surface model
pyNMBu.write("coords/SphericalAuNP.script", AuNP.jMolCS)         # JMOL visualization script

# Save unitcells
pyNMBu.write("coords/SphericalAuNP_uc.cif", AuNP.cif)            # The base unitcell
pyNMBu.write("coords/SphericalAuNP_sc.cif", AuNP.sc)             # The supercell used for shaping

See more explanations in the How to? Workflow Guides section of the Main Tutorial notebook

Main Tutorial: Open In Colab


PyPI version Documentation Status License Downloads

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

pynanomatbuilder-0.14.0.tar.gz (63.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pynanomatbuilder-0.14.0-py3-none-any.whl (52.6 MB view details)

Uploaded Python 3

File details

Details for the file pynanomatbuilder-0.14.0.tar.gz.

File metadata

  • Download URL: pynanomatbuilder-0.14.0.tar.gz
  • Upload date:
  • Size: 63.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for pynanomatbuilder-0.14.0.tar.gz
Algorithm Hash digest
SHA256 7f88f5907a3ca9b9ef2104b2659a92361a2eaaa3c713f488b4d2d64158a287b1
MD5 341f92fe5c1ec5ee2c4b93eaa4bbb5f8
BLAKE2b-256 8ba7c51ddd7b88aa7981920f226b1650a749685321a783a55aa503d71fe85363

See more details on using hashes here.

File details

Details for the file pynanomatbuilder-0.14.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pynanomatbuilder-0.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44d98a65bcd38a6783ff158750c58126caf5c9675a909968b84d1c105c2bc167
MD5 b3fc9d2bc4bbb98756dbac64f15d58e6
BLAKE2b-256 12f82345ef0b5ce79ffb35ba8df970e3035ecc5834e119d31adc084a6217af9a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page