Welcome to the Otago Research Genetic Algorithm for Nanoclusters, Including Structural Methods and Similatity (Organisms) documentation!¶
Section author: Dr. Anna Garden <email@example.com>
Section author: Geoffrey Weal <firstname.lastname@example.org>
Group page: https://blogs.otago.ac.nz/annagarden/
Page to cite with work from: Development of a Structural Comparison Method to Promote Exploration of the Potential Energy Surface in the Global Optimisation of Nanoclusters; Geoffrey R. Weal, Samantha M. McIntyre, and Anna L. Garden; JCIM; in submission stage.
What is this Documentation about?¶
This documentation is designed to guide the user to use the Otago Research Genetic Algorithm for Nanoclusters, Including Structural Methods and Similatity (Organisms) program.
What is Organisms¶
The Otago Research Genetic Algorithm for Nanoclusters, Including Structural Methods and Similarity (Organisms) program is designed to perform a genetic algorithm global optimisation for nanoclusters. It has been designed with inspiration from the Birmingham Cluster Genetic Algorithm and the Birmingham Parallel Genetic Algorithm from the Roy Johnston Group
J. B. A. Davis, A. Shayeghi, S. L. Horswell, R. L. Johnston, Nanoscale, 2015,7, 14032 (https://doi.org/10.1039/C5NR03774C or link to Davis pdf here)
R. L. Johnston, Dalton Trans., 2003, 4193–4207 (https://doi.org/10.1039/B305686D or link to Johnston pdf here).
This algorithm is designed to explore the potential energy surface of a cluster system, using the genetic algorithm, and to local the putative globally lowest energetic cluster. It was designed for obtaining low energy structures of clusters that could be catalytically interesting. The algorithm was designed by Dr Anna Garden and the Garden group at the University of Otago, Dunedin, New Zealand. See for more information about what the group does at blogs.otago.ac.nz/annagarden. The Github page for this program can be found at github.com/GardenGroupUO/Organisms.
The genetic algorithm uses the ideas of Darwin’s theory of evolution to locate the global minimum.
This implementation of the genetic algorithm includes various predation, fitness and epoch operators. Also included is the SCM-based predation operator and a ‘’structure + energy’’ fitness operator.
The SCM-based predation operator compares the structures of clusters together and excludes clusters from the population that are too similar to each other.
The ‘’structure + energy’’ fitness operator is designed to include a portion of structural diversity into the fitness value as well as energy. The goal of this fitness operator is to guide the genetic algorithm around to unexplored areas of a cluster’s potential energy surface.
With the use of Atomic Simulation Environment, this algorithm has been designed so that you can record all the clusters you make, or just the important ones such as the lowest energy clusters that you make
Try Organisms before you Clone/Pip/Conda (on Binder/Jupter Notebooks)!¶
If you are new to the Organisms program, it is recommended try it out by running Organisms live on our interactive Jupyter+Binder page before you download it. On Jupyter+Binder, you can play around with the Organisms program on the web. You do not need to install anything to try Organisms out on Jupyter+Binder.
Click the Binder button below to try Organisms out on the web! (The Binder page may load quickly or may take 1 or 2 minutes to load)
It is recommended to read the installation page before using the Organisms program. See Installation: Setting Up the Organisms Program and Pre-Requisites Packages for more information. Note that you can install Organisms through
Table of Contents¶
- How the Otago Research Genetic Algorithm for Nanoclusters, Including Structural Methods and Similatity (Organisms) Program Works
- Installation: Setting Up the Organisms Program and Pre-Requisites Packages
- How To Use The Organisms Program
- Run.py - Running the Genetic Algorithm
- Examples of Running the Organisms Program with Run.py
- RunMinimisation.py - Writing a Local Minimisation Function for the Genetic Algorithm
- MakeTrials.py - Creating Multiple, Repeated Genetic Algorithm Trials
- Safely Finishing the Genetic Algorithm Midway through the Algorithm
- Restarting the Genetic Algorithm
- Common Issues of the Genetic Algorithm and Ways to Solve Them
- Randomly generated clusters all explode when creating the initial population
- My cluster does not locally minimise properly of there is an error with ASAP
- I have tried to run my genetic algorithm, but it won’t run because it says that a file called
ga_running.lockexists in the genetic algorithms directory
- The ase database website is not formatted correct/format is hard to use
- I am having issues that some jobs are not submitted to slurm every so often when running
Run_mass_submitSL_slurm.pyand it is having to resubmit jobs
- I found that when the fitness operator gave a
ZeroDivisionErrorerror when trying to obtain the
CNA_fitness_contributionor the energy fitness value of
- Helpful Programs to Create and Run the Genetic Algorithm
- What to make sure is done before running any of these scripts.
- get_newly_initilised_population.py - Creating an initial population of randomly generated clusters
- Run_submitSL_slurm.py - How to execute all the Run.py files for all Trial folders in slurm
- Run_mass_submitSL_slurm.py - How to execute all Trials using the JobArray Slurm Job Submission Scheme
- make_finish_files.py - How to safely exit a genetic algorithm that not completed all generations
- remove_finish_files.py - Removing all
finishfiles from many directories
- remove_lock_files.py - Removing all
ga_running.lockfiles from many directories
- Helpful Programs for Gathering data and Post-processing Data
- What to make sure is done before running any of these scripts.
- Did_Complete.py - Have all your genetic algorithm trials completed?
- Did_Find_LES.py - Did all your genetic algorithm trials find the global minimum?
- GetLESOfAllTrials.py - Get information of generations and number of minimisations performed
- Postprocessing_Database.py - For breaking a large database into smaller chunks
- database_viewer.py - Viewing GA databases with ASE database website viewer with metadata
- make_energy_vs_similarity_results.py - For analysing the genetic algorithm under-the-hood
- Information about using the make_energy_vs_similarity_results.py script
- Other Helpful Programs for Gathering data and Post-processing Data
- Initialising a New Population
- Using Predation Operators with the Genetic Algorithm
- Using Fitness Operators with the Genetic Algorithm
- The Structural Comparison Method (SCM)
- Using the Memory Operator
- Using Epoch Methods
- Recording Clusters From The Genetic Algorithm
- Using Databases with the Genetic Algorithm
- Adding Surfaces
- The Genetic Algorithm Python Files
- Python Module Index