Parent Directory | Revision Log
Links to HEAD: | (view) (download) (as text) (annotate) |
Sticky Revision: |
Fixed external loading of integrators, at least on my system. Needs testing with/without fortran, sundials, etc. Changed little thing kn d1mach.c to make default behaviour correct on Linux.
Moving integrators to own directory, about to make them self-contained shared libraries.
Moved all solvers to dynamically loaded modules currently in folder models/johnpye. Location of these files will ultimately change.
Changes to the way in which sovlers are registered, to facilitate dynamically-loaded solvers. Also split much of the 'solver' stuff from slv.c (in the system directory) out into new file solver/solver.c and added matching solver/solver.h. Solver IDs are now fixed-- they don't change, and are stored in a list instead of in an array.
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.)
Added missing signal pop
Added getParameter by name in SolverParameters. Fixed up refences to signal-related header files. Fixed up various warnings from -pedantic compilation. Identified an apparent bug with RelationCalcGradient (unsafe version). Added support for compilation of a standalone C++ program (idatest) in SCons build.
slv_get_status changed to return non-zero on failure. Tests are passing with the new IDA 'analyse' routine but still plenty of gaps.
Fixed test suite for moved files. Removed unaccessible code in lsode.c.
Huge reorganisation -- all mtx and lin files moved to base/generic/linear. Required many #include statements to be changed.
Change to allow LSODE to *attempt* models/nonstate.a4c. Not working correctly yet though.
Shifted everything integration-related out into a separate directory.
Fixed 'ascdev' script to work correctly in MSYS (now needs retesting in linux). Removed 'make_matrix' and 'free_matrix' from sensitivity code and reused densemtx.c instead. Fixed linking issues in finitediff.dll.
Fixed value of 'dz' in dsgsat.a4c. Added test case for saturated steam in terms of (u,v) Other minor debug output changes.
Fixed ANALYSE_DEBUG in integrator.c Added printout of indep var in IntegratorReporterConsole class (C++)
Added except.[ch] which are intended to hold some TRY..CATCH..FINAL macro goodness to replace the explicit longjmp calls. Added time-watching in LSODE to update GUI in case of long samplelist timesteps (TODO: permit interruption vai this mechanism too).
Got paranoid about turning off signal handling... added '#ifdef ASC_SIGNAL_TRAPS' anywhere that signal handling referenced. Signal handling is OFF by default now.
More sensible slv_param_real bounds in LSODE and IDA. Run ode_init by default for dsgsat.a4c. Fixed dependencies for swig python outputs. Fixed [X] button on Integrator dialog.
Fixed bug with MAXORD initialisation.
Removed the 'REX' and 'IEX' array aliases (added the solver parameter comments directly in the slv_param_* calls). Renamed Simulation::[gs]etSolverParameters to Simulation::[gs]etParameters. Added [gs]etParameter (singular) methods to SWIG wrapper. Fixed missing NULL in IDA. Fixed bug with BDF/AM wrong way round in LSODE. Removed some debug output from slv.c
Converted slv3 (QRSlv) to new slv_param_bool (etc) parameter code. Adding a testcase for dsgsat with LSODE as well as IDA. Fixed some remaining external function calls (needing userdata ptr). Adding LSODE parameters 'METH' and 'MITER' for setting AM and BDF methods. Rerranged v_expr in iapwssat.a4c. Removed lower bound on mdot in satsteamstream.a4c.
Fixing for MMIO absent
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.
Migrated dense matrix functions out of lsode.c and into a new file. Added Matrix Market format dense matrix output function in densemtx.c.
Silenced some errors
Fixed up some error reporting stuff in LSODE. Fixed up command-line invocation of 'ascdev' and also 'ASC_GDB=1 ascdev'.
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).
simplified slv_check_bounds call.
Adding integration test in TestSteam.testdsgsat. Naming couple of anonymous structs.
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?)
Refactored tests into a shared library of tests and a executable of just the CUnit driver. This will allow the CUnit test suite to be executed via python unittest as part of the growing Python-based test suite. Renamed setjmp and longjmp to SETJMP and LONGJMP throughout ASCEND, to allow some debugging output to be added at each call.
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().
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 ATOLVECT, RTOLVECT parameters to LSODE Fixed silly bug in testing of newton.a4c Text changes in ida.c.
Adding more LSODE test cases. Removing some 'error tree' debug output. Added RTOLDEF and ATOLDEF parameters to LSODE (and fixed a bug relating to integrator_lsode_params_default).
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.
Added support for dmalloc (http://dmalloc.com) Added Integrator::setEngine(string name) Minor other stuff.
first attempt at merging with Ben's changes on the trunk
Some success with IDA: fixed up the indexing dilemma and was able to integrate 'johnpye/thermalequilibrium.a4c' for a short time span (but through to 3000 s as with LSODE). I would blame lack of jacobian routine in the first instance. Added 'more properties' button in Properties dialog for a variable, to allow values of ode_id, ode_type etc to be queried (but not changed).
Integrator remembers 'duration' used previously. Implemented interuption of integration with 'stop' button.
Removed debug output (modelview.py) Fixed bug in diagnose.py with large blocks Removed debug output and improved error message in conopt.c Removed debug output in lsode.c Removed debup output in ascDynaload.c
Added 'energy_per_volume' and 'power_per_volume' to atoms.a4l. Converting dsg.a4c into a dynamic (IVP) model. Removed some debug output from various places. Renamed some functions in lsode.c (removed references to 'blsode' name) Added comments in LSODE about what method is being used. Improved LSODE error output a little bit (why bother tho eh) Improved coupla error msgs in slv_stdcalls.c.
Removed some verbage in Integrator output
Fixes for MSVC++
- fixed a minor bug in the use of dimensions in samplelist and a #define misuse in ospath. - defined eolstyle unix on the trunk, as I have encountered at least 4 too many mixed-eol-style-in-one-file files in trying to rebuild today. obviously committer discipline is insufficient.
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 |