Setting a simulation requires populating two different sets of inputs:
These two sets of input data are contained in two separate files. These files, their parameters, data layout, and sample input data are presented in the remainder of this Section. In the course of the discussion it should be useful to the keep the directory structure of the code in mind:
.
├── LICENSE <-- License file: Apache 2
├── README.md <-- Summary documentation
│
├── docs <-- Sphinx documentation files
│ └── source
│ ├── _static
│ ├── _templates
│ └── extensions
│
├── models <-- Facility system models reside here
│ └── <facility_type> <-- Dir for models of specified type
│
├── output <-- Simulation results are stored here
│ └── scenario_X <-- Simulation project name
│ └── raw_output <-- Raw data/binary outputs for provenance &
│ post-processing
├── sifra <-- The MODULES/SCRIPTS
├── simulation_setup <-- Scenario config files
└── tests <-- Test scripts
The simulation ‘scenario’ definition file is located in the following directory (relative to the root dir of source code):
./simulation_setup/
The following table lists the parameters in the config file, their description, and representative values.
| Description: | Engineering Demand Parameter |
|---|---|
| Data Type: | String |
| Example: | ‘PGA’ |
| Description: | Demand Parameter Unit |
|---|---|
| Data Type: | String |
| Example: | ‘g’ |
| Description: | Minimum value for PGA |
|---|---|
| Data Type: | Float |
| Example: | 0.0 |
| Description: | Maximum value for PGA |
|---|---|
| Data Type: | Float |
| Example: | 1.5 |
| Description: | Step size for incrementing PGA |
|---|---|
| Data Type: | Float |
| Example: | 0.01 |
| Description: | Iterations for Monte Carlo process |
|---|---|
| Data Type: | Integer |
| Example: | 500 |
| Description: | The value(s) at which to assess facility response |
|---|---|
| Data Type: | List of floats |
| Example: | [0.50, 0.55] |
| Description: | Unit of time for restoration time calculations |
|---|---|
| Data Type: | String |
| Example: | ‘week’ |
| Description: | Number of steps to assess functionality |
|---|---|
| Data Type: | Integer |
| Example: | 21 |
| Description: | Time increment for restoration period |
|---|---|
| Data Type: | Integer |
| Example: | 1 |
| Description: | Maximum value for restoration period assessment |
|---|---|
| Data Type: | Integer |
| Example: | 300 |
| Description: | The number of simultaneous components to work on |
|---|---|
| Data Type: | List of integers |
| Example: | [5, 10, 20] |
| Description: | The allowed facility system types |
|---|---|
| Data Type: | List of strings |
| Example: | [‘PowerStation’, ‘Substation’] |
| Description: | The facility system type to be modelled |
|---|---|
| Data Type: | String |
| Example: | ‘PowerStation’ |
| Description: | Sub-category of system |
|---|---|
| Data Type: | String |
| Example: | ‘Coal Fired’ |
| Description: | Number of input commodity types |
|---|---|
| Data Type: | Integer |
| Example: | 2 |
| Description: | File name for system config and fragility info |
|---|---|
| Data Type: | String |
| Example: | ‘sys_config_ps.xlsx’ |
| Description: | File path relative to code root |
|---|---|
| Data Type: | String |
| Example: | ‘data/ps_coal/input’ |
| Description: | File path relative to code root |
|---|---|
| Data Type: | String |
| Example: | ‘data/ps_coal/output’ |
| Description: | Flag for fitting Prob of Exceedance data |
|---|---|
| Data Type: | Boolean |
| Example: | True |
| Description: | Fit model to simulated restoration data |
|---|---|
| Data Type: | Boolean |
| Example: | True |
| Description: | Switch to indicate whether to save simulated values in binary numpy format |
|---|---|
| Data Type: | Boolean |
| Example: | True |
| Description: | Switch to indicate whether to use multi-core processing. 0 \(\rightarrow\) False, 1 \(\rightarrow\) True |
|---|---|
| Data Type: | Integer |
| Example: | 1 |
| Description: | Switch to indicate whether to run a full simulation, or run test code. 0 \(\rightarrow\) run tests, 1 \(\rightarrow\) normal run. |
|---|---|
| Data Type: | Integer |
| Example: | 1 |
The system definition files for a facility of type <facility_type_A>
is located in the following directory (relative to the root dir of
source code):
./models/<facility_type_A>/
The system model is defined using an MS Excel spreadsheet file. It contains five worksheets. The names of the worksheets are fixed. The function and format of these worksheets are described in the following subsections:
The component_list has the following parameters:
| Description: | Unique id for component in system. This is an instance of component_type |
|---|---|
| Data Type: | String. It is recommended to use alphanumeric characters, starting with a letter, and logically distinct parts of the name separated by underscores |
| Example: | ‘stack_1’ |
| Description: | The typology of a system component. Represents a broad category of equipment. |
|---|---|
| Data Type: | String. It is recommended to use alphanumeric characters, starting with a letter, and logically distinct parts of the name separated by spaces. |
| Example: | ‘Stack’ |
| Description: | The general category of equipment. A number of component types can be grouped under this, e.g. ‘Power Transformer 100MVA 230/69’ and ‘Power Transformer 50MVA 230/69’ are both under the same component_class of ‘Power Transformer’ |
|---|---|
| Data Type: | String. It is recommended to use alphanumeric characters, starting with a letter, and logically distinct parts of the name separated by spaces. |
| Example: | ‘Emission Management’ – stacks and ash disposal systems belong to different typologies, but both contribute to the function of emission management. |
| Description: | Value of the component instance a fraction of the total system cost, with the total cost being 1.0 |
|---|---|
| Data Type: | Float. \({\{x \in \mathbb{R} \mid 0 \le x \le 1\}}\) |
| Example: | 0.03 |
| Description: | This indicates the role of the node (component) within network representing the system. For details, see Facility System Model. |
|---|---|
| Data Type: | String. Must be one of four values: supply, transshipment, dependency, sink |
| Example: | ‘supply’ |
| Description: | This is an optional parameter to assist is drawing the system diagram. It indicates how the different component instances should be grouped together. |
|---|---|
| Data Type: | String |
| Example: | ‘Boiler System’ |
| Description: | Operational capacity of the component. One (1.0) indicates full functionality, and zero (0.0) indicates complete loss of functionality. Typically at the start of the simulation all components would have a value of 1.0. |
|---|---|
| Data Type: | Float. \({\{x \in \mathbb{R} \mid 0 \leq x \leq 1\}}\) |
| Example: | 1.0 (default value) |
| Description: | The node (component) to which the tail of a directional edge is connected. For bidirectional connections, you will need to define two edges, e.g. A \(\rightarrow\) B, and B \(\rightarrow\) A. For undirected graphs the origin/destination designation is immaterial. |
|---|---|
| Data Type: | String. Must be one of the entries in the component_id columns in the component_list table. |
| Example: | ‘stack_1’ |
| Description: | The node (component) on which the head of a directional edge terminates. For undirected graphs the origin/destination designation is immaterial. |
|---|---|
| Data Type: | String. Must be one of the entries in the component_id columns in the component_list table. |
| Example: | ‘turbine_condenser_1’ |
| Description: | Capacity of the edge. It can be more than the required flow. |
|---|---|
| Data Type: | Float. \({\{x \in \mathbb{R}\ \mid \ 0 \leq x \leq 1\}}\) |
| Example: | 1.0 (default value) |
| Description: | This parameter can be used to prioritise an edge or a series of edges (a path) over another edge or set of edges. |
|---|---|
| Data Type: | Integer |
| Example: | 1 (default value) |
| Description: | The component_id of the input node. |
|---|---|
| Data Type: | String. Must be one of the entries in the component_id columns in the component_list table, and its node_type must be supply. |
| Example: | ‘coal_supply’ |
| Description: | The operational capacity of the node. It can be a real value value if known, or default to 100%. |
|---|---|
| Data Type: | Float. \({\{x \in \mathbb{R} \mid 0.0 \lt x \leq 100.0\}}\) |
| Example: | 100.0 (default value) |
| Description: | What decimal fractional value of the input commodity enters the system through this input node. |
|---|---|
| Data Type: | Float. \({\{x \in \mathbb{R} \mid 0.0 \lt x \leq 1.0\}}\) |
| Example: | 1.0 |
| Description: | The type of commodity entering into the system through the specified input node. |
|---|---|
| Data Type: | String. |
| Example: | For a coal-fired power station there might be two commodities, namely coal and water. So, there will need to be at least two input nodes, one with a commodity_type of ‘coal’ and the other with commodity_type of ‘water’. For an electric substation the commodity_type is electricity. For a water treatment plant, it is waster water. |
| Description: | These are the ‘sink’ nodes representing the load or the aggregate consumer of the product(s) of the system. These are not real components, but a modelling construct. These nodes are not considered in the fragility calculations. |
|---|---|
| Data Type: | String. Must be one of the entries in the component_id columns in the component_list table, and must be of node_type sink. |
| Example: | ‘output_1’ |
| Description: | These are the real terminal nodes within the facility system model. The completed ‘product’ of a system exits from this node. |
|---|---|
| Data Type: | String. Must be one of the entries in the component_id columns in the component_list table, and must be of node_type transshipment. |
| Example: | ‘gen_1’ |
| Description: | Production capacity that the specific production node is responsible for. The unit depends on the type of product the system produces (e.g. MW for generator plant). |
|---|---|
| Data Type: | Float |
| Example: | 300 |
| Description: | The fraction of total production capacity of the output nodes. The sum of capacities of all nodes must equal 1.0. |
|---|---|
| Data Type: | Float \({\{x \in \mathbb{R} \mid 0 < x \leq 1\}}\) |
| Example: | 0.5 |
| Description: | This parameter is used to assign relative sequential priority for output/production nodes in for the purposes of post-disaster recovery |
|---|---|
| Data Type: | Integer. \({\{x \in \mathbb{Z} \mid 1 \leq x \leq n\}}\), where n is the total number of output nodes |
| Example: | _ |
| Description: | The type of component, based on the typology definitions being used in the system model. Example: ‘Demineralisation Plant’ |
|---|---|
| Data Type: | Alphanumeric characters. May use dashes ‘-‘ or underscores ‘_’. Avoid using special characters. |
| Description: | The list of damage states used in defining the damage scale being modelled within the system. Example: For a four-state sequential damage scale, the following damage states are used:
|
|---|---|
| Data Type: | String. Fixed, pre-determined state names. |
| Description: | The probability distribution for the damage function. Currently only log-normal curves are used, but additional distributions can be added as required. Example: ‘lognormal’ |
|---|---|
| Data Type: | String. |
| Description: | Number indicating the mode of the function. Currently can handle only unimodal or bimodal functions. Default value is 1. |
|---|---|
| Data Type: | Integer [1,2] |
| Description: | Median of the damage function. A median will need to be defined for each damage state. It should be typically be progressively higher for more severe damage states: \({\mu_{DS1} \leq \mu_{DS2} \leq \mu_{DS3} \leq \mu_{DS4}}\) |
|---|---|
| Data Type: | Float. |
| Description: | Standard deviation of the damage function. It will need to be defined for each damage state. The value of standard deviation should be such that the curves do not overlap. |
|---|---|
| Data Type: | Float. |
| Description: | The fractional loss of a component’s value for damage sustained at a given damage state. This parameter links a damage state to expected direct loss of component value. Example: Damage ratio of 0.30 for damage state “DS2 Moderate” |
|---|---|
| Data Type: | Float. \({\{x \in \mathbb{R} \mid 0.0 \leq x\}}\). A value of 0 indicates no loss of value, and a value of 1.0 indicates complete loss. In special cases the the value of loss ratio can be greater than 1.0, which indicates complete loss of component and additional cost of removal, disposal, or securing or destroyed component. |
| Description: | An unitless fractional value indicating the functional capacity of a component for a given damage state. This parameter links damage states to expected post-impact residual functionality of the component. Example: A stack of a thermal power station is expected to remain fully functional (functionality==1), under ‘Slight’ damage state, i.e. under conditions of minor damage to structure with deformation of holding down bolts and with some bracing connections. |
|---|---|
| Data Type: | Float. \({\{x \in \mathbb{R} \mid 0.0 \leq x \leq 1.0\}}\). A value of 0 indicates no loss of value, and a value of 1.0 indicates complete loss. In special cases the the value of loss ratio can be greater than 1.0, which indicates complete loss of component and additional cost of removal, disposal, or securing or destroyed component. |
| Description: | Minimum value for which the damage algorithm is applicable. Example: The algorithms presented by Anagnos [1] for 500kV circuit breakers are only applicable for PGA values of 0.15g and above, for the various noted failure modes. |
|---|---|
| Data Type: | Float. |
| Description: | The first standard deviation for a bimodal damage function. |
|---|---|
| Data Type: | Float, for a bimodal function. For single mode functions, use ‘NA’. |
| Description: | The second standard deviation for a bimodal damage function. |
|---|---|
| Data Type: | Float, for a bimodal function. For single mode functions, use ‘NA’. |
| Description: | The mean of the recovery function. Component and system restoration time are assumed to follow the normal distribution. |
|---|---|
| Data Type: | Float. |
| Description: | The standard deviation of the recovery function. Component and system restoration time are assumed to follow the normal distribution. |
|---|---|
| Data Type: | Float. |
| Description: | Some times it is difficult to get the concept of standard deviation across to an audience of infrastructure experts, and hence it is difficult to get a reliable value for it. In such cases we can obtain a 95th percentile value for recovery time, and translate that to standard deviation for a normal distribution using the following equation:
\[\begin{split}\begin{align}
&X_{0.95} = \mu + Z_{0.95} \sigma \\
\Rightarrow &X_{0.95} = \mu + \Phi^{-1}(0.95) \sigma \\
\Rightarrow &\sigma = \frac{X_{0.95} - \mu}{\Phi^{-1}(0.95)}
\end{align}\end{split}\]
|
|---|---|
| Data Type: | Float |
| Description: | Which source the fragility algorithm was adopted from, how it was adapted, or how it was developed. |
|---|---|
| Data Type: | Free text |
This table documents the physical damage characteristics that are implied by the damage states used to model the fragility of the system components.
| Description: | The physical damage descriptors corresponding to the damage states. Example: 230 kV Current Transformers would be said to be in Failure state if there is “porcelain cracking, or overturning.” |
|---|---|
| Data Type: | Free text. |