The Lua scripting engine

For background on the use of Lua in Siesta, please see the flos documentation site

In particular, you can read up on:

  • How hooks at certain points in the program are implemented

  • Which Siesta variables can be shared with Lua

  • The functionality implemented in the FLOS library.

A structural optimization example

Here we just offer a glimpse of what be done with Lua in Siesta through a practical example. We will take one of the structural relaxation cases and run it under the control of a Lua script that invokes the LBFGS algorithm.


Enter the relaxation directory

Note the only two changes needed to enable the LBFGS optimizer:

MD.TypeOfRun         Lua
Lua.Script           relax_geometry_lbfgs.lua

The Lua script resides in the same directory.

In this case, the LBFGS algorithm appears marginally worse than the Broyden method we used in the above-mentioned tutorial, but still much better than ‘conjugate gradients’. There are still some knobs to try in the script, if you feel like it.

A convenience example

(This can be, for example, a script that will plot the eggbox-effect curve automatically.)