Strawman Actions OverviewΒΆ

Actions are the mechanism that instruct Strawman to perform operations. The currently supported actions are:

  • add_plot: adds a new plot for the mesh
  • draw_plots: renders the current plot list to files or streams the images to a web browser

Strawman actions can be specified within the integration using Conduit Nodes and can be read in through a file. Each time Strawman executes a set of actions, it will check for a file in the current working directory called strawman_actions.json. If found, the current actions will be updated with the contents of the json file. If specific action exists in both the Conduit Node and the file, shared fields will be overridden with the contents of the file. If additional actions are present in the file, they will be appended to the current list of actions. The behavior is identical to a Python dictionary update.

For example, if the existing actions in the Conduit Node contain:

[
  {
   "action" : "add_plot",
   "field_name"  : "p",
   "render_options":
   {
     "width"  : 1024,
     "height" : 1024
   }
  },
  {
   "action" : "draw_plots"
  }
]

The contents of the file are:

[
  {
    "action" : "add_plot",
    "field_name"  : "new_var"
  },
  {
    "action" : "add_plot",
    "field_name"  : "another_var"
  },
  {
    "action" : "draw_plots"
  }
]

The resulting actions that are executed by Strawman will be:

[
  {
   "action" : "add_plot",
   "field_name" : "new_var"
   "render_options":
    {
     "width"  : 1024,
     "height" : 1024
    }
  },
  {
     "action" : "add_plot",
     "field_name"  : "another_var"
  },
  {
     "action" : "draw_plots"
  }
]

While the updating feature is convient, we encourage users to be as explicit as possible when creating action files to avoid unexpected behavior. A full example of an actions file can be found in /src/examples/proxies/lulesh2.0.3/strawman_actions.json.