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