Creating new workflows

In ACE, a workflow is a flowchart of modules which work on samples.  The end result is not necessary the sample age, it could be calibrated HLSL production rates, scaling factors, etc etc.  However we expect that new workflow creation will  be of interest only to a few people, and these few people will most likely have different requirements from each other.  For this reason we have not made the workflow editor user friendly.  A future version of ACE will have a graphical user interface for the workflow editor, but even this will not be of much help to non-developers.

If you want to make your own workflow, it is probably best to look at the existing workflows and duplicate and modify them to your needs.  These are given in the ‘workflows’ directory of the ACE repository (repo). Here is the workflow for non 36Cl dating (no low energy neutron absorption):

dating
["3He", "26Al", "21Ne", "14C", "10Be"]
InitInventories => StepForInventories
StepForInventories.loop => Factor<geomagneticIntensity>
Factor<geomagneticIntensity> => Factor<seaLevel>
Factor<seaLevel> => InstElevation
InstElevation => AtmosphericPressure
AtmosphericPressure => Factor<geomagneticLatitude>
Factor<geomagneticLatitude> => Factor<geographicScaling>
Factor<geographicScaling> => SNCPDating
SNCPDating => NuclideInventoryChangeCalculation
NuclideInventoryChangeCalculation => StepForInventories
StepForInventories => OutputForNuclideDating

This workflow lists its function (dating), the nuclides it can operate on (3He, 26Al, 21Ne, 14C, 10Be), and this gives a text version of the workflow components, all of which are stored in the Components directory of ACE.  For example this workflow starts with the module InitInventories.py and then passes all the sample data to StepForInventories.py.   At this point it enters the timestep loop (StepForInventories.py.loop) and exits when the samples are dated.

In the workflow the symbol => means pass the sample attributes from one module to the other, like the arrows in the flowchart.  The Factor choices refer to components of the workflow which can be switched out.  For example, the Factor <sealevel> above uses the sealevel choice selected during the experimental design. Specifics can be found in the factor directory of the ACE repository, where the file seaLevel.txt has the following form:

Fairbanks 1989 + Shackleton 2000 : ['InstSeaLevel']
Lambeck and Chappell 2001 + SPECMAP 1984 : ['LambeckSeaLevel']
no change (present day) : ['ZeroSeaLevel']

So if the user selects ‘Fairbanks 1989 + Shackleton 2000’ to model sea level changes for a sample, the module InstSeaLevel.py is used at the Factor<sealevel> location in the workflow.

All of the sample processing is done in this workflow loop, and if there is a particular part of the workflow that needs to be changed, this is as easy as making new components, listing them in a duplicate version of the workflows, and then renaming these duplicate versions.  They will then show up as a workflow option in the Experiment Editor.  As an example we are currently implementing low-energy neutron capture for 36Cl based on Monte Carlo simulations.  We have modified existing components, so created a new workflow called MCNPX:

Click in image to expand

Click in image to expand

To develop this routine we started with the original workflow, duplicated and renamed it, modified some modules and listed them within the workflow.  In this way, differences between workflows can be easily assessed by contrasting the workflow outputs against each other.

Leave a Reply

You must be logged in to post a comment.