Module for Ab Initio Structure Evolution (MAISE) features
* neural network-based description of interatomic interactions
* evolutionary optimization
* structure analysis
1. General info
2. Download and Installation
3. Input
4. Examples
5. Setup input tag description
MAISE has been developed by
Alexey Kolmogorov [email protected]
Samad Hajinazar [email protected]
Ernesto Sandoval [email protected]
Current version 2.7 works on Linux platforms and combines 3 modules for modeling, optimizing, and analyzing atomic structures.
1 The neural network (NN) module builds, tests, and uses NN models to describe interatomic interactions with near-ab initio accuracy at a low computational cost compared to density functional theory calculations.
With the primary goal of using NN models to accelerate structure search, the main function of the module is to relax given structures. To simplify the NN application and comparison, we closely matched the input and output file formats with those used in the VASP software. Previously parameterized NN models available in the 'models/' directory have been generated and extensively tested for crystalline and/or nanostructured materials. First practical applications of NNs include the prediction of new synthesizable Mg-Ca alloys [1] and identification of more stable Cu-Pd-Ag nanoparticles [2].
Users can create their own NN models with MAISE which are typically trained on density functional theory (DFT) total energy and atomic force data for relatively small structures. The generation of relevant and diverse configurations is done separately with an 'evolutionary sampling' protocol detailed in our published work [3]. The code introduces a unique feature, 'stratified training', of how to build robust NNs for chemical systems with several elements [3]. NN models are developed in a hierarchical fashion, first for elements, then for binaries, and so on, which enables generation of reusable libraries for extended blocks in the periodic table.
2 The implemented evolutionary algorithm (EA) enables an efficient identification of ground state configurations at a given chemical composition. Our studies have shown that the EA is particularly advantageous in dealing with large structures when no experimental structural input is available [3,4].
The searches can be performed for 3D bulk crystals, 2D films, and 0D nanoparticles. Population of structures can be generated either randomly or predefined based on prior information. Essential operations are 'crossover', when a new configuration is created based on two parent structures in the previous generation, and 'mutation', when a parent structure is randomly distorted. For 0D nanoparticles we have introduced a multitribe evolutionary algorithm that allows an efficient simultaneous optimization of clusters in a specified size range [2].
3 The analysis functions include the comparison of structures based on
the radial distribution function (RDF), the determination of the space
group and the Wyckoff positions with an external SPGLIB package,
etc. In particular, the RDF-based structure dot product is essential
for eliminating duplicate structures in EA searches and selecting
different configurations in the pool of found low-energy structures.
[1] https://pubs.rsc.org/en/content/articlelanding/2018/cp/c8cp05314f#!divAbstract
[2] https://pubs.rsc.org/en/content/articlelanding/2019/cp/c9cp00837c#!divAbstract
[3] https://journals.aps.org/prb/abstract/10.1103/PhysRevB.95.014114
[4] https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.109.075501
[5] https://journals.aps.org/prb/abstract/10.1103/PhysRevB.98.085131
The source code for MAISE can be obtained from the commandline by running:
git clone git://github.com/maise-guide/maise.git
or
git clone https://github.com/maise-guide/maise.git
or
wget -O master.zip https://github.com/maise-guide/maise/archive/master.zip
unzip master.zip
1 Use 'make --jobs' for full compilation. For recompilation, use 'make clean' to remove object files or 'make clean-all' to remove object files and external libraries.
2 During MAISE compilation, 'make --jobs' checks if two required external libraries, GSL library and SPGLIB v1.11.2.1, Feb 2019, are present. If not, they will be automatically downloaded to ./ext-dep and installed in ./lib on most systems.
3 If the GSL or SPGLIB installation is not completed automatically please compile them manually and copy (i) libgsl.a, libgslcblas.a and libsymspg.a into the './lib' subdirectory; (ii ) the 'spglib.h' header into './lib/include' subdirectory; and (iii) all gsl headers into the './lib/include/gsl' subdirectory.
4 A 'check' script is available in the './test/' directory which can be run after compiling the maise executable to ensure the proper functionality of the code. This script automatically checks for the performance of the code in parsing the data, training the neural network, and evaluating a crystal structure. If the compilation is fine the 'check' script will output so; otherwise error logs will be provided with further information about the issue.
The code has been extensively tested on Linux platforms. We will appreciate users' feedback on the installation and performance of the package on different platforms.
Main input files that define a simulation are 'setup' with job settings, 'model' with NN parameters, and 'POSCAR' with atomic structure parameters in the VASP format. Conversion of atomic environments into NN inputs during the parsing stage of NN development requires a 'basis' file that specifies Behler-Parrinello symmetry functions.
EVOS | NNET | CELL | |||||
SEARCH | EXAM | PARSE | TRAIN | TEST | SIMUL | EXAM | |
setup | + | + | + | + | + | + | |
model | +* | +# | +# | ||||
basis | + | $ | |||||
SPG | + | + | |||||
GSL | + | + | |||||
* for stratified training one needs to provide individual models
$ 'basis' stored in the parsed directory is appended to 'model' at the end of the training # 'model' has 'basis' pasted at the end once training is finished |
The structure examination and manipulation functions are run by calling maise with a flag:
maise -flag
Flag | Flag Description |
---|---|
man | output the list of available flags |
rdf | compute and plot the RDF for POSCAR |
cxc | compute dot product for POSCAR0 and POSCAR1 using RDF |
cmp | compare RDF, space group, and volume of POSCAR0 and POSCAR1 |
spg | convert POSCAR into str.cif, CONV, PRIM |
cif | convert str.cif into CONV and PRIM |
rot | rotate a nanoparticle along eigenvectors of moments of inertia |
dim | find whether POSCAR is periodic (3) or non-periodic (0) |
box | reset the box size for nanoparticles |
sup | make a supercell specified by na x nb x nc |
vol | compute volume per atom for crystal or nano structures |
Directory 'examples/' has samples of maise jobs for unit cell analysis and manipulation, parsing data, training neural networks, simulating structures with neural network models, evolutionary search for ground state wit neural network model, molecular dynamics run, and phonon calculation. Eash example has a README file, a setup file with only relevant tags for the particular job, and reference output files for comparison.
Main job type selector
Structure-enviroment
Main EVOS
EVOS operations
EVOS crossover/mutation
Molecular dynamics
Species related
I/O
General model
Neural Network model
Neural Network training
Parsing
Cell relaxation
CODE DENE KMSH LBOX NDIM NITR NNJB NPOP RAND RUNT SEED SITR TINI
BLOB CHOP INVS MATE MUTE PACK PLNT REFL RUBE SWAP TETR
ACRS ADST ELPS LCRS LDST MCRS SCRS SDST
CPLT CPLP ICMP DELT MOVI NSTP MDTP TMAX TMIN TSTP