Similar to the **model**, the optimization experiment is a common base
for more specialized optimization experiments. The latter represent
particular implementations of various optimization algorithms which
can be integrated into *SIESTA* via a generic communication
interface. Although this interface is not customizable at the
user-level, there is a well defined communication protocol for
asynchronous communication between the optimization tool -- running
as separate processes of the operating system -- and *SIESTA*'s
internal abstraction of the optimization tool, which is available to
the user as optimization experiment. It is important to note that the
communication protocol is asynchronous, which means that multiple
evaluations of the **model** may be requested simultaneously, and the
parallel evaluation mechanisms of the **model** can be utilized. Hence,
we obtain an optimization environment which achieves ultimate levels
of computation efficiency and we are able to carry out rigorous large
scale optimization, which would otherwise be impossible due to
excessive amounts of elapsed time required by sequential evaluation of
the **model**.

The open interface accounts for the fact that a lot of optimization
tools exist, each of them having strengths and weaknesses. By means of
the open interface a particular existing implementation of an
optimization algorithm can be integrated with low effort. This
guarantees that any progress which is made in the field of
optimization can instantaneously be shared by *SIESTA* and its user
community.

At the moment of this writing there exist two implementations of
optimization tools which have been integrated, namely *DONOPT*
[60,85], and *LMMIN* [60] which
are used for global optimization purposes, and for inverse modeling
tasks, respectively.

- 4.2.1 Global Optimization
- 4.2.2 A Levenberg-Marquardt Optimization Tool
- 4.2.3
*SIESTA*'s Process Optimization Environment

1999-05-27