Main Page Modules Class Hierarchy Compound List File List Compound Members File Members Related Pages
Like all objected-oriented frameworks, Iotr consists of several abstract interfaces that may each have several concrete implementations. For instance the abstract interface class GenMatrix has been concretely implemented by the classes SparseGenMatrix and DenseGenMatrix. Similarly, the abstract interface Formulation has been concretely implemented by the AmplFunctional and CuterFunctional classes, which represent functionals that interface with the Ampl and Cuter problem libraries.
As is also typical with object-oriented code, there are several layers to Iotr:
- A Solver Layer that implements the high-level algorithms and heuristics needed so solve a NLP;
- A Problem Formulation Layer that represents an individual problem instance in its natural format;
- A Foundation Layer that provides an interface to fundamental objects like functions, vectors and matrices without explicitly specifying how these are implemented in the system; and
- A Concrete Utility Layer that provides low-level services that may be used to build the foundation layer.
- Note:
-
The abstract interface for the solver and problem formulation layers has not yet been written. This confuses the issue (and the documentation) somewhat.
As a concrete example, suppose the iotr framework is used to create a trust-region based solver that uses slack variables and that is implemented sequentially using dense linear algebra. At one point in the solution of the problem, a trial step is generated.
Thus classes and functions from each layer of iotr were used to generate a trial step. Each layer invokes functionality from the layer directly below it. Furthermore as the computation progresses from layer to layer, the operations grow more concrete.
Generated on Wed Aug 27 10:03:42 2003 for iotr by
1.2.18