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:
D3TaLES_FW
: defines all Fireworkswf_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 workflowwtuning
: module adapted from the OCELOT API for performing IP fittingutils
: 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
.