Clinamen: a Python package for the first-principles systematic discovery of low-energy configurations in defective systems.
Project description
Purpose
Clinamen: Covariance-matrix-adaptation evolution strategy for Localized Impurities with unsupervised Machine learning Exploration of Non-elementary structures.
Clinamen is a software package developed in order to assist in the discovery of low-energy defective configurations in first-principles atomistic calculations.
The approach is based on a modified version of the covariance-matrix-adaptation evolution-strategy (CMA-ES), a state-of-the-art evolutionary algorithm for continuous-parameter multimodal optimization. In addition, the approach employs an unsupervised machine learning model for identifying additional local minima explored during the run of the evolutionary algorithm. A supervised Gaussian-process regressor trained on-the-fly during the evolutionary process can also be used in order to reduce the number of first-principles calculations.
Clinamen is written mostly in Python and employs Cython and C extension modules for an increased computational speed.
Installation
The code is available on the PyPi index. The easiest way to install Clinamen is through pip:
pip install clinamen
We suggest to create a virtual environment in which the Clinamen code can be installed.
The requirements for a successful installation are:
Python version 3.8 or newer;
NumPy version 1.18 or newer;
SciPy version 1.5 or newer;
Pandas version 1.0 or newer;
scikit-learn version 0.23 or newer;
Cython version 0.29 or newer;
mpi4py version 3.0 or newer;
h5py version 2.10 or newer;
Atomic Simulation Environment version 3.19 or newer;
PyTorch version 1.7 or newer;
GPyTorch version 1.3 or newer;
DScribe version 0.4 or newer.
It might be that some packages cannot be installed directly with the Clinamen package using pip (for example PyTorch installation could fail in this way). For this reason these packages have to be installed manually before installing Clinamen with pip.
Contacts
Marco Arrigoni - marco.arrigoni@tuwien.ac.at
Georg K. H. Madsen - georg.madsen@tuwien.ac.at
The meaning of the word clinamen
Clinamen is the name that the Roman philosopher and poet Titus Lucretius Carus gave to the random deviations in the rectilinear motion of atoms, which, according to the Epicurean atomistic theory, are responsible for their collisions and aggregation into objects.
In the De Rerum Natura, Lucretius also presents a theory of natural selection based on the random generation, by the Earth, of creatures of any sort, among which only the most fit ones are able to survive and reproduce.
The importance of the random generation of individuals and of fitness-based selection in the doctrine of Lucretius, together with the fact that clinamen can be used as an acronym describing the main ingredients of the method implemented in this package, are the main reasons for the choice of this name.
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
File details
Details for the file Clinamen-0.2.0a3.tar.gz
.
File metadata
- Download URL: Clinamen-0.2.0a3.tar.gz
- Upload date:
- Size: 228.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.6.0.post20210108 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 820b21cd0dc914cb778558e4fcc94a751f5be20174b9e745f152b6556d000c69 |
|
MD5 | 4cd69cfcfa44a3d8cd39a79bedc4bc13 |
|
BLAKE2b-256 | cd1dfd270d00cb05bdafb4d9b4c864a20cde411246a7135965320168be8b8961 |