Skip to main content

A modular multi-objective genetic algorithm framework for atomistic structure exploration

Project description

EZGA — Evolutionary Structure Exploration Framework

Overview

EZGA is a modular, scalable, and chemically aware evolutionary framework for exploring and optimizing atomistic structures. It follows the GitLab Enterprise Documentation Style, emphasizing clarity, task‑orientation, operational guidance, and maintainability. This page serves as the primary landing document for new users and contributors.

EZGA enables configuration‑first evolutionary searches across molecular, cluster, crystalline, and surface systems. The engine integrates interchangeable components—initialization, features, objectives, selection, variation, convergence, and simulation—built around reproducible workflows and deterministic archival.


Key capabilities

  • Configuration‑driven GA engine for molecules and periodic crystals.
  • Composable modules: initialization, constraints, features, objectives, selection, variation, simulator, convergence.
  • Robust execution: deterministic seeds, deduplication, integrity checks, scalable parallelism.
  • Physical‑model integration with ASE/MACE or any Python‑callable evaluator.
  • Hierarchical Supercell Escalation (HiSE) for periodic systems.
  • Task‑oriented workflows: copy → modify → run.

Why use EZGA

  • Explore large compositional/structural spaces efficiently.
  • Apply human‑readable constraints (e.g., greater_than("Cu", 1)).
  • Start with datasets or DoE space‑filling seeds; escalate to larger supercells.
  • Increase robustness using integrity checks that avoid unphysical trial structures.
  • Scale seamlessly from a laptop to multi‑GPU clusters.

Get started fast

1. Install (Python ≥ 3.10)

pip install ezga_lib

Optional GPU/ML potential dependencies (MACE/ASE, CUDA/ROCm) depend on your environment. See Simulator in the Wiki.

2. Smoke test

import ezga
print(getattr(ezga, "__version__", "unknown"))

3. Run your first job

Follow the minimal runnable script in Quickstart.

Tip: In GitLab Wiki, section anchors work like: ./Constraints#greater-than.


Documentation

Full documentation is available in the project's GitLab Wiki:


Repository structure

src/ezga/
    core/                   # GA engine
    selection/              # Parent selectors
    variation/              # Mutation & crossover operators
    hise/                   # Supercell escalation
    thermostat/             # Exploration–exploitation control
    DoE/                    # Design-of-Experiments initializer
    bayesian_optimization/  # Surrogate-driven generative module
    convergence/            # Termination logic
    simulator/              # MD, relaxations, MLIPs
    evaluator/              # Feature & objective metrics
    visualization/
    sync/                   # Island-model mailbox
    io/                     # SQL–HDF5 state storage
    cli/                    # Command-line interface
    utils/

docs/                       # Sphinx documentation
tests/                      # Regression tests
dist/                       # Build artifacts
examples/                   # Example workflows

Usage

YAML workflow

ezga run config.yaml

Python API

from ezga import Agent, load_config
config = load_config("config.yaml")
agent = Agent(config)
agent.run()

Benchmarks

EZGA is validated on:

  • Molecular conformational exploration (alanine dipeptide).
  • Lennard–Jones cluster global search.
  • Binary‑oxide convex‑hull reconstruction.
  • Autonomous CuO/Cu₂O grand‑canonical phase diagram.

Issues & Support

Use the GitLab Issues board to report problems, request enhancements, or ask questions:

Issue templates (if configured) are available here: Issue templates


Authors

  • Juan Manuel Lombardi
  • Felix Riccius
  • Charles W. P. Paré
  • Karsten Reuter
  • Christoph Scheurer

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

ezga_lib-0.0.55.tar.gz (439.0 kB view details)

Uploaded Source

Built Distribution

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

ezga_lib-0.0.55-py3-none-any.whl (492.4 kB view details)

Uploaded Python 3

File details

Details for the file ezga_lib-0.0.55.tar.gz.

File metadata

  • Download URL: ezga_lib-0.0.55.tar.gz
  • Upload date:
  • Size: 439.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for ezga_lib-0.0.55.tar.gz
Algorithm Hash digest
SHA256 25425576445b52142ba2a6efcc90c20bdc2acce0937883ce1086be055eb8e429
MD5 a66a120cbae73a5f9cdbe5440719ee61
BLAKE2b-256 b5afa4355e06fcadc3e0fdfb88e06e121a5e42dd245db4f1fd87afc53cf4ea7a

See more details on using hashes here.

File details

Details for the file ezga_lib-0.0.55-py3-none-any.whl.

File metadata

  • Download URL: ezga_lib-0.0.55-py3-none-any.whl
  • Upload date:
  • Size: 492.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for ezga_lib-0.0.55-py3-none-any.whl
Algorithm Hash digest
SHA256 9c61216a7271bddd3bfd1ddde49af8a5fb5c3bd8a74f3828fd1f94a92114844a
MD5 1bf6e39adaf4f590422a5592b102719a
BLAKE2b-256 4fcd97c0d952850dba4b163d47abaf8d5568ded4f64a5b533a12264b72970794

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