Feedback
Feedback is use to modify an input variable so that some computed variable equilibrates to a given value. As an example of use, many plasma devices are stable with only a constant current source, but the input parameter is the voltage. In this case, the voltage is varied to get the current to be a certain value.
For the general case we have the following quantities
H is the history that we want to get to a value by feedback.
D is the value that we want it to get to.
P is the parameter that we can change, such that increasing P causes H to increase in the region of stable operation.
S1 = H (unaryScalarOpUpdater with historySTFunc, message)
S2 = (1-a)*S2 + a*S1 = averaged history (scalarBinOpUpdater, add, no message)
F = F + b*(D - S2) = feedback (userFuncScalarUpdater, no message)
V = min(Vmax, max(Vmin, c*F)) = new value of feedback variable (userFuncScalarUpdater, no message)
Set boundary condition = scalarFieldBinOpUpdater, add, aCoeff=1, bCoeff=0