eWater is pleased to announce the latest production release Production Release of Source version 4.9 which is full of . Version 4.9 contains the new and updated features developed over the past 6 months since v4.7, along with stability and performance improvements. Version 4.9 also contains a fix to a problem found in two Source models, where the same model would give different results on different computers. Plugin developers should read the details below.
Highlights of Source Version 4.9 include:
|Table of Contents|
Technical details for the issue of different results on different machines
Source uses the Microsoft .NET framework, the problem was caused by 2 functions in the System.Math library. Both System.Math.Pow() and System.Math.Exp() can give different results for some number combinations on different machines. For individual function calls, different results occurred at 0.09% of the time with our randomly generated test data. We believe the issue is from different CPU’s implementing different optimisations to perform the operations as efficiently as possible. The functions are not implemented directly within the Microsoft .NET framework, instead, they are implemented in the Microsoft C run-time libraries which are used by the .NET framework, as well as by a number of other languages including C++. So the nature of the .NET framework, which is an interpreted language, wasn’t part of the issue and the same results would have been obtained if implemented in C++. We have since tested all available System.Math functions and these are the only two we have found that can produce different results on different machines. The vast majority of models don’t see the issue since the differences are very minor and for an individual operation, the difference is only at the last decimal place. However, for very large models with lots of feedback in the model , when the issue occurs it can snowball into meaningful result differences.
This was a really difficult problem to isolate and fix. We are VERY happy that we worked it out!!
Model changes to carryover rules over time
Carryover configuration in Resource Assessment can now change over time to assist with calibration.
The calibration tool is now faster for all models, in particular, models . Models with a large number of parameters will see the greatest benefit.
There is now a filter for when looking for a data source or its usage:
The Lascam plugin now includes better value ranges to help determine appropriate ranges to use when calibratingusing the calibration tool to calibrate the rainfall-runoff model.
On-Farm storages at a water user node can now have define a Timeseries Flux to assist with calibration. Water added to the On-Farm Storage by the Timeseries Flux functionality only occurs during the Flow Phase. This is in addition to any other Water User Ordering and extractions. The water delivered by the timeseries flux is not actually extracted from the Supply Point.
Chart settings have been redone to improve their chart stability.
Plugin removal tool
Plugins that need persistence can now include a removal script so plugins can remove themselves from a project when they are not needed or have been added accidentally.
- The Geographic zoom tool has been fixed and improved,
The run period was constrained when some observed data had been included. We have removed this restriction to allow the model run period to be longer than observed data in the model.
Changes to "Safe Release" functionality for storages with multiple outlets. See: Storage node - OperatingConstraints,
- Improvements to recorder sets, See: Configuring Scenarios - Recorder Sets
- Scenario Input Sets and Recorder Sets can be searched using Ctrl+F,
- Run information is now saved in the Results Manager,
- We have improved the performance of editing large constituent models,
- Changes to stop Modelled Model Variables breaking when Functions are moved,
- Improvements to handling distribution loss at Supply Points with travel time at Supply Points. See: Supply point node - Distribution Loss
- Improvements to Weirs, including fixing mass balance for constituents with lumped routing.
- Orders are now redistributed at can now be redistributed to different accounts at extraction time for use debit accounts.
You can now use the Arrange Nodes community plugin to rearrange all the schematic nodes of a network. This could can be particularly handy if you have built a model starting with a Geographic Scenario. CommunityPlugins \ SourcePlugin.ArrangeNodes.dll
We are currently on .net 4.6.2, which hasn't changed from Source 4.7. We are planning on moving to C# 7, Visual Studio 2019 and .NET 4.8.0 soon, so you will need to make sure you have updated Visual Studio to continue developing plugins in the beta versions. We also intend to move to .NET 5 in 2020. .NET 5 will enable the Source command line and service interface to run on Linux. Note the section above on the fix for different results from the same model on different machines.
Results and Configuration Changes