Parent Directory | Revision Log
Links to HEAD: | (view) (download) (as text) (annotate) |
Sticky Revision: |
Moving solvers to their own directory
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.
Eliminated linsol, slv0 and slv1: moved the original files to 'disused' and editing out all reference to them in solvers and related code (including some Tcl/Tk wrapper code)
Another one of these big refactorings. Split out 'system' directory from 'solver' directory. This will need more work but it's a start at getting the non-solver-specific code out separately.
Split slv_param.[ch] from slv.c and slv_common.h. Removed some lint
Implemented the DAE partitioning routine but am nowing tracking down a fiendish memory crash.
Split block partitioning stuff from slv_stdcalls.[ch] into block.[ch].
Added some more test cases for DAE problem analysis. Little bit of tidying up in the slv*.c files.
slv_get_status changed to return non-zero on failure. Tests are passing with the new IDA 'analyse' routine but still plenty of gaps.
Removed redundant get_linsol* functions where all they do is return NULL. Moved get_diffvars to slv_client.
Removed <compiler/*> dependencies in slv*.c where possible. Did some minor reformatting of slv9.c.
Huge reorganisation -- all mtx and lin files moved to base/generic/linear. Required many #include statements to be changed.
Fixed value of 'dz' in dsgsat.a4c. Added test case for saturated steam in terms of (u,v) Other minor debug output changes.
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.
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
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.
Added Matrix Market export (happens automatically any time there's a pivot problem at present)
Added some more user error messages from the solver. Added detection for the MFGRAPH library, which will be used to output GraphViz files based on the incidence matrix.
Fixed a bug introduced into slvDOF_structsing. Fixed an LD_LIBRARY_PATH problem with test.py
Replaced all Asc_Panic calls with ASC_PANIC, which includes __FUNCTION__, __FILE__, __LINE__ reporting.
Moved vector functions out of slv_common.c into mtx_vector.c Created corresponding mtx_vector.h Renamed vector_data to vec_vector and corresponding functions from slv_ to vec_* (with other minor named changed). Made necessary changes to SConstruct, Makefile.in. Done with regexxer, should have caught everything hopefully.
simplified slv_check_bounds call.
Sorry, it was bothering me :-) http://www.randomhouse.com/wotd/index.pperl?date=19960916
Added return code to slv_check_bounds. For solvers that make a call to slv_check_bounds, used the return code to set 'sys->s.inconsistent' (but see my concerns as noted on the mailing list)
Fixed up some #includes in compiler .[ch] files. Switched instantiate.c to using 'asc_assert' instead of 'assert'. Added some missing GPL headers in C++ code. Silenced some slv3.c debug output. Switch void-return to int-return in slv9_presolve etc (slv9.c) Attemping to fix solvernotes.py for the commandline environment (browser==None) Removed redundant solve(SELF) in thermalequilibrium2.a4c. Some error reporting from addone_calc (extfntest.c). Expanded test size in extrelfor.a4c. Big rearrangement of bboxtest.c for top-down style. Fixed TestFreesteam.testintegrator, added end-value checks.
Softened error from bintoken.c Improved error reporting in instantiate.c Rearranged #includes in relation_util.[ch] Changed to asc_assert in relman.c Lots of fixed in slv3.c to get reporting of 'calc_ok' right. Also some better error reporting from slv3.c. Fixed usage info for error_reporter_tree_start(). Improved error/status reporting from bboxtest.c. Set PyGTK GUI to correctly catch ::solve errors. Improved reporting about when solver fails (diverged, inconsistent, exceeded time/iters) Fixed TestBlackBox.testfail1 and TestBlackBox.testfail2. Fixed type.cpp to throw errors when instantiation fails.
Switch 'void slv_*' function to output a 0-on-success error flag. Added some debug output to ensure that such output gets through. Fixed TestBlackBox.testfail1 to work, using above changes. Simulation::solve now throws an exception on failure (will need to modify PyGTK GUI accordingly)
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).
Added some debug stuff to work on the on_load problem.
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).
DSG model converges, using 3 external functions :-) Added more info in 'diagnose' varinfo and relinfo popups, plus tabstops in display. Allowed parameters to be used with instantiation_error in instantiate.c. Fixed up some error messages in bintoken.c. Renamed 'newcalc_done' to 'evaluation_required' in rel.c. Other minor changes to error messages and commenting.
Removed some debug messages from external libraries stuff. Fixed auto-sim stuff for files given with relative path on the commandline.
This change fixes the external relation evaluation! There are definite problems with convergence but this may be due to tolerences being too fine in ASCEND compared to freesteam.
Fixed a *stupid* bug with relation.c in CreateBlackBoxRelation...
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.
got rid of errant executable bits.
Normalised all #include statements so that files in the current directory are included as "localfile.h" and files in other directories are included as <directory/file.h> This is in accordance with the spec at http://gcc.gnu.org/onlinedocs/gcc-4.1.0/cpp/Include-Syntax.html#Include-Syntax
Ensure error messages find their way into PyGTK output
Made QRSlv line search error output to ASCERR (not 'mif')
Documentation changes. Modified one slv3 error message.
Updating for Jerry's new error_reporter syntax, bug #179
- Simplifying many 'error_reporter' calls with new macros: ERROR_REPORTER_NOLINE and ERROR_REPORTER_HERE - Adding some cygwin cases in the PyGTK build.
Removing debug output, adding self_test to iapws95.
Working on a test case for bug #178
Working on eliminating some compiler warnings about unitialised vars and the like.
Adding 'TEST' statement to ASCEND METHOD syntax. Standardising messages in slv3. Trying to debug bug #175.
Moved some solver error messages to FPRINTF(ASCERR) convention. Trying to get IAPWS-95 to work two-phase.
Minor fixes to: - continue killing compiler warnings on gcc & msvc - start working on function/data pointer mismatches - documentation tweaks Fixed ascMalloc.c memory logging problems. This has not been tested on linux/unix. If it fails to compile, please revert to the previous version and let me know.
Fixing bug #152 (jerry's solution) Also some minor fixes to error reporting calls Changed default values of IAPWS95 to some that converge.
A working (very slow) version of IAPWS95 which works around bug #154. Added some debugging messages to solver (temporary). Removed SIGINT trap.
My first commit: Added 'error_reporter' for standardised error reporting Working on getting external functions running again Also: issue 130, issue 68, issue 131, issue 89, issue 127, issue 138, issue 94.
moving things to base/generic
MAX_MINOR added as solver parameter for QRSlv
remove debug printing from slv3.c
corrected runaway minor loop problem exposed by Helder
Setting up web subdirectory in repository
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 |