You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/source/stochastics.rst
+17-16Lines changed: 17 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,30 +60,33 @@ The stochastic configuration file defines the scenarios, their probabilities, an
60
60
# Define perturbations for a specific scenario
61
61
[[perturbations]]
62
62
scenario = "low_cost"
63
-
variable = "cost_variable"
64
-
tech = "IMPHCO1"
65
-
# The value is a multiplier applied to the base value in the database
63
+
table = "cost_variable"
64
+
# Filter specifies which rows in the table to perturb
65
+
filter = { tech = "IMPHCO1" }
66
+
# Action can be "multiply", "add", or "set" (defaults to "set")
67
+
action = "multiply"
66
68
value = 0.5
67
69
68
70
[[perturbations]]
69
71
scenario = "high_cost"
70
-
variable = "cost_variable"
71
-
tech = "IMPHCO1"
72
+
table = "cost_variable"
73
+
filter = { tech = "IMPHCO1" }
74
+
action = "multiply"
72
75
value = 1.5
73
76
74
77
Perturbation Options
75
78
^^^^^^^^^^^^^^^^^^^^
76
79
77
-
Currently, the following perturbations are supported:
80
+
Currently, the following fields are required for each perturbation:
78
81
79
-
* **variable**: The Temoa parameter to perturb. Currently supports:
80
-
* ``cost_variable``
81
-
* ``cost_invest``
82
-
* ``cost_fixed``
83
-
* ``demand``
84
-
* **tech**: The technology to which the perturbation applies (required for cost perturbations).
85
-
* **commodity**: The commodity to which the perturbation applies (required for demand perturbations).
86
-
* **value**: A multiplier applied to the base value found in the input database. For example, a value of ``1.5`` increases the base value by 50%.
82
+
* **scenario**: The name of the scenario to which this perturbation applies.
83
+
* **table**: The Temoa parameter (database table) to perturb (e.g., ``cost_variable``, ``demand``, ``capacity_factor_process``).
84
+
* **filter**: A dictionary of column-value pairs used to identify specific rows. Since the extension uses the dynamic manifest from ``HybridLoader``, any column belonging to the table's index can be used for filtering.
85
+
* **action**: The operation to perform. Supported values:
86
+
* ``multiply``: Multiply the base value by ``value``.
87
+
* ``add``: Add ``value`` to the base value.
88
+
* ``set``: Replace the base value with ``value``.
89
+
* **value**: The numeric value used in the perturbation action.
87
90
88
91
How it Works
89
92
------------
@@ -101,6 +104,4 @@ Limitations
101
104
-----------
102
105
103
106
* **Two-Stage Only**: While ``mpi-sppy`` supports multi-stage stochastic programming, the current Temoa integration is tailored for two-stage problems where the first time period constitutes the first stage.
104
-
* **Cost/Demand Multipliers**: Perturbations are currently implemented as multipliers on base values. Absolute value overrides are not yet supported.
105
-
* **Solver Support**: The extension has been primarily tested with the ``appsi_highs`` and ``cbc`` solvers via Pyomo.
106
107
* **Result Persistence**: Currently, only the expected objective value and summary logs are produced. Detailed per-scenario result persistence to the database is under development.
0 commit comments