Skip to main content

Generator for LAMMPS initial atomic structures for glassy systems.

Project description

Structgen

LAMMPS structure generator for LAMMPS, developed by Vasilii Maksimov at the Functional Glasses and Materials Modeling Laboratory (FGM²L) at the University of North Texas, under the supervision of Dr. Jincheng Du.

Structgen is a command-line utility for generating initial atomic configurations for use with LAMMPS simulations of disordered systems, especially oxide glasses. It supports ATOM and CHARGE pair_style-based atom definitions and allows flexible control over atomic counts, charges, and overall density.

Features

  • Command-line interface with argparse-based subcommands
  • Generates LAMMPS .structure files with atomic positions and box boundaries
  • Supports charged species via atom_style charge
  • Automatically estimates simulation box size based on input density
  • Modular design: atom placement strategies are handled via handler classes
  • Written for reproducible initial structure generation workflows

Installation

Install from PyPI

Regular installation using pip:

pip install lammps-structgen

Install directly from GitHub (bleeding-edge)

For the latest development version:

pip install git+https://github.com/DuGroup-FGM2L/structgen.git

Clone & install locally

For local experimentation or contributing:

git clone https://github.com/DuGroup-FGM2L/structgen.git
cd structgen

# Standard install (no dev extras)
pip install .

# OR editable install (auto-reload while editing)
pip install -e .

Tip: add the [dev] extra to pull in testing, linting, and publishing tools:

pip install .[dev]

Requires Python ≥ 3.9 and numpy.

Usage

After installation, invoke the CLI with:

structgen [subcommand] [options]

Available subcommands:

  • charge: Generate an initial structure for charge atom_style

Example usage:

structgen charge -a 28.085 -a 16.00 2 -1.2 -d 2.2 -f 100 -o si_o_glass.structure

This generates a structure with 100 Si atoms (mass 28.085) and 200 O atoms (mass 16.00, charge -1.2), with an overall density of 2.2 g/cm³. The structure will be written to si_o_glass.structure.

Documentation

All subcommands support -h or --help flags for detailed usage:

structgen charge --help

Design Overview

The project is modular:

  • cli.py: Main entry point, defines CLI and parses arguments
  • handlers/: Contains one handler class per placement strategy (CHARGE, etc.)
  • constants.py: Shared constants (default count and charge)
  • __init__.py: Exposes version metadata
  • pyproject.toml: Build and dependency metadata

Each handler:

  • Parses user-provided atomic specs
  • Calculates simulation box size from density
  • Randomly places atoms while avoiding overlap
  • Returns header and atom sections for LAMMPS input

Development

Install dev dependencies:

pip install .[dev]

Run tests:

pytest

License

GNU General Public License v3.0 (GPLv3). See LICENSE for details.

Author

Vasilii Maksimov
University of North Texas
✉️ VasiliiMaksimov@my.unt.edu

Links

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

lammps_structgen-0.1.4.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

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

lammps_structgen-0.1.4-py3-none-any.whl (25.0 kB view details)

Uploaded Python 3

File details

Details for the file lammps_structgen-0.1.4.tar.gz.

File metadata

  • Download URL: lammps_structgen-0.1.4.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lammps_structgen-0.1.4.tar.gz
Algorithm Hash digest
SHA256 8460d4fb73ca0430b53055e28ad7918a080c3147d0b3ab26162849b95c2c0faa
MD5 bcf4376de1c3b44809ed247150abea94
BLAKE2b-256 b66ab265039c0322cfbe5a303795ebfbc73e3e51d85be2cfd4d6afb343a004f4

See more details on using hashes here.

File details

Details for the file lammps_structgen-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for lammps_structgen-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 68d2df92dcb2ba8402f2877e72d1fd25a1c8c64fce1608ab9e01fa85c4d769ec
MD5 a58cce9e8b6a98f24d56a59ad0567079
BLAKE2b-256 6edb64b692770d620453d07fe8f79484f1394141fa8c2ef22c9c26111f2bb74c

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