Workflow naming conventions¶
How we name workflows¶
All workflow names follow a specific format of type.app.preset
:
type
: the type of analysis the workflow is doing (relaxation, static-energy, dynamics, ...)
app
: the third party software that the workflow uses to run (vasp, abinit, qe, deepmd, ...)
preset
: a unique name to identify the settings used (matproj, quality00, my-test-settings,...)
Example
Using the workflow like static-energy.vasp.matproj
this means that...
- type = static energy (runs a single point energy)
- app = vasp (uses VASP to calculate the energy)
- preset = matproj (uses "Materials Project" settings)
Class name vs. mini name¶
type.app.preset
is what we see in most cases, but in python, the workflow class name translates to Type__App__Preset
. All workflows follow this format.
Example
static-energy.vasp.matproj
--> StaticEnergy__VASP__MatProj
Note, when converting a workflow name in python, we need to replace periods with 2 underscores each (__
) and convert our phrases to
pascal case. Hyphen (-
) placement is based off of capital letters.
Location of a workflow in the website interface¶
You can follow the naming conventions (described above) to find a workflow in the website interface:
https://simmate.org/workflows/{TYPE}/{APP}/{PRESET}
https://simmate.org/workflows/static-energy/vasp/matproj
Location of a workflow's source code¶
The code that defines these workflows and configures their settings are located in the corresponding simmate.apps
module. We make workflows accessible here because users often want to search for workflows by type -- not by their app name. The source code of a workflow can be found using the naming convention for workflows described above:
from simmate.apps.{APP_NAME}.workflows.{TYPE}.{PRESET} import {FULL_NAME}
from simmate.apps.vasp.workflows.static_energy.matproj import StaticEnergy__Vasp__Matproj
This is a really long import, but it gives the same workflow as the get_workflow
utility. We recommend sticking to get_workflow
because it is the most convienent and easiest to remember. The only reason you'll need to interact with this longer import is to either:
- Find the source code for a workflow
- Optimize the speed of your imports (advanced users only)