Growth Pattern Algorithm
Project description
GrowPAL
Growth Pattern Algorithm with diversity-preserving selection for global optimization of atomic clusters.
GrowPAL implements a progressive-growth strategy for exploring potential energy surfaces (PESs) of atomic clusters. Its key innovation is incorporating unsupervised structural classification into the selection stage, preserving morphological diversity across growth steps rather than selecting exclusively by energy.
Background
Global optimization algorithms based on progressive growth are widely used to explore PESs of atomic clusters. However, selection schemes based exclusively on energy may reduce structural diversity when multiple competing funnels are present.
GrowPAL addresses this by combining Many-Body Tensor Representation (MBTR) descriptors with hierarchical Ward clustering, preserving representatives from distinct morphological families throughout the growth process. This ensures that alternative growth pathways remain available even when their intermediate configurations are not the most stable structures at a given size.
Key results
- Benchmark calculations on Lennard-Jones clusters (10–130 atoms) recover all reported global minima, including the challenging LJ75–LJ78, LJ98, and LJ102–LJ104 cases.
- Sutton-Chen potential benchmarks for nine parameter sets (clusters up to 90 atoms) reproduce known global minima and identify new putative global minima:
- Palladium (n–m = 12-7): N = 26 and 29
- Aluminum (n–m = 7–6): N = 12 and 20
Installation
pip install growpal
Requires Python >= 3.13.
Dependencies
- aegon — utilities for cluster manipulation and energy sorting
- dscribe — MBTR descriptors for multi-species systems
- numba — JIT-compiled MBTR kernels for monoatomic systems
- scikit-learn — agglomerative clustering
- scipy — sparse graph connectivity
- ASE — atomic structure representation
- joblib — parallel intra-cluster selection
Module overview
| Module | Description |
|---|---|
libgrowpal.py |
Core growth engine: adjacency detection, interstitial atom placement at triangle centroids, focused radial expansion, and parallel processing via multiprocessing.Pool |
libdescriptors.py |
MBTR descriptor computation: fast numba-parallelized path for monoatomic systems (mbtr_comb_fast), and dscribe-based path for multi-species systems (mbtr_comb_dscribe) |
libclustering.py |
Agglomerative Ward clustering with optional k-NN connectivity constraint for scalability to large structure pools |
libselect_clustering.py |
Main selection interface: computes descriptors, clusters, and returns the lowest-energy representatives from each morphological family |
Basic usage
from growpal.libgrowpal import growpal_parallel
from growpal.libselect_clustering import select_by_clustering
# Grow a list of N-atom clusters to N+1
candidates = growpal_parallel(poscarlist, specie='Ar', dtol=1.2)
# Select preserving morphological diversity
selected = select_by_clustering(
candidates,
selection_count=160,
n_clusters=8,
)
Citation
If you use GrowPAL in your research, please cite:
Gutiérrez-Campos I., Merino G., Ortiz-Chi F. Morphological Diversity as a Selection Principle in Growth-Based Global Optimization.
Authors
- Isaac Gutiérrez-Campos — Departamento de Física Aplicada, Cinvestav-IPN, Mérida, México
- Gabriel Merino — Departamento de Física Aplicada, Cinvestav-IPN, Mérida, México
- Filiberto Ortiz-Chi — Secihti-Departamento de Física Aplicada, Cinvestav-IPN, Mérida, México
License
MIT
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 growpal-0.1.1.tar.gz.
File metadata
- Download URL: growpal-0.1.1.tar.gz
- Upload date:
- Size: 26.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3868bba3c9bb4c27a42331a6a601191379d829f29e24f18c0f1b4962b0714658
|
|
| MD5 |
1c92f2d2ad8ae526a6e1951883545d13
|
|
| BLAKE2b-256 |
a0248eaf75c1062a8c7e3bcfa8e44e6e1da223c0d8a1accfedd1b95d8e3c9942
|
File details
Details for the file growpal-0.1.1-py3-none-any.whl.
File metadata
- Download URL: growpal-0.1.1-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcb743417180c0ba730070cb7baad61dd7a54cb9b60ab329d7e12eecd39b7287
|
|
| MD5 |
ed77955830313bca6115558d50a375e3
|
|
| BLAKE2b-256 |
a25f52160a8f87cfc423c2bbaa9fb13d3ee24e365c826ccd22919a1ef356827a
|