flextool 4.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. flextool/__init__.py +41 -0
  2. flextool/_mem_sampler.py +193 -0
  3. flextool/_resources.py +43 -0
  4. flextool/calibrate/__init__.py +51 -0
  5. flextool/calibrate/__main__.py +11 -0
  6. flextool/calibrate/_cli.py +316 -0
  7. flextool/calibrate/_db_alt.py +166 -0
  8. flextool/calibrate/_final_outputs.py +110 -0
  9. flextool/calibrate/_guard.py +151 -0
  10. flextool/calibrate/_loop.py +558 -0
  11. flextool/calibrate/_readers.py +223 -0
  12. flextool/calibrate/_report.py +263 -0
  13. flextool/calibrate/_sizing.py +699 -0
  14. flextool/calibrate/_solve.py +134 -0
  15. flextool/calibrate/_solve_status.py +495 -0
  16. flextool/cli/__init__.py +9 -0
  17. flextool/cli/_console.py +51 -0
  18. flextool/cli/_timing.py +147 -0
  19. flextool/cli/cmd_execute_flextool_workflow.py +187 -0
  20. flextool/cli/cmd_export_to_tabular.py +56 -0
  21. flextool/cli/cmd_import_sensitivities.py +75 -0
  22. flextool/cli/cmd_migrate_database.py +13 -0
  23. flextool/cli/cmd_open_results_db.py +269 -0
  24. flextool/cli/cmd_read_matpower.py +66 -0
  25. flextool/cli/cmd_read_old_flextool.py +63 -0
  26. flextool/cli/cmd_read_self_describing_tabular_input.py +50 -0
  27. flextool/cli/cmd_read_tabular_input.py +81 -0
  28. flextool/cli/cmd_run_flextool.py +1095 -0
  29. flextool/cli/cmd_scenario_results.py +284 -0
  30. flextool/cli/cmd_solve_mps.py +169 -0
  31. flextool/cli/cmd_update_flextool.py +17 -0
  32. flextool/cli/cmd_write_outputs.py +125 -0
  33. flextool/common_utils/__init__.py +1 -0
  34. flextool/common_utils/plot_mem_shape.py +77 -0
  35. flextool/common_utils/precision.py +451 -0
  36. flextool/decomposition/__init__.py +0 -0
  37. flextool/decomposition/region_decomposition.py +128 -0
  38. flextool/decomposition/region_filter.py +1261 -0
  39. flextool/engine_polars/__init__.py +110 -0
  40. flextool/engine_polars/_axis_enums.py +742 -0
  41. flextool/engine_polars/_benders.py +3462 -0
  42. flextool/engine_polars/_block_layout.py +1479 -0
  43. flextool/engine_polars/_blocks.py +1515 -0
  44. flextool/engine_polars/_commodity_ladder.py +660 -0
  45. flextool/engine_polars/_cumulative_invest.py +1165 -0
  46. flextool/engine_polars/_db_loader.py +153 -0
  47. flextool/engine_polars/_db_reader.py +127 -0
  48. flextool/engine_polars/_dc_power_flow.py +445 -0
  49. flextool/engine_polars/_delay.py +442 -0
  50. flextool/engine_polars/_derived_arithmetic.py +432 -0
  51. flextool/engine_polars/_derived_block.py +990 -0
  52. flextool/engine_polars/_derived_branch.py +769 -0
  53. flextool/engine_polars/_derived_existing.py +1353 -0
  54. flextool/engine_polars/_derived_npv.py +1297 -0
  55. flextool/engine_polars/_derived_params.py +9850 -0
  56. flextool/engine_polars/_derived_profile.py +881 -0
  57. flextool/engine_polars/_derived_walks.py +276 -0
  58. flextool/engine_polars/_determinism.py +70 -0
  59. flextool/engine_polars/_direct_params.py +2186 -0
  60. flextool/engine_polars/_dump_csvs.py +1009 -0
  61. flextool/engine_polars/_emit_arc_unions.py +1631 -0
  62. flextool/engine_polars/_emit_calc_params.py +729 -0
  63. flextool/engine_polars/_emit_chain_params.py +709 -0
  64. flextool/engine_polars/_emit_co2_accumulators.py +400 -0
  65. flextool/engine_polars/_emit_dispatchers.py +690 -0
  66. flextool/engine_polars/_emit_energy_margin.py +125 -0
  67. flextool/engine_polars/_emit_energy_margin_adder.py +290 -0
  68. flextool/engine_polars/_emit_entity_annual.py +428 -0
  69. flextool/engine_polars/_emit_inflow_scaling.py +1420 -0
  70. flextool/engine_polars/_emit_leaf_sets.py +550 -0
  71. flextool/engine_polars/_emit_lp_scaling.py +665 -0
  72. flextool/engine_polars/_emit_mid_sets.py +859 -0
  73. flextool/engine_polars/_emit_pdt_params.py +759 -0
  74. flextool/engine_polars/_emit_per_solve.py +774 -0
  75. flextool/engine_polars/_emit_period_calc.py +504 -0
  76. flextool/engine_polars/_emit_period_params.py +2398 -0
  77. flextool/engine_polars/_emit_provider_io.py +141 -0
  78. flextool/engine_polars/_emit_reserve.py +574 -0
  79. flextool/engine_polars/_emit_solve_time.py +311 -0
  80. flextool/engine_polars/_emit_solve_writers.py +1249 -0
  81. flextool/engine_polars/_flex_data_accumulator.py +388 -0
  82. flextool/engine_polars/_flex_data_provider.py +478 -0
  83. flextool/engine_polars/_group_slack.py +1253 -0
  84. flextool/engine_polars/_inmemory_reader.py +140 -0
  85. flextool/engine_polars/_input_source.py +336 -0
  86. flextool/engine_polars/_invest_seeds.py +191 -0
  87. flextool/engine_polars/_native_input_writer.py +100 -0
  88. flextool/engine_polars/_native_run_model.py +1348 -0
  89. flextool/engine_polars/_orchestration.py +4314 -0
  90. flextool/engine_polars/_output_writer.py +439 -0
  91. flextool/engine_polars/_param_shapes.py +1595 -0
  92. flextool/engine_polars/_parquet_bundle.py +723 -0
  93. flextool/engine_polars/_pdt_join.py +167 -0
  94. flextool/engine_polars/_pdt_lookup.py +547 -0
  95. flextool/engine_polars/_per_solve_sets.py +335 -0
  96. flextool/engine_polars/_projection_params.py +2056 -0
  97. flextool/engine_polars/_provider_keys.py +173 -0
  98. flextool/engine_polars/_provider_translators.py +225 -0
  99. flextool/engine_polars/_recursive_solve.py +703 -0
  100. flextool/engine_polars/_region_filter.py +2508 -0
  101. flextool/engine_polars/_reserve.py +649 -0
  102. flextool/engine_polars/_solve_acceptance.py +331 -0
  103. flextool/engine_polars/_solve_config.py +1001 -0
  104. flextool/engine_polars/_solve_context.py +885 -0
  105. flextool/engine_polars/_solve_handoff.py +164 -0
  106. flextool/engine_polars/_solve_state.py +232 -0
  107. flextool/engine_polars/_solver_base.py +36 -0
  108. flextool/engine_polars/_solver_dispatch.py +511 -0
  109. flextool/engine_polars/_spinedb_reader.py +1165 -0
  110. flextool/engine_polars/_stochastic.py +593 -0
  111. flextool/engine_polars/_subprocess_solve.py +1838 -0
  112. flextool/engine_polars/_timeline.py +1416 -0
  113. flextool/engine_polars/_vectorize.py +438 -0
  114. flextool/engine_polars/_warm.py +858 -0
  115. flextool/engine_polars/autoscale/__init__.py +107 -0
  116. flextool/engine_polars/autoscale/_config.py +218 -0
  117. flextool/engine_polars/autoscale/_layer2.py +1253 -0
  118. flextool/engine_polars/autoscale/_layer2_types.py +584 -0
  119. flextool/engine_polars/autoscale/_quantity_types.py +621 -0
  120. flextool/engine_polars/autoscale/_report.py +336 -0
  121. flextool/engine_polars/chain.py +259 -0
  122. flextool/engine_polars/input.py +6638 -0
  123. flextool/engine_polars/model.py +4754 -0
  124. flextool/env_check.py +388 -0
  125. flextool/export_to_tabular/__init__.py +5 -0
  126. flextool/export_to_tabular/db_reader.py +224 -0
  127. flextool/export_to_tabular/excel_writer.py +3559 -0
  128. flextool/export_to_tabular/export_settings.yaml +377 -0
  129. flextool/export_to_tabular/export_to_excel.py +227 -0
  130. flextool/export_to_tabular/formatting.py +543 -0
  131. flextool/export_to_tabular/sheet_config.py +876 -0
  132. flextool/gui/__init__.py +0 -0
  133. flextool/gui/__main__.py +118 -0
  134. flextool/gui/calibrate_commands.py +184 -0
  135. flextool/gui/calibrate_jobs.py +424 -0
  136. flextool/gui/check_tree.py +142 -0
  137. flextool/gui/cli_format.py +83 -0
  138. flextool/gui/config_parser.py +68 -0
  139. flextool/gui/data_models.py +362 -0
  140. flextool/gui/db_editor_integration.py +202 -0
  141. flextool/gui/db_version_check.py +269 -0
  142. flextool/gui/dialogs/__init__.py +0 -0
  143. flextool/gui/dialogs/add_dialog.py +1098 -0
  144. flextool/gui/dialogs/calibrate_dialog.py +1259 -0
  145. flextool/gui/dialogs/file_picker.py +473 -0
  146. flextool/gui/dialogs/group_picker.py +299 -0
  147. flextool/gui/dialogs/migration_consent_dialog.py +106 -0
  148. flextool/gui/dialogs/migration_progress_dialog.py +237 -0
  149. flextool/gui/dialogs/plot_dialog.py +459 -0
  150. flextool/gui/dialogs/plot_settings_picker.py +2184 -0
  151. flextool/gui/dialogs/project_dialog.py +426 -0
  152. flextool/gui/dialogs/update_dialog.py +212 -0
  153. flextool/gui/downsampling.py +88 -0
  154. flextool/gui/error_handling.py +50 -0
  155. flextool/gui/execution_manager.py +1715 -0
  156. flextool/gui/execution_window.py +1377 -0
  157. flextool/gui/hover_tooltip.py +111 -0
  158. flextool/gui/input_sources.py +730 -0
  159. flextool/gui/main_window.py +6181 -0
  160. flextool/gui/network_graph.py +215 -0
  161. flextool/gui/output_actions.py +393 -0
  162. flextool/gui/output_log_window.py +159 -0
  163. flextool/gui/platform_utils.py +421 -0
  164. flextool/gui/plot_cache.py +88 -0
  165. flextool/gui/plot_canvas.py +543 -0
  166. flextool/gui/plot_config_reader.py +272 -0
  167. flextool/gui/project_utils.py +100 -0
  168. flextool/gui/result_viewer.py +4394 -0
  169. flextool/gui/scenario_key.py +162 -0
  170. flextool/gui/scenario_lists.py +516 -0
  171. flextool/gui/settings_io.py +360 -0
  172. flextool/gui/solve_reader.py +103 -0
  173. flextool/gui/tree_reorder.py +88 -0
  174. flextool/gui/ui_metrics.py +420 -0
  175. flextool/input_derivation/__init__.py +281 -0
  176. flextool/input_derivation/_commodity_ladder.py +375 -0
  177. flextool/input_derivation/_commodity_ladder_sets.py +70 -0
  178. flextool/input_derivation/_dc_power_flow.py +377 -0
  179. flextool/input_derivation/_method_constants.py +77 -0
  180. flextool/input_derivation/_process_method.py +258 -0
  181. flextool/input_derivation/_specs.py +1026 -0
  182. flextool/input_derivation/_validators.py +321 -0
  183. flextool/lean_parquet.py +159 -0
  184. flextool/model_builder/__init__.py +5 -0
  185. flextool/model_builder/build_model.py +589 -0
  186. flextool/model_builder/encoding.py +67 -0
  187. flextool/model_builder/names.py +34 -0
  188. flextool/model_builder/profiles.py +129 -0
  189. flextool/plot_outputs/__init__.py +14 -0
  190. flextool/plot_outputs/axis_helpers.py +355 -0
  191. flextool/plot_outputs/color_template.py +888 -0
  192. flextool/plot_outputs/config.py +171 -0
  193. flextool/plot_outputs/format_helpers.py +345 -0
  194. flextool/plot_outputs/legend_helpers.py +143 -0
  195. flextool/plot_outputs/orchestrator.py +1141 -0
  196. flextool/plot_outputs/perf.py +37 -0
  197. flextool/plot_outputs/plan.py +1787 -0
  198. flextool/plot_outputs/plot_bars.py +1510 -0
  199. flextool/plot_outputs/plot_bars_detail.py +753 -0
  200. flextool/plot_outputs/plot_lines.py +951 -0
  201. flextool/plot_outputs/shared_manifest.py +564 -0
  202. flextool/plot_outputs/subplot_helpers.py +137 -0
  203. flextool/process_inputs/__init__.py +188 -0
  204. flextool/process_inputs/import_old_excel_input.json +4159 -0
  205. flextool/process_inputs/read_matpower.py +451 -0
  206. flextool/process_inputs/read_old_flextool.py +1288 -0
  207. flextool/process_inputs/read_self_describing_excel.py +1423 -0
  208. flextool/process_inputs/read_tabular_with_specification.py +1114 -0
  209. flextool/process_inputs/write_old_flextool_to_db.py +3077 -0
  210. flextool/process_inputs/write_self_describing_to_db.py +977 -0
  211. flextool/process_inputs/write_to_input_db.py +269 -0
  212. flextool/process_outputs/__init__.py +7 -0
  213. flextool/process_outputs/_annualize.py +55 -0
  214. flextool/process_outputs/_inmemory_helpers.py +292 -0
  215. flextool/process_outputs/_output_meta.py +672 -0
  216. flextool/process_outputs/calc_capacity_flows.py +107 -0
  217. flextool/process_outputs/calc_connections.py +136 -0
  218. flextool/process_outputs/calc_costs.py +260 -0
  219. flextool/process_outputs/calc_group_flows.py +192 -0
  220. flextool/process_outputs/calc_slacks.py +103 -0
  221. flextool/process_outputs/calc_storage_vre.py +160 -0
  222. flextool/process_outputs/drop_levels.py +208 -0
  223. flextool/process_outputs/handoff_writers.py +1315 -0
  224. flextool/process_outputs/out_ancillary.py +544 -0
  225. flextool/process_outputs/out_capacity.py +179 -0
  226. flextool/process_outputs/out_costs.py +334 -0
  227. flextool/process_outputs/out_flowgroup.py +189 -0
  228. flextool/process_outputs/out_flows.py +301 -0
  229. flextool/process_outputs/out_group.py +475 -0
  230. flextool/process_outputs/out_node.py +190 -0
  231. flextool/process_outputs/persist_realized_slice.py +601 -0
  232. flextool/process_outputs/process_results.py +24 -0
  233. flextool/process_outputs/read_highs_solution.py +2256 -0
  234. flextool/process_outputs/read_parameters.py +1799 -0
  235. flextool/process_outputs/read_sets.py +1095 -0
  236. flextool/process_outputs/read_variables.py +553 -0
  237. flextool/process_outputs/solve_order.py +81 -0
  238. flextool/process_outputs/spinedb_replay.py +412 -0
  239. flextool/process_outputs/union_realized_slice.py +224 -0
  240. flextool/process_outputs/write_outputs.py +1286 -0
  241. flextool/process_outputs/write_spinedb.py +1267 -0
  242. flextool/representative_periods/__init__.py +5 -0
  243. flextool/representative_periods/clustering.py +165 -0
  244. flextool/representative_periods/force_include.py +563 -0
  245. flextool/representative_periods/netload.py +365 -0
  246. flextool/representative_periods/netload_inputs.py +345 -0
  247. flextool/representative_periods/netload_iterate.py +722 -0
  248. flextool/representative_periods/preprocess.py +948 -0
  249. flextool/representative_periods/scenario_stack.py +195 -0
  250. flextool/representative_periods/weights.py +124 -0
  251. flextool/scenario_comparison/__init__.py +13 -0
  252. flextool/scenario_comparison/config_builder.py +158 -0
  253. flextool/scenario_comparison/constants.py +20 -0
  254. flextool/scenario_comparison/data_models.py +222 -0
  255. flextool/scenario_comparison/db_reader.py +399 -0
  256. flextool/scenario_comparison/dispatch_data.py +1002 -0
  257. flextool/scenario_comparison/dispatch_mappings.py +205 -0
  258. flextool/scenario_comparison/dispatch_plots.py +691 -0
  259. flextool/scenario_comparison/input_entity_colors.py +319 -0
  260. flextool/scenario_comparison/orchestrator.py +453 -0
  261. flextool/scenario_comparison/plan_union.py +244 -0
  262. flextool/scenario_comparison/plot_settings_seed.py +205 -0
  263. flextool/schemas/AXIS_CONTRACT.md +71 -0
  264. flextool/schemas/canonical_databases/howto_aggregate_output.json +6225 -0
  265. flextool/schemas/canonical_databases/howto_connections.json +5606 -0
  266. flextool/schemas/canonical_databases/howto_demand.json +5518 -0
  267. flextool/schemas/canonical_databases/howto_hydro_reservoir.json +6239 -0
  268. flextool/schemas/canonical_databases/howto_hydro_reservoir_with_pump.json +5933 -0
  269. flextool/schemas/canonical_databases/howto_non_sync_and_curtailment.json +5794 -0
  270. flextool/schemas/canonical_databases/howto_ramp_and_start_up.json +5707 -0
  271. flextool/schemas/canonical_databases/howto_stochastics.json +6032 -0
  272. flextool/schemas/canonical_databases/templates_examples.json +13532 -0
  273. flextool/schemas/canonical_databases/templates_time_settings_only.json +5340 -0
  274. flextool/schemas/comparison_settings_template.json +197 -0
  275. flextool/schemas/default_plot_settings.yaml +260 -0
  276. flextool/schemas/default_plots.yaml +2293 -0
  277. flextool/schemas/flextool_axis_contract.json +303 -0
  278. flextool/schemas/flextool_axis_contract.schema.json +247 -0
  279. flextool/schemas/old_flextool_import_template.json +4443 -0
  280. flextool/schemas/output_info_template.json +48 -0
  281. flextool/schemas/output_settings_template.json +256 -0
  282. flextool/schemas/pre_v26/flextool_template_constant_default.json +2105 -0
  283. flextool/schemas/pre_v26/flextool_template_default_optional_output.json +2152 -0
  284. flextool/schemas/pre_v26/flextool_template_default_value.json +2094 -0
  285. flextool/schemas/pre_v26/flextool_template_drop_down.json +2080 -0
  286. flextool/schemas/pre_v26/flextool_template_lifetime_method.json +1990 -0
  287. flextool/schemas/pre_v26/flextool_template_optional_outputs.json +2094 -0
  288. flextool/schemas/pre_v26/flextool_template_output_node_flows.json +2105 -0
  289. flextool/schemas/pre_v26/flextool_template_results_master.json +493 -0
  290. flextool/schemas/pre_v26/flextool_template_rolling_start_remove.json +2087 -0
  291. flextool/schemas/pre_v26/flextool_template_rolling_window.json +2059 -0
  292. flextool/schemas/pre_v26/flextool_template_storage_binding_defaults.json +46 -0
  293. flextool/schemas/pre_v26/flextool_template_v2.json +1990 -0
  294. flextool/schemas/pre_v26/flextool_template_v25.json +3864 -0
  295. flextool/schemas/spinedb_results_schema.json +581 -0
  296. flextool/schemas/spinedb_schema.json +4636 -0
  297. flextool/solver_config/copt.opt.template +18 -0
  298. flextool/solver_config/cplex.opt.template +25 -0
  299. flextool/solver_config/gurobi.opt.template +18 -0
  300. flextool/solver_config/highs.opt.template +18 -0
  301. flextool/solver_config/xpress.opt.template +26 -0
  302. flextool/spinedb_backend/__init__.py +26 -0
  303. flextool/spinedb_backend/_axis_enums.py +1119 -0
  304. flextool/spinedb_backend/_backend.py +1139 -0
  305. flextool/update_flextool/__init__.py +12 -0
  306. flextool/update_flextool/canonical_databases.py +251 -0
  307. flextool/update_flextool/db_migration.py +7108 -0
  308. flextool/update_flextool/ensure_settings_db.py +138 -0
  309. flextool/update_flextool/export_database.py +103 -0
  310. flextool/update_flextool/extend_tests_fixture.py +772 -0
  311. flextool/update_flextool/generate_canonical.py +274 -0
  312. flextool/update_flextool/initialize_database.py +42 -0
  313. flextool/update_flextool/install_info.py +225 -0
  314. flextool/update_flextool/self_update.py +464 -0
  315. flextool/update_flextool/sync_master_json_template.py +125 -0
  316. flextool/update_flextool/test_fixtures.py +187 -0
  317. flextool-4.0.0.dist-info/METADATA +217 -0
  318. flextool-4.0.0.dist-info/RECORD +322 -0
  319. flextool-4.0.0.dist-info/WHEEL +5 -0
  320. flextool-4.0.0.dist-info/entry_points.txt +17 -0
  321. flextool-4.0.0.dist-info/licenses/LICENSE.txt +19 -0
  322. flextool-4.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,4636 @@
1
+ {
2
+ "entity_classes": [
3
+ [
4
+ "commodity",
5
+ [],
6
+ "Stuff that is being processed",
7
+ 281351265055225,
8
+ true
9
+ ],
10
+ [
11
+ "connection",
12
+ [],
13
+ null,
14
+ 280741963428706,
15
+ false
16
+ ],
17
+ [
18
+ "constraint",
19
+ [],
20
+ null,
21
+ 281107035649330,
22
+ true
23
+ ],
24
+ [
25
+ "flowGroup",
26
+ [],
27
+ null,
28
+ 143488754774337,
29
+ true
30
+ ],
31
+ [
32
+ "group",
33
+ [],
34
+ null,
35
+ 280655732797761,
36
+ true
37
+ ],
38
+ [
39
+ "model",
40
+ [],
41
+ "Settings for a model instance",
42
+ 280378317271475,
43
+ true
44
+ ],
45
+ [
46
+ "node",
47
+ [],
48
+ null,
49
+ 280655732797997,
50
+ false
51
+ ],
52
+ [
53
+ "profile",
54
+ [],
55
+ null,
56
+ 280376907921198,
57
+ true
58
+ ],
59
+ [
60
+ "reserve",
61
+ [],
62
+ "Categories for the reservation of capacity",
63
+ 281473533932379,
64
+ true
65
+ ],
66
+ [
67
+ "solve",
68
+ [],
69
+ null,
70
+ 280378317271532,
71
+ true
72
+ ],
73
+ [
74
+ "timeline",
75
+ [],
76
+ null,
77
+ 280378317271144,
78
+ true
79
+ ],
80
+ [
81
+ "timeset",
82
+ [],
83
+ null,
84
+ 280378317272400,
85
+ true
86
+ ],
87
+ [
88
+ "unit",
89
+ [],
90
+ null,
91
+ 281107035648629,
92
+ false
93
+ ],
94
+ [
95
+ "upDown",
96
+ [],
97
+ null,
98
+ 280378317271864,
99
+ true
100
+ ],
101
+ [
102
+ "commodity__node",
103
+ [
104
+ "commodity",
105
+ "node"
106
+ ],
107
+ "Properties of commodities in particular nodes",
108
+ 281054070108939,
109
+ true
110
+ ],
111
+ [
112
+ "connection__node",
113
+ [
114
+ "connection",
115
+ "node"
116
+ ],
117
+ null,
118
+ 280743406203659,
119
+ true
120
+ ],
121
+ [
122
+ "connection__profile",
123
+ [
124
+ "connection",
125
+ "profile"
126
+ ],
127
+ null,
128
+ 280798025740550,
129
+ true
130
+ ],
131
+ [
132
+ "group__connection",
133
+ [
134
+ "group",
135
+ "connection"
136
+ ],
137
+ null,
138
+ null,
139
+ true
140
+ ],
141
+ [
142
+ "group__node",
143
+ [
144
+ "group",
145
+ "node"
146
+ ],
147
+ null,
148
+ null,
149
+ true
150
+ ],
151
+ [
152
+ "group__unit",
153
+ [
154
+ "group",
155
+ "unit"
156
+ ],
157
+ null,
158
+ null,
159
+ true
160
+ ],
161
+ [
162
+ "node__profile",
163
+ [
164
+ "node",
165
+ "profile"
166
+ ],
167
+ null,
168
+ 280798025740550,
169
+ true
170
+ ],
171
+ [
172
+ "unit__inputNode",
173
+ [
174
+ "unit",
175
+ "node"
176
+ ],
177
+ null,
178
+ 280378317271818,
179
+ true
180
+ ],
181
+ [
182
+ "unit__outputNode",
183
+ [
184
+ "unit",
185
+ "node"
186
+ ],
187
+ null,
188
+ 281473533932299,
189
+ true
190
+ ],
191
+ [
192
+ "connection__node__node",
193
+ [
194
+ "connection",
195
+ "node",
196
+ "node"
197
+ ],
198
+ null,
199
+ 280743406203746,
200
+ true
201
+ ],
202
+ [
203
+ "flowGroup__connection__node",
204
+ [
205
+ "flowGroup",
206
+ "connection",
207
+ "node"
208
+ ],
209
+ null,
210
+ null,
211
+ true
212
+ ],
213
+ [
214
+ "flowGroup__unit__node",
215
+ [
216
+ "flowGroup",
217
+ "unit",
218
+ "node"
219
+ ],
220
+ null,
221
+ null,
222
+ true
223
+ ],
224
+ [
225
+ "reserve__upDown__group",
226
+ [
227
+ "reserve",
228
+ "upDown",
229
+ "group"
230
+ ],
231
+ null,
232
+ null,
233
+ true
234
+ ],
235
+ [
236
+ "unit__node__profile",
237
+ [
238
+ "unit",
239
+ "node",
240
+ "profile"
241
+ ],
242
+ null,
243
+ 280798025740550,
244
+ true
245
+ ],
246
+ [
247
+ "reserve__upDown__connection__node",
248
+ [
249
+ "reserve",
250
+ "upDown",
251
+ "connection",
252
+ "node"
253
+ ],
254
+ null,
255
+ null,
256
+ true
257
+ ],
258
+ [
259
+ "reserve__upDown__unit__node",
260
+ [
261
+ "reserve",
262
+ "upDown",
263
+ "unit",
264
+ "node"
265
+ ],
266
+ null,
267
+ null,
268
+ true
269
+ ]
270
+ ],
271
+ "entities": [
272
+ [
273
+ "upDown",
274
+ "down",
275
+ "Downward reserve direction"
276
+ ],
277
+ [
278
+ "upDown",
279
+ "up",
280
+ "Upward reserve direction"
281
+ ]
282
+ ],
283
+ "parameter_value_lists": [
284
+ [
285
+ "capacity_margin_methods",
286
+ "none"
287
+ ],
288
+ [
289
+ "capacity_margin_methods",
290
+ "manual"
291
+ ],
292
+ [
293
+ "co2_methods",
294
+ "none"
295
+ ],
296
+ [
297
+ "co2_methods",
298
+ "price"
299
+ ],
300
+ [
301
+ "co2_methods",
302
+ "period"
303
+ ],
304
+ [
305
+ "co2_methods",
306
+ "total"
307
+ ],
308
+ [
309
+ "co2_methods",
310
+ "price_period"
311
+ ],
312
+ [
313
+ "co2_methods",
314
+ "price_total"
315
+ ],
316
+ [
317
+ "co2_methods",
318
+ "period_total"
319
+ ],
320
+ [
321
+ "co2_methods",
322
+ "price_period_total"
323
+ ],
324
+ [
325
+ "conversion_methods",
326
+ "constant_efficiency"
327
+ ],
328
+ [
329
+ "conversion_methods",
330
+ "min_load_efficiency"
331
+ ],
332
+ [
333
+ "conversion_methods",
334
+ "none"
335
+ ],
336
+ [
337
+ "decomposition_methods",
338
+ "none"
339
+ ],
340
+ [
341
+ "decomposition_methods",
342
+ "benders_regional"
343
+ ],
344
+ [
345
+ "decomposition_schemes",
346
+ "none"
347
+ ],
348
+ [
349
+ "decomposition_schemes",
350
+ "benders"
351
+ ],
352
+ [
353
+ "energy_margin_methods",
354
+ "none"
355
+ ],
356
+ [
357
+ "energy_margin_methods",
358
+ "inflow_multiplier"
359
+ ],
360
+ [
361
+ "energy_margin_methods",
362
+ "inflow_adder"
363
+ ],
364
+ [
365
+ "flow_aggregator_methods",
366
+ "none"
367
+ ],
368
+ [
369
+ "flow_aggregator_methods",
370
+ "dispatch_plots_only"
371
+ ],
372
+ [
373
+ "flow_aggregator_methods",
374
+ "standalone_aggregator_only"
375
+ ],
376
+ [
377
+ "flow_aggregator_methods",
378
+ "both"
379
+ ],
380
+ [
381
+ "has_DC",
382
+ "yes"
383
+ ],
384
+ [
385
+ "has_invest",
386
+ "yes"
387
+ ],
388
+ [
389
+ "inflow_methods",
390
+ "no_inflow"
391
+ ],
392
+ [
393
+ "inflow_methods",
394
+ "use_original"
395
+ ],
396
+ [
397
+ "inflow_methods",
398
+ "scale_in_proportion"
399
+ ],
400
+ [
401
+ "inflow_methods",
402
+ "scale_to_annual_flow"
403
+ ],
404
+ [
405
+ "inflow_methods",
406
+ "scale_to_annual_and_peak_flow"
407
+ ],
408
+ [
409
+ "invest_methods",
410
+ "not_allowed"
411
+ ],
412
+ [
413
+ "invest_methods",
414
+ "invest_no_limit"
415
+ ],
416
+ [
417
+ "invest_methods",
418
+ "invest_period"
419
+ ],
420
+ [
421
+ "invest_methods",
422
+ "invest_total"
423
+ ],
424
+ [
425
+ "invest_methods",
426
+ "invest_period_total"
427
+ ],
428
+ [
429
+ "invest_methods",
430
+ "retire_no_limit"
431
+ ],
432
+ [
433
+ "invest_methods",
434
+ "retire_period"
435
+ ],
436
+ [
437
+ "invest_methods",
438
+ "retire_total"
439
+ ],
440
+ [
441
+ "invest_methods",
442
+ "retire_period_total"
443
+ ],
444
+ [
445
+ "invest_methods",
446
+ "invest_retire_no_limit"
447
+ ],
448
+ [
449
+ "invest_methods",
450
+ "invest_retire_period"
451
+ ],
452
+ [
453
+ "invest_methods",
454
+ "invest_retire_total"
455
+ ],
456
+ [
457
+ "invest_methods",
458
+ "invest_retire_period_total"
459
+ ],
460
+ [
461
+ "invest_methods",
462
+ "cumulative_limits"
463
+ ],
464
+ [
465
+ "lifetime_methods",
466
+ "reinvest_automatic"
467
+ ],
468
+ [
469
+ "lifetime_methods",
470
+ "reinvest_choice"
471
+ ],
472
+ [
473
+ "lifetime_methods",
474
+ "no_investment"
475
+ ],
476
+ [
477
+ "load_share_type",
478
+ "equal"
479
+ ],
480
+ [
481
+ "load_share_type",
482
+ "inflow_weighted"
483
+ ],
484
+ [
485
+ "load_share_type",
486
+ "no"
487
+ ],
488
+ [
489
+ "minimum_time_methods",
490
+ "min_uptime"
491
+ ],
492
+ [
493
+ "minimum_time_methods",
494
+ "min_downtime"
495
+ ],
496
+ [
497
+ "minimum_time_methods",
498
+ "both"
499
+ ],
500
+ [
501
+ "minimum_time_methods",
502
+ "none"
503
+ ],
504
+ [
505
+ "node_type",
506
+ "balance_within_period"
507
+ ],
508
+ [
509
+ "node_type",
510
+ "commodity"
511
+ ],
512
+ [
513
+ "node_type",
514
+ "balance"
515
+ ],
516
+ [
517
+ "node_type",
518
+ "storage"
519
+ ],
520
+ [
521
+ "optional_output",
522
+ "yes"
523
+ ],
524
+ [
525
+ "optional_output",
526
+ "no"
527
+ ],
528
+ [
529
+ "penalty_methods",
530
+ "regular"
531
+ ],
532
+ [
533
+ "penalty_methods",
534
+ "off"
535
+ ],
536
+ [
537
+ "price_method",
538
+ "price"
539
+ ],
540
+ [
541
+ "price_method",
542
+ "price_ladder_annual"
543
+ ],
544
+ [
545
+ "price_method",
546
+ "price_ladder_cumulative"
547
+ ],
548
+ [
549
+ "profile_methods",
550
+ "upper_limit"
551
+ ],
552
+ [
553
+ "profile_methods",
554
+ "lower_limit"
555
+ ],
556
+ [
557
+ "profile_methods",
558
+ "fixed"
559
+ ],
560
+ [
561
+ "profile_methods",
562
+ "none"
563
+ ],
564
+ [
565
+ "ramp_methods",
566
+ "ramp_limit"
567
+ ],
568
+ [
569
+ "ramp_methods",
570
+ "ramp_cost"
571
+ ],
572
+ [
573
+ "ramp_methods",
574
+ "both"
575
+ ],
576
+ [
577
+ "ramp_methods",
578
+ "none"
579
+ ],
580
+ [
581
+ "reserve_methods",
582
+ "no_reserve"
583
+ ],
584
+ [
585
+ "reserve_methods",
586
+ "timeseries_only"
587
+ ],
588
+ [
589
+ "reserve_methods",
590
+ "dynamic_only"
591
+ ],
592
+ [
593
+ "reserve_methods",
594
+ "large_failure_only"
595
+ ],
596
+ [
597
+ "reserve_methods",
598
+ "timeseries_and_dynamic"
599
+ ],
600
+ [
601
+ "reserve_methods",
602
+ "timeseries_and_large_failure"
603
+ ],
604
+ [
605
+ "reserve_methods",
606
+ "dynamic_and_large_failure"
607
+ ],
608
+ [
609
+ "reserve_methods",
610
+ "all"
611
+ ],
612
+ [
613
+ "results",
614
+ "summary_only"
615
+ ],
616
+ [
617
+ "results",
618
+ "limited_period"
619
+ ],
620
+ [
621
+ "results",
622
+ "limited_period_time"
623
+ ],
624
+ [
625
+ "results",
626
+ "full_period"
627
+ ],
628
+ [
629
+ "results",
630
+ "full_period_time"
631
+ ],
632
+ [
633
+ "scaling_modes",
634
+ "off"
635
+ ],
636
+ [
637
+ "scaling_modes",
638
+ "solver_only"
639
+ ],
640
+ [
641
+ "scaling_modes",
642
+ "basic"
643
+ ],
644
+ [
645
+ "scaling_modes",
646
+ "full"
647
+ ],
648
+ [
649
+ "senses",
650
+ "greater_than"
651
+ ],
652
+ [
653
+ "senses",
654
+ "less_than"
655
+ ],
656
+ [
657
+ "senses",
658
+ "equal"
659
+ ],
660
+ [
661
+ "solve_mode",
662
+ "single_solve"
663
+ ],
664
+ [
665
+ "solve_mode",
666
+ "rolling_window"
667
+ ],
668
+ [
669
+ "solver",
670
+ "glpsol"
671
+ ],
672
+ [
673
+ "solver",
674
+ "highs"
675
+ ],
676
+ [
677
+ "solver",
678
+ "cplex"
679
+ ],
680
+ [
681
+ "solvers",
682
+ "highs"
683
+ ],
684
+ [
685
+ "solvers",
686
+ "gurobi"
687
+ ],
688
+ [
689
+ "solvers",
690
+ "cplex"
691
+ ],
692
+ [
693
+ "solvers",
694
+ "xpress"
695
+ ],
696
+ [
697
+ "solvers",
698
+ "copt"
699
+ ],
700
+ [
701
+ "startup_methods",
702
+ "no_startup"
703
+ ],
704
+ [
705
+ "startup_methods",
706
+ "linear"
707
+ ],
708
+ [
709
+ "startup_methods",
710
+ "binary"
711
+ ],
712
+ [
713
+ "storage_binding_methods",
714
+ "bind_within_period"
715
+ ],
716
+ [
717
+ "storage_binding_methods",
718
+ "bind_within_solve"
719
+ ],
720
+ [
721
+ "storage_binding_methods",
722
+ "bind_forward_only"
723
+ ],
724
+ [
725
+ "storage_binding_methods",
726
+ "bind_intraperiod_blocks"
727
+ ],
728
+ [
729
+ "storage_binding_methods",
730
+ "bind_within_timeblock"
731
+ ],
732
+ [
733
+ "storage_binding_methods",
734
+ "bind_within_solve_blended_weights"
735
+ ],
736
+ [
737
+ "storage_binding_methods",
738
+ "bind_within_period_blended_weights"
739
+ ],
740
+ [
741
+ "storage_binding_methods",
742
+ "bind_forward_only_blended_weights"
743
+ ],
744
+ [
745
+ "storage_nested_fix_method",
746
+ "fix_nothing"
747
+ ],
748
+ [
749
+ "storage_nested_fix_method",
750
+ "fix_quantity"
751
+ ],
752
+ [
753
+ "storage_nested_fix_method",
754
+ "fix_price"
755
+ ],
756
+ [
757
+ "storage_nested_fix_method",
758
+ "fix_usage"
759
+ ],
760
+ [
761
+ "storage_solve_horizon_methods",
762
+ "free"
763
+ ],
764
+ [
765
+ "storage_solve_horizon_methods",
766
+ "use_reference_value"
767
+ ],
768
+ [
769
+ "storage_solve_horizon_methods",
770
+ "use_reference_price"
771
+ ],
772
+ [
773
+ "storage_start_end_methods",
774
+ "fix_start"
775
+ ],
776
+ [
777
+ "storage_start_end_methods",
778
+ "fix_end"
779
+ ],
780
+ [
781
+ "storage_start_end_methods",
782
+ "fix_start_end"
783
+ ],
784
+ [
785
+ "storage_start_end_methods",
786
+ "fix_nothing"
787
+ ],
788
+ [
789
+ "transfer_methods",
790
+ "no_losses_no_variable_cost"
791
+ ],
792
+ [
793
+ "transfer_methods",
794
+ "regular"
795
+ ],
796
+ [
797
+ "transfer_methods",
798
+ "exact"
799
+ ],
800
+ [
801
+ "transfer_methods",
802
+ "variable_cost_only"
803
+ ],
804
+ [
805
+ "transfer_methods",
806
+ "unidirectional"
807
+ ],
808
+ [
809
+ "transfer_methods_group",
810
+ "use_connection_transfer_methods"
811
+ ],
812
+ [
813
+ "transfer_methods_group",
814
+ "no_losses_no_variable_cost"
815
+ ],
816
+ [
817
+ "transfer_methods_group",
818
+ "regular"
819
+ ],
820
+ [
821
+ "transfer_methods_group",
822
+ "exact"
823
+ ],
824
+ [
825
+ "transfer_methods_group",
826
+ "variable_cost_only"
827
+ ],
828
+ [
829
+ "transfer_methods_group",
830
+ "dc_power_flow_with_angles"
831
+ ],
832
+ [
833
+ "transfer_methods_group",
834
+ "unidirectional"
835
+ ],
836
+ [
837
+ "yes_no",
838
+ "yes"
839
+ ],
840
+ [
841
+ "yes_no",
842
+ "no"
843
+ ]
844
+ ],
845
+ "parameter_groups": [
846
+ [
847
+ "basics",
848
+ "6fa8c7",
849
+ 10
850
+ ],
851
+ [
852
+ "constraint",
853
+ "a36784",
854
+ 70
855
+ ],
856
+ [
857
+ "emission",
858
+ "8cbb8a",
859
+ 45
860
+ ],
861
+ [
862
+ "flow_limit",
863
+ "d9bf96",
864
+ 55
865
+ ],
866
+ [
867
+ "investment",
868
+ "7fb095",
869
+ 20
870
+ ],
871
+ [
872
+ "model",
873
+ "a3a3a3",
874
+ 80
875
+ ],
876
+ [
877
+ "network",
878
+ "d9a8a0",
879
+ 50
880
+ ],
881
+ [
882
+ "output",
883
+ "9ac2d1",
884
+ 95
885
+ ],
886
+ [
887
+ "reserve",
888
+ "7aaeb0",
889
+ 40
890
+ ],
891
+ [
892
+ "retirement",
893
+ "a3b08c",
894
+ 25
895
+ ],
896
+ [
897
+ "solve_advanced",
898
+ "b56f6f",
899
+ 87
900
+ ],
901
+ [
902
+ "solve_basics",
903
+ "8c94b0",
904
+ 85
905
+ ],
906
+ [
907
+ "storage",
908
+ "a598c7",
909
+ 30
910
+ ],
911
+ [
912
+ "tech_advanced",
913
+ "d9925c",
914
+ 35
915
+ ],
916
+ [
917
+ "timeline",
918
+ "c2b870",
919
+ 90
920
+ ]
921
+ ],
922
+ "parameter_definitions": [
923
+ [
924
+ "commodity",
925
+ "co2_content",
926
+ null,
927
+ null,
928
+ "[CO2 ton per MWh] Constant.",
929
+ "emission"
930
+ ],
931
+ [
932
+ "commodity",
933
+ "price",
934
+ null,
935
+ null,
936
+ "[CUR/MWh or other unit] Price of the commodity. Constant, period or time.",
937
+ "basics"
938
+ ],
939
+ [
940
+ "commodity",
941
+ "price_ladder_annual",
942
+ null,
943
+ null,
944
+ "Stepped supply curve for price_method='price_ladder_annual'. Two forms accepted: 2d map with rows 'tier,price,quantity' applies the same per-year limit every period; 3d map with rows 'period,tier,price,quantity' varies the limit per period. 1-based integer tier. quantity=inf marks an unbounded tail tier.",
945
+ "basics"
946
+ ],
947
+ [
948
+ "commodity",
949
+ "price_ladder_cumulative",
950
+ null,
951
+ null,
952
+ "Stepped supply curve for price_method='price_ladder_cumulative'. 2d map with rows 'tier,price,quantity' — one row per tier, giving the tier's unit price and its cumulative quantity cap. 1-based integer tier index. quantity=inf marks an unbounded tail tier. Period-agnostic — the cap is a single total across the full model horizon.",
953
+ "basics"
954
+ ],
955
+ [
956
+ "commodity",
957
+ "price_method",
958
+ "price",
959
+ "price_method",
960
+ "How the commodity's price enters the LP. 'price' = scalar or time-series price x flow (current behaviour); 'price_ladder_annual' = stepped supply curve with a per-year quantity cap per tier; 'price_ladder_cumulative' = stepped supply curve with a total-model quantity cap per tier (handoff-carried across rolling solves).",
961
+ "basics"
962
+ ],
963
+ [
964
+ "commodity",
965
+ "unitsize",
966
+ null,
967
+ null,
968
+ "Per-commodity scaling coefficient applied to the v_trade tier variable when the commodity uses the price-ladder feature (gated by commodity.price_method = price_ladder_annual or price_ladder_cumulative). When set, v_trade is expressed in user-MWh divided by this value; pick the unitsize so the largest tier quantity sits at O(10) in the scaled LP. The coefficient multiplies v_trade in the commodity_ladder_balance LHS, the per-tier cap LHS, and the per-tier objective term. When absent (the default), the price-ladder consumer substitutes 1.0 internally so v_trade is in user-MWh (identity scaling). Ignored entirely when commodity.price_method is not a price_ladder_* value.",
969
+ "basics"
970
+ ],
971
+ [
972
+ "connection",
973
+ "availability",
974
+ 1.0,
975
+ null,
976
+ "[e.g. 0.9 means 90%] Fraction of capacity available for connection flows. Constant, period, time or period+time.",
977
+ "basics"
978
+ ],
979
+ [
980
+ "connection",
981
+ "constraint_cumulative_pre_built_capacity_coeff",
982
+ null,
983
+ null,
984
+ "A map of coefficients (index: constraint name, value: coefficient) that places the cumulative pre-built capacity at period d — data baseline plus every v_invest made in periods strictly BEFORE d, retirements ignored — on the left side of the user-defined constraint. Enables learning-effect and period-over-period growth limits. Not multiplied by unitsize.",
985
+ "constraint"
986
+ ],
987
+ [
988
+ "connection",
989
+ "constraint_invested_capacity_coeff",
990
+ null,
991
+ null,
992
+ "A map of coefficients (index: constraint name, value: coefficient) that places v_invest[e, d] — new-build capacity decided in the current period — on the left side of the user-defined constraint. Not multiplied by unitsize.",
993
+ "constraint"
994
+ ],
995
+ [
996
+ "connection",
997
+ "cumulative_max_capacity",
998
+ null,
999
+ null,
1000
+ "[MW] Maximum cumulative capacity (considers existing, invested and retired capacity). Constant or period.",
1001
+ "investment"
1002
+ ],
1003
+ [
1004
+ "connection",
1005
+ "cumulative_min_capacity",
1006
+ null,
1007
+ null,
1008
+ "[MW] Minimum cumulative capacity (considers existing, invested and retired capacity). Constant or period.",
1009
+ "investment"
1010
+ ],
1011
+ [
1012
+ "connection",
1013
+ "delay",
1014
+ null,
1015
+ null,
1016
+ "[hours] A time delay between the input node and the output node - works only with one-way connections (or units). Either a constant indicating the time difference in hours or a map of time differences (index: time difference in hours, value: weight). Each weight indicates its share of the original flow and the weights should sum to 1. Requires that the time resolutions in the model are always integer multiples of these time differences.",
1017
+ "tech_advanced"
1018
+ ],
1019
+ [
1020
+ "connection",
1021
+ "discount_rate",
1022
+ 0.05,
1023
+ null,
1024
+ "[e.g. 0.05 equals 5%] Discount rate for investments (WACC). Reflects the financing cost and risk premium for this technology. When the model inflation_rate > 0, this should be a nominal rate. When inflation_rate = 0, this should be a real rate. Used to annualize investment costs over the lifetime. Constant or period.",
1025
+ "investment"
1026
+ ],
1027
+ [
1028
+ "connection",
1029
+ "efficiency",
1030
+ 1.0,
1031
+ null,
1032
+ "[factor, typically between 0-1] Efficiency of a connection. Constant or time.",
1033
+ "basics"
1034
+ ],
1035
+ [
1036
+ "connection",
1037
+ "existing",
1038
+ null,
1039
+ null,
1040
+ "[MW] Existing capacity. Constant or period.",
1041
+ "basics"
1042
+ ],
1043
+ [
1044
+ "connection",
1045
+ "fixed_cost",
1046
+ null,
1047
+ null,
1048
+ "[CUR/kW] Annual fixed cost. Constant or period.",
1049
+ "investment"
1050
+ ],
1051
+ [
1052
+ "connection",
1053
+ "invest_cost",
1054
+ null,
1055
+ null,
1056
+ "[CUR/kW] Investment cost for new 'virtual' capacity. Constant or period.",
1057
+ "investment"
1058
+ ],
1059
+ [
1060
+ "connection",
1061
+ "invest_max_period",
1062
+ null,
1063
+ null,
1064
+ "[MW] Maximum investment. Period.",
1065
+ "investment"
1066
+ ],
1067
+ [
1068
+ "connection",
1069
+ "invest_max_total",
1070
+ null,
1071
+ null,
1072
+ "[MW] Maximum investment over all solves. Constant.",
1073
+ "investment"
1074
+ ],
1075
+ [
1076
+ "connection",
1077
+ "invest_method",
1078
+ "not_allowed",
1079
+ "invest_methods",
1080
+ "Choice of investment method: not_allowed, invest and retire indicate availability of investment and retirement. no_limit removes all limits even if there are limiting values set. period uses values set in invest/retire_max/min_period. total uses values set in invest/retire_max/min_total.",
1081
+ "investment"
1082
+ ],
1083
+ [
1084
+ "connection",
1085
+ "invest_min_period",
1086
+ null,
1087
+ null,
1088
+ "[MW] Minimum investment. Period.",
1089
+ "investment"
1090
+ ],
1091
+ [
1092
+ "connection",
1093
+ "invest_min_total",
1094
+ null,
1095
+ null,
1096
+ "[MW] Minimum investment over all solves. Constant.",
1097
+ "investment"
1098
+ ],
1099
+ [
1100
+ "connection",
1101
+ "is_DC",
1102
+ "no",
1103
+ "yes_no",
1104
+ "A flag whether the connection is DC (the flow will not be counted as synchronous if there is a non_synchronous_limit). Default false.",
1105
+ "network"
1106
+ ],
1107
+ [
1108
+ "connection",
1109
+ "lifetime",
1110
+ null,
1111
+ null,
1112
+ "[years] Used to calculate annuity together with interest rate. Constant or period.",
1113
+ "investment"
1114
+ ],
1115
+ [
1116
+ "connection",
1117
+ "lifetime_method",
1118
+ "reinvest_automatic",
1119
+ "lifetime_methods",
1120
+ "Choice how the investments behave after unit runs out of lifetime. Automatic reinvestment causes the model to keep the capacity until the end of model horizon and applies the annualized investment cost without further model choice. Choice of reinvestment removes the capacity at the end of the lifetime and the model needs to decide how much new capacity is to be built.",
1121
+ "investment"
1122
+ ],
1123
+ [
1124
+ "connection",
1125
+ "other_operational_cost",
1126
+ null,
1127
+ null,
1128
+ "[CUR/MWh] Other operational variable cost for trasferring over the connection. Constant, period, time or period+time.",
1129
+ "basics"
1130
+ ],
1131
+ [
1132
+ "connection",
1133
+ "reactance",
1134
+ null,
1135
+ null,
1136
+ "[p.u.] Per-unit reactance of the transmission line. Used for DC power flow when the connection is within a nodeGroup that has transfer_method set to dc_power_flow_with_angles. The susceptance used in the flow equation is base_MVA / reactance.",
1137
+ "network"
1138
+ ],
1139
+ [
1140
+ "connection",
1141
+ "retire_max_period",
1142
+ null,
1143
+ null,
1144
+ "[MW] Maximum retired capacity. Period.",
1145
+ "retirement"
1146
+ ],
1147
+ [
1148
+ "connection",
1149
+ "retire_max_total",
1150
+ null,
1151
+ null,
1152
+ "[MW] Maximum retired capacity over all solves. Constant.",
1153
+ "retirement"
1154
+ ],
1155
+ [
1156
+ "connection",
1157
+ "retire_min_period",
1158
+ null,
1159
+ null,
1160
+ "[MW] Maximum retired capacity. Period.",
1161
+ "retirement"
1162
+ ],
1163
+ [
1164
+ "connection",
1165
+ "retire_min_total",
1166
+ null,
1167
+ null,
1168
+ "[MW] Minimum retired capacity over all solves. Constant.",
1169
+ "retirement"
1170
+ ],
1171
+ [
1172
+ "connection",
1173
+ "salvage_value",
1174
+ null,
1175
+ null,
1176
+ "[CUR/kW] Salvage value for retiring capacity. Constant or period.",
1177
+ "retirement"
1178
+ ],
1179
+ [
1180
+ "connection",
1181
+ "startup_cost",
1182
+ null,
1183
+ null,
1184
+ "[CUR/MW] Cost of starting up one MW of 'virtual' capacity. Constant.",
1185
+ "tech_advanced"
1186
+ ],
1187
+ [
1188
+ "connection",
1189
+ "startup_method",
1190
+ "no_startup",
1191
+ "startup_methods",
1192
+ "Choice of startup method",
1193
+ "tech_advanced"
1194
+ ],
1195
+ [
1196
+ "connection",
1197
+ "transfer_method",
1198
+ "regular",
1199
+ "transfer_methods",
1200
+ "Choice of transfer method. Options: regular (default), no_losses_no_variable_cost, variable_cost_only, exact, unidirectional. 'unidirectional' restricts flow to source → sink only (single non-negative variable); 'regular'/'exact'/'variable_cost_only' are bidirectional two-variable variants; 'no_losses_no_variable_cost' is a single signed variable with no losses and no VOM.",
1201
+ "basics"
1202
+ ],
1203
+ [
1204
+ "connection",
1205
+ "virtual_unitsize",
1206
+ null,
1207
+ null,
1208
+ "[MW] Size of single connection - used for integer (lumped) investments.",
1209
+ "basics"
1210
+ ],
1211
+ [
1212
+ "connection__node",
1213
+ "constraint_flow_coeff",
1214
+ null,
1215
+ null,
1216
+ "A map of coefficients (Index: constraint name, value: coefficient) to represent the participation of the flow from the connection to a node in user-defined constraints. [flow x coefficient] will be on the left side of the equation.",
1217
+ "constraint"
1218
+ ],
1219
+ [
1220
+ "connection__profile",
1221
+ "profile_method",
1222
+ "none",
1223
+ "profile_methods",
1224
+ "Choice of profile method (upper_limit, lower_limit, fixed). Negative values also possible.\n",
1225
+ "basics"
1226
+ ],
1227
+ [
1228
+ "constraint",
1229
+ "constant",
1230
+ 0.0,
1231
+ null,
1232
+ "A constant offset for a user constraint (typically zero). The constant will be on the right side of the equation.",
1233
+ "constraint"
1234
+ ],
1235
+ [
1236
+ "constraint",
1237
+ "is_enabled",
1238
+ "yes",
1239
+ "yes_no",
1240
+ "Whether the entity is enabled. Set to 'no' to disable without deleting the entity. Constant.",
1241
+ "constraint"
1242
+ ],
1243
+ [
1244
+ "constraint",
1245
+ "sense",
1246
+ "equal",
1247
+ "senses",
1248
+ "The sense of the constraint ('greater_than', 'less_than' or 'equal').",
1249
+ "constraint"
1250
+ ],
1251
+ [
1252
+ "flowGroup",
1253
+ "flow_aggregator",
1254
+ "none",
1255
+ "flow_aggregator_methods",
1256
+ "Choice of flow-aggregation method for this flowGroup: 'none' (used for flow limits only, no aggregated output), 'dispatch_plots_only' (used as an aggregated flowGroup within 'print_dispatch' group of nodes - do not include one flow in multiple flow aggregators to avoid double counting), 'standalone_aggregator_only' (just make time series available for manual output processing / simple plots), 'both'.",
1257
+ "output"
1258
+ ],
1259
+ [
1260
+ "flowGroup",
1261
+ "max_cumulative_flow",
1262
+ null,
1263
+ null,
1264
+ "[MW] Maximum average flow, which limits the cumulative flow for a group of connection_nodes and/or unit_nodes. The average value is multiplied by the model duration to get the cumulative limit (e.g. by 8760 if a single year is modelled). Applied for each solve. Constant or period.",
1265
+ "flow_limit"
1266
+ ],
1267
+ [
1268
+ "flowGroup",
1269
+ "max_instant_flow",
1270
+ null,
1271
+ null,
1272
+ "[MW] Maximum instantenous flow for the aggregated flow of all group members. Constant, period, time or period+time.",
1273
+ "flow_limit"
1274
+ ],
1275
+ [
1276
+ "flowGroup",
1277
+ "min_cumulative_flow",
1278
+ null,
1279
+ null,
1280
+ "[MW] Minimum average flow, which limits the cumulative flow for a group of connection_nodes and/or unit_nodes. The average value is multiplied by the model duration to get the cumulative limit (e.g. by 8760 if a single year is modelled). Applied for each solve. Constant or period.",
1281
+ "flow_limit"
1282
+ ],
1283
+ [
1284
+ "flowGroup",
1285
+ "min_instant_flow",
1286
+ null,
1287
+ null,
1288
+ "[MW] Minimum instantenous flow for the aggregated flow of all group members. Constant, period, time or period+time.",
1289
+ "flow_limit"
1290
+ ],
1291
+ [
1292
+ "group",
1293
+ "base_MVA",
1294
+ null,
1295
+ null,
1296
+ "[MVA] Base power for the per-unit system used in DC power flow. Default 100. susceptance = base_MVA / reactance_pu.",
1297
+ "network"
1298
+ ],
1299
+ [
1300
+ "group",
1301
+ "candidate_precapacity_to_avoid_big_m",
1302
+ null,
1303
+ null,
1304
+ "[MW] Small pre-existing capacity assigned to investment candidate connections in DC power flow groups that have zero existing capacity. This avoids the need for big-M / MIP constraints by ensuring the angle constraint is always active. Default 0.1 MW. The value should be small enough to not affect results but large enough for numerical stability.",
1305
+ "network"
1306
+ ],
1307
+ [
1308
+ "group",
1309
+ "capacity_margin",
1310
+ null,
1311
+ null,
1312
+ "[MW] How much capacity a node group is required to have in addition to the peak net load in the investment time series. Used only by the investment mode. Constant or period.",
1313
+ "investment"
1314
+ ],
1315
+ [
1316
+ "group",
1317
+ "capacity_margin_method",
1318
+ "none",
1319
+ "capacity_margin_methods",
1320
+ "Whether the node group enforces a capacity margin in the investment mode. 'none' (default) = no constraint. 'manual' requires the group to have 'capacity_margin' MW of capacity above the peak net load. Replaces the former has_capacity_margin yes/no flag; reserved for a future 'automatic' mode.",
1321
+ "investment"
1322
+ ],
1323
+ [
1324
+ "group",
1325
+ "co2_max_period",
1326
+ null,
1327
+ null,
1328
+ "[tCO2] Annualized maximum limit for emitted CO2 in each period.",
1329
+ "emission"
1330
+ ],
1331
+ [
1332
+ "group",
1333
+ "co2_max_total",
1334
+ null,
1335
+ null,
1336
+ "[tCO2] Maximum limit for emitted CO2 in the whole solve.",
1337
+ "emission"
1338
+ ],
1339
+ [
1340
+ "group",
1341
+ "co2_method",
1342
+ "none",
1343
+ "co2_methods",
1344
+ "Choice of the CO2 method: none, price, period, total, price_period, price_total, period_total, price_period_total",
1345
+ "emission"
1346
+ ],
1347
+ [
1348
+ "group",
1349
+ "co2_price",
1350
+ null,
1351
+ null,
1352
+ "[CUR/ton] CO2 price for a group of nodes. Constant, period, time or period+time.",
1353
+ "emission"
1354
+ ],
1355
+ [
1356
+ "group",
1357
+ "cumulative_max_capacity",
1358
+ null,
1359
+ null,
1360
+ "[MW or MWh] Maximum cumulative capacity for a group of entities (considers existing, invested and retired capacity). Constant or period.",
1361
+ "investment"
1362
+ ],
1363
+ [
1364
+ "group",
1365
+ "cumulative_min_capacity",
1366
+ null,
1367
+ null,
1368
+ "[MW or MWh] Minimum cumulative capacity for a group of entities (considers existing, invested and retired capacity). Constant or period.",
1369
+ "investment"
1370
+ ],
1371
+ [
1372
+ "group",
1373
+ "decomposition_method",
1374
+ "none",
1375
+ "decomposition_methods",
1376
+ "Decomposition strategy to apply to this group. Currently supported: 'none' (no decomposition — default), 'benders_regional' (group is solved as an independent region in the Benders master/subproblem decomposition, with shared-commodity trade coupling handled by the master).",
1377
+ "solve_advanced"
1378
+ ],
1379
+ [
1380
+ "group",
1381
+ "has_inertia",
1382
+ "no",
1383
+ "yes_no",
1384
+ "A flag whether the group of nodes has an inertia constraint active.\n",
1385
+ "network"
1386
+ ],
1387
+ [
1388
+ "group",
1389
+ "has_non_synchronous",
1390
+ "no",
1391
+ "yes_no",
1392
+ "A flag whether the group of nodes has the non-synchronous share constraint active.",
1393
+ "network"
1394
+ ],
1395
+ [
1396
+ "group",
1397
+ "include_stochastics",
1398
+ "no",
1399
+ "yes_no",
1400
+ "Includes the stochastic branches to be used for the nodes/units/connections in this group",
1401
+ "model"
1402
+ ],
1403
+ [
1404
+ "group",
1405
+ "inertia_limit",
1406
+ null,
1407
+ null,
1408
+ "[MWs] Minimum for synchronous inertia in the group of nodes. Constant or period.",
1409
+ "network"
1410
+ ],
1411
+ [
1412
+ "group",
1413
+ "invest_max_period",
1414
+ null,
1415
+ null,
1416
+ "[MW or MWh] Maximum investment per period to the virtual capacity of a group of units or to the storage capacity of a group of nodes. Period.",
1417
+ "investment"
1418
+ ],
1419
+ [
1420
+ "group",
1421
+ "invest_max_total",
1422
+ null,
1423
+ null,
1424
+ "[MW or MWh] Maximum investment to the virtual capacity of a group of units or to the storage capacity of a group of nodes. Total over all solves. Constant.",
1425
+ "investment"
1426
+ ],
1427
+ [
1428
+ "group",
1429
+ "invest_method",
1430
+ "not_allowed",
1431
+ "invest_methods",
1432
+ "Choice of investment method: not_allowed, invest and retire indicate availability of investment and retirement. no_limit removes all limits even if there are limiting values set. period uses values set in invest/retire_max/min_period. total uses values set in invest/retire_max/min_total.\r\n",
1433
+ "investment"
1434
+ ],
1435
+ [
1436
+ "group",
1437
+ "invest_min_period",
1438
+ null,
1439
+ null,
1440
+ "[MW or MWh] Minimum investment per period to the virtual capacity of a group of units or to the storage capacity of a group of nodes. Period.",
1441
+ "investment"
1442
+ ],
1443
+ [
1444
+ "group",
1445
+ "invest_min_total",
1446
+ null,
1447
+ null,
1448
+ "[MW or MWh] Minimum investment to the virtual capacity of a group of units or to the storage capacity of a group of nodes. Total over all solves. Constant.",
1449
+ "investment"
1450
+ ],
1451
+ [
1452
+ "group",
1453
+ "new_stepduration",
1454
+ null,
1455
+ null,
1456
+ "Hours. Members of this group operate at this step duration. Overrides the solve-level new_stepduration for these entities. Used for multi-resolution models where some nodes (e.g. fuel markets) need coarser dispatch resolution than others (e.g. power systems).",
1457
+ "timeline"
1458
+ ],
1459
+ [
1460
+ "group",
1461
+ "non_synchronous_limit",
1462
+ null,
1463
+ null,
1464
+ "[share, e.g. 0.8 means 80%] The maximum share of non-synchronous generation in the node group. Constant or period.",
1465
+ "network"
1466
+ ],
1467
+ [
1468
+ "group",
1469
+ "penalty_capacity_margin",
1470
+ 5000.0,
1471
+ null,
1472
+ "[CUR/kW] Penalty for violating the capacity margin constraint. Uses operational discounting (not annualized over lifetime like investment costs), so the value is not directly comparable to annualized investment costs. Constant or period.",
1473
+ "investment"
1474
+ ],
1475
+ [
1476
+ "group",
1477
+ "penalty_inertia",
1478
+ 5000.0,
1479
+ null,
1480
+ "[CUR/MWs] Penalty for violating the inertia constraint. Cost scales with the duration of the violation. Constant or period.",
1481
+ "network"
1482
+ ],
1483
+ [
1484
+ "group",
1485
+ "penalty_non_synchronous",
1486
+ 5000.0,
1487
+ null,
1488
+ "[CUR/MWh] Penalty for violating the non synchronous constraint. Constant or period.",
1489
+ "network"
1490
+ ],
1491
+ [
1492
+ "group",
1493
+ "print_dispatch",
1494
+ null,
1495
+ "yes_no",
1496
+ "Combines unit/connection flows, flowGroup aggregated flows, and other balance elements (slack, demand, internal_losses, etc.) into a set of timeseries and a preconfigured plot per group.",
1497
+ "output"
1498
+ ],
1499
+ [
1500
+ "group",
1501
+ "print_indicators",
1502
+ null,
1503
+ "yes_no",
1504
+ "Output indicators for the set of nodes in the group (Loss of Load, VRE generation, etc.).",
1505
+ "output"
1506
+ ],
1507
+ [
1508
+ "group",
1509
+ "reference_node",
1510
+ null,
1511
+ null,
1512
+ "Name of the reference bus node (angle fixed to zero) for DC power flow. Optional — if not specified, automatically selected as the node with the largest existing capacity in each connected component of the DC power flow network.",
1513
+ "network"
1514
+ ],
1515
+ [
1516
+ "group",
1517
+ "share_loss_of_load",
1518
+ "no",
1519
+ "load_share_type",
1520
+ "Force the upward slack of the nodes in this group to be equal or inflow (demand) weighted",
1521
+ "flow_limit"
1522
+ ],
1523
+ [
1524
+ "group",
1525
+ "transfer_method",
1526
+ "use_connection_transfer_methods",
1527
+ "transfer_methods_group",
1528
+ "Override transfer_method for all connections within this nodeGroup. Options: use_connection_transfer_methods (default, no override), no_losses_no_variable_cost, regular, exact, variable_cost_only, unidirectional, dc_power_flow_with_angles. Setting 'unidirectional' gates every member connection to one-way flow (source → sink only). Setting 'dc_power_flow_with_angles' uses B-theta DC power flow (requires reactance on connections).",
1529
+ "network"
1530
+ ],
1531
+ [
1532
+ "group",
1533
+ "use_for_representative_periods",
1534
+ "no",
1535
+ "yes_no",
1536
+ "A flag whether this group of nodes is an aggregation unit for net-load representative-period selection. When 'yes', the representative-periods preprocessor aggregates the member nodes' net load (demand minus available VRE) into a single regional signal used for clustering; when 'no' (default) the group is ignored by that selection. If no group carries the flag, the selection falls back to per-node net-load signals.",
1537
+ "solve_advanced"
1538
+ ],
1539
+ [
1540
+ "model",
1541
+ "inflation_offset_investment",
1542
+ 0.0,
1543
+ null,
1544
+ "[years] Offset for when investment costs occur within a year. Default 0 (beginning of year).",
1545
+ "model"
1546
+ ],
1547
+ [
1548
+ "model",
1549
+ "inflation_offset_operations",
1550
+ 0.5,
1551
+ null,
1552
+ "[years] Offset for when operational costs occur within a year. Default 0.5 (middle of year).",
1553
+ "model"
1554
+ ],
1555
+ [
1556
+ "model",
1557
+ "inflation_rate",
1558
+ null,
1559
+ null,
1560
+ "[e.g. 0.02 for 2%] Model-wide inflation rate applied to all future costs. When inputs are in real (constant-price) terms, set to 0. When inputs are in nominal terms, set to expected inflation. Default: 0 (real inputs).",
1561
+ "model"
1562
+ ],
1563
+ [
1564
+ "model",
1565
+ "max_flow_for_unconstrained_variables",
1566
+ 1000000.0,
1567
+ null,
1568
+ "[MW] Upper bound assigned to LP variables that have no other cap (invest_no_limit capacity; flows through edges whose capacity_max_coeff is zero; infinite-capacity commodity tiers). Keep large enough not to constrain the physical solution but small enough to avoid numerical issues (default 1,000,000).",
1569
+ "model"
1570
+ ],
1571
+ [
1572
+ "model",
1573
+ "output_horizon",
1574
+ "no",
1575
+ "yes_no",
1576
+ "Outputs the flows in the horizons. Used for testing the model.",
1577
+ "output"
1578
+ ],
1579
+ [
1580
+ "model",
1581
+ "periods_available",
1582
+ null,
1583
+ null,
1584
+ "(Optional) Array of periods available for the model. Periods that are in the data, but are not in period_timeset.",
1585
+ "model"
1586
+ ],
1587
+ [
1588
+ "model",
1589
+ "small_number_threshold",
1590
+ 0.0001,
1591
+ null,
1592
+ "Coefficients and right-hand-side terms whose absolute value is below this are treated as 0 when building the optimisation problem. Reduces the numerical range (conditioning) of the LP. Default 0.0001.",
1593
+ "model"
1594
+ ],
1595
+ [
1596
+ "model",
1597
+ "solves",
1598
+ null,
1599
+ null,
1600
+ "Sequence of solves in the model. Array.",
1601
+ "model"
1602
+ ],
1603
+ [
1604
+ "model",
1605
+ "version",
1606
+ 69.0,
1607
+ null,
1608
+ "Contains database version information.",
1609
+ "model"
1610
+ ],
1611
+ [
1612
+ "node",
1613
+ "annual_flow",
1614
+ null,
1615
+ null,
1616
+ "[MWh] Annual flow in energy units (always positive, the sign of inflow defines in/out). Inflow time series can be scaled to match annual flow. By default, there is no scaling of inflow. Constant or period.",
1617
+ "basics"
1618
+ ],
1619
+ [
1620
+ "node",
1621
+ "availability",
1622
+ 1.0,
1623
+ null,
1624
+ "[e.g. 0.9 means 90%] Fraction of capacity available for storage. Constant, period, time, period+time or stochastic time.",
1625
+ "basics"
1626
+ ],
1627
+ [
1628
+ "node",
1629
+ "constraint_cumulative_pre_built_capacity_coeff",
1630
+ null,
1631
+ null,
1632
+ "A map of coefficients (index: constraint name, value: coefficient) that places the cumulative pre-built capacity at period d — data baseline plus every v_invest made in periods strictly BEFORE d, retirements ignored — on the left side of the user-defined constraint. Enables learning-effect and period-over-period growth limits. Not multiplied by unitsize.",
1633
+ "constraint"
1634
+ ],
1635
+ [
1636
+ "node",
1637
+ "constraint_invested_capacity_coeff",
1638
+ null,
1639
+ null,
1640
+ "A map of coefficients (index: constraint name, value: coefficient) that places v_invest[e, d] — new-build capacity decided in the current period — on the left side of the user-defined constraint. Not multiplied by unitsize.",
1641
+ "constraint"
1642
+ ],
1643
+ [
1644
+ "node",
1645
+ "constraint_state_coeff",
1646
+ null,
1647
+ null,
1648
+ "A map of coefficients (Index: constraint name, value: coefficient) to represent the participation of the storage state in user-defined constraints. [state x coefficient] will be on the left side of the equation.",
1649
+ "constraint"
1650
+ ],
1651
+ [
1652
+ "node",
1653
+ "cumulative_max_capacity",
1654
+ null,
1655
+ null,
1656
+ "[MWh] Maximum cumulative capacity (considers existing, invested and retired capacity). Constant or period.",
1657
+ "investment"
1658
+ ],
1659
+ [
1660
+ "node",
1661
+ "cumulative_min_capacity",
1662
+ null,
1663
+ null,
1664
+ "[MWh] Minimum cumulative capacity (considers existing, invested and retired capacity). Constant or period.",
1665
+ "investment"
1666
+ ],
1667
+ [
1668
+ "node",
1669
+ "discount_rate",
1670
+ 0.05,
1671
+ null,
1672
+ "[e.g. 0.05 equals 5%] Discount rate for investments (WACC). Reflects the financing cost and risk premium for this technology. When the model inflation_rate > 0, this should be a nominal rate. When inflation_rate = 0, this should be a real rate. Used to annualize investment costs over the lifetime. Constant or period.",
1673
+ "investment"
1674
+ ],
1675
+ [
1676
+ "node",
1677
+ "energy_margin_adder",
1678
+ 0.0,
1679
+ null,
1680
+ "[MWh] Extra demand (negative inflow) added to this node in the investment solve only, when energy_margin_method = 'inflow_adder'. Raises adequacy headroom without changing dispatch demand. 0 = off. Constant or period.",
1681
+ "investment"
1682
+ ],
1683
+ [
1684
+ "node",
1685
+ "energy_margin_method",
1686
+ "none",
1687
+ "energy_margin_methods",
1688
+ "How the node's investment-stage energy margin is applied. 'none' (default) = off, no scaling. 'inflow_multiplier' multiplies this node's inflow by 'energy_margin_multiplier' in the solve that carries investment periods only (dispatch solves are unaffected). 'inflow_adder' instead adds 'energy_margin_adder' MWh of extra demand (negative inflow) in that same investment solve. Both offset representative-period VRE optimism that would otherwise cause underinvestment.",
1689
+ "investment"
1690
+ ],
1691
+ [
1692
+ "node",
1693
+ "energy_margin_multiplier",
1694
+ 1.0,
1695
+ null,
1696
+ "[factor] Multiplier applied to this node's inflow in the investment solve only, when energy_margin_method = 'inflow_multiplier'. Offsets representative-period VRE optimism (rep-period average VRE availability exceeds the annual average). 1 = off. e.g. 1.1 builds ~10% more capacity to serve the true annual demand under the true (lower) annual VRE. Constant or period.",
1697
+ "investment"
1698
+ ],
1699
+ [
1700
+ "node",
1701
+ "existing",
1702
+ null,
1703
+ null,
1704
+ "[MWh] Existing storage capacity. Constant or period.",
1705
+ "basics"
1706
+ ],
1707
+ [
1708
+ "node",
1709
+ "fixed_cost",
1710
+ null,
1711
+ null,
1712
+ "[CUR/kWh] Annual fixed cost for storage. Constant or period.",
1713
+ "investment"
1714
+ ],
1715
+ [
1716
+ "node",
1717
+ "inflow",
1718
+ null,
1719
+ null,
1720
+ "[MWh] Inflow into the node (negative is outflow). Constant, time or stochastic time.",
1721
+ "basics"
1722
+ ],
1723
+ [
1724
+ "node",
1725
+ "inflow_method",
1726
+ "use_original",
1727
+ "inflow_methods",
1728
+ "Choice how to treat inflow time series. Empty defaults to 'use_original', which does not scale the time series. 'no_inflow' ignores the inflow time series. 'scale_to_annual_flow' scales the inflow time series by a single factor (shape preserved) so its annual energy equals 'annual_flow'. The annualisation uses each timestep's share of the year: for a full or evenly sampled timeline this is 8760/'hours_in_solve' (every step weighted equally); for a representative timeset with 'timeset_weights', each timestep is weighted by its declared share of the year, so a biased sample of timesteps still annualises correctly. The same weighting is used for energy reporting and operating-cost accounting, so the energy the model is scaled to serve, reports, and costs all coincide. If 'timeset_weights' do not reflect the true representativeness of your selected timesteps, the scaling factor - and therefore the absolute demand level - shifts accordingly; see the per-node 'f' diagnostic (inflow_scaling_diagnostics.csv). 'scale_in_proprotion' calculates a scaling factor by dividing 'annual_flow' with the sum of time series inflow (after it has been annualized using 'timeline_duration_in_years'). (With a representative timeset, the annual-energy match uses 'timeset_weights' as above.) 'scale_to_annual_and_peak_flow' scales the time series to match the 'annual_flow' target while transforming the time series to match the highest load with the 'peak_inflow'. (With a representative timeset, the annual-energy match uses 'timeset_weights' as above; the peak match stays unweighted.)",
1729
+ "basics"
1730
+ ],
1731
+ [
1732
+ "node",
1733
+ "invest_cost",
1734
+ null,
1735
+ null,
1736
+ "[CUR/kWh] Investment cost for new storage capacity. Constant or period.",
1737
+ "investment"
1738
+ ],
1739
+ [
1740
+ "node",
1741
+ "invest_forced",
1742
+ null,
1743
+ null,
1744
+ "[MWh] Forces the model to invest exactly this amount of new storage capacity, overriding the investment optimisation (equivalent to setting invest_min and invest_max equal). Constant or period.",
1745
+ "investment"
1746
+ ],
1747
+ [
1748
+ "node",
1749
+ "invest_max_period",
1750
+ null,
1751
+ null,
1752
+ "[MWh] Maximum storage investment. Period.",
1753
+ "investment"
1754
+ ],
1755
+ [
1756
+ "node",
1757
+ "invest_max_total",
1758
+ null,
1759
+ null,
1760
+ "[MWh] Maximum investment over all solves. Constant.",
1761
+ "investment"
1762
+ ],
1763
+ [
1764
+ "node",
1765
+ "invest_method",
1766
+ "not_allowed",
1767
+ "invest_methods",
1768
+ "Choice of investment method: either not_allowed or then a combination of 1) investment or retirement and 2) investment limits per period, all periods (total) or no_limits.",
1769
+ "investment"
1770
+ ],
1771
+ [
1772
+ "node",
1773
+ "invest_min_period",
1774
+ null,
1775
+ null,
1776
+ "[MWh] Minimum storage investment. Period.",
1777
+ "investment"
1778
+ ],
1779
+ [
1780
+ "node",
1781
+ "invest_min_total",
1782
+ null,
1783
+ null,
1784
+ "[MWh] Minimum investment over all solves. Constant.",
1785
+ "investment"
1786
+ ],
1787
+ [
1788
+ "node",
1789
+ "lifetime",
1790
+ null,
1791
+ null,
1792
+ "[years] Used to calculate annuity together with interest rate. Constant or period.",
1793
+ "investment"
1794
+ ],
1795
+ [
1796
+ "node",
1797
+ "lifetime_method",
1798
+ "reinvest_automatic",
1799
+ "lifetime_methods",
1800
+ "Choice how the investments behave after unit runs out of lifetime. Automatic reinvestment causes the model to keep the capacity until the end of model horizon and applies the annualized investment cost without further model choice. Choice of reinvestment removes the capacity at the end of the lifetime and the model needs to decide how much new capacity is to be built.",
1801
+ "investment"
1802
+ ],
1803
+ [
1804
+ "node",
1805
+ "node_type",
1806
+ "balance",
1807
+ "node_type",
1808
+ "Role of this node in the LP. 'commodity' = price-exposed source/sink with no balance constraint (e.g. fuel imports, no storage); 'balance' = energy balance maintained every timestep (default); 'storage' = balance plus a state variable (battery, reservoir); 'balance_within_period' = balance aggregated over the whole period (e.g. an annual gas budget).",
1809
+ "basics"
1810
+ ],
1811
+ [
1812
+ "node",
1813
+ "peak_inflow",
1814
+ null,
1815
+ null,
1816
+ "[MWh] Highest flow for scaling the inflow. Used only with inflow_method scale_to_annual_and_peak_flow. Constant or period.",
1817
+ "basics"
1818
+ ],
1819
+ [
1820
+ "node",
1821
+ "penalty_down",
1822
+ 10000.0,
1823
+ null,
1824
+ "[CUR/MWh] Penalty cost for increasing consumption in the node (excess energy). Constant, period, time, period+time, or stochastic time.",
1825
+ "basics"
1826
+ ],
1827
+ [
1828
+ "node",
1829
+ "penalty_method",
1830
+ "regular",
1831
+ "penalty_methods",
1832
+ "Whether this node has balance penalty (unserved-energy / over-supply slack) variables. 'regular' (default) keeps the penalty_up / penalty_down slack variables that let the node balance be violated at a cost. 'off' removes those slack variables entirely, making the node balance a hard equality (the solve becomes infeasible if the node cannot balance). Use 'off' only if certain that it will not make the model infeasible (a real solution exists) - infeasible models can be very difficult to debug. At the same time, 'off' will reduce variables and can direct infeasibilities to other, more desirable, nodes.",
1833
+ "basics"
1834
+ ],
1835
+ [
1836
+ "node",
1837
+ "penalty_up",
1838
+ 10000.0,
1839
+ null,
1840
+ "[CUR/MWh] Penalty cost for decreasing consumption in the node (energy not served). Constant, period, time, period+time, or stochastic time.",
1841
+ "basics"
1842
+ ],
1843
+ [
1844
+ "node",
1845
+ "retire_max_period",
1846
+ null,
1847
+ null,
1848
+ "[MWh] Maximum retired storage capacity. Period.",
1849
+ "retirement"
1850
+ ],
1851
+ [
1852
+ "node",
1853
+ "retire_max_total",
1854
+ null,
1855
+ null,
1856
+ "[MWh] Maximum retired storage capacity over all solves. Constant.",
1857
+ "retirement"
1858
+ ],
1859
+ [
1860
+ "node",
1861
+ "retire_min_period",
1862
+ null,
1863
+ null,
1864
+ "[MWh] Minimum retired storage capacity. Period.",
1865
+ "retirement"
1866
+ ],
1867
+ [
1868
+ "node",
1869
+ "retire_min_total",
1870
+ null,
1871
+ null,
1872
+ "[MWh] Minimum retired storage capacity over all solves. Constant.",
1873
+ "retirement"
1874
+ ],
1875
+ [
1876
+ "node",
1877
+ "salvage_value",
1878
+ null,
1879
+ null,
1880
+ "[CUR/kWh] Salvage value of the storage. Constant or period.",
1881
+ "retirement"
1882
+ ],
1883
+ [
1884
+ "node",
1885
+ "self_discharge_loss",
1886
+ null,
1887
+ null,
1888
+ "[e.g. 0.01 means 1% every hour] Loss of stored energy over time. Constant or time.",
1889
+ "storage"
1890
+ ],
1891
+ [
1892
+ "node",
1893
+ "storage_binding_method",
1894
+ "bind_forward_only",
1895
+ "storage_binding_methods",
1896
+ "Choice how the storage state will be maintained over discontinuous timelines. Seven cycle-scope methods (the state-continuity family): 'bind_within_timeblock' cycles state within each timeblock (cycle closes at block boundaries); 'bind_within_period' cycles within each FlexTool period and chains blocks inside the period; 'bind_within_solve' cycles across the whole solve horizon; 'bind_forward_only' (default) chains state forward across the solve with no end-to-start closure; 'bind_within_solve_blended_weights' is the representative-period variant of bind_within_solve (RP weighting + solve-level cycle closure); 'bind_within_period_blended_weights' is the RP variant of bind_within_period (per-period RP weighting, each period closes independently); 'bind_forward_only_blended_weights' is the RP variant of bind_forward_only (RP weighting, no cycle closure). One additional value, 'bind_intraperiod_blocks', is structurally an aggregation method rather than a cycle-scope method: state is held constant within each block and the block-total flow is balanced at the boundary. Silent-degrade behaviour: any '*_blended_weights' method on a node in a solve whose active timeset has no representative_period_weights is automatically downgraded to the corresponding non-RP variant for that solve, so the same storage entity can drive an RP investment solve and a chronological dispatch solve back-to-back. Separate parameters (e.g. 'storage_state_start') can force additional bindings. By default, storage start state is bound to 0.",
1897
+ "storage"
1898
+ ],
1899
+ [
1900
+ "node",
1901
+ "storage_nested_fix_method",
1902
+ "fix_nothing",
1903
+ "storage_nested_fix_method",
1904
+ "Used in nested solve sequences. Set this storage as a long term storage, which end state is passed to the lower level solves as a target. *Fix_price* requires `storage_state_reference_price`",
1905
+ "storage"
1906
+ ],
1907
+ [
1908
+ "node",
1909
+ "storage_solve_horizon_method",
1910
+ "free",
1911
+ "storage_solve_horizon_methods",
1912
+ "Choice how to treat storage state at the end of time horizon of each solve. 'free' lets the model choose the end state. 'use_reference_value' forces the end state to the specific value set in 'storage_state_reference_value'. 'use_reference_price' gives the storage state a price in the objective function based on the 'storage_state_reference_price'. ",
1913
+ "storage"
1914
+ ],
1915
+ [
1916
+ "node",
1917
+ "storage_start_end_method",
1918
+ "fix_start",
1919
+ "storage_start_end_methods",
1920
+ "Choice whether the start and end states of storage are fixed in the beginning and end of the whole model timeline (not between solves). Uses 'storage_state_start' and 'storage_state_end'. Options: 'fix_nothing', 'fix_start', 'fix_end', 'fix_start_end'. By default, storage start state is bound to 0 to avoid creation of free energy.",
1921
+ "storage"
1922
+ ],
1923
+ [
1924
+ "node",
1925
+ "storage_state_end",
1926
+ null,
1927
+ null,
1928
+ "[0-1] Relative state of storage at the end of the last model solve (overrides 'storage_state_end_reference'). Constant.",
1929
+ "storage"
1930
+ ],
1931
+ [
1932
+ "node",
1933
+ "storage_state_reference_price",
1934
+ null,
1935
+ null,
1936
+ "[CUR/MWh] Price for the stored energy at the end of the solve horizon. Requires 'use_reference_price' in 'storage_solve_horizon_method'. Constant or period.",
1937
+ "storage"
1938
+ ],
1939
+ [
1940
+ "node",
1941
+ "storage_state_reference_value",
1942
+ null,
1943
+ null,
1944
+ "[0-1] Relative state of storage at then end of each solve (can be overwritten in the next solve). Requires 'use_reference_value' in 'storage_solve_horizon_method'. Constant, period, time or period+time.",
1945
+ "storage"
1946
+ ],
1947
+ [
1948
+ "node",
1949
+ "storage_state_start",
1950
+ null,
1951
+ null,
1952
+ "[0-1] Relative state of storage at the beginning of the first model solve (irrespective of when the model starts). Constant.",
1953
+ "storage"
1954
+ ],
1955
+ [
1956
+ "node",
1957
+ "virtual_unitsize",
1958
+ null,
1959
+ null,
1960
+ "[MWh] Size of a single storage unit - used for integer investments (lumped investments). If not given, assumed from the existing storage capacity.",
1961
+ "basics"
1962
+ ],
1963
+ [
1964
+ "node__profile",
1965
+ "profile_method",
1966
+ "none",
1967
+ "profile_methods",
1968
+ "Choice of profile method (upper_limit, lower_limit, fixed). Negative values also possible.\n",
1969
+ "basics"
1970
+ ],
1971
+ [
1972
+ "profile",
1973
+ "profile",
1974
+ null,
1975
+ null,
1976
+ "[factor, typically between 0-1]. Availability time series for a fluctuating resource like wind power. Time or stochastic time.",
1977
+ "basics"
1978
+ ],
1979
+ [
1980
+ "reserve__upDown__connection__node",
1981
+ "increase_reserve_ratio",
1982
+ null,
1983
+ null,
1984
+ "[factor] The reserve requirement is increased by the flow from the connection to the node multiplied by this ratio. Constant.",
1985
+ "reserve"
1986
+ ],
1987
+ [
1988
+ "reserve__upDown__connection__node",
1989
+ "is_enabled",
1990
+ "yes",
1991
+ "yes_no",
1992
+ "Whether the entity is enabled. Set to 'no' to disable without deleting the entity. Constant.",
1993
+ "reserve"
1994
+ ],
1995
+ [
1996
+ "reserve__upDown__connection__node",
1997
+ "large_failure_ratio",
1998
+ null,
1999
+ null,
2000
+ "[factor] Each connection using the N-1 failure method will have a separate constraint to require sufficient reserve to cover a failure of the unit generation (multiplied by this ratio). Constant.",
2001
+ "reserve"
2002
+ ],
2003
+ [
2004
+ "reserve__upDown__connection__node",
2005
+ "max_share",
2006
+ null,
2007
+ null,
2008
+ "[factor] Maximum ratio for the transfer of reserve to this node. Constant.",
2009
+ "reserve"
2010
+ ],
2011
+ [
2012
+ "reserve__upDown__connection__node",
2013
+ "reliability",
2014
+ 1.0,
2015
+ null,
2016
+ "[factor] The share of the reservation that is counted to reserves (sometimes reserve sources are not fully trusted). Constant.",
2017
+ "reserve"
2018
+ ],
2019
+ [
2020
+ "reserve__upDown__group",
2021
+ "increase_reserve_ratio",
2022
+ null,
2023
+ null,
2024
+ "[factor] The reserve is increased by the sum of demands from the group members multiplied by this ratio. Constant.",
2025
+ "reserve"
2026
+ ],
2027
+ [
2028
+ "reserve__upDown__group",
2029
+ "penalty_reserve",
2030
+ null,
2031
+ null,
2032
+ "[CUR/MW] Penalty for violating a reserve constraint. Constant.",
2033
+ "reserve"
2034
+ ],
2035
+ [
2036
+ "reserve__upDown__group",
2037
+ "reservation",
2038
+ null,
2039
+ null,
2040
+ "[MW] Amount of reserve to be reserved. Constant, period, time, period+time or stochastic time.",
2041
+ "reserve"
2042
+ ],
2043
+ [
2044
+ "reserve__upDown__group",
2045
+ "reserve_method",
2046
+ "no_reserve",
2047
+ "reserve_methods",
2048
+ "Choice of reserve method: no_reserve, timeseries_only, dynamic_only, large_failure_only, timeseries_and_dynamic, timeseries_and_large_failure, dynamic_and_large_failure, all",
2049
+ "reserve"
2050
+ ],
2051
+ [
2052
+ "reserve__upDown__unit__node",
2053
+ "increase_reserve_ratio",
2054
+ null,
2055
+ null,
2056
+ "[factor] The reserve requirement is increased by generation from the unit to the node multiplied by this ratio. Constant.",
2057
+ "reserve"
2058
+ ],
2059
+ [
2060
+ "reserve__upDown__unit__node",
2061
+ "is_enabled",
2062
+ "yes",
2063
+ "yes_no",
2064
+ "Whether the entity is enabled. Set to 'no' to disable without deleting the entity. Constant.",
2065
+ "reserve"
2066
+ ],
2067
+ [
2068
+ "reserve__upDown__unit__node",
2069
+ "large_failure_ratio",
2070
+ null,
2071
+ null,
2072
+ "[factor] Each unit using the N-1 failure method will have a separate constraint to require sufficient reserve to cover a failure of the unit generation (multiplied by this ratio). Constant.",
2073
+ "reserve"
2074
+ ],
2075
+ [
2076
+ "reserve__upDown__unit__node",
2077
+ "max_share",
2078
+ null,
2079
+ null,
2080
+ "[factor] Maximum ratio for the transfer of reserve to this node. Constant.",
2081
+ "reserve"
2082
+ ],
2083
+ [
2084
+ "reserve__upDown__unit__node",
2085
+ "reliability",
2086
+ 1.0,
2087
+ null,
2088
+ "[factor] The share of the reservation that is counted to reserves (sometimes reserve sources are not fully trusted). Constant.",
2089
+ "reserve"
2090
+ ],
2091
+ [
2092
+ "solve",
2093
+ "benders_in_out_weight",
2094
+ 0.0,
2095
+ null,
2096
+ "Benders decomposition: in-out separation stabilization weight (lambda) in f_sep = lambda*centre + (1-lambda)*f_out. 0.0 (default) = off (exact Benders); values in (0,1) turn it on, larger = more stabilization. Only used when decomposition = 'benders'. Default 0.0.",
2097
+ "solve_advanced"
2098
+ ],
2099
+ [
2100
+ "solve",
2101
+ "benders_max_iter",
2102
+ 50.0,
2103
+ null,
2104
+ "Benders decomposition: maximum number of outer (master/subproblem) iterations. Only used when decomposition = 'benders'. Default 50.",
2105
+ "solve_advanced"
2106
+ ],
2107
+ [
2108
+ "solve",
2109
+ "benders_tolerance",
2110
+ 0.001,
2111
+ null,
2112
+ "Benders decomposition: relative optimality-gap tolerance (best_UB - LB)/|best_UB| for convergence of the outer loop. Only used when decomposition = 'benders'. Default 0.001.",
2113
+ "solve_advanced"
2114
+ ],
2115
+ [
2116
+ "solve",
2117
+ "contains_solves",
2118
+ null,
2119
+ null,
2120
+ "Array of solves - used for nested solve sequencesArray of solves - used for nested solve sequences",
2121
+ "solve_advanced"
2122
+ ],
2123
+ [
2124
+ "solve",
2125
+ "decomposition",
2126
+ "none",
2127
+ "decomposition_schemes",
2128
+ "Decomposition scheme for this solve. 'none' (default) solves monolithically. 'benders' runs the solve through the Benders region-decomposition driver (a master trade layer coordinating per-region recourse subproblems via appended optimality cuts, producing a valid lower bound) over the groups whose group.decomposition_method is 'benders_regional' (requires at least two such region groups). The choice is per solve, so an investment solve can decompose while a later dispatch solve in the same chain stays monolithic.",
2129
+ "solve_advanced"
2130
+ ],
2131
+ [
2132
+ "solve",
2133
+ "fix_storage_periods",
2134
+ null,
2135
+ null,
2136
+ "Array of periods where the storage_values are fixed when the node has storage_include_solve_fix_method is set",
2137
+ "solve_advanced"
2138
+ ],
2139
+ [
2140
+ "solve",
2141
+ "invest_periods",
2142
+ null,
2143
+ null,
2144
+ "Array of periods where investments are allowed.",
2145
+ "solve_basics"
2146
+ ],
2147
+ [
2148
+ "solve",
2149
+ "new_stepduration",
2150
+ null,
2151
+ null,
2152
+ "Hours. Creates a new `timeline` from the old for this `solve` with this timestep duration. The new timeline will sum or average the other timeseries data like `profile` and `inflow` for the new timesteps.",
2153
+ "timeline"
2154
+ ],
2155
+ [
2156
+ "solve",
2157
+ "period_timeset",
2158
+ null,
2159
+ null,
2160
+ "Map of periods with associated timesets that will be included in the solve. Index: period name, value: timeset name.",
2161
+ "solve_basics"
2162
+ ],
2163
+ [
2164
+ "solve",
2165
+ "realized_invest_periods",
2166
+ null,
2167
+ null,
2168
+ "Array of the periods that will realize the investment decisions. If not used when the invest_periods exist. The realized_periods are used to realize invests as well",
2169
+ "solve_advanced"
2170
+ ],
2171
+ [
2172
+ "solve",
2173
+ "realized_periods",
2174
+ null,
2175
+ null,
2176
+ "Array of periods that will be realized in the solve.",
2177
+ "solve_basics"
2178
+ ],
2179
+ [
2180
+ "solve",
2181
+ "rolling_duration",
2182
+ null,
2183
+ null,
2184
+ "Hours (Optional). Duration of rolling, if not stated, assumed to be the whole timeline of the solve",
2185
+ "solve_advanced"
2186
+ ],
2187
+ [
2188
+ "solve",
2189
+ "rolling_solve_horizon",
2190
+ null,
2191
+ null,
2192
+ "Hours (Required if rolling_window solve). How long into the future the roll sees",
2193
+ "solve_advanced"
2194
+ ],
2195
+ [
2196
+ "solve",
2197
+ "rolling_solve_jump",
2198
+ null,
2199
+ null,
2200
+ "Hours, (Required if rolling_window solve). Interval between the start points of the rolls. Should be smaller than the horizon",
2201
+ "solve_advanced"
2202
+ ],
2203
+ [
2204
+ "solve",
2205
+ "scaling",
2206
+ "full",
2207
+ "scaling_modes",
2208
+ "Numerical LP-autoscaler mode for this solve. 'full' (default) runs Layer 1 (detection) + Layer 2 (per-quantity-type column/row/cost rescaling) + Layer 3 (HiGHS user_*_scale). 'basic' drops Layer 2 (Layer 1 + Layer 3 only); 'solver_only' leaves scaling to the solver; 'off' disables all scaling including HiGHS-internal. Use 'basic' (or lower) for models whose Layer-2 rescaling mis-solves. The run-time --scaling flag / FLEXTOOL_SCALING env override this per-solve value.",
2209
+ "solve_advanced"
2210
+ ],
2211
+ [
2212
+ "solve",
2213
+ "solve_mode",
2214
+ "single_solve",
2215
+ "solve_mode",
2216
+ "A single_solve or rolling_window for a set of rolling optimisation windows solved in a sequence.",
2217
+ "solve_basics"
2218
+ ],
2219
+ [
2220
+ "solve",
2221
+ "solver",
2222
+ "highs",
2223
+ "solvers",
2224
+ "Solver to use for this solve. One of polar-high's available_solvers ('highs', 'gurobi', 'cplex', 'xpress', 'copt'). HiGHS is the bundled default; commercial solvers require a separate install and license.",
2225
+ "solve_advanced"
2226
+ ],
2227
+ [
2228
+ "solve",
2229
+ "solver_arguments",
2230
+ null,
2231
+ null,
2232
+ "Map of HiGHS solver options (option name -> value), layered on top of the floor values in solver_config/highs.opt and below any CLI overrides (e.g. --solver-time-limit). Use this for ad-hoc HiGHS knobs that do not have a dedicated FlexTool parameter (solver_mip_gap, solver_precommand).",
2233
+ "solve_advanced"
2234
+ ],
2235
+ [
2236
+ "solve",
2237
+ "solver_mip_gap",
2238
+ null,
2239
+ null,
2240
+ "Relative MIP optimality gap at which the solver may stop early. Normalised across solvers by polar-high. None = solver default.",
2241
+ "solve_advanced"
2242
+ ],
2243
+ [
2244
+ "solve",
2245
+ "solver_precommand",
2246
+ null,
2247
+ null,
2248
+ "Additional command to execute before calling the solver. Can be used to e.g. reserve a floating license for a commercial solver.",
2249
+ "solve_advanced"
2250
+ ],
2251
+ [
2252
+ "solve",
2253
+ "stochastic_branches",
2254
+ null,
2255
+ null,
2256
+ "[4d-Map], Sets branches included in the solve. [Period, branch, start_time (time_step), realized (yes/no), weight (number)]. Only one of the branches should be realized for each start_time",
2257
+ "solve_advanced"
2258
+ ],
2259
+ [
2260
+ "solve",
2261
+ "timeline_hole_multiplier",
2262
+ 1.0,
2263
+ null,
2264
+ "[unitless] Multiplier applied to the inverse-step-duration term in nodeBalance_eq and storage-binding constraints across timeline gaps (holes). Tunes how strongly state differences are penalised across discontinuities in the timeline. Default 1.0 mirrors the .mod default and matches pre-v44 Python-convention behaviour.",
2265
+ "solve_advanced"
2266
+ ],
2267
+ [
2268
+ "solve",
2269
+ "years_represented",
2270
+ null,
2271
+ null,
2272
+ "Map to indicate how many years the period represents before the next period in the solve. Used for discounting. Can be below one (multiple periods in one year). Index: period, value: years.",
2273
+ "solve_basics"
2274
+ ],
2275
+ [
2276
+ "timeline",
2277
+ "timestep_duration",
2278
+ null,
2279
+ null,
2280
+ "Map of time steps in the timeline. Index: time step name, value: time step duration in hours.",
2281
+ "timeline"
2282
+ ],
2283
+ [
2284
+ "timeset",
2285
+ "representative_period_weights",
2286
+ null,
2287
+ null,
2288
+ "Representative-period weighting map (rank-2 nested Map: base period start timestep -> representative period start timestep -> weight). Created by the representative-periods preprocess tool; declares how much each representative period stands in for each base period. Its presence enables RP-aware storage-binding ('*_blended_weights'); its absence silently downgrades those methods to the non-RP behaviour. Mutually exclusive with 'timeset_weights' on the same timeset.",
2289
+ "solve_advanced"
2290
+ ],
2291
+ [
2292
+ "timeset",
2293
+ "timeline",
2294
+ null,
2295
+ null,
2296
+ "The name of the timeline that the timeset uses. (String)",
2297
+ "timeline"
2298
+ ],
2299
+ [
2300
+ "timeset",
2301
+ "timeset_duration",
2302
+ null,
2303
+ null,
2304
+ "Index: name of the the timestep that starts the timeset, value: duration of the block in timesteps. Defines the *selection*: which timesteps are in the solve and how many (this sets 'hours_in_solve'). Representativeness - each timestep's share of the year - is set separately by 'timeset_weights'.",
2305
+ "timeline"
2306
+ ],
2307
+ [
2308
+ "timeset",
2309
+ "timeset_weights",
2310
+ null,
2311
+ null,
2312
+ "Per-timestep weight map (index: timestep name, value: float) defining *representativeness*: each timestep's share of the year. Drives the annualisation of demand, energy, and cost alike (the inflow scaling, the annual energy outputs, and the operating-cost objective all use this same weight), so the energy the model is scaled to serve, reports, and costs all coincide. Use for non-RP models where timesteps represent unequal fractions of the year (e.g. seasonal yearsplit on a coarse timeslice structure). Weights are normalized per period to sum to 1 and then scaled by the number of active timesteps so that uniform input reproduces the default (weight = 1 per step). Must not be combined with representative_period_weights on the same timeset.",
2313
+ "timeline"
2314
+ ],
2315
+ [
2316
+ "unit",
2317
+ "availability",
2318
+ 1.0,
2319
+ null,
2320
+ "[e.g. 0.9 means 90%] Fraction of capacity available for flows from/to the unit. For online units, the online variable is multiplied by the availability. Constant, period, time, period+time or stochastic time.",
2321
+ "basics"
2322
+ ],
2323
+ [
2324
+ "unit",
2325
+ "constraint_cumulative_pre_built_capacity_coeff",
2326
+ null,
2327
+ null,
2328
+ "A map of coefficients (index: constraint name, value: coefficient) that places the cumulative pre-built capacity at period d — data baseline plus every v_invest made in periods strictly BEFORE d, retirements ignored — on the left side of the user-defined constraint. Enables learning-effect and period-over-period growth limits. Not multiplied by unitsize.",
2329
+ "constraint"
2330
+ ],
2331
+ [
2332
+ "unit",
2333
+ "constraint_invested_capacity_coeff",
2334
+ null,
2335
+ null,
2336
+ "A map of coefficients (index: constraint name, value: coefficient) that places v_invest[e, d] — new-build capacity decided in the current period — on the left side of the user-defined constraint. Not multiplied by unitsize.",
2337
+ "constraint"
2338
+ ],
2339
+ [
2340
+ "unit",
2341
+ "conversion_method",
2342
+ "constant_efficiency",
2343
+ "conversion_methods",
2344
+ "Choice of conversion method.",
2345
+ "basics"
2346
+ ],
2347
+ [
2348
+ "unit",
2349
+ "cumulative_max_capacity",
2350
+ null,
2351
+ null,
2352
+ "[MW] Maximum cumulative capacity (considers existing, invested and retired capacity). Constant or period.",
2353
+ "investment"
2354
+ ],
2355
+ [
2356
+ "unit",
2357
+ "cumulative_min_capacity",
2358
+ null,
2359
+ null,
2360
+ "[MW] Minimum cumulative capacity (considers existing, invested and retired capacity). Constant or period.",
2361
+ "investment"
2362
+ ],
2363
+ [
2364
+ "unit",
2365
+ "delay",
2366
+ null,
2367
+ null,
2368
+ "[hours] A time delay between the input nodes and the output nodes. Either a constant indicating the time difference in hours or a map of time differences (index: time difference in hours, value: weight). Each weight indicates its share of the original flow and the weights should sum to 1. Requires that the time resolutions in the model are always integer multiples of these time differences.",
2369
+ "tech_advanced"
2370
+ ],
2371
+ [
2372
+ "unit",
2373
+ "discount_rate",
2374
+ 0.05,
2375
+ null,
2376
+ "[e.g. 0.05 equals 5%] Discount rate for investments (WACC). Reflects the financing cost and risk premium for this technology. When the model inflation_rate > 0, this should be a nominal rate. When inflation_rate = 0, this should be a real rate. Used to annualize investment costs over the lifetime. Constant or period.",
2377
+ "investment"
2378
+ ],
2379
+ [
2380
+ "unit",
2381
+ "efficiency",
2382
+ 1.0,
2383
+ null,
2384
+ "[factor] Efficiency of a unit. Constant, time or stochastic time.",
2385
+ "basics"
2386
+ ],
2387
+ [
2388
+ "unit",
2389
+ "efficiency_at_min_load",
2390
+ null,
2391
+ null,
2392
+ "[e.g. 0.4 means 40%] Efficiency of the unit at minimum load. Applies only if the unit has an online variable. Constant.",
2393
+ "basics"
2394
+ ],
2395
+ [
2396
+ "unit",
2397
+ "existing",
2398
+ null,
2399
+ null,
2400
+ "[MW] Existing capacity. Constant or period.",
2401
+ "basics"
2402
+ ],
2403
+ [
2404
+ "unit",
2405
+ "fixed_cost",
2406
+ null,
2407
+ null,
2408
+ "[CUR/kW] Annual fixed cost. Constant or period.",
2409
+ "investment"
2410
+ ],
2411
+ [
2412
+ "unit",
2413
+ "invest_cost",
2414
+ null,
2415
+ null,
2416
+ "[CUR/kW] Investment cost of the unit. Constant or period.",
2417
+ "investment"
2418
+ ],
2419
+ [
2420
+ "unit",
2421
+ "invest_max_period",
2422
+ null,
2423
+ null,
2424
+ "[MW] Maximum investment. Period.",
2425
+ "investment"
2426
+ ],
2427
+ [
2428
+ "unit",
2429
+ "invest_max_total",
2430
+ null,
2431
+ null,
2432
+ "[MW] Maximum investment over all solves. Constant.",
2433
+ "investment"
2434
+ ],
2435
+ [
2436
+ "unit",
2437
+ "invest_method",
2438
+ "not_allowed",
2439
+ "invest_methods",
2440
+ "Choice of investment method: not_allowed, invest and retire indicate availability of investment and retirement. no_limit removes all limits even if there are limiting values set. period uses values set in invest/retire_max/min_period. total uses values set in invest/retire_max/min_total.",
2441
+ "investment"
2442
+ ],
2443
+ [
2444
+ "unit",
2445
+ "invest_min_period",
2446
+ null,
2447
+ null,
2448
+ "[MW] Minimum investment. Period.",
2449
+ "investment"
2450
+ ],
2451
+ [
2452
+ "unit",
2453
+ "invest_min_total",
2454
+ null,
2455
+ null,
2456
+ "[MW] Minimum investment over all solves. Constant.",
2457
+ "investment"
2458
+ ],
2459
+ [
2460
+ "unit",
2461
+ "lifetime",
2462
+ null,
2463
+ null,
2464
+ "[years] Used to calculate annuity together with interest rate. Constant or period.",
2465
+ "investment"
2466
+ ],
2467
+ [
2468
+ "unit",
2469
+ "lifetime_method",
2470
+ "reinvest_automatic",
2471
+ "lifetime_methods",
2472
+ "Choice how the investments behave after unit runs out of lifetime. Automatic reinvestment causes the model to keep the capacity until the end of model horizon and applies the annualized investment cost without further model choice. Choice of reinvestment removes the capacity at the end of the lifetime and the model needs to decide how much new capacity is to be built.",
2473
+ "investment"
2474
+ ],
2475
+ [
2476
+ "unit",
2477
+ "min_downtime",
2478
+ null,
2479
+ null,
2480
+ "[hours] Minimum time the unit must stay offline after shutting down. Requires minimum_time_method set to 'min_downtime' or 'both'. Constant.",
2481
+ "tech_advanced"
2482
+ ],
2483
+ [
2484
+ "unit",
2485
+ "min_load",
2486
+ null,
2487
+ null,
2488
+ "[0-1] Minimum load of the unit. Applies only if the unit has an online variable. With linear startups, it is the share of capacity started up. Constant, time or stochastic time.",
2489
+ "basics"
2490
+ ],
2491
+ [
2492
+ "unit",
2493
+ "min_uptime",
2494
+ null,
2495
+ null,
2496
+ "[hours] Minimum time the unit must stay online after starting up. Requires minimum_time_method set to 'min_uptime' or 'both'. Constant.",
2497
+ "tech_advanced"
2498
+ ],
2499
+ [
2500
+ "unit",
2501
+ "minimum_time_method",
2502
+ null,
2503
+ "minimum_time_methods",
2504
+ "Choice between minimum up- and downtimes (none, min_downtime, min_uptime, both). Setting this to anything other than 'none' will activate online variables (at least linear) for the unit. Default: none (no minimum time constraints).",
2505
+ "tech_advanced"
2506
+ ],
2507
+ [
2508
+ "unit",
2509
+ "retire_max_period",
2510
+ null,
2511
+ null,
2512
+ "[MW] Maximum retired capacity. Period.",
2513
+ "retirement"
2514
+ ],
2515
+ [
2516
+ "unit",
2517
+ "retire_max_total",
2518
+ null,
2519
+ null,
2520
+ "[MW] Maximum retired capacity over all solves. Constant.",
2521
+ "retirement"
2522
+ ],
2523
+ [
2524
+ "unit",
2525
+ "retire_min_period",
2526
+ null,
2527
+ null,
2528
+ "[MW] Minimum retired capacity. Period.",
2529
+ "retirement"
2530
+ ],
2531
+ [
2532
+ "unit",
2533
+ "retire_min_total",
2534
+ null,
2535
+ null,
2536
+ "[MW] Minimum retired capacity over all solves. Constant.",
2537
+ "retirement"
2538
+ ],
2539
+ [
2540
+ "unit",
2541
+ "salvage_value",
2542
+ null,
2543
+ null,
2544
+ "[CUR/kW] Salvage value of the unit. Constant or period.",
2545
+ "retirement"
2546
+ ],
2547
+ [
2548
+ "unit",
2549
+ "startup_cost",
2550
+ null,
2551
+ null,
2552
+ "[CUR/MW] Cost of starting up one MW of 'virtual' capacity. Constant.",
2553
+ "tech_advanced"
2554
+ ],
2555
+ [
2556
+ "unit",
2557
+ "startup_method",
2558
+ "no_startup",
2559
+ "startup_methods",
2560
+ "Choice of startup method. Linear startup means that the unit can start partially (anything between 0 and full capacity) but will face startup cost as well as minimum load limit based on the capacity started up. Binary startup means that the unit is either off or fully on, but it is computationally more demanding than linearized startups.",
2561
+ "tech_advanced"
2562
+ ],
2563
+ [
2564
+ "unit",
2565
+ "virtual_unitsize",
2566
+ null,
2567
+ null,
2568
+ "[MW] Size of a single unit - used for integer investments (lumped investments), minimum loads and start-up costs. If not given, assumed from the existing unit capacity.",
2569
+ "basics"
2570
+ ],
2571
+ [
2572
+ "unit__inputNode",
2573
+ "capacity_max_coeff",
2574
+ 1.0,
2575
+ null,
2576
+ "[factor, default 1.0] Fraction of the unit's capacity available to this edge's upper cap (maxToSink / maxFromSource / ramp). For extraction CHP set to 1.0 on each output so each can reach full capacity when the other drops.",
2577
+ "basics"
2578
+ ],
2579
+ [
2580
+ "unit__inputNode",
2581
+ "capacity_min_coeff",
2582
+ 1.0,
2583
+ null,
2584
+ "[factor, default 1.0] Fraction of the unit's capacity imposed as a lower cap on this edge when online (combined multiplicatively with the unit-level min_load). Set to 0 to remove the lower cap on this edge (e.g. heat output of an extraction CHP that may drop to zero in pure-condensing mode).",
2585
+ "basics"
2586
+ ],
2587
+ [
2588
+ "unit__inputNode",
2589
+ "constraint_flow_coeff",
2590
+ null,
2591
+ null,
2592
+ "A map of coefficients (Index: constraint name, value: coefficient) to represent the participation of the flow between unit and node in user-defined constraints. [flow x coefficient] will be on the left side of the equation.",
2593
+ "constraint"
2594
+ ],
2595
+ [
2596
+ "unit__inputNode",
2597
+ "conversion_flow_coeff",
2598
+ 1.0,
2599
+ null,
2600
+ "[factor] Energy-unit conversion factor for this flow in the node balance and conversion_indirect equations. Value of 0 removes the edge from capacity / ramp / min-load constraints entirely (hydro-pass-through pattern).",
2601
+ "basics"
2602
+ ],
2603
+ [
2604
+ "unit__inputNode",
2605
+ "inertia_constant",
2606
+ null,
2607
+ null,
2608
+ "[MWs/MW] Inertia constant for a synchronously connected unit to this node. Constant.",
2609
+ "network"
2610
+ ],
2611
+ [
2612
+ "unit__inputNode",
2613
+ "is_non_synchronous",
2614
+ "no",
2615
+ "yes_no",
2616
+ "Chooses whether the unit is synchronously connected to this node.",
2617
+ "network"
2618
+ ],
2619
+ [
2620
+ "unit__inputNode",
2621
+ "other_operational_cost",
2622
+ null,
2623
+ null,
2624
+ "[CUR/MWh] Other operational variable cost for energy flows. Constant, period, time, period+time or stochastic time.",
2625
+ "basics"
2626
+ ],
2627
+ [
2628
+ "unit__inputNode",
2629
+ "ramp_cost",
2630
+ null,
2631
+ null,
2632
+ "[CUR/MW] Cost of ramping the unit. Constant.",
2633
+ "tech_advanced"
2634
+ ],
2635
+ [
2636
+ "unit__inputNode",
2637
+ "ramp_method",
2638
+ "none",
2639
+ "ramp_methods",
2640
+ "Choice of ramp method. 'ramp_limit' poses a limit on the speed of ramp. 'ramp_cost' poses a cost on ramping the flow (NOT FUNCTIONAL AS OF 19.3.2023).",
2641
+ "tech_advanced"
2642
+ ],
2643
+ [
2644
+ "unit__inputNode",
2645
+ "ramp_speed_down",
2646
+ null,
2647
+ null,
2648
+ "[per unit / minute] Maximum ramp down speed. Constant.",
2649
+ "tech_advanced"
2650
+ ],
2651
+ [
2652
+ "unit__inputNode",
2653
+ "ramp_speed_up",
2654
+ null,
2655
+ null,
2656
+ "[per unit / minute] Maximum ramp up speed. Constant.",
2657
+ "tech_advanced"
2658
+ ],
2659
+ [
2660
+ "unit__node__profile",
2661
+ "profile_method",
2662
+ "upper_limit",
2663
+ "profile_methods",
2664
+ "Choice of profile method (upper_limit, lower_limit, fixed). Negative values also possible.\n",
2665
+ "basics"
2666
+ ],
2667
+ [
2668
+ "unit__outputNode",
2669
+ "capacity_max_coeff",
2670
+ 1.0,
2671
+ null,
2672
+ "[factor, default 1.0] Fraction of the unit's capacity available to this edge's upper cap (maxToSink / maxFromSource / ramp). For extraction CHP set to 1.0 on each output so each can reach full capacity when the other drops.",
2673
+ "basics"
2674
+ ],
2675
+ [
2676
+ "unit__outputNode",
2677
+ "capacity_min_coeff",
2678
+ 1.0,
2679
+ null,
2680
+ "[factor, default 1.0] Fraction of the unit's capacity imposed as a lower cap on this edge when online (combined multiplicatively with the unit-level min_load). Set to 0 to remove the lower cap on this edge (e.g. heat output of an extraction CHP that may drop to zero in pure-condensing mode).",
2681
+ "basics"
2682
+ ],
2683
+ [
2684
+ "unit__outputNode",
2685
+ "constraint_flow_coeff",
2686
+ null,
2687
+ null,
2688
+ "A map of coefficients (Index: constraint name, value: coefficient) to represent the participation of the flow between unit and node in user-defined constraints. [flow x coefficient] will be on the left side of the equation.",
2689
+ "constraint"
2690
+ ],
2691
+ [
2692
+ "unit__outputNode",
2693
+ "conversion_flow_coeff",
2694
+ 1.0,
2695
+ null,
2696
+ "[factor] Energy-unit conversion factor for this flow in the node balance and conversion_indirect equations. Value of 0 removes the edge from capacity / ramp / min-load constraints entirely (hydro-pass-through pattern).",
2697
+ "basics"
2698
+ ],
2699
+ [
2700
+ "unit__outputNode",
2701
+ "inertia_constant",
2702
+ null,
2703
+ null,
2704
+ "[MWs/MW] Inertia constant for a synchronously connected unit to this node. Constant.",
2705
+ "network"
2706
+ ],
2707
+ [
2708
+ "unit__outputNode",
2709
+ "is_non_synchronous",
2710
+ "no",
2711
+ "yes_no",
2712
+ "Chooses whether the unit is synchronously connected to this node.",
2713
+ "network"
2714
+ ],
2715
+ [
2716
+ "unit__outputNode",
2717
+ "other_operational_cost",
2718
+ null,
2719
+ null,
2720
+ "[CUR/MWh] Other operational variable cost for energy flows. Constant, period, time, period+time or stochastic time.",
2721
+ "basics"
2722
+ ],
2723
+ [
2724
+ "unit__outputNode",
2725
+ "ramp_cost",
2726
+ null,
2727
+ null,
2728
+ "[CUR/MW] Cost of ramping the unit. Constant.",
2729
+ "tech_advanced"
2730
+ ],
2731
+ [
2732
+ "unit__outputNode",
2733
+ "ramp_method",
2734
+ "none",
2735
+ "ramp_methods",
2736
+ "Choice of ramp methods.",
2737
+ "tech_advanced"
2738
+ ],
2739
+ [
2740
+ "unit__outputNode",
2741
+ "ramp_speed_down",
2742
+ null,
2743
+ null,
2744
+ "[per unit / minute] Maximum ramp down speed. Constant.",
2745
+ "tech_advanced"
2746
+ ],
2747
+ [
2748
+ "unit__outputNode",
2749
+ "ramp_speed_up",
2750
+ null,
2751
+ null,
2752
+ "[per unit / minute] Maximum ramp up speed. Constant.",
2753
+ "tech_advanced"
2754
+ ]
2755
+ ],
2756
+ "parameter_types": [
2757
+ [
2758
+ "commodity",
2759
+ "co2_content",
2760
+ "float",
2761
+ 0
2762
+ ],
2763
+ [
2764
+ "commodity",
2765
+ "price",
2766
+ "float",
2767
+ 0
2768
+ ],
2769
+ [
2770
+ "commodity",
2771
+ "price",
2772
+ "map",
2773
+ 1
2774
+ ],
2775
+ [
2776
+ "commodity",
2777
+ "price_ladder_annual",
2778
+ "map",
2779
+ 2
2780
+ ],
2781
+ [
2782
+ "commodity",
2783
+ "price_ladder_annual",
2784
+ "map",
2785
+ 3
2786
+ ],
2787
+ [
2788
+ "commodity",
2789
+ "price_ladder_cumulative",
2790
+ "map",
2791
+ 2
2792
+ ],
2793
+ [
2794
+ "commodity",
2795
+ "price_method",
2796
+ "str",
2797
+ 0
2798
+ ],
2799
+ [
2800
+ "commodity",
2801
+ "unitsize",
2802
+ "float",
2803
+ 0
2804
+ ],
2805
+ [
2806
+ "connection",
2807
+ "availability",
2808
+ "float",
2809
+ 0
2810
+ ],
2811
+ [
2812
+ "connection",
2813
+ "availability",
2814
+ "map",
2815
+ 1
2816
+ ],
2817
+ [
2818
+ "connection",
2819
+ "availability",
2820
+ "map",
2821
+ 2
2822
+ ],
2823
+ [
2824
+ "connection",
2825
+ "constraint_cumulative_pre_built_capacity_coeff",
2826
+ "map",
2827
+ 1
2828
+ ],
2829
+ [
2830
+ "connection",
2831
+ "constraint_invested_capacity_coeff",
2832
+ "map",
2833
+ 1
2834
+ ],
2835
+ [
2836
+ "connection",
2837
+ "cumulative_max_capacity",
2838
+ "float",
2839
+ 0
2840
+ ],
2841
+ [
2842
+ "connection",
2843
+ "cumulative_max_capacity",
2844
+ "map",
2845
+ 1
2846
+ ],
2847
+ [
2848
+ "connection",
2849
+ "cumulative_min_capacity",
2850
+ "float",
2851
+ 0
2852
+ ],
2853
+ [
2854
+ "connection",
2855
+ "cumulative_min_capacity",
2856
+ "map",
2857
+ 1
2858
+ ],
2859
+ [
2860
+ "connection",
2861
+ "delay",
2862
+ "float",
2863
+ 0
2864
+ ],
2865
+ [
2866
+ "connection",
2867
+ "delay",
2868
+ "map",
2869
+ 1
2870
+ ],
2871
+ [
2872
+ "connection",
2873
+ "discount_rate",
2874
+ "float",
2875
+ 0
2876
+ ],
2877
+ [
2878
+ "connection",
2879
+ "discount_rate",
2880
+ "map",
2881
+ 1
2882
+ ],
2883
+ [
2884
+ "connection",
2885
+ "efficiency",
2886
+ "float",
2887
+ 0
2888
+ ],
2889
+ [
2890
+ "connection",
2891
+ "efficiency",
2892
+ "map",
2893
+ 1
2894
+ ],
2895
+ [
2896
+ "connection",
2897
+ "existing",
2898
+ "float",
2899
+ 0
2900
+ ],
2901
+ [
2902
+ "connection",
2903
+ "existing",
2904
+ "map",
2905
+ 1
2906
+ ],
2907
+ [
2908
+ "connection",
2909
+ "fixed_cost",
2910
+ "float",
2911
+ 0
2912
+ ],
2913
+ [
2914
+ "connection",
2915
+ "fixed_cost",
2916
+ "map",
2917
+ 1
2918
+ ],
2919
+ [
2920
+ "connection",
2921
+ "invest_cost",
2922
+ "float",
2923
+ 0
2924
+ ],
2925
+ [
2926
+ "connection",
2927
+ "invest_cost",
2928
+ "map",
2929
+ 1
2930
+ ],
2931
+ [
2932
+ "connection",
2933
+ "invest_max_period",
2934
+ "map",
2935
+ 1
2936
+ ],
2937
+ [
2938
+ "connection",
2939
+ "invest_max_total",
2940
+ "float",
2941
+ 0
2942
+ ],
2943
+ [
2944
+ "connection",
2945
+ "invest_method",
2946
+ "str",
2947
+ 0
2948
+ ],
2949
+ [
2950
+ "connection",
2951
+ "invest_min_period",
2952
+ "map",
2953
+ 1
2954
+ ],
2955
+ [
2956
+ "connection",
2957
+ "invest_min_total",
2958
+ "float",
2959
+ 0
2960
+ ],
2961
+ [
2962
+ "connection",
2963
+ "is_DC",
2964
+ "str",
2965
+ 0
2966
+ ],
2967
+ [
2968
+ "connection",
2969
+ "lifetime",
2970
+ "float",
2971
+ 0
2972
+ ],
2973
+ [
2974
+ "connection",
2975
+ "lifetime",
2976
+ "map",
2977
+ 1
2978
+ ],
2979
+ [
2980
+ "connection",
2981
+ "lifetime_method",
2982
+ "str",
2983
+ 0
2984
+ ],
2985
+ [
2986
+ "connection",
2987
+ "other_operational_cost",
2988
+ "float",
2989
+ 0
2990
+ ],
2991
+ [
2992
+ "connection",
2993
+ "other_operational_cost",
2994
+ "map",
2995
+ 1
2996
+ ],
2997
+ [
2998
+ "connection",
2999
+ "other_operational_cost",
3000
+ "map",
3001
+ 2
3002
+ ],
3003
+ [
3004
+ "connection",
3005
+ "reactance",
3006
+ "float",
3007
+ 0
3008
+ ],
3009
+ [
3010
+ "connection",
3011
+ "retire_max_period",
3012
+ "map",
3013
+ 1
3014
+ ],
3015
+ [
3016
+ "connection",
3017
+ "retire_max_total",
3018
+ "float",
3019
+ 0
3020
+ ],
3021
+ [
3022
+ "connection",
3023
+ "retire_min_period",
3024
+ "map",
3025
+ 1
3026
+ ],
3027
+ [
3028
+ "connection",
3029
+ "retire_min_total",
3030
+ "float",
3031
+ 0
3032
+ ],
3033
+ [
3034
+ "connection",
3035
+ "salvage_value",
3036
+ "float",
3037
+ 0
3038
+ ],
3039
+ [
3040
+ "connection",
3041
+ "salvage_value",
3042
+ "map",
3043
+ 1
3044
+ ],
3045
+ [
3046
+ "connection",
3047
+ "startup_cost",
3048
+ "float",
3049
+ 0
3050
+ ],
3051
+ [
3052
+ "connection",
3053
+ "startup_method",
3054
+ "str",
3055
+ 0
3056
+ ],
3057
+ [
3058
+ "connection",
3059
+ "transfer_method",
3060
+ "str",
3061
+ 0
3062
+ ],
3063
+ [
3064
+ "connection",
3065
+ "virtual_unitsize",
3066
+ "float",
3067
+ 0
3068
+ ],
3069
+ [
3070
+ "connection__node",
3071
+ "constraint_flow_coeff",
3072
+ "map",
3073
+ 1
3074
+ ],
3075
+ [
3076
+ "connection__profile",
3077
+ "profile_method",
3078
+ "str",
3079
+ 0
3080
+ ],
3081
+ [
3082
+ "constraint",
3083
+ "constant",
3084
+ "float",
3085
+ 0
3086
+ ],
3087
+ [
3088
+ "constraint",
3089
+ "is_enabled",
3090
+ "str",
3091
+ 0
3092
+ ],
3093
+ [
3094
+ "constraint",
3095
+ "sense",
3096
+ "str",
3097
+ 0
3098
+ ],
3099
+ [
3100
+ "flowGroup",
3101
+ "flow_aggregator",
3102
+ "str",
3103
+ 0
3104
+ ],
3105
+ [
3106
+ "flowGroup",
3107
+ "max_cumulative_flow",
3108
+ "float",
3109
+ 0
3110
+ ],
3111
+ [
3112
+ "flowGroup",
3113
+ "max_cumulative_flow",
3114
+ "map",
3115
+ 1
3116
+ ],
3117
+ [
3118
+ "flowGroup",
3119
+ "max_instant_flow",
3120
+ "float",
3121
+ 0
3122
+ ],
3123
+ [
3124
+ "flowGroup",
3125
+ "max_instant_flow",
3126
+ "map",
3127
+ 1
3128
+ ],
3129
+ [
3130
+ "flowGroup",
3131
+ "max_instant_flow",
3132
+ "map",
3133
+ 2
3134
+ ],
3135
+ [
3136
+ "flowGroup",
3137
+ "min_cumulative_flow",
3138
+ "float",
3139
+ 0
3140
+ ],
3141
+ [
3142
+ "flowGroup",
3143
+ "min_cumulative_flow",
3144
+ "map",
3145
+ 1
3146
+ ],
3147
+ [
3148
+ "flowGroup",
3149
+ "min_instant_flow",
3150
+ "float",
3151
+ 0
3152
+ ],
3153
+ [
3154
+ "flowGroup",
3155
+ "min_instant_flow",
3156
+ "map",
3157
+ 1
3158
+ ],
3159
+ [
3160
+ "flowGroup",
3161
+ "min_instant_flow",
3162
+ "map",
3163
+ 2
3164
+ ],
3165
+ [
3166
+ "group",
3167
+ "base_MVA",
3168
+ "float",
3169
+ 0
3170
+ ],
3171
+ [
3172
+ "group",
3173
+ "candidate_precapacity_to_avoid_big_m",
3174
+ "float",
3175
+ 0
3176
+ ],
3177
+ [
3178
+ "group",
3179
+ "capacity_margin",
3180
+ "float",
3181
+ 0
3182
+ ],
3183
+ [
3184
+ "group",
3185
+ "capacity_margin",
3186
+ "map",
3187
+ 1
3188
+ ],
3189
+ [
3190
+ "group",
3191
+ "co2_max_period",
3192
+ "map",
3193
+ 1
3194
+ ],
3195
+ [
3196
+ "group",
3197
+ "co2_max_total",
3198
+ "float",
3199
+ 0
3200
+ ],
3201
+ [
3202
+ "group",
3203
+ "co2_method",
3204
+ "str",
3205
+ 0
3206
+ ],
3207
+ [
3208
+ "group",
3209
+ "co2_price",
3210
+ "float",
3211
+ 0
3212
+ ],
3213
+ [
3214
+ "group",
3215
+ "co2_price",
3216
+ "map",
3217
+ 1
3218
+ ],
3219
+ [
3220
+ "group",
3221
+ "co2_price",
3222
+ "map",
3223
+ 2
3224
+ ],
3225
+ [
3226
+ "group",
3227
+ "cumulative_max_capacity",
3228
+ "float",
3229
+ 0
3230
+ ],
3231
+ [
3232
+ "group",
3233
+ "cumulative_max_capacity",
3234
+ "map",
3235
+ 1
3236
+ ],
3237
+ [
3238
+ "group",
3239
+ "cumulative_min_capacity",
3240
+ "float",
3241
+ 0
3242
+ ],
3243
+ [
3244
+ "group",
3245
+ "cumulative_min_capacity",
3246
+ "map",
3247
+ 1
3248
+ ],
3249
+ [
3250
+ "group",
3251
+ "decomposition_method",
3252
+ "str",
3253
+ 0
3254
+ ],
3255
+ [
3256
+ "group",
3257
+ "has_inertia",
3258
+ "str",
3259
+ 0
3260
+ ],
3261
+ [
3262
+ "group",
3263
+ "has_non_synchronous",
3264
+ "str",
3265
+ 0
3266
+ ],
3267
+ [
3268
+ "group",
3269
+ "include_stochastics",
3270
+ "str",
3271
+ 0
3272
+ ],
3273
+ [
3274
+ "group",
3275
+ "inertia_limit",
3276
+ "float",
3277
+ 0
3278
+ ],
3279
+ [
3280
+ "group",
3281
+ "inertia_limit",
3282
+ "map",
3283
+ 1
3284
+ ],
3285
+ [
3286
+ "group",
3287
+ "invest_max_period",
3288
+ "map",
3289
+ 1
3290
+ ],
3291
+ [
3292
+ "group",
3293
+ "invest_max_total",
3294
+ "float",
3295
+ 0
3296
+ ],
3297
+ [
3298
+ "group",
3299
+ "invest_method",
3300
+ "str",
3301
+ 0
3302
+ ],
3303
+ [
3304
+ "group",
3305
+ "invest_min_period",
3306
+ "map",
3307
+ 1
3308
+ ],
3309
+ [
3310
+ "group",
3311
+ "invest_min_total",
3312
+ "float",
3313
+ 0
3314
+ ],
3315
+ [
3316
+ "group",
3317
+ "new_stepduration",
3318
+ "float",
3319
+ 0
3320
+ ],
3321
+ [
3322
+ "group",
3323
+ "non_synchronous_limit",
3324
+ "float",
3325
+ 0
3326
+ ],
3327
+ [
3328
+ "group",
3329
+ "non_synchronous_limit",
3330
+ "map",
3331
+ 1
3332
+ ],
3333
+ [
3334
+ "group",
3335
+ "penalty_capacity_margin",
3336
+ "float",
3337
+ 0
3338
+ ],
3339
+ [
3340
+ "group",
3341
+ "penalty_capacity_margin",
3342
+ "map",
3343
+ 1
3344
+ ],
3345
+ [
3346
+ "group",
3347
+ "penalty_inertia",
3348
+ "float",
3349
+ 0
3350
+ ],
3351
+ [
3352
+ "group",
3353
+ "penalty_inertia",
3354
+ "map",
3355
+ 1
3356
+ ],
3357
+ [
3358
+ "group",
3359
+ "penalty_non_synchronous",
3360
+ "float",
3361
+ 0
3362
+ ],
3363
+ [
3364
+ "group",
3365
+ "penalty_non_synchronous",
3366
+ "map",
3367
+ 1
3368
+ ],
3369
+ [
3370
+ "group",
3371
+ "print_dispatch",
3372
+ "str",
3373
+ 0
3374
+ ],
3375
+ [
3376
+ "group",
3377
+ "print_indicators",
3378
+ "str",
3379
+ 0
3380
+ ],
3381
+ [
3382
+ "group",
3383
+ "reference_node",
3384
+ "str",
3385
+ 0
3386
+ ],
3387
+ [
3388
+ "group",
3389
+ "share_loss_of_load",
3390
+ "str",
3391
+ 0
3392
+ ],
3393
+ [
3394
+ "group",
3395
+ "transfer_method",
3396
+ "str",
3397
+ 0
3398
+ ],
3399
+ [
3400
+ "group",
3401
+ "use_for_representative_periods",
3402
+ "str",
3403
+ 0
3404
+ ],
3405
+ [
3406
+ "model",
3407
+ "inflation_offset_investment",
3408
+ "float",
3409
+ 0
3410
+ ],
3411
+ [
3412
+ "model",
3413
+ "inflation_offset_operations",
3414
+ "float",
3415
+ 0
3416
+ ],
3417
+ [
3418
+ "model",
3419
+ "inflation_rate",
3420
+ "float",
3421
+ 0
3422
+ ],
3423
+ [
3424
+ "model",
3425
+ "max_flow_for_unconstrained_variables",
3426
+ "float",
3427
+ 0
3428
+ ],
3429
+ [
3430
+ "model",
3431
+ "output_horizon",
3432
+ "str",
3433
+ 0
3434
+ ],
3435
+ [
3436
+ "model",
3437
+ "periods_available",
3438
+ "array",
3439
+ 1
3440
+ ],
3441
+ [
3442
+ "model",
3443
+ "small_number_threshold",
3444
+ "float",
3445
+ 0
3446
+ ],
3447
+ [
3448
+ "model",
3449
+ "solves",
3450
+ "array",
3451
+ 1
3452
+ ],
3453
+ [
3454
+ "model",
3455
+ "version",
3456
+ "float",
3457
+ 0
3458
+ ],
3459
+ [
3460
+ "node",
3461
+ "annual_flow",
3462
+ "float",
3463
+ 0
3464
+ ],
3465
+ [
3466
+ "node",
3467
+ "annual_flow",
3468
+ "map",
3469
+ 1
3470
+ ],
3471
+ [
3472
+ "node",
3473
+ "availability",
3474
+ "float",
3475
+ 0
3476
+ ],
3477
+ [
3478
+ "node",
3479
+ "availability",
3480
+ "map",
3481
+ 1
3482
+ ],
3483
+ [
3484
+ "node",
3485
+ "availability",
3486
+ "map",
3487
+ 2
3488
+ ],
3489
+ [
3490
+ "node",
3491
+ "availability",
3492
+ "map",
3493
+ 3
3494
+ ],
3495
+ [
3496
+ "node",
3497
+ "constraint_cumulative_pre_built_capacity_coeff",
3498
+ "map",
3499
+ 1
3500
+ ],
3501
+ [
3502
+ "node",
3503
+ "constraint_invested_capacity_coeff",
3504
+ "map",
3505
+ 1
3506
+ ],
3507
+ [
3508
+ "node",
3509
+ "constraint_state_coeff",
3510
+ "map",
3511
+ 1
3512
+ ],
3513
+ [
3514
+ "node",
3515
+ "cumulative_max_capacity",
3516
+ "float",
3517
+ 0
3518
+ ],
3519
+ [
3520
+ "node",
3521
+ "cumulative_max_capacity",
3522
+ "map",
3523
+ 1
3524
+ ],
3525
+ [
3526
+ "node",
3527
+ "cumulative_min_capacity",
3528
+ "float",
3529
+ 0
3530
+ ],
3531
+ [
3532
+ "node",
3533
+ "cumulative_min_capacity",
3534
+ "map",
3535
+ 1
3536
+ ],
3537
+ [
3538
+ "node",
3539
+ "discount_rate",
3540
+ "float",
3541
+ 0
3542
+ ],
3543
+ [
3544
+ "node",
3545
+ "discount_rate",
3546
+ "map",
3547
+ 1
3548
+ ],
3549
+ [
3550
+ "node",
3551
+ "existing",
3552
+ "float",
3553
+ 0
3554
+ ],
3555
+ [
3556
+ "node",
3557
+ "existing",
3558
+ "map",
3559
+ 1
3560
+ ],
3561
+ [
3562
+ "node",
3563
+ "fixed_cost",
3564
+ "float",
3565
+ 0
3566
+ ],
3567
+ [
3568
+ "node",
3569
+ "fixed_cost",
3570
+ "map",
3571
+ 1
3572
+ ],
3573
+ [
3574
+ "node",
3575
+ "inflow",
3576
+ "float",
3577
+ 0
3578
+ ],
3579
+ [
3580
+ "node",
3581
+ "inflow",
3582
+ "map",
3583
+ 1
3584
+ ],
3585
+ [
3586
+ "node",
3587
+ "inflow",
3588
+ "map",
3589
+ 3
3590
+ ],
3591
+ [
3592
+ "node",
3593
+ "inflow_method",
3594
+ "str",
3595
+ 0
3596
+ ],
3597
+ [
3598
+ "node",
3599
+ "invest_cost",
3600
+ "float",
3601
+ 0
3602
+ ],
3603
+ [
3604
+ "node",
3605
+ "invest_cost",
3606
+ "map",
3607
+ 1
3608
+ ],
3609
+ [
3610
+ "node",
3611
+ "invest_forced",
3612
+ "float",
3613
+ 0
3614
+ ],
3615
+ [
3616
+ "node",
3617
+ "invest_forced",
3618
+ "map",
3619
+ 1
3620
+ ],
3621
+ [
3622
+ "node",
3623
+ "invest_max_period",
3624
+ "map",
3625
+ 1
3626
+ ],
3627
+ [
3628
+ "node",
3629
+ "invest_max_total",
3630
+ "float",
3631
+ 0
3632
+ ],
3633
+ [
3634
+ "node",
3635
+ "invest_method",
3636
+ "str",
3637
+ 0
3638
+ ],
3639
+ [
3640
+ "node",
3641
+ "invest_min_period",
3642
+ "map",
3643
+ 1
3644
+ ],
3645
+ [
3646
+ "node",
3647
+ "invest_min_total",
3648
+ "float",
3649
+ 0
3650
+ ],
3651
+ [
3652
+ "node",
3653
+ "lifetime",
3654
+ "float",
3655
+ 0
3656
+ ],
3657
+ [
3658
+ "node",
3659
+ "lifetime",
3660
+ "map",
3661
+ 1
3662
+ ],
3663
+ [
3664
+ "node",
3665
+ "lifetime_method",
3666
+ "str",
3667
+ 0
3668
+ ],
3669
+ [
3670
+ "node",
3671
+ "node_type",
3672
+ "str",
3673
+ 0
3674
+ ],
3675
+ [
3676
+ "node",
3677
+ "peak_inflow",
3678
+ "float",
3679
+ 0
3680
+ ],
3681
+ [
3682
+ "node",
3683
+ "peak_inflow",
3684
+ "map",
3685
+ 1
3686
+ ],
3687
+ [
3688
+ "node",
3689
+ "penalty_down",
3690
+ "float",
3691
+ 0
3692
+ ],
3693
+ [
3694
+ "node",
3695
+ "penalty_down",
3696
+ "map",
3697
+ 1
3698
+ ],
3699
+ [
3700
+ "node",
3701
+ "penalty_down",
3702
+ "map",
3703
+ 2
3704
+ ],
3705
+ [
3706
+ "node",
3707
+ "penalty_down",
3708
+ "map",
3709
+ 3
3710
+ ],
3711
+ [
3712
+ "node",
3713
+ "penalty_up",
3714
+ "float",
3715
+ 0
3716
+ ],
3717
+ [
3718
+ "node",
3719
+ "penalty_up",
3720
+ "map",
3721
+ 1
3722
+ ],
3723
+ [
3724
+ "node",
3725
+ "penalty_up",
3726
+ "map",
3727
+ 2
3728
+ ],
3729
+ [
3730
+ "node",
3731
+ "penalty_up",
3732
+ "map",
3733
+ 3
3734
+ ],
3735
+ [
3736
+ "node",
3737
+ "retire_max_period",
3738
+ "map",
3739
+ 1
3740
+ ],
3741
+ [
3742
+ "node",
3743
+ "retire_max_total",
3744
+ "float",
3745
+ 0
3746
+ ],
3747
+ [
3748
+ "node",
3749
+ "retire_min_period",
3750
+ "map",
3751
+ 1
3752
+ ],
3753
+ [
3754
+ "node",
3755
+ "retire_min_total",
3756
+ "float",
3757
+ 0
3758
+ ],
3759
+ [
3760
+ "node",
3761
+ "salvage_value",
3762
+ "float",
3763
+ 0
3764
+ ],
3765
+ [
3766
+ "node",
3767
+ "salvage_value",
3768
+ "map",
3769
+ 1
3770
+ ],
3771
+ [
3772
+ "node",
3773
+ "self_discharge_loss",
3774
+ "float",
3775
+ 0
3776
+ ],
3777
+ [
3778
+ "node",
3779
+ "self_discharge_loss",
3780
+ "map",
3781
+ 1
3782
+ ],
3783
+ [
3784
+ "node",
3785
+ "storage_binding_method",
3786
+ "str",
3787
+ 0
3788
+ ],
3789
+ [
3790
+ "node",
3791
+ "storage_nested_fix_method",
3792
+ "str",
3793
+ 0
3794
+ ],
3795
+ [
3796
+ "node",
3797
+ "storage_solve_horizon_method",
3798
+ "str",
3799
+ 0
3800
+ ],
3801
+ [
3802
+ "node",
3803
+ "storage_start_end_method",
3804
+ "str",
3805
+ 0
3806
+ ],
3807
+ [
3808
+ "node",
3809
+ "storage_state_end",
3810
+ "float",
3811
+ 0
3812
+ ],
3813
+ [
3814
+ "node",
3815
+ "storage_state_reference_price",
3816
+ "float",
3817
+ 0
3818
+ ],
3819
+ [
3820
+ "node",
3821
+ "storage_state_reference_price",
3822
+ "map",
3823
+ 1
3824
+ ],
3825
+ [
3826
+ "node",
3827
+ "storage_state_reference_value",
3828
+ "float",
3829
+ 0
3830
+ ],
3831
+ [
3832
+ "node",
3833
+ "storage_state_reference_value",
3834
+ "map",
3835
+ 1
3836
+ ],
3837
+ [
3838
+ "node",
3839
+ "storage_state_reference_value",
3840
+ "map",
3841
+ 2
3842
+ ],
3843
+ [
3844
+ "node",
3845
+ "storage_state_start",
3846
+ "float",
3847
+ 0
3848
+ ],
3849
+ [
3850
+ "node",
3851
+ "virtual_unitsize",
3852
+ "float",
3853
+ 0
3854
+ ],
3855
+ [
3856
+ "node__profile",
3857
+ "profile_method",
3858
+ "str",
3859
+ 0
3860
+ ],
3861
+ [
3862
+ "profile",
3863
+ "profile",
3864
+ "map",
3865
+ 1
3866
+ ],
3867
+ [
3868
+ "profile",
3869
+ "profile",
3870
+ "map",
3871
+ 3
3872
+ ],
3873
+ [
3874
+ "reserve__upDown__connection__node",
3875
+ "increase_reserve_ratio",
3876
+ "float",
3877
+ 0
3878
+ ],
3879
+ [
3880
+ "reserve__upDown__connection__node",
3881
+ "is_enabled",
3882
+ "str",
3883
+ 0
3884
+ ],
3885
+ [
3886
+ "reserve__upDown__connection__node",
3887
+ "large_failure_ratio",
3888
+ "float",
3889
+ 0
3890
+ ],
3891
+ [
3892
+ "reserve__upDown__connection__node",
3893
+ "max_share",
3894
+ "float",
3895
+ 0
3896
+ ],
3897
+ [
3898
+ "reserve__upDown__connection__node",
3899
+ "reliability",
3900
+ "float",
3901
+ 0
3902
+ ],
3903
+ [
3904
+ "reserve__upDown__group",
3905
+ "increase_reserve_ratio",
3906
+ "float",
3907
+ 0
3908
+ ],
3909
+ [
3910
+ "reserve__upDown__group",
3911
+ "penalty_reserve",
3912
+ "float",
3913
+ 0
3914
+ ],
3915
+ [
3916
+ "reserve__upDown__group",
3917
+ "reservation",
3918
+ "float",
3919
+ 0
3920
+ ],
3921
+ [
3922
+ "reserve__upDown__group",
3923
+ "reservation",
3924
+ "map",
3925
+ 1
3926
+ ],
3927
+ [
3928
+ "reserve__upDown__group",
3929
+ "reservation",
3930
+ "map",
3931
+ 2
3932
+ ],
3933
+ [
3934
+ "reserve__upDown__group",
3935
+ "reservation",
3936
+ "map",
3937
+ 3
3938
+ ],
3939
+ [
3940
+ "reserve__upDown__group",
3941
+ "reserve_method",
3942
+ "str",
3943
+ 0
3944
+ ],
3945
+ [
3946
+ "reserve__upDown__unit__node",
3947
+ "increase_reserve_ratio",
3948
+ "float",
3949
+ 0
3950
+ ],
3951
+ [
3952
+ "reserve__upDown__unit__node",
3953
+ "is_enabled",
3954
+ "str",
3955
+ 0
3956
+ ],
3957
+ [
3958
+ "reserve__upDown__unit__node",
3959
+ "large_failure_ratio",
3960
+ "float",
3961
+ 0
3962
+ ],
3963
+ [
3964
+ "reserve__upDown__unit__node",
3965
+ "max_share",
3966
+ "float",
3967
+ 0
3968
+ ],
3969
+ [
3970
+ "reserve__upDown__unit__node",
3971
+ "reliability",
3972
+ "float",
3973
+ 0
3974
+ ],
3975
+ [
3976
+ "solve",
3977
+ "benders_in_out_weight",
3978
+ "float",
3979
+ 0
3980
+ ],
3981
+ [
3982
+ "solve",
3983
+ "benders_max_iter",
3984
+ "float",
3985
+ 0
3986
+ ],
3987
+ [
3988
+ "solve",
3989
+ "benders_tolerance",
3990
+ "float",
3991
+ 0
3992
+ ],
3993
+ [
3994
+ "solve",
3995
+ "contains_solves",
3996
+ "array",
3997
+ 1
3998
+ ],
3999
+ [
4000
+ "solve",
4001
+ "contains_solves",
4002
+ "str",
4003
+ 0
4004
+ ],
4005
+ [
4006
+ "solve",
4007
+ "decomposition",
4008
+ "str",
4009
+ 0
4010
+ ],
4011
+ [
4012
+ "solve",
4013
+ "fix_storage_periods",
4014
+ "array",
4015
+ 1
4016
+ ],
4017
+ [
4018
+ "solve",
4019
+ "fix_storage_periods",
4020
+ "map",
4021
+ 2
4022
+ ],
4023
+ [
4024
+ "solve",
4025
+ "invest_periods",
4026
+ "array",
4027
+ 1
4028
+ ],
4029
+ [
4030
+ "solve",
4031
+ "invest_periods",
4032
+ "map",
4033
+ 2
4034
+ ],
4035
+ [
4036
+ "solve",
4037
+ "new_stepduration",
4038
+ "float",
4039
+ 0
4040
+ ],
4041
+ [
4042
+ "solve",
4043
+ "period_timeset",
4044
+ "map",
4045
+ 1
4046
+ ],
4047
+ [
4048
+ "solve",
4049
+ "realized_invest_periods",
4050
+ "array",
4051
+ 1
4052
+ ],
4053
+ [
4054
+ "solve",
4055
+ "realized_invest_periods",
4056
+ "map",
4057
+ 2
4058
+ ],
4059
+ [
4060
+ "solve",
4061
+ "realized_periods",
4062
+ "array",
4063
+ 1
4064
+ ],
4065
+ [
4066
+ "solve",
4067
+ "realized_periods",
4068
+ "map",
4069
+ 2
4070
+ ],
4071
+ [
4072
+ "solve",
4073
+ "rolling_duration",
4074
+ "float",
4075
+ 0
4076
+ ],
4077
+ [
4078
+ "solve",
4079
+ "rolling_solve_horizon",
4080
+ "float",
4081
+ 0
4082
+ ],
4083
+ [
4084
+ "solve",
4085
+ "rolling_solve_jump",
4086
+ "float",
4087
+ 0
4088
+ ],
4089
+ [
4090
+ "solve",
4091
+ "solve_mode",
4092
+ "str",
4093
+ 0
4094
+ ],
4095
+ [
4096
+ "solve",
4097
+ "solver",
4098
+ "str",
4099
+ 0
4100
+ ],
4101
+ [
4102
+ "solve",
4103
+ "solver_arguments",
4104
+ "map",
4105
+ 1
4106
+ ],
4107
+ [
4108
+ "solve",
4109
+ "solver_mip_gap",
4110
+ "float",
4111
+ 0
4112
+ ],
4113
+ [
4114
+ "solve",
4115
+ "solver_precommand",
4116
+ "str",
4117
+ 0
4118
+ ],
4119
+ [
4120
+ "solve",
4121
+ "stochastic_branches",
4122
+ "map",
4123
+ 4
4124
+ ],
4125
+ [
4126
+ "solve",
4127
+ "timeline_hole_multiplier",
4128
+ "float",
4129
+ 0
4130
+ ],
4131
+ [
4132
+ "solve",
4133
+ "years_represented",
4134
+ "map",
4135
+ 1
4136
+ ],
4137
+ [
4138
+ "timeline",
4139
+ "timestep_duration",
4140
+ "map",
4141
+ 1
4142
+ ],
4143
+ [
4144
+ "timeset",
4145
+ "representative_period_weights",
4146
+ "map",
4147
+ 2
4148
+ ],
4149
+ [
4150
+ "timeset",
4151
+ "timeline",
4152
+ "str",
4153
+ 0
4154
+ ],
4155
+ [
4156
+ "timeset",
4157
+ "timeset_duration",
4158
+ "map",
4159
+ 1
4160
+ ],
4161
+ [
4162
+ "timeset",
4163
+ "timeset_weights",
4164
+ "map",
4165
+ 1
4166
+ ],
4167
+ [
4168
+ "unit",
4169
+ "availability",
4170
+ "float",
4171
+ 0
4172
+ ],
4173
+ [
4174
+ "unit",
4175
+ "availability",
4176
+ "map",
4177
+ 1
4178
+ ],
4179
+ [
4180
+ "unit",
4181
+ "availability",
4182
+ "map",
4183
+ 2
4184
+ ],
4185
+ [
4186
+ "unit",
4187
+ "availability",
4188
+ "map",
4189
+ 3
4190
+ ],
4191
+ [
4192
+ "unit",
4193
+ "constraint_cumulative_pre_built_capacity_coeff",
4194
+ "map",
4195
+ 1
4196
+ ],
4197
+ [
4198
+ "unit",
4199
+ "constraint_invested_capacity_coeff",
4200
+ "map",
4201
+ 1
4202
+ ],
4203
+ [
4204
+ "unit",
4205
+ "conversion_method",
4206
+ "str",
4207
+ 0
4208
+ ],
4209
+ [
4210
+ "unit",
4211
+ "cumulative_max_capacity",
4212
+ "float",
4213
+ 0
4214
+ ],
4215
+ [
4216
+ "unit",
4217
+ "cumulative_max_capacity",
4218
+ "map",
4219
+ 1
4220
+ ],
4221
+ [
4222
+ "unit",
4223
+ "cumulative_min_capacity",
4224
+ "float",
4225
+ 0
4226
+ ],
4227
+ [
4228
+ "unit",
4229
+ "cumulative_min_capacity",
4230
+ "map",
4231
+ 1
4232
+ ],
4233
+ [
4234
+ "unit",
4235
+ "delay",
4236
+ "float",
4237
+ 0
4238
+ ],
4239
+ [
4240
+ "unit",
4241
+ "delay",
4242
+ "map",
4243
+ 1
4244
+ ],
4245
+ [
4246
+ "unit",
4247
+ "discount_rate",
4248
+ "float",
4249
+ 0
4250
+ ],
4251
+ [
4252
+ "unit",
4253
+ "discount_rate",
4254
+ "map",
4255
+ 1
4256
+ ],
4257
+ [
4258
+ "unit",
4259
+ "efficiency",
4260
+ "float",
4261
+ 0
4262
+ ],
4263
+ [
4264
+ "unit",
4265
+ "efficiency",
4266
+ "map",
4267
+ 1
4268
+ ],
4269
+ [
4270
+ "unit",
4271
+ "efficiency",
4272
+ "map",
4273
+ 3
4274
+ ],
4275
+ [
4276
+ "unit",
4277
+ "efficiency_at_min_load",
4278
+ "float",
4279
+ 0
4280
+ ],
4281
+ [
4282
+ "unit",
4283
+ "existing",
4284
+ "float",
4285
+ 0
4286
+ ],
4287
+ [
4288
+ "unit",
4289
+ "existing",
4290
+ "map",
4291
+ 1
4292
+ ],
4293
+ [
4294
+ "unit",
4295
+ "fixed_cost",
4296
+ "float",
4297
+ 0
4298
+ ],
4299
+ [
4300
+ "unit",
4301
+ "fixed_cost",
4302
+ "map",
4303
+ 1
4304
+ ],
4305
+ [
4306
+ "unit",
4307
+ "invest_cost",
4308
+ "float",
4309
+ 0
4310
+ ],
4311
+ [
4312
+ "unit",
4313
+ "invest_cost",
4314
+ "map",
4315
+ 1
4316
+ ],
4317
+ [
4318
+ "unit",
4319
+ "invest_max_period",
4320
+ "map",
4321
+ 1
4322
+ ],
4323
+ [
4324
+ "unit",
4325
+ "invest_max_total",
4326
+ "float",
4327
+ 0
4328
+ ],
4329
+ [
4330
+ "unit",
4331
+ "invest_method",
4332
+ "str",
4333
+ 0
4334
+ ],
4335
+ [
4336
+ "unit",
4337
+ "invest_min_period",
4338
+ "map",
4339
+ 1
4340
+ ],
4341
+ [
4342
+ "unit",
4343
+ "invest_min_total",
4344
+ "float",
4345
+ 0
4346
+ ],
4347
+ [
4348
+ "unit",
4349
+ "lifetime",
4350
+ "float",
4351
+ 0
4352
+ ],
4353
+ [
4354
+ "unit",
4355
+ "lifetime",
4356
+ "map",
4357
+ 1
4358
+ ],
4359
+ [
4360
+ "unit",
4361
+ "lifetime_method",
4362
+ "str",
4363
+ 0
4364
+ ],
4365
+ [
4366
+ "unit",
4367
+ "min_downtime",
4368
+ "float",
4369
+ 0
4370
+ ],
4371
+ [
4372
+ "unit",
4373
+ "min_load",
4374
+ "float",
4375
+ 0
4376
+ ],
4377
+ [
4378
+ "unit",
4379
+ "min_load",
4380
+ "map",
4381
+ 1
4382
+ ],
4383
+ [
4384
+ "unit",
4385
+ "min_load",
4386
+ "map",
4387
+ 3
4388
+ ],
4389
+ [
4390
+ "unit",
4391
+ "min_uptime",
4392
+ "float",
4393
+ 0
4394
+ ],
4395
+ [
4396
+ "unit",
4397
+ "minimum_time_method",
4398
+ "str",
4399
+ 0
4400
+ ],
4401
+ [
4402
+ "unit",
4403
+ "retire_max_period",
4404
+ "map",
4405
+ 1
4406
+ ],
4407
+ [
4408
+ "unit",
4409
+ "retire_max_total",
4410
+ "float",
4411
+ 0
4412
+ ],
4413
+ [
4414
+ "unit",
4415
+ "retire_min_period",
4416
+ "map",
4417
+ 1
4418
+ ],
4419
+ [
4420
+ "unit",
4421
+ "retire_min_total",
4422
+ "float",
4423
+ 0
4424
+ ],
4425
+ [
4426
+ "unit",
4427
+ "salvage_value",
4428
+ "float",
4429
+ 0
4430
+ ],
4431
+ [
4432
+ "unit",
4433
+ "salvage_value",
4434
+ "map",
4435
+ 1
4436
+ ],
4437
+ [
4438
+ "unit",
4439
+ "startup_cost",
4440
+ "float",
4441
+ 0
4442
+ ],
4443
+ [
4444
+ "unit",
4445
+ "startup_method",
4446
+ "str",
4447
+ 0
4448
+ ],
4449
+ [
4450
+ "unit",
4451
+ "virtual_unitsize",
4452
+ "float",
4453
+ 0
4454
+ ],
4455
+ [
4456
+ "unit__inputNode",
4457
+ "capacity_max_coeff",
4458
+ "float",
4459
+ 0
4460
+ ],
4461
+ [
4462
+ "unit__inputNode",
4463
+ "capacity_min_coeff",
4464
+ "float",
4465
+ 0
4466
+ ],
4467
+ [
4468
+ "unit__inputNode",
4469
+ "constraint_flow_coeff",
4470
+ "map",
4471
+ 1
4472
+ ],
4473
+ [
4474
+ "unit__inputNode",
4475
+ "conversion_flow_coeff",
4476
+ "float",
4477
+ 0
4478
+ ],
4479
+ [
4480
+ "unit__inputNode",
4481
+ "inertia_constant",
4482
+ "float",
4483
+ 0
4484
+ ],
4485
+ [
4486
+ "unit__inputNode",
4487
+ "is_non_synchronous",
4488
+ "str",
4489
+ 0
4490
+ ],
4491
+ [
4492
+ "unit__inputNode",
4493
+ "other_operational_cost",
4494
+ "float",
4495
+ 0
4496
+ ],
4497
+ [
4498
+ "unit__inputNode",
4499
+ "other_operational_cost",
4500
+ "map",
4501
+ 1
4502
+ ],
4503
+ [
4504
+ "unit__inputNode",
4505
+ "other_operational_cost",
4506
+ "map",
4507
+ 2
4508
+ ],
4509
+ [
4510
+ "unit__inputNode",
4511
+ "other_operational_cost",
4512
+ "map",
4513
+ 3
4514
+ ],
4515
+ [
4516
+ "unit__inputNode",
4517
+ "ramp_cost",
4518
+ "float",
4519
+ 0
4520
+ ],
4521
+ [
4522
+ "unit__inputNode",
4523
+ "ramp_method",
4524
+ "str",
4525
+ 0
4526
+ ],
4527
+ [
4528
+ "unit__inputNode",
4529
+ "ramp_speed_down",
4530
+ "float",
4531
+ 0
4532
+ ],
4533
+ [
4534
+ "unit__inputNode",
4535
+ "ramp_speed_up",
4536
+ "float",
4537
+ 0
4538
+ ],
4539
+ [
4540
+ "unit__node__profile",
4541
+ "profile_method",
4542
+ "str",
4543
+ 0
4544
+ ],
4545
+ [
4546
+ "unit__outputNode",
4547
+ "capacity_max_coeff",
4548
+ "float",
4549
+ 0
4550
+ ],
4551
+ [
4552
+ "unit__outputNode",
4553
+ "capacity_min_coeff",
4554
+ "float",
4555
+ 0
4556
+ ],
4557
+ [
4558
+ "unit__outputNode",
4559
+ "constraint_flow_coeff",
4560
+ "map",
4561
+ 1
4562
+ ],
4563
+ [
4564
+ "unit__outputNode",
4565
+ "conversion_flow_coeff",
4566
+ "float",
4567
+ 0
4568
+ ],
4569
+ [
4570
+ "unit__outputNode",
4571
+ "inertia_constant",
4572
+ "float",
4573
+ 0
4574
+ ],
4575
+ [
4576
+ "unit__outputNode",
4577
+ "is_non_synchronous",
4578
+ "str",
4579
+ 0
4580
+ ],
4581
+ [
4582
+ "unit__outputNode",
4583
+ "other_operational_cost",
4584
+ "float",
4585
+ 0
4586
+ ],
4587
+ [
4588
+ "unit__outputNode",
4589
+ "other_operational_cost",
4590
+ "map",
4591
+ 1
4592
+ ],
4593
+ [
4594
+ "unit__outputNode",
4595
+ "other_operational_cost",
4596
+ "map",
4597
+ 2
4598
+ ],
4599
+ [
4600
+ "unit__outputNode",
4601
+ "other_operational_cost",
4602
+ "map",
4603
+ 3
4604
+ ],
4605
+ [
4606
+ "unit__outputNode",
4607
+ "ramp_cost",
4608
+ "float",
4609
+ 0
4610
+ ],
4611
+ [
4612
+ "unit__outputNode",
4613
+ "ramp_method",
4614
+ "str",
4615
+ 0
4616
+ ],
4617
+ [
4618
+ "unit__outputNode",
4619
+ "ramp_speed_down",
4620
+ "float",
4621
+ 0
4622
+ ],
4623
+ [
4624
+ "unit__outputNode",
4625
+ "ramp_speed_up",
4626
+ "float",
4627
+ 0
4628
+ ]
4629
+ ],
4630
+ "alternatives": [
4631
+ [
4632
+ "base",
4633
+ "Base alternative"
4634
+ ]
4635
+ ]
4636
+ }