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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ezga_lib-0.0.57.tar.gz.
File metadata
- Download URL: ezga_lib-0.0.57.tar.gz
- Upload date:
- Size: 472.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f46cbcd1c2f2f836ee738895d0ccbf1e3ecab161a8000bca20eb96188c327b5
|
|
| MD5 |
38c6789b51cd5acee6a26f4d6f8f4ca1
|
|
| BLAKE2b-256 |
10d2e0cd97a1c35ff6d716c83402d99790ef35b86b105cb365123711255bc40f
|
File details
Details for the file ezga_lib-0.0.57-py3-none-any.whl.
File metadata
- Download URL: ezga_lib-0.0.57-py3-none-any.whl
- Upload date:
- Size: 533.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03557cc8fdbc8915932b73ab201bea4182703fec72c70c06137b9b955c96d5bc
|
|
| MD5 |
3edda773f931e7a6a7612e69832d2d59
|
|
| BLAKE2b-256 |
aec22cd26451a70eb39de03797a34c731d2eb13e9efd4f46c1f825764fd30861
|