This page will look better in a graphical browser that supports web standards, but is accessible to any browser or internet device.

Served by Samwise.

Cardiac Physiome Society workshop: November 6-9, 2017 , Toronto

What's New with JSim?

This page is for the older JSim version 1.6. Click here for the latest JSim 2.0 version.

This document provides a running log of changes made in the various public and beta releases of JSim as well as pending changes to upcoming releases. Most recent changes are listed first. All changes by EB unless othersize noted.

Coming attractions

Version 1.6.99 - Release pending

This release contains a fully functional version of the version 2 compiler (see coming attraction above) which may be activated via command line switch. Assuming no new bugs are found, version 2 will be officially release in a few weeks.

Replace the obsolete JLex scanner generator with the more modern JFlex. Also the CUP parser generator was updated to a more recent version. This fixes a problem with some model comments containing high-indexed unicode characters (usually posted from WWW markup) aborting model compilation with an ArrayIndexOutOfBoundsException.

Fixed bug in 1.6.98 binary distribution build script that caused model browser graph rendering to be aborted with a "Model must be compiled" message. Bug report by BJ.

Fixed bug in 1.6.98 Windows release that caused activation of version 2 SBML import/export to fail. Bug report and fix by BJ.

Version 1.6.98 - Beta release 29 Dec 2010

Experimental version 2.0 functionality can now be activated via a command line switch. Version 2.0 functionality includes an improved model compiler, an integrated model browser, and improved import and export of SBML models.

Added code to plot pages that prevents draggable items (title, footer, legend) from being dragged to unobservable positions. Bug report by JB.

Clarified error message when an output variable is illegally assigned to an input variable. Bug report by GR.

Modified compilation of Java model source code so that a model can be successfully compiled multiple times within a JSim session. Previously, only the first compile would work properly. NOTE: Java model source refers to models written entirely in Java and is used only by JSim internals developers. It does not refer to Java functions and procedures embedded in MML models.

MacOS development variable JSIMFAT should now be set to "true", rather than to "yes" to use fat libraries when testing builds from source.

Version 1.6.97 - Beta release 2 Nov 2010

Fixed bug that caused optimizer to sometimes abort with a "variable has not valid assignment" message. Bug most often occured during optimization of quickly calculating models with a large number of interations. Bug report by JG. Thanks to GR and BJ for helping to isolate this bug and test the fix.

Added 5 bessel functions and 2 error functions to the MML built-in function list. Thanks to GR for the new code.

Added RMS formula to Introduction to the JSim Optimizers. Thanks for GR for this figure.

Improved some LSFEA PDE error messages to identify the problematic variable. Change based on JB model problem.

Added log/linear control to data set graphs. Feature request by JB.

Fixed bug with resizing plot pages whose axis-bounds slider is visible. Bug report thanks to BJ.

Fixed bug in optimizer normalized parameter graph that sometimes returned a array-bounds exception. Bug report thanks to GR.

Added three Sensop tests to verify suite based on figures in the original Sensop paper. Implementation by GR.

Fixed bug wherein certain model computation errors during an optimization run would generate a spurious "Optimization canceled by user" message. Now the original model error messages is displayed to the user. Thanks to GR for assisting in debugging this problem.

Modified calculation of the width of the name column in model run-time pages to better deal with short parameter names. Previously, some short names would be truncated due to inadequate space. Bug report by JB.

Optimizer now returns optimized parameter values rounded to 4 significant digits so that they better fit into available display space. Previously, results were rounded to 8 significant digits. Change request by JB.

Version 1.6.96 - Beta release 15 Jul 2010, public release 2 Nov 2010

Added identifying label to plot page menu bars to identify the plot page name. When there are many plot pages, this allows the user to identify the current one without clicking on the "Plot Pages" tab. Similar changes were made for other project content tabs (models, parameters sets, data sets, notes). In order to accomodate long model names, icons now replace text for the "Back" and "Next" buttons in the model "Runtime" tab. This feature requested by numerous users.

Added "Import plot..." feature to plot page File menu. This allows individual plot configurations to be copied between plot pages. Previously, only entire plot pages could be copied, not invidual plots within those pages.

Improvments to Fpack models (thanks to AS):

Added memory usage monitor which shows the current and maximum memory available within a JSim session. Launch the monitor via the "Show memory usage..." item in the project tab File menu.

Fixed jsreg.bat, the Windows batch file that sets the registry to launch project files in JSim via double-click. This script did not work correctly on Windows 7. Fixed code by BJ. Bug report by JC.

Version 1.6.95 - Beta release 8 Jun 2010

JSim's Linux binary distribution is now built on Redhat EL5, and consequently requires GLIBC_2.4 or greater to run. Older Linux distributions (in particular, Redhat EL4) will need to build from source in order to run JSim. Thanks to BJ for the EL5 port.

The runtime "Model Inputs" and "Model Outputs" tables have been resized and rearranged based on user input. The parameter name column now varies with the maximum parameter name length and the value column is now narrower. Inputs and outputs tables now appear side-by-side unless their combine width exceeds an internal threshold, in which case the outputs table follow the inputs. Separate pages for inputs and outputs tables have been discontinued. All text in the Inputs/Outputs, Function Generator and Solvers pages have been moved away from the left margin for better readibility. User input from JB, BJ, GR and AH.

The project content tab has been rewritten to fix various rendering bugs (e.g. occasional distended tree, incorrect indentation after content is renamed). Double clicking on any content now pushes the corresponding tab forward. Contect descriptions may now be edited via the Edit menu's "edit description" item. The "cut" action now requires user OK before content is removed.

Optimization plots now have a log/linear control. Feature request by JB.

The default size of a JSim GUI window has been increased from 800x600 pixels to 1000x800.

The default maximum memory allocation has been increased from 300MB to 600MB.

The JSim CellML models page has been updated to reflect the new "exposure"-centric structure the CellML site.

The "Store parameter set" and "Store parameter set as ..." dialogs have been reorganized for clarity and to prevent accidental storing of one parameter set on top of another. In addition, parameter sets may now be locked via the ParSet tab's Edit menu. A special warning will be issued to the user if s/he attempts to store over a locked parameter set. Change request by JB.

Various GUI text components (e.g. model source editor, notes editors, messages tab, plot text tab, parameter set tab, optimization report tab) were indented away from the left margin for improved readability. Change request by JB & BJ.

Keywords "nans" and "infs" added to data set curve legend to when NaNs or infinite values are present in the curve samples. For example, a curve Cout containing one or more NaNs might be listed as follows (change request by JB):

Cout(t) millimolar {125 samples/nans}

Fixed bug in remote server data query exception cacheing that caused webmodel 0134 data displays to fail when the plotpage tab was visible during a loops run. Bug report by BJ.

The document Using Partial Differential Equations in MML has been updated to explain some tricky issues relating to exchange between diffusive and non-diffusive PDEs. Thanks to GR.

Fixed bug wherein the name shown in a DataSet tab would remain unchanged when the data set was renamed.

Version 1.6.94 - Beta release 19 May 2010, public release 8 Jun 2010

LSFEA PDE solver segment interpolation improved for non-flowing regions. Bug fix by GR.

Longtail function generator has been completely rewritten, and now has new controlling paramters. Thanks to GR for the new code.

Fixed bug in # of small tics in log plot axes. Thanks to GR for the updated code.

The project files and external libraries for the legacy XSim models gentex.proj, gentex2.proj, mmid4.proj and msid4.proj were improved (thanks to AS):

  1. deconvolution in order to obtain an input function is now supported;
  2. the heterogeneity results page now lists all the pathway flows and weights;
  3. pages for time and input functions were added;
  4. various minor cosmetic changes and bug fixes;
  5. To upgrade existing project files containing legacy XSIM models, the unix script jsfpupgrade is provided. It can be found at $JSIMHOME/*/bin. Run the command with no arguments for instructions.

The application for Macintosh has been reorganized so that all resources are inside the application bundle. This allows the JSim application to be placed anywhere within the file system. (Previously, the application would not work when moved out of the distribution folder). To run jsim or jsbatch from the command line, the JSIMHOME environmental variable has be set as explained at the Macitosh download instructions page. However, for backwards compatibility, JSIMHOME can optionally be kept pointing to the folder enclosing the application. Coding changes thanks to AS.

Fixed bug in GUI multi-processoring configuration dialog. Previously, the GUI was inconsistent in communicating the number of processors to be used to the run-time model. Bug report by JB.

Fixed bug in on-line help that prevented access to descriptions of function generators. Bug report GR.

Alternative "Easter egg" images removed from JSim warning dialogs to avoid possible user confusion. Bug report by GR.

Added explicit UTF-8 encoding declaration to all XML files written by JSim.

Version 1.6.93 - Beta release 14 Dec 2009

JSim now supports the Systems Biology Workbench. Thanks to FB for technical guidance and FB and AS for platform testing.

Added -d32 switch to MacOS command line scripts (jsim, jsbatch, ...), when available, to allow running on 64-bit Macs. Bug fix thanks to FB.

Updated JSim Kegg Models page. The new page contains ~72,000 models and may be searched by organism or by pathway. Previosly, the page contained ~12,000 models and was searchable only by organism.

Improvements in optimizer GUI run-time behaviour (bug report by JB):

Under MacOS, all JSim-readable data files (.cdata, .jsml, .tac, .csv, .bul) may now be opened in JSim via Finder double-click. This behaviour may be altered via instructions found here. Also, Info.plist (a file the Finder uses to interact with JSim) has been updated to comply with recent Mac OS standards on Uniform Type Identifiers. Thanks to AS for providing the analysis and coding changes.

Improved error message when model java code generates array index errors.

Fixed bug in jsbatch -out, -odim, -nruns and -ofmt to given reasonable error message if required argument is not present. Bug report by AS.

Version 1.6.92 - Beta release 17 Aug 2009

Clarified wording and buttons on the JSim download pages in the case that the current public release is identical to the latest beta release.

Fixed tab rename problem in which new name was not reflected in the tab until the next time the project was loaded. (Note that the new name did appear correctly in the project tree display). Bug report by JB, GR.

Fixed bug in Sensop optimizer that failed to calculate the covariance matrix and update parameters when parameter values are pinned against their limits. Bug fix by GR.

Version 1.6.91 - Beta release 9 July 2009, Public release 22 July 2009

Revised top level Project content tabs to fix several problems with keyboard accelerators. As a result, the appearance of the tabs (now more correctly called buttons) is somewhat different, but behaviour should be the same. Problems fixed included text edit Cntl-F (Find) and Cntl-A (Find again) not activating correctly when multiple models or parsets where present, and Command-C (copy) sometimes not working correctly on MacOS. If no problems are encountered with this change, more keyboard accelerators will be added in subsequent releases. Bug report by JB.

Fixed JSim launch bug for 64-bit Macs running MacOS 10.5 release 4 and above. Such Macs launch applications 64-bit mode by default, which is incorrect for JSim (which runs in 32-bit mode), resulting in launch failure. This release explicitly instructs MacOS (via Info.plist) to open in 32-bit mode. Earlier JSim releases can be successfully launched on these Macs by selecting "Open in 32 Bit Mode" from the "Get Info" dialog. Bug reports by HY & JB. Bug fix by AS.

Fixed bug in model optimization graph that caused graphing to fail with ArrayIndexOutOfBoundsException when multiple reference curves had distinct time courses. Bug report by GR.

Added e-notation constant support for CellML import.

Updated Introduction to JSim Sensitivity Analysis to demonstrate the difference between absolute and relative sensitivity. Additions thanks the BJ.

Fixed help popup typo for "curve weights". Was "curve weigths". Bug report by AH.

Added null-pointer check to RTModel.getData() to bullet-proof queries initiated before a particular RTDataStore is initialized.

Version 1.6.90 - Beta release 1 Jun 2009, Public release 9 Jul 2009

The LSFEA PDE solver was corrected to remove the error in the concentrations carried by reverse (right to left) flows, caused by an asymmetry in the segment-to-grid and grid-to-segment methods for forward and reverse flows. This correction only affects PDE models with inflow at the right side (x.max) using the LSFEA algorithm. Revised code thanks to GR.

Fixed GUI bug in which model text editing caret (sometimes mistakenly called the "cursor") would become invisible after a model compile, usually when the compile aborted. Bug report by JB, MN.

When a NaN is encountered during the Dopri5 phase of the "Auto" ODE solver, the problem is retried using the Radau solver. Previously, a NaN error did not trigger a Radau retry (although other Dopri5 error conditions, such as overstiffness, did). Bug report by BJ.

Fix but that caused compiler failure when the last line of model text was a //-style comment without a following new-line character. Bug report by GR.

JSim now reverts to simple (non-menu) project tabs when running Java 1.6. Previously, project tab menus came up empty when running applets under a browser's Java 1.6 plug-in (the JSim application currently runs under Java 1.5). This change is a temporary work around until the menu-enabled project tab routine can be revamped to address other problems (keyboard accelerators, native look & feel). Bug report by AH.

JSim now runs the Java memory garbage collector immediately before allocating run data storage. This should marginally improve performance for memory critical models. Also added option to the Messages tab File menu allowing the user to view memory allocation statistics.

Version 1.6.89 - Beta release 29 Apr 2009

As of this release, JSim will now be distributed under a BSD-compatible software license.

Suppressed spurious error message "setFuncGenNames() called when model not compiled" that sometimes occured when running model applets. Bug report by BJ.

Version 1.6.88 - Beta release 17 Apr 2009

Fixed a bug that caused new function generator creation to fail.

Improved clarity of compiler error message for models that specified a negative diffusion coefficient.

Version 1.6.87 - Beta release 15 Apr 2009

This release fixes a bug that sometimes caused a "NullPointerException" abort message during model compile. This was a GUI bug, and does not relate to any particular type of model. Bug reports by BJ & GR.

Version 1.6.86 - Beta release 9 Apr 2009

This version incorporates major changes to the internal structure of JSim's computational engine. These structural changes were made to support upcoming improvements in JSim's unit system and public API. Most JSim users will notice no immediate effect from this change.

PDE support have been upgraded (thanks to GR for much of the work here):

Multiprocessing (MP) support has been upgraded:

Algebraic simplification routine for multiplication and division expressions has been improved, resulting in more readable planner, Java, CellML and SBML code output. There may be some modest run-time performance improvement as well.

Derivative expansion of algebraic expressions has been improved. Previously, some expansions resulted in a unit conversion error, for example u:t = (D*u:x):x; (bug report by GR).

New documents:

Fixed several problems with XSim parameter file import (bug report by JC):

  1. Parameter assignments now correctly handle embedded spaces. Previously, the assignment was truncated at the first space, a problem that also resulted in unbalanced quote marks.
  2. Parameter assignments consisting of a single ternary if/else operator (A==B?C:D) are now imported correctly as the equivalent MML: if (A=B) C else D. Note that if/else operators embedded in more complex expressions still do not import correctly.
  3. XSIM input array assignment are still not supported. However, correction #1 allows the user to see the entire original array assignment and make an appropriate JSim adjustment (either constant or function generator assignment).
  4. Note that, due to structural differences between XSIM and JSim, JSim's XSIM parameter import will always be a somewhat imperfect process, and manual correction may be necessary in some cases.
  5. The jsbatch -lxpar switch now works properly. Previously, it caused jsbatch to crash with a NullPointerException.

Fixed bug that caused sensitivity analysis to fail when perturbing function generator parameters (bug report by GR).

Version 1.6.85m - Bug fix release 10 Dec 2008

This version, which is available for Macintosh only, works around a bug in Mac OS X 10.5.5 for 64-bit computers. The bug causes JSim double-click launch to fail. After 10 Dec, "Download the latest beta release: 1.6.85" will download this version. The bug fix release forces JSim to use Java 1.5 and provides a common JavaApplicationStub instead of using a symbolic link to the system stub.

Version 1.6.85 - Beta release 9 Oct 2008

Revised JSim's Download Page to request name, Email and institutional affiliation with all JSim downloads. This information is gathered at the request of the granting agencies upon whom JSim's continued developed relies.

Revised JSim's Euler ODE solver to match the original Euler algorithm. Previously, the JSim solver labeled "Euler" was, in fact, a 2nd order Runge-Kutta method. This older method has been retained in JSim under the name RK2. Thanks to GR for the new solver code.

Improved equation and expression rendering algorithms to reduce unnecessary parentheses. This change will be most noticable SBML & CellML model translations and various model text outputs (flat, plan, java). Change request by JB.

Updated JSim's CellML Models Page, which now contains many more models(883) than previously(381).

Repressed obsolete "JSim v1.1" line in JSim's CellML to MML translator.

Unary plus is now supported by JSim's MML and expression parsers. This allows some equations to be written more clearly (example below). Change request by JB.

C1:t = +F/V*(C2-C1); // the + here was not previously supported
C2:t = -F/V*(C2-C1);

Fixed bug in plot legend editor in which edit dialogs would sometimes get hidden behind the main project window, locking up JSim until the dialog was found and dismissed. Bug report by GR.

Added -oxmml switch to jsbatch allowing XMML model output. XMML is an XML based format that represents a compiled JSim MML model. In the future, XMML will be useful to various model development, translation and documentation tools. The XMML format is not yet finalized, and no documentation is yet available, but those interested in model translation and informatics issues might find it worth looking at. XMML is being developed in collaboration with Max Neal (UW Bioinformatics).

Modified JSim.text.Batch class constructor to allow external applications to easily incorporate jsbatch-like functionality. Exception handling and program exit, formerly part of the constructor, are now part of the main() method, allowing external programs to use the Batch constructor more easily. Change request by MN.

Version 1.6.84 - Beta release 19 Aug 2008, public release 9 Oct 2008

Updates to JSim's SBML import routine:

Added new Comma Separated Value (CSV) data format.

Column data output may now contain 0D data, so long as there is at least one 1D curve in the data set. Previously, 0D data were excluded from column data output.

Added JSim version number to "jsserver -status" query display.

Restructured JSim's LookAndFeel manager, in anticipation of future support for native looks on MacIntosh and Windows. Fixed bug in LookAndFeel updater so that all tabs reflect user color and font preference changes immediately. Previously, unvisited tabs did not always update correctly.

Version 1.6.83 - Beta release 11 Jun 2008

Simulated annealing optimizer revised (thanks to GR):

  1. The parameter values are now sampled uniformly and equally above and below the current parameter value. Previously, the parameters values were sampled uniformly over the entire parameter range.
  2. Routine now uses relative error instead of absolute error in choosing an uphill step.

Added new document Connecting JSim and Matlab exploring ways to couple the JSim and Matlab computational engines. Document contains a fair amount of information, but is still incomplete. Additional illustrative examples are still in development.

JSim now displays an appropriate error message when the optimizer covariance matrix calculation is requested with a parameter step size of zero. Previously, the calculation would hang until aborted by user. Bug report by GR.

Added "compiler options" dialog to JSim GUI model source tab "Edit" menu, allowing GUI users access to compilation options previously available only in jsbatch. Menu added because the JSim 1.7 compiler (currently under development) will make expanded use of compilation options. jsbatch compilation options are now controlled by the -c switch, which replaces 5 previous switches (-maxBuildTime, -initNaN, -traceNaN, -abortNaN and -trace).

Version 1.6.82 - Beta release 2 Apr 2008

Optimizer improvements:

Two pseudo-random functions has been added to MML:

The generator's seed control has been added to the model solver controls page, and reseeds the generator for each model run. A seed less than or equal to zero will return a different random sequence each run. A seed greater than zero will generate the same sequence each run. Note that random numbers generated outside a model run, for example plot page queries containing random() or simulated annealing optimizations (which use random numbers), are not controlled by this seed. Modelers who, in the past, had to create a MML java function to create random numbers, are advised to migrate to the new MML functions for two reason: 1) the code is easier to read and understand; 2) the MML random() function has good multiprocessor performance, while Java's Math.random() does not.

jsfim model fit curves are now written in JSML format, to accomodate models that vary the model time course as part of their optimization. Formerly, model fit curves were written in columnar data format, which can't accomodate varying time courses.

Version 1.6.81 - Beta release 28 Jan 2008, public release 2 Apr 2008

Optimizer improvements:

Improved Graphic plugin API in anticipation of Model Browser plugin development by GY.

Version 1.6.80 - Beta release 4 Dec 2007

Changes to optimizer:

Changes to jsfim (functional imaging) program:

Improved numeric formatter. Redundant leading zeroes and exponent E0 are repressed. Exponents E1 and E2 are replaced by "0" and "00" respectively when decimal point is absent. Digits exceeded requested precision are repressed more frequently.

Added unit dL (deciliter) to JSim standard units file (nsrunit.mod). Change requested by AS.

Version 1.6.79 - Beta release 8 Oct 2007, public release 4 Dec 2007

Changes to covariance matrix:

jsfim has been updated to accomodate both the I4 and J4 imaging systems. Some aspects of operation have changed and several new switches are available. Previous jsfim users should reread the documentation, especially the "Migration guide", and adjust their command lines accordingly for proper operation.

jsfim is now in the default path on NSR Linux boxes.

Version 1.6.78 - Beta release 4 Sep 2007

Fixed bug in GGopt solver that did not always return the best (i.e. lowest RMS error) parameter values. Bug report by GR. Note: Bug was fixed by disregarding GGopt's returned best values and instead using JSim's external table of parameter values. A fix to GGopt's internal code is also in progress.

Fixed bug in covariance matrix calculation that failed if the model contained non-linear implicit equations.

Modified optimization configuration GUI so that the step size parameter is always visible. Previously, this parameter was invisible for the GGopt and GridSearch optimizers, even though it is used in covariance matrix calculation.

Modified jsfim so that the (unneeded) covariance matrix is not calculated, thus improving performance.

Version 1.6.77 - Beta release 24 Aug 2007

Fixes problem with covariance matrix calculation in previous release. Communication error caused wrong version of the code to be released in 1.6.76.

Version 1.6.76 - Beta release 23 Aug 2007

Optimization runs now calculate the covariance matrix and 90%, 95% and 99% confidence limits by default. This information appears on the optimization report (see the "Report" tab). For an N-parameter optimization, this requires N additional model runs. You may disable this functionality (and save the requisite calculation time) by unchecking the "Covariance mat?" checkbox in the optimization configuration screen. Numerical methods for these calculations provided by GR.

Fixed bug in DataCurve function generator GUI in which preview graph was not updated when the "dataSet" parameter was changed. Bug report by JC.

Version 1.6.75 - Beta(experimental) release 23 July 2007

All JSim binary distributions are now built with Java 5 (AKA 1.5). Previously, Java 1.4 was used. This should improve JSim stability and performance and will enable some future functionality (such as the Hierarchical Model Browser mentioned above).

There is now only one JSim Linux distribution, that for i386. Previously supported IA64 and AMD64 distributions have been discontinued. The IA64 distribution was discontinued because we no longer have access to an appropriate test machine. The AMD64 distribution was discontinued because benchmark tests show (surprisingly) that the JSim i386 distribution actually runs faster (in 32-bit mode) than the native AMD64 (in 64-bit mode) on AMD64 machines. Therefore, AMD64 machine users should use the i386 JSim distribution from now on. Users wanting to run the IA64 or 64-bit mode AMD64 versions of JSim can still run JSim by building it from the source distribution.

IMPORTANT: The model compile accelerator key has been changed from Cntl-Z to Cntl-K to make way for the editor undo facility below. (On MacOS, Command- replaces Cntl- in all accelerators, thanks to AS for information on system-reserved accelerators).

Added undo/redo facility to model source editor. Facility may be activated via Edit menu or the Cntl-Z and Cntl-Shift-Z key strokes. Multiple undo/redos are supported. The facility is still somewhat primitive, but does allow users to recover from inadventent text deletions which is the main point. Further refinements are planned when more developer time becomes available. Feature request by many users, most recently JB.

Fixed bugs in several numeric methods. Bug fixes thanks to GR.

Fixed rendering and data availability bugs in the model optimization graphs (7 views). Bug report by GR.

Fixed compiler bug wherein a real expression evaluating to NaN at compile time (e.g. a/b where a and b are both zero) would cause illegal Java code to be written, resulting in an opaque compiler error message. Bug report by DW.

Fixed bug where TAC file reader encountering an unexpected end-of-file would silently fail. An appropriate error message is now generated. Bug report by DW.

Improved faculties for model debugging:

Version 1.6.74 - Experimental release 1 May 2007, public release 27 Jul 2007

Updated JSim model archives:

Fixed compiler bug that blocked ODE variables together with different domains, resulting in "Not all tools sequenced" error messages. Bug reported by JB.

-f switch now recognizes files in the CellML archive despite lack of extension.

Long model and data file names are now truncated at 15 characters when importing into a project. This change was motivated by extremely long model names in the CellML archive that impaired plot page functionality.

Version 1.6.73 - Beta release 29 Mar 2007

Fixed another bug in hover help system under Windows that caused periodic loss of keyboard focus while typing. Bug report by GR.

Version 1.6.72 - Beta release 26 Mar 2007

Fixed more bugs in hover help system that caused help popup to get stuck in some circumstances. Special thanks to BC for finding a reproducible example of this behaviour.

Added -demo switch to JSim GUI which pushed forward model and plotpage tabs at program launch. Aimed primarily at making applets more friendly for new users. Based on suggestion by HS and others.

New document Using ODEs in MML.

Version 1.6.71 - Beta release Mar 16 2007

Improvements to the JSim on-line documentation continue:

Revised context-sensitive help system. F1 now toggles hover help (enabled by default) on and off. Shift-F1 toggles (old style) fast help on and off. Hover help now pops down immediately upon mouse motion, correcting "stickiness" and "window stacking order" bugs. Changes based on feedback from JA. Also, truncated (apparently baffling) help information for XSIM model output variables. Change request by GR.

It is now recommended that modelers omit the MML version identifier "JSim v1.1" from their models. MML models should now start with whatever line used to follow the "JSim v1.1" line (usually a "unit", "import" or "math" statement). The presence of the line has had no effect since version 1.6.51, and your models will not break if it is present. However, the line tends to confuse new JSim users (who often confuse it with JSim's version number, currently 1.6.71). The JSim documentation set and example models have been updated accordingly.

Added -popout switch to JSim GUI, allowing applets to optionally pop out of the browser frame. This switch has been implemented in JSim examples, SBML and CellML archives.

Fixed bug where creating a function generator would cause custom RTML pages to disappear. Bug report by AS.

Line data format (the default output format for jsbatch) no longer has a tab to initiate each new line.

jsbatch switches and behaviour modified to improve consistency and transparency.

Advanced warning: Due to pending JSim improvements (e.g. visualization from Gary Yngve) requiring Java 1.5, JSim applet users still using the Java 1.4 plugin are strongly urged to update to 1.5. This switch will be mandatory some time in the next few months.

Fixed plug-in classloading bug under Windows. Bug prevented proper loading of plug-in packages due to slash-backslash confusion. Bug report by GY.

Fixed plotting bug that did not properly autoscale constant data curves. Bug report by GR.

Added protection for undeclared IllegalComponentStateException's resulting from JComponent.getLocationOnScreen(). When triggered, this exception could cause various GUI troubles.

Support .cellml file suffix for CellML files and .sbml file suffix for SBML files. Previously, these files were supported only with the .xml prefix. Change suggested by AS.

Version 1.6.70 - Beta release 5 Feb 2007

JSim's home page redesigned and moved to Please update your bookmarks. To better to conform with standard terminology, JSim "experimental" releases are now called "beta" releases.

JSim source code distributions are now available.

Extended Graphic plugins to allow access to both constraints and run-time data. Previously Graphic plugins were only able to access runtime data. Extended JSim public API with new methods for variable constraint and property query. Revised model variable help popups and jsbatch -q option to use these queries. Changes made to support Gary Yngve's graphic model browser which is in development.

Added "hover help" wherein leaving the mouse stationary over an interface item for ~1.5 seconds will trigger a help database query. Previously, help was available only at direct user request via the F1 key (whose functionality is unaffected by this change). Hover help was added because:

  1. Public awareness of F1-based help appeared to be lacking;
  2. F1-based help was unavailable in many applets because many browsers interpret F1 themselves, and do not pass the keystroke on the the applet.

Contact the NSR development team if you wish to comment regarding the revised help mechanism.

Fixed bug in which optimization graph would sometimes fail to appear. Bug report by AA. Also fixed optimization progress dialog to show correct maximum # or runs. Previously, the number shown was one to large.

The MacCormack solver is now the default for PDE's that cannot be solved via LSFEA (e.g. no convection term). Previously the default was Toms731, however MacCormack has shown itself to be faster and more accurate than Toms731 in most cases. Calculations explicitly assigned to Toms731 are not affected by this change.

Removed Toms690 PDE solver. This solver has not performed satisfactorily and posed a maintenance burden for JSim's transition to multiprocessing . If this solver was important for your work, please contact the JSim development team.

Revised MacOS & Windows icon files to incorporate new JSim logo. Logo design by TB. Icon file implementation by AS.

Removed doc.html (structured text documentation) from distribution and CVS archive. JSim on-line documentation is currently transitioning to pure HTML and the structured text mechanism will no longer be used.

Fixed error in MathML generation for statements using MML if-else clause. Bug report by DN.

Updated document Using Integrals and Sums in MML to better describe the underlying calculation method. Suggestion by GR & JB.

Version 1.6.69 - Beta release 12 Dec 2006, public release 5 Feb 2007

Fixed broken MathML generation (first released in version 1.6.68). The JSim MathML page has been updated to reflect the changes.

Fixed "area fill" coutour plot bug in which graph would occasionally disappear due to an ArrayOutOfBoundsException. Bug report by GR.

Fixed MML compiler bug that caused erroneous numeric results in certain PDEs when using the MacCormack or Toms solvers. PDEs affected were a subset of those with space-dependent variables that were not also time-dependent (e.g. declared as D(x) not D(x,t)). The bug effectively substituted D(x.max) for D(x) in the above example. Bug report by GR.

Fixed broken script at NSR (this script launches the latest public version on NSR Linux boxes). Bug report by GR.

Updated altix multiprocessing benchmark figures now available.

Version 1.6.68 - Beta release 4 Dec 2006

The new JSim Movies Page is now available. This is a collection of on-line flash videos, providing basic instruction on the use of JSim. Especially recommended for new JSim users.

Plot data curves now default to distinct colors. The first curve in a page defaults to black, the second to red, third orange, etc. Previously, all curves defaulted to black. Curve colors may still be changed (if desired) via a popup menu. This change suggested by JA, and adopted by concensus of the NSR group meeting of Nov 21 2006.

JSim applications now use Java 1.5 (except on Linux IA64, for which Java 1.5 is not currently available). WWW browsers may still run JSim using Java 1.4 plugins. However, since Java 1.5 does offer improved performance and various bug fixes, it is recommended users switch to Java 1.5 plugins if possible. See here for details. Specific bugs fixed by Java 1.5 are:

Added workaround for Java 1.5 browser bug on Macos that prevented some plot page "View" menu options from working correctly. Revised code contributed by AS.

Added workaround for Java 1.4 browser bug that caused some menus (e.g. plot page variable selection) to appear underneath browser window. This was deemed necessary because the buggy Java 1.4 plugin is still in fairly common use. Behaviour under this workaround is imperfect, but somewhat better than the previous behaviour. WWW users are urged to upgrade to the new Java 1.5 plugins if at all possible.

Modified optimizer model residual calculation so that only reference data points that fall within the model domain(s) are considered. Previously, model values at all reference points were considered, with model values beyond the calculated domains extrapolated from domain min and/or max values. If model and reference data domains have null intersection, the optimizer will abort because it can't make any valid comparison. Due to technical issues, the abort message is currently more informative when running Java-based algorithms (i.e. GridSearch/NelderMead) than native code algorithms (i.e. Simplex/GGopt). Bug report by JB and GR.

JSim now offers the option of exporting MathML . This is intended to make it easier for WWW developers to generate standard mathematical markup for their MML models. Update: Signficant errors have been discovered in this feature. A corrected version will be released in version 1.6.69.

Several improvements to JSim's internal verification suite suggested by AS.

Removed large number of unused Fortran models from FPack build directory to speed up build process.

Version 1.6.67 - Beta release 28 Sep 2006

JSim multiprocessing (MP) , the ability to utilize multiple system processors to improve calculation speed, is now available. This is the first of several JSim MP enhancements expected over the coming months and years. The current release enables multiprocessing for multi-run analyses (model loops, sensitivity analysis and optimization) for most JSim models running on shared-memory multiprocessors. See the linked document above for a description of expected future enhancements and a rough time-table. Thanks to GR for the multithreaded version of the Radau ODE solver.

Two new optimizers are now available. Both are multi-processor capable (see above):

jsfim , a new command-line utility for generating functional images from JSim models is now available.

New multi-linear interpolation algorithm replaces old algorithm that was often inaccurate in 2 or more dimensions. Alternative Veldhuizen interpolation algorithm is also implemented, but not yet used by JSim. User selection of interpolation algorithm may be implemented at some future time. Thanks to AS for the analysis and coding here. New JSim RealNData Interpolation Specification is aimed at interpolation algorithm developers.

Fixed JPlanWriter bug in which cached domain variables were not loaded properly. Verification test in VERIFY/exact/MOD/tcache.mod. Bug report by AS (Gnats JSIM/173).

The JSim linux_i386 build is now using g95 instead of gfortran to compile Fortran subroutines. This switch was due to crashes when writing formatted text output. Other JSim builds continue to use gfortran for now, but this may change as testing continues.

MML class functions are now required to declare their return data type. This should only impact JSim internals developers.

Version 1.6.66 - Beta release Aug 23 2006, Public release Sep 28 2006

The JSim MacIntosh distribution now runs on both Intel and PowerPC based MacIntoshes. Thanks to AS for work on this distribution.

XSim-style models and the JSim Fortran Package are now available for all JSim platforms except Windows. Previously they were available only for Linux i386 and PowerPC Macintosh.

Fixed bug in JSim distribution process that prevented SBML models from being loaded properly. Added SBML section to JSim verification suite to prevent this error in the future. Bug report by BC.

Fixed bug in MacOS WWW applet that did not correctly display multiple top-level project tabs. Bug report (Gnats JSIM/171) by MN. Change thanks to AS.

Fixed bug in XSim parfile import that aborted with a NullPointerException on certain pre-XSIM-3.21 parameter files. Bug report by AS.

Improved XSIM paramter file import so it recognizes some simple static eval clauses (e.g. eval="switch-1") and compensates appropriately. Note that processing of complex or dynamic eval clauses in XSIM parameter sets is not supported. Bug report by AS. Preliminary analysis by GR.

Customizable variable properties have been added to assist connecting MML models to various formal ontologies, such and the Foundational Model of Anatomy and the Ontology of Physics and Biology. Development in collaboration with MN and GY.

The JSim source code build process has had a major overhaul. Makefiles have been reorganized to collect all OS-specific setup in a single file ($JSIMSRC/home/lib/$OS). This file may also be used to customize native compilers in local distributions ($JSIMHOME/lib/$OS) for jscompile_c and jsxwrap. gcc4 and gfortran are now used for native builds instead of gcc3 and g77.

jscompile_c (formerly, which is used to compile C language functions and procedures is now provided by default on non-Windows platforms. However, the script and associated makefiles will need to be edited to correspond to the compiler locations on your system in most cases. Simplest way to do this is to edit the common makefiles in $JSIMHOME/lib. Note that the calling arguments to this script have changed (see link above).

jsxwrap, which is used to build XSim-style models (on non-Windows platforms) now uses the common makefiles in $JSIMHOME/lib, so localization is best accomplished by editing them rather than the jsxwrap script itself.

Added new documentation:

Version 1.6.65 - Beta release 8 May 2006

You may now run some SBML models within JSim. Support for SBML is preliminary at this point. More complete SBML support will follow in future releases. Over 12,000 annotated SBML models may now be run on the JSim SBML Models page .

Users may now forward ODE ICs from any time-point of a previous run, instead of only from the final value. In the JSim GUI, the time point selection is accomplished via a popup dialog. In jsbatch, selection is done via new optional arguments to the -fwdIC switch . The default, in both programs, is to forward from the final value. Change request by JB.

Function generator preview now renders curves as medium-thick blue lines rather than thin black lines with circle symbols. Change request by JB.

Replaced JSim's distributed MacOS JavaApplicationStub with a symbolic link, improving compatibility across operating system releases (e.g. Panther to Tiger).

Updated methods in Graphic and ModelEasel plugins for improved data query and state preservation based on discussions with GY. The implementation classes for these plugins have been moved to the JSim.gui.plugin package for documentation purposes. The JSim Public API is now available to assist plugin programming.

Version 1.6.64 - Beta release 17 Apr 2006

JSim's plugin functionality is now available, allowing users to write plugin modules to enhance JSim's run-time functionality. 4 plugin types are initially supported:

Version 1.6.63 - Beta release 8 Feb 2006

JSim now has three Linux distribution flavors for chip architectures i386, amd64 and ia64. Previously, only the i386 architecture was available. The download and installation instructions have changed somewhat as a result.

JSim now selects the Java compiler version (1.4 or 1.5) to use based on the version of Java running. Previously, JSim always used the 1.4 compiler, which caused trouble when JSim was run under Java 1.5. This should be especially helpful for MacOS users who have Java 1.5 installed.

Fixed bug in printing under MacOS that would sometimes print blank pages while generating a ChildNotFoundException message. Bug fix thanks to AS.

Fixed bug in loops that would not properly vary function generator or solver parameters. Bug report by GR and BC.

Added new unit abreviations P=poise and cP=centipoise. The older abreviations p=poise and cp=centipoise will be retained for compatibility for the time being, although they may eventually be phased out. Change request by JB.

Added the jsserver -userPort switch to address remote JSim computation with an intervening firewall.

Fixed NullPointerException bug that could occur in integral() function. Bug report by AS.

Fixed bug in remote client connection on non-standard port (e.g. not 1099).

Fixed bug in trusted remote client connection when local user name contains embedded punctuation. Bug report by Josh Busch.

Version 1.6.62 - Beta release 12 Dec 2005, Public release 8 Feb 2006

Reverted old-style integral(expr@t) to pre-1.6.60 functionality due to unresolved bugs in JSim planner. The new form integral(t=min to max, expr) was not affected. For details see integral legacy support. Bug report by JB.

Version 1.6.61 - Beta release 5 Dec 2005

A major upgrade of the CellML->MML translator regarding units will have the following noticable effects:

Fixed planner bug sometimes issued a "variable phase assignment error" when an ODE derivative variable was solved via implicit equations. Bug report by BC.

Fixed bug (introduced in 1.6.60) that broke compilation for template constructed models (e.g. MFAX BCL). Bug related to reworking of sum and integral functions in 1.6.60.

New document MML Debugging Guide is now available to help relatively advanced model writers with model debugging. The JSim model subtab former designated "Info" has been renamed "Debug" in conjuction with this document.

Version 1.6.60 - Beta release 21 Nov 2005

The MML integral() and sum() functions are improved:

Simplex and ggopt optimizers are now reentrant and support multi-processing. The immediate benefit is that you may now run the model optimizer successfully on models that contain non-linear implicit equations . Previously, such attempts would cause JSim to crash rather spectacularly. The long-term benefit is this puts JSim one step closer to making multi-processing available to users. Additionally, ggopt internal arrays are now dynamically allocated, allowing more parameters to be optimized and more simultaneous non-linear implicit equations to be solved. Improved code thanks to GR.

Improved MacCormack PDE solver boundary condition calculation by replacing a first order derivative approximation with a second order. Change thanks to AM.

Planner text output now gives a reason when LSFEA or MacCormack solvers are not supported in a particular block (e.g. no convection term for LSFEA).

Fixed bug in CellML->MML converter that incorrectly rejected CellML unit definitions that matched cellmlunit.mod definitions (e.g. "picoampere") even if the definitions were equivalent. Bug report by DN.

Fixed bug in JSim applet under Windows that occured when the -f switch specified a file (not an URL) containing slashes (/). The bug caused requested URLs to have some slashes replaced by back-slashes (\), resulting in read failure. Bug report by MN.

Fixed bug (introduced in version 1.6.58) that caused JSim to use simplex model optimizer even if user selected ggopt.

Fixed bug that told user simplex optimizer had finished normally when it had been canceled by the user.

Fixed bug that caused JSim to freeze if user typed axis min=axis max on a manually scaled plot. Bug report by MN.

Fixed bug that sometimes failed to remove work directory after JSim session when directory was mounted on remote NFS volume and model required flattening. Thanks to EL for technical information related to this fix.

Added information for JSim internals developers on use of jdb with JSim .

The contents page for the JSim documentation set has been significantly improved.

Version 1.6.59 - Beta release 7 Nov 2005

Introduced new MacCormack PDE solver. Implementation by Andy Matuszkiewicz.

Introduced new jsbatch switches -trace -traceNaN and -abortNaN for model debugging. See the jsbatch manual for details.

CellML to MML translator now imports model-specific unit definitions via canonical names to avoid confusion with conflicting definitions in the JSim standard units file (nsrunit.mod).

Fixed bug in plot page that would freeze for long periods if data contained -Infinity. Bug report by JB.

Fixed bugs in loop run-time control and plot legend that did not properly handle the loop "off" control. Bug report by JB.

Version 1.6.58 - Beta release 31 Oct 2005

The JSim model compiler now produces more efficient run-time code, resulting in ~50% increase in calculation speed for many models (e.g. VS001).

JSim model calculations now use native methods to calculate many transcendental functions, resulting in 20-100% speed improvements. Improvement percentages vary by function and operating system. Note that such calls may now return slightly different results under different operating systems. Previously, such result were identical on all platforms. Also, common integer powers (e.g. x^2) operate much faster due to run-time code optimization.

Fixed indexing bug in LSFEA PDE solver that caused inaccurate results. This change will affect all model results using the LSFEA solver. Please contact NSR if you believe the new version gives poorer results for problems of interest to you. Bug report by JB. Revised code thanks to AM.

MML built-in function rem(a,b), introduced in the previous release, is now implemented via the java % operator (which returns non-negative values for positive arguments) rather than Math.IEEEremainder (which may return negative values). Bug report by DN.

The common system units file (nsrunit.mod) now defines A=ampere instead of A=angstrom.

JSim and jsbatch -f switch will now accept either files or URLs. Feature request by EL. As part of this change, streamlined JSim file handling routines, hopefully not messing anything up.

Fixed bug where model source changes were sometimes lost when the Ctrl-Z accelerator was typed. Bug report by MN (Gnats jsim/115).

Modified jsbatch main line order-of-operations to better match user expectations when using multiple switches. Bug report by MN reported non-functionality of -spar switch in absence of -optim.

Model optimizer now truncates best fit parameters to 8 digits of accuraccy to improve readability. Previously parameters were returned up to 18 digits long, making exponents (if any) awkward to view.

Model run-time object is now more persistent, enabling future transition to multi-threaded function generators. Immediate result is that intermediate text file generated during a compile (e.g. .flat, .java, plan output) are sometimes available in the JSim GUI even when if the compilation fails.

CellML translator no longer speculates on value for realDomain .delta and .max. These variables are designated "extern" requiring the user to specify values before running a model. Previously, .delta was assigned a default value of 1, .max a value of 10.

Disabled faulty IC/BC consistency check for PDEs using BCs containing both a state variable and it's spatial derivative, for example:

      when (x=x.max) alpha*u + beta*u:x = gamma;

The above is a prelimary fix, that will be reexamined during an upcoming review of JSim's PDE solvers. Bug report by AM.

Function generators restructured for future multi-processing support. Preview functionality in GUI improved.

Plot page communications revamped to support multi-processing. As a result of this:

  1. Line type assignment for model loops is now less confusing to view when "update during run" is selected.
  2. JSim no longer freezes when when log-plotting contour data containing non-positive values in their X and Y grids. This data still does not render properly, but at least JSim continues to run.

New plot items are now initially assigned no plot symbol and "medium" line thickness. Previously, new items were initially assigned a circle plot symbol and "thin" line thickness. Change request by JB.

Fixed bug, introduced in 1.6.57, that erroneously set the "save needed" flag when a project was initially loaded, resulting in an unneccessary prompt to save changes when exiting.

Fixed bug in GUI parameter set tabs than garbled names of function generator parameters.

Fixed bug in model solvers page that superimposed the conditional "Toms solvers needed for this model" message on top of the ODE selection control (if present). Bug report by JB.

Version 1.6.57 - Beta release 8 Aug 2005

MML built-in functions floor(), ceil() and round() now require dimensionless arguments. This change done with concurrence of JSim developers AM, MN, GR, BC & EB. Previously, these functions could operate on arguments with units, returning results with that same unit. Change avoids non-sensical situations such as the following:

      floor(.5 kg) != floor(500 g)

Added new built-in MML function rem(a,b) for remainder of a when divided by b. This function follows the IEEE 754 conventions for remainders and requires unit-compatible arguments. Feature requested by DN and AM.

Added jsbatch switch "-iproj" to allow import of selected content from other projects. Added names option to "-oproj" switch to allow selected output of project content. See jsbatch manual for details. Feature requested by MN.

jsbatch -omml switch now works properly even if model is not compilable. Previously, this command would abort if the model had any compilation errors.

Fixes to the CellML to JSim MML translator :

Added offending MML line number to some unit-balancing error messages in which it was missing.

Changed unit correction error message reporting while in verbose mode (see the -v switch in jsim and jsbatch). Previously the program would abort after the first unit correction error. Now verbose mode details the unit correction results for all equations and events, and will abort afterward should any error be found.

Fixed erroneous project file optimization configuration tag (was "PNamed" now "optim"). Newly created project files will correctly pass optimization information only to JSim version 1.6.42 and above.

Project datasets are now saved in the newer and more efficient "ascii" format, rather than the older "legacy" format. Ascii format is recognized by all JSim versions back to 1.6.47. Earlier versions only support legacy format. The dataset "Encoding" menu allows you to save in legacy format when passing project files to users of older JSim versions, but be aware that legacy format is problematic in a number of ways. A better approach would be to get your correspondent to update to a newer version of JSim.

Updated and cleaned up many pages in the JSim documentation set, especially:

Added "Images" tab to model for loading and editing of images associated with model RTML. See Introduction to JSim RTML .

Version 1.6.56 - Beta release 21 Jul 2005, Public release 8 Aug 2005

Fixed planner bug that erroneously created ODE initial value variables (e.g. v__init) when the initial value was calculated from private variables. Bug report by JB.

Fixed compilation bug that occured when running in non-US/UK locales where the comma is the decimal separator (e.g. 3/2 is expressed as 1,5 rather than 1.5). At present, JSim uses the US/UK numeric representation exclusively. Import, export and display support for international decimal formats may be provided in the future, but is not available currently due to complex technical issues. If international decimal format support is important to you, please contact the JSim development team so its priority can be elevated. Bug report by OU and FA.

Added import support for CellML models to that apply transcendental function to expressions with non-scalar units.

Added -stack switch to jsserver (JSim remote server) program for enhanced debugging capability. Used this to fix several intermittent jsserver timing bugs:

Version 1.6.54 - Beta release 11 Jul 2005

Fixed bug that froze a plot page if it attempted to autoscale plot curves containing IEEE 754 NaN values Infinity or -Infinity.

Added more descriptive error messages from Radau ODE solver. Bug report by DR.

You may now import many CellML models into JSim . This feature is very preliminary, and will be refined in subsequent JSim releases. Several of the changes below were made primarily for purposes of CellML support.

Physical units definitions may now include the keyword "prefixable", which allows standard SI unit prefixes "kilo", "milli", "micro" etc. to be interpreted correctly. Many units in the JSim standard units file now use this keyword, see $JSIMHOME/common/nsrunit.mod for details (this file may be viewed in a model's Info tab in the JSim GUI). Also added several missing units required by CellML (see above). Those who need to define additional units beyond those provided in the standard file should see here for an example.

Degrees kelvin is now declared as a fundamental unit in the standard units file (nsrunit.mod). Previously, kelvin was a derived unit based on a dimensionless R in equations PV=nRT. Existing models relying on the implicit dimensionless R (if any) may need to be modified for unit balancing to work properly. Other models using kelvin may exhibit minor differences in numeric results (beyond the 7th digit of accuraccy) due to constant multiplier roundoff. This change should make unit balancing error messages easier to understand. Change suggested by AM, with concurrence by EB.

Added built-in hyperbolic functions (sinh, cosh and tanh) and their inverses (asinh, acosh and atanh).

JSim for Linux is now built on a Redhat EL system (previously, is was built under Redhat 9). The Fortran-to-C library has been updated, resulting in minor computational differences in some distributed Fpack (XSim-like) models.

Version 1.6.53 - Beta release 27 May 2005

Fixed bug (introduced in 1.6.52) that caused project "save needed" flag to be cleared after any successful model compile. Bug report by AM.

Removed spurious ColumnDataReader message on console.

Version 1.6.52 - Beta release 24 May 2005

Improved automatic unit assignment for variables declared without units. The new recursive algorithm uses more contextual information to assign consistent units to variables, especially ODE state variables and their derivatives. Note that some unit-inconsistent models that formerly passed unit verification will now be rejected.

Fixed bug in MML equation simplification and unit correction of constants with units. The following example previously resulted in variable a having value 1 rather than the correct value of 60:

      real a = (1 min)/(1 sec);

Fixed bug in that prohibited using derivative variables on right-hand side of event statements.

Fixed bug in ColumnDataWriter that allowed quote-mangled names to sometimes appear in .cdata output files. Improved TacDataWriter by placing non-TAC-style curve names (if any) in curve column headings if the curves have no separate description field. Bug report by AS (gnats JSIM/165).

Fixed bug in TacDataWriter that caused curves written to TAC file to be renamed within JSim to TAC-style names (e.g. R1s1). This caused confusing behavior in the JSim GUI. Bug report by JB.

Modified behaviour of ColumnDataWriter and TacDataWriter when user requests saving data of mixed dimensionality (these two formats support only 1D curves). Previously, such requests would generate an error message and no data would be written. Now, the 1D curves are saved and a warning message informs the user that some data had to be excluded due to its dimensionality.

Improved ColumnDataReader load performance. Bug report by MN.

Improved error message when data-curve based function generator is misconfigured. Previously, in some circumstances, an uninformative "NullPointerException" message was generated. Bug report by MN.

Added compilation error message when a realDomain is declared with parenthetical arguments, e.g. "realDomain t(x);" Previously, such non-sensical arguments were simply ignored. Bug noted in model by MN.

Equation-related error messages clarified by showing original MML equation rather than simplified and/or unit-corrected equation.

Added extra space in plot coordinate query and help system popups to make room for the "Java Applet Window" warning banner that appears in all untrusted applet popups. Note that the appearance of the warning banner is mandated by Java security protocols, and cannot be repressed by JSim. Users annoyed by the banner should use the trusted applet version , when available. Bug report by EL.

Fixed bug where popup menus (e.g. plot variable selection list) would sometimes remained visible after the parent window was hidden via tab selection. Bug report by JB.

Fixed bug where closing a project window while it was loading locked the application job queue preventing any further model runs or compiles. Bug report by AS.

Removed spurious console error message that occured when double-clicking on a model or data file in the MacOS finder. Bug report and fix by AS.

Model compilation no longer sets the "needs to be saved" flag in a project. This allows you to load a project file, compile/run the model and exit without being prompted to save changes. Note that loop and sensitivity runs still set the save flag unnecessarily. This situation will be remedied once loop and sensitivity logic is updated for multi-processing (in progress May 2005). Bug report by AS.

Disabled window close option for job control dialogs (e.g. run control). User must press cancel or wait for dialog to complete. Feature request by GR.

Fixed problems with NSR local C compiler installation scripts. Improved verify suite to better test installed C compiler. Updated erroneous C compiler examples in C language F&P tutorial. Bug report AM.

Version 1.6.51 - Beta release 27 Apr 2005

Several improvements were made to the physical units system:

  1. Better support for parentheses and powers in unit expressions, for example "1/(g/ml)" or "1/(g/ml)^2". Previously, such declarations would generate errors. Note that, due to MML syntax issues, unit expressions may not start with a parenthesis.
  2. Corrected several bugs (bug report by AM) in cases where a variable's unit was calculated automatically. In the following example, Q was previously assigned units s/ml, instead of the correct ml/s:
          real P = 100 mmHg;
          real R = 5 mmHg*s/ml;
          real Q = P/R;
  3. Automatically calculated units now go through an improved simplification process, making both model output and error messages easier to read. In the following example, S will be assigned units of sec rather than the previous "sec*m/sec" :
          real V = 60 m/sec;
          real T = 5 sec;
          real S = T*V;

Bug fixed in MML arctangent function (atan). In previous versions, atan(x,y) was sometimes calculated as atan(y,x). Specifically, this bug occured in atan evaluations during a model run - atan calls at compilation time and data query (plot) time were handled correctly. Modelers using the atan function should recheck their models to make sure they work correctly with after this fix. Bug report by AM.

Fixed two planner sequencing bugs. One could show up when calculating and interpolated value of an extern variable. The other could show up in when domain min or max are calculated indirectly from variables of another domain. Bug report by MN.

Fixed bug where a model compilation error would cause source code cursor to stop blinking. Bug report by AM.

Fixed bug where periods in model name would cause compilation to fail. Previously, project content (e.g. models, datasets, parameter sets, etc.) with periods in names, or starting with a number, were not officially supported. Now they are. Added logic to prevent creation of project content with names containing illegal characters such as space or ampersand. Bug report by JB.

Fixed bug in which modal print dialogs could be pushed behind main window, locking the application until the user relocated and canceled them. This was a bug in the JDK distributed with Linux (it did not affect Windows or Macintosh). The distributed JDK for Linux JSim was updated to a more recent version. Bug report by AM.

The JSim MML version tag "JSim v1.1" is now optional. This version number (which is independent of JSim's release version) had been a source of confusion for new users. If you are sharing your models with users of JSim 1.6.50 and earlier, you should probably still include it to prevent breakage.

Fixed bug in that sometimes disabled plot live update for function generator variables.

Fixed bug in MML event sequencing (trigger calculability was not being tested).

The wrapping process for XSim-style models has changed (a copy of xscom is now linked inside each dynamic library). As a consequence, JSim can now handle multiple XSim-style models within a single session (previously, only a single such model would work properly). If you have created XSim-style model of your own (apart from those distributed with the JSim Fortran Package ), you will need to rewrap them for them to work with the new JSim version.

Removed extra domain restriction on LSFEA (Lagrangian) PDE solver. This allows the LSFEA solver to be used in models with multiple parallel pathways.

The JSim computational engine is undergoing restructuring that should not be apparent to users. This restructuring will eventually results in multiprocessing support for JSim. JSim internals developers should note that JSim no longer locks the run thread during queries.

Version 1.6.50 - Beta release 2 Mar 2005, Public release 28 Mar 2005

Implemented non-linear zero finders for solving one or more implicit non-linear equations. At present these zero finders share non-reentrant optimizer methods (ggopt and simplex) and so will not function properly when using the model optimizer. Complete information is available here .

Modified JSim's java code generator (JPlanWriter) to break large ODE and PDE methods into smaller chunks so as to not exceed Java's 64KB method limit. Bug report by AS.

ColumnDataFormat now support units labeling for curves. Output files will include a units line if at least one curve has a non-trivial unit. Note that this unit line is not supported in older JSim versions, and so should be removed before attempting import into those versions. Revised ColumnDataFormat specification is available here . Change request by MN.

Added RTML (Run-time Markup Language) import/export options to model "Run-time" tab's "Pages" menu. This allows model writers to customize the appearance of the model run-time page (as in XSim models). To a similar end, added jsbatch -rtml and -ortml switches. RTML was edited via the "Customize" tab in JSim version 1.6.48 and below. The present changes allow RTML to be exported for external edit and then reimported. Drag-and-drop RTML layout is planned for the future, but is not yet available. Please contact the JSim development team in drag-and-drop RTML layout is a high priority for you.

Fixed bug in loading files via URLs, which had made the applet version of JSim inoperable (bug report JB).

Version 1.6.49 - Beta release 7 Feb 2005.

Fixed bug introduced in 1.6.47 that abort XSim-style model compiles with multiple "Invalid character in input" console messages (bug report by GR).

JSim now creates a new work directory automatically for each session, allowing multiple concurrent sessions to be launched from a single user account without conflict. Previously, if multiple concurrent sessions were to be launched from a single user account, the user needed to set the JSIMWORK environment variable differently for each session to prevent conflict. Work directories are deleted at the end of the session. Orphaned work directories (caused by JVM or OS crashes, for example) will be automatically cleaned up after 30 days. As part of this change, the JSIMWORK environment variable no longer has any effect on JSim operation.

Modified JSim's loops, sensitivity and optimizer configuration pages for an improved user experience:

Many revisions and updates were made in JSim's internal on-line help system. More work remains to be done here, but this is a step forward. Fixed bug in help introduced last release.

On-line help text in now modifiable within JSim, simplifying the documentation editing process for JSim internals developers. Use Control-F1 to edit help for an item. Export the edited help file to $JSIMSRC/JSim/gui/helpDB.xml once editing is complete. Model variable help is also editable, but there are no storage/retrieval mechanisms in place yet. Eventually, model help will be stored in the project with the model. Contact the JSim development team if this is a priority item for you.

Version 1.6.48 - Beta release 24 Jan 2005.

Fixed bug that caused plotpage_1 to become inoperative after the first project load (unless project was specified on command line). Bug report by AS & JB (Gnats JSIM/163).

Added several editing functions to project data set tabs. Curves can be cut/copy/pasted between data sets as well as renamed. There is also a filtering option which currently supports cropping and resampling. In the future there will also be block and normal filtering options. Contact the JSim development team if this is a priority for your work.

Improved error messages when incorrect switches are specified to jsbatch.

Version 1.6.47 - Beta release 18 Jan 2005.

JSML data files and project data sets may now be stored using the new "ascii" encoding (as contrasted with the older "legacy" encoding). Ascii encoding takes less disk space, loads faster and better supports physical units and multi-dimensional variables. This makes working with large project data sets (e.g. more than 100,000 points) much easier. Since ascii encoding is new this release, it is not appropriate for files shared with users of JSim versions before 1.6.47. See details here .

Improved load speed for large data files (not only JSML) by about a factor of 3.

Plot page text tab now uses dynamic scrolling, which reduces memory cost and improves performance for large data sets.

Reducing annoying double dialog for text printing to single dialog.

New jsbatch switches:

Added code compensating for JVM bug that occurs when creating very large strings.

Added code preventing Windows' idiosyncratic directory separator character from befouling URLs in JSim-enabled WWW pages. In earlier versions, WWW pages specifying JSim files within sub-directories would not load properly under Windows. Bug reported by AS (Gnats JSIM/161).

Version 1.6.46 - Beta release 10 Jan 2004

Fixed plan writer bug introduced in 1.6.45 that improperly rounded some double precision constants to single precision. Along with minor inaccuracies, this caused ODE/PDE solver errors in some models. Bug report by MN (Gnats JSIM/160).

Fixed bug that sometimes causes portions of the project window to be obscured by data graphs that should not be visible (noted by GR).

Bug fixes for log plots:

Model optimizer now issues a warning message if NaNs in output curves prevent effective optimization. Fixed bug (noted by JB) that disabled model if this situation occured in remote server.

Made some minor cosmetic changes to PrettyOutputFormat in preparation for planned improvements in release 1.6.47. That release will feature improved plot text viewing for large datasets (currently very slow and wasteful of memory).

Revised the appearance of data set project tabs. The new version features a scrollable index and data preview window. Click on a curve in the index to preview it. Control-click and Shift-click allow multiple curves to be superimposed. Currently only one-dimensional curves are previewable. Future releases will allow users to perform some curve editing functions (cut, copy, paste, rename, crop & filter).

Version 1.6.45 - Beta release 3 Jan 2005

A demonstration page for JSim WWW applet functionality is now available on the JSim Home Page .

JSim server is now officially released for Linux and MacOS. A Windows version will be available in the near future.

Fixed data curve function generator bug that occurs only when running remotely (bug noted by AS).

Top level project tabs no longer occupy multiple lines. If too many tabs are present to fit into a single line, they are grouped into categories (e.g. Models, ParSets, Plot Pages) for menu-based selection. Previously, in complex projects (e.g. MN's VS projects), tabs would occupy multiple lines, seriously eating into the area available for editing, plotting, and other user functions.

Added "Show axis-bounds slider" option to plot page "View" menu. When axis-bounds slider is active, plot axis min & max may be adjusted graphically by dragging the slider center, allowing users to easily scroll through large data curves. The min or max may be adjusted separately by dragging the slider left or right tails. Double clicking on the slider center resets the axis min and max to that of the plotted data. Double clicking on the slider left or right tails moves the min and max one axis range in the respective direction. Axis-bounds sliders are active only when autoscale is off and data is present in the plot (e.g. after a run).

Plot pages now support animation of the axis-bounds slider (see above). Animation is configured and controlled by the "Animation Configuration" dialog, which is made visible by pressing the "Animate" button to the right of the axis-bounds slider. Smoothness of animation varies based upon the speed of your computer and the size of your data set. Other styles of animation are planned for future JSim releases.

Plot graphics code restructured for better performance and maintainability. Large plots may now render faster by factors of 200 or more. The "update during run" option no longer slows down model runs, so is useful more often. Specific changes include:

Version 1.6.44 - Beta release 16 Nov 2004

JSim applet functionality is now available, although still in beta test. This allows the incorporation of the interactive JSim application into WWW pages.

The JSim Sandbox is introduced, an improvement upon the earlier "-secure" switch.

If JSim fails at startup, a popup error message will alert the user to the problem. Previously, this message was printed only on the terminal console, making it invisible if you started JSim by clicking on an icon.

Clarified optimization error messages when parameter min, max and starting values are non-sensical. Bug report by MN.

Fixed bug where # of model runs completed was not displayed correctly during model optimization. Bug report by GR.

Model builds during project loads now performed asyncronously.

Example java code formerly found in $JSIMSRC/soap moved to $JSIMSRC/tests.

Version 1.6.43 - Beta release 27 Oct 2004

JSim remote server implementation is now complete, and is available to JSim software developers for testing. The functionality will be made available to end users after it has been more fully tested. The JSim SOAP server implementation team may now use the existing RMI server as a model for their SOAP development. The SOAP developers document has been updated.

Improved PrettyOutputFormat for higher dimensional data (3D and above). Variables with identical domain declarations (including order) are now tabled together. Previously, high dimension outputs were always placed in separate tables. Change requested by SA.

Optimization weighting improved for multiple data curves. Bug fix thanks to GR.

JSim secure mode is now available, allowing JSim users to prevent attacks by malicious model or project files.

JSim text editors now use the system clipboard during cut/copy/paste, expediting data transfer between JSim and other programs that use the clipboard (thanks to AS).

Fixed bug (introduced in version 1.6.35) that sometimes repressed helpful diagnostics when a model build takes unusually long due to underspecified variables. Bug noted by DR.

Fixed bug in GGopt optimizer setup that ignored optimization parameters unless the min, max and step values for that parameter had been set. Bug noted by GR.

JSim now correctly imports model files whose names contain characters beyond alphanumerics and underscores. Previously, model compiles would fail for file names like "my-test.mod" or "1%milk.mod". Bug noted by DR.

Derivatives of private variables are now also private. This change was neccessary to make remote and local servers consistent.

Version 1.6.42 - Beta release 6 Oct 2004

JSim remote server is now partially functional and available to the JSim SOAP server implementation team so they can start their effort. A fully functional release will be available soon. See here for details.

The new JSim Source Code Standards document is an attempt to formalize the previously informal coding standards used by JSim developers. All JSim internals developers should take a look.

Plot pages containing multiple plots now print as shown on monitor. Previously, each plot was printed on a separate page. Improved plot page legend spacing. Plot tics now use more compact numeric formatting. All thanks to EL.

Removed annoying duplicate print dialog from optimization graph print.

Expanding size of sensitivity parameter configuration table (requested by MN).

Fixed bug in jsbatch.bat for Windows that caused NoClassDefFoundError (bug report DR).

Implemented project XML tag forward compatibility with future XML tag cleanup (PNamed->optim).

Version 1.6.41 - Beta release 30 Aug 2004, Public release 6 Oct 2004

The ggopt algorithm is now available as an alternative to simplex for model parameter optimization. Note that ggopt is an "uncontrained" optimizer in that it does not use minimum or maximum parameter bounds. Complete credits for the ggopt algorithm may be found on the JSim home page . Thanks to GR for adapting the ggopt code for JSim. In the near future NSR hopes to implement the sensop and nl2sn optimizers under JSim as well.

The CVode solver algorithm is now available as an option for ODE problems. Thanks for GR for adapting the cvode code for JSim.

Model sensitivity analysis is now available. See here for details.

You may now export JSim data in .m file format for export to Matlab. This format properly handles variables of any dimension. See here for more information.

You may now import and export I4 Bullseye image files into JSim. This ability is part of upcoming support for functional imaging in JSim.

Fixed bug in Radau and Dopri5 ODE solver wrappers that caused output derivatives to be one time-step out of sync with their corresponding state variables. Note that this bug did not exist in the "Auto" solver.

Fixed bug that returned NaNs when evaluating derivatives of event driven variables inside ODE blocks. This caused the ODE solvers to abort. Problem report by MN.

Fixed bug that interrupted writing of several text output formats when some dimensionless variable expressions were requested.

Fixed bug that caused numerous warning messages when passing mouse over an empty plot page.

Improved scaling and legend placement in printed plot pages (thanks to EL).

Version 1.6.40 - Beta release 23 Jun 2004

You may now adjust plot line thickness as well as line style. There are three settings: thin, medium and thick. Thin (1 pixel wide) is the default. As with line styles, line thickness controls only work when plot symbols are turned off due to a previously mentioned (and so far unresolved) bug. Change request by JB. Code thanks to EL.

There are now 4 plot symbol sizes instead of just 3, and the default symbol size is smaller. Change request by JB.

Removed extra menubar from plot page text display, consolidating its functions into the overall plot page menubar.

A new "Zoom" menu to plot pages allows you to zoom out and zoom back in to previously selected zoom rectangles. Menu also contains item allowing you to autoscale all axes with a single action.

When JSim encounters a model compilation error, it will now attempt to reposition the cursor to the approximate place in the model source where the error occurred. This functionality existed previously, but was broken when changes were made to the job monitor in version 1.6.34. Note that cursor repositioning is only approximate and that not all model source bugs can be reduced to a single errant line. Bug report by JB.

Added code to remove trailing whitespace in text printing routine (used e.g. when printing model source code). This compensates for an apparent PostScript rendering bug in some HP printers which causes a "stringwidth" error when printing lines containing trailing tabs. At same time, also added a date and time to text printouts. Bug reported by JB.

Version 1.6.39 - Beta release 11 Jun 2004

Made quick-and-dirty fix to job controller relating to bug reported by GR. GR noted that compiler would sometimes about while loading projects with "job cancelled by user" message. Fix uses earlier version of job controller during initial project load. Search for a more reliable permanent solution to this problem continues.

Version 1.6.38 - Beta release 10 Jun 2004

Emergency bug fix release for 1.6.37. Fixes bug noted by GR which hangs JSim when plotting certain data.

Version 1.6.37 - Beta release 10 Jun 2004

Model run-time tab "ParSet" menu updated to include both "Store parameter set" and "Store parameter set as ...". The former item now indicates whether a store is "needed", i.e. that current parameter values have been changed from those stored in the parameter set. Note that "needed" here is subjective, since the current parameters are always retained when a project file is saved, regardless of whether they are part of a formally named parameter set.

Increased contrast for disabled menu items and controls to make text easier to read. For example, a model's current parameter set (displayed in the Run-Time tab's "ParSet" menu) is much easier to read.

When a model tab is selected, the current parameter set tab icon for that model (if any) will turn green matching the color of the model icon. This allows easy visual association between a model and its current parameter set.

Model loops control now offers both "manual" and "auto" modes. In manual mode, the #times control is always active. In auto mode, the #times control is active only when the number of loops can not be automatically calculated from parameter value lists. The mode control can also be set to "off", which turns off looping without clearing the parameter value lists. Auto mode, the only mode available in previous JSim versions, remains the default in part to prevent breaking existing project files. Change request by JB.

Improved parameter and data selection tables in model "Loops" and "Optimizer" tabs. Column heading are now better aligned and tables become scrollable when needed.

Seven new plot line types are available, for a total of ten. This is particularly useful when displaying data from model loops. Thanks to EL for this code. Note that different line types are visible in a graph only when the symbol marker is turned off due to a previously mentioned (and still unresolved) bug.

Five new plot colors (yellow, orange, green, indigo and violet) are available. Users should be careful using yellow and green since they offer extremely poor visibility against the white plot background and violet which is almost indistinguishable from black. Change request by JB.

Plot tic calculation routine has been modified to take into consideration how much screen area is available. Some tics may be omitted if resulting numeric label text would overlap.

Autoscale range for log scale plots now better matches data.

Plot legend help now works for arbitrary expressions (e.g. u+v). Previously, plot legend help worked only for simple model variables (e.g. u).

Double-clicking on .tac files no longer launches JSim under MacIntosh (change requested by JB). Note that default double-click action under MacIntosh is to launch a text editor.

Version 1.6.36 - Beta release 24 May 2004

JSim background color and font size are now changable while JSim is running. Preferences may be stored in a user preferences file for automatic reload during subsequent JSim launches. This should be especially useful to those with less acute vision who find JSim's default font sizes too small. See here for details.

Added code to compensate for bug in MacOS text editor component (JTextArea). Bug caused cursor and insertion point to get out of sync when editing DOS-format text. Fix removes CRs from the text. Bug report by JB.

Project "Save" menu item now shows whether a save is needed or not. Changes based upon request by JB.

Final values for output values now display properly for single runs, looped runs and optimization runs. Previously they only displayed properly for single runs. Bug report by JB (GNATS JSIM/107).

Version 1.6.35 - Beta release 19 May 2004

You may now interact with JSim while a model is running. Actions such as switching panes, editing text, and modifying plot data and appearance are available. Some actions, such as modifying model parameters, remain unavailable during a model run.

F1 help now works for model variables within the plot legend (thanks to EL).

Keyboard accelerators for model parameter pages now use Command-* under MacOS (bug report AS - gnats incident jsim/104).

Fixed cursor reposition error in text editor noted by MN (GNATS jsim/94).

Increased text selection color contrast (requested by JB).

Version 1.6.34 - Public release 19 May 2004

Customized front-ends are now available for all the classic XSim models under JSim (e.g. mmid4, msid4, gentex). See here for information.

Computational bug in classic XSim "body" model fixed. Thanks to GR.

"Back" button added to model run-time page. This is most useful in models with large numbers of customized pages, such as classic XSim models.

You may now import XSim .par files into a JSim model. This ability is useful to those who have a significant number of .par files from past XSim work. In the JSim GUI, select "Import XSim parameter file..." from the "ParSet" menu in a model's run-time tab. Model parameters will be imported from the selected file. XSim plot and feed control parameters are currently ignored because it is unclear how best to handle them. XSim parameter slaving has somewhat different syntax than in JSim, so such assignments may or may not import successfully. Following an import, you will find a synopsis of import problems (if any) in the project's "Message" tab. The new -lxpar switch implements this functionality in jsbatch. With this new functionality, the old x2jsim program in no longer needed and has been removed from the distribution.

Solver settings page layout improved. Controls now appear and disappear depending on whether they actually affect the model calculation, similar to the function-generator pages.

Planner bug fixed so that external procedures may be called at boundary conditions (i.e. within a "when" clause).

Parameters with negative default values now show that value as e.g. -5 rather than 5*(-1).

Version 1.6.33 - Beta release 20 Apr 2004

XSim model functionality under JSim is now available for both Linux and MacIntosh platforms. Windows support for XSim models is still under development. For information on porting XSim models to JSim, see here .

The Fortran package for JSim (fpack) is introduced. This package includes JSim versions of several classic XSim models, specifically: body, btex20, btex40, demo, gentex, gentex2, mhed, mmid4 and msid4. See here for more information. At present, fpack is small and thus included with the standard JSim distribution. If, at some later time, fpack grows sufficiently large, users will be offered two separate JSim distributions, a large one including fpack, and and a smaller one without it.

Fixed planner bug that generated a "not all tools sequenced" error when taking symbolic derivatives of realState or intState variables. Such derivatives are now calculated as uniformly zero. Bug report by MN.

Event statements are now unit corrected properly. Unit correction had been inadvertently left out in the first release. Bug report by MN (Gnats jsim/95).

Modification made to Fortran-to-C numeric method library linking in hopes of better serving non-Redhat Linux distributions (e.g. Suse, Debian, Mandrake ...). NSR does not have test machines for these platforms. If you do, are technically inclined and are interested is corresponding to help make JSim work better on those platforms, please contact us. Linux source developers should note they must now set an additional symbol at build time - JSIMG2CLIB, see here .

Version 1.6.32 - beta release 29 Mar 2004

MML events are introduced, supporting event-driven state changes within JSim models. Events are useful for modeling discrete changes of physical and physiological state such as voltage transitions, heart beats, etc. Events also provide a mechanism for calculation of recursive functions, such as Fibonacci numbers. Event-driven variables can freely intermix with continuous (e.g. ODE-calculated) variables, allowing you to model hybrid discrete/continuous systems. See here for more information.

Model help is now customizable. For a variable v, the properties v.desc and may be defined in MML. v.desc is a concise one-line description of the variable. is free-form help text that may extend to multiple lines. These properties are optional. If defined, they will appear in the popup help for a variable. Note that models defining these properties will not compile properly under JSim versions before 1.6.32. See here for more information.

On-line help for plot pages is now (mostly) available.

XSim model warnings and fatal error messages now work properly.

Version 1.6.31 - beta release 22 Mar 2004

Model help is now available. As with other help, it can be activated or deactivated by pressing the F1 key. Once activated, point the mouse to a model variable label or value to get help for that variable. Input variable help shows the default value and unit (if any). Output variable help show the equation(s) by which the variable is calculated and unit (if any). Pointing to the plot parameter selection box gives help appropriate to the plotted parameter. This should be helpful in debugging models with complex variable dependencies. Model help is not yet customizable, however MML enhancements will soon be available allowing custom additions to model help for a variable.

Fixed planner bug that gave "Not all tools sequenced" error for some valid models. 1D variable calculations are no longer micro-stepped in multi-dimensional ODE or PDE blocks. Bug noted by KV.

Sum and integral operators are now available.

A realDomain t, whose granularity was determined by (as opposed to t.ct) now recalculates t.max at run-time to ensure an evenly spaced grid. Previously the user-specified t.max was retained, and was recalculated at run-time to a value close to the user-specified value.

Fixed rounding error in run-time variable interpolation that would occasionally incorrectly generate NaNs.

The four items above, taken together, now allow users to write model with sequential stirred tanks, multiple pathways or both. These calculations were available in some of NSR's standard XSim models (e.g. MMID4) but had not been available in previous JSim releases. Relevant example models are in preparation for future release.

Setting plot title, footer or axis labels to blanks now disables the relevant "Show" option in the view menu. Reenabling the option redisplays the label with the default text. Previously, once a label was set to blanks, there was no way to restore it short of manually editing the project file.

Better error message when user select plot expression when dataset is not selected.

ODE and PDE solver control modified to allow prompt run cancellation and terminate upon detection of NaNs. In earlier versions there could be a significant time delay between the user pressing the "Cancel" button and the model run actually terminating. Also previously, calculation of NaNs in the Auto and Dopri5 solvers could result in an uncancellable model loop.

Version 1.6.30 - Beta release 16 Mar 2004

Made six separate bug-fixes in JSim planner to correct various sequencing problems. The old sequencer would occasionally cause evaluation of some state variables to be one evaluation out of sync with others. This resulted in some subtle inaccuracies in the numeric output, especially under the Auto, Dopri5 and Radau ODE solvers. Since 1.6.30 is stricter about sequencing, it is possible some models that previously compiled successfully will now fail at compile time with a "Not all tools sequenced" message. If so, please report problems to NSR and we will address them promptly. Bug reports by MN and JB.

Version 1.6.29 - 8 Mar 2004

Contour plot functionality has been expanded to include several colormap options. You may now render data using contour lines, two types of colormap (raster and area-fill), or both. There are 7 selectable color schemes, although they do not all work yet. Those that are not working yet will show a gray-scale map instead. Additional color schemes may be added in the future depending on user demand.

Additional options added to plot page "View" menu (formerly named "Options") for showing or repressing certain graph labels (title, footer, etc.). Control for showing or repressing graph legend is now on this page, as well as options for changing the number of rows or columns in a page.

You may now export plot page graphics as Encapsulated PostScript (EPS). See the plot page "File" menu.

Fixed null pointer bug that caused plot data to disappear when plot title was edited to blanks (bug report by MN).

Fixed plot page scaling bug that occured when data minimum and maximum differed by a factor less than 1 in 10^10 (bug report by GR).

Fixed bug in model run repeatability noted by MN in spbheart model.

Users may now query plot coordinates with either the third-mouse button or SHIFT + the first-mouse button. The later functionality is new and is provided for users with one or two-button mice (e.g. many MacIntosh users).

Choice variables are now supported in MML. These variables allow you to associate text labels with integer values and restrict input to that set of values. See here .

You may now run XSim-style models (i.e. simini, simlop, simend) under JSim. This functionality assists those who wish to formulate their models in a procedural manner. XSim-style models may be written in C or Fortran. The latter is especially notable because of the significant base of existing Fortran models that use the XSim API (many available from NSR). Existing XSim-style models must be recompiled with the appropriate wrappers to run under JSim. Tools for automated conversion of these wrappers from existing XSim .cf files will be available in future releases. It is interesting to note that, due to JSim's more advanced model-GUI communication, XSim-style models actually run faster under JSim than under XSim. Currently, XSim functionality is available only under Linux. Windows and Macintosh functionality will be available in future releases. For further information, see here .

The "What's New" links on the JSim home page and NSR Software download page now points to this page, rather than the page comparing version 1.6 with earlier major releases (1.4 and 1.5).

Version 1.6.28 - beta release 18 Feb 2004

You may now zoom in on a section of a plot by dragging a rectangle with the 1st mouse button.

Plot pages now have optional vertical and horizontal rules for examining data alignment. Activate the rules via the plot page "Options" menu. Reposition the rules by dragging the appropriate slider at the bottom or right side of the plot page.

Contour plots are now available for displaying 2D data. Contours here refer to static topographical maps of model variables or data with 2 domains (e.g. z(x,y)). Other renderings for 2D data such as colormaps, surface renderings, shading and mesh-plots will be available at some future time, and should not be confused with contours. This is our first try at contours, so there will probably be some issues to be ironed out.

Version 1.6.27 - beta release 9 Feb 2004

Improved efficiency of MML compiler relating to ODE/PDE blocking. Blocking is now optimized assuming computational cost runs as the cube of the number of equations. Most models are not affected, but some models, such as those provided by MN and VK, exhibit performance improvements between 100% and 500%. Thanks to DB for the ODE solver computational cost estimate.

User may now query plot coordinates by holding down right mouse button (or equivalent for 1- or 2-button mice).

Improved plot tic-mark assignment somewhat, expecially for data ranges smaller than 1.0.

Fixed bug that caused some popup selection menus (e.g. plot parameter) to remain up after user requested they popdown. Bug report by JB.

Version 1.6.26 - beta release 03 Feb 2004

Fixed 2 bugs in scrollable item selection lists (e.g. variables to plot). First, scroll window sometimes disappeared under project window. Second, scroll window would grow larger each time it was shown if no item was selected. Problem noted by RW.

Time of latest model run now appears on plot page, rather than current time.

Legend box in plot page now easier to select for repositioning.

Corrections to MacOS icon files. Problem noted by AS.

jsreg.bat, a new setup program under Windows, enables double-click open for .proj, .mod, .tac and .jsml extensions. See the Windows installation documentation for how to use jsreg.bat.

Version 1.6.25 - beta release 27 Jan 2004

Flashing problem corrected in plot page update during run. Also fixed that causes NullPointerError message when clicking on empty plot page. Thanks to EL.

Opening an existing project from the File menu no longer creates second project window if current project is "empty" (contains only the initial plot page).

JSim context sensitive help now available using the F1 key. This is described in the project Help menu under "Help key". At present help is only available for numeric solver and function generator parameters. Other help will be added as time goes on.

Under MacOS, double-clicking on .proj, .mod or .tac files within the finder now launches JSim and loads the appropriate file.

Clearer labeling and order of operations when exiting program with multiple project windows open. Problem noted by AS.

Message window time stamp now appears in local time, rather than UTC. Also improved end-of-line handling in message window. Problems noted by AS.

Model compile error messages now retain original line control. Previously these error messages were wrapped into single line. This corrects readability problem when debugging embedded C code noted by AS.

TacFileReader now properly handles "physiol" data sets. Also, reader made more forgiving of certain existing TAC files that did not conform to specification, but nevertheless were passed by the NSR checktac program. However, significant problems remain in this routine that will require a complete rewrite at some future time.

Removed distracting error messages during live plot update if user had selected invalid axis scaling (e.g. ymin=1, ymax=0). Bug noted by EL.

Fixed bug preventing project window resize under MacOS. Bug noted by AS.

Model parameter page scroll bar increment buttons now scroll at a faster (and more useful) rate. Problem reported by JBB.

Icons enhancements in many dialogs, especially file selection dialogs.

Plot page graphs now show model run time stamp rather than current time, assuming model data is being graphed.

Version 1.6.24 - Beta release 20 Jan 2004

Plot page update during model runs, first available under 1.6.23, has shown performance problems in some situations. The problem should be resolvable fairly soon but, until it is, "update during run" must be explicitly enabled by the user. The control for this feature, whose default is "update after run", is located on the top line of the plot page configuration area. Bug report by MN.

Printed plot pages now include the following information, when relevant:

If multiple models or multiple data sets appear on a single plot, the plot legend now contains the model or data set name for each item to allow the user to distinguish between them.

Fixed several minor bugs in project save during program exit. Bug reports by AS.

Fixed bug where "Illegal axis scaling" message could persist in plot title even after axis scaling was corrected. Some existing projects may still have this message stored in plot titles. For them, user must manually edit the plot title to get rid of the message.

Fixed bug in print cancel button noted by MN.

Version 1.6.23 - beta release 12 Jan 2004

Live graph update during plots is now enabled, allowing users to see plots update during a model run. Users should set parameters in the plot page before run because user-directed changes can't yet be made during a run. The live update mechanism is still imperfect in that it "flashes" (the complete data set is refreshed when partial would do). Work continues on both the flashing problem and the "user interaction during run" limitation. If users find flashing too disturbing, live update may be disabled in future releases until the problem is fixed. Contact JSim team if you feel this should happen.

When closing a project window or exiting JSim, if there have been any changes that have not yet been saved to a project file, user will be asked if he wishes to save them before closing.

You may now forward the final run values of ODE state variable to the ICs used for the next run with a single selection from the model run-time ParSet menu. Forwarding applies only public 1D ODE variables whose ICs are input variables (values assigned by user). If any of the final run values are NaNs, none of the IC values are changed.

Time stamp added to each message in Messages tab.

Further refinement to exponent unit correction of some dimensionless variables.

Text fields now update upon mouse exit as well at loss of focus. This addresses several interface inconsistencies, e.g. loop parameter values. Bug reported by JBB.

Improved instructions and error message for plot page "Export data file..." function.

New function generator "ExtendedPulse3" added. Thanks to GR.

Cursor up and down keys may now be used in many places to switch keyboard focus within the interface (focus traversal). Standard focus traversal keys (e.g. Tab, Shift-Tab) may still be used. However, cursor up and down may no longer be used to move most scroll bars.

All dynamic variables now appear on plot variable selection list. Previously only variables whose dimension matched the plot style appeared. Error message for dimensional conflict now directs user to fix one or more variable domains to constant value(s). Domain fixing mechanism now supports variables 3D and higher. Previously, only 1D and 2D were supported.

Variable rd in many function generators renamed RD. XML import routine configured to support existing project files with variable named "rd".

Fixed bug in numeric formatting that sometimes caused small numbers to show 0 and large numbers to show Infinity. Bug report by GR. Cleaned up several numeric format annoyances at same time.

New jsbatch switches -oprec and -ozero allow custom specification of DataWriter numeric precision and zero threshold, addressing cross-platform numeric verification issues noted by Andreas Schwab.

Version 1.6.22 - beta release 19 Dec 2003

Fixed bug in exponent unit correction of some dimensionless variables.

Fixed bug in default unit assignment for some dimensionless variables.

Fixed bug in editor "find again" keyboard shortcut. Ctrl-A was not being recognized for unknown reasons. Changed shortcut to Ctrl-N for now. Will switch it back to Ctrl-A once can figure out what's going on. Bug report by MN.

Version 1.6.21 - public release 17 Dec 2003

Fixed bug causing "New project..." menu action to hang (reported by AS).

New MacOS icons for application and project.

Version 1.6.20 - beta release 16 Dec 2003

Function generator calculation improvments and parameter name changes thanks to Gary Raymond. Be aware that these changes may alter some existing model results. A new document describes all functions and parameters. Creating a function generator now takes you to that page, and sets the domain to the first declared domain in the model. Dynamic input variables now have an accelerator button that allows quicker and more convenient creation of function generators.

Fixed bug in model rename, cut and paste functions (reported by MN).

Fixed bug with editor import text function where text sometimes reverted to pre-imported value after a compile or other actions (reported by MN).

JSim project icons prettied up, thanks to Eric Lawson.

Status message at bottom of project window now cleared automatically when any menubar action initiated. Use may clear message by clicking on it.

Run-time parameter page navigation scheme revised to be simpler and quicker. All run functions (single, loops, optimization, ...) available in new All_Runs menu.

Many new keyboard shortcuts added, old ones prettied up. Due to unresolved Swing toolkit questions, shortcuts currently work only for lefthand project tabs (i.e. all tabs except Messages and Plot Pages).

Improved error message with Optimizer fails.

Syntax for jsim -rgb and -ws switches changed, see User Reference Manual.

Version 1.6.19 - beta release 3 Dec 2003

Macintosh distribution now available. Note that documentation and numeric verification for this release are not yet complete. Thanks to Andreas Schwab for the vast bulk of the work on this release.

Fixed bug that allowed some unbalanced equations to pass unit checking. Problem occured when taking time derivative of variable declared without units. Bug report by GR.

Icons added to project tabs. Lighter default color scheme to increase contrast with black lettering.

Version 1.6.18 - beta release 24 Nov 2003

Sun's Java JRE 1.3.1 replaced by 1.4.2. This should be more stable and fix various interface inconsistencies. Note that font rendering is somewhat different in this release.

SGT (plot graphics) release 1.2 replaced by 1.3. This fixes various minor plot rendering problems.

Fixed planner bug that mistakenly calculated NaN's for some large models (bug noted by GR).

New default settings for the Radau ODE solver improves stability in stiff problems: reltol=1e-4 (was 1e-7) newton=7 (was 0). Courtesy of KV and GR.

Planner now solves some equations algebraically that were formerly solved with numerical zero finders, improving performance. For example, the equations V*C:t=Fin-Fout and C:t=(Fin-Fout)/V are now solved with equal run-time performance.

Improved plot legend for variables with units under loops (requested GR).

Fixed bug with graph axis labels disappearing after model compile and some other circumstances (noted by JBB).

Fixed bug in slaving input parameters of different, but compatible, units.

Improved loops and optimizer run-time feedback to better show which model run is currently being processed.

Fixed bug in equation processing for x=c:t where c is constant (noted by DB).

Version 1.6.17 - public release 15 Oct 2003

The Metabolite Flow and Exchange (MFAX) BCL is introduced. Its functionality supplants and extends the earlier BTex BCL. Models using the BTex BCL should be migrated to MFAX, because support for the BTex BCL will be phased out in the near future. See Introduction to the BTex BCL for migration information.

Plot page configuration area made non-scrollable so that long model names will not create annoying scrollbars (bug reported by GR).

X2JSim , a tool for converting j2xsim parameter files to JSim 1.6 format, is now available. Additional XSim/JSim support will be added to this program over time.

Multiple loops now distiguished on plot page by line type, rather than by color (requested by JBB).

MFAX parser now gives more informative error message for malformed chemical equations (problem noted by KV).

Version 1.6.16 - 09 Sep 2003

Plot page legend includes curve indices.

Model outputs show "final" value after run instead of static [array] label.

ODE and PDE solver settings are now communicated properly to the model, allowing the user a choice of solvers at run-time and to tune the internal solver parameters. Documentation for these parameters is not yet available, but is in progress.

TransportFlux component added to BTex BCL (requested by K. Vinnakota). See updated BTex BCL documentation for details.

Version 1.6.15 - 04 Sep 2003

Editor cut/paste bug fixed (noted by K. Vinnakota).

"Equation cannot be processed" planner message now provides additional debugging info.

C language functions and procedures are now available on all platforms (previously, only supported under Linux). C language API and C compiler setup documentation now available.

jsim switch -maxBuildTime and jsbatch switches -maxBuildTime and -ocrash added.

Model compile now cancellable (previously only killable). Cancel or time-out produces helpful debug messages regarding reason for long compile times.

Version 1.6.14 - 22 Aug 2003

Data file import/export support expanded to include columnar text (for spreadsheets) and JSML data files (for XML applications). Mechanism includes plug-in for user custom data file support. See new document Data Files and Project Data Sets

Model optimizer now functional (simplex algorithm only for now). See new document Using JSim's Parameter Optimizer

Dimensionless scalars raised to dimensionless variable exponents now pass unit correction (bug noted by Kalyan Vinnakota).

Printing of all text windows implemented.

JSIMWORK environment variable works again (broken last release).

Windows native libraries revamped and rebuilt.

Build process significantly modified. Developers should consult JSim Source Distributions .

Version 1.6.13 - 3 Jun 2003

Project tree icons made smaller and tree area made scrollable for better viewing of large projects.

BUG NOTED: Project tree will occasionally show large gaps between items when loading a large project. Bug is inconsistent. If encountered, exit JSim and restart. If still doesn't work second time, please send project file to the JSim development team.

Version 1.6.12 - 2 Jul 2003

Version 1.6.11 - 29 May 2003

Version 1.6.10 - 16 May 2003

Version 1.6.09 - 14 May 2003

Version 1.6.08 - 9 May 2003

Version 1.6.07 - 7 May 2003

Version 1.6.06 - 2 May 2003

Version 1.6.04 - 03 Apr 2003

Version 1.6.02 - 16 Mar 2003

Versions 1.4 and 1.5

For information on JSim's previous major releases 1.4 and 1.5, see here .

[This page was last modified 02Feb11, 3:22 pm.]

Model development and archiving support at provided by the following grants: NIH/NIBIB BE08407 Software Integration, JSim and SBW 6/1/09-5/31/13; NIH/NHLBI T15 HL88516-01 Modeling for Heart, Lung and Blood: From Cell to Organ, 4/1/07-3/31/11; NSF BES-0506477 Adaptive Multi-Scale Model Simulation, 8/15/05-7/31/08; NIH/NHLBI R01 HL073598 Core 3: 3D Imaging and Computer Modeling of the Respiratory Tract, 9/1/04-8/31/09; as well as prior support from NIH/NCRR P41 RR01243 Simulation Resource in Circulatory Mass Transport and Exchange, 12/1/1980-11/30/01 and NIH/NIBIB R01 EB001973 JSim: A Simulation Analysis Platform, 3/1/02-2/28/07.