Skip to content

OneTrueJian/mace-aevo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mace-aevo – Atomistic Evolution with MACE Potential Support

A fork of ævo with added support for the MACE machine learning interatomic potential as a fitness evaluation model.

What's changed

The original ævo uses Ewald summation (electrostatic energy) as the fitness function for evolutionary structure optimization. This fork adds a MACE model option, allowing the use of the MACE universal potential (mace-mp) to evaluate total energies — enabling structure optimization driven by a pre-trained machine learning potential instead of a purely electrostatic model.

Modified files

  • examples/01-Li2NiMnO4/eval-fitness.py: Added --model argument supporting "Ewald" (original) and "mace" (new). The MACE mode uses mace_mp(model="medium") via ASE.
  • examples/01-Li2NiMnO4/run-aevo.sh: Added configurable model variable passed to eval-fitness.py.

Usage

# Original Ewald mode (default)
./run-aevo.sh  # with model="Ewald" in the script

# MACE mode
# Set model="mace" in run-aevo.sh, then:
./run-aevo.sh

Or call the fitness script directly:

./eval-fitness.py --model mace
./eval-fitness.py --model Ewald

Additional dependencies (beyond original ævo)

  • MACE (pip install mace-torch)
  • ASE (Atomic Simulation Environment)

Original README

ævo – Atomistic Evolution

A Python package for the optimization of atomic configurations using an evolutionary algorithm.

ævo implements the differential evolution method [1] to search for the global ground state atomic ordering with respect to a fitness function. The package is not limited to a specific fitness function but instead calls an external user-provided script to evaluate the fitness of a given atomic configuration.

Prerequisites

The ævo package makes use of the Python Materials Genomics (pymatgen) toolkit for the input and output of atomic structures. See the pymatgen website (http://pymatgen.org) for installation instructions.

References

Please cite the following references in all products/publications that made use of ævo:

[1] ævo reference: N. Artrith, A. Urban, and G. Ceder, J. Chem. Phys. 148 (2018) 241711. [2] Differential evolution method: R. Storn and K. Price, J. Global Optim. 11 (1997) 341-359. [3] pymatgen toolkit: S. P. Ong et al., Comput. Mater. Sci. 68 (2013) 314-319.

Installation

 $ pip install . --user

Once installed, make sure that the command line tool aevolution.py is available in the system path:

 $ aevolution.py --help

Usage

Evolutionary optimization using ævo proceeds via the following steps:

  1. Generate initial trial atomic configurations
  2. Evaluate the fitness of all new trials in current population using a user-provided script
  3. Cross trials from current population to generate new trials, select current trials with good fitness with greater probability
  4. Introduce random mutations in the newly generated trials
  5. Select which trials will be kept in the population with a probability proportional to the fitness
  6. Continue with step 1.

See the examples subdirectory for usage examples.

About

Fork of ævo with MACE machine learning potential as fitness evaluation model for evolutionary structure optimization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages