Monitor Operators Warmup

Tool to monitor whether the specified operators have “warmed up”. Warmup is determined using the MSER-m algorithm described in Hoad2010 and White1997.

Arguments:

  • operator_types (list of strings) - name of operators to monitor.

  • action (string) - action to perform. Opions:

    • notify - print notification to log but continue simulation

    • exit - exit simulation

  • block_size (int) - number of output steps to average operator over. This is m in the Hoad2010 notation. Note that this block averaging is slightly different from the block averaging used in Driver. In Driver the block is over timesteps, here the block is over output steps. This is so that the result is the same as if operators.dat has been analyzed as a postprocessing step. I have found that block_size=1 works best.

  • delay (int) - number of timesteps to delay before starting monitor

  • warm_frac (float) - fraction of data that must be warm in order to trigger. For example, if warm_frac=0.75 then 75% of the trajectory must be after the warmup time before this Monitor will be triggered. Value specified must be in range [0.5, 1).

Example (python):

fts.add_monitor(type="OperatorsWarmup", operator_types=['ChemicalPotential', 'Pressure'], action='exit', block_size=1, delay=0, warm_frac=0.5)

Example (json):

"monitors": {
   "OperatorsWarmup": {
     "action": "exit",
     "block_size": 1,
     "delay": 0,
     "operator_types": [
       "ChemicalPotential",
       "Pressure"
     ],
     "warm_frac": 0.5
   }
 },