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.1.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.1-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

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

Hashes for growpal-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3868bba3c9bb4c27a42331a6a601191379d829f29e24f18c0f1b4962b0714658
MD5 1c92f2d2ad8ae526a6e1951883545d13
BLAKE2b-256 a0248eaf75c1062a8c7e3bcfa8e44e6e1da223c0d8a1accfedd1b95d8e3c9942

See more details on using hashes here.

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

Hashes for growpal-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dcb743417180c0ba730070cb7baad61dd7a54cb9b60ab329d7e12eecd39b7287
MD5 ed77955830313bca6115558d50a375e3
BLAKE2b-256 a25f52160a8f87cfc423c2bbaa9fb13d3ee24e365c826ccd22919a1ef356827a

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