Optimizer Protocol

SIESTA defines a LISP based bidirectional optimizer communication protocol. The optimizer thereby sends evaluation requests to SIESTA which in turn starts the necessary tools and simulators to perform the evaluation. When an evaluation is finished, SIESTA sends the result (i.e. the error vector) back to the optimizer5.6. Fig. 5.20 and Fig. 5.21 depict an example of an optimizer $ \Leftrightarrow$ framework communication.

Figure 5.20: Optimizer protocol. The optimizer requests the evaluation for a given list of parameters. After the parameter list an id is given to uniquely identify the evaluation result.

    ( (betas1  1.733398e+01)
      (gamma1  -5.346066e-01)
      (n1      1.910780e+01)
      (xpos1   -4.280683e-03)
      (xsigma1 9.913292e-03)
      (ypos1   7.130004e-03)
      (ysigma1 7.293642e-02) )
    ( (id 0) ) )

Figure 5.21: Optimizer protocol. SIESTA returns the error vector to the optimizer. Note that all values are returned as a single line. The last number of the line identifies the optimizer request (id).

  -54.264 -51.358 -50.446 -50.595 33.523 -26.567 -51.345 -46.129 0

When the truncation condition of the optimizer is fulfilled (e.g. if it has found an extremum) this is indicated by sending a final parameter set to SIESTA which prints the optimum and exits -- the optimization has finished. Fig. 5.22 depicts the protocol to indicate a found extremum.

Figure 5.22: Optimizer protocol. Optimizer truncation criterion is fulfilled.

    ( (betas1  5.395359133336927e-01)
      (gamma1  -9.949905693492636e-01)
      (n1      1.868060454154932e+01)
      (xpos1   9.698931738204573e-03)
      (xsigma1 1.990379095305327e-02)
      (ypos1   1.142833235121924e-03)
      (ysigma1 1.257123762147689e-03) ) )