lookright

Release Notes Smart 1.2.8

Home

Release Notes

Download

Registration

What’s new in Smart 1.2.8
What’s new in Smart 1.2.7
What’s new in Smart 1.2.6
What’s new in Smart 1.2.5
What’s new in Smart 1.2.4
What’s new in Smart 1.2.3
What’s new in Smart 1.2.2
What’s new in Smart 1.2.1
What’s new in Smart 1.2
Compatibility
System requirements
Where to start
Errors corrected in this version
Limitations
Known issues
License
Contact

What’s new in Smart 1.2.8

August 11, 2021

Experimental feature: Model and Experiment Import/Export

Models and experiments can now be exported as text files in either JSON or XML format. These files can be processed by other tools or programs, or you can edit them in any text editor. Many programs support importing or editing data in XML format. For manually processing exported data the JSON format is more convenient. Both formats contain exactly the same information, only presented differently.
By manually editing exported text files, it is possible to include parts of one model into another model.
The result of any modifications to exported files can be imported back into Smart. Importing is somewhat flexible in supplying default values for missing fields. But it cannot process errors in the structure of these files: it will report the first violation only.

Exporting a model or experiment is only possible for the currently open model or experiment.
Importing a model is only possible when no model is currently open. The imported model will be treated as a new model by default. If the checkbox "Treat as new model" is unchecked, the filename of the model is derived from the input filename.
Importing an experiment is only possible if a saved and compiled model is open and no experiment is currently open. The imported experiment is treated similarly to an imported model as described above.
Importing into an existing model or experiment is not currently possible. There are too many special cases to consider.

New example model: Water Flow

This example provides an example of using arrays in Smart. The folder of this example contains the unexpanded model (Water Flow) as well as the equivalent expanded version (Water Flow Expanded). Defining experiments and running simulations is only possible for an expanded version of the model. So, the example experiment belongs to model Water Flow Expanded.
This example, like updated other examples, can be obtained by Tools > Get example models in Smart's main menu.

Solved silent fail

After changes to the model, creating or opening an experiment would silently fail in some circumstances. Smart now gives a message that the model has to be saved and compiled first.

Viewer for table data

Redesigned the dialog for viewing and selecting table data (Measured data and Tabular inputs) in order to deal with large input files.
Reduced the number of necessary updates when changing the selection. Also added the option to suppress automatic updating. The new Update button is enabled when views are not consistent with the selection.
The filename is now always shown as a relative filename if possible. The user can still overrule this.

Run-time model

For variable step integration, when a computational error occurs, the integration algorithm tries decreasing the step size. When the step size cannot be decreased further, Smart will now report the computational error instead of "smaller step size required".
For this improvement to work, you have to compile the model again.
The other reason for "smaller step size required" is the only reason now: when the estimated error is larger than the limit specified in the experiment settings, one must either decrease the smallest step size or increase the acceptable error limit.

When a computational error occurs, Smart now gives at least a (non-empty) error message. Error message "Invalid floating point operation" usually results from taking the logarithm of a negative number, also implicitly when raising a number to the negative fractional exponent.
For this improvement to work, you have to compile the model again.

The underlying indexing mechanism for lookup of tabular inputs could be quite slow. This has been improved. Further improvements of the lookup mechanism require major changes in Smart as well, and will be included in a future version of Smart.
For this improvement to work, you have to compile the model again.

General

All open and save dialogs look similar now.
Error messages on reading and writing files are now as specific as possible, even if this means repeating the file name in the error message. Some errors are still generic because the underlying system does not supply more information when the error occurs.

Experiment definition

Changes to start time are now saved correctly.

Added checks for almost all Run options for being strictly positive. Otherwise, the simulation run might crash or hang.
Also, maximum step size must be larger than minimum step size, and end time must be larger than start time. These checks are performed before starting a simulation.

Swapped the position in the screen of fields for minimum and maximum integration step (variable step size).
Made units belonging to invisible input boxes invisible as well.

Defining an indexed model component

When an array index has the same name as some model component, Smart used to report that this name cannot be used as an index: "variable not allowed here". Now, the index name takes precedence over the model component.

Model definition

The number of condition-formula pairs in model components has been increased to 20. A really flexible number of condition-formula pairs has to wait for a major release.

Search window

When resizing the search window, the last grid column will now resize accordingly.

Formula definition; forward compatibility check

The definition of exponentiation in combination with a unary minus is not intuitive, though technically documented correctly. This will change in a future version of Smart.
Currently -x^y means (-x)^y instead of -(x^y) or 0-x^y (which uses the binary minus). For a future version of Smart -x^y and 0-x^y will be equivalent. To avoid ambiguity, one can always provide the parentheses.
In preparation of this change, Smart will not report it as a syntax error. For suppressing this "error", one can temporarily switch off the flag "Check forward compatibility" in preferences. This flag is not saved between sessions.

Technical issues

Removed many causes of potential inconsistent states, which might result in unpredictable "access violations" and similar errors.
Suppressed unwanted "IO Error" messages, especially after another error was already reported.

In some cases, Smart might "forget" its working folder, resulting in error messages when trying to open files. This has been corrected now.

What’s new in Smart 1.2.7

August 21, 2020

Simulation

For variable step integration, Smart did not process the minimum step size correctly. The exact extent of this error is not clear, but the underlying problem has been solved.Experiment To support changes of many parameter values (and initial values of state variables) at once, these values can be read from CSV file. The input file must consist of at least two columns, with names in the first column and values in the second column; any further columns are ignored. Values of all parameters (and state variables) not specified in the file are reset to default. Any names from the input file that do not occur in the model are ignored. Values from the input file that are not proper numbers are still copied to the experiment definition.

Interpolation methods of tabulars could be wrong in specific circumstances. For technical reasons, the interpolation method of tabulars is stored in the experiment as well as in the model. Since version 1.2, the interpolation method in the experiment cannot be changed by the user. However, if the interpolation method was changed in the model and a pre-existing experiment was used, the interpolation method of the experiment was not updated. Now, the interpolation method from the model correctly has precedence over the interpolation method from the experiment.
The interpolation method is not shown anymore in results of search on experiment inputs.

Searching

Pressing enter in the Search windows will now perform the search function.

Window titles updated after Save as...

In previous versions of Smart, update of window titles (model window and experiment window) were updated immediately after saving the model/experiment under a different name. Now, the title is always updated immediately as part of the Save as... operation.

Opening an experiment for a new model

If the model has not yet been compiled and the user opens an experiment (Experiment > New, or Experiment > Open), Smart asks to compile the model first. After confirmation by the user, the compilation process starts properly now.

Check window

Hightlights in the third column were of invisible or wrong. They have been disabled.

Example models

The window for copying example models (introduced in version 1.2.5) might disappear when clicking elsewhere in Smart. This has been solved by disallowing to leave the window until it is properly closed again.

What’s new in Smart 1.2.6

January 28, 2020

Model definition

Added check on duplicate default conditions for conditional formulas.

Experiment definition

Since Smart 1.2.5, descriptions did not show correctly in the Experiment window. This has been corrected now.

Default browser for help files

On Windows 10, Smart now finds the default browser properly (i.e. the app choosen for file type .html). Windows 10 stores this kind information differently than previous Windows versions.

Graph legend

Names in legends of graphs are not cut off anymore. This was especially akward for models using arrays.
Legends are now located inside the graph area instead of next to it. To change the position of the legend, right click on the graph and select Layout graph... (and ignore the error message after selection the legend, which is caused by an error in the underlying software library).

What’s new in Smart 1.2.5

August 29, 2019

New functionality: Searching and filtering

In the Define Output dialog and most tabs of the Experiment window, we added a text field for searching/filtering available variables.

For more advanced searching (also in formulas, units, etc.), we introduced Search windows (Model > Search..., Experiment > Search input..., Experiment > Search output...) From these windows, one can navigate to the corresponding model component or part of experiment definition.

General

Corrected flaws in the logic of opening and closing of models and experiments, especially when other windows are still open.

Revised logic of saving models and experiments. If the file name is not known, Save will always prompt for a file name. Canceling save will now abort any other pending actions (e.g. compile) in all circumstances.

It is no longer possible to start a pop up menu from another than the active window. This could result in unexpected behavior.

Abandoned the concept of “read-only” models and experiments during simulation. The concept was already compromised by navigation from model or experiment listings.

Repaired some minor issues related to Black Box models.

Example models

Integrated the functionality of the separate program Copy Smart Example Models into Smart itself. This functionality is available from the Tools menu. When Smart starts without any recent models – typically at first use of Smart – it will also offer this functionality from its start screen.
Smart will no longer start with example models in its own directory. Model files there are typically read-only, which will cause troubles when operating directly on those files.

Arrays (still experimental)

When expanding a model that uses arrays, now comments from the original model are included in the expanded model.

Listings

The caption of listings were often incorrect. This has been corrected.

Information in the experiment listing (and print) has been expanded with scientific units and descriptions. State variables and parameters are shown regardless of whether an experiment value has been defined; the experiment value is only shown when it is not blank.
Links in the experiment listing bring the selected variable into focus now.

Some minor flaws in model and experiment listings (and print) were corrected.

Model definition

When the name of a model component is changed during Transfer, Smart will now ask if the changed name should be changed in formulas as well, exactly like after editing the component definition.

Experiment definition

In most tabs of the Experiment window, we added a text field for searching/filtering. Buttons On/Off in the Output tab operate on the filtered variables.

In tab Tabulars of the Experiment window, previous versions of Smart did not show the description of the selected row. This information was not written to file during compilation. This version of Smart will write the descriptions of tabulars to file, and then will show the description of the selected tabular variable at the bottom of the screen, exactly like in the other tabs of the Experiment window.
For existing models, the model has to be compiled again before the description will be shown.

When a wrong value is entered in the Run tab, the value is reverted to its previous value – as indicated by the warning message. This prevents duplicate error messages when starting a simulation run.

Simulations

Checks on correct experiment settings were performed after the Start button was pressed. Now, those checks will be performed before opening the Simulation window.

When starting a simulation run, the focus in the experiment window does not change unnecessarily anymore.

Added additional checks on the run-time model (DLL file) at start of simulation.

At the end of a simulation run, the user is asked whether to save experiment definitions and simulation data.
If the user confirms, previous versions of Smart would always prompt for a file name. Now this prompt appears only for new experiments, i.e. if it has no file name associated.
If the user declines, the experiment will only be marked as “changed” if there are changes in the experiment definition.

Closing the simulation window while the simulation is still running, or paused, will first stop the simulation run as by the Stop button. The user can still cancel the action.

Graphs and Tables

In the Define Output dialog, we added a text field for searching/filtering available variables.
Also added counts to the filtered available variables and the selected variables. This helps preventing very large tables and graphs.

Also in the Define Output dialog, we added up and down buttons for moving variables in the list of selected variables.
This works for tables, for new graphs, and for new variables in existing graphs. For existing variables in existing graphs, the old order is maintained. This is due to a flaw in the graph component used.
A work-around for graphs is to first add a table for the graphs, there correct the order, and then add a graph for that table.

Revised logic of adding graphs and tables. A graph or table can be added at any moment when an experiment is open (and it has data). When adding a graph from a table or adding a table from a graph, the same selection is used. In all other cases, the Define Output dialog starts.

Known issues

Pseudoconstants that depend on a tabular are not initialized properly. This will be repaired in a future version of Smart.

The order of existing variables in existing graphs is not changed when they are changed in the Define Output dialog. This has been an (undiscovered) issue in all versions of Smart.

What’s new in Smart 1.2.4

August 2, 2018

Experimental feature: Arrays

It is now possible to define models with many similar variables and parameters. These variables and parameters are defined as arrays. See below for more information.

For existing models and new models without arrays, this extension has no consequences.

General

Made messages (error messages, warnings, etc.) more uniform. For confirmations, the options are now always Yes or No.

Model definition

New uniform layout of component definition dialogs. Some small changes to operation in those dialogs, most notably: kinds of constants and parameters are set by a drop down list rather than radio buttons; when changing arguments of auxiliary functions, the counter is adjusted automatically.

The distinction between <otherwise> and <default> for conditions has been dropped. The default condition, which applies when no other condition is satisfied, is always shown as <default> irrespective of position in the list. If <otherwise> occurs in a model created with a previous version of Smart, it will be shown as <default> from this version on.

Drag-and-drop of components from the list of available components into formulas now works correctly for all kinds of controls. It used to append dragged names to the end of a cell in the formulas grid.

The option to change the (Identity) of a model component would change its references everywhere – if confirmed – but not in formulas of that model component itself. Now, also references in the model component itself will be changed.

Copying model components has changed in some minor details. Names of copies of copies are numbered consecutively instead of appending an additional suffix each time. The copy is placed directly below the original in the list of components.

Under available components, the position of “time”, “starttime”, “endtime”, and “deltatime” has changed, and they are marked with a star. A small flaw in the presentation of functions has been corrected. (Both points already in Smart 1.2.3).

Definition of auxiliary functions by reference to an external file has been removed. It has never been operational.

Arrays

Variables and parameters may be defined as arrays. A model that uses this feature has to be expanded before it can be compiled. Expanding the model means that a copy of the model is generated with all arrays replaced by individual variables. For Smart 1.3, we plan to make expansion an automatic part of the compilation process.

Before arrays can be used, one or more “array families” have to be defined under Model > General. For one-dimensional arrays, each array belongs to a family. The length of all arrays in a family is derived from the size of that family. For more-dimensional arrays, the family can be specified per dimension.
The new component definition dialogs contain a button “Array...” that is only visible when at least one array family has been defined. This button activates a dialog for defining index name, array family, and lower and upper bounds (the latter relative to the family size) for each dimension.
Index names can be used in formulas and conditions. A new check box “Conditional on array index” facilitates creating different formula version for some positions in the array. This is particularly useful for the lowest and highest position.

In this experimental version, models using arrays still have to be expanded by manual intervention. The Check window has a button Expand when the model contains arrays. After expansion, a second check is performed and if that passes as well, the model has to be saved under a new name.

What’s new in Smart 1.2.3

March 7, 2018

Model compilation

Smart is not able to compile models in a network share without drive letter. Trying to do so, now will give a targeted error message.
For use within Wageningen UR, Smart now tries to compile models under "My Documents" by using the equivalent path through drive M.

Experiment runs

Since Smart 1.2.1, wrong output values might show when not all variables are selected for storing (column Graph & Table in tab Output of the experiment window). This error has been corrected now.

Known issues

A number of known issues in Smart 1.2.2 and before (see below) have not been resolved yet.

The feature above for "My Documents" within Wageningen UR does not cover other network places like "Desktop". There is no generic solution for this issue yet.

What’s new in Smart 1.2.2

September 13, 2017

Run time model

Repaired output control "steps by time". The manual says it does not influence the integration algorithm. In practive it did; now it does not do so in any situation.
Corrected other errors in output control (for rare combinations of settings).

Added a facility to continue after "smaller stepsize required".
Also changed the corresponding warning screen to include new options "Retry" (continue once, i.e. until next warning, if any) and "Ignore" (go on without further warnings). For these options to work properly, the model has to be compiled with Smart 1.2.2 or newer.

Model compilation

Really generates a new DXP-file. This solves a potential "range check error" and other occasional inconsistencies between model and experiment.

Experiment definition

For variable step size integration, made RKqs the preferred algorithm.

Added output control "by steps synchronized". Please, re-compile old models before using this option. Although it seems to work reasonably well with old models, behaviour might be unpredictable for models compiled with previous versions of Smart.

Known issues

A number of known issues in Smart 1.2 and 1.2.1 (see below) have not been resolved yet.

What’s new in Smart 1.2.1

February 28, 2017
Mostly errors corrected.

Graphs and tables

Corrected the initial scaling of graphs in exceptional cases (for example for only negative values on the X-axis).

Model definition

Repaired check on time independent formulas, e.g. for pseudoconstants.
This kind of error went undetected since Smart 1.1 but would cause cryptic errors during compilation.

Tabular data

Increased the maximum column index for Tabulars from 100 to 65536.

Model compilation

Logfile of compilation will be retained when there are errors. Solves remaining “empty logfile” problems, and makes it easier to report problems.
Compilation will not even start when an experiment is open; it would never succeed.

Experiment runs

Removed internal overhead on processing data in large models.

General

Smart’s title bar shows the version number of Smart as well as the model.

Known issues

The known issues of Smart 1.2 (see below) have not been resolved yet.

Sometimes, a “Range check error” occurs at the start of a simulation run. This seems to be caused by a corrupted DXP-file. When this happens, first close Smart, then remove the DXP-file, then open the model again in Smart and compile the model. This process generates a new DXP-file.

Under tab Tabulars in the experiment window, units are always blank. To solve this problem, file formats have to be changed. This issue will be addressed in a major release.

What’s new in Smart 1.2

December 17, 2015

Model definition

  • Added new standard functions:
    atan2, sinh, cosh, tanh, asinh, acosh, atanh,
    modulo, trunc, round, ceil, floor, trunc2, round2, ceil2, floor2
  • Removed function DeadSpace
    [DeadSpace(x, low, high) == x - limit(x, low, high)]
  • Introduced names starttime, endtime, and deltatime
  • Corrected error in Special State hysteresis (field Offset did not show in definition dialog)
  • Overview grids use complete window also if window is enlarged

Tabular data

  • Smart 1.1 (and 1.1.1) ignored settings for Tabulars from Experiment definitions;
    it used the default settings from the model; this has been corrected now
  • Non-existing or ill-defined Tabular data now properly reported at start of simulation run
  • Removed Tabular and Special State data from simulation output (values were wrong)
    for inspecting such values, add an additional Auxiliary Variable with a formula that refers to the otherwise hidden variable
  • Focus of Tabulars in Experiment definition corrected
  • Occasional loss of relative path names repaired (could ocurr in other places too)
  • Graphical preview of tabular data as points by default (instead of lines)

Run time model

  • Improved performance of runtime model
  • Removed (undocumented) internal limit on runtime model size
  • Improved error handling of runtime model
  • Corrected many secondary errors related to runtime errors; no more "Smart may be unstable now"

Model compilation

Smart 1.2 initializes the settings of compiler directory and template directory correctly.
Models still have to be compiled explicitly before starting experiments (and models created with earlier versions of Smart have to be compiled before use in Smart 1.2).
  • Completely revised compilation template
  • New button "Restore default template" in Preferences > Compilation
  • No more empty logfile upon compilation error
  • Removed long delay after compiling large models

Experiment definition

  • Overview grids use complete window also if window is enlarged
  • Interpolation method of tabular data removed; can only be changed in model

Output tables

  • Improved presentation of compared experiments and data
  • Much faster processing of compared experiments and data
  • "Busy" cursor during saving table data to file

See previous release notes for new features of Smart 1.1

Compatibility

All file types except DLL (compiled model) are 1-to-1 compatible with Smart 1.02 and later.
Models and experiments created by Smart 1.2 can even be opened with Smart 1.02 and later – provided the filenames conform to the restrictions of the earlier version.
Before running a model, the model has to be compiled for the current version (Model > Compile...); this works from version 1.02 to version 1.2 as well as from version 1.2 to version 1.02.

Smart 1.2 introduces a number of new standard names (mainly functions; see What’s new). If any of these new names is used in an old model, you have to rename the corresponding model components before compiling. New models that use newly introduced names cannot be run with older versions of Smart.

Because the location for storing settings has changed, Smart 1.1 and Smart 1.2 do not automatically recognize settings from earlier versions.
Smart 1.2 imports most settings of Smart 1.1 – if available – upon first use of Smart 1.2. After initial import, settings of Smart 1.1 and Smart 1.2 are maintained separately.

System requirements

Smart 1.2 is a Windows application that runs on 32-bit as well as 64-bit Windows systems.
It has been tested on Windows 7 (32 bits as well as 64 bits), Windows 8, and Windows 10.
There are no versions of this program for non-Windows operating systems (yet).
The installation of Smart 1.2 is self-contained. It does not depend on other software on the system.

Where to start

In the Smart 1.2 program folder (after installation), you will find an auxiliary program “Copy Smart Example Models”. By this program, you can put a copy of the example models that come with Smart into a folder of your choice.
These examples will be shown as “recently used models” when you start Smart 1.2.
Each model comes with one or more experiments including output data.
Models “Harmonic Oscillator” and “Lynx and Hare” are a good starting point for using differential equations in Smart.

Errors corrected in this version

Many small errors were corrected. Here we list just the most notable corrections:
  • Field Offset in Special State hysteresis did not show in definition dialog
  • Smart 1.1 ignored settings for Tabulars from Experiment definitions
  • Non-existing or ill-defined Tabular data were not reported
  • Tabular and Special State data in simulation output were wrong; they are not shown any more
  • Focus of Tabulars in Experiment definition corrected
  • Occasional loss of relative path names repaired (could ocurr in other places too)
  • Improved error handling of runtime model
  • Corrected many secondary errors related to runtime errors; no more "Smart may be unstable now"
  • After compilation error an empty logfile was shown
  • Processing of compared experiments and data in output tables was terribly slow

Limitations

Earlier version of Smart had a customization option. Because some aspects of customization were ill-defined (and it seems the option has hardly been used), this option has been removed from the menu.
[Teachers: if you need this functionality, please contact development.]

Data for tabulars and special states is not generated correctly from the runtime model. In earlier versions of Smart you could select them for showing in experiment output – which resulted in incorrect data.
In version 1.2 it is no longer possible to select them. In both cases, the work-around is to introduce an additional auxiliary variable that takes the value of the tabular or special state.

Known issues

In two places Smart 1.02 used checkboxes in a grid of cells. The technology used for Smart 1.1 and later does not support such checkboxes.
Instead, Smart 1.1 and later has a yes/no field. Double clicking on the cells toggles between yes and no.
This occurs in:
  • the last two columns of tab Output of experiment definitions
  • column Y2-axis of the dialog for defining graph output
In listings, line breaks in descriptions are lost. In printed output, the line breaks are correct, however.

When opening an experiment after changing the model, the warning about compilation still appears too late.

In defining model components, drag-and-drop of components to formulas does not work intuitively when the drop-target is part of a conditional formula.

License

Use of Smart 1.1 is free of charge. However, we appreciate if you register your use of the software.
For formalities of the license, see Help > About... inside the program.

Contact

For questions and suggestions regarding Smart, please contact Mark R. Kramer (mark dot kramer at wur dot nl) of the chair group Information Technology at Wageningen University.