Skip to main content

Nanoworks is a unified, high-level Python interface for conducting DFT, MD and ML calculations

Project description

[!IMPORTANT] gpaw-tools has evolved and is now called Nanoworks! The gpaw-tools project began as a script that utilized only ASE and GPAW. Over the course of four years, it evolved into a comprehensive suite leveraging multiple libraries, including ASAP3, Phonopy, Elastic, OpenKIM, and now modern Machine Learning Potentials (MACE, CHGNet, SevenNet).

Nanoworks

License: MIT Issues: Pull requests: Latest version: Release date: Commits: Last Commit:

Introduction

Nanoworks is a unified, high-level Python interface for conducting Density Functional Theory (DFT), Molecular Dynamics (MD), and Machine Learning (ML) potential calculations.

It acts as a wrapper and orchestrator for several powerful scientific libraries, making advanced materials simulation accessible through simple command-line tools.

Core Capabilities:

  1. DFT (via GPAW & ASE): The dftsolve tool runs PW or LCAO mode calculations. It handles structure optimization, equations of state, elastic tensors, spin-polarized DOS/Band structure, electron densities, phonon calculations, and optical properties (RPA/BSE).
  2. MD (via ASAP3 & OpenKIM): The mdsolve tool provides quick geometric optimization and molecular dynamics using interatomic potentials from OpenKIM.
  3. ML Potentials (New!): The mlsolve tool enables geometry optimization and static calculations using state-of-the-art Machine Learning Force Fields (MLFF), including MACE, CHGNet, and SevenNet.

Installation

Nanoworks is a Python package. You can install it with pip. However, because you need many other system libraries and Python libraries to be installed, it is better to look at the Nanoworks Installation webpage for more detailed installation and usage instructions.

Tools & Usage

After installation, the following commands will be available in your terminal:

1. dftsolve (formerly gpawsolve.py)

The main driver for DFT calculations using GPAW. Uses many cores with -p argument.

Usage:

dftsolve -p <cores> -g <geometry.cif> -i <input.py> 

Usage in auto mode:

dftsolve -p <cores> -g <geometry.cif> -a 

Arguments:

  • -g, --geometry: Path to the geometry file (CIF format).
  • -i, --input: Path to the Python input file defining calculation parameters.
  • -e, --energy: (Optional) Measure energy consumption (Intel CPUs only).
  • -v, --version: Version information.
  • -p, --parallel: Number of cores to run in parallel.
  • -a, --auto: Auto mode. Automatically generate input parameters based on geometry.

2. mdsolve (formerly asapsolve.py)

Perform quick geometric optimizations or MD runs using classical potentials via ASAP3 and OpenKIM.

Usage:

mdsolve -g <geometry.cif> -i <input.py>

Arguments:

  • -g, --geometry: Path to the geometry file.
  • -i, --input: Path to the input file overriding default parameters (e.g., potential selection).

3. mlsolve (New!)

Run geometry optimizations or static calculations using Machine Learning Force Fields.

Usage:

mlsolve -g <geometry.cif> -i <input.py>

Arguments:

  • -g, --geometry: Input geometry file (cif, xyz, POSCAR, etc.).
  • -i, --input: Path to the Python input file defining calculation parameters.

Example:

# Optimize a structure using MACE (with parameters in ml_input.py)
mlsolve -g structure.cif -i ml_input.py

Supported Models: mace, chgnet, sevennet.

4. nanoworks

A helper CLI to locate package resources like examples and optimization scripts. For now, it is only showing helpful information. In the future, it will be equipped with more

$ nanoworks
Welcome to Nanoworks!
Version: 0.0.1
Optimizations folder: /path/to/site-packages/nanoworks/optimizations
Examples folder: /path/to/site-packages/nanoworks/examples

5. qeconverter and vaspconverter

Command for creating nanoworks input and geometry files from QE and/or VASP files.

$ qeconverter --input si.scf.in --output-dir example_folder --system-name SiliconQE
$ vaspconverter --poscar POSCAR --incar INCAR --kpoints KPOINTS --output-dir example_folder --system-name Silicon

Helper Scripts

Nanoworks includes several optimization scripts (found via the nanoworks command) to help converge DFT parameters:

  • optimize_cutoff.py
  • optimize_kpoints.py
  • optimize_kptsdensity.py
  • optimize_latticeparam.py

Examples

The package includes an examples/ directory covering various scenarios. You can find the location of these examples by running the nanoworks command.

Citing

Please do not forget that Nanoworks is a user interface software. For the main DFT calculations, it uses ASE and GPAW. It also uses the Elastic Python package for elastic tensor solutions and ASAP with the KIM database for interatomic interaction calculations and Phonopy for the phonon calculations. Therefore, you must know what you use and cite them properly. Here, the basic citation information of each package is given.

ASE

GPAW

KIM

Elastic

Phonopy

MACE

CHGNet

SevenNet

And for Nanoworks usage, please use the following citation:

Many other packages need to be cited. With GPAW, you may need to cite LibXC or cite for LCAO, TDDFT, and linear-response calculations. Please visit their pages for many other citation possibilities. For more you can visit https://wiki.fysik.dtu.dk/ase/faq.html#how-should-i-cite-ase, https://wiki.fysik.dtu.dk/gpaw/faq.html#citation-how-should-i-cite-gpaw, and https://openkim.org/how-to-cite/.

Licensing

This project is licensed under the terms of the MIT license.

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

nanoworks-26.2.0.tar.gz (60.8 kB view details)

Uploaded Source

Built Distribution

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

nanoworks-26.2.0-py3-none-any.whl (45.6 kB view details)

Uploaded Python 3

File details

Details for the file nanoworks-26.2.0.tar.gz.

File metadata

  • Download URL: nanoworks-26.2.0.tar.gz
  • Upload date:
  • Size: 60.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for nanoworks-26.2.0.tar.gz
Algorithm Hash digest
SHA256 8532185e0e823dc1360c1d2405d3caa1eed5b97a099a9b89a6d4bd2bddda6863
MD5 fa5ded850831d9156acc83eba0277b7d
BLAKE2b-256 de94bf15db03d2ce5a95d82b9844141767e1a52cf73781a51cca3ac46c209f6c

See more details on using hashes here.

File details

Details for the file nanoworks-26.2.0-py3-none-any.whl.

File metadata

  • Download URL: nanoworks-26.2.0-py3-none-any.whl
  • Upload date:
  • Size: 45.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for nanoworks-26.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 148365fb1d6e7fc811acd3cb7ef94422fea43ee662100c91a3f8a528eb3c6e74
MD5 6aea647c7f5653832d06ea5e0980483f
BLAKE2b-256 cc5becbc331ab403e39ef9523cc00e2761ea3065066fd014b83917b25e8cd7c5

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