Parent Directory | Revision Log
Links to HEAD: | (view) (download) (as text) (annotate) |
Sticky Revision: |
Merging in refactor of the C++ code, which is moved out of 'pygtk' and into 'ascxx'. Adding support for IPOPT 3.9.1, the current latest version. Support in dtar for parallel builds (possibly needs some testing still).
Integrators can now be dynamically loaded. DOPRI5 has progressed but still doesn't work.
Added plot support in Integrator output tabs. Some other minor debugging for pylab integration and idaanalyse output.
Added support for detection of boundary crossing in the IDA integrator. Cleared up some code comments and formatting.
Fixed integrator_ida_check_index. More tests still required.
Silenced some debug output Added ability to ctrl-C IDA when running through python
Added and performed basic tests of integrator_ida_write_matrix. Generalised the write_matrix routine so that *any* requested output can be retrieved from the integrator (for the case of IDA this is y and y', but it could equally be more complicated stuff.)
silenced some debug output
Implemented the DAE partitioning routine but am nowing tracking down a fiendish memory crash.
Added some more test cases for DAE problem analysis. Little bit of tidying up in the slv*.c files.
Added method integrator_debug to integrator API (outputs internal data structures from integrator). Added test cases for the diffvars code (python test.py). Suppressed a lot of 'slv_get_*_*_list is NULL' messages when destroying system. Specialised the system_build error message a little.
slv_get_status changed to return non-zero on failure. Tests are passing with the new IDA 'analyse' routine but still plenty of gaps.
Added support for setting Integrator parameters through PyGTK GUI. Lots of whitespace changes in slv3.c (sorry). Fixed problem with freeing sys->parms in slv.c
Added integrator_write_matrix routine to allow integrator matrices to be written out. Modified integrator in PyGTK to output this matrix to a file in /tmp in the case where Integrator::solve fails. Fixed a bug in densematrix_write_mmio. The current implementation of integrator_write_matrix might not be quite right yet... needs some more thought.
Fixed up some error reporting stuff in LSODE. Fixed up command-line invocation of 'ascdev' and also 'ASC_GDB=1 ascdev'.
Fixed independent variable detection (again).
Removed some outstanding references to g_ascend_errors (see #ifdef REIMPLEMENT_STREAMS) Added a check in integrator.cpp for badly formed integrator_get_engines() return.
Added scons switch IDA_NEW_ANALYSE for the new code that implements a better DAE analysis procedure. Minor tidying in list.[ch] Removed some DIEDIEDIE stuff from analyze.c. Added 'odeid' to the 'varip' structure in same. Collapsed a bunch of repetitive stuff with those fancy #defines I like so much. Flipped some return codes from functions integrator.c to return 0 on success. Added #include for sensitivity.h in lsode.c. Catch exceptions from sim.build() in do_integrate() in PyGTK GUI. Attempted to fix tcl/tk for errors from integrator_analyse as well (not tested).
Changed integrator_solve to return 0 on success Changed integrator_checkstatus to return 0 on success Some flow-through changes as a result of these. Fixed problem with reporting of errors in do_method (gtkbrowser.py) Expanded error msg in integrator.cpp Fixed catching of Integrator C++ exceptions in integratorreporter.py. Removed M.checkStructuralSingularity() in TestSteam.testdsgsat -- causes crash (why?)
Added simplified ASC_PANIC call that uses var-args, added throughout relation_util.c. Fixed var_filter_t stuff in djex and fvex. More assertions in integrator.c Added output of initial state from lsode.c (hoping that's a good idea?) Fixed output code from relman_diff2. Added asc_panic_nofunc for non var-arg CPPs. Disabled -O3 flag in building C++ API Added __getitem__ and __getattr__ methods in Simuluation for simplified python syntax (eg M.x instead M.sim.x) Integrator::analyse throws exceptions on error now.
Abstracted the internal integrator calls into a struct IntegratorInternals. Fixed up compile-time list of integrators. If IDA is not available, then 'INTEG_IDA' will not be defined. Added ASC_ASSERT_RANGE for assertions x in [low,high). Changed calling convention for integrator_get_engines().
Added placeholder for a C version of Art's DAE solver (named 'AWW') Added support for SPBCG and SPTFQMR Krylov solvers in IDA. Attempted separation of ascpy.i and solver.i (ongoing) Fixed an error message in typedef.c Fixed typo in ivpStepN.tcl Added correctly hidden Simulation() ctor.
Cleaned up code comments in units.h Fixed a bug with starting timesteps in LSODE (i think) Added function to output a SampleList to the console (for debugging) Removed debug output from base/generic/test/SConscript. Removed 'custom' headers for UnitsM in ascpy.i Made a sane default ctor for UnitsM Added some more test cases to the Python unittest suite (still a problem running multiple solver-based tests in a single run)
Added test for C99 FPE handling Fixing mess-up of ChildByChar in arrayinst.h header. Added 'safeeval' config option to IDA. Changed 'SigHandler' to 'SigHandlerFn *' in line with other function pointer datatypes being used in ASCEND. Moved processVarStatus *after* 'Failed integrator' exception (ongoing issue).
Pruned some debug messages from integrator.c, ida.c. Improved exception messages from SolverParameter class. Added array access functions to Instanc class (ongoing). Attempting to run CUnit tests from the Python test suite (not successful, ongoing). Cleaned up some headers, license notices, doxy docs, etc. Fixed wrong #include <dmalloc.h> in ascpy.i (thanks Krishnan).
Incorporated 'SolverParameters' functionality into 'Integrator', both at C level and C++/Python. This shouldn't break Tcl/Tk as default parameters will be set and used invisibly.
Changed integrator_set_engine to return 0 on success. Fixed Integrator::setEngine to throw range_error / IndexError on invalid selection. Test suite contains testIDA that works now (more tests yet to come)
Added support for dmalloc (http://dmalloc.com) Added Integrator::setEngine(string name) Minor other stuff.
Fixing up some malloc/free problems with integrator.c, removing some debug output from slv3. Working on fixing IDA for systems with inactive variables (ongoing).
Working on what the problem is with 'on_load' methods in the C++/Python code. Seems that 'EXTERNAL solve(SELF);' puts the model into a state which 'works' but if that's not done first, then that set values in the model don't work correctly...
First tentative version in 'integration reporting': Values of observed variables from the simulation are added to an Observer table after simulation completes. This is not very efficiently coded at this stage but is a start. Also some minor changes to text and comments in some base/generic files.
Fixed small int/unsigned warnings. Switched to preferring 'numarray' over 'numpy' (perhaps temporarily)
Monster commit! Lots of recommenting and reorganising of external relations-related stuff. Replaced a lot of ascmalloc and asccalloc calls with the new ASC_NEW* macros. Fixed (?) the problem Art is having with icons in PyGTK. Turned on -Wall in SConstruct and fixed up a stack of warnings. Removed the redundant exit(2) from after Asc_Panic calls and added __attribute__((noreturn)). Set doxygen to create callgraphs to level 2, updated doxyfile to version 1.4.7. Fixed up building of extfntest.c.
Merged changes from DAE branch (revisions 702 to 819) back into trunk. This adds the Integration API to the ASCEND solver (in base/generic). Also provides pre-alpha support for 'IDA' from the SUNDIALS suite, a DAE solver. Many other minor code clean-ups, including adoption of new 'ASC_NEW' and friends (to replace 'ascmalloc') Added some very sketchy stuff providing 'DIFF(...)' syntax, although it is anticipated that this will be removed.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
john.pye@anu.edu.au | ViewVC Help |
Powered by ViewVC 1.1.22 |