ComponentizingAscend: Difference between revisions
Restored page from Google Cache, uploaded by John Pye |
No edit summary |
||
| Line 28: | Line 28: | ||
* Have moved qlfdid stuff into compiler. Not convinced it was really worth it though. -- [[ | * Have moved qlfdid stuff into compiler. Not convinced it was really worth it though. -- [[User:Jpye]] | ||
* Have moved plot.c, plot.h into compiler. May have been better somewhere else, but at leasts it's in base/generic now. -- [[ | * Have moved plot.c, plot.h into compiler. May have been better somewhere else, but at leasts it's in base/generic now. -- [[User:Jpye]] | ||
* Have moved code from tcltk98/.../[[MtxProc]].[ch] to new files solver/incidence.c and solver/incidence.h. <a href="https://pse.cheme.cmu.edu/svn-view/ascend?rev=286&view=rev" class="external text" title="https://pse.cheme.cmu.edu/svn-view/ascend?rev=286&view=rev" rel="nofollow">Changeset 286</a>. | * Have moved code from tcltk98/.../[[MtxProc]].[ch] to new files solver/incidence.c and solver/incidence.h. <a href="https://pse.cheme.cmu.edu/svn-view/ascend?rev=286&view=rev" class="external text" title="https://pse.cheme.cmu.edu/svn-view/ascend?rev=286&view=rev" rel="nofollow">Changeset 286</a>. | ||
* Have moved lsode.c to solver and created integrator.c and ida.c in solver. Integrators.c in Tcl/Tk dir now calls the 'integrator API' in base/generic/solver. -- [[ | * Have moved lsode.c to solver and created integrator.c and ida.c in solver. Integrators.c in Tcl/Tk dir now calls the 'integrator API' in base/generic/solver. -- [[User:Jpye]] | ||
* Asc_BLsodeDerivatives is now in base/generic/solver/lsode.c. -- [[ | * Asc_BLsodeDerivatives is now in base/generic/solver/lsode.c. -- [[User:Jpye]] | ||
== Contributions from Jon Shao group == | == Contributions from Jon Shao group == | ||
Revision as of 03:22, 17 May 2010
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? |
- Have moved qlfdid stuff into compiler. Not convinced it was really worth it though. -- User:Jpye
- Have moved plot.c, plot.h into compiler. May have been better somewhere else, but at leasts it's in base/generic now. -- User:Jpye
- Have moved code from tcltk98/.../MtxProc.[ch] to new files solver/incidence.c and solver/incidence.h. <a href="https://pse.cheme.cmu.edu/svn-view/ascend?rev=286&view=rev" class="external text" title="https://pse.cheme.cmu.edu/svn-view/ascend?rev=286&view=rev" rel="nofollow">Changeset 286</a>.
- Have moved lsode.c to solver and created integrator.c and ida.c in solver. Integrators.c in Tcl/Tk dir now calls the 'integrator API' in base/generic/solver. -- User:Jpye
- Asc_BLsodeDerivatives is now in base/generic/solver/lsode.c. -- User:Jpye
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.
- [[%ATTACHURL%/WinAscend20041104.zip|WinAscend20041104.zip]]: 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.
- %ATTACHURL%/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.
- [[%ATTACHURL%/ConsoleAscend20040830.zip|ConsoleAscend20040830.zip]]: A command line exe of ASCEND in Windows
%META:FILEATTACHMENT{name="WinAscend20041104.zip" attr="" comment="Compilation of Ascend 4.0.9 for Windows" date="1126622842" path="E:\work\students\ct\WinAscend\WinAscend20041104.zip" size="261247" user="zjshao" version="1.1"}% %META:FILEATTACHMENT{name="Ascend20050105.zip" attr="" comment="Windows Compilation and COM Building for Ascend 4.0.9" date="1126625961" path="E:\work\students\ct\uploaded\Ascend20050105.zip" size="527967" user="zjshao" version="1.1"}% %META:FILEATTACHMENT{name="ASCEND_COM20041009.zip" attr="" comment="Data Reconciliation with ASCEND_COM" date="1126626802" path="E:\work\students\ct\uploaded\ASCEND_COM20041009.zip" size="1076012" user="zjshao" version="1.1"}% %META:FILEATTACHMENT{name="ConsoleAscend20040830.zip" attr="" comment="A command line exe of ASCEND in Windows" date="1126627161" path="E:\work\students\ct\uploaded\ConsoleAscend20040830.zip" size="1213062" user="zjshao" version="1.1"}%