MPL OptiMax 2000 Component Library

OptiMax 2000 is an object-oriented Component Library, specifically designed to embed optimization models into end-user applications. The design of OptiMax 2000 is based on ActiveX/Automation component software technologies from Microsoft. OptiMax can be used to seamlessly integrate MPL models into various different programming platforms, such as VBA for Excel/Access, Visual Basic, Visual C++, Delphi, Java, and standard scripting languages for the Web.

When working with optimization models, a modeling language such as MPL, is very effective handling all the data manipulations, the matrix generation for the solver, and the solution output. After the model has been built and tested, an end-user application needs to be built using a graphical front-end to allow the end-user to edit the model data and view the results in easy-to-use manner.

Over the past decade the software industry has been moving towards building software components instead of full-blown applications. This allows each developer to concentrate on writing the software where they retain expert knowledge.

OptiMax 2000 provides the bridge between the optimization model and the end-user application. The OptiMax library is built as a hierarchy of objects that details all the knowledge that MPL contains about the model and is made available to the application developer through the object hierarchy. This enables the software developer to concentrate on building the end-user application without having to be concerned with the details of the optimization model.










OptiMax 2000 Component Library Features

OptiMax 2000 is an object library that contains very extensive set of collections, objects, methods and properties, covering all aspects of implementing optimization models in end-user applications. This includes reading and maintaining models, writing solution files, importing and exporting data, solving models, and option handling. The library as well as gives full access to all the internal data structures that MPL uses to store model information. Full cross-referenced documentation of the OptiMax 2000 Object Model is available.

    • General Model Handling
      • Reading model files
      • Parse model in parts
      • Querying model information
      • Modifying models
      • Keep multiple models in memory
      • Detailed error handling


    • Input/Output Capabilites
      • Reading input data files (dense/sparse)
      • Writing solution output files
      • Native solver input/output files
      • Spreadsheet import and export
      • Database import and export


    • Model Solving
      • Multiple solvers supported (LP, MIP, QP, and NLP)
      • Repeated solver runs/Iterations
      • Use solutions values as input


    • Option Handling
      • MPL language options
      • Native parameter options for each solver


  • Access to MPL Internal Data Structures
    • Indexes (numeric, named)
    • Vectors (data, variables, constraints)
    • Macros
    • Matrix data
    • Names data

Programming with the OptiMax 2000 Library

The OptiMax 2000 library can be used with any programming platform that is compatible with the ActiveX/Com component software technologies from Microsoft. OptiMax comes with the dual-interface and is therefore also compatible with any programming language that support the standard Automation interface.

Following is a list of some of the languages that can be used with the OptiMax library. Please refer to the OptiMax Samples page for code examples of how to use OptiMax in these languages.

Visual Basic

Visual Basic from Microsoft is the programming language that is the easiest to work with when creating OptiMax applications. This is due to its high integration with Automation interfaces and easy-to-learn approach.

Visual Basic for Applications (VBA)

Visual Basic also comes as a standard with Microsoft Office applications, such as Excel and Access, as well as multiple other popular applications from other companies. This version of Visual Basic is called VBA or Visual Basic for Applications and due to its ready availability, is often the most convenient way to create programs using OptiMax. Most of the examples in this manual will be done using the VBA in Microsoft Excel.

Visual C++

When creating applications with OptiMax where speed is important or full flexibility is needed, Visual C++ is often the language of choice. It is not as quick and easy to program as Visual Basic, but still fairly straightforward to use. In most cases the standard COM interfaces for OptiMax are used when programming with Visual C++, as compared with the Automation interface which is most often used in Visual Basic.

Visual J++

The OptiMax library can be used from Visual J++ which is the Microsoft version of the Java language. The Microsoft SDK for Java can be downloaded from the Microsoft web site:


Another popular language that can be used with OptiMax is Delphi from Inprise/Borland. This language is based on Pascal and can be very effective to create end-user applications.

Downloading and Installing the OptiMax 2000 Library

The OptiMax 2000 library is available both, as a full-size version sold as an option to the MPL Modeling System and as a free student version download from Maximal Software’s web page.

If you are downloading the student version of OptiMax 2000 from the web, it is recommended to first download and install the student version of MPL. After MPL has been installed and the license activated you can go ahead and install the OptiMax 2000 library.


Lymphocyte Separation Solution

20828-15 NACALAI TESQUE 500ML 207.9 EUR

Lymphocyte Separation Solution

20828-44 NACALAI TESQUE 100ML 46.2 EUR

Lymphocyte Separation Solution

20839-04 NACALAI TESQUE 100ML 57.4 EUR

Bromoform for Mineral Separation

GRM10947-250ML EWC Diagnostics 1 unit 66.62 EUR

genesig magnetic separation rack

Z-genesigEASY-MR Novacyt Group n/a 539 EUR

Cytosol/Particulate Separation Kit

55R-1356 Fitzgerald 50 assays 433 EUR

Lymphocyte separation medium (human)

abx082102-200ml Abbexa 200 ml 243.6 EUR

Cytosol/Particulate Separation Kit

GWB-AXR181 GenWay Biotech 50 assays Ask for price

Cytosol/Particulate Separation Kit

K2112-50 ApexBio 50 assays 605 EUR

Cytosol/Particulate Separation Kit

K267-50 Biovision each 483.6 EUR

Lymphocyte separation medium (human)

abx082102-100l Abbexa 100 µl 150 EUR

Lymphocyte separation medium (human)

abx082102-1ml Abbexa 1 ml Ask for price

Lymphocyte separation medium (human)

abx082102-200l Abbexa 200 µl Ask for price

Lymphocyte Separation Medium, Sterile

40120344-1 Glycomatrix 100 ml 25.62 EUR

Lymphocyte Separation Medium, Sterile

40120344-2 Glycomatrix 250 ml 54.64 EUR

Lymphocyte Separation Medium, Sterile

40120344-3 Glycomatrix 500 ml 90.31 EUR

Techne Separation Membranes 200x200mm - PK5

OVE3038 Scientific Laboratory Supplies PK5 203.85 EUR


25-072-CI CORNING 100 mL/pk 63.6 EUR

Mannose Separopore® 4B Cell Separation Kit

20840070-1 Glycomatrix 1 Kit 166.28 EUR

Lymphosep. Lymphocyte Separation Media - 100ml

LM-T1702/100 Biosera France - Medical Scientific Equipment 100ml 10.78 EUR

Lymphosep. Lymphocyte Separation Media - 500ml

LM-T1702/500 Biosera France - Medical Scientific Equipment 500ml 44.88 EUR

1-Step Polymorphs, Human Cell Separation

71-AN221725 Gentaur Genprice 1 238.8 EUR


WHA10423029 Scientific Laboratory Supplies EACH 195.75 EUR

OOTA00785-100ML - Lymphocyte Separation Medium

OOTA00785-100ML Aviva Systems Biology 100mL 59 EUR

Corning 500mL LSM (Lymphocyte Separation Medium) - EACH

25-072-CV Scientific Laboratory Supplies EACH 175.5 EUR

Hybridoma specific B cell separation Solution (10x)

E28TYA0601 EnoGene 100ml 190.48 EUR

Polar/Neutral Lipid Separation Kit (Chloroform Free)

MET-5009 Cell Biolabs 50 preps 428.4 EUR

OrgFrontier? Viable/Non-Viable Cells Separation Kit

K850-10 Biovision each 652.8 EUR

Addi platform separators (4 ea) Add 1.25 to platform separation - EACH

MIX7118 Scientific Laboratory Supplies EACH 83.7 EUR

Additional platform separators (4 ea.). Adds 1.25" to platform separation

BR2000-SP Benchmark Scientific 1 PC 54.38 EUR

Stacking platform, small 10.5"x7.5" with flat mat (3.0"separation)

B3D-STACK Benchmark Scientific 1 PC 139.87 EUR

Stacking platform, large 12"x12" with flat mat (3.0" separation)

BR1000-STACK Benchmark Scientific 1 PC 139.87 EUR

50mL Peripheral Blood Lymphocyte Separation Tube, 25/pk, 100/cs

602851 NEST Biotechnology 100 pcs/cs 194.37 EUR

50mL Peripheral Blood Lymphocyte Separation Tube,25/pk, 500/cs

602852 NEST Biotechnology 500 pcs/cs 710.16 EUR

15mL Peripheral Blood Lymphocyte Separation Tube, 50/pk, 150/cs

601851 NEST Biotechnology 150 pcs/cs 212.19 EUR

15mL Peripheral Blood Lymphocyte Separation Tube, 50/pk, 500/cs

601852 NEST Biotechnology 500 pcs/cs 560.23 EUR

Stacking platform, small 10.5"x7.5" with dimpled mat (3.0" separation)

B3D-STACK-D Benchmark Scientific 1 PC 145.23 EUR

Stacking platform large 12x12 w flat mat (3.0 separation) - EACH

MIX7114 Scientific Laboratory Supplies EACH 205.2 EUR

Stacking platform, large 12"x12" with dimpled mat (3.0" separation)

BR1000-STACK-D Benchmark Scientific 1 PC 145.23 EUR

Stacking platform large 12x12 w dimpled mat (3.0 separation) - EACH

MIX7116 Scientific Laboratory Supplies EACH 211.95 EUR

Stacking Platform, extra large 14"x12" with flat mat (3.0" separation)

BR2000-STACK Benchmark Scientific 1 PC 152.13 EUR

TFF-MV- tangential flow filter for large EV separation and recovery

HBM-TFF-MV HansaBioMed 1 concentrator 181.44 EUR