Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

growpal-0.1.0.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

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

growpal-0.1.0-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file growpal-0.1.0.tar.gz.

File metadata

  • Download URL: growpal-0.1.0.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

Hashes for growpal-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7d902bb50a9bc50e5f69d3cd5465b45ac0ef990194e6c49f902f8d07d0fb5702
MD5 1de8d61e050bf45b248ca51a830ff538
BLAKE2b-256 7a6b36867939bd4c72b33bdc09ba25ef3051ab60598cab187981405ba0ec8f98

See more details on using hashes here.

File details

Details for the file growpal-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: growpal-0.1.0-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

Hashes for growpal-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e532c02a4a15a38c57679479620a38b0d8db27e4aca51583559f564d938de125
MD5 adaf0ecaa0c76c9340d39e39ca1a78f1
BLAKE2b-256 227bf209372cd0d3a881b704c841074180a703e1ccf773e38b36c5458b553d17

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