Running high through put structure optimization jobs using fireworks and atomate


Thank you for creating atomate and fireworks, they are really useful tools. We have recently started using them to perform structure optimization for a list of structures using VASP. Currently, we generate multiple folders each containing the corresponding initial POSCAR and then use the reservation mode added with the corresponding launch directory to perform optimization in each directory. The python code looks something like this:

wf = wf_structure_optimization(struct)

lpad = LaunchPad.auto_load()



system ("qlaunch --launch_dir " + dop_dir + " -r singleshot")

where ‘dop_dir’ is the directory for the job and struct is the ‘POSCAR’

This is however tricky as mentioned on the tutorials as well, because using both reservation mode and specifying launch directory can be error prone and if a job crashes for some reason, a lot of care needs to be taken for restart.

I wanted to understand what is the best possible way to perform such calculations using these tools.



Hi Siddharth,

Thank you for using our tools.

If I’m submitting multiple calculations, I generally add them in a loop. For example, if structures is a list of Structure objects, the code would be something like:

lpad = LaunchPad.auto_load()

for structure in structures:
    wf = wf_structure_optimization(structure)

Generally we let FireWorks handle the folder generation. For example, I have a script which is run every hour using a cron job to add new workflows to the queue.

export FW_CONFIG_FILE=/path/to/FW_config.yaml
cd /path/to/atomate/calculations
qlaunch rapidfire -m 1000 --nlaunches 1

I can’t speak for everyone but in our group we generally don’t use reservation mode.

Hi Alex,

Sorry for the late reply and thank you for your response. We will try definitely try out your approach :-).