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 } },