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 CHARGE-style 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/superde1fin/structgen.git

Clone & install locally

For local experimentation or contributing:

git clone https://github.com/superde1fin/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 (if defined):

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.1.tar.gz (17.8 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.1-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lammps_structgen-0.1.1.tar.gz
  • Upload date:
  • Size: 17.8 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.1.tar.gz
Algorithm Hash digest
SHA256 238a5e720278f2e1b8c61b5a5591b714c71b284a9d196120f096267efea7fcd0
MD5 85895db11c6542851214181103025adf
BLAKE2b-256 1b6cbd6ca8e6461e84c1b1972f507973127102210d6e798f35185ea1600dae3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lammps_structgen-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c7bf61bd019e01ce9c544052cdd0d56ded0db9e65084cb59d45c5889c2b0243a
MD5 00126589a34bceda24def3a7a676a6a4
BLAKE2b-256 091c13d362e53bd18fc3b1ce2223aa2e6e22d46778b991c642fc77fcc4c9e823

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