Summary Document

Transcription

Summary Document
GoldSim Version 10.1 Summary
Summary of Major New Features and Changes
February 2010
GoldSim Version 10.11 Summary
February 2010
Table of Contents
Introduction .................................................................................................................................................. 3
Version 10.11 Summary - February 2010................................................................................................... 3
Introduction to Changes in Version 10.11 ................................................................................................. 3
Using Result Classification in Multi-Variate Scatter Plots ....................................................................... 4
New Vector Sorting Functions................................................................................................................... 8
Other Improvements and Bug Fixes .......................................................................................................... 8
Version 10.10 Summary - January 2010..................................................................................................... 9
Intoduction to Changes in Version 10.10................................................................................................... 9
Array (Vector and Matrix) Handling Enhancements............................................................................... 10
Improved Handling of Dates in Expressions ........................................................................................... 15
Handling Shared Priorities in an Allocator............................................................................................. 15
A New Output for Overflowing Reservoirs .............................................................................................. 17
Modifications to the Time Series Element................................................................................................ 18
Improvements to Discrete Change Delay to Better Support Discrete Event Simulation ......................... 22
Improved Command Line Options to Support Batch Processing ............................................................ 24
Improved Navigation Capabilities in Dashboards .................................................................................. 25
Improved Treatment of Influence Graphical Properties When Copied or Moved................................... 26
A New GoldSim Concept: Resources....................................................................................................... 26
Modifications to the Reliability Module................................................................................................... 28
Contaminant Transport Module: Modeling Solubility-Limited Matrix Dissolution ................................ 34
Modifications to Latin Hypercube Sampling Algorithm .......................................................................... 34
Random Number Seeds for SubModels.................................................................................................... 35
2 of 36
GoldSim Version 10.11 Summary
February 2010
Introduction
GoldSim Version 10.10 was released January 11, 2010. This was a relatively significant
release with several major new features. Version 10.11 is a minor upgrade to Version
10.10. It contains two minor new features and a number of bug fixes.
This document summarizes all of the new features added in Versions 10.10 and 10.11.
All of the features added in Version 10.10 are described in detail in the Help file and user
manuals. However, the features that were added in Version 10.11 (i.e., that were not
present in Version 10.10) are not yet incorporated in the Help file and user manuals. As a
result, this document provides the only documentation for the minor new features that
were added in Version 10.11. The Help files and user manuals will be modified to reflect
these new changes in the next major release.
Of course, if you have questions about any of the new features in GoldSim, please
contact us at [email protected].
Version 10.11 Summary - February 2010
Introduction to Changes in Version 10.11
Version 10.11 is a minor upgrade to Version 10.10. It contains two minor new features
and a number of bug fixes.
Installation Instructions for this Version
To install GoldSim Version 10.11, you must download the installation file:
“GoldSim_10.11_Setup.exe”. Download the file from the website, and run it. You
should have at least 200 MB of disk space available before downloading. If you already
have Version 10.10 installed, it will be replaced by Version 10.11.
After installing this version, when you start the program it will automatically detect and
use your existing license. Note that you must have administrative privileges in order to
install GoldSim successfully.
A Note on Running Multiple GoldSim Versions on the Same Computer
A small number of users may find it necessary to have several versions of GoldSim on
their computer (e.g., to support legacy projects).
GoldSim Version 10.11 can share a license with the following GoldSim versions on the
same computer:
·
10.10, 10.02, 10SP2, 10SP1, 10, and 9.60 SP5
Note, however, that in order for a current version of GoldSim to share a license with
Version 9.60, you should install 9.60 Service Pack 5 (SP5). This Service Pack is intended
solely to support those users who must simultaneously use Version 9.60 and a later
3 of 36
GoldSim Version 10.11 Summary
February 2010
version of GoldSim (e.g., Version 10 or Version 10.11) on the same computer. Due to
differences in the licensing software used for these two versions, in order to run both 9.60
and any later version of GoldSim on the same machine and avoid potential compatibility
issues, you should install this service pack. The installation file for 9.60SP5 is available
within the GoldSim Resource Center.
If you wish to use the latest version of GoldSim while simultaneously using a version
previous to GoldSim 9.60 SP5, you should contact the GoldSim Technology Group at
[email protected].
Model Conversion Issues When Running Version 10.11
There are no conversion issues when reading a model file created in Version 10.10 into
Version 10.11.
However, there are several potential conversion issues that you should be aware of when
reading models created in versions previous to Version 10.10 into Version 10.11. These
are discussed in detail below in “Model Conversion Issues When Running Pre-10.1
Model Files” on page 9.
Using Result Classification in Multi-Variate Scatter Plots
Within GoldSim, you can create 2-D and 3-D scatter plots by selecting Final Value |
Mult-Variate Analysis… when right-clicking on an output. For example, a 2-D scatter
plot looks like this:
4 of 36
GoldSim Version 10.11 Summary
February 2010
In a scatter plot, each point represents a different realization. In Version 10.11, it is now
possible to divide the realizations into different classes, with each class displayed in a
different color (and/or symbol). A class is simply defined by a condition (e.g., A > B).
Result classification is only available for Multi-Variate Result elements (it is not
available for interactive multi-variate results. That is, in order to use result classification,
you must first create a Multi-Variate Result element.
The property dialog for a Multi-Variate Result element looks like this:
As can be seen, starting in Version 10.11, a Classification tab is available. This tab looks
like this:
5 of 36
GoldSim Version 10.11 Summary
February 2010
By default, all results are placed in a single classification group (defined as “all others”).
You can add Classes by pressing the Add button. When you do so, it adds a row above
the selected row. For each Class, you must define a Classification Condition and a
Legend Label.
In this example, three Classes have been defined:
Several points should be noted regarding defining the Classes:
·
You cannot edit the Classification Condition for the final Class. It always
represents “all others”. That is, it represents all realizations that do not fall into
the previous Classes.
·
The order of the Classification Conditions is important. If multiple Classification
Conditions are true for a realization, the realization is assigned to the Class with
the first True Condition in the list. You can use the Move Up and Move Down
buttons to change the order of the Conditions.
·
The Classification Condition can be a complex expression, but it must be a scalar
Condition.
6 of 36
GoldSim Version 10.11 Summary
February 2010
·
You can edit the Classification Conditions in Edit Mode, Result Mode or Run
Mode. However, in Result Mode or Run Mode, you cannot reference an output
for which Final Values have not been saved.
·
The Classification is only applied to available realizations. That is, if you have
screened the realizations, only those that have not been screened out will appear
in the scatter plot.
·
In Result Mode, GoldSim displays the Count (i.e., the number of realizations that
fall into each Class).
For the example shown above, the plot would look like this:
Note that a legend is now available for scatter plots (you may have to turn it on by rightclicking in the chart and selecting View | Show Legend). The labels in the legend are the
Legend Labels defined in the Classification tab.
You can edit the appearance of the points via the Data tab of the Chart Style dialog
(accessed by clicking the third button from the right at the top of the chart):
7 of 36
GoldSim Version 10.11 Summary
February 2010
As can be seen, each Class (listed here by the Legend Label) is presented as a different
Data Set, whose properties (e.g., color, symbol, size) can be adjusted separately.
One other minor point should be noted regarding Result Classification:
·
Classification does not affect versioning. That is, if you add or change
classification, this is not recorded as a change with regard to versioning.
New Vector Sorting Functions
Two new vector functions were added in Version 10.11. These functions can be used to
sort the values in ascending or descending order in a vector:
Sort123(V) sorts the items in the vector V in ascending order. The data type of
the result is the same as that of the input argument vector.
Sort321(V) sorts the items in the vector V in descending order. The data type of
the result is the same as that of the input argument vector.
Other Improvements and Bug Fixes
Version 10.11 contains a number of bug fixes, cosmetic changes and computational
improvements, the most important of which are as follows:
·
Numerous minor improvements and cosmetic changes were made to the
Resources feature that was introduced in Version 10.10.
·
The Spreadsheet element was improved to make initialization more efficient (will
be particularly noticeable with models with hundreds of Spreadsheet elements).
8 of 36
GoldSim Version 10.11 Summary
February 2010
·
Fixed a bug that prevented GoldSim Pro users from accessing Reliability
elements (GoldSim Pro users should be able to insert up to 10 Reliability
elements without having the full Reliability Module activated).
·
A bug related to accessing Lookup tables near their upper or lower bounds that
could cause GoldSim to crash was fixed.
·
The ~Remainder locally available property in Allocator elements was not being
correctly calculated. This has been fixed.
·
A memory leak that could cause GoldSim to crash when working with a complex
file for long time periods was fixed.
Version 10.10 Summary - January 2010
The sections below describe the major changes implemented in GoldSim in Version
10.10 (which was released January 11, 2010). Version 10.11 (described previously in
“Version 10.11 Summary - February 2010” on page 3) is a minor upgrade to Version
10.10.
Intoduction to Changes in Version 10.10
Model Conversion Issues When Running Pre-10.1 Model Files
GoldSim Version 10.10 can read in any file created in Version 9.6 or later (Version 9.6
was released 9 March 2007).
However, you should be aware of the following:
·
One modification was made in Version 10.10 that will, in rare cases, require users
to edit their models after they are read into the new version in order for them to
run. This modification involves the manner in which the row and col variables
are interpreted in array constructors. This modification is discussed in detail
below (Changes to How row and col Variables are Interpreted in Vector
Constructors on page 12 ).
·
An advanced option for Time Series elements is that you can create a custom
DLL (i.e., write your own code) that can read and write Time Series Definitions.
In Version 10.10, the format for Time Series Definitions when accessed using a
custom DLL has changed. If you are using this advanced feature, you will need
to modify your source code to account for these changes. If you use this
advanced feature, please contact us at [email protected] and we will provide
instructions for doing so.
·
Previous versions of GoldSim allowed recording time series to be placed into
inactive Containers to facilitate comparison of multiple scenarios. This is no
longer supported in Version 10.10 (models with recording Time Series in inactive
9 of 36
GoldSim Version 10.11 Summary
February 2010
Containers will not run). Instead, new functionality has been provided to allow
importing of time histories from other models (see Importing Time Histories from
Other Models into Time Series Elements on page 21)
·
A number of changes were implemented in Version 10 (released 19 February
2009), that could have minor impacts on models created in previous versions.
These were described in detail in the Summary Document for Version 10, which
can be found here:
www.goldsim.com/downloads/dowcuments/Version10Summary.pdf.
Array (Vector and Matrix) Handling Enhancements
Using Variable Arguments When Referencing Array Items
Version 10.10 adds the ability to use variables as the arguments when referencing array
items. For example, if Data1 was a vector of “Days”, and X was a scalar value, you could
write the following in an expression:
Data1[X]
If X was 3, it would return the 3rd item in the vector (i.e., Data1[Tuesday]).
Previously, when referencing an array item, the argument to the array could not be a
variable (it had to be the array label itself). In previous versions, indexing using variables
could only be accomplished using the GetItem, GetRow or GetColumn operators: for
example, GetItem(Data1, X). Using variables as array arguments is clearer and more
concise than using the GetItem function.
GoldSim rounds to the nearest integer when evaluating an array argument, so in this
example, as long as the rounded value of X was between 1 and 7 inclusive, GoldSim
would be able to evaluate the expression. If X evaluated to a number outside of that
range, GoldSim would display a fatal error. Of course, X could change with time (or any
other variable in your model).
When using variables to reference array items, the following points should be noted:
·
If the array is based on a named set or an indexed set that starts with 1, the
variable necessarily represents the ordinal item in the set (i.e., the row or column
number). For example, if Data1 was vector of “Days”, and X was 3, then
Data1[X] would return the 3rd item in the vector (i.e., Data1[Tuesday]).
·
If the array is based on an indexed set that does not start with 1, the variable
represents the actual item with that number label in the set (i.e., it does not
represent the ordinal item in the set). For examples, if Data9 was a vector defined
by an indexed set with labels 3, 4, 5 and 6, and X was 3, then Data9[X] would
return the 1st item in the vector (i.e., Data9[3]).
10 of 36
GoldSim Version 10.11 Summary
February 2010
This functionality can also be used with matrices. As an example, if Data2 was a matrix
with the rows defined by the set “Days”, and the columns defined by the set “Fruit” (with
3 entries), you could reference the following in an expression:
Data2[X, Y]
In this case, In this case, X would need to round to an integer between 1 and 7, inclusive,
and Y would need to round to an integer between 1 and 3 inclusive. If X was 3 and Y
was 2, it would return the 3rd item in row 3, column 2 of the matrix (i.e., Data2[Tuesday,
Peaches] assuming Peaches was the second array label for “Fruit”).
Finally, when using this with matrices, you can use * as a wildcard. The example above,
Data2[*, Y]
would return all rows of column Y (a vector of Fruit). Similarly,
Data2[X, *]
would return all columns of row X (a vector of Days).
This ability to use variables when referencing array items is particularly powerful when
using this feature in conjunction with array constructor functions. For example,
Vector(days, if(row<=4, A[row], B[row]))
would create a vector of days in which the first 4 items would be drawn from the vector
A, and the last 3 items would be drawn from the vector B.
Allow Table Functions to Process Array Inputs
User-defined lookup table functions can now accept arrays as input arguments (and
subsequently output arrays as outputs). For example, if ABC was a two-dimensional
lookup table, ABC(1,2) would return a scalar value. However, if X and Y were vectors
(e.g., of “Days”), then ABC(X,Y) would return a vector of days. The items would be
evaluated by the lookup table on a term-by-term basis.
Allow Logical Operators to Process Mixed (Array and Scalar)
Arguments
In previous versions of GoldSim, if a relational operator (e.g., >, <, =, ==, >=) was used
in an expression involving an array, the arguments of the expression had to both be
arrays. That is, the expression A > B, where A was a vector and B was a scalar was not
allowed.
In Version 10.10, relational operators can now be used between arrays and scalars. For
example, if A was a vector based on the set “Days”, and W was a scalar, an Expression D
11 of 36
GoldSim Version 10.11 Summary
February 2010
defined as A > W is permitted, and would produce a vector based on the set “Days”. The
first item of D would be the outcome (true or false) of the expression “first item of A” >
”scalar value W”; the second item of D would be the outcome (true or false) of the
expression “second item of A” >”scalar value W”, and so on.
Changes to How row and col Variables are Interpreted in Vector
Constructors
Starting in Version 10.10, the manner in which the row and col variables in array
constructors are interpreted was changed. As a result, when reading in a model that was
created previous to 10.10, under some circumstances, some expressions in the model will
be marked as invalid and you will need to change them manually in order to run the
model in Version 10.10.
The conversion problem only occurs if the following two conditions are true:
·
·
You are using row and/or col variables within array constructors; AND
The array that you are constructing using row or col is based on an indexed set
that does not start with 1.
If the array being constructed using row or col is based on a named set or an indexed set
that starts at 1, there are no conversion issues.
When there is a conversion issue, GoldSim will provide a warning dialog when you first
read in the file, and will mark all of the affected expressions in a manner that will make
them invalid:
This issue arises due to the change in the way that row and col are interpreted starting in
Version 10.10. In particular, starting in 10.10, the row and col variables in array
constructors are defined as follows:
·
If the array label set representing the row variable is based on a named set or an
indexed set that starts with 1, row necessarily represents the the row number.
Likewise, if the array label set representing the column variable is based on a
12 of 36
GoldSim Version 10.11 Summary
February 2010
named set or an indexed set that starts with 1, col necessarily represents the
column number.
·
If the array label set representing the row variable is an indexed set that does not
start with 1, row represents the actual item label. Likewise, if the array label set
representing the column variable is an indexed set that does not start with 1, col
also represents the actual item label.
Prior to Version 10.10, the second bullet was not true. That is, even for indexed sets that
did not start with 1, row referred to the row number (and col referred to the column
number).
So what does this mean? Basically, if you have an array constructor in which you are
using row or col variables, and the array that you are constructing is based on an indexed
set that does not start with 1, you need to do the following in your expressions:
Replace
row
col
With
row + 1 – First_Item
col + 1 – First_Item
where First_Item is the first array label item in the set.
For example, let’s assume that Set1 is an indexed set with 10 items, labeled as 2000
through 2009, and in your model (built previous to Version 10.10), you had the following
expression:
Vector(Set1, if(row < 5, 1, 0))
In Version 10.10, you would need to rewrite this as:
Vector(Set1, if(row - 1999 < 5, 1, 0))
or
Vector(Set1, if(row < 2004, 1, 0))
or
Vector(Set1, if(row + 1 - 2000 < 5, 1, 0))
or
Vector(Set1, if(row + 1 - First_Year < 5, 1, 0))
where First_Year was a Data element equal to 2000.
13 of 36
GoldSim Version 10.11 Summary
February 2010
Note that in many cases it is likely that in your old models, you actually wanted to
reference the row value rather than the row number. In such a case, you would have had
constructors that directly converted row numbers to row values, similar to this:
Vector(Set1, if(row + First_Year - 1 < 5, 1, 0))
Correcting these in Version 10.10 would then make this expression look like this:
Vector(Set1, if(row < 5, 1, 0)).
Finally, it is worth mentioning that if your old models used GetItem, GetRow or GetCol
functions, while you are converting your models, you may want to replace these with
direct array references using variables. For example, if A was based on a named set or an
indexed set that started with 1, GetItem(A, X) is identical to A[X]. Clearly, A[X] is more
straightforward and easier to read.
Note, however, that in this example, if A was an indexed set that did not start with 1,
GetItem(A, X) would not be identical to A[X]. Because the second argument of GetItem,
GEtRow or GetCol always refers to the row or column number, GetItem(A,X) would
return the Xth row, while A[X] would return the item whose label was X.
As a result, if the following expression existed in your old (pre-10.10) model:
vector(Set1,if(row<=5, getitem(A,row), getitem(B,row)))
where Set1 was an indexed set with 10 items, labeled as 2000 through 2009, then in
Version 10.10, after accounting for the new definition of row, the expression would look
like this:
vector(Set1,if(row + 1 - First_Year <=5, getitem(A,row+1-First_Year),
getitem(B,row+1-First_Year)))
where First_Year was a Data element equal to 2000.
After further editing it to replace GetItem and simply the expression, it would look like
this:
vector(Set1,if(row <=First_Year + 4, A[row], B[row]))
The point here is that when converting getitem(A,row) in an old model to A[row] there is
no need to offset the row variable, since the second argument of GetItem refers to the row
number, while the argument to A[X] refers to the row value, and this is precisely how the
definition of row has changed in Version 10.10.
If you have any questions or problems with converting your models to account for this
change to the row and col variables, please contact us at [email protected].
14 of 36
GoldSim Version 10.11 Summary
February 2010
Improved Handling of Dates in Expressions
In previous Versions of GoldSim, great care needed to be taken when referencing dates in
expressions for models that could be transferred and read by users with different
Regional date settings.
For example, consider the following expression:
On a computer with US based settings, this would be interpreted as 1 October 2010. If
the same file was opened in the UK, however, in previous GoldSim versions it would be
interpreted as 10 January 2010! Obviously, this could lead to errors.
In Version 10.10, dates strings such as these are stored as Julian time (rather than simply
strings). As a result, if you entered a date into GoldSim on a computer with US settings
like this:
and then saved the file and subsequently opened the file on a computer with Australian or
European settings, the same expression would appear like this:
That is, in both cases, GoldSim would correctly interpret the date as 1 October 2010.
Handling Shared Priorities in an Allocator
In Version 10.10, if multiple outputs from an Allocator have the same Priority, you can
now specify the manner in which equal priorities are treated. This is done with the For
equal priorities field. There are two options: 1) “share the input equally”; or 2) “share
proportional to demands”:
If “share the input equally” (the default) is selected, each output with equal priority
receives the same amount up until either its demand is satisfied, or nothing more is
available. The calculation is carried out recursively starting with the smallest demand.
To illustrate this, consider the following example:
15 of 36
GoldSim Version 10.11 Summary
February 2010
In this case, Output1 would have a value of 75m3/day (its entire demand would be met),
Output2, Output3 and Output4 would share the remainder (25m3/day) as follows:
·
·
Output4 would receive its full demand (5m3/day); Output2 and Output3 would
receive the same amount.
Output2 and Output3 would then equally share the remaining 10m3/day (such that
each would receive a total of 10m3/day). So Output3 and Output4 would meet
their demands, and Output2 would not.
If “share proportional to demands” is selected, if there is not enough supply to meet all of
the demands, it is shared proportionally according to the demand.
To illustrate this, consider the same example as above, with proportional sharing:
In this case, Output1 would have a still value of 75m3/day (its entire demand would be
met), Output2, Output3 and Output4 would share the remainder (25m3/day) as follows:
·
·
·
Output2 would receive 20/35 = 57.1% of the remaining 25 m3/day.
Output3 would receive 10/35 = 28.6% of the remaining 25 m3/day.
Output4 would receive 5/35 = 14.3% of the remaining 25 m3/day.
The table below summarizes the results for these two examples (note that the total supply
is 100m3/day and the total demand is 110 m3/day):
16 of 36
GoldSim Version 10.11 Summary
Output
Output1
Output2
Output3
Output4
Priority
1
2
2
2
February 2010
Demand
(m3/day)
75
20
10
5
Result with
equal sharing
(m3/day)
75
10
10
5
Result with
proportional
sharing
(m3/day)
75
14.3
7.1
3.6
A New Output for Overflowing Reservoirs
Version 10.10 adds a new Reservoir output. The Is_Full output is only available if you
specify an Upper Bound for a Reservoir. It is a condition (False if the Reservoir is below
the Upper Bound, and True if it is at the Upper Bound.
This output is useful because it is a special type of output called a state variable (the
primary output of a Reservoir is also a state variable). This has the important implication
that inputs to the Reservoir (e.g., the Addition Rate) can reference this output without
causing a recursive error.
As an example, suppose that you wanted to add water to a Reservoir only if it was not
overflowing; once it started to overflow, you wanted the flow rate to go to zero. To
accomplish this, you could define an Expression as follows:
Unfortunately, because the Overflow_Rate is not a state variable, if you then tried to link
this Expression into the Addition Rate input for the Reservoir, you would get this error:
However, you can solve this problem by using the Is_Full output:
17 of 36
GoldSim Version 10.11 Summary
February 2010
If the inflow Expression was defined as shown above, then you could link to this
Expression in the Addition Rate field without causing a recursive error.
Modifications to the Time Series Element
Several major changes have been made to the Time Series element. Note, however, that
Time Series elements in existing models will be read in and will behave as they did in
previous versions.
The first change you will notice is that we have tried to simplify the user interface, so that
the more advanced options are, by default, hidden under a More button:
The More button provides access to the advanced features:
18 of 36
GoldSim Version 10.11 Summary
February 2010
Three new advanced features of Time Series elements are summarized briefly below.
Shifting Time Series Data
In many cases, you will want to use historic data to populate a Time Series. Having done
so, you then want to apply that historic data to your simulation (which likely looks
forward in time). In order to do this, therefore, you need to time shift the data so that the
historic data is applied in an appropriate and consistent manner.
To support this, the Time Series element now provides an option to time shift a data
series in an appropriate manner. This feature is provided in the “Advanced” section of
the Time Series dialog, accessed via the More button.
If you check Enable Time Shifting of Time Series Data, the Settings… button becomes
available, providing access to this dialog:
19 of 36
GoldSim Version 10.11 Summary
February 2010
GoldSim provides two different ways that Time Series can be shifted.
The first option is to Use random starting point. This option randomly samples a
starting point in the data set for each realization. This is useful, for example, if you have
50 years of rainfall data, you want to carry out a 1 year simulation, and you want
GoldSim to randomly sample a different historic year for each realization. When using
this option, you can specify a periodicity (none, annual, or diurnal), and GoldSim will
respect this when randomly sampling starting points for each realization.
The second option for time shifting Time Series is to Align data years so first year of
data contains simulation start date. This option is only available if the Time Series
data is specified using Calendar Time. This option shifts the time series data forward or
backward (by a multiple of a year) such that the first year of data contains the simulation
start date of the model. For example, if the data set started on 15 January 1989, and the
Simulation Start Date was 19 September 2010, GoldSim would treat the data set as if the
first data point was 15 January 2010. This is useful, for example, if you wish to apply
historic data to a forward-looking simulation, assuming no uncertainty or randomness.
That is, this option assumes that with regard to the Time Series, the future will be exactly
the same as the past (as represented by the historic data).
When you choose to Enable Time Shifting of Time Series Data, GoldSim
automatically wraps around to the start of the data set if the end of the data set is reached
during a simulation. It does this in a manner that is consistent with the specified
periodicity of the data.
Specifying Multiple Time Series in One Element
One of the advanced features of Time Series elements is the ability to specify multiple
sets of time series data within a single Time Series element, and then specify which series
is to be used for any particular simulation. This provides a way, for example, for different
time series data to be used for each separate realization in a Monte Carlo realization.
If you check Enable Multiple Series, there are two changes to the dialogs:
1. The Active Series field becomes available, and defaults to “Realization” (this will
be discussed further below); and
20 of 36
GoldSim Version 10.11 Summary
February 2010
2. The time series editing dialog accessed via the Edit Data button is modified to
support specifying multiple series. Buttons allow you to create, remove, edit and
navigate the various time series data sets.
Once you have specified multiple time series, for any given simulation, you must specify
which series to use via the Active Series field. This field must be a scalar dimensionless
value that corresponds to one of the defined time series. Note that the time series are
numbered sequentially, starting with 1. So, for example, if you had defined 10 series,
then Active Series would need to be a number between 1 and 10, inclusive.
The two most common ways that multiple time series are likely to be used are to 1)
represent alternative input scenarios; and 2) to represent multiple realizations.
For example, if you had six different input scenarios for a model (each with a different
input time series), you could represent this by defining six series in a Time Series
element, and setting the Active Series to “Scenario”, which would be an element in the
model that took on values of 1 through 6 (e.g., a Data element, or perhaps a discrete
Stochastic).
To use multiple time series to represent different realizations, you could define a different
series for each Monte Carlo realization, and then set Active Series to “Realization”. In
fact, this is the default setting when you activate multiple realizations.
Importing Time Histories from Other Models into Time Series
Elements
Time Series elements provide an advanced option in which you can import time history
results from other models as data sets in a Time Series element. The two primary reasons
for doing this are:
1. To compare different runs of the same model (scenarios). For example, if you ran
a model five different times (with slightly different inputs), you could import the
results for those five runs into one model (e.g., the 5th run), and plot and compare
all five time history results.
2. To use the results of one model as the input for a completely different model. For
example, the first model might represent one part of the system whose only
impact on the rest of the system (represented by a second model) was the time
history output of a single element in the first model. If there was no feedback
from second model back to the first, the two models could be run separately in
series. Therefore, importing the time history of the connecting element in the first
model into a Time Series element in the second model provides the linkage
between the two models.
This feature is provided in the “Advanced” section of the Time Series dialog, accessed
via the More button. You can import time histories into a Time Series element by
pressing the Browse… button. When you do so, GoldSim will provide a standard
21 of 36
GoldSim Version 10.11 Summary
February 2010
Windows Open File browser for you to select the GoldSim model file from which you
are importing results.
If you import a time history output from a different model with multiple realizations, all
realizations are brought into the Time Series as different series. By setting the Active
Series to “Realization”, you effectively have access to the full probabilistic results of the
imported output.
Improvements to Discrete Change Delay to Better Support Discrete Event
Simulation
Three changes were made to the Discrete Change Delay element to better support
simulation of discrete processes:
·
The Discrete Change Delay can now process time-variable delays in two different
ways: 1) as a conveyor belt; or 2) by assigning unique delay times to each item.
In previous versions, only the conveyor-belt option was available.
·
A capacity can now be assigned to a Discrete Change Delay such that a queue
forms if the Delay is at the capacity and it receives a new signal.
·
When defining the Delay Time (or other Discrete Change Delay properties), you
can now directly reference the Value of the discrete change signal (i.e., the Delay
Time can be defined as a function of the Value carried by the signal).
The first two features have been available for Event Delays for some time, and have been
extended to Discrete Change Delays in Version 10.10.
These three features are discussed in greater detail below.
Representing Time-Variable Delays in a Discrete Change Delay
If the Use conveyer-belt approach box is checked within the Discrete Change Delay
dialog, GoldSim will treat the delay as if it is a conveyer belt:
22 of 36
GoldSim Version 10.11 Summary
February 2010
In particular, if the Delay Time or Mean Time is specified to become shorter (or longer)
during the simulation (e.g., by defining it as a function of time), it can be imagined that
the speed at which the belt moves has simply been increased (or decreased), and all items
that are in the Delay at the time of the change start to move faster (or slower) by a
common factor (the ratio of the old Delay or Mean Time to the new one).
For example, if the Discrete Change Delay was triggered at 10 days while the Delay
Time was equal to 1000 days, and again at 15 days at which time the Delay Time was
equal to 1 day, both signals would effectively be emitted at 16 days. That is, at the time
that the Delay Time decreased, the first item would not have traversed a significant
distance along the conveyer, and therefore it would be emitted from the conveyer just
slightly in front of the second item.
If the Use conveyer-belt approach box is cleared, each item is assigned an effective
delay time when it enters the Delay. Once an item enters the Delay, its delay time is not
impacted at all if the Delay Time or Mean Time is subsequently specified to become
shorter (or longer) during the simulation. Referring to the example above, if the Use
conveyer-belt approach box was cleared, then the first item would be emitted at 1010
days, while the second item would be emitted at 16 days.
23 of 36
GoldSim Version 10.11 Summary
February 2010
Capacities and Queues for Discrete Change Delays
By checking the Maximum number of signals simultaneously processed checkbox
within the Discrete Change Delay dialog, you can specify a capacity for the Delay in the
input field directly below the checkbox.
For example, if you specify this value as 3, the element can only have three signals in
transit at any given time. Any other signals that it receives are placed in a queue. Signals
in the queue must wait for one of the signals in transit to be emitted before they can begin
to traverse the delay. GoldSim keeps track of the number of signals in transit
(Num_in_Transit) and the number of signals in the queue (Num_in_Queue).
Referencing the Discrete Change Signal Value When Defining Delay
Times
In some cases, the delay time for a Discrete Change Delay may be a function of the Value
that is associated with the Discrete Change signal being processed. For example, perhaps
the Discrete Change Delay represented a manufacturing or treatment process, the Value
of the signal represented the size of the item to be processed, and the processing time was
a function of the size.
This can be simulated by referencing "~DC_Value", which is a locally available property
within the Discrete Change Delay dialog:
In this example, if the Value of the incoming signal is less than 10kg, it takes 30 minutes
to process; otherwise it takes 60 minutes.
Note that the “~DC_Value” locally available property can be referenced in any field in
the Discrete Change Delay element, including those associated with specifying Resource
requirements (described further below).
Improved Command Line Options to Support Batch Processing
In some cases, it may be useful to bypass the Run Controller and run GoldSim directly
from the command line. GoldSim has provided the ability to run from a command line
for some time. However, in Version 10.10, some addition features are provided to better
support batch runs and scenario analysis. In particular, the command line now provides
options to save a file with a different name, and adjust element inputs directly.
An example batch file in Version 10.10 that utilizes these features is shown below:
24 of 36
GoldSim Version 10.11 Summary
February 2010
CD c:\Program Files\GTG\GoldSim 10.1
Start /wait GoldSim.exe -r -sv r1.gsm -d "InputA=10m" -x
Start /wait GoldSim.exe -r -sv r2.gsm -d "InputA=20m" -x
Start /wait GoldSim.exe -r -sv r3.gsm -d "InputA=30m" -x
Start /wait GoldSim.exe -r -sv r4.gsm -d "InputA=40m" -x
c:\runs\input.gsm
input.gsm
input.gsm
input.gsm
The first line simply sets the directory to the location of the GoldSim executable. The
next line opens a GoldSim model called input.gsm. By specifying the path here, this sets
the path for all input and output files in the remainder of the batch file. GoldSim changes
the value of InputA to 10m, runs the model and saves it as r1.gsm. GoldSim then closes.
After closing, the next GoldSim command is implemented (open input.gsm again, change
InputA to 20m, run and save the model to r2.gsm). This continues until all four GoldSim
runs are complete.
Improved Navigation Capabilities in Dashboards
To assist in navigating and editing files with Dashboards, the following feature has been
added in Version 10.10:
If you right-click on an element that is linked to one or more input, output or button
controls, you can immediately jump to those controls:
Similarly, if a control is linked to an element, you can jump to the connected element
from the control’s context menu:
In addition, when you are placing controls inside a Dashboard (in Design View), the
status bar displays the position and size of the selected control:
25 of 36
GoldSim Version 10.11 Summary
February 2010
This can be useful when placing and aligning controls.
Improved Treatment of Influence Graphical Properties When Copied or
Moved
In previous versions of GoldSim, if you modified the graphical properties of the
influences connecting elements (e.g., changed the shape or color) and then copied and
pasted (or moved) the Container in which those influences were located, the graphical
properties were lost.
In Version 10.10, these properties are preserved in the new (pasted) Container.
A New GoldSim Concept: Resources
Version 10.10 adds a powerful new feature to GoldSim called Resources. A Resource is
something that has a limited supply (e.g., spare parts, fuel, skilled personnel, money) and
is required in order for elements of the modelled system to carry out certain actions.
For example, in order for a manufacturing process to proceed, perhaps two different parts
and a skilled operator must be available. This could be modelled by defining an Event
Delay (to represent the process) with three Resource requirements that must be met in
order for the element to process the event.
Alternatively, in order for a project task to continue to operate, perhaps a certain amount
of cash must be available. This could be modelled by defining a Conditional Container
(to represent the task) with a single Resource requirement (a spend rate) that must be met
in order for the task to continue (i.e., for the Container to stay active).
Only certain elements in GoldSim can interact with Resources (two of these are
mentioned in the examples above: an Event Delay and a Conditional Container).
Elements can consume, borrow, and in some cases, generate Resources.
Using Resources involves three different steps:
·
You must define a Resource Type (e.g., Gasoline, Electricians, Pump Motors) and
specify its characteristics (discrete or continuous).
26 of 36
GoldSim Version 10.11 Summary
February 2010
·
You must specify where the Stores for that particular Resource exist in your
model. Stores represent stockpiles or places where the actual Resource (e.g.,
parts, personnel) is stored or located when not being used. That is, Resource
Stores can be thought of as having physical locations in the system you are
modeling.
·
You must specify how particular elements in the model interact with (consume,
borrow from, or add to) the Resource Stores.
Elements can interact with a Resource Store in three different ways:
·
An element can Spend (consume) a Resource from the Store.
·
An element can Borrow a Resource from the Store for a particular amount of time
and then return it.
·
An element can Deposit (generate) a Resource into a Store.
These interactions can be discrete or continuous in nature. As a result, there are actually
five different kinds of possible Resource interactions:
·
·
·
·
·
You can Spend a discrete amount of a Resource;
You can Borrow a discrete amount of a Resource;
You can Deposit a discrete amount of a Resource;
You can Spend a Resource at a specified rate; and
You can Deposit a Resource at a specified rate.
Only certain kinds of elements in GoldSim can interact with Resources, and not all five
types of interactions may be available to a particular element.
Whenever an element does interact with a Resource Store, it does so through a
Resources… button:
Depending on the context, this button is either available on the main dialog for the
element or within a Trigger dialog for the element.
The use of Resources is described in detail in the Help file (in the Help index, select
“Resources, introduction”)
A simple example which illustrates the use of Resources (Resources.gsm) can be found in
the General Examples folder of your GoldSim directory.
27 of 36
GoldSim Version 10.11 Summary
February 2010
Modifications to the Reliability Module
A number of significant modifications have been made to the Reliability Module. These
powerful new features make it easier to carry out reliability and risk analyses on complex
engineered systems.
Importing Failure Modes
GoldSim now provides the option to import failure mode information from a spreadsheet
into Reliability elements. When the feature is enabled, GoldSim is able to import details
of individual failure modes (including descriptions and automatic repair information)
from a user specified spreadsheet.
The feature is enabled via a new tab provided in the Model Options dialog:
Once enabled, you specify the elements for which you wish to import failure modes by
specifying a Part ID (which provides the key into the spreadsheet):
The required spreadsheet format is described in detail in Appendix B of the Reliability
Module User’s Guide, and a template spreadsheet file is provided in the Reliability
Examples folder in your GoldSim directory.
Exporting Summary Statistics for a Reliability Element
GoldSim now allows you to export a report with summary statistics (Operational
Availability, Inherent Availability and Reliability) to Microsoft Excel from Reliability
elements.
28 of 36
GoldSim Version 10.11 Summary
February 2010
You can select which elements are to be exported (i.e., Summary statistics do not need to
be exported for all Reliability elements). To indicate that you wish to export the
Summary statistics for a particular Reliability element, you simply check the Participate
in global export of reliability results option in the “Analysis Options” portion of the
Results tab for the element:
To enable the global export, select Model|Options from the main menu, click on the
Reliability tab of the dialog, and check the Enable global reliability results export
option:
You must then specify an Excel spreadsheet filename and the worksheet where failure
mode data is to be exported.
Creating Custom Outputs Using the Reliability Element Output
Interface
In some cases, to make your model logic more transparent, you may want to define your
own “custom” outputs for a Reliability element. These outputs can be functions of local
properties of the Reliability element itself (e.g., it’s Status), or, if the element is being
29 of 36
GoldSim Version 10.11 Summary
February 2010
modeled as a system, they may be outputs (or functions of outputs) of elements inside the
Reliability element (e.g., a throughput if the element represented some processing step).
To facilitate this, GoldSim allows you to create these custom outputs via an Output
Interface Definition section on the Results tab of Reliability elements:
After adding the custom outputs, the Results tab displays them as follows:
30 of 36
GoldSim Version 10.11 Summary
February 2010
These outputs are then available on the output port for the element along with all of the
other outputs:
Hence, in this example, they could subsequently be referenced elsewhere in the model as
“Processor.Throughput” and “Processor.Operational_State”.
Using Resources with Reliability Elements
Sometimes desired actions can be constrained by Resource availability. For example, if a
system component failed, its repair might not be possible until a mechanic and an
appropriate spare part were available. In this case, the pool of mechanics and the stock of
spare parts would be considered as Resources. Some resources, such as spare parts, are
consumed when they are used. Others, such as mechanics, are only borrowed, and
become available again once they are no longer required.
31 of 36
GoldSim Version 10.11 Summary
February 2010
In Version 10.10, the ability to create and interact with Resources was added (see
discussion above).
Elements can interact with a Resource Store in three different ways:
·
·
·
An element can Spend (consume) a Resource from the Store discretely or at a
specified rate.
An element can Borrow a Resource from the Store discretely for a particular
amount of time and then return it.
An element can Deposit (generate) a Resource into a Store discretely or at a
specified rate.
Only certain kinds of elements in GoldSim can interact with Resources. The table below
summarizes how Reliability elements can use Resources:
Element
Resource
Store
Interaction
Allowed
Usage
Comments
Functions
and
Actions
Turn
Component
On: Interacts
when
component is
turned On via
the On Trigger
Spend
Borrow
Deposit
If Requirement is Spend or
Borrow, and Resource is not
available, the trigger is “held”,
and waits for the Resource to
become available. Borrowed
Resources are returned when the
component is turned Off.
Functions
and
Actions
Replace
Component:
Interacts when
component is
Replaced via
the Replace
Trigger
Spend
If Resource is not available, the
trigger is “held”, and waits for
the Resource to become
available.
Functions
and
Actions
Repair
Failure
Mode:
Interacts when
component is
automatically
repaired via
the Resources
button on
Failure Modes
dialog
Spend
Borrow
If Resource is not available, the
trigger is “held”, and waits for
the Resource to become
available. Borrowed Resources
are returned when the repair
completes.
32 of 36
GoldSim Version 10.11 Summary
February 2010
Element
Resource
Store
Interaction
Allowed
Usage
Comments
Actions
Trigger an
Action:
Interacts when
the Action is
triggered via
the Action
Trigger
Spend
Borrow
Deposit
If Requirement is Spend or
Borrow, and Resource is not
available, the trigger is “held”,
and waits for the Resource to
become available. Borrowed
Resources are returned when the
Action completes.
Functions
and
Actions
Operate the
Component:
Interacts while
component is
operating via
the Resources
button on
main dialog
Spend Rate
Deposit Rate
While component is operating,
spends or borrows at specified
rate. If Spend Rate is specified
and Resource is not available, the
component stops operating.
These features provide powerful capabilities for modeling resource constraints within the
Reliability Module.
Repairing Failure Modes Via Preventive Maintenance Based on
Estimated Time to Failure
In previous versions of GoldSim, you could specify (via the Setting button in the Failure
Modes tab) whether a particular failure mode was repaired when preventive maintenance
took place:
By default, the setting in “Repair mode if this condition is true” was ~FM_Failed, which
is a locally available variable that is true if the failure mode is in a failed state, and false
otherwise. Hence, by default, the failure mode would be repaired only if it was failed.
Setting this field to True would repair the failure mode regardless of its state.
33 of 36
GoldSim Version 10.11 Summary
February 2010
Version 10.10 provides an additional option, by allowing you to reference a new locally
available variable in the Repair mode if this condition is true field: FM_TimeToFail.
This variable represents an estimate of the time to failure. This allows you to specify that
the mode is repaired even if it has not yet failed, based on your prediction that it will
likely fail soon. For example, if you thought it would fail before the next PM (scheduled
for 90 days from now), you could specify that the mode be repaired:
Contaminant Transport Module: Modeling Solubility-Limited Matrix
Dissolution
Version 10.10 includes a change to the Contaminant Transport Module’s Source element
to more accurately simulate the degradation of waste material.
In particular, Version 10.10 provides an option for defining matrix degradation rates that
assumes that the matrix degrades based on solubility-limited dissolution.
To simulate this, GoldSim identifies the largest single species in the inventory, and treats
this as the matrix material. Upon barrier failure, the matrix is then degraded at a rate that
keeps the matrix species at its solubility limit within all Inventory Cells.
This method more accurately represents that actual degradation process for many types of
systems in which the degradation rate is a function of 1) the matrix material’s solubility;
and 2) the rate of transport of dissolved matrix material away from the waste package.
For systems that have low flow rates, this process of solubility and transport-limited
matrix degradation can represent a significant barrier to release of contaminant species.
It would also be difficult, if not impossible, to capture this process accurately using one
of the other two matrix degradation methods.
Modifications to Latin Hypercube Sampling Algorithm
This change was actually made in Version 10.01 (and was described in the Summary
Notes for that version). However, because it was not previously included in the Help file
and documentation, the description of these modifications are reproduced here.
In version previous to Version 10, in order to generate a value for a random variable in
each Latin Hypercube stratum, GoldSim randomly selected a value from each strata. In
Version 10, in order to generate a value for a random variable in each Latin Hypercube
stratum, GoldSim took the midpoint of the stratum. For example, for a 1000 realization
run, if a stratum was defined as beginning at probability level 0.002 and ending at 0.003,
the value selected for that stratum would correspond to probability level 0.0025.
34 of 36
GoldSim Version 10.11 Summary
February 2010
Starting in Version 10.01, GoldSim provides an option for how the value is to be
obtained from each stratum:
The default is “Use mid-points of strata”. However, you can also select “Use random
points in strata”. In the first case, GoldSim simply takes the midpoint of the stratum. In
the second case, a random value is sampled from each stratum.
Even if “Use mid-points of strata” is selected, the mid-stratum sampling approach is only
used for the first 10,000 realizations. For simulations that use more than 10,000
realizations, the first 10,000 are sampled as described above. At realization 10,001,
20,001, etc. GoldSim generates a random entry point into the 10,000 sorted strata, and
reuses the strata sequence for the next 10,000 realizations. For example, at realization
10,001 it might randomly jump to (sorted) stratum 3,125, sample from strata 3,125
through 10,000, and then sample from strata 1 to 3124. At that point a new random jump
would be made. Also, for realizations above 10,000, a random sample rather than the
midpoint is drawn from each stratum.
Random Number Seeds for SubModels
This change was also made in Version 10.01 (and was described in the Summary Notes
for that version). However, because it was not previously included in the Help file and
documentation, the description of these modifications are reproduced here.
35 of 36
GoldSim Version 10.11 Summary
February 2010
In some instances (e.g., explicitly separating uncertainty from variability) you may need
to insert a SubModel into your GoldSim model that itself carries out Monte Carlo
simulation (i.e., nested Monte Carlo simulation).
In Version 10, a Monte Carlo SubModel always behaved randomly, producing a different
result for each realization of the parent model. Starting in Version 10.01, the user can
choose how the Monte Carlo SubModel behaves:
If “Use a different random number seed for each realization of the parent model” (the
default) is selected, the Monte Carlo SubModel will behave randomly, producing a
different result for each realization of the parent model and for each time the SubModel is
calculated. If this box is cleared, the Monte Carlo SubModel will behave identically for
each realization of the parent model, so that, for example, realization 17 of the inner
model is the same for every realization of the parent model.
36 of 36