Workflows

The Workflows module provides the Fireworks-based workflows for the high-throughput computational workflow that populated the D3TaLES database.

Modules

Important Fireworks-based modules include:

  • Calculation-specific modules for FireTasks:

    • Initialize: FireTasks for initialize molecules and getting basic molecular information

    • Gaussian: FireTasks for Density Functional Theory calculations with Gaussian

    • In development Gromacs: FireTasks for Molecular Dynamics simulations with Gromacs

  • D3TaLES_FW: defines all Fireworks

  • wf_writer: defines Workflows

The other modules are not of much importance for upper-level use because their functionalities are simply imported by the Fireworks based modules. But, to summarize, these modules include:

  • ParamSet: translates dictionary-based calculation parameters (e.g., functional, basis set, etc.) for use in workflow

  • wtuning: module adapted from the OCELOT API for performing IP fitting

  • utils: utility functions and environment variables

Submitting basic workflow

The following code submits a basic workflow.

import os
from fireworks.core.launchpad import LaunchPad
from d3tales_api.Workflows.wf_writer import d3tales_wf
from d3tales_api.Workflows.ParamSet import GausParamSet


BASE_DIR = "" # BASE_DIR must be defined 
lpad_file = os.path.join(BASE_DIR, 'config', 'my_launchpad.yaml')  # See notes about config directory 
param_file = os.path.join(BASE_DIR, 'parameter_file.json')

# Establish calculation parameters from parm_file json file
paramset = GausParamSet().from_json(param_file)

# Define Fireworks Workflow 
wf = d3tales_wf(paramset, smiles="CCCC", wtune=True, solvent='acetonitrile')

# Add the workflow to the Fireworks launchpad
info = LaunchPad().from_file(lpad_file).add_wf(wf)

Config Directory

The directory where jobs are launched should also contain a config directory. This should contain fireworks configuration files, including FW_config.yaml, my_fireworker.yaml, and my_launchpad.yaml. The directory ex_config provides an example for the config directory. Remember, the config directory must be in the same parent directory as d3tales_fw.