ComponentizingAscend

From ASCEND
Jump to: navigation, search

We want to convert ASCEND into smaller, reusable components. For example make a component out of the compiler that can create input from the ASCEND input language into data files that solvers could use as input. Another would be to make a component out of the solver.


The rational for componentizing ASCEND is to make the components available for others to use within other packages. One could imagine creating the model using the ASCEND language and compiler but solving it within another system altogether. Or one might wish to adopt the ASCEND solver within another modeling system. Or the ASCEND preanalysis capability (to find the partitions and precedence ordering for a set of equations). Finally, with standard interface definitions, ASCEND could switch to solvers that others have provided as components.

We have recently complete a complete decouple of the ASCEND core compiler and solver from the Tcl/Tk interface. To demonstrate this fact, we can now build ASCEND as separate core and interface DLLs, for both the !PyGTK and Tcl/Tk interfaces.

The dynamic simulation code has been pulled out the Tcl/Tk stuff and is now part of a new 'Integrator' API. Integrators can be loaded at run time, as has been demonstrated currently in the work on the DOPRI5 integrator. The Integrator currently has too tested and working integrators: LSODE and IDA.

We plan to modularise the Solver code so that solvers can also be loaded at run time. This will allows us to remove the solvers from 'core' ASCEND.

John Pye has been working on using SWIG to create a PythonWrapper for ASCEND. The wrapper has been used to implement a new PyGTK GUI as well as scripts for ModelSelfTesting.


External function support has been rejuvenated also, and is now fairly well tested.


Older content from this page...

Some older notes on this: Several pieces of code in the tcl/tk interface component are independent of tcl/tk and should probably be moved into the base library somewhere. This includes the following:

| module | Possible Disposition | | checkdim.h | need to implement or remove | | old_utils.[ch] | | | Sensitivity.[ch] | move Asc_MtxNormsCmd() into solver? |


Contributions from Jon Shao group

Compilation of Ascend 4.0.9 for Windows & Building COM for Ascend 4.0.9

2005-1-5 by Jon Shao, Tao Chen, Keane Shao

Compilation steps for Ascend 4.0.9 in Windows and COM implementation of Ascend, based on Ascend source code for Unix. With these steps, the main executable file "WinAscend.exe" (originally "ascopt4.exe") could be rebuilt. Other dependency files of ASCEND4-0.9 are needed for running. Also COM server "AscendServer.exe" could be built.


  • <a href="/index.php?title=Special:Upload&wpDestFile=Ascend20050105.zip" class="new" title="Ascend20050105.zip">media:Ascend20050105.zip</a>: Windows Compilation and COM Building for Ascend 4.0.9

Guideline for compilation of Ascend 4.0.9 for Windows

2004-11-4 done by Chen Tao and Jon Shao

This guideline provides the compilation steps for Ascend 4.0.9 in Windows, based on Ascend source code for Unix. With these steps, the main executable file (ascopt4.exe) could be rebuilt. Other dependency files of ASCEND4-0.9 are needed for running.

An attachment WinAscend20041104.zip is missing here: 'Compilation of Ascend 4.0.9 for Windows'.

Data Reconciliation with ASCEND_COM

2004-10-9 done by Chen Tao and Jon Shao

This example is used to demonstrate the capabilities of ASCEND_COM, which is interfaced with read-time data and EXCEL. It's for testing and prototyping purpose only.

An attachment is missing here: ASCEND COM20041009.zip: Data Reconciliation with ASCEND_COM

Command-line ASCEND

2004-8-30 done by Chen Tao and Jon Shao

A command line exe of ASCEND in Windows, which is capable of loading/parsing/simulating/solving A4C files.

An attachment is missing here: ConsoleAscend20040830.zip: A command line exe of ASCEND in Windows

The missing attachments from this page may possibly be available from Jon Shao..