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.8August 11, 2021Experimental feature: Model and Experiment Import/ExportModels 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 FlowThis 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 failAfter 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 dataRedesigned 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 modelFor 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. GeneralAll 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 definitionChanges 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 componentWhen 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 definitionThe 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 windowWhen resizing the search window, the last grid column will now resize accordingly.Formula definition; forward compatibility checkThe 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 issuesRemoved 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.7August 21, 2020SimulationFor 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.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. SearchingPressing 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 modelIf 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 windowHightlights in the third column were of invisible or wrong. They have been disabled.Example modelsThe 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.6January 28, 2020Model definitionAdded check on duplicate default conditions for conditional formulas.Experiment definitionSince Smart 1.2.5, descriptions did not show correctly in the Experiment window. This has been corrected now.Default browser for help filesOn 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 legendNames 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.5August 29, 2019New functionality: Searching and filteringIn 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. GeneralCorrected 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 modelsIntegrated 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.ListingsThe 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 definitionWhen 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 definitionIn 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. SimulationsChecks 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 TablesIn 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 issuesPseudoconstants 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.4August 2, 2018Experimental feature: ArraysIt 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. GeneralMade messages (error messages, warnings, etc.) more uniform. For confirmations, the options are now always Yes or No.Model definitionNew 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. ArraysVariables 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.3March 7, 2018Model compilationSmart 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 runsSince 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 issuesA 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.2September 13, 2017Run time modelRepaired 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 compilationReally generates a new DXP-file. This solves a potential "range check error" and other occasional inconsistencies between model and experiment.Experiment definitionFor 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 issuesA 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.1February 28, 2017Mostly errors corrected. Graphs and tablesCorrected the initial scaling of graphs in exceptional cases (for example for only negative values on the X-axis).Model definitionRepaired 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 dataIncreased the maximum column index for Tabulars from 100 to 65536.Model compilationLogfile 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 runsRemoved internal overhead on processing data in large models.GeneralSmart’s title bar shows the version number of Smart as well as the model.Known issuesThe 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.2December 17, 2015Model definition
Tabular data
Run time model
Model compilationSmart 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).
Experiment definition
Output tables
See previous release notes for new features of Smart 1.1 CompatibilityAll 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 requirementsSmart 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 startIn 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 versionMany small errors were corrected. Here we list just the most notable corrections:
LimitationsEarlier 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 issuesIn 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:
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. LicenseUse 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. ContactFor 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. |