Monitor Operators Imag

Tool to monitor the imaginary component of the specified operators. If the imag part of operator departs from zero, perform an action specified. This can be useful if you want to make sure that your CL simulation hasn’t fluctuated into an unphysical basin as described in Vigil2021.

Arguments:

  • operator_types (list of strings) - name of operators to monitor. Currently can only contain one operator name.

  • tol (float) - tolerance used to trigger action

  • 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. 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.

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

Example (python):

fts.add_monitor(type="OperatorImag", operator_types=['Hamiltonian'], tol=1e-1, action='notify', block_size=500, delay=500)

Example (json):

"monitors": {
  "OperatorImag": {
    "action": "notify",
    "block_size": 500,
    "delay": 500,
    "operator_types": ["Hamiltonian"],
    "tol": 0.1
  }
},