Structured Modelling Language for OOPS

This is the doxygen documentation for the Structured Modelling Language (SML) Interface to OOPS.


SML is a structured modelling extension to AMPL, designed to act as a preprocessor to AMPL. The driver performs the following tasks:

The OOPS driver backend will create OOPS structured matrices from the objects, and set up the appropriate call back functions that fill in the sparse leaf nodes of the matrix tree by processing the appropriate .nl file.

A different backend (for example for a decomposition solver) could be provided. The backend is independent of AMPL (just the amplsolver library needs to be called). The frontend is dependent on AMPL.

Installation and usage

For information on how to install and use SML, please refer to the user guide.

Solver Interface

SML can be interfaced with any structure exploiting solver as the backend.

A detailed description of the Solver Interface can be found here.


The processing of an SML file is done in the following steps:

Known problems

Read the Known Problems page to see the current limitations in SML.