Configuration of atomate2
atomate2
consists of several different workhorse packages, that need to be properly configured to work well with each other. In this part of the tutorial, adapted from the corresponding section of the atomate2
tutorial, we will configure them one by one.
Pymatgen
Pymatgen configuration is by default stored in YAML format in ~/.config/.pmgrc.yaml
file. If you plan to use
Pymatgen to create input files for FHI-aims, it has to know where the species defaults are located. Please check
Pymatgen tutorial to find out how it can be done.
Database
To configure atomate2
to use MongoDB, the database with several collections needs to be created. We will use the
database named atomate2
with two collections: outputs
for calculation outputs and output_blobs
for large files.
To do that, log in to the MongoDB server with the command mongosh
and run the following.
use atomate2;
db.createCollection("outputs");
db.createCollection("outputs_blobs");
Alternatively, the DB and collections inside can be created through MongoDB Compass.
MongoDB access control management system can be used to add the user to the database, set the password for the user and grant the user the rights to the DB. Here all the relevant information can be found.
atomate2
itself
atomate2
needs to know the command to run FHI-aims. To specify it, we create a YAML config file. The file can be
named and place anywhere; I will put it under the path ~/atomate2-workflows/config/atomate2.yaml
.
AIMS_CMD: mpirun aims.x > aims.out
Here, aims.x
is the FHI-aims binary. Consider adding the location of aims.x
to the $PATH
environmental variable to provide global access to it.
The location of this file is added to the ~/.bashrc
file (~/.zshrc
on a Mac) as,
export ATOMATE2_CONFIG_FILE="${HOME}/atomate-workflows/config/atomate2.yaml"
Running locally: jobflow
jobflow
is the workflow library that can execute workflows either locally or remotely through Fireworks workflow
engine. To run atomate2
workflows, we need to tell jobflow
the DB credentials that we created. It is done
through another YAML file, put under the path ~/atomate2-workflows/config/jobflow.yaml
:
JOB_STORE:
docs_store:
type: MongoStore
database: atomate2
host: localhost
port: 27017
collection_name: outputs
additional_stores:
data:
type: GridFSStore
database: atomate2
host: localhost
port: 27017
collection_name: outputs_blobs
Here also username and password can be specified for access control. The localtion of this file also has to be added
to ~/.bashrc
:
export JOBFLOW_CONFIG_FILE="${HOME}/atomate-workflows/config/jobflow.yaml"
For running atomate2
workflows remotely, please consult corresponding tutorial.