for details.
Significantly improved the Makefile, defining an additional compilation target for systems that do not have the GLUT/freeglut library installed.
In this case, compile using make noGraphs. The makefile version Makefile.no_glut is now obsolete and has been removed from the package
|
Additions and modifications as of Feb 15, 2023 (versions 6.10.6 / 7.10.6)
|
Cleaned up code to replace unsafe sprintf with snprintf. Code now compliles without any warnings.
|
Removed a bug in seeding the random number genertor used for naming temporary binary plot files, produced during instability
recovery. This avoids unexpected interactions between threads when running many scripts in parallel within the same folder.
|
Additions and modifications as of Jan 15, 2023 (versions 6.10.5 / 7.10.5)
|
Executables now automatically attempt to load a default script named DefaultScript.txt before asking for the
script name, unless script name is passed as command-line parameter.
|
A mark-down version of README is now added to the distribution
|
Additions and modifications as of Nov 15, 2022 (versions 6.10.4 / 7.10.4)
|
Minor cleanup and bug fixes in the graphics (fplot) library.
|
Additions and modifications as of Oct 14, 2022 (versions 6.10.2 / 7.10.2)
|
Logarithmic plots now work with the plot.method gl mode.
|
Minor bug fixes.
|
Additions and modifications as of Oct 11, 2022 (versions 6.10.1 / 7.10.1)
|
Cross-platform graphics for plots has been implemented
through the use of the freeglut OpenGL / GLUT library.
|
Conditional compilation flags introduced, to allow compilation on any platform with the same source files. All platform-specific
definitions are now contained in the compact PlatformSpecific.h header source file.
|
Precompiled header linker option is now turned off in the MSDN project file, to ensure cross-platform compatibility of source files
(stdafx.h and stdafx.cpp no longer needed, and removed).
|
Some code clean-up, several minor bugs fixed.
|
Additions and modifications as of Jan 15, 2021 (versions 6.9.7 / 7.9.7)
|
Command membrane.definition concentration allows the total membrane-bound buffer concentration to be defined in usual micromolar units, instead of molecules per μm2
|
Membrane bound buffer could be targetted to a surface of a specific enclosure or obstacles by specifying extra arguments in the buffer ID membrane command.
|
Additions and modifications as of Aug 22, 2019 (versions 6.9.6 / 7.9.6)
|
Cleaned up code syntax to eliminate warnings when compiling with stricter compilation flags.
|
Additions and modifications as of May 20, 2019 (versions 6.9.5 / 7.9.5)
|
GNU General Public License version 3.0 information clearly displayed in all source files, allowing to package CalC for
re-distribution with other software bundles.
|
NOTE: missing license files added Aug 18, 2019
|
Additions and modifications as of Aug 9, 2018 (versions 6.9.4 / 7.9.4)
|
Solved segmentation fault problem when narrow source is placed slightly off the boundary in polar coordinate systems
|
Additions and modifications as of June 27, 2018 (versions 6.9.3 / 7.9.3)
|
Removed segmentation fault and suppression of syntax error diagnostic text: memory destructor no longer called in case of syntax error in constructor
|
Relaxes NaN checking in expression evaluation: warning is produced instead of an error, and zero value returned
|
Additions and modifications as of June 7, 2018 (versions 6.9.2 / 7.9.2)
|
Fixed a bug in mute 1D plot, causing corruption of the output data
file during recovery from numerical instability. Thanks to Morten Gram Pedersen for reporting!
|
Additions and modifications as of Apr 29, 2018 (versions 6.9.1 / 7.9.1)
|
Fixed a serious bug present in CalC versions 6.8.0-6.8.9 and 7.8.0-7.8.9,
affecting some scripts defining more than one Ca2+ channel/source. The bug led to
reduced amplitude of 2nd and each consecutive Ca2+ current.
Thanks to Christian Stricker for reporting.
|
Equilibrate command was broken in earlier versions, and now is fixed.
|
Exception checking of floating point division in user-defined expressions
was further relaxed to ensure backward compatibility with earlier scripts.
|
Additions and modifications as of Apr 9, 2018 (versions 6.8.9 / 7.8.8)
|
Fixed a bug affecting simple-buffer code only (6.x.x): adaptive time step was not checked against dtMax, which in some scripts could
result in very large time steps in the absence of calcium influx. Thanks to Christian Stricker for reporting.
|
Floating point exceptions were not properly thrown (reported) in user-defined formulas.
|
Loose floating point exceptions now implemented for user-defined formulas: zero times infinity is zero; zero divided by zero is one.
The reason is convenience, namely removing initialization problems of facilitation variables and other variable ratios.
|
Negative currents are now allowed, in order to implement local absorption by calcium sensors.
|
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 Ca2+ 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 Ca2+ 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 Ca2+ current
source located at the far boundary of a diffusion domain.
|
Fixed a bug causing an extended, square-shaped Ca2+
source to have uneven distrubution over the last two grid points in a given direction.
Only affects scripts with a square-shaped spatially-extended Ca2+
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 Ca2+ 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 Ca2+ 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 Ca2+ 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 Ca2+ 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 Ca2+ current integration when calculating
Ca2+ 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 all cartesian and
curvilinear geometries; the low-level integration routines
have been streamlined.
|
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 Ca2+ 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 Ca2+ 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 [Ca2+]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 Ca2+ 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 Ca2+
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 Ca2+
current) and
Charge (total Ca2+ 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 = expression instead of Ca D value.
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. grid value value value).
|
Ca.bgr = ... (for background) replaces Ca total ...,
since the old keyword Ca total actually defined the
background [Ca2+], not the total (bound + unbound) [Ca2+].
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:
Old | Ca D 0.22 | Ca total 0.1 |
Ca bc all Neumann | Ca source x y z |
Bf total 500 | Bf kplus 0.1 |
Bf kminus 2 | Bf KD 20 |
New | Ca.D=0.22 | Ca.bgr=0.1 |
Ca.bc all Neumann | Ca.source x y z |
Bf.total=500 | Bf.kplus=0.1 |
Bf.kminus=2 | Bf.KD=20 |
Old | Ca import fileName |
bc_type ... |
stretch_factor 1.05 |
Run Adaptive ... | Run ODE T dt |
New | Ca.import fileName |
bc.define ... |
stretch.factor=1.05 |
Run adaptive ... | mode=ODE ; Run T dt |
Old |
varName == expression | input fileName |
plot_method xmgr n m | plot_print file |
geometry conical |
New |
varName := expression | include fileName |
plot.method xmgr n m | plot.print file |
geometry=conical |
|
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.
|
| |