This tutorial will show you how Lobster calculations can be run with atomate (https://atomate.org/) and pymatgen (https://pymatgen.org/). Written by Janine George (janine.george@bam.de) and Aakash Naik (aakash.naik@bam.de).

Please cite our latest Lobster publication if you make use of this tutorial:

R. Nelson, C. Ertural, J. George, V. L. Deringer, G. Hautier, R. Dronskowski, J Comput Chem. 2020, 41, 1931.[PDF]

First load all important classes, methods

Get a structure from the Materials Project that you would like to run (or from elsewhere)

This workflow performs following steps sequentially:

  1. Perform an geometry optimization of the retrieved structure
  2. Static vasp calculation (Computes wavecar needed for lobster runs)
  3. Test all possible basis functions (Lobster runs)
  4. Finally will delete the wavecars

(We use PBE_54 pseudopotentials by default!)

For this tutorial we would be using get_wf_lobster_test_basis workflow from atomate.

This workflow at present is flexible and can be tuned as per users needs. However, there are some limitations and further options will be added soon in near future. Following are the list of arguments applicable to get_wf_lobster_test_basis workflow:

Next code block shows an example of using this workflow to add calculation to DB

Add additional information to the database (e.g., name of the material)

Snapshot of generated fireworks workflow from its webgui interface from above code snippet

Workflow snapshot

It is better to use different "workers" for different job types, we will use a powerup to set this.

The standard one should be used for VASP. Then, you need one for lobster and for deleting the WAVECARs. The name of those workers should be corresponding to "fworker_name".

Here, it would be "manneback_lobster" and "manneback_delete".

(One can rename this tags to own liking, just need to make sure you change the corresponding fworker_name in my_fworker_lobster.yaml and my_fworker_delete.yaml respectively)

Sample my_fworker_lobster.yaml file looks like this

name: 'manneback_lobster'
category: ''
query: '{}'
env:
   db_file: /path/to/db.json
   vasp_cmd:  mpirun -np 48  /path/to/vasp/
   lobster_cmd: /path/to/Lobster/
   scratch_dir: null
   auto_npar: True

Adds workflows to launchpad (lpad)

How to start the jobs:

You have to write my_fworker_lobster.yaml and my_fworker_delete.yaml files and correspnding queueadapter files that are called "my_qadapter_lobster.yaml" and "my_qadapter_delete.yaml" here.

And then, use the following commands in your shell:

qlaunch -r rapidfire
qlaunch -r --fworker_file ~/.fireworks/my_fworker_lobster.yaml --queueadapter_file ~/.fireworks/my_qadapter_lobster.yaml rapidfire
qlaunch -r --fworker_file ~/.fireworks/my_fworker_delete.yaml --queueadapter_file ~/.fireworks/my_qadapter_delete.yaml rapidfire