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.5.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.5-py3-none-any.whl (25.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lammps_structgen-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 90fd5026e5ff3864301091ff406331954c020ad9dd4b81f7fe509d9ca4f5c2eb
MD5 235a73b584bb208de0b8d6f08f31a72a
BLAKE2b-256 3f95b862cac660d409e54ecd975dd2eb25ac56b2797d20f126eef28614ca5068

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lammps_structgen-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9fe38ca5997cb043c1dfc9b130692a93482060b8003d29b9f5f39c70c030a824
MD5 94af41fb5f4de082107235d676c9e6d1
BLAKE2b-256 eaa2581f27f472a59ffd2f66784171960dba16f865acaaa87d36435239ea7169

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