Additions and modifications as of May 19, 2016 (versions 6.8.6 / 7.8.6) | ||||||||||||||||||||||||||||||||||||||||||

Fixed the extra "n" character bug in 1D concentration file plots | ||||||||||||||||||||||||||||||||||||||||||

In `dump` and `binary` plots, the file name no longer pre-appends the field name, allowing to save plots into any folder/directory
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Jan 29, 2016 (versions 6.8.5 / 7.8.5) | ||||||||||||||||||||||||||||||||||||||||||

Significant increase in the maximal allowable script size. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Jan 13, 2016 (versions 6.8.4 / 7.8.4) | ||||||||||||||||||||||||||||||||||||||||||

Adaptive time-step control completely re-written and optimized for improved efficiency and accuracy | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Aug 31, 2015 (versions 6.8.1 / 7.8.1) | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug whereby multiple boundary condition definitions of Dirichlet type (bc.define bcName Value)
caused a segmentation fault unless verbose parameter was set to zero.
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Jul 13, 2015 (versions 6.8.0 / 7.8.0) | ||||||||||||||||||||||||||||||||||||||||||

Completely eliminated charge leaks, especially with curvilinear boundaries. Boundaries are now positioned at mid-point between last/first node and the corresponding ghost node, instead of placing them exactly on the last/first node, so that the trivial volume integration matrix commutes with the finite difference scheme, in any geometry. | ||||||||||||||||||||||||||||||||||||||||||

Volume and obstacle data types have been greatly simplified and generalized to include cylinders, disks and arbitrary analytically defined enclosures. | ||||||||||||||||||||||||||||||||||||||||||

Boundary initialization is now more robust with curved objects, removing all slit-gaps and other sources of charge leak. | ||||||||||||||||||||||||||||||||||||||||||

Pseudo-surface 2D plots are now implemented when piping the output to xmgrace! | ||||||||||||||||||||||||||||||||||||||||||

Adaptive time-step method is greatly improved by a better stability norm measure that detects local high-frequency modes | ||||||||||||||||||||||||||||||||||||||||||

Adaptive time-step method recovers from instabilities in the ODE integration as it did with PDE integration. | ||||||||||||||||||||||||||||||||||||||||||

Fixed the bug of pump boundary conditions on some boundaries in curvilinear coordinates: non-trivial scale factors were not taken into account in the "nabla" operator routines. | ||||||||||||||||||||||||||||||||||||||||||

Resolved the problem of Ca^{2+} currents' spatial overlap with volume boundaries.
A correction factor multiplies the current amplitude to correct for any overlap / current leak.
| ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug when extended Ca^{2+} current sources not centered at the origin
overlapped the origin in radial direction in polar coordinate systems, resulting in very large
currents at the origin after volume element normalization.
| ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in region size determination when both spherical and rectangular enclosures are present | ||||||||||||||||||||||||||||||||||||||||||

File point plots and file 1D plots no longer use inefficient and unsafe temporary file writing during instability recovery back-stepping. | ||||||||||||||||||||||||||||||||||||||||||

Improved runStatusString monitoring routines. | ||||||||||||||||||||||||||||||||||||||||||

Grid stretching and interpolation routines have been improved and re-written for the new ghost point placement | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Mar 17, 2014 (versions 6.7.4 / 7.7.4) | ||||||||||||||||||||||||||||||||||||||||||

Corrected the parsing of the non-ASCII "long minus" sign that appears on some European character set keyboards (character code = -106) | ||||||||||||||||||||||||||||||||||||||||||

The non-cooperative buffer versions of CalC (6.x.x) now terminate if a cooperative buffer is declared
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Mar 10, 2014 (version 7.7.3) | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in math expression optimizer: time-depdendent expressions involving successive division by two constants (without brackets) VAR / B / C were interpreted as VAR / (B / C) instead of VAR / (B * C) , where VAR denotes a time-dependent variable, and A and B are constants.
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Jan 11, 2014 (version 7.7.2) | ||||||||||||||||||||||||||||||||||||||||||

Fixed a round-off error bug causing some scripts to terminate and report an error
in the localization of a Ca^{2+} current
source located at the far boundary of a diffusion domain.
| ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug causing an extended, square-shaped Ca^{2+}
source to have uneven distrubution over the last two grid points in a given direction.
Only affects scripts with a square-shaped spatially-extended Ca^{2+}
current source that overlaps the far boundary of the diffusion domain.
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Jan 7, 2014 (version 7.7.1) | ||||||||||||||||||||||||||||||||||||||||||

Implemented space-dependent Ca^{2+} uptake
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Aug 22, 2013 (version 7.7) | ||||||||||||||||||||||||||||||||||||||||||

Spherical enclosures and obstacles implemented | ||||||||||||||||||||||||||||||||||||||||||

Program doesn't autoterminate when verbosity level is 4 and above (e.g. use verbose = 4): this allows to trouble-shoot scripts and monitor program output when launching the program outside a system shell.
| ||||||||||||||||||||||||||||||||||||||||||

Fixed file initialization in 1D file plots | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of July 25, 2013 (version 7.6.1) | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in the initialization of 1D plots, introduced in version 7.6. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of June 24, 2013 (version 7.6) | ||||||||||||||||||||||||||||||||||||||||||

Boundary conditions are generalized, allowing to define non-linear
membrane Ca^{2+} pumps.
| ||||||||||||||||||||||||||||||||||||||||||

Significant simplification of boundary condition definition syntax: normalization of fluxes by diffusion coefficient no longer needed; proper flux signs are automatically set. | ||||||||||||||||||||||||||||||||||||||||||

Minor bug found and fixed in script processor, which on rare occasions prevented proper processing of negative constants in short in-line parameter lists. | ||||||||||||||||||||||||||||||||||||||||||

Minor bug in Makefile introduced in version 7.4 and preventing proper compilation on some platforms has been fixed. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of April 18, 2013 (version 7.4) | ||||||||||||||||||||||||||||||||||||||||||

Introduced binary plots to save the entire 3D concentration field as a function of time to a file. | ||||||||||||||||||||||||||||||||||||||||||

Corrected naming and removal of temporary plot files produced during instability recovery back-stepping. | ||||||||||||||||||||||||||||||||||||||||||

Removed all legacy graphics code for the obsolete IRIS gl graphics library, and shortened the makefiles | ||||||||||||||||||||||||||||||||||||||||||

Changed the naming of plot step control parameters to `plot.steps.point` ,
`plot.steps.1D` , `plot.steps.binary` and `update.accuracy` ;
documented all four parameters in the manual.
| ||||||||||||||||||||||||||||||||||||||||||

Fixed a segmentation fault memory bug affecting buffer-less simulations in 2D (thanks to Bas Schotten for reporting the bug) | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of December 14, 2012 (version 7.3) | ||||||||||||||||||||||||||||||||||||||||||

Improved error tolerance check in adaptive cooperative buffer iteration. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of September 24, 2012 (version 7.2) | ||||||||||||||||||||||||||||||||||||||||||

The numerical engine parameter Number_Of_Iterations_Per_PDE_Step can now be changed in each iteration of the for loop. | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in processing ODE-mode runs, introduced in version 7.0 | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of September 14, 2012 (version 7.1) | ||||||||||||||||||||||||||||||||||||||||||

Corrected cooperative Ca^{2+} buffer syntax description in the manual.
| ||||||||||||||||||||||||||||||||||||||||||

Fixed exception handling for stretched grid (only a warning is now given when the number of nodes is too high or too low). | ||||||||||||||||||||||||||||||||||||||||||

Space-dependent total concentration definition now allowed for distinct binding states of an immobile cooperative buffer. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of September 3, 2012 (version 7.0) | ||||||||||||||||||||||||||||||||||||||||||

Buffers with 1-to-2 binding stoichiometry are now implemented, allowing to simulate cooperative Ca^{2+} buffers such as calmodulin
| ||||||||||||||||||||||||||||||||||||||||||

Improved error control and instability catching in adaptive method, in particular control of checker-board instability. | ||||||||||||||||||||||||||||||||||||||||||

File name path determination is corrected when program is run outside of command shell on Windows OS. | ||||||||||||||||||||||||||||||||||||||||||

Improved accuracy of time-dependent Ca^{2+} current integration when calculating
Ca^{2+} charge and charge loss.
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of September 22, 2008 (version 6.0.5) | ||||||||||||||||||||||||||||||||||||||||||

Significant improvement of non-uniform grid generation. The uniform interval in the stretch definition is accurately preserved. | ||||||||||||||||||||||||||||||||||||||||||

Time dependent calcium binding and unbinding rates are now allowed. | ||||||||||||||||||||||||||||||||||||||||||

Several minor bug fixes and improvements | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of April 27, 2008 (version 5.9.1) | ||||||||||||||||||||||||||||||||||||||||||

For convenience, Dirichlet boundary conditions has been re-defined, and by default fixes the calcium and buffer concentrations to their background values, instead of zero. | ||||||||||||||||||||||||||||||||||||||||||

A volume-distributed linear calcium uptake process is now implemented. | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in special buffer obstacle implementation causing segmentation fault in scripts using for loops. Thanks to Robert Zucker for reporting the bug. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of March 31, 2008 (version 5.7.9) | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in Dirichlet boundary conditions implementation, introduced in version 5.5.9. Thanks to Thomas Frank for reporting the bug. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of March 20, 2008 (version 5.7.8) | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug causing segmentation fault with large-size scripts that make use of the local concentration variables (thanks to Robert Zucker for reporting the bug). | ||||||||||||||||||||||||||||||||||||||||||

The constructor code for time-dependent objects was significantly cleaned up in order to fix a minor bug in initialization of min/max variables. This bug resulted in the crash of xmgrace graphics application when auxiliary variables depended on min/max objects (thanks to Robert Zucker once again for reporting). | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Nov 22, 2007 (version 5.7.0) | ||||||||||||||||||||||||||||||||||||||||||

Implemented buffer obstacles - diffusion obstacles specific to individual buffers. These special obstacles are complementing the more complex tortuosity definition which retards the diffusion of buffers in a specific spatial region. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of Feb 14, 2007 (version 5.5.95) | ||||||||||||||||||||||||||||||||||||||||||

Improved handling of viewport coordinates in xmgr/xmgrace graphics | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of May 27, 2006 (version 5.5.9) | ||||||||||||||||||||||||||||||||||||||||||

Tortuosity has been implemented for cartesian and
curvilinear geometries; the low-level integration routines
have been streamlined.
all | ||||||||||||||||||||||||||||||||||||||||||

The flux boundary conditions have been redefined to implement in a more physiological fashion the zero flux at the background level of calcium concentration | ||||||||||||||||||||||||||||||||||||||||||

Implemented the continue flow-control statement | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in the parsing of Ca^{2+} influx width
values in 1D and 2D geometries, introduced in version 5.1.0.
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of October 5, 2005 (version 5.5.0) | ||||||||||||||||||||||||||||||||||||||||||

Streamlined the makefiles, which should now be problem-free and work on any UNIX platform including OS X. Since the supplied Ygl library binary is not compatible with the newer 64-bit systems, Linux compilation excludes by default the Ygl capabilities. Use "gmake -f Makegl" to include Ygl graphics on a 32-bit Linux platform. | ||||||||||||||||||||||||||||||||||||||||||

The execution status string now wastes much less CPU time, since it only updates once a second. This eliminates the need for the verbose=0 command to improve efficiency. | ||||||||||||||||||||||||||||||||||||||||||

When using `CalC` as an ODE solver, the mode=ODE
command is now not necessary. ODE system is assumed if the grid and the Ca^{2+} diffusion coefficient
are not defined in the script file.
| ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in mute plot data output appearing in the Windows version of the program. The bug only appears when the numerical engine encounters instability and does back-stepping. The bug is related to the inability of Windows to properly process the "rename" OS command. | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in expression optimizer that affects truncation of mathematical formulas of form
`"variable / const * const"` , `"variable / const / const"` ,
`"variable - const + const"` , and `"variable - const - const"`
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of May 24, 2005 (version 5.4.5) | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug that spoiled the accuracy of the total Charge conservation check after instability recovery during adaptive time-step calculation. | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug causing some scripts to crash when they include both graphics and Export data dumps (incorrect plot count). | ||||||||||||||||||||||||||||||||||||||||||

Minor bug fixed causing some scripts to terminate at very small time steps during adaptive integration. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of February 4, 2005 (version 5.4.0) | ||||||||||||||||||||||||||||||||||||||||||

Implemented several new geometries, such as 2D polar and cylindrical geometries, and 3D cylindrical and spherical geometries (note that periodic boundary conditions are not yet implemented). The geometry implementation code has been considerably streamlined. | ||||||||||||||||||||||||||||||||||||||||||

Keyword point is now obsolete: plot
syntax has been simplified.
| ||||||||||||||||||||||||||||||||||||||||||

Slight change in pump-like Neumann boundary condition definition
(removed the [Ca^{2+}]_{bgr} offset in the denominator pump term - it wasn't
physiological)
| ||||||||||||||||||||||||||||||||||||||||||

Further changes to the Makefile now allow problem-free compilation on cygwin, which is a very nice and completely free Linux emulator for Windows. | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in expression optimizer: some expressions containing zeros and ones were truncated incorrectly. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of October 18, 2004 (version 5.1.0) | ||||||||||||||||||||||||||||||||||||||||||

Implemented stochastic discrete-state continuous-time Markov process variables, which allow to model stochastic channel kinetics (see an example script). | ||||||||||||||||||||||||||||||||||||||||||

Implemented distinct Ca^{2+} currents.
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of June 17, 2004 (version 5.0.3) | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in expression parser: expressions of form `A / B / C`
were occasionally interpreted as `A / (B / C)` instead of a more conventional
`A / (B * C)`
| ||||||||||||||||||||||||||||||||||||||||||

A bug in xmgr point plot routine has been found, which resulted in
`DY <= 0` xmgr error when plotting constant negative functions of time in
xmgr mode .
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of June 11, 2004 (version 5.0.2) | ||||||||||||||||||||||||||||||||||||||||||

The Unix GNU makefile has been re-written to comply with the different variations of Unix OS on different platforms | ||||||||||||||||||||||||||||||||||||||||||

Further tweaks to the adaptive time-step algorithm | ||||||||||||||||||||||||||||||||||||||||||

Fixed a potential segmentaion fault bug in the gl-type point plot. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of June 9, 2004 (version 5.0.1) | ||||||||||||||||||||||||||||||||||||||||||

The adaptive time-stepping algorithm has been significantly streamlined and simplified. The code should now be able to handle any instability without crashing. | ||||||||||||||||||||||||||||||||||||||||||

Bug fixed in 1D solver: buffer field was updated explicitly, resulting in instability
for zero current when using the 1D spherically symmetric
and 1D cartesian geometries.
| ||||||||||||||||||||||||||||||||||||||||||

Bug fixed in equation optimizer: some expressions with nested brackets were incorrectly truncated. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of May 18, 2004 (version 4.9.11) | ||||||||||||||||||||||||||||||||||||||||||

Fixed the bug in the equation sorter: if your code has interdependent time-dependent variables, the previous version of the code may have incorrectly swapped the corresponding expressions (check the program output at initialization) | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of April 2, 2004 (version 4.9.9) | ||||||||||||||||||||||||||||||||||||||||||

The code now compiles on the Sun / Solaris platform. Run gmake, the gnu make
utility, to compile the code on any platform.
| ||||||||||||||||||||||||||||||||||||||||||

New sytax for ODE definitions: a backquote "`"
can now be used to denote differentiation, instead of d/dt. This looks closer
to the xpp format that
most people are used to.
| ||||||||||||||||||||||||||||||||||||||||||

Corrected a bug in parsing tokens starting with "mod", "or", and "and" (as in "modified"), which in the previous version were automatically identified as operators. | ||||||||||||||||||||||||||||||||||||||||||

ODE accuracy check has been slightly corrected in the adaptive Runge-Kutta integration. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of July 27, 2003 (version 4.9.8, 208 KB) | ||||||||||||||||||||||||||||||||||||||||||

Numerical engine bug introduced in version 4.8.5 has been fixed. It affected (albeit not too drastically)
simulations in
cartesian 3D geometry.
Sorry about that...
| ||||||||||||||||||||||||||||||||||||||||||

Implemented saturable pump boundary condition. | ||||||||||||||||||||||||||||||||||||||||||

Implemented localized and membrane-bound fixed buffers. | ||||||||||||||||||||||||||||||||||||||||||

Apart from the gaussian spatial current form-factor, implemented a step-wise (square) current shape | ||||||||||||||||||||||||||||||||||||||||||

New construct $$ returns the number of command-line arguments
(see general syntax section)
| ||||||||||||||||||||||||||||||||||||||||||

Array indexing starts from 1, not from 0 as it used to be. Zero-indexed element returns the array size. | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug introduced in version 4.8.5: explicit time-dependent expression in current declaration lead to an error message | ||||||||||||||||||||||||||||||||||||||||||

Found and eliminated a major memory leak. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of May 29, 2003 (version 4.8.5, 205 KB) | ||||||||||||||||||||||||||||||||||||||||||

Implemented lower-dimensional cartesian 1D and 2D geometries, and the 2D rotationally-symmetric disc geometry. | ||||||||||||||||||||||||||||||||||||||||||

The entire numerical engine has been streamlined and the code-size was reduced. Although the simulations will now run somewhat slower, the streamlined code is now more readable and is easier to modify. | ||||||||||||||||||||||||||||||||||||||||||

Fixed the stability problem in all non-cartesian methods. | ||||||||||||||||||||||||||||||||||||||||||

Fixed the bug in simulations using Dirichlet boundary conditions. | ||||||||||||||||||||||||||||||||||||||||||

Found and fixed a major bug in expression parser/optimizer: multiplication by zero improperly eliminated. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of March 21, 2003 (version 4.6.0, 199 KB) | ||||||||||||||||||||||||||||||||||||||||||

While tracking a variable's maximum or a minimum value, it is now also possible to track the time at which maximum or minimum is achieved. | ||||||||||||||||||||||||||||||||||||||||||

Improved error handling | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of February 14, 2003 (version 4.5.5, 198 KB) | ||||||||||||||||||||||||||||||||||||||||||

Modified the priority of the exponentiation operator "^". It now supercedes the priority of the unary minus, as it should. | ||||||||||||||||||||||||||||||||||||||||||

Fixed a bug in 2D plot redraw | ||||||||||||||||||||||||||||||||||||||||||

Improved instability handling | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of January 6, 2003 (version 4.5.1, 198 KB) | ||||||||||||||||||||||||||||||||||||||||||

Fixed a Windows version bug in Import / Export (thanks to Leslie Farnell) | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of September 19, 2002 (version 4.5.0, 197 KB) | ||||||||||||||||||||||||||||||||||||||||||

Nested for loops implemented (useful for parameter search-type problems). | ||||||||||||||||||||||||||||||||||||||||||

Array construct can be used to access the arguments of a compound definition. | ||||||||||||||||||||||||||||||||||||||||||

Several improvements in user error handling. Fixed a bug in the for loop in
ODE-only mode
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of July 31, 2002 (version 4.4.2, 193 KB) | ||||||||||||||||||||||||||||||||||||||||||

One can track either the minimum or the
maximum of a variable. Keywords
min and max replace the keyword peak
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of July 25, 2002
(version 4.4.0, 165 KB)
| ||||||||||||||||||||||||||||||||||||||||||

Syntax checking (exception handling) has been improved. The program outputs line numbers when a syntax error is encountered. | ||||||||||||||||||||||||||||||||||||||||||

Cylindrical two-dimensional geometry has been implemented. Not as stable as the cartesian 3D geometry though. | ||||||||||||||||||||||||||||||||||||||||||

Change of syntax for mute and logarithmic
plots: use plot 1D.mute instead of plot mute_1D, plot 1D.mute.log instead of
plot log_mute_1D, etc.
| ||||||||||||||||||||||||||||||||||||||||||

Implemented file plots (ASCII) of the concentration profile in a
two-dimensional plane. Resulting files can be plotted using the
gnuplot or MatLab software.
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of March 1, 2002
(version 4.3.1, 160 KB)
| ||||||||||||||||||||||||||||||||||||||||||

A unique tortuosity function can be defined for Ca^{2+}
and each of the buffers.
| ||||||||||||||||||||||||||||||||||||||||||

Fixed the bug in the treatment of source definition with weight parameter
| ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of January 4, 2002
(version 4.2.6, 146 KB)
| ||||||||||||||||||||||||||||||||||||||||||

Constant arrays implemented in numerical expression. | ||||||||||||||||||||||||||||||||||||||||||

Several bugs (introduced in version 4.1.0) in the numerical expressions parser have been fixed | ||||||||||||||||||||||||||||||||||||||||||

Built-in constant Run.scheme (used to specify the finite difference
scheme) has been renamed into PDE.scheme.
| ||||||||||||||||||||||||||||||||||||||||||

Spaces are now allowed in concentration constructs (in earlier versions, any spaces between coordinate values and commas and/or brackets would have resulted in a syntax error). | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of November 29, 2001 (version 4.2.0, 263 KB)
| ||||||||||||||||||||||||||||||||||||||||||

Syntax has been changed for Export and plot dump commands | ||||||||||||||||||||||||||||||||||||||||||

In numerical expressions, C-like execution priority order for operators has been implemented | ||||||||||||||||||||||||||||||||||||||||||

Different current strengths may be now assigned to different channels,
through the weight parameter in source definition.
| ||||||||||||||||||||||||||||||||||||||||||

Numerical difference scheme can be set by assigning value to the
Run.scheme constant.
| ||||||||||||||||||||||||||||||||||||||||||

New built-in variable Charge.loss can serve as a measure of accuracy of the simulation. | ||||||||||||||||||||||||||||||||||||||||||

ODE integration accuracy can now be
controlled through the new built-in constant ODE.accuracy
| ||||||||||||||||||||||||||||||||||||||||||

Few minor bugs fixed; better error catching; expression optimizer implemented | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of September 4, 2001 (version 4.1.0, 255 KB)
| ||||||||||||||||||||||||||||||||||||||||||

Non-uniform diffusion coefficient has been implemented, through the tortuosity command. | ||||||||||||||||||||||||||||||||||||||||||

New predefined variables: ICa (total Ca^{2+}
current) and
Charge (total Ca^{2+} charge entering the volume).
| ||||||||||||||||||||||||||||||||||||||||||

At the end of each run, the program outputs the difference between the value of the Charge variable and the actual total calcium in the simulation volume; this difference can serve as a useful measure of the simulation accuracy, in the absence of pump boundary conditions. | ||||||||||||||||||||||||||||||||||||||||||

Few minor bugs fixed (recovery from instability; data output in for cycle; string interpreter). | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of July 5, 2001
(version 4.0.3, 233 KB)Note major syntax changes: | ||||||||||||||||||||||||||||||||||||||||||

The ":=" operator now replaces "==" in the definition of a
time-dependent variable: varName := expression.
The "==" symbol is now reserved for the
boolean equal operator.
| ||||||||||||||||||||||||||||||||||||||||||

Period ('.') replaces a space or an underscore in all two-part keywords,
e.g. stretch.factor
instead of stretch_factor; Buff.kplus
instead of Buff kplus.
This makes the keyword name scheme more systematic, and also mimics object-oriented syntax (the part before the
period specifies an object; the second part specifies the object's property).
| ||||||||||||||||||||||||||||||||||||||||||

Simple single-value definitions take the form of parameter definitions,
e.g. Ca.D = instead of expressionCa D .
Just like all user-defined parameters,
these parameters can now be used in other definitions
throughout the parameter file. Definitions that require
several arguments ("function calls") are left unchanged (e.g. valuegrid ).
value value value | ||||||||||||||||||||||||||||||||||||||||||

Ca.bgr = ... (for background) replaces Ca total ...,
since the old keyword Ca total actually defined the
background [Ca^{2+}], not the total (bound + unbound) [Ca^{2+}].
For the buffer, one can specify both the bgr and the total
values, in which case the initial buffer concentration will be set to the bgr value, instead of being
calculated from the condition of equilibrium
with the background calcium level (defined by Ca.bgr).
| ||||||||||||||||||||||||||||||||||||||||||

To run simulations in ODE-only mode, omit ODE tag from
the Run argument list, and include an additional command mode=ODE
| ||||||||||||||||||||||||||||||||||||||||||

Few keyword changes: include instead of input,
adaptive instead of Adaptive,
bc.define instead of bc_type.
Old keywords will still work, for now.
| ||||||||||||||||||||||||||||||||||||||||||

Syntax changes are summarized in the table below:
| ||||||||||||||||||||||||||||||||||||||||||

Implemented conditional processing of parameter file, via if / then / else/ endif statement (see also the exit statement). | ||||||||||||||||||||||||||||||||||||||||||

Implemented boolean operations
"==", "<=", "<", ">", ">=", "and", "or", "not( )"
| ||||||||||||||||||||||||||||||||||||||||||

Numerical expressions can now include power operator "^",
the modulus operator "mod", and the truncation
function "int( )". Note that the operator priorities
are still not well implemented, so use brackets when in doubt.
| ||||||||||||||||||||||||||||||||||||||||||

String expressions can now be printed to a file or terminal upon completion of the simulation, via print / append commands. | ||||||||||||||||||||||||||||||||||||||||||

Default plot method is now mute,
not Ygl. I am discontinuing further development of Ygl plots,
since this graphics library doesn't work under the newest window managers.
| ||||||||||||||||||||||||||||||||||||||||||

The track command now accepts as its argument a list of several
variables to be tracked, instead of a numerical expression. When running in
xmgr mode, variables appearing after a single
track statement will be plotted on the same xmgr graph panel.
| ||||||||||||||||||||||||||||||||||||||||||

String expressions are now fully recursive. | ||||||||||||||||||||||||||||||||||||||||||

Introduced parser debugging statements debug and echo . | ||||||||||||||||||||||||||||||||||||||||||

Improved diagnostic messages and checks for user errors in parameter file. | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of June 11, 2001 (version 3.01, 116 KB)
| ||||||||||||||||||||||||||||||||||||||||||

Xmgr plots recover from the back-trace steps taken by the numerical engine when instability is encountered | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of June 8, 2001 (version 2.99, 115 KB) | ||||||||||||||||||||||||||||||||||||||||||

Implemented exporting and importing of entire simulation state space (concentration fields and values of ODE variables), using commands Import and Export | ||||||||||||||||||||||||||||||||||||||||||

Additions and modifications as of April 20, 2001 (version 2.97) | ||||||||||||||||||||||||||||||||||||||||||

Parameter file can import other parameter files using command input | ||||||||||||||||||||||||||||||||||||||||||

A fully implicit ADI scheme implemented for conical geometry | ||||||||||||||||||||||||||||||||||||||||||

The maximal number of steps in ODE equilibration is now user-defined through the 1st argument of command equilibrate | ||||||||||||||||||||||||||||||||||||||||||

Syntax change: ODEs defined using "df/dt = ..." instead of "f -> ...". Old syntax will still work. | ||||||||||||||||||||||||||||||||||||||||||

Syntax change: String constants can be enclosed in any of the three quote types, i.e. "string", 'string' or `string`. Opening and closing brackets quotes should be of same type. |

Victor Matveev Last modified: Jul 4, 2015