From ee0a0556adde63abeb008af5438de51d5c5bef07 Mon Sep 17 00:00:00 2001 From: "Huang, JiangYi" Date: Thu, 14 Nov 2024 15:45:37 +0100 Subject: [PATCH 1/6] Update spineopt_template.json fix typo --- templates/spineopt_template.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/spineopt_template.json b/templates/spineopt_template.json index 949d7664ab..3fbf6756de 100644 --- a/templates/spineopt_template.json +++ b/templates/spineopt_template.json @@ -12,7 +12,7 @@ ["stochastic_scenario", "A scenario for stochastic optimisation in SpineOpt.", 280743389491710], ["stochastic_structure", "A group of stochastic scenarios that represent a structure.", 281470681806146], ["temporal_block", "A length of time with a particular resolution.", 280376891207703], - ["unit", "A conversion of one/many comodities between nodes.", 281470681805429], + ["unit", "A conversion of one/many commodities between nodes.", 281470681805429], ["user_constraint", "A generic data-driven custom constraint.", 281473533931636] ], "relationship_classes": [ @@ -158,7 +158,7 @@ ["connection", "connection_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], ["connection", "connection_investment_econ_lifetime", null, null, "Determines the minimum economical investment lifetime of a connection."], ["connection", "connection_investment_tech_lifetime", null, null, "Determines the maximum technical lifetime of a connection. Once invested, it remains in service for this long"], - ["connection", "connection_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `connection_lifetime` constraint sense."], + ["connection", "connection_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `connection_lifetime` constraint sense."], ["connection", "connection_investment_variable_type", "connection_investment_variable_type_integer", "connection_investment_variable_type_list", "Determines whether the investment variable is integer `variable_type_integer` or continuous `variable_type_continuous`"], ["connection", "connection_monitored", false, "boolean_value_list", "A boolean flag for defining a contingency `connection`."], ["connection", "connection_reactance", null, null, "The per unit reactance of a `connection`."], @@ -268,7 +268,7 @@ ["node", "upward_reserve", false, null, "Identifier for `node`s providing upward reserves"], ["output", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], ["output", "output_resolution", null, null, "Temporal resolution of the output variables associated with this `output`."], - ["output", "output_type",null,"output_type_list","Type of this `output`."], + ["output", "output_type",null,"output_type_list","Type of this `output`."], ["report", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], ["report", "output_db_url", null, null, "Database url for SpineOpt output."], ["settings", "version", 15, null, "Current version of the SpineOpt data structure. Modify it at your own risk (but please don't)."], From b41b0854ab2cf9f733ab1e116b39ffc8efde4013 Mon Sep 17 00:00:00 2001 From: "Huang, JiangYi" Date: Thu, 14 Nov 2024 15:49:23 +0100 Subject: [PATCH 2/6] Update spineopt_template.json fix indentation --- templates/spineopt_template.json | 336 +++++++++++++++---------------- 1 file changed, 168 insertions(+), 168 deletions(-) diff --git a/templates/spineopt_template.json b/templates/spineopt_template.json index 3fbf6756de..22dcfe1ed8 100644 --- a/templates/spineopt_template.json +++ b/templates/spineopt_template.json @@ -638,174 +638,174 @@ ["output","constraint_non_spinning_reserves_shut_down_upper_bound",null] ], "object_parameter_values": [ - ["output","constraint_compression_ratio","output_type","constraint_dual","Base"], - ["output","constraint_connection_flow_capacity","output_type","constraint_dual","Base"], - ["output","constraint_connection_flow_gas_capacity","output_type","constraint_dual","Base"], - ["output","constraint_connection_flow_lodf","output_type","constraint_dual","Base"], - ["output","constraint_connection_intact_flow_ptdf","output_type","constraint_dual","Base"], - ["output","constraint_connection_lifetime","output_type","constraint_dual","Base"], - ["output","constraint_connection_unitary_gas_flow","output_type","constraint_dual","Base"], - ["output","constraint_connections_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_connections_invested_transition","output_type","constraint_dual","Base"], - ["output","constraint_cyclic_node_state","output_type","constraint_dual","Base"], - ["output","constraint_fix_node_pressure_point","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_equal_investments","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_maximum_capacity_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_maximum_entities_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_minimum_capacity_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_minimum_entities_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_max_node_pressure","output_type","constraint_dual","Base"], - ["output","constraint_max_node_voltage_angle","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], - ["output","constraint_max_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], - ["output","constraint_min_capacity_margin","output_type","constraint_dual","Base"], - ["output","constraint_min_down_time","output_type","constraint_dual","Base"], - ["output","constraint_min_node_pressure","output_type","constraint_dual","Base"], - ["output","constraint_min_node_voltage_angle","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_scheduled_outage_duration","output_type","constraint_dual","Base"], - ["output","constraint_min_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], - ["output","constraint_min_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], - ["output","constraint_min_up_time","output_type","constraint_dual","Base"], - ["output","constraint_minimum_operating_point","output_type","constraint_dual","Base"], - ["output","constraint_nodal_balance","output_type","constraint_dual","Base"], - ["output","constraint_node_injection","output_type","constraint_dual","Base"], - ["output","constraint_node_state_capacity","output_type","constraint_dual","Base"], - ["output","constraint_node_voltage_angle","output_type","constraint_dual","Base"], - ["output","constraint_non_spinning_reserves_lower_bound","output_type","constraint_dual","Base"], - ["output","constraint_non_spinning_reserves_shut_down_upper_bound","output_type","constraint_dual","Base"], - ["output","constraint_non_spinning_reserves_start_up_upper_bound","output_type","constraint_dual","Base"], - ["output","constraint_operating_point_bounds","output_type","constraint_dual","Base"], - ["output","constraint_operating_point_rank","output_type","constraint_dual","Base"], - ["output","constraint_ramp_down","output_type","constraint_dual","Base"], - ["output","constraint_ramp_up","output_type","constraint_dual","Base"], - ["output","constraint_storage_lifetime","output_type","constraint_dual","Base"], - ["output","constraint_storage_line_pack","output_type","constraint_dual","Base"], - ["output","constraint_storages_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_storages_invested_transition","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_capacity","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_op_bounds","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_op_rank","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_op_sum","output_type","constraint_dual","Base"], - ["output","constraint_unit_lifetime","output_type","constraint_dual","Base"], - ["output","constraint_unit_state_transition","output_type","constraint_dual","Base"], - ["output","constraint_units_available","output_type","constraint_dual","Base"], - ["output","constraint_units_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_units_invested_transition","output_type","constraint_dual","Base"], - ["output","constraint_units_out_of_service_contiguity","output_type","constraint_dual","Base"], - ["output","constraint_units_out_of_service_transition","output_type","constraint_dual","Base"], - ["output","constraint_user_constraint","output_type","constraint_dual","Base"], - ["output","connection_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], - ["output","connection_discounted_duration","output_type","derived_parameter","Base"], - ["output","connection_salvage_fraction","output_type","derived_parameter","Base"], - ["output","connection_tech_discount_factor","output_type","derived_parameter","Base"], - ["output","storage_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], - ["output","storage_discounted_duration","output_type","derived_parameter","Base"], - ["output","storage_salvage_fraction","output_type","derived_parameter","Base"], - ["output","storage_tech_discount_factor","output_type","derived_parameter","Base"], - ["output","unit_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], - ["output","unit_discounted_duration","output_type","derived_parameter","Base"], - ["output","unit_salvage_fraction","output_type","derived_parameter","Base"], - ["output","unit_tech_discount_factor","output_type","derived_parameter","Base"], - ["output","connection_flow_costs","output_type","objective","Base"], - ["output","connection_investment_costs","output_type","objective","Base"], - ["output","fixed_om_costs","output_type","objective","Base"], - ["output","fuel_costs","output_type","objective","Base"], - ["output","mga_objective","output_type","objective","Base"], - ["output","objective_penalties","output_type","objective","Base"], - ["output","renewable_curtailment_costs","output_type","objective","Base"], - ["output","res_proc_costs","output_type","objective","Base"], - ["output","shut_down_costs","output_type","objective","Base"], - ["output","start_up_costs","output_type","objective","Base"], - ["output","storage_investment_costs","output_type","objective","Base"], - ["output","taxes","output_type","objective","Base"], - ["output","total_costs","output_type","objective","Base"], - ["output","unit_investment_costs","output_type","objective","Base"], - ["output","units_on_costs","output_type","objective","Base"], - ["output","variable_om_costs","output_type","objective","Base"], - ["output","connection_avg_intact_throughflow","output_type","postprocess_value","Base"], - ["output","connection_avg_throughflow","output_type","postprocess_value","Base"], - ["output","contingency_is_binding","output_type","postprocess_value","Base"], - ["output","relative_optimality_gap","output_type","solving_info","Base"], - ["output","binary_gas_connection_flow","output_type","variable","Base"], - ["output","connection_flow","output_type","variable","Base"], - ["output","connection_intact_flow","output_type","variable","Base"], - ["output","connections_decommissioned","output_type","variable","Base"], - ["output","connections_invested","output_type","variable","Base"], - ["output","connections_invested_available","output_type","variable","Base"], - ["output","mp_objective_lowerbound","output_type","variable","Base"], - ["output","node_injection","output_type","variable","Base"], - ["output","node_pressure","output_type","variable","Base"], - ["output","node_slack_neg","output_type","variable","Base"], - ["output","node_slack_pos","output_type","variable","Base"], - ["output","node_state","output_type","variable","Base"], - ["output","node_voltage_angle","output_type","variable","Base"], - ["output","nonspin_ramp_down_unit_flow","output_type","variable","Base"], - ["output","nonspin_ramp_up_unit_flow","output_type","variable","Base"], - ["output","nonspin_units_shut_down","output_type","variable","Base"], - ["output","nonspin_units_started_up","output_type","variable","Base"], - ["output","ramp_down_unit_flow","output_type","variable","Base"], - ["output","ramp_up_unit_flow","output_type","variable","Base"], - ["output","shut_down_unit_flow","output_type","variable","Base"], - ["output","start_up_unit_flow","output_type","variable","Base"], - ["output","storages_decommissioned","output_type","variable","Base"], - ["output","storages_invested","output_type","variable","Base"], - ["output","storages_invested_available","output_type","variable","Base"], - ["output","unit_flow","output_type","variable","Base"], - ["output","unit_flow_op","output_type","variable","Base"], - ["output","unit_flow_op_active","output_type","variable","Base"], - ["output","units_invested","output_type","variable","Base"], - ["output","units_invested_available","output_type","variable","Base"], - ["output","units_mothballed","output_type","variable","Base"], - ["output","units_on","output_type","variable","Base"], - ["output","units_shut_down","output_type","variable","Base"], - ["output","units_started_up","output_type","variable","Base"], - ["output","bound_binary_gas_connection_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_connection_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_connection_intact_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_connections_decommissioned","output_type","variable_reduced_cost","Base"], - ["output","bound_connections_invested","output_type","variable_reduced_cost","Base"], - ["output","bound_connections_invested_available","output_type","variable_reduced_cost","Base"], - ["output","bound_min_capacity_margin_slack","output_type","variable_reduced_cost","Base"], - ["output","bound_node_injection","output_type","variable_reduced_cost","Base"], - ["output","bound_node_pressure","output_type","variable_reduced_cost","Base"], - ["output","bound_node_slack_neg","output_type","variable_reduced_cost","Base"], - ["output","bound_node_slack_pos","output_type","variable_reduced_cost","Base"], - ["output","bound_node_state","output_type","variable_reduced_cost","Base"], - ["output","bound_node_voltage_angle","output_type","variable_reduced_cost","Base"], - ["output","bound_nonspin_units_shut_down","output_type","variable_reduced_cost","Base"], - ["output","bound_nonspin_units_started_up","output_type","variable_reduced_cost","Base"], - ["output","bound_storages_decommissioned","output_type","variable_reduced_cost","Base"], - ["output","bound_storages_invested","output_type","variable_reduced_cost","Base"], - ["output","bound_storages_invested_available","output_type","variable_reduced_cost","Base"], - ["output","bound_unit_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_unit_flow_op","output_type","variable_reduced_cost","Base"], - ["output","bound_unit_flow_op_active","output_type","variable_reduced_cost","Base"], - ["output","bound_units_invested","output_type","variable_reduced_cost","Base"], - ["output","bound_units_invested_available","output_type","variable_reduced_cost","Base"], - ["output","bound_units_mothballed","output_type","variable_reduced_cost","Base"], - ["output","bound_units_on","output_type","variable_reduced_cost","Base"], - ["output","bound_units_out_of_service","output_type","variable_reduced_cost","Base"], - ["output","bound_units_returned_to_service","output_type","variable_reduced_cost","Base"], - ["output","bound_units_shut_down","output_type","variable_reduced_cost","Base"], - ["output","bound_units_started_up","output_type","variable_reduced_cost","Base"], - ["output","bound_units_taken_out_of_service","output_type","variable_reduced_cost","Base"], - ["output","bound_user_constraint_slack_neg","output_type","variable_reduced_cost","Base"], - ["output","bound_user_constraint_slack_pos","output_type","variable_reduced_cost","Base"] + ["output","constraint_compression_ratio","output_type","constraint_dual","Base"], + ["output","constraint_connection_flow_capacity","output_type","constraint_dual","Base"], + ["output","constraint_connection_flow_gas_capacity","output_type","constraint_dual","Base"], + ["output","constraint_connection_flow_lodf","output_type","constraint_dual","Base"], + ["output","constraint_connection_intact_flow_ptdf","output_type","constraint_dual","Base"], + ["output","constraint_connection_lifetime","output_type","constraint_dual","Base"], + ["output","constraint_connection_unitary_gas_flow","output_type","constraint_dual","Base"], + ["output","constraint_connections_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_connections_invested_transition","output_type","constraint_dual","Base"], + ["output","constraint_cyclic_node_state","output_type","constraint_dual","Base"], + ["output","constraint_fix_node_pressure_point","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_equal_investments","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_maximum_capacity_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_maximum_entities_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_minimum_capacity_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_minimum_entities_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_max_node_pressure","output_type","constraint_dual","Base"], + ["output","constraint_max_node_voltage_angle","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], + ["output","constraint_max_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], + ["output","constraint_min_capacity_margin","output_type","constraint_dual","Base"], + ["output","constraint_min_down_time","output_type","constraint_dual","Base"], + ["output","constraint_min_node_pressure","output_type","constraint_dual","Base"], + ["output","constraint_min_node_voltage_angle","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_scheduled_outage_duration","output_type","constraint_dual","Base"], + ["output","constraint_min_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], + ["output","constraint_min_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], + ["output","constraint_min_up_time","output_type","constraint_dual","Base"], + ["output","constraint_minimum_operating_point","output_type","constraint_dual","Base"], + ["output","constraint_nodal_balance","output_type","constraint_dual","Base"], + ["output","constraint_node_injection","output_type","constraint_dual","Base"], + ["output","constraint_node_state_capacity","output_type","constraint_dual","Base"], + ["output","constraint_node_voltage_angle","output_type","constraint_dual","Base"], + ["output","constraint_non_spinning_reserves_lower_bound","output_type","constraint_dual","Base"], + ["output","constraint_non_spinning_reserves_shut_down_upper_bound","output_type","constraint_dual","Base"], + ["output","constraint_non_spinning_reserves_start_up_upper_bound","output_type","constraint_dual","Base"], + ["output","constraint_operating_point_bounds","output_type","constraint_dual","Base"], + ["output","constraint_operating_point_rank","output_type","constraint_dual","Base"], + ["output","constraint_ramp_down","output_type","constraint_dual","Base"], + ["output","constraint_ramp_up","output_type","constraint_dual","Base"], + ["output","constraint_storage_lifetime","output_type","constraint_dual","Base"], + ["output","constraint_storage_line_pack","output_type","constraint_dual","Base"], + ["output","constraint_storages_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_storages_invested_transition","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_capacity","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_op_bounds","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_op_rank","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_op_sum","output_type","constraint_dual","Base"], + ["output","constraint_unit_lifetime","output_type","constraint_dual","Base"], + ["output","constraint_unit_state_transition","output_type","constraint_dual","Base"], + ["output","constraint_units_available","output_type","constraint_dual","Base"], + ["output","constraint_units_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_units_invested_transition","output_type","constraint_dual","Base"], + ["output","constraint_units_out_of_service_contiguity","output_type","constraint_dual","Base"], + ["output","constraint_units_out_of_service_transition","output_type","constraint_dual","Base"], + ["output","constraint_user_constraint","output_type","constraint_dual","Base"], + ["output","connection_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], + ["output","connection_discounted_duration","output_type","derived_parameter","Base"], + ["output","connection_salvage_fraction","output_type","derived_parameter","Base"], + ["output","connection_tech_discount_factor","output_type","derived_parameter","Base"], + ["output","storage_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], + ["output","storage_discounted_duration","output_type","derived_parameter","Base"], + ["output","storage_salvage_fraction","output_type","derived_parameter","Base"], + ["output","storage_tech_discount_factor","output_type","derived_parameter","Base"], + ["output","unit_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], + ["output","unit_discounted_duration","output_type","derived_parameter","Base"], + ["output","unit_salvage_fraction","output_type","derived_parameter","Base"], + ["output","unit_tech_discount_factor","output_type","derived_parameter","Base"], + ["output","connection_flow_costs","output_type","objective","Base"], + ["output","connection_investment_costs","output_type","objective","Base"], + ["output","fixed_om_costs","output_type","objective","Base"], + ["output","fuel_costs","output_type","objective","Base"], + ["output","mga_objective","output_type","objective","Base"], + ["output","objective_penalties","output_type","objective","Base"], + ["output","renewable_curtailment_costs","output_type","objective","Base"], + ["output","res_proc_costs","output_type","objective","Base"], + ["output","shut_down_costs","output_type","objective","Base"], + ["output","start_up_costs","output_type","objective","Base"], + ["output","storage_investment_costs","output_type","objective","Base"], + ["output","taxes","output_type","objective","Base"], + ["output","total_costs","output_type","objective","Base"], + ["output","unit_investment_costs","output_type","objective","Base"], + ["output","units_on_costs","output_type","objective","Base"], + ["output","variable_om_costs","output_type","objective","Base"], + ["output","connection_avg_intact_throughflow","output_type","postprocess_value","Base"], + ["output","connection_avg_throughflow","output_type","postprocess_value","Base"], + ["output","contingency_is_binding","output_type","postprocess_value","Base"], + ["output","relative_optimality_gap","output_type","solving_info","Base"], + ["output","binary_gas_connection_flow","output_type","variable","Base"], + ["output","connection_flow","output_type","variable","Base"], + ["output","connection_intact_flow","output_type","variable","Base"], + ["output","connections_decommissioned","output_type","variable","Base"], + ["output","connections_invested","output_type","variable","Base"], + ["output","connections_invested_available","output_type","variable","Base"], + ["output","mp_objective_lowerbound","output_type","variable","Base"], + ["output","node_injection","output_type","variable","Base"], + ["output","node_pressure","output_type","variable","Base"], + ["output","node_slack_neg","output_type","variable","Base"], + ["output","node_slack_pos","output_type","variable","Base"], + ["output","node_state","output_type","variable","Base"], + ["output","node_voltage_angle","output_type","variable","Base"], + ["output","nonspin_ramp_down_unit_flow","output_type","variable","Base"], + ["output","nonspin_ramp_up_unit_flow","output_type","variable","Base"], + ["output","nonspin_units_shut_down","output_type","variable","Base"], + ["output","nonspin_units_started_up","output_type","variable","Base"], + ["output","ramp_down_unit_flow","output_type","variable","Base"], + ["output","ramp_up_unit_flow","output_type","variable","Base"], + ["output","shut_down_unit_flow","output_type","variable","Base"], + ["output","start_up_unit_flow","output_type","variable","Base"], + ["output","storages_decommissioned","output_type","variable","Base"], + ["output","storages_invested","output_type","variable","Base"], + ["output","storages_invested_available","output_type","variable","Base"], + ["output","unit_flow","output_type","variable","Base"], + ["output","unit_flow_op","output_type","variable","Base"], + ["output","unit_flow_op_active","output_type","variable","Base"], + ["output","units_invested","output_type","variable","Base"], + ["output","units_invested_available","output_type","variable","Base"], + ["output","units_mothballed","output_type","variable","Base"], + ["output","units_on","output_type","variable","Base"], + ["output","units_shut_down","output_type","variable","Base"], + ["output","units_started_up","output_type","variable","Base"], + ["output","bound_binary_gas_connection_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_connection_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_connection_intact_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_connections_decommissioned","output_type","variable_reduced_cost","Base"], + ["output","bound_connections_invested","output_type","variable_reduced_cost","Base"], + ["output","bound_connections_invested_available","output_type","variable_reduced_cost","Base"], + ["output","bound_min_capacity_margin_slack","output_type","variable_reduced_cost","Base"], + ["output","bound_node_injection","output_type","variable_reduced_cost","Base"], + ["output","bound_node_pressure","output_type","variable_reduced_cost","Base"], + ["output","bound_node_slack_neg","output_type","variable_reduced_cost","Base"], + ["output","bound_node_slack_pos","output_type","variable_reduced_cost","Base"], + ["output","bound_node_state","output_type","variable_reduced_cost","Base"], + ["output","bound_node_voltage_angle","output_type","variable_reduced_cost","Base"], + ["output","bound_nonspin_units_shut_down","output_type","variable_reduced_cost","Base"], + ["output","bound_nonspin_units_started_up","output_type","variable_reduced_cost","Base"], + ["output","bound_storages_decommissioned","output_type","variable_reduced_cost","Base"], + ["output","bound_storages_invested","output_type","variable_reduced_cost","Base"], + ["output","bound_storages_invested_available","output_type","variable_reduced_cost","Base"], + ["output","bound_unit_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_unit_flow_op","output_type","variable_reduced_cost","Base"], + ["output","bound_unit_flow_op_active","output_type","variable_reduced_cost","Base"], + ["output","bound_units_invested","output_type","variable_reduced_cost","Base"], + ["output","bound_units_invested_available","output_type","variable_reduced_cost","Base"], + ["output","bound_units_mothballed","output_type","variable_reduced_cost","Base"], + ["output","bound_units_on","output_type","variable_reduced_cost","Base"], + ["output","bound_units_out_of_service","output_type","variable_reduced_cost","Base"], + ["output","bound_units_returned_to_service","output_type","variable_reduced_cost","Base"], + ["output","bound_units_shut_down","output_type","variable_reduced_cost","Base"], + ["output","bound_units_started_up","output_type","variable_reduced_cost","Base"], + ["output","bound_units_taken_out_of_service","output_type","variable_reduced_cost","Base"], + ["output","bound_user_constraint_slack_neg","output_type","variable_reduced_cost","Base"], + ["output","bound_user_constraint_slack_pos","output_type","variable_reduced_cost","Base"] ], "tools": [ ["object_activity_control", ""] From cc139860f58c5f35bc5b9dca1e8eeb4970552735 Mon Sep 17 00:00:00 2001 From: nnhjy Date: Thu, 14 Nov 2024 17:54:59 +0100 Subject: [PATCH 3/6] fix indentation --- templates/spineopt_template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/spineopt_template.json b/templates/spineopt_template.json index 22dcfe1ed8..b57a65773a 100644 --- a/templates/spineopt_template.json +++ b/templates/spineopt_template.json @@ -268,7 +268,7 @@ ["node", "upward_reserve", false, null, "Identifier for `node`s providing upward reserves"], ["output", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], ["output", "output_resolution", null, null, "Temporal resolution of the output variables associated with this `output`."], - ["output", "output_type",null,"output_type_list","Type of this `output`."], + ["output", "output_type",null,"output_type_list","Type of this `output`."], ["report", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], ["report", "output_db_url", null, null, "Database url for SpineOpt output."], ["settings", "version", 15, null, "Current version of the SpineOpt data structure. Modify it at your own risk (but please don't)."], From 1a063de4e8100d1977017ec13a83632a754f88f0 Mon Sep 17 00:00:00 2001 From: nnhjy Date: Thu, 14 Nov 2024 18:02:15 +0100 Subject: [PATCH 4/6] fix indentation --- templates/spineopt_template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/spineopt_template.json b/templates/spineopt_template.json index b57a65773a..be848636ce 100644 --- a/templates/spineopt_template.json +++ b/templates/spineopt_template.json @@ -268,7 +268,7 @@ ["node", "upward_reserve", false, null, "Identifier for `node`s providing upward reserves"], ["output", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], ["output", "output_resolution", null, null, "Temporal resolution of the output variables associated with this `output`."], - ["output", "output_type",null,"output_type_list","Type of this `output`."], + ["output", "output_type",null,"output_type_list","Type of this `output`."], ["report", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], ["report", "output_db_url", null, null, "Database url for SpineOpt output."], ["settings", "version", 15, null, "Current version of the SpineOpt data structure. Modify it at your own risk (but please don't)."], From a6019598b747106c768ce87643d111d80dba6ff7 Mon Sep 17 00:00:00 2001 From: "Huang, JiangYi" Date: Thu, 14 Nov 2024 18:13:07 +0100 Subject: [PATCH 5/6] Update spineopt_template.json align indentation --- templates/spineopt_template.json | 1562 +++++++++++++++--------------- 1 file changed, 781 insertions(+), 781 deletions(-) diff --git a/templates/spineopt_template.json b/templates/spineopt_template.json index be848636ce..91302ef1ed 100644 --- a/templates/spineopt_template.json +++ b/templates/spineopt_template.json @@ -16,799 +16,799 @@ ["user_constraint", "A generic data-driven custom constraint.", 281473533931636] ], "relationship_classes": [ - ["connection__from_node", ["connection", "node"], "A flow on a `connection` from a `node`.", 280378317271897], - ["connection__from_node__investment_group", ["connection", "node", "investment_group"], "A flow on a `connection` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], - ["connection__from_node__user_constraint", ["connection", "node", "user_constraint"], "A flow on a `connection` from a `node` constrained by a `user_constraint`."], - ["connection__investment_group", ["connection", "investment_group"], "A `connection` that belongs in an `investment_group`."], - ["connection__investment_stochastic_structure", ["connection", "stochastic_structure"], "The `stochastic_structure` of a `connection` investment."], - ["connection__investment_temporal_block", ["connection", "temporal_block"], "The `temporal_block` of a `connection` investment."], - ["connection__node__node", ["connection", "node", "node"], "A `connection` acting over two `node`s."], - ["connection__to_node", ["connection", "node"], "A flow on a `connection` to a `node` .", 280378317271898], - ["connection__to_node__investment_group", ["connection", "node", "investment_group"], "A flow on a `connection` to a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], - ["connection__to_node__user_constraint", ["connection", "node", "user_constraint"], "A flow on a `connection` to a `node` constrained by a `user_constraint"], - ["connection__user_constraint", ["connection", "user_constraint"], "A `connection` investment constrained by a `user_constraint`."], - ["model__default_investment_stochastic_structure", ["model", "stochastic_structure"], "The default `stochastic_structure` of all investments in the `model`."], - ["model__default_investment_temporal_block", ["model", "temporal_block"], "The default `temporal_block` of all investments in the `model`."], - ["model__default_stochastic_structure", ["model", "stochastic_structure"], "The default `stochastic_structure` of the `model."], - ["model__default_temporal_block", ["model", "temporal_block"], "The default `temporal_block` of the `model`."], - ["model__report", ["model", "report"], "A `report` that should be written for the `model`."], - ["node__commodity", ["node", "commodity"], "A `commodity` for a `node`. Only a single `commodity` is permitted per `node`."], - ["node__investment_group", ["node", "investment_group"], "A `node` that belongs in an `investment_group`."], - ["node__investment_stochastic_structure", ["node", "stochastic_structure"], "The `stochastic_structure` of a `node` storage investment."], - ["node__investment_temporal_block", ["node", "temporal_block"], "The `temporal_block` of a `node` storage investment."], - ["node__node", ["node", "node"], "An interaction between two `node`s."], - ["node__stochastic_structure", ["node", "stochastic_structure"], "The `stochastic_structure` of a `node`. Only one `stochastic_structure` is permitted per `node`."], - ["node__temporal_block", ["node", "temporal_block"], "The `temporal_block` of a `node` and the corresponding `flow` variables."], - ["node__user_constraint", ["node", "user_constraint"], "A `node` state constrained by a `user_constraint`, or a `node` demand included in a `user_constraint`."], - ["parent_stochastic_scenario__child_stochastic_scenario", ["stochastic_scenario", "stochastic_scenario"], "A parent-child relationship between two `stochastic_scenario`s defining the master stochastic direct acyclic graph."], - ["report__output", ["report", "output"], "An `output` that should be included in a `report`."], - ["stage__child_stage", ["stage", "stage"], "A parent-child relationship between two `stage`s (EXPERIMENTAL)."], - ["stage__output__connection", ["stage", "output", "connection"], "An `output` that should be fixed by a `stage` for a `connection` in all its children (EXPERIMENTAL)."], - ["stage__output__node", ["stage", "output", "node"], "An `output` that should be fixed by a `stage` for a `node` in all its children (EXPERIMENTAL)."], - ["stage__output__unit", ["stage", "output", "unit"], "An `output` that should be fixed by a `stage` for a `unit` in all its children (EXPERIMENTAL)."], - ["stochastic_structure__stochastic_scenario", ["stochastic_structure", "stochastic_scenario"], "A `stochastic_scenarios` that belongs in a `stochastic_structure`."], - ["unit__commodity", ["unit", "commodity"], "Holds parameters for `commodities` used by the `unit`."], - ["unit__from_node", ["unit", "node"], "A flow on a `unit` from a `node`.", 281470681805657], - ["unit__from_node__investment_group", ["unit", "node", "investment_group"], "A flow on a `unit` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], - ["unit__from_node__user_constraint", ["unit", "node", "user_constraint"], "A flow on a `unit` from a `node` constrained by a `user_constraint`."], - ["unit__investment_group", ["unit", "investment_group"], "A `unit` that belongs in an `investment_group`."], - ["unit__investment_stochastic_structure", ["unit", "stochastic_structure"], "The `stochastic_structure` of a `unit` investment."], - ["unit__investment_temporal_block", ["unit", "temporal_block"], "The `temporal_block` of a `unit` investment."], - ["unit__node__node", ["unit", "node", "node"], "A `unit` acting over two `node`s."], - ["unit__to_node", ["unit", "node"], "A flow on a `unit` to a `node`.", 281470681805658], - ["unit__to_node__investment_group", ["unit", "node", "investment_group"], "A flow on a `unit` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], - ["unit__to_node__user_constraint", ["unit", "node", "user_constraint"], "A flow on a `unit` to a `node` constrained by a `user_constraint`."], - ["unit__user_constraint", ["unit", "user_constraint"], "A `unit` commitment constrained by a `user_constraint`."], - ["units_on__stochastic_structure", ["unit", "stochastic_structure"], "The `stochastic_structure` of a `unit` commitment. Only one `stochastic_structure` is permitted per `unit`."], - ["units_on__temporal_block", ["unit", "temporal_block"], "The `temporal_block` of a `unit` commitment."] + ["connection__from_node", ["connection", "node"], "A flow on a `connection` from a `node`.", 280378317271897], + ["connection__from_node__investment_group", ["connection", "node", "investment_group"], "A flow on a `connection` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], + ["connection__from_node__user_constraint", ["connection", "node", "user_constraint"], "A flow on a `connection` from a `node` constrained by a `user_constraint`."], + ["connection__investment_group", ["connection", "investment_group"], "A `connection` that belongs in an `investment_group`."], + ["connection__investment_stochastic_structure", ["connection", "stochastic_structure"], "The `stochastic_structure` of a `connection` investment."], + ["connection__investment_temporal_block", ["connection", "temporal_block"], "The `temporal_block` of a `connection` investment."], + ["connection__node__node", ["connection", "node", "node"], "A `connection` acting over two `node`s."], + ["connection__to_node", ["connection", "node"], "A flow on a `connection` to a `node` .", 280378317271898], + ["connection__to_node__investment_group", ["connection", "node", "investment_group"], "A flow on a `connection` to a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], + ["connection__to_node__user_constraint", ["connection", "node", "user_constraint"], "A flow on a `connection` to a `node` constrained by a `user_constraint"], + ["connection__user_constraint", ["connection", "user_constraint"], "A `connection` investment constrained by a `user_constraint`."], + ["model__default_investment_stochastic_structure", ["model", "stochastic_structure"], "The default `stochastic_structure` of all investments in the `model`."], + ["model__default_investment_temporal_block", ["model", "temporal_block"], "The default `temporal_block` of all investments in the `model`."], + ["model__default_stochastic_structure", ["model", "stochastic_structure"], "The default `stochastic_structure` of the `model."], + ["model__default_temporal_block", ["model", "temporal_block"], "The default `temporal_block` of the `model`."], + ["model__report", ["model", "report"], "A `report` that should be written for the `model`."], + ["node__commodity", ["node", "commodity"], "A `commodity` for a `node`. Only a single `commodity` is permitted per `node`."], + ["node__investment_group", ["node", "investment_group"], "A `node` that belongs in an `investment_group`."], + ["node__investment_stochastic_structure", ["node", "stochastic_structure"], "The `stochastic_structure` of a `node` storage investment."], + ["node__investment_temporal_block", ["node", "temporal_block"], "The `temporal_block` of a `node` storage investment."], + ["node__node", ["node", "node"], "An interaction between two `node`s."], + ["node__stochastic_structure", ["node", "stochastic_structure"], "The `stochastic_structure` of a `node`. Only one `stochastic_structure` is permitted per `node`."], + ["node__temporal_block", ["node", "temporal_block"], "The `temporal_block` of a `node` and the corresponding `flow` variables."], + ["node__user_constraint", ["node", "user_constraint"], "A `node` state constrained by a `user_constraint`, or a `node` demand included in a `user_constraint`."], + ["parent_stochastic_scenario__child_stochastic_scenario", ["stochastic_scenario", "stochastic_scenario"], "A parent-child relationship between two `stochastic_scenario`s defining the master stochastic direct acyclic graph."], + ["report__output", ["report", "output"], "An `output` that should be included in a `report`."], + ["stage__child_stage", ["stage", "stage"], "A parent-child relationship between two `stage`s (EXPERIMENTAL)."], + ["stage__output__connection", ["stage", "output", "connection"], "An `output` that should be fixed by a `stage` for a `connection` in all its children (EXPERIMENTAL)."], + ["stage__output__node", ["stage", "output", "node"], "An `output` that should be fixed by a `stage` for a `node` in all its children (EXPERIMENTAL)."], + ["stage__output__unit", ["stage", "output", "unit"], "An `output` that should be fixed by a `stage` for a `unit` in all its children (EXPERIMENTAL)."], + ["stochastic_structure__stochastic_scenario", ["stochastic_structure", "stochastic_scenario"], "A `stochastic_scenarios` that belongs in a `stochastic_structure`."], + ["unit__commodity", ["unit", "commodity"], "Holds parameters for `commodities` used by the `unit`."], + ["unit__from_node", ["unit", "node"], "A flow on a `unit` from a `node`.", 281470681805657], + ["unit__from_node__investment_group", ["unit", "node", "investment_group"], "A flow on a `unit` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], + ["unit__from_node__user_constraint", ["unit", "node", "user_constraint"], "A flow on a `unit` from a `node` constrained by a `user_constraint`."], + ["unit__investment_group", ["unit", "investment_group"], "A `unit` that belongs in an `investment_group`."], + ["unit__investment_stochastic_structure", ["unit", "stochastic_structure"], "The `stochastic_structure` of a `unit` investment."], + ["unit__investment_temporal_block", ["unit", "temporal_block"], "The `temporal_block` of a `unit` investment."], + ["unit__node__node", ["unit", "node", "node"], "A `unit` acting over two `node`s."], + ["unit__to_node", ["unit", "node"], "A flow on a `unit` to a `node`.", 281470681805658], + ["unit__to_node__investment_group", ["unit", "node", "investment_group"], "A flow on a `unit` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], + ["unit__to_node__user_constraint", ["unit", "node", "user_constraint"], "A flow on a `unit` to a `node` constrained by a `user_constraint`."], + ["unit__user_constraint", ["unit", "user_constraint"], "A `unit` commitment constrained by a `user_constraint`."], + ["units_on__stochastic_structure", ["unit", "stochastic_structure"], "The `stochastic_structure` of a `unit` commitment. Only one `stochastic_structure` is permitted per `unit`."], + ["units_on__temporal_block", ["unit", "temporal_block"], "The `temporal_block` of a `unit` commitment."] ], "parameter_value_lists": [ - ["balance_type_list", "balance_type_group"], - ["balance_type_list", "balance_type_node"], - ["balance_type_list", "balance_type_none"], - ["boolean_value_list", false], - ["boolean_value_list", true], - ["commodity_physics_list", "commodity_physics_lodf"], - ["commodity_physics_list", "commodity_physics_none"], - ["commodity_physics_list", "commodity_physics_ptdf"], - ["connection_investment_variable_type_list", "connection_investment_variable_type_continuous"], - ["connection_investment_variable_type_list", "connection_investment_variable_type_integer"], - ["connection_type_list", "connection_type_lossless_bidirectional"], - ["connection_type_list", "connection_type_normal"], - ["constraint_sense_list", "<="], - ["constraint_sense_list", "=="], - ["constraint_sense_list", ">="], - ["db_lp_solver_list", "CDCS.jl"], - ["db_lp_solver_list", "CDDLib.jl"], - ["db_lp_solver_list", "Clp.jl"], - ["db_lp_solver_list", "COSMO.jl"], - ["db_lp_solver_list", "CPLEX.jl"], - ["db_lp_solver_list", "CSDP.jl"], - ["db_lp_solver_list", "ECOS.jl"], - ["db_lp_solver_list", "GLPK.jl"], - ["db_lp_solver_list", "Gurobi.jl"], - ["db_lp_solver_list", "HiGHS.jl"], - ["db_lp_solver_list", "Hypatia.jl"], - ["db_lp_solver_list", "Ipopt.jl"], - ["db_lp_solver_list", "KNITRO.jl"], - ["db_lp_solver_list", "MadNLP.jl"], - ["db_lp_solver_list", "MosekTools.jl"], - ["db_lp_solver_list", "NLopt.jl"], - ["db_lp_solver_list", "OSQP.jl"], - ["db_lp_solver_list", "ProxSDP.jl"], - ["db_lp_solver_list", "SCIP.jl"], - ["db_lp_solver_list", "SCS.jl"], - ["db_lp_solver_list", "SDPA.jl"], - ["db_lp_solver_list", "SDPNAL.jl"], - ["db_lp_solver_list", "SDPT3.jl"], - ["db_lp_solver_list", "SeDuMi.jl"], - ["db_lp_solver_list", "Xpress.jl"], - ["db_mip_solver_list", "Cbc.jl"], - ["db_mip_solver_list", "CPLEX.jl"], - ["db_mip_solver_list", "GLPK.jl"], - ["db_mip_solver_list", "Gurobi.jl"], - ["db_mip_solver_list", "HiGHS.jl"], - ["db_mip_solver_list", "Juniper.jl"], - ["db_mip_solver_list", "KNITRO.jl"], - ["db_mip_solver_list", "MosekTools.jl"], - ["db_mip_solver_list", "SCIP.jl"], - ["db_mip_solver_list", "Xpress.jl"], - ["duration_unit_list", "hour"], - ["duration_unit_list", "minute"], - ["model_algorithm_list", "basic_algorithm"], - ["model_algorithm_list", "mga_algorithm"], - ["model_type_list", "spineopt_benders"], - ["model_type_list", "spineopt_other"], - ["model_type_list", "spineopt_standard"], - ["node_opf_type_list", "node_opf_type_normal"], - ["node_opf_type_list", "node_opf_type_reference"], - ["output_type_list","constraint_dual"], - ["output_type_list","derived_parameter"], - ["output_type_list","objective"], - ["output_type_list","postprocess_value"], - ["output_type_list","variable"], - ["output_type_list","variable_reduced_cost"], - ["output_type_list","solving_info"], - ["storage_investment_variable_type_list", "storage_investment_variable_type_continuous"], - ["storage_investment_variable_type_list", "storage_investment_variable_type_integer"], - ["unit_investment_variable_type_list", "unit_investment_variable_type_continuous"], - ["unit_investment_variable_type_list", "unit_investment_variable_type_integer"], - ["unit_online_variable_type_list", "unit_online_variable_type_binary"], - ["unit_online_variable_type_list", "unit_online_variable_type_integer"], - ["unit_online_variable_type_list", "unit_online_variable_type_linear"], - ["unit_online_variable_type_list", "unit_online_variable_type_none"], - ["write_mps_file_list", "write_mps_always"], - ["write_mps_file_list", "write_mps_never"], - ["write_mps_file_list", "write_mps_on_no_solve"] + ["balance_type_list", "balance_type_group"], + ["balance_type_list", "balance_type_node"], + ["balance_type_list", "balance_type_none"], + ["boolean_value_list", false], + ["boolean_value_list", true], + ["commodity_physics_list", "commodity_physics_lodf"], + ["commodity_physics_list", "commodity_physics_none"], + ["commodity_physics_list", "commodity_physics_ptdf"], + ["connection_investment_variable_type_list", "connection_investment_variable_type_continuous"], + ["connection_investment_variable_type_list", "connection_investment_variable_type_integer"], + ["connection_type_list", "connection_type_lossless_bidirectional"], + ["connection_type_list", "connection_type_normal"], + ["constraint_sense_list", "<="], + ["constraint_sense_list", "=="], + ["constraint_sense_list", ">="], + ["db_lp_solver_list", "CDCS.jl"], + ["db_lp_solver_list", "CDDLib.jl"], + ["db_lp_solver_list", "Clp.jl"], + ["db_lp_solver_list", "COSMO.jl"], + ["db_lp_solver_list", "CPLEX.jl"], + ["db_lp_solver_list", "CSDP.jl"], + ["db_lp_solver_list", "ECOS.jl"], + ["db_lp_solver_list", "GLPK.jl"], + ["db_lp_solver_list", "Gurobi.jl"], + ["db_lp_solver_list", "HiGHS.jl"], + ["db_lp_solver_list", "Hypatia.jl"], + ["db_lp_solver_list", "Ipopt.jl"], + ["db_lp_solver_list", "KNITRO.jl"], + ["db_lp_solver_list", "MadNLP.jl"], + ["db_lp_solver_list", "MosekTools.jl"], + ["db_lp_solver_list", "NLopt.jl"], + ["db_lp_solver_list", "OSQP.jl"], + ["db_lp_solver_list", "ProxSDP.jl"], + ["db_lp_solver_list", "SCIP.jl"], + ["db_lp_solver_list", "SCS.jl"], + ["db_lp_solver_list", "SDPA.jl"], + ["db_lp_solver_list", "SDPNAL.jl"], + ["db_lp_solver_list", "SDPT3.jl"], + ["db_lp_solver_list", "SeDuMi.jl"], + ["db_lp_solver_list", "Xpress.jl"], + ["db_mip_solver_list", "Cbc.jl"], + ["db_mip_solver_list", "CPLEX.jl"], + ["db_mip_solver_list", "GLPK.jl"], + ["db_mip_solver_list", "Gurobi.jl"], + ["db_mip_solver_list", "HiGHS.jl"], + ["db_mip_solver_list", "Juniper.jl"], + ["db_mip_solver_list", "KNITRO.jl"], + ["db_mip_solver_list", "MosekTools.jl"], + ["db_mip_solver_list", "SCIP.jl"], + ["db_mip_solver_list", "Xpress.jl"], + ["duration_unit_list", "hour"], + ["duration_unit_list", "minute"], + ["model_algorithm_list", "basic_algorithm"], + ["model_algorithm_list", "mga_algorithm"], + ["model_type_list", "spineopt_benders"], + ["model_type_list", "spineopt_other"], + ["model_type_list", "spineopt_standard"], + ["node_opf_type_list", "node_opf_type_normal"], + ["node_opf_type_list", "node_opf_type_reference"], + ["output_type_list","constraint_dual"], + ["output_type_list","derived_parameter"], + ["output_type_list","objective"], + ["output_type_list","postprocess_value"], + ["output_type_list","variable"], + ["output_type_list","variable_reduced_cost"], + ["output_type_list","solving_info"], + ["storage_investment_variable_type_list", "storage_investment_variable_type_continuous"], + ["storage_investment_variable_type_list", "storage_investment_variable_type_integer"], + ["unit_investment_variable_type_list", "unit_investment_variable_type_continuous"], + ["unit_investment_variable_type_list", "unit_investment_variable_type_integer"], + ["unit_online_variable_type_list", "unit_online_variable_type_binary"], + ["unit_online_variable_type_list", "unit_online_variable_type_integer"], + ["unit_online_variable_type_list", "unit_online_variable_type_linear"], + ["unit_online_variable_type_list", "unit_online_variable_type_none"], + ["write_mps_file_list", "write_mps_always"], + ["write_mps_file_list", "write_mps_never"], + ["write_mps_file_list", "write_mps_on_no_solve"] ], "object_parameters": [ - ["commodity", "commodity_lodf_tolerance", 0.1, null, "The minimum absolute value of the line outage distribution factor (LODF) that is considered meaningful."], - ["commodity", "commodity_physics", "commodity_physics_none", "commodity_physics_list", "Defines if the `commodity` follows lodf or ptdf physics."], - ["commodity", "commodity_physics_duration", null, null, "For how long the `commodity_physics` should apply relative to the start of the window."], - ["commodity", "commodity_ptdf_threshold", 0.001, null, "The minimum absolute value of the power transfer distribution factor (PTDF) that is considered meaningful."], - ["commodity", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["commodity", "mp_min_res_gen_to_demand_ratio", null, null, "Minimum ratio of renewable generation to demand for this commodity - used in the minimum renewable generation constraint within the Benders master problem"], - ["commodity", "mp_min_res_gen_to_demand_ratio_slack_penalty", null, null, "Penalty for violating the minimum renewable generation to demand ratio."], - ["connection", "benders_starting_connections_invested", null, null, "Fixes the number of connections invested during the first Benders iteration"], - ["connection", "candidate_connections", null, null, "The number of connections that may be invested in"], - ["connection", "connection_availability_factor", 1.0, null, "Availability of the `connection`, acting as a multiplier on its `connection_capacity`. Typically between 0-1."], - ["connection", "connection_contingency", null, "boolean_value_list", "A boolean flag for defining a contingency `connection`."], - ["connection", "connection_investment_cost", null, null, "The per unit investment cost for the connection over the `connection_investment_tech_lifetime`"], - ["connection", "connection_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A connection's decommissioning time, i.e., the time between the moment at which a connection decommissioning decision is takien, and the moment at which decommissioning is complete."], - ["connection", "connection_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], - ["connection", "connection_investment_econ_lifetime", null, null, "Determines the minimum economical investment lifetime of a connection."], - ["connection", "connection_investment_tech_lifetime", null, null, "Determines the maximum technical lifetime of a connection. Once invested, it remains in service for this long"], - ["connection", "connection_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `connection_lifetime` constraint sense."], - ["connection", "connection_investment_variable_type", "connection_investment_variable_type_integer", "connection_investment_variable_type_list", "Determines whether the investment variable is integer `variable_type_integer` or continuous `variable_type_continuous`"], - ["connection", "connection_monitored", false, "boolean_value_list", "A boolean flag for defining a contingency `connection`."], - ["connection", "connection_reactance", null, null, "The per unit reactance of a `connection`."], - ["connection", "connection_reactance_base", 1, null, "If the reactance is given for a p.u. (e.g. p.u. = 100MW), the `connection_reactance_base` can be set to perform this conversion (e.g. *100)."], - ["connection", "connection_resistance", null, null, "The per unit resistance of a `connection`."], - ["connection", "connection_type", "connection_type_normal", "connection_type_list", "A selector between a normal and a lossless bidirectional `connection`."], - ["connection", "connections_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate connections."], - ["connection", "connections_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: connections_invested) will be considered in the maximal-differences of the mga objective"], - ["connection", "connections_invested_mga_weight", 1, null, "Used to scale mga variables. For weightd sum mga method, the length of this weight given as an Array will determine the number of iterations."], - ["connection", "connection_lead_time", {"type": "duration", "data": "0h"}, null, "A connection's lead time, i.e., the time between the moment at which a connection investment decision is takien, and the moment at which the connection investment becomes operational."], - ["connection", "connection_discount_rate_technology_specific", 0.0 , null, "connection-specific discount rate used to calculate the connection's investment costs. If not specified, the model discount rate is used."], - ["connection", "fix_connections_invested", null, null, "Setting a value fixes the connections_invested variable accordingly"], - ["connection", "fix_connections_invested_available", null, null, "Setting a value fixes the connections_invested_available variable accordingly"], - ["connection", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["connection", "has_binary_gas_flow", false, "boolean_value_list", "This parameter needs to be set to `true` in order to represent bidirectional pressure drive gas transfer."], - ["connection", "initial_connections_invested", null, null, "Setting a value fixes the connections_invested variable at the beginning"], - ["connection", "initial_connections_invested_available", null, null, "Setting a value fixes the connections_invested_available variable at the beginning"], - ["connection", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["connection", "number_of_connections", 1.0, null, "Denotes the number of 'sub connections' aggregated to form the modelled `connection`."], - ["investment_group", "equal_investments", false, "boolean_value_list", "Whether all entities in the group must have the same investment decision."], - ["investment_group", "maximum_capacity_invested_available", null, null, "Upper bound on the capacity invested available in the group at any point in time."], - ["investment_group", "maximum_entities_invested_available", null, null, "Upper bound on the number of entities invested available in the group at any point in time."], - ["investment_group", "minimum_capacity_invested_available", null, null, "Lower bound on the capacity invested available in the group at any point in time."], - ["investment_group", "minimum_entities_invested_available", null, null, "Lower bound on the number of entities invested available in the group at any point in time."], - ["model", "big_m", 1000000, null, "Sufficiently large number used for linearization bilinear terms, e.g. to enforce bidirectional flow for gas pipielines"], - ["model", "db_lp_solver", "HiGHS.jl", "db_lp_solver_list", "Solver for MIP problems. Solver package must be added and pre-configured in Julia. Overrides lp_solver RunSpineOpt kwarg"], - ["model", "db_lp_solver_options", {"type": "map", "index_type": "str", "data": [["HiGHS.jl", {"type": "map", "index_type": "str", "data": [["presolve", "on"], ["time_limit", 300.01]]}], ["Clp.jl", {"type": "map", "index_type": "str", "data": [["LogLevel", 0.0]]}]]}, null, "Map parameter containing LP solver option name option value pairs. See solver documentation for supported solver options"], - ["model", "db_mip_solver", "HiGHS.jl", "db_mip_solver_list", "Solver for MIP problems. Solver package must be added and pre-configured in Julia. Overrides mip_solver RunSpineOpt kwarg"], - ["model", "db_mip_solver_options", {"type": "map", "index_type": "str", "data": [["HiGHS.jl", {"type": "map", "index_type": "str", "data": [["presolve", "on"], ["mip_rel_gap", 0.01], ["threads", 0.0], ["time_limit", 300.01]]}], ["Cbc.jl", {"type": "map", "index_type": "str", "data": [["ratioGap", 0.01], ["logLevel", 0.0]]}], ["CPLEX.jl", {"type": "map", "index_type": "str", "data": [["CPX_PARAM_EPGAP", 0.01]]}]]}, null, "Map parameter containing MIP solver option name option value pairs for MIP. See solver documentation for supported solver options"], - ["model", "duration_unit", "hour", "duration_unit_list", "Defines the base temporal unit of the `model`. Currently supported values are either an `hour` or a `minute`."], - ["model", "discount_rate", 0, null, "The discount rate used for the discounting of future cashflows"], - ["model", "discount_year", null, null, "The year to which all cashflows are discounted."], - ["model", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["model", "max_gap", 0.05, null, "Specifies the maximum optimality gap for the model. Currently only used for the master problem within a decomposed structure"], - ["model", "max_iterations", 10.0, null, "Specifies the maximum number of iterations for the model. Currently only used for the master problem within a decomposed structure"], - ["model", "max_mga_iterations", null, null, "Define the number of mga iterations, i.e. how many alternative solutions will be generated."], - ["model", "max_mga_slack", 0.05, null, "Defines the maximum slack by which the alternative solution may differ from the original solution (e.g. 5% more than initial objective function value)"], - ["model", "min_iterations", 1.0, null, "Specifies the minimum number of iterations for the model. Currently only used for the master problem within a decomposed structure"], - ["model", "model_algorithm", "basic_algorithm", "model_algorithm_list", "The algorithm to run (e.g., basic, MGA)"], - ["model", "model_end", {"type": "date_time", "data": "2000-01-02T00:00:00"}, null, "Defines the last timestamp to be modelled. Rolling optimization terminates after passing this point."], - ["model", "model_start", {"type": "date_time", "data": "2000-01-01T00:00:00"}, null, "Defines the first timestamp to be modelled. Relative `temporal_blocks` refer to this value for their start and end."], - ["model", "model_type", "spineopt_standard", "model_type_list", "The model type which gives the solution method (e.g. standerd, Benders)"], - ["model", "roll_forward", null, null, "Defines how much the model moves ahead in time between solves in a rolling optimization. If null, everything is solved in as a single optimization."], - ["model", "use_connection_intact_flow", true, "boolean_value_list", "Whether to use `connection_intact_flow` variables, to capture the impact of connection investments on network characteristics via line outage distribution factors (LODF)."], - ["model", "use_tight_compact_formulations", false, "boolean_value_list", "Whether to use tight and compact constraint formulations."], - ["model", "window_duration", null, null, "The duration of the window in case it differs from roll_forward"], - ["model", "window_weight", 1, null, "The weight of the window in the rolling subproblem"], - ["model", "use_milestone_years", false, "boolean_value_list", "If set to true, the investment models uses milestone years. In other words, operational temporal blocks for one (milestone) year will be scaled up by the discounted duration to represent the entire investment period."], - ["model", "use_economic_representation", false, "boolean_value_list", "If set to true, the investment models uses economic represenation, i.e., multi-year investments will be modeled considering discounts etc."], - ["model", "write_lodf_file", false, "boolean_value_list", "A boolean flag for whether the LODF values should be written to a results file."], - ["model", "write_mps_file", null, "write_mps_file_list", "A selector for writing an .mps file of the model."], - ["model", "write_ptdf_file", false, "boolean_value_list", "A boolean flag for whether the PTDF values should be written to a results file."], - ["node", "balance_type", "balance_type_node", "balance_type_list", "A selector for how the `nodal_balance` constraint should be handled."], - ["node", "benders_starting_storages_invested", null, null, "Fixes the number of storages invested during the first Benders iteration"], - ["node", "candidate_storages", null, null, "Determines the maximum number of new storages which may be invested in"], - ["node", "demand", 0.0, null, "Demand for the `commodity` of a `node`. Energy gains can be represented using negative `demand`."], - ["node", "downward_reserve", false, null, "Identifier for `node`s providing downward reserves"], - ["node", "fix_node_pressure", null, null, "Fixes the corresponding `node_pressure` variable to the provided value"], - ["node", "fix_node_state", null, null, "Fixes the corresponding `node_state` variable to the provided value. Can be used for e.g. fixing boundary conditions."], - ["node", "fix_node_voltage_angle", null, null, "Fixes the corresponding `node_voltage_angle` variable to the provided value"], - ["node", "fix_storages_invested", null, null, "Used to fix the value of the storages_invested variable"], - ["node", "fix_storages_invested_available", null, null, "Used to fix the value of the storages_invested_available variable"], - ["node", "frac_state_loss", 0.0, null, "Self-discharge coefficient for `node_state` variables. Effectively, represents the *loss power per unit of state*."], - ["node", "fractional_demand", 0.0, null, "The fraction of a `node` group's `demand` applied for the `node` in question."], - ["node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["node", "has_pressure", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_pressure` variable."], - ["node", "has_state", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_state` variable."], - ["node", "has_voltage_angle", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_voltage_angle` variable."], - ["node", "initial_node_pressure", null, null, "Initializes the corresponding `node_pressure` variable to the provided value"], - ["node", "initial_node_state", null, null, "Initializes the corresponding `node_state` variable to the provided value."], - ["node", "initial_node_voltage_angle", null, null, "Initializes the corresponding `node_voltage_angle` variable to the provided value"], - ["node", "initial_storages_invested", null, null, "Used to initialze the value of the storages_invested variable"], - ["node", "initial_storages_invested_available", null, null, "Used to initialze the value of the storages_invested_available variable"], - ["node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["node", "is_non_spinning", false, "boolean_value_list", "A boolean flag for whether a `node` is acting as a non-spinning reserve"], - ["node", "is_reserve_node", false, "boolean_value_list", "A boolean flag for whether a `node` is acting as a `reserve_node`"], - ["node", "max_node_pressure", null, null, "Maximum allowed gas pressure at `node`."], - ["node", "max_voltage_angle", null, null, "Maximum allowed voltage angle at `node`."], - ["node", "min_capacity_margin", null, null, "minimum capacity margin applying to the `node` or `node_group`"], - ["node", "min_capacity_margin_penalty", null, null, "penalty to apply to violations of the min capacity_margin constraint of the `node` or `node_group`"], - ["node", "min_node_pressure", null, null, "Minimum allowed gas pressure at `node`."], - ["node", "min_voltage_angle", null, null, "Minimum allowed voltage angle at `node`. "], - ["node", "minimum_reserve_activation_time", null, null, "Duration a certain reserve product needs to be online/available"], - ["node", "nodal_balance_sense", "==", "constraint_sense_list", "A selector for `nodal_balance` constraint sense."], - ["node", "node_opf_type", "node_opf_type_normal", "node_opf_type_list", "A selector for the reference `node` (slack bus) when PTDF-based DC load-flow is enabled."], - ["node", "node_slack_penalty", null, null, "A penalty cost for `node_slack_pos` and `node_slack_neg` variables. The slack variables won't be included in the model unless there's a cost defined for them."], - ["node", "node_state_cap", null, null, "The maximum permitted value for a `node_state` variable."], - ["node", "node_state_min", 0.0, null, "The minimum permitted value for a `node_state` variable."], - ["node", "number_of_storages", 1.0, null, "Denotes the number of 'sub storages' aggregated to form the modelled `node`."], - ["node", "state_coeff", 1.0, null, "Represents the `commodity` content of a `node_state` variable in respect to the `unit_flow` and `connection_flow` variables. Essentially, acts as a coefficient on the `node_state` variable in the `node_injection` constraint."], - ["node", "storage_lead_time", {"type": "duration", "data": "0h"}, null, "A storage's lead time, i.e., the time between the moment at which a storage investment decision is takien, and the moment at which the storage investment becomes operational."], - ["node", "storage_discount_rate_technology_specific", 0.0 , null, "storage-specific discount rate used to calculate the storage's investment costs. If not specified, the model discount rate is used."], - ["node", "storage_fom_cost", null, null, "Fixed operation and maintenance costs of a `node`. Essentially, a cost coefficient on the number of installed units and `node_state_cap` parameters. E.g. EUR/MWh"], - ["node", "storage_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A storage's decommissioning time, i.e., the time between the moment at which a storage decommissioning decision is takien, and the moment at which decommissioning is complete."], - ["node", "storage_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], - ["node", "storage_investment_econ_lifetime", null, null, "Economic lifetime for storage investment decisions."], - ["node", "storage_investment_tech_lifetime", null, null, "Maximum technical lifetime for storage investment decisions."], - ["node", "storage_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `storage_lifetime` constraint sense."], - ["node", "storage_investment_cost", null, null, "Determines the investment cost per unit state_cap over the investment life of a storage"], - ["node", "storage_investment_variable_type", "storage_investment_variable_type_integer", "storage_investment_variable_type_list", "Determines whether the storage investment variable is continuous (usually representing capacity) or integer (representing discrete units invested)"], - ["node", "storages_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate storages."], - ["node", "storages_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: storages_invested) will be considered in the maximal-differences of the mga objective"], - ["node", "storages_invested_mga_weight", 1, null, "Used to scale mga variables. For weighted-sum mga method, the length of this weight given as an Array will determine the number of iterations."], - ["node", "tax_in_unit_flow", null, null, "Tax costs for incoming `unit_flows` on this `node`. E.g. EUR/MWh."], - ["node", "tax_net_unit_flow", null, null, "Tax costs for net incoming and outgoing `unit_flows` on this `node`. Incoming flows accrue positive net taxes, and outgoing flows accrue negative net taxes."], - ["node", "tax_out_unit_flow", null, null, "Tax costs for outgoing `unit_flows` from this `node`. E.g. EUR/MWh."], - ["node", "upward_reserve", false, null, "Identifier for `node`s providing upward reserves"], - ["output", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["output", "output_resolution", null, null, "Temporal resolution of the output variables associated with this `output`."], - ["output", "output_type",null,"output_type_list","Type of this `output`."], - ["report", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["report", "output_db_url", null, null, "Database url for SpineOpt output."], - ["settings", "version", 15, null, "Current version of the SpineOpt data structure. Modify it at your own risk (but please don't)."], - ["stage", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["stage", "stage_scenario", null, null, "The scenario that this `stage` should run (EXPERIMENTAL)."], - ["stochastic_scenario", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["temporal_block", "block_end", null, null, "The end time for the `temporal_block`. Can be given either as a `DateTime` for a static end point, or as a `Duration` for an end point relative to the start of the current optimization."], - ["temporal_block", "block_start", null, null, "The start time for the `temporal_block`. Can be given either as a `DateTime` for a static start point, or as a `Duration` for an start point relative to the start of the current optimization."], - ["temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["temporal_block", "representative_periods_mapping", null, null, "Map from date time to representative temporal block name"], - ["temporal_block", "resolution", {"type": "duration", "data": "1h"}, null, "Temporal resolution of the `temporal_block`. Essentially, divides the period between `block_start` and `block_end` into `TimeSlices` with the input `resolution`."], - ["temporal_block", "weight", 1.0, null, "Weighting factor of the temporal block associated with the objective function"], - ["unit", "benders_starting_units_invested", null, null, "Fixes the number of units invested during the first Benders iteration"], - ["unit", "candidate_units", null, null, "Number of units which may be additionally constructed"], - ["unit", "curtailment_cost", null, null, "Costs for curtailing generation. Essentially, accrues costs whenever `unit_flow` not operating at its maximum available capacity. E.g. EUR/MWh"], - ["unit", "unit_discount_rate_technology_specific", 0.0 , null, "Unit-specific discount rate used to calculate the unit's investment costs. If not specified, the model discount rate is used."], - ["unit", "fix_units_invested", null, null, "Fix the value of the `units_invested` variable."], - ["unit", "fix_units_invested_available", null, null, "Fix the value of the `units_invested_available` variable"], - ["unit", "fix_units_on", null, null, "Fix the value of the `units_on` variable."], - ["unit", "fix_units_out_of_service", null, null, "Fix the value of the `units_out_of_service` variable."], - ["unit", "fom_cost", null, null, "Fixed operation and maintenance costs of a `unit`. Essentially, a cost coefficient on the existing units (incl. `number_of_units` and `units_invested_available`) and `unit_capacity` parameters. Currently, the value needs to be defined per duration unit (i.e. 1 hour), E.g. EUR/MW/h"], - ["unit", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit", "initial_units_invested", null, null, "Initialize the value of the `units_invested` variable."], - ["unit", "initial_units_invested_available", null, null, "Initialize the value of the `units_invested_available` variable"], - ["unit", "initial_units_on", null, null, "Initialize the value of the `units_on` variable."], - ["unit", "initial_units_out_of_service", null, null, "Initialize the value of the `units_out_of_service` variable."], - ["unit", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["unit", "is_renewable", false, "boolean_value_list", "Whether the unit is renewable - used in the minimum renewable generation constraint within the Benders master problem"], - ["unit", "min_down_time", null, null, "Minimum downtime of a `unit` after it shuts down."], - ["unit", "min_up_time", null, null, "Minimum uptime of a `unit` after it starts up."], - ["unit", "number_of_units", 1.0, null, "Denotes the number of 'sub units' aggregated to form the modelled `unit`."], - ["unit", "online_variable_type", "unit_online_variable_type_linear", "unit_online_variable_type_list", "A selector for how the `units_on` variable is represented within the model."], - ["unit", "outage_variable_type", "unit_online_variable_type_none", "unit_online_variable_type_list", "Determines whether the outage variable is integer or continuous or none(no optimisation of maintenance outages)."], - ["unit", "scheduled_outage_duration", null, null, "Specifies the amount of time a unit must be out of service for maintenance as a single block over the course of the optimisation window"], - ["unit", "shut_down_cost", null, null, "Costs of shutting down a 'sub unit', e.g. EUR/shutdown."], - ["unit", "start_up_cost", null, null, "Costs of starting up a 'sub unit', e.g. EUR/startup."], - ["unit", "unit_availability_factor", 1.0, null, "Availability of the `unit`, acting as a multiplier on its `unit_capacity`. Typically between 0-1."], - ["unit", "unit_investment_cost", null, null, "Investment cost per 'sub unit' built."], - ["unit", "unit_investment_variable_type", "unit_investment_variable_type_continuous", "unit_investment_variable_type_list", "Determines whether investment variable is integer or continuous."], - ["unit", "unit_investment_econ_lifetime", null, null, "Economic lifetime for unit investment decisions."], - ["unit", "unit_investment_tech_lifetime", null, null, "Maximum technical lifetime for unit investment decisions."], - ["unit", "unit_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `unit_lifetime` constraint sense."], - ["unit", "unit_lead_time", {"type": "duration", "data": "0h"}, null, "A unit's lead time, i.e., the time between the moment at which a unit investment decision is takien, and the moment at which the unit investment becomes operational."], - ["unit", "unit_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A unit's decommissioning time, i.e., the time between the moment at which a unit decommissioning decision is takien, and the moment at which decommissioning is complete."], - ["unit", "unit_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], - ["unit", "units_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate units."], - ["unit", "units_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: units_invested) will be considered in the maximal-differences of the mga objective"], - ["unit", "units_invested_mga_weight", 1, null, "Used to scale mga variables. For weightd sum mga method, the length of this weight given as an Array will determine the number of iterations."], - ["unit", "units_on_cost", null, null, "Objective function coefficient on `units_on`. An idling cost, for example"], - ["unit", "units_on_non_anticipativity_margin", null, null, "Margin by which `units_on` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["unit", "units_on_non_anticipativity_time", null, null, "Period of time where the value of the `units_on` variable has to be fixed to the result from the previous window."], - ["unit", "units_unavailable", 0, null, "Represents the number of units out of service"], - ["user_constraint", "constraint_sense", "==", "constraint_sense_list", "A selector for the sense of the `user_constraint`."], - ["user_constraint", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["user_constraint", "right_hand_side", 0.0, null, "The right-hand side, constant term in a `user_constraint`. Can be time-dependent and used e.g. for complicated efficiency approximations."], - ["user_constraint", "user_constraint_slack_penalty", null, null, "A penalty for violating a user constraint."] + ["commodity", "commodity_lodf_tolerance", 0.1, null, "The minimum absolute value of the line outage distribution factor (LODF) that is considered meaningful."], + ["commodity", "commodity_physics", "commodity_physics_none", "commodity_physics_list", "Defines if the `commodity` follows lodf or ptdf physics."], + ["commodity", "commodity_physics_duration", null, null, "For how long the `commodity_physics` should apply relative to the start of the window."], + ["commodity", "commodity_ptdf_threshold", 0.001, null, "The minimum absolute value of the power transfer distribution factor (PTDF) that is considered meaningful."], + ["commodity", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["commodity", "mp_min_res_gen_to_demand_ratio", null, null, "Minimum ratio of renewable generation to demand for this commodity - used in the minimum renewable generation constraint within the Benders master problem"], + ["commodity", "mp_min_res_gen_to_demand_ratio_slack_penalty", null, null, "Penalty for violating the minimum renewable generation to demand ratio."], + ["connection", "benders_starting_connections_invested", null, null, "Fixes the number of connections invested during the first Benders iteration"], + ["connection", "candidate_connections", null, null, "The number of connections that may be invested in"], + ["connection", "connection_availability_factor", 1.0, null, "Availability of the `connection`, acting as a multiplier on its `connection_capacity`. Typically between 0-1."], + ["connection", "connection_contingency", null, "boolean_value_list", "A boolean flag for defining a contingency `connection`."], + ["connection", "connection_investment_cost", null, null, "The per unit investment cost for the connection over the `connection_investment_tech_lifetime`"], + ["connection", "connection_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A connection's decommissioning time, i.e., the time between the moment at which a connection decommissioning decision is takien, and the moment at which decommissioning is complete."], + ["connection", "connection_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], + ["connection", "connection_investment_econ_lifetime", null, null, "Determines the minimum economical investment lifetime of a connection."], + ["connection", "connection_investment_tech_lifetime", null, null, "Determines the maximum technical lifetime of a connection. Once invested, it remains in service for this long"], + ["connection", "connection_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `connection_lifetime` constraint sense."], + ["connection", "connection_investment_variable_type", "connection_investment_variable_type_integer", "connection_investment_variable_type_list", "Determines whether the investment variable is integer `variable_type_integer` or continuous `variable_type_continuous`"], + ["connection", "connection_monitored", false, "boolean_value_list", "A boolean flag for defining a contingency `connection`."], + ["connection", "connection_reactance", null, null, "The per unit reactance of a `connection`."], + ["connection", "connection_reactance_base", 1, null, "If the reactance is given for a p.u. (e.g. p.u. = 100MW), the `connection_reactance_base` can be set to perform this conversion (e.g. *100)."], + ["connection", "connection_resistance", null, null, "The per unit resistance of a `connection`."], + ["connection", "connection_type", "connection_type_normal", "connection_type_list", "A selector between a normal and a lossless bidirectional `connection`."], + ["connection", "connections_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate connections."], + ["connection", "connections_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: connections_invested) will be considered in the maximal-differences of the mga objective"], + ["connection", "connections_invested_mga_weight", 1, null, "Used to scale mga variables. For weightd sum mga method, the length of this weight given as an Array will determine the number of iterations."], + ["connection", "connection_lead_time", {"type": "duration", "data": "0h"}, null, "A connection's lead time, i.e., the time between the moment at which a connection investment decision is takien, and the moment at which the connection investment becomes operational."], + ["connection", "connection_discount_rate_technology_specific", 0.0 , null, "connection-specific discount rate used to calculate the connection's investment costs. If not specified, the model discount rate is used."], + ["connection", "fix_connections_invested", null, null, "Setting a value fixes the connections_invested variable accordingly"], + ["connection", "fix_connections_invested_available", null, null, "Setting a value fixes the connections_invested_available variable accordingly"], + ["connection", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["connection", "has_binary_gas_flow", false, "boolean_value_list", "This parameter needs to be set to `true` in order to represent bidirectional pressure drive gas transfer."], + ["connection", "initial_connections_invested", null, null, "Setting a value fixes the connections_invested variable at the beginning"], + ["connection", "initial_connections_invested_available", null, null, "Setting a value fixes the connections_invested_available variable at the beginning"], + ["connection", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["connection", "number_of_connections", 1.0, null, "Denotes the number of 'sub connections' aggregated to form the modelled `connection`."], + ["investment_group", "equal_investments", false, "boolean_value_list", "Whether all entities in the group must have the same investment decision."], + ["investment_group", "maximum_capacity_invested_available", null, null, "Upper bound on the capacity invested available in the group at any point in time."], + ["investment_group", "maximum_entities_invested_available", null, null, "Upper bound on the number of entities invested available in the group at any point in time."], + ["investment_group", "minimum_capacity_invested_available", null, null, "Lower bound on the capacity invested available in the group at any point in time."], + ["investment_group", "minimum_entities_invested_available", null, null, "Lower bound on the number of entities invested available in the group at any point in time."], + ["model", "big_m", 1000000, null, "Sufficiently large number used for linearization bilinear terms, e.g. to enforce bidirectional flow for gas pipielines"], + ["model", "db_lp_solver", "HiGHS.jl", "db_lp_solver_list", "Solver for MIP problems. Solver package must be added and pre-configured in Julia. Overrides lp_solver RunSpineOpt kwarg"], + ["model", "db_lp_solver_options", {"type": "map", "index_type": "str", "data": [["HiGHS.jl", {"type": "map", "index_type": "str", "data": [["presolve", "on"], ["time_limit", 300.01]]}], ["Clp.jl", {"type": "map", "index_type": "str", "data": [["LogLevel", 0.0]]}]]}, null, "Map parameter containing LP solver option name option value pairs. See solver documentation for supported solver options"], + ["model", "db_mip_solver", "HiGHS.jl", "db_mip_solver_list", "Solver for MIP problems. Solver package must be added and pre-configured in Julia. Overrides mip_solver RunSpineOpt kwarg"], + ["model", "db_mip_solver_options", {"type": "map", "index_type": "str", "data": [["HiGHS.jl", {"type": "map", "index_type": "str", "data": [["presolve", "on"], ["mip_rel_gap", 0.01], ["threads", 0.0], ["time_limit", 300.01]]}], ["Cbc.jl", {"type": "map", "index_type": "str", "data": [["ratioGap", 0.01], ["logLevel", 0.0]]}], ["CPLEX.jl", {"type": "map", "index_type": "str", "data": [["CPX_PARAM_EPGAP", 0.01]]}]]}, null, "Map parameter containing MIP solver option name option value pairs for MIP. See solver documentation for supported solver options"], + ["model", "duration_unit", "hour", "duration_unit_list", "Defines the base temporal unit of the `model`. Currently supported values are either an `hour` or a `minute`."], + ["model", "discount_rate", 0, null, "The discount rate used for the discounting of future cashflows"], + ["model", "discount_year", null, null, "The year to which all cashflows are discounted."], + ["model", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["model", "max_gap", 0.05, null, "Specifies the maximum optimality gap for the model. Currently only used for the master problem within a decomposed structure"], + ["model", "max_iterations", 10.0, null, "Specifies the maximum number of iterations for the model. Currently only used for the master problem within a decomposed structure"], + ["model", "max_mga_iterations", null, null, "Define the number of mga iterations, i.e. how many alternative solutions will be generated."], + ["model", "max_mga_slack", 0.05, null, "Defines the maximum slack by which the alternative solution may differ from the original solution (e.g. 5% more than initial objective function value)"], + ["model", "min_iterations", 1.0, null, "Specifies the minimum number of iterations for the model. Currently only used for the master problem within a decomposed structure"], + ["model", "model_algorithm", "basic_algorithm", "model_algorithm_list", "The algorithm to run (e.g., basic, MGA)"], + ["model", "model_end", {"type": "date_time", "data": "2000-01-02T00:00:00"}, null, "Defines the last timestamp to be modelled. Rolling optimization terminates after passing this point."], + ["model", "model_start", {"type": "date_time", "data": "2000-01-01T00:00:00"}, null, "Defines the first timestamp to be modelled. Relative `temporal_blocks` refer to this value for their start and end."], + ["model", "model_type", "spineopt_standard", "model_type_list", "The model type which gives the solution method (e.g. standerd, Benders)"], + ["model", "roll_forward", null, null, "Defines how much the model moves ahead in time between solves in a rolling optimization. If null, everything is solved in as a single optimization."], + ["model", "use_connection_intact_flow", true, "boolean_value_list", "Whether to use `connection_intact_flow` variables, to capture the impact of connection investments on network characteristics via line outage distribution factors (LODF)."], + ["model", "use_tight_compact_formulations", false, "boolean_value_list", "Whether to use tight and compact constraint formulations."], + ["model", "window_duration", null, null, "The duration of the window in case it differs from roll_forward"], + ["model", "window_weight", 1, null, "The weight of the window in the rolling subproblem"], + ["model", "use_milestone_years", false, "boolean_value_list", "If set to true, the investment models uses milestone years. In other words, operational temporal blocks for one (milestone) year will be scaled up by the discounted duration to represent the entire investment period."], + ["model", "use_economic_representation", false, "boolean_value_list", "If set to true, the investment models uses economic represenation, i.e., multi-year investments will be modeled considering discounts etc."], + ["model", "write_lodf_file", false, "boolean_value_list", "A boolean flag for whether the LODF values should be written to a results file."], + ["model", "write_mps_file", null, "write_mps_file_list", "A selector for writing an .mps file of the model."], + ["model", "write_ptdf_file", false, "boolean_value_list", "A boolean flag for whether the PTDF values should be written to a results file."], + ["node", "balance_type", "balance_type_node", "balance_type_list", "A selector for how the `nodal_balance` constraint should be handled."], + ["node", "benders_starting_storages_invested", null, null, "Fixes the number of storages invested during the first Benders iteration"], + ["node", "candidate_storages", null, null, "Determines the maximum number of new storages which may be invested in"], + ["node", "demand", 0.0, null, "Demand for the `commodity` of a `node`. Energy gains can be represented using negative `demand`."], + ["node", "downward_reserve", false, null, "Identifier for `node`s providing downward reserves"], + ["node", "fix_node_pressure", null, null, "Fixes the corresponding `node_pressure` variable to the provided value"], + ["node", "fix_node_state", null, null, "Fixes the corresponding `node_state` variable to the provided value. Can be used for e.g. fixing boundary conditions."], + ["node", "fix_node_voltage_angle", null, null, "Fixes the corresponding `node_voltage_angle` variable to the provided value"], + ["node", "fix_storages_invested", null, null, "Used to fix the value of the storages_invested variable"], + ["node", "fix_storages_invested_available", null, null, "Used to fix the value of the storages_invested_available variable"], + ["node", "frac_state_loss", 0.0, null, "Self-discharge coefficient for `node_state` variables. Effectively, represents the *loss power per unit of state*."], + ["node", "fractional_demand", 0.0, null, "The fraction of a `node` group's `demand` applied for the `node` in question."], + ["node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["node", "has_pressure", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_pressure` variable."], + ["node", "has_state", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_state` variable."], + ["node", "has_voltage_angle", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_voltage_angle` variable."], + ["node", "initial_node_pressure", null, null, "Initializes the corresponding `node_pressure` variable to the provided value"], + ["node", "initial_node_state", null, null, "Initializes the corresponding `node_state` variable to the provided value."], + ["node", "initial_node_voltage_angle", null, null, "Initializes the corresponding `node_voltage_angle` variable to the provided value"], + ["node", "initial_storages_invested", null, null, "Used to initialze the value of the storages_invested variable"], + ["node", "initial_storages_invested_available", null, null, "Used to initialze the value of the storages_invested_available variable"], + ["node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["node", "is_non_spinning", false, "boolean_value_list", "A boolean flag for whether a `node` is acting as a non-spinning reserve"], + ["node", "is_reserve_node", false, "boolean_value_list", "A boolean flag for whether a `node` is acting as a `reserve_node`"], + ["node", "max_node_pressure", null, null, "Maximum allowed gas pressure at `node`."], + ["node", "max_voltage_angle", null, null, "Maximum allowed voltage angle at `node`."], + ["node", "min_capacity_margin", null, null, "minimum capacity margin applying to the `node` or `node_group`"], + ["node", "min_capacity_margin_penalty", null, null, "penalty to apply to violations of the min capacity_margin constraint of the `node` or `node_group`"], + ["node", "min_node_pressure", null, null, "Minimum allowed gas pressure at `node`."], + ["node", "min_voltage_angle", null, null, "Minimum allowed voltage angle at `node`. "], + ["node", "minimum_reserve_activation_time", null, null, "Duration a certain reserve product needs to be online/available"], + ["node", "nodal_balance_sense", "==", "constraint_sense_list", "A selector for `nodal_balance` constraint sense."], + ["node", "node_opf_type", "node_opf_type_normal", "node_opf_type_list", "A selector for the reference `node` (slack bus) when PTDF-based DC load-flow is enabled."], + ["node", "node_slack_penalty", null, null, "A penalty cost for `node_slack_pos` and `node_slack_neg` variables. The slack variables won't be included in the model unless there's a cost defined for them."], + ["node", "node_state_cap", null, null, "The maximum permitted value for a `node_state` variable."], + ["node", "node_state_min", 0.0, null, "The minimum permitted value for a `node_state` variable."], + ["node", "number_of_storages", 1.0, null, "Denotes the number of 'sub storages' aggregated to form the modelled `node`."], + ["node", "state_coeff", 1.0, null, "Represents the `commodity` content of a `node_state` variable in respect to the `unit_flow` and `connection_flow` variables. Essentially, acts as a coefficient on the `node_state` variable in the `node_injection` constraint."], + ["node", "storage_lead_time", {"type": "duration", "data": "0h"}, null, "A storage's lead time, i.e., the time between the moment at which a storage investment decision is takien, and the moment at which the storage investment becomes operational."], + ["node", "storage_discount_rate_technology_specific", 0.0 , null, "storage-specific discount rate used to calculate the storage's investment costs. If not specified, the model discount rate is used."], + ["node", "storage_fom_cost", null, null, "Fixed operation and maintenance costs of a `node`. Essentially, a cost coefficient on the number of installed units and `node_state_cap` parameters. E.g. EUR/MWh"], + ["node", "storage_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A storage's decommissioning time, i.e., the time between the moment at which a storage decommissioning decision is takien, and the moment at which decommissioning is complete."], + ["node", "storage_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], + ["node", "storage_investment_econ_lifetime", null, null, "Economic lifetime for storage investment decisions."], + ["node", "storage_investment_tech_lifetime", null, null, "Maximum technical lifetime for storage investment decisions."], + ["node", "storage_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `storage_lifetime` constraint sense."], + ["node", "storage_investment_cost", null, null, "Determines the investment cost per unit state_cap over the investment life of a storage"], + ["node", "storage_investment_variable_type", "storage_investment_variable_type_integer", "storage_investment_variable_type_list", "Determines whether the storage investment variable is continuous (usually representing capacity) or integer (representing discrete units invested)"], + ["node", "storages_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate storages."], + ["node", "storages_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: storages_invested) will be considered in the maximal-differences of the mga objective"], + ["node", "storages_invested_mga_weight", 1, null, "Used to scale mga variables. For weighted-sum mga method, the length of this weight given as an Array will determine the number of iterations."], + ["node", "tax_in_unit_flow", null, null, "Tax costs for incoming `unit_flows` on this `node`. E.g. EUR/MWh."], + ["node", "tax_net_unit_flow", null, null, "Tax costs for net incoming and outgoing `unit_flows` on this `node`. Incoming flows accrue positive net taxes, and outgoing flows accrue negative net taxes."], + ["node", "tax_out_unit_flow", null, null, "Tax costs for outgoing `unit_flows` from this `node`. E.g. EUR/MWh."], + ["node", "upward_reserve", false, null, "Identifier for `node`s providing upward reserves"], + ["output", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["output", "output_resolution", null, null, "Temporal resolution of the output variables associated with this `output`."], + ["output", "output_type",null,"output_type_list","Type of this `output`."], + ["report", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["report", "output_db_url", null, null, "Database url for SpineOpt output."], + ["settings", "version", 15, null, "Current version of the SpineOpt data structure. Modify it at your own risk (but please don't)."], + ["stage", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["stage", "stage_scenario", null, null, "The scenario that this `stage` should run (EXPERIMENTAL)."], + ["stochastic_scenario", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["temporal_block", "block_end", null, null, "The end time for the `temporal_block`. Can be given either as a `DateTime` for a static end point, or as a `Duration` for an end point relative to the start of the current optimization."], + ["temporal_block", "block_start", null, null, "The start time for the `temporal_block`. Can be given either as a `DateTime` for a static start point, or as a `Duration` for an start point relative to the start of the current optimization."], + ["temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["temporal_block", "representative_periods_mapping", null, null, "Map from date time to representative temporal block name"], + ["temporal_block", "resolution", {"type": "duration", "data": "1h"}, null, "Temporal resolution of the `temporal_block`. Essentially, divides the period between `block_start` and `block_end` into `TimeSlices` with the input `resolution`."], + ["temporal_block", "weight", 1.0, null, "Weighting factor of the temporal block associated with the objective function"], + ["unit", "benders_starting_units_invested", null, null, "Fixes the number of units invested during the first Benders iteration"], + ["unit", "candidate_units", null, null, "Number of units which may be additionally constructed"], + ["unit", "curtailment_cost", null, null, "Costs for curtailing generation. Essentially, accrues costs whenever `unit_flow` not operating at its maximum available capacity. E.g. EUR/MWh"], + ["unit", "unit_discount_rate_technology_specific", 0.0 , null, "Unit-specific discount rate used to calculate the unit's investment costs. If not specified, the model discount rate is used."], + ["unit", "fix_units_invested", null, null, "Fix the value of the `units_invested` variable."], + ["unit", "fix_units_invested_available", null, null, "Fix the value of the `units_invested_available` variable"], + ["unit", "fix_units_on", null, null, "Fix the value of the `units_on` variable."], + ["unit", "fix_units_out_of_service", null, null, "Fix the value of the `units_out_of_service` variable."], + ["unit", "fom_cost", null, null, "Fixed operation and maintenance costs of a `unit`. Essentially, a cost coefficient on the existing units (incl. `number_of_units` and `units_invested_available`) and `unit_capacity` parameters. Currently, the value needs to be defined per duration unit (i.e. 1 hour), E.g. EUR/MW/h"], + ["unit", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit", "initial_units_invested", null, null, "Initialize the value of the `units_invested` variable."], + ["unit", "initial_units_invested_available", null, null, "Initialize the value of the `units_invested_available` variable"], + ["unit", "initial_units_on", null, null, "Initialize the value of the `units_on` variable."], + ["unit", "initial_units_out_of_service", null, null, "Initialize the value of the `units_out_of_service` variable."], + ["unit", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["unit", "is_renewable", false, "boolean_value_list", "Whether the unit is renewable - used in the minimum renewable generation constraint within the Benders master problem"], + ["unit", "min_down_time", null, null, "Minimum downtime of a `unit` after it shuts down."], + ["unit", "min_up_time", null, null, "Minimum uptime of a `unit` after it starts up."], + ["unit", "number_of_units", 1.0, null, "Denotes the number of 'sub units' aggregated to form the modelled `unit`."], + ["unit", "online_variable_type", "unit_online_variable_type_linear", "unit_online_variable_type_list", "A selector for how the `units_on` variable is represented within the model."], + ["unit", "outage_variable_type", "unit_online_variable_type_none", "unit_online_variable_type_list", "Determines whether the outage variable is integer or continuous or none(no optimisation of maintenance outages)."], + ["unit", "scheduled_outage_duration", null, null, "Specifies the amount of time a unit must be out of service for maintenance as a single block over the course of the optimisation window"], + ["unit", "shut_down_cost", null, null, "Costs of shutting down a 'sub unit', e.g. EUR/shutdown."], + ["unit", "start_up_cost", null, null, "Costs of starting up a 'sub unit', e.g. EUR/startup."], + ["unit", "unit_availability_factor", 1.0, null, "Availability of the `unit`, acting as a multiplier on its `unit_capacity`. Typically between 0-1."], + ["unit", "unit_investment_cost", null, null, "Investment cost per 'sub unit' built."], + ["unit", "unit_investment_variable_type", "unit_investment_variable_type_continuous", "unit_investment_variable_type_list", "Determines whether investment variable is integer or continuous."], + ["unit", "unit_investment_econ_lifetime", null, null, "Economic lifetime for unit investment decisions."], + ["unit", "unit_investment_tech_lifetime", null, null, "Maximum technical lifetime for unit investment decisions."], + ["unit", "unit_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `unit_lifetime` constraint sense."], + ["unit", "unit_lead_time", {"type": "duration", "data": "0h"}, null, "A unit's lead time, i.e., the time between the moment at which a unit investment decision is takien, and the moment at which the unit investment becomes operational."], + ["unit", "unit_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A unit's decommissioning time, i.e., the time between the moment at which a unit decommissioning decision is takien, and the moment at which decommissioning is complete."], + ["unit", "unit_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], + ["unit", "units_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate units."], + ["unit", "units_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: units_invested) will be considered in the maximal-differences of the mga objective"], + ["unit", "units_invested_mga_weight", 1, null, "Used to scale mga variables. For weightd sum mga method, the length of this weight given as an Array will determine the number of iterations."], + ["unit", "units_on_cost", null, null, "Objective function coefficient on `units_on`. An idling cost, for example"], + ["unit", "units_on_non_anticipativity_margin", null, null, "Margin by which `units_on` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["unit", "units_on_non_anticipativity_time", null, null, "Period of time where the value of the `units_on` variable has to be fixed to the result from the previous window."], + ["unit", "units_unavailable", 0, null, "Represents the number of units out of service"], + ["user_constraint", "constraint_sense", "==", "constraint_sense_list", "A selector for the sense of the `user_constraint`."], + ["user_constraint", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["user_constraint", "right_hand_side", 0.0, null, "The right-hand side, constant term in a `user_constraint`. Can be time-dependent and used e.g. for complicated efficiency approximations."], + ["user_constraint", "user_constraint_slack_penalty", null, null, "A penalty for violating a user constraint."] ], "relationship_parameters": [ - ["connection__from_node", "connection_capacity", null, null, "Limits the `connection_flow` variable from the `from_node`. `from_node` can be a group of `nodes`, in which case the sum of the `connection_flow` is constrained."], - ["connection__from_node", "connection_conv_cap_to_flow", 1.0, null, "Optional coefficient for `connection_capacity` unit conversions in the case that the `connection_capacity` value is incompatible with the desired `connection_flow` units."], - ["connection__from_node", "connection_emergency_capacity", null, null, "Post contingency flow capacity of a `connection`. Sometimes referred to as emergency rating"], - ["connection__from_node", "connection_flow_cost", null, null, "Variable costs of a flow through a `connection`. E.g. EUR/MWh of energy throughput."], - ["connection__from_node", "connection_flow_non_anticipativity_margin", null, null, "Margin by which `connection_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["connection__from_node", "connection_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_flow` variable has to be fixed to the result from the previous window."], - ["connection__from_node", "connection_intact_flow_non_anticipativity_margin", null, null, "Margin by which `connection_intact_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["connection__from_node", "connection_intact_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_intact_flow` variable has to be fixed to the result from the previous window."], - ["connection__from_node", "fix_binary_gas_connection_flow", null, null, "Fix the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], - ["connection__from_node", "fix_connection_flow", null, null, "Fix the value of the `connection_flow` variable."], - ["connection__from_node", "fix_connection_intact_flow", null, null, "Fix the value of the `connection_intact_flow` variable."], - ["connection__from_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["connection__from_node", "initial_binary_gas_connection_flow", null, null, "Initialize the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], - ["connection__from_node", "initial_connection_flow", null, null, "Initialize the value of the `connection_flow` variable."], - ["connection__from_node", "initial_connection_intact_flow", null, null, "Initialize the value of the `connection_intact_flow` variable."], - ["connection__from_node__user_constraint", "connection_flow_coefficient", 0.0, null, "defines the user constraint coefficient on the connection flow variable in the from direction"], - ["connection__node__node", "compression_factor", null, null, "The compression factor establishes a compression from an origin node to a receiving node, which are connected through a connection. The first node corresponds to the origin node, the second to the (compressed) destination node. Typically the value is >=1."], - ["connection__node__node", "connection_flow_delay", {"type": "duration", "data": "0h"}, null, "Delays the `connection_flows` associated with the latter `node` in respect to the `connection_flows` associated with the first `node`."], - ["connection__node__node", "connection_linepack_constant", null, null, "The linepack constant is a property of gas pipelines and relates the linepack to the pressure of the adjacent nodes."], - ["connection__node__node", "fix_ratio_out_in_connection_flow", null, null, "Fix the ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], - ["connection__node__node", "fixed_pressure_constant_0", null, null, "Fixed pressure points for pipelines for the outer approximation of the Weymouth approximation. The direction of flow is the first node in the relationship to the second node in the relationship."], - ["connection__node__node", "fixed_pressure_constant_1", null, null, "Fixed pressure points for pipelines for the outer approximation of the Weymouth approximation. The direction of flow is the first node in the relationship to the second node in the relationship."], - ["connection__node__node", "max_ratio_out_in_connection_flow", null, null, "Maximum ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], - ["connection__node__node", "min_ratio_out_in_connection_flow", null, null, "Minimum ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], - ["connection__to_node", "connection_capacity", null, null, "Limits the `connection_flow` variable to the `to_node`. `to_node` can be a group of `nodes`, in which case the sum of the `connection_flow` is constrained."], - ["connection__to_node", "connection_conv_cap_to_flow", 1.0, null, "Optional coefficient for `connection_capacity` unit conversions in the case the `connection_capacity` value is incompatible with the desired `connection_flow` units."], - ["connection__to_node", "connection_emergency_capacity", null, null, "The maximum post-contingency flow on a monitored `connection`."], - ["connection__to_node", "connection_flow_cost", null, null, "Variable costs of a flow through a `connection`. E.g. EUR/MWh of energy throughput."], - ["connection__to_node", "connection_flow_non_anticipativity_margin", null, null, "Margin by which `connection_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["connection__to_node", "connection_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_flow` variable has to be fixed to the result from the previous window."], - ["connection__to_node", "connection_intact_flow_non_anticipativity_margin", null, null, "Margin by which `connection_intact_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["connection__to_node", "connection_intact_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_intact_flow` variable has to be fixed to the result from the previous window."], - ["connection__to_node", "fix_binary_gas_connection_flow", null, null, "Fix the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], - ["connection__to_node", "fix_connection_flow", null, null, "Fix the value of the `connection_flow` variable."], - ["connection__to_node", "fix_connection_intact_flow", null, null, "Fix the value of the `connection_intact_flow` variable."], - ["connection__to_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["connection__to_node", "initial_binary_gas_connection_flow", null, null, "Initialize the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], - ["connection__to_node", "initial_connection_flow", null, null, "Initialize the value of the `connection_flow` variable."], - ["connection__to_node", "initial_connection_intact_flow", null, null, "Initialize the value of the `connection_intact_flow` variable."], - ["connection__to_node__user_constraint", "connection_flow_coefficient", 0.0, null, "defines the user constraint coefficient on the connection flow variable in the to direction"], - ["connection__user_constraint", "connections_invested_available_coefficient", 0.0, null, "coefficient of `connections_invested_available` in the specific `user_constraint`"], - ["connection__user_constraint", "connections_invested_coefficient", 0.0, null, "coefficient of `connections_invested` in the specific `user_constraint`"], - ["node__node", "diff_coeff", 0.0, null, "Commodity diffusion coefficient between two `nodes`. Effectively, denotes the *diffusion power per unit of state* from the first `node` to the second."], - ["node__stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["node__temporal_block", "cyclic_condition", false, "boolean_value_list", "If the cyclic condition is set to true for a storage node, the `node_state` at the end of the optimization window has to be larger than or equal to the initial storage state."], - ["node__temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["node__user_constraint", "demand_coefficient", 0.0, null, "coefficient of the specified node's demand in the specified user constraint"], - ["node__user_constraint", "node_state_coefficient", 0.0, null, "Coefficient of the specified node's state variable in the specified user constraint."], - ["node__user_constraint", "storages_invested_available_coefficient", 0.0, null, "Coefficient of the specified node's storages invested available variable in the specified user constraint."], - ["node__user_constraint", "storages_invested_coefficient", 0.0 , null, "Coefficient of the specified node's storage investment variable in the specified user constraint."], - ["report__output", "overwrite_results_on_rolling", true, null, "Whether or not results from further windows should overwrite results from previous ones."], - ["stage__output__connection", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], - ["stage__output__node", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], - ["stage__output__unit", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], - ["stochastic_structure__stochastic_scenario", "stochastic_scenario_end", null, null, "A `Duration` for when a `stochastic_scenario` ends and its `child_stochastic_scenarios` start. Values are interpreted relative to the start of the current solve, and if no value is given, the `stochastic_scenario` is assumed to continue indefinitely."], - ["stochastic_structure__stochastic_scenario", "weight_relative_to_parents", 1.0, null, "The weight of the `stochastic_scenario` in the objective function relative to its parents."], - ["unit__commodity", "max_cum_in_unit_flow_bound", null, null, "Set a maximum cumulative upper bound for a `unit_flow`"], - ["unit__from_node", "fix_nonspin_units_started_up", null, null, "Fix the `nonspin_units_started_up` variable."], - ["unit__from_node", "fix_unit_flow", null, null, "Fix the `unit_flow` variable."], - ["unit__from_node", "fix_unit_flow_op", null, null, "Fix the `unit_flow_op` variable."], - ["unit__from_node", "fuel_cost", null, null, "Variable fuel costs than can be attributed to a `unit_flow`. E.g. EUR/MWh"], - ["unit__from_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit__from_node", "initial_nonspin_units_started_up", null, null, "Initialize the `nonspin_units_started_up` variable."], - ["unit__from_node", "initial_unit_flow", null, null, "Initialize the `unit_flow` variable."], - ["unit__from_node", "initial_unit_flow_op", null, null, "Initialize the `unit_flow_op` variable."], - ["unit__from_node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["unit__from_node", "max_total_cumulated_unit_flow_from_node", null, null, "Bound on the maximum cumulated flows of a unit group from a node group e.g max consumption of certain commodity."], - ["unit__from_node", "min_total_cumulated_unit_flow_from_node", null, null, "Bound on the minimum cumulated flows of a unit group from a node group."], - ["unit__from_node", "min_unit_flow", 0.0, null, "Set lower bound of the `unit_flow` variable."], - ["unit__from_node", "minimum_operating_point", null, null, "Minimum level for the `unit_flow` relative to the `units_on` online capacity."], - ["unit__from_node", "operating_points", null, null, "Operating points for piecewise-linear `unit` efficiency approximations."], - ["unit__from_node", "ordered_unit_flow_op", false, "boolean_value_list", "Defines whether the segments of this unit flow are ordered as per the rank of their operating points."], - ["unit__from_node", "ramp_down_limit", null, null, "Limit the maximum ramp-down rate of an online unit, given as a fraction of the unit_capacity. [ramp_down_limit] = %/t, e.g. 0.2/h"], - ["unit__from_node", "ramp_up_limit", null, null, "Limit the maximum ramp-up rate of an online unit, given as a fraction of the unit_capacity. [ramp_up_limit] = %/t, e.g. 0.2/h"], - ["unit__from_node", "reserve_procurement_cost", null, null, "Procurement cost for reserves"], - ["unit__from_node", "shut_down_limit", null, null, "Maximum ramp-down during shutdowns"], - ["unit__from_node", "start_up_limit", null, null, "Maximum ramp-up during startups"], - ["unit__from_node", "unit_capacity", null, null, "Maximum `unit_flow` capacity of a single 'sub_unit' of the `unit`."], - ["unit__from_node", "unit_conv_cap_to_flow", 1.0, null, "Optional coefficient for `unit_capacity` unit conversions in the case the `unit_capacity` value is incompatible with the desired `unit_flow` units."], - ["unit__from_node", "unit_flow_non_anticipativity_margin", null, null, "Margin by which `unit_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["unit__from_node", "unit_flow_non_anticipativity_time", null, null, "Period of time where the value of the `unit_flow` variable has to be fixed to the result from the previous window."], - ["unit__from_node", "vom_cost", null, null, "Variable operating costs of a `unit_flow` variable. E.g. EUR/MWh."], - ["unit__from_node__user_constraint", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit__from_node__user_constraint", "unit_flow_coefficient", 0.0, null, "Coefficient of a `unit_flow` variable for a custom `user_constraint`."], - ["unit__node__node", "fix_ratio_in_in_unit_flow", null, null, "Fix the ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], - ["unit__node__node", "fix_ratio_in_out_unit_flow", null, null, "Fix the ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], - ["unit__node__node", "fix_ratio_out_in_unit_flow", null, null, "Fix the ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], - ["unit__node__node", "fix_ratio_out_out_unit_flow", null, null, "Fix the ratio between two `unit_flows` going from the `unit` into the two `nodes`."], - ["unit__node__node", "fix_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_in_in_unit_flow` constraint."], - ["unit__node__node", "fix_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_in_out_unit_flow` constraint."], - ["unit__node__node", "fix_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_out_in_unit_flow` constraint."], - ["unit__node__node", "fix_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_out_out_unit_flow` constraint."], - ["unit__node__node", "max_ratio_in_in_unit_flow", null, null, "Maximum ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], - ["unit__node__node", "max_ratio_in_out_unit_flow", null, null, "Maximum ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], - ["unit__node__node", "max_ratio_out_in_unit_flow", null, null, "Maximum ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], - ["unit__node__node", "max_ratio_out_out_unit_flow", null, null, "Maximum ratio between two `unit_flows` going from the `unit` into the two `nodes`."], - ["unit__node__node", "max_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_in_in_unit_flow` constraint."], - ["unit__node__node", "max_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_in_out_unit_flow` constraint."], - ["unit__node__node", "max_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_out_in_unit_flow` constraint."], - ["unit__node__node", "max_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_out_out_unit_flow` constraint."], - ["unit__node__node", "min_ratio_in_in_unit_flow", null, null, "Minimum ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], - ["unit__node__node", "min_ratio_in_out_unit_flow", null, null, "Minimum ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], - ["unit__node__node", "min_ratio_out_in_unit_flow", null, null, "Minimum ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], - ["unit__node__node", "min_ratio_out_out_unit_flow", null, null, "Minimum ratio between two `unit_flows` going from the `unit` into the two `nodes`."], - ["unit__node__node", "min_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_in_in_unit_flow` constraint."], - ["unit__node__node", "min_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_in_out_unit_flow` constraint."], - ["unit__node__node", "min_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_out_in_unit_flow` constraint."], - ["unit__node__node", "min_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_out_out_unit_flow` constraint."], - ["unit__node__node", "unit_start_flow", 0.0, null, "Flow from node1 that is incurred when a unit is started up."], - ["unit__to_node", "fix_nonspin_units_shut_down", null, null, "Fix the `nonspin_units_shut_down` variable."], - ["unit__to_node", "fix_nonspin_units_started_up", null, null, "Fix the `nonspin_units_started_up` variable."], - ["unit__to_node", "fix_unit_flow", null, null, "Fix the `unit_flow` variable."], - ["unit__to_node", "fix_unit_flow_op", null, null, "Fix the `unit_flow_op` variable."], - ["unit__to_node", "fuel_cost", null, null, "Variable fuel costs than can be attributed to a `unit_flow`. E.g. EUR/MWh"], - ["unit__to_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit__to_node", "initial_nonspin_units_shut_down", null, null, "Initialize the `nonspin_units_shut_down` variable."], - ["unit__to_node", "initial_nonspin_units_started_up", null, null, "Initialize the `nonspin_units_started_up` variable."], - ["unit__to_node", "initial_unit_flow", null, null, "Initialize the `unit_flow` variable."], - ["unit__to_node", "initial_unit_flow_op", null, null, "Initialize the `unit_flow_op` variable."], - ["unit__to_node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["unit__to_node", "max_total_cumulated_unit_flow_to_node", null, null, "Bound on the maximum cumulated flows of a unit group to a node group, e.g. total GHG emissions."], - ["unit__to_node", "min_total_cumulated_unit_flow_to_node", null, null, "Bound on the minimum cumulated flows of a unit group to a node group, e.g. total renewable production."], - ["unit__to_node", "min_unit_flow", 0.0, null, "Set lower bound of the `unit_flow` variable."], - ["unit__to_node", "minimum_operating_point", null, null, "Minimum level for the `unit_flow` relative to the `units_on` online capacity."], - ["unit__to_node", "operating_points", null, null, "Decomposes the flow variable into a number of separate operating segment variables. Used to in conjunction with `unit_incremental_heat_rate` and/or `user_constraint`s"], - ["unit__to_node", "ordered_unit_flow_op", false, "boolean_value_list", "Defines whether the segments of this unit flow are ordered as per the rank of their operating points."], - ["unit__to_node", "ramp_down_limit", null, null, "Limit the maximum ramp-down rate of an online unit, given as a fraction of the unit_capacity. [ramp_down_limit] = %/t, e.g. 0.2/h"], - ["unit__to_node", "ramp_up_limit", null, null, "Limit the maximum ramp-up rate of an online unit, given as a fraction of the unit_capacity. [ramp_up_limit] = %/t, e.g. 0.2/h"], - ["unit__to_node", "reserve_procurement_cost", null, null, "Procurement cost for reserves"], - ["unit__to_node", "shut_down_limit", null, null, "Maximum ramp-down during shutdowns"], - ["unit__to_node", "start_up_limit", null, null, "Maximum ramp-up during startups"], - ["unit__to_node", "unit_capacity", null, null, "Maximum `unit_flow` capacity of a single 'sub_unit' of the `unit`."], - ["unit__to_node", "unit_conv_cap_to_flow", 1.0, null, "Optional coefficient for `unit_capacity` unit conversions in the case the `unit_capacity` value is incompatible with the desired `unit_flow` units."], - ["unit__to_node", "unit_flow_non_anticipativity_margin", null, null, "Margin by which `unit_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["unit__to_node", "unit_flow_non_anticipativity_time", null, null, "Period of time where the value of the `unit_flow` variable has to be fixed to the result from the previous window."], - ["unit__to_node", "vom_cost", null, null, "Variable operating costs of a `unit_flow` variable. E.g. EUR/MWh."], - ["unit__to_node__user_constraint", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit__to_node__user_constraint", "unit_flow_coefficient", 0.0, null, "Coefficient of a `unit_flow` variable for a custom `user_constraint`."], - ["unit__user_constraint", "units_invested_available_coefficient",0.0 , null, "Coefficient of the `units_invested_available` variable in the specified `user_constraint`."], - ["unit__user_constraint", "units_invested_coefficient", 0.0, null, "Coefficient of the `units_invested` variable in the specified `user_constraint`."], - ["unit__user_constraint", "units_on_coefficient", 0.0, null, "Coefficient of a `units_on` variable for a custom `user_constraint`."], - ["unit__user_constraint", "units_started_up_coefficient", 0.0, null, "Coefficient of a `units_started_up` variable for a custom `user_constraint`."], - ["units_on__stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["units_on__temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"] + ["connection__from_node", "connection_capacity", null, null, "Limits the `connection_flow` variable from the `from_node`. `from_node` can be a group of `nodes`, in which case the sum of the `connection_flow` is constrained."], + ["connection__from_node", "connection_conv_cap_to_flow", 1.0, null, "Optional coefficient for `connection_capacity` unit conversions in the case that the `connection_capacity` value is incompatible with the desired `connection_flow` units."], + ["connection__from_node", "connection_emergency_capacity", null, null, "Post contingency flow capacity of a `connection`. Sometimes referred to as emergency rating"], + ["connection__from_node", "connection_flow_cost", null, null, "Variable costs of a flow through a `connection`. E.g. EUR/MWh of energy throughput."], + ["connection__from_node", "connection_flow_non_anticipativity_margin", null, null, "Margin by which `connection_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["connection__from_node", "connection_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_flow` variable has to be fixed to the result from the previous window."], + ["connection__from_node", "connection_intact_flow_non_anticipativity_margin", null, null, "Margin by which `connection_intact_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["connection__from_node", "connection_intact_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_intact_flow` variable has to be fixed to the result from the previous window."], + ["connection__from_node", "fix_binary_gas_connection_flow", null, null, "Fix the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], + ["connection__from_node", "fix_connection_flow", null, null, "Fix the value of the `connection_flow` variable."], + ["connection__from_node", "fix_connection_intact_flow", null, null, "Fix the value of the `connection_intact_flow` variable."], + ["connection__from_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["connection__from_node", "initial_binary_gas_connection_flow", null, null, "Initialize the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], + ["connection__from_node", "initial_connection_flow", null, null, "Initialize the value of the `connection_flow` variable."], + ["connection__from_node", "initial_connection_intact_flow", null, null, "Initialize the value of the `connection_intact_flow` variable."], + ["connection__from_node__user_constraint", "connection_flow_coefficient", 0.0, null, "defines the user constraint coefficient on the connection flow variable in the from direction"], + ["connection__node__node", "compression_factor", null, null, "The compression factor establishes a compression from an origin node to a receiving node, which are connected through a connection. The first node corresponds to the origin node, the second to the (compressed) destination node. Typically the value is >=1."], + ["connection__node__node", "connection_flow_delay", {"type": "duration", "data": "0h"}, null, "Delays the `connection_flows` associated with the latter `node` in respect to the `connection_flows` associated with the first `node`."], + ["connection__node__node", "connection_linepack_constant", null, null, "The linepack constant is a property of gas pipelines and relates the linepack to the pressure of the adjacent nodes."], + ["connection__node__node", "fix_ratio_out_in_connection_flow", null, null, "Fix the ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], + ["connection__node__node", "fixed_pressure_constant_0", null, null, "Fixed pressure points for pipelines for the outer approximation of the Weymouth approximation. The direction of flow is the first node in the relationship to the second node in the relationship."], + ["connection__node__node", "fixed_pressure_constant_1", null, null, "Fixed pressure points for pipelines for the outer approximation of the Weymouth approximation. The direction of flow is the first node in the relationship to the second node in the relationship."], + ["connection__node__node", "max_ratio_out_in_connection_flow", null, null, "Maximum ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], + ["connection__node__node", "min_ratio_out_in_connection_flow", null, null, "Minimum ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], + ["connection__to_node", "connection_capacity", null, null, "Limits the `connection_flow` variable to the `to_node`. `to_node` can be a group of `nodes`, in which case the sum of the `connection_flow` is constrained."], + ["connection__to_node", "connection_conv_cap_to_flow", 1.0, null, "Optional coefficient for `connection_capacity` unit conversions in the case the `connection_capacity` value is incompatible with the desired `connection_flow` units."], + ["connection__to_node", "connection_emergency_capacity", null, null, "The maximum post-contingency flow on a monitored `connection`."], + ["connection__to_node", "connection_flow_cost", null, null, "Variable costs of a flow through a `connection`. E.g. EUR/MWh of energy throughput."], + ["connection__to_node", "connection_flow_non_anticipativity_margin", null, null, "Margin by which `connection_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["connection__to_node", "connection_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_flow` variable has to be fixed to the result from the previous window."], + ["connection__to_node", "connection_intact_flow_non_anticipativity_margin", null, null, "Margin by which `connection_intact_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["connection__to_node", "connection_intact_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_intact_flow` variable has to be fixed to the result from the previous window."], + ["connection__to_node", "fix_binary_gas_connection_flow", null, null, "Fix the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], + ["connection__to_node", "fix_connection_flow", null, null, "Fix the value of the `connection_flow` variable."], + ["connection__to_node", "fix_connection_intact_flow", null, null, "Fix the value of the `connection_intact_flow` variable."], + ["connection__to_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["connection__to_node", "initial_binary_gas_connection_flow", null, null, "Initialize the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], + ["connection__to_node", "initial_connection_flow", null, null, "Initialize the value of the `connection_flow` variable."], + ["connection__to_node", "initial_connection_intact_flow", null, null, "Initialize the value of the `connection_intact_flow` variable."], + ["connection__to_node__user_constraint", "connection_flow_coefficient", 0.0, null, "defines the user constraint coefficient on the connection flow variable in the to direction"], + ["connection__user_constraint", "connections_invested_available_coefficient", 0.0, null, "coefficient of `connections_invested_available` in the specific `user_constraint`"], + ["connection__user_constraint", "connections_invested_coefficient", 0.0, null, "coefficient of `connections_invested` in the specific `user_constraint`"], + ["node__node", "diff_coeff", 0.0, null, "Commodity diffusion coefficient between two `nodes`. Effectively, denotes the *diffusion power per unit of state* from the first `node` to the second."], + ["node__stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["node__temporal_block", "cyclic_condition", false, "boolean_value_list", "If the cyclic condition is set to true for a storage node, the `node_state` at the end of the optimization window has to be larger than or equal to the initial storage state."], + ["node__temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["node__user_constraint", "demand_coefficient", 0.0, null, "coefficient of the specified node's demand in the specified user constraint"], + ["node__user_constraint", "node_state_coefficient", 0.0, null, "Coefficient of the specified node's state variable in the specified user constraint."], + ["node__user_constraint", "storages_invested_available_coefficient", 0.0, null, "Coefficient of the specified node's storages invested available variable in the specified user constraint."], + ["node__user_constraint", "storages_invested_coefficient", 0.0 , null, "Coefficient of the specified node's storage investment variable in the specified user constraint."], + ["report__output", "overwrite_results_on_rolling", true, null, "Whether or not results from further windows should overwrite results from previous ones."], + ["stage__output__connection", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], + ["stage__output__node", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], + ["stage__output__unit", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], + ["stochastic_structure__stochastic_scenario", "stochastic_scenario_end", null, null, "A `Duration` for when a `stochastic_scenario` ends and its `child_stochastic_scenarios` start. Values are interpreted relative to the start of the current solve, and if no value is given, the `stochastic_scenario` is assumed to continue indefinitely."], + ["stochastic_structure__stochastic_scenario", "weight_relative_to_parents", 1.0, null, "The weight of the `stochastic_scenario` in the objective function relative to its parents."], + ["unit__commodity", "max_cum_in_unit_flow_bound", null, null, "Set a maximum cumulative upper bound for a `unit_flow`"], + ["unit__from_node", "fix_nonspin_units_started_up", null, null, "Fix the `nonspin_units_started_up` variable."], + ["unit__from_node", "fix_unit_flow", null, null, "Fix the `unit_flow` variable."], + ["unit__from_node", "fix_unit_flow_op", null, null, "Fix the `unit_flow_op` variable."], + ["unit__from_node", "fuel_cost", null, null, "Variable fuel costs than can be attributed to a `unit_flow`. E.g. EUR/MWh"], + ["unit__from_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit__from_node", "initial_nonspin_units_started_up", null, null, "Initialize the `nonspin_units_started_up` variable."], + ["unit__from_node", "initial_unit_flow", null, null, "Initialize the `unit_flow` variable."], + ["unit__from_node", "initial_unit_flow_op", null, null, "Initialize the `unit_flow_op` variable."], + ["unit__from_node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["unit__from_node", "max_total_cumulated_unit_flow_from_node", null, null, "Bound on the maximum cumulated flows of a unit group from a node group e.g max consumption of certain commodity."], + ["unit__from_node", "min_total_cumulated_unit_flow_from_node", null, null, "Bound on the minimum cumulated flows of a unit group from a node group."], + ["unit__from_node", "min_unit_flow", 0.0, null, "Set lower bound of the `unit_flow` variable."], + ["unit__from_node", "minimum_operating_point", null, null, "Minimum level for the `unit_flow` relative to the `units_on` online capacity."], + ["unit__from_node", "operating_points", null, null, "Operating points for piecewise-linear `unit` efficiency approximations."], + ["unit__from_node", "ordered_unit_flow_op", false, "boolean_value_list", "Defines whether the segments of this unit flow are ordered as per the rank of their operating points."], + ["unit__from_node", "ramp_down_limit", null, null, "Limit the maximum ramp-down rate of an online unit, given as a fraction of the unit_capacity. [ramp_down_limit] = %/t, e.g. 0.2/h"], + ["unit__from_node", "ramp_up_limit", null, null, "Limit the maximum ramp-up rate of an online unit, given as a fraction of the unit_capacity. [ramp_up_limit] = %/t, e.g. 0.2/h"], + ["unit__from_node", "reserve_procurement_cost", null, null, "Procurement cost for reserves"], + ["unit__from_node", "shut_down_limit", null, null, "Maximum ramp-down during shutdowns"], + ["unit__from_node", "start_up_limit", null, null, "Maximum ramp-up during startups"], + ["unit__from_node", "unit_capacity", null, null, "Maximum `unit_flow` capacity of a single 'sub_unit' of the `unit`."], + ["unit__from_node", "unit_conv_cap_to_flow", 1.0, null, "Optional coefficient for `unit_capacity` unit conversions in the case the `unit_capacity` value is incompatible with the desired `unit_flow` units."], + ["unit__from_node", "unit_flow_non_anticipativity_margin", null, null, "Margin by which `unit_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["unit__from_node", "unit_flow_non_anticipativity_time", null, null, "Period of time where the value of the `unit_flow` variable has to be fixed to the result from the previous window."], + ["unit__from_node", "vom_cost", null, null, "Variable operating costs of a `unit_flow` variable. E.g. EUR/MWh."], + ["unit__from_node__user_constraint", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit__from_node__user_constraint", "unit_flow_coefficient", 0.0, null, "Coefficient of a `unit_flow` variable for a custom `user_constraint`."], + ["unit__node__node", "fix_ratio_in_in_unit_flow", null, null, "Fix the ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], + ["unit__node__node", "fix_ratio_in_out_unit_flow", null, null, "Fix the ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], + ["unit__node__node", "fix_ratio_out_in_unit_flow", null, null, "Fix the ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], + ["unit__node__node", "fix_ratio_out_out_unit_flow", null, null, "Fix the ratio between two `unit_flows` going from the `unit` into the two `nodes`."], + ["unit__node__node", "fix_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_in_in_unit_flow` constraint."], + ["unit__node__node", "fix_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_in_out_unit_flow` constraint."], + ["unit__node__node", "fix_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_out_in_unit_flow` constraint."], + ["unit__node__node", "fix_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_out_out_unit_flow` constraint."], + ["unit__node__node", "max_ratio_in_in_unit_flow", null, null, "Maximum ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], + ["unit__node__node", "max_ratio_in_out_unit_flow", null, null, "Maximum ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], + ["unit__node__node", "max_ratio_out_in_unit_flow", null, null, "Maximum ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], + ["unit__node__node", "max_ratio_out_out_unit_flow", null, null, "Maximum ratio between two `unit_flows` going from the `unit` into the two `nodes`."], + ["unit__node__node", "max_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_in_in_unit_flow` constraint."], + ["unit__node__node", "max_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_in_out_unit_flow` constraint."], + ["unit__node__node", "max_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_out_in_unit_flow` constraint."], + ["unit__node__node", "max_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_out_out_unit_flow` constraint."], + ["unit__node__node", "min_ratio_in_in_unit_flow", null, null, "Minimum ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], + ["unit__node__node", "min_ratio_in_out_unit_flow", null, null, "Minimum ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], + ["unit__node__node", "min_ratio_out_in_unit_flow", null, null, "Minimum ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], + ["unit__node__node", "min_ratio_out_out_unit_flow", null, null, "Minimum ratio between two `unit_flows` going from the `unit` into the two `nodes`."], + ["unit__node__node", "min_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_in_in_unit_flow` constraint."], + ["unit__node__node", "min_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_in_out_unit_flow` constraint."], + ["unit__node__node", "min_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_out_in_unit_flow` constraint."], + ["unit__node__node", "min_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_out_out_unit_flow` constraint."], + ["unit__node__node", "unit_start_flow", 0.0, null, "Flow from node1 that is incurred when a unit is started up."], + ["unit__to_node", "fix_nonspin_units_shut_down", null, null, "Fix the `nonspin_units_shut_down` variable."], + ["unit__to_node", "fix_nonspin_units_started_up", null, null, "Fix the `nonspin_units_started_up` variable."], + ["unit__to_node", "fix_unit_flow", null, null, "Fix the `unit_flow` variable."], + ["unit__to_node", "fix_unit_flow_op", null, null, "Fix the `unit_flow_op` variable."], + ["unit__to_node", "fuel_cost", null, null, "Variable fuel costs than can be attributed to a `unit_flow`. E.g. EUR/MWh"], + ["unit__to_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit__to_node", "initial_nonspin_units_shut_down", null, null, "Initialize the `nonspin_units_shut_down` variable."], + ["unit__to_node", "initial_nonspin_units_started_up", null, null, "Initialize the `nonspin_units_started_up` variable."], + ["unit__to_node", "initial_unit_flow", null, null, "Initialize the `unit_flow` variable."], + ["unit__to_node", "initial_unit_flow_op", null, null, "Initialize the `unit_flow_op` variable."], + ["unit__to_node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["unit__to_node", "max_total_cumulated_unit_flow_to_node", null, null, "Bound on the maximum cumulated flows of a unit group to a node group, e.g. total GHG emissions."], + ["unit__to_node", "min_total_cumulated_unit_flow_to_node", null, null, "Bound on the minimum cumulated flows of a unit group to a node group, e.g. total renewable production."], + ["unit__to_node", "min_unit_flow", 0.0, null, "Set lower bound of the `unit_flow` variable."], + ["unit__to_node", "minimum_operating_point", null, null, "Minimum level for the `unit_flow` relative to the `units_on` online capacity."], + ["unit__to_node", "operating_points", null, null, "Decomposes the flow variable into a number of separate operating segment variables. Used to in conjunction with `unit_incremental_heat_rate` and/or `user_constraint`s"], + ["unit__to_node", "ordered_unit_flow_op", false, "boolean_value_list", "Defines whether the segments of this unit flow are ordered as per the rank of their operating points."], + ["unit__to_node", "ramp_down_limit", null, null, "Limit the maximum ramp-down rate of an online unit, given as a fraction of the unit_capacity. [ramp_down_limit] = %/t, e.g. 0.2/h"], + ["unit__to_node", "ramp_up_limit", null, null, "Limit the maximum ramp-up rate of an online unit, given as a fraction of the unit_capacity. [ramp_up_limit] = %/t, e.g. 0.2/h"], + ["unit__to_node", "reserve_procurement_cost", null, null, "Procurement cost for reserves"], + ["unit__to_node", "shut_down_limit", null, null, "Maximum ramp-down during shutdowns"], + ["unit__to_node", "start_up_limit", null, null, "Maximum ramp-up during startups"], + ["unit__to_node", "unit_capacity", null, null, "Maximum `unit_flow` capacity of a single 'sub_unit' of the `unit`."], + ["unit__to_node", "unit_conv_cap_to_flow", 1.0, null, "Optional coefficient for `unit_capacity` unit conversions in the case the `unit_capacity` value is incompatible with the desired `unit_flow` units."], + ["unit__to_node", "unit_flow_non_anticipativity_margin", null, null, "Margin by which `unit_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["unit__to_node", "unit_flow_non_anticipativity_time", null, null, "Period of time where the value of the `unit_flow` variable has to be fixed to the result from the previous window."], + ["unit__to_node", "vom_cost", null, null, "Variable operating costs of a `unit_flow` variable. E.g. EUR/MWh."], + ["unit__to_node__user_constraint", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit__to_node__user_constraint", "unit_flow_coefficient", 0.0, null, "Coefficient of a `unit_flow` variable for a custom `user_constraint`."], + ["unit__user_constraint", "units_invested_available_coefficient",0.0 , null, "Coefficient of the `units_invested_available` variable in the specified `user_constraint`."], + ["unit__user_constraint", "units_invested_coefficient", 0.0, null, "Coefficient of the `units_invested` variable in the specified `user_constraint`."], + ["unit__user_constraint", "units_on_coefficient", 0.0, null, "Coefficient of a `units_on` variable for a custom `user_constraint`."], + ["unit__user_constraint", "units_started_up_coefficient", 0.0, null, "Coefficient of a `units_started_up` variable for a custom `user_constraint`."], + ["units_on__stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["units_on__temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"] ], "objects": [ - ["output", "binary_gas_connection_flow", null], - ["output", "connection_avg_intact_throughflow", null], - ["output", "connection_avg_throughflow", null], - ["output", "connection_flow", null], - ["output", "connection_flow_costs", null], - ["output", "connection_intact_flow", null], - ["output", "connection_investment_costs", null], - ["output", "connections_decommissioned", null], - ["output", "connections_invested", null], - ["output", "connections_invested_available", null], - ["output", "connection_salvage_fraction", null], - ["output", "connection_tech_discount_factor", null], - ["output", "connection_conversion_to_discounted_annuities", null], - ["output", "connection_discounted_duration", null], - ["output", "contingency_is_binding", null], - ["output", "fixed_om_costs", null], - ["output", "fuel_costs", null], - ["output", "mga_objective", null], - ["output", "mp_objective_lowerbound", null], - ["output", "node_injection", null], - ["output", "node_pressure", null], - ["output", "node_slack_neg", null], - ["output", "node_slack_pos", null], - ["output", "node_state", null], - ["output", "node_voltage_angle", null], - ["output", "nonspin_units_shut_down", null], - ["output", "nonspin_units_started_up", null], - ["output", "objective_penalties", null], - ["output", "relative_optimality_gap", null], - ["output", "renewable_curtailment_costs", null], - ["output", "res_proc_costs", null], - ["output", "shut_down_costs", null], - ["output", "start_up_costs", null], - ["output", "storage_investment_costs", null], - ["output", "storages_decommissioned", null], - ["output", "storages_invested", null], - ["output", "storages_invested_available", null], - ["output", "storage_salvage_fraction", null], - ["output", "storage_tech_discount_factor", null], - ["output", "storage_conversion_to_discounted_annuities", null], - ["output", "storage_discounted_duration", null], - ["output", "taxes", null], - ["output", "total_costs", null], - ["output", "unit_flow", null], - ["output", "unit_flow_op", null], - ["output", "unit_flow_op_active", null], - ["output", "unit_investment_costs", null], - ["output", "units_invested", null], - ["output", "units_invested_available", null], - ["output", "units_mothballed", null], - ["output", "units_on", null], - ["output", "units_on_costs", null], - ["output", "units_shut_down", null], - ["output", "units_started_up", null], - ["output", "unit_salvage_fraction", null], - ["output", "unit_tech_discount_factor", null], - ["output", "unit_conversion_to_discounted_annuities", null], - ["output", "unit_discounted_duration", null], - ["output", "variable_om_costs", null], - ["output","bound_nonspin_units_shut_down",null], - ["output","bound_unit_flow",null], - ["output","bound_units_mothballed",null], - ["output","bound_units_started_up",null], - ["output","bound_binary_gas_connection_flow",null], - ["output","bound_node_slack_pos",null], - ["output","bound_storages_invested_available",null], - ["output","bound_unit_flow_op",null], - ["output","bound_node_injection",null], - ["output","bound_units_invested",null], - ["output","bound_min_capacity_margin_slack",null], - ["output","bound_storages_decommissioned",null], - ["output","bound_node_voltage_angle",null], - ["output","bound_storages_invested",null], - ["output","bound_units_out_of_service",null], - ["output","bound_connection_flow",null], - ["output","bound_unit_flow_op_active",null], - ["output","bound_connections_invested",null], - ["output","bound_units_shut_down",null], - ["output","bound_node_state",null], - ["output","bound_units_taken_out_of_service",null], - ["output","bound_units_on",null], - ["output","bound_node_slack_neg",null], - ["output","bound_connections_invested_available",null], - ["output","bound_connection_intact_flow",null], - ["output","bound_units_returned_to_service",null], - ["output","bound_units_invested_available",null], - ["output","bound_user_constraint_slack_neg",null], - ["output","bound_user_constraint_slack_pos",null], - ["output","bound_connections_decommissioned",null], - ["output","bound_nonspin_units_started_up",null], - ["output","bound_node_pressure",null], - ["output","constraint_min_node_pressure",null], - ["output","constraint_max_ratio_in_out_unit_flow",null], - ["output","constraint_ramp_up",null], - ["output","constraint_investment_group_maximum_capacity_invested_available",null], - ["output","constraint_min_ratio_out_in_connection_flow",null], - ["output","constraint_min_ratio_out_in_unit_flow",null], - ["output","constraint_user_constraint",null], - ["output","constraint_investment_group_equal_investments",null], - ["output","constraint_max_ratio_out_in_unit_flow",null], - ["output","constraint_compression_ratio",null], - ["output","constraint_max_ratio_in_in_unit_flow",null], - ["output","constraint_min_total_cumulated_unit_flow_to_node",null], - ["output","constraint_min_ratio_in_out_unit_flow",null], - ["output","constraint_unit_flow_op_rank",null], - ["output","constraint_operating_point_bounds",null], - ["output","constraint_fix_node_pressure_point",null], - ["output","constraint_connection_flow_lodf",null], - ["output","constraint_connections_invested_transition",null], - ["output","constraint_min_ratio_in_in_unit_flow",null], - ["output","constraint_max_total_cumulated_unit_flow_to_node",null], - ["output","constraint_min_capacity_margin",null], - ["output","constraint_node_voltage_angle",null], - ["output","constraint_non_spinning_reserves_start_up_upper_bound",null], - ["output","constraint_node_state_capacity",null], - ["output","constraint_max_ratio_out_out_unit_flow",null], - ["output","constraint_connection_intact_flow_ptdf",null], - ["output","constraint_storage_lifetime",null], - ["output","constraint_investment_group_maximum_entities_invested_available",null], - ["output","constraint_min_total_cumulated_unit_flow_from_node",null], - ["output","constraint_storages_invested_transition",null], - ["output","constraint_unit_flow_op_sum",null], - ["output","constraint_cyclic_node_state",null], - ["output","constraint_units_out_of_service_contiguity",null], - ["output","constraint_max_total_cumulated_unit_flow_from_node",null], - ["output","constraint_investment_group_minimum_capacity_invested_available",null], - ["output","constraint_ramp_down",null], - ["output","constraint_connection_lifetime",null], - ["output","constraint_min_down_time",null], - ["output","constraint_storages_invested_available",null], - ["output","constraint_non_spinning_reserves_lower_bound",null], - ["output","constraint_connection_unitary_gas_flow",null], - ["output","constraint_min_up_time",null], - ["output","constraint_minimum_operating_point",null], - ["output","constraint_fix_ratio_in_in_unit_flow",null], - ["output","constraint_fix_ratio_in_out_unit_flow",null], - ["output","constraint_fix_ratio_out_out_unit_flow",null], - ["output","constraint_unit_flow_capacity",null], - ["output","constraint_nodal_balance",null], - ["output","constraint_fix_ratio_out_in_unit_flow",null], - ["output","constraint_units_out_of_service_transition",null], - ["output","constraint_max_ratio_out_in_connection_flow",null], - ["output","constraint_unit_state_transition",null], - ["output","constraint_min_node_voltage_angle",null], - ["output","constraint_fix_ratio_out_in_connection_flow",null], - ["output","constraint_unit_flow_op_bounds",null], - ["output","constraint_storage_line_pack",null], - ["output","constraint_connection_flow_capacity",null], - ["output","constraint_max_node_pressure",null], - ["output","constraint_min_scheduled_outage_duration",null], - ["output","constraint_node_injection",null], - ["output","constraint_operating_point_rank",null], - ["output","constraint_units_available",null], - ["output","constraint_min_ratio_out_out_unit_flow",null], - ["output","constraint_max_node_voltage_angle",null], - ["output","constraint_connections_invested_available",null], - ["output","constraint_units_invested_transition",null], - ["output","constraint_units_invested_available",null], - ["output","constraint_connection_flow_gas_capacity",null], - ["output","constraint_investment_group_minimum_entities_invested_available",null], - ["output","constraint_unit_lifetime",null], - ["output","constraint_non_spinning_reserves_shut_down_upper_bound",null] + ["output", "binary_gas_connection_flow", null], + ["output", "connection_avg_intact_throughflow", null], + ["output", "connection_avg_throughflow", null], + ["output", "connection_flow", null], + ["output", "connection_flow_costs", null], + ["output", "connection_intact_flow", null], + ["output", "connection_investment_costs", null], + ["output", "connections_decommissioned", null], + ["output", "connections_invested", null], + ["output", "connections_invested_available", null], + ["output", "connection_salvage_fraction", null], + ["output", "connection_tech_discount_factor", null], + ["output", "connection_conversion_to_discounted_annuities", null], + ["output", "connection_discounted_duration", null], + ["output", "contingency_is_binding", null], + ["output", "fixed_om_costs", null], + ["output", "fuel_costs", null], + ["output", "mga_objective", null], + ["output", "mp_objective_lowerbound", null], + ["output", "node_injection", null], + ["output", "node_pressure", null], + ["output", "node_slack_neg", null], + ["output", "node_slack_pos", null], + ["output", "node_state", null], + ["output", "node_voltage_angle", null], + ["output", "nonspin_units_shut_down", null], + ["output", "nonspin_units_started_up", null], + ["output", "objective_penalties", null], + ["output", "relative_optimality_gap", null], + ["output", "renewable_curtailment_costs", null], + ["output", "res_proc_costs", null], + ["output", "shut_down_costs", null], + ["output", "start_up_costs", null], + ["output", "storage_investment_costs", null], + ["output", "storages_decommissioned", null], + ["output", "storages_invested", null], + ["output", "storages_invested_available", null], + ["output", "storage_salvage_fraction", null], + ["output", "storage_tech_discount_factor", null], + ["output", "storage_conversion_to_discounted_annuities", null], + ["output", "storage_discounted_duration", null], + ["output", "taxes", null], + ["output", "total_costs", null], + ["output", "unit_flow", null], + ["output", "unit_flow_op", null], + ["output", "unit_flow_op_active", null], + ["output", "unit_investment_costs", null], + ["output", "units_invested", null], + ["output", "units_invested_available", null], + ["output", "units_mothballed", null], + ["output", "units_on", null], + ["output", "units_on_costs", null], + ["output", "units_shut_down", null], + ["output", "units_started_up", null], + ["output", "unit_salvage_fraction", null], + ["output", "unit_tech_discount_factor", null], + ["output", "unit_conversion_to_discounted_annuities", null], + ["output", "unit_discounted_duration", null], + ["output", "variable_om_costs", null], + ["output","bound_nonspin_units_shut_down",null], + ["output","bound_unit_flow",null], + ["output","bound_units_mothballed",null], + ["output","bound_units_started_up",null], + ["output","bound_binary_gas_connection_flow",null], + ["output","bound_node_slack_pos",null], + ["output","bound_storages_invested_available",null], + ["output","bound_unit_flow_op",null], + ["output","bound_node_injection",null], + ["output","bound_units_invested",null], + ["output","bound_min_capacity_margin_slack",null], + ["output","bound_storages_decommissioned",null], + ["output","bound_node_voltage_angle",null], + ["output","bound_storages_invested",null], + ["output","bound_units_out_of_service",null], + ["output","bound_connection_flow",null], + ["output","bound_unit_flow_op_active",null], + ["output","bound_connections_invested",null], + ["output","bound_units_shut_down",null], + ["output","bound_node_state",null], + ["output","bound_units_taken_out_of_service",null], + ["output","bound_units_on",null], + ["output","bound_node_slack_neg",null], + ["output","bound_connections_invested_available",null], + ["output","bound_connection_intact_flow",null], + ["output","bound_units_returned_to_service",null], + ["output","bound_units_invested_available",null], + ["output","bound_user_constraint_slack_neg",null], + ["output","bound_user_constraint_slack_pos",null], + ["output","bound_connections_decommissioned",null], + ["output","bound_nonspin_units_started_up",null], + ["output","bound_node_pressure",null], + ["output","constraint_min_node_pressure",null], + ["output","constraint_max_ratio_in_out_unit_flow",null], + ["output","constraint_ramp_up",null], + ["output","constraint_investment_group_maximum_capacity_invested_available",null], + ["output","constraint_min_ratio_out_in_connection_flow",null], + ["output","constraint_min_ratio_out_in_unit_flow",null], + ["output","constraint_user_constraint",null], + ["output","constraint_investment_group_equal_investments",null], + ["output","constraint_max_ratio_out_in_unit_flow",null], + ["output","constraint_compression_ratio",null], + ["output","constraint_max_ratio_in_in_unit_flow",null], + ["output","constraint_min_total_cumulated_unit_flow_to_node",null], + ["output","constraint_min_ratio_in_out_unit_flow",null], + ["output","constraint_unit_flow_op_rank",null], + ["output","constraint_operating_point_bounds",null], + ["output","constraint_fix_node_pressure_point",null], + ["output","constraint_connection_flow_lodf",null], + ["output","constraint_connections_invested_transition",null], + ["output","constraint_min_ratio_in_in_unit_flow",null], + ["output","constraint_max_total_cumulated_unit_flow_to_node",null], + ["output","constraint_min_capacity_margin",null], + ["output","constraint_node_voltage_angle",null], + ["output","constraint_non_spinning_reserves_start_up_upper_bound",null], + ["output","constraint_node_state_capacity",null], + ["output","constraint_max_ratio_out_out_unit_flow",null], + ["output","constraint_connection_intact_flow_ptdf",null], + ["output","constraint_storage_lifetime",null], + ["output","constraint_investment_group_maximum_entities_invested_available",null], + ["output","constraint_min_total_cumulated_unit_flow_from_node",null], + ["output","constraint_storages_invested_transition",null], + ["output","constraint_unit_flow_op_sum",null], + ["output","constraint_cyclic_node_state",null], + ["output","constraint_units_out_of_service_contiguity",null], + ["output","constraint_max_total_cumulated_unit_flow_from_node",null], + ["output","constraint_investment_group_minimum_capacity_invested_available",null], + ["output","constraint_ramp_down",null], + ["output","constraint_connection_lifetime",null], + ["output","constraint_min_down_time",null], + ["output","constraint_storages_invested_available",null], + ["output","constraint_non_spinning_reserves_lower_bound",null], + ["output","constraint_connection_unitary_gas_flow",null], + ["output","constraint_min_up_time",null], + ["output","constraint_minimum_operating_point",null], + ["output","constraint_fix_ratio_in_in_unit_flow",null], + ["output","constraint_fix_ratio_in_out_unit_flow",null], + ["output","constraint_fix_ratio_out_out_unit_flow",null], + ["output","constraint_unit_flow_capacity",null], + ["output","constraint_nodal_balance",null], + ["output","constraint_fix_ratio_out_in_unit_flow",null], + ["output","constraint_units_out_of_service_transition",null], + ["output","constraint_max_ratio_out_in_connection_flow",null], + ["output","constraint_unit_state_transition",null], + ["output","constraint_min_node_voltage_angle",null], + ["output","constraint_fix_ratio_out_in_connection_flow",null], + ["output","constraint_unit_flow_op_bounds",null], + ["output","constraint_storage_line_pack",null], + ["output","constraint_connection_flow_capacity",null], + ["output","constraint_max_node_pressure",null], + ["output","constraint_min_scheduled_outage_duration",null], + ["output","constraint_node_injection",null], + ["output","constraint_operating_point_rank",null], + ["output","constraint_units_available",null], + ["output","constraint_min_ratio_out_out_unit_flow",null], + ["output","constraint_max_node_voltage_angle",null], + ["output","constraint_connections_invested_available",null], + ["output","constraint_units_invested_transition",null], + ["output","constraint_units_invested_available",null], + ["output","constraint_connection_flow_gas_capacity",null], + ["output","constraint_investment_group_minimum_entities_invested_available",null], + ["output","constraint_unit_lifetime",null], + ["output","constraint_non_spinning_reserves_shut_down_upper_bound",null] ], "object_parameter_values": [ - ["output","constraint_compression_ratio","output_type","constraint_dual","Base"], - ["output","constraint_connection_flow_capacity","output_type","constraint_dual","Base"], - ["output","constraint_connection_flow_gas_capacity","output_type","constraint_dual","Base"], - ["output","constraint_connection_flow_lodf","output_type","constraint_dual","Base"], - ["output","constraint_connection_intact_flow_ptdf","output_type","constraint_dual","Base"], - ["output","constraint_connection_lifetime","output_type","constraint_dual","Base"], - ["output","constraint_connection_unitary_gas_flow","output_type","constraint_dual","Base"], - ["output","constraint_connections_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_connections_invested_transition","output_type","constraint_dual","Base"], - ["output","constraint_cyclic_node_state","output_type","constraint_dual","Base"], - ["output","constraint_fix_node_pressure_point","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_equal_investments","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_maximum_capacity_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_maximum_entities_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_minimum_capacity_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_minimum_entities_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_max_node_pressure","output_type","constraint_dual","Base"], - ["output","constraint_max_node_voltage_angle","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], - ["output","constraint_max_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], - ["output","constraint_min_capacity_margin","output_type","constraint_dual","Base"], - ["output","constraint_min_down_time","output_type","constraint_dual","Base"], - ["output","constraint_min_node_pressure","output_type","constraint_dual","Base"], - ["output","constraint_min_node_voltage_angle","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_scheduled_outage_duration","output_type","constraint_dual","Base"], - ["output","constraint_min_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], - ["output","constraint_min_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], - ["output","constraint_min_up_time","output_type","constraint_dual","Base"], - ["output","constraint_minimum_operating_point","output_type","constraint_dual","Base"], - ["output","constraint_nodal_balance","output_type","constraint_dual","Base"], - ["output","constraint_node_injection","output_type","constraint_dual","Base"], - ["output","constraint_node_state_capacity","output_type","constraint_dual","Base"], - ["output","constraint_node_voltage_angle","output_type","constraint_dual","Base"], - ["output","constraint_non_spinning_reserves_lower_bound","output_type","constraint_dual","Base"], - ["output","constraint_non_spinning_reserves_shut_down_upper_bound","output_type","constraint_dual","Base"], - ["output","constraint_non_spinning_reserves_start_up_upper_bound","output_type","constraint_dual","Base"], - ["output","constraint_operating_point_bounds","output_type","constraint_dual","Base"], - ["output","constraint_operating_point_rank","output_type","constraint_dual","Base"], - ["output","constraint_ramp_down","output_type","constraint_dual","Base"], - ["output","constraint_ramp_up","output_type","constraint_dual","Base"], - ["output","constraint_storage_lifetime","output_type","constraint_dual","Base"], - ["output","constraint_storage_line_pack","output_type","constraint_dual","Base"], - ["output","constraint_storages_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_storages_invested_transition","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_capacity","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_op_bounds","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_op_rank","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_op_sum","output_type","constraint_dual","Base"], - ["output","constraint_unit_lifetime","output_type","constraint_dual","Base"], - ["output","constraint_unit_state_transition","output_type","constraint_dual","Base"], - ["output","constraint_units_available","output_type","constraint_dual","Base"], - ["output","constraint_units_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_units_invested_transition","output_type","constraint_dual","Base"], - ["output","constraint_units_out_of_service_contiguity","output_type","constraint_dual","Base"], - ["output","constraint_units_out_of_service_transition","output_type","constraint_dual","Base"], - ["output","constraint_user_constraint","output_type","constraint_dual","Base"], - ["output","connection_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], - ["output","connection_discounted_duration","output_type","derived_parameter","Base"], - ["output","connection_salvage_fraction","output_type","derived_parameter","Base"], - ["output","connection_tech_discount_factor","output_type","derived_parameter","Base"], - ["output","storage_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], - ["output","storage_discounted_duration","output_type","derived_parameter","Base"], - ["output","storage_salvage_fraction","output_type","derived_parameter","Base"], - ["output","storage_tech_discount_factor","output_type","derived_parameter","Base"], - ["output","unit_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], - ["output","unit_discounted_duration","output_type","derived_parameter","Base"], - ["output","unit_salvage_fraction","output_type","derived_parameter","Base"], - ["output","unit_tech_discount_factor","output_type","derived_parameter","Base"], - ["output","connection_flow_costs","output_type","objective","Base"], - ["output","connection_investment_costs","output_type","objective","Base"], - ["output","fixed_om_costs","output_type","objective","Base"], - ["output","fuel_costs","output_type","objective","Base"], - ["output","mga_objective","output_type","objective","Base"], - ["output","objective_penalties","output_type","objective","Base"], - ["output","renewable_curtailment_costs","output_type","objective","Base"], - ["output","res_proc_costs","output_type","objective","Base"], - ["output","shut_down_costs","output_type","objective","Base"], - ["output","start_up_costs","output_type","objective","Base"], - ["output","storage_investment_costs","output_type","objective","Base"], - ["output","taxes","output_type","objective","Base"], - ["output","total_costs","output_type","objective","Base"], - ["output","unit_investment_costs","output_type","objective","Base"], - ["output","units_on_costs","output_type","objective","Base"], - ["output","variable_om_costs","output_type","objective","Base"], - ["output","connection_avg_intact_throughflow","output_type","postprocess_value","Base"], - ["output","connection_avg_throughflow","output_type","postprocess_value","Base"], - ["output","contingency_is_binding","output_type","postprocess_value","Base"], - ["output","relative_optimality_gap","output_type","solving_info","Base"], - ["output","binary_gas_connection_flow","output_type","variable","Base"], - ["output","connection_flow","output_type","variable","Base"], - ["output","connection_intact_flow","output_type","variable","Base"], - ["output","connections_decommissioned","output_type","variable","Base"], - ["output","connections_invested","output_type","variable","Base"], - ["output","connections_invested_available","output_type","variable","Base"], - ["output","mp_objective_lowerbound","output_type","variable","Base"], - ["output","node_injection","output_type","variable","Base"], - ["output","node_pressure","output_type","variable","Base"], - ["output","node_slack_neg","output_type","variable","Base"], - ["output","node_slack_pos","output_type","variable","Base"], - ["output","node_state","output_type","variable","Base"], - ["output","node_voltage_angle","output_type","variable","Base"], - ["output","nonspin_ramp_down_unit_flow","output_type","variable","Base"], - ["output","nonspin_ramp_up_unit_flow","output_type","variable","Base"], - ["output","nonspin_units_shut_down","output_type","variable","Base"], - ["output","nonspin_units_started_up","output_type","variable","Base"], - ["output","ramp_down_unit_flow","output_type","variable","Base"], - ["output","ramp_up_unit_flow","output_type","variable","Base"], - ["output","shut_down_unit_flow","output_type","variable","Base"], - ["output","start_up_unit_flow","output_type","variable","Base"], - ["output","storages_decommissioned","output_type","variable","Base"], - ["output","storages_invested","output_type","variable","Base"], - ["output","storages_invested_available","output_type","variable","Base"], - ["output","unit_flow","output_type","variable","Base"], - ["output","unit_flow_op","output_type","variable","Base"], - ["output","unit_flow_op_active","output_type","variable","Base"], - ["output","units_invested","output_type","variable","Base"], - ["output","units_invested_available","output_type","variable","Base"], - ["output","units_mothballed","output_type","variable","Base"], - ["output","units_on","output_type","variable","Base"], - ["output","units_shut_down","output_type","variable","Base"], - ["output","units_started_up","output_type","variable","Base"], - ["output","bound_binary_gas_connection_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_connection_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_connection_intact_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_connections_decommissioned","output_type","variable_reduced_cost","Base"], - ["output","bound_connections_invested","output_type","variable_reduced_cost","Base"], - ["output","bound_connections_invested_available","output_type","variable_reduced_cost","Base"], - ["output","bound_min_capacity_margin_slack","output_type","variable_reduced_cost","Base"], - ["output","bound_node_injection","output_type","variable_reduced_cost","Base"], - ["output","bound_node_pressure","output_type","variable_reduced_cost","Base"], - ["output","bound_node_slack_neg","output_type","variable_reduced_cost","Base"], - ["output","bound_node_slack_pos","output_type","variable_reduced_cost","Base"], - ["output","bound_node_state","output_type","variable_reduced_cost","Base"], - ["output","bound_node_voltage_angle","output_type","variable_reduced_cost","Base"], - ["output","bound_nonspin_units_shut_down","output_type","variable_reduced_cost","Base"], - ["output","bound_nonspin_units_started_up","output_type","variable_reduced_cost","Base"], - ["output","bound_storages_decommissioned","output_type","variable_reduced_cost","Base"], - ["output","bound_storages_invested","output_type","variable_reduced_cost","Base"], - ["output","bound_storages_invested_available","output_type","variable_reduced_cost","Base"], - ["output","bound_unit_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_unit_flow_op","output_type","variable_reduced_cost","Base"], - ["output","bound_unit_flow_op_active","output_type","variable_reduced_cost","Base"], - ["output","bound_units_invested","output_type","variable_reduced_cost","Base"], - ["output","bound_units_invested_available","output_type","variable_reduced_cost","Base"], - ["output","bound_units_mothballed","output_type","variable_reduced_cost","Base"], - ["output","bound_units_on","output_type","variable_reduced_cost","Base"], - ["output","bound_units_out_of_service","output_type","variable_reduced_cost","Base"], - ["output","bound_units_returned_to_service","output_type","variable_reduced_cost","Base"], - ["output","bound_units_shut_down","output_type","variable_reduced_cost","Base"], - ["output","bound_units_started_up","output_type","variable_reduced_cost","Base"], - ["output","bound_units_taken_out_of_service","output_type","variable_reduced_cost","Base"], - ["output","bound_user_constraint_slack_neg","output_type","variable_reduced_cost","Base"], - ["output","bound_user_constraint_slack_pos","output_type","variable_reduced_cost","Base"] + ["output","constraint_compression_ratio","output_type","constraint_dual","Base"], + ["output","constraint_connection_flow_capacity","output_type","constraint_dual","Base"], + ["output","constraint_connection_flow_gas_capacity","output_type","constraint_dual","Base"], + ["output","constraint_connection_flow_lodf","output_type","constraint_dual","Base"], + ["output","constraint_connection_intact_flow_ptdf","output_type","constraint_dual","Base"], + ["output","constraint_connection_lifetime","output_type","constraint_dual","Base"], + ["output","constraint_connection_unitary_gas_flow","output_type","constraint_dual","Base"], + ["output","constraint_connections_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_connections_invested_transition","output_type","constraint_dual","Base"], + ["output","constraint_cyclic_node_state","output_type","constraint_dual","Base"], + ["output","constraint_fix_node_pressure_point","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_equal_investments","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_maximum_capacity_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_maximum_entities_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_minimum_capacity_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_minimum_entities_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_max_node_pressure","output_type","constraint_dual","Base"], + ["output","constraint_max_node_voltage_angle","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], + ["output","constraint_max_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], + ["output","constraint_min_capacity_margin","output_type","constraint_dual","Base"], + ["output","constraint_min_down_time","output_type","constraint_dual","Base"], + ["output","constraint_min_node_pressure","output_type","constraint_dual","Base"], + ["output","constraint_min_node_voltage_angle","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_scheduled_outage_duration","output_type","constraint_dual","Base"], + ["output","constraint_min_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], + ["output","constraint_min_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], + ["output","constraint_min_up_time","output_type","constraint_dual","Base"], + ["output","constraint_minimum_operating_point","output_type","constraint_dual","Base"], + ["output","constraint_nodal_balance","output_type","constraint_dual","Base"], + ["output","constraint_node_injection","output_type","constraint_dual","Base"], + ["output","constraint_node_state_capacity","output_type","constraint_dual","Base"], + ["output","constraint_node_voltage_angle","output_type","constraint_dual","Base"], + ["output","constraint_non_spinning_reserves_lower_bound","output_type","constraint_dual","Base"], + ["output","constraint_non_spinning_reserves_shut_down_upper_bound","output_type","constraint_dual","Base"], + ["output","constraint_non_spinning_reserves_start_up_upper_bound","output_type","constraint_dual","Base"], + ["output","constraint_operating_point_bounds","output_type","constraint_dual","Base"], + ["output","constraint_operating_point_rank","output_type","constraint_dual","Base"], + ["output","constraint_ramp_down","output_type","constraint_dual","Base"], + ["output","constraint_ramp_up","output_type","constraint_dual","Base"], + ["output","constraint_storage_lifetime","output_type","constraint_dual","Base"], + ["output","constraint_storage_line_pack","output_type","constraint_dual","Base"], + ["output","constraint_storages_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_storages_invested_transition","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_capacity","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_op_bounds","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_op_rank","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_op_sum","output_type","constraint_dual","Base"], + ["output","constraint_unit_lifetime","output_type","constraint_dual","Base"], + ["output","constraint_unit_state_transition","output_type","constraint_dual","Base"], + ["output","constraint_units_available","output_type","constraint_dual","Base"], + ["output","constraint_units_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_units_invested_transition","output_type","constraint_dual","Base"], + ["output","constraint_units_out_of_service_contiguity","output_type","constraint_dual","Base"], + ["output","constraint_units_out_of_service_transition","output_type","constraint_dual","Base"], + ["output","constraint_user_constraint","output_type","constraint_dual","Base"], + ["output","connection_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], + ["output","connection_discounted_duration","output_type","derived_parameter","Base"], + ["output","connection_salvage_fraction","output_type","derived_parameter","Base"], + ["output","connection_tech_discount_factor","output_type","derived_parameter","Base"], + ["output","storage_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], + ["output","storage_discounted_duration","output_type","derived_parameter","Base"], + ["output","storage_salvage_fraction","output_type","derived_parameter","Base"], + ["output","storage_tech_discount_factor","output_type","derived_parameter","Base"], + ["output","unit_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], + ["output","unit_discounted_duration","output_type","derived_parameter","Base"], + ["output","unit_salvage_fraction","output_type","derived_parameter","Base"], + ["output","unit_tech_discount_factor","output_type","derived_parameter","Base"], + ["output","connection_flow_costs","output_type","objective","Base"], + ["output","connection_investment_costs","output_type","objective","Base"], + ["output","fixed_om_costs","output_type","objective","Base"], + ["output","fuel_costs","output_type","objective","Base"], + ["output","mga_objective","output_type","objective","Base"], + ["output","objective_penalties","output_type","objective","Base"], + ["output","renewable_curtailment_costs","output_type","objective","Base"], + ["output","res_proc_costs","output_type","objective","Base"], + ["output","shut_down_costs","output_type","objective","Base"], + ["output","start_up_costs","output_type","objective","Base"], + ["output","storage_investment_costs","output_type","objective","Base"], + ["output","taxes","output_type","objective","Base"], + ["output","total_costs","output_type","objective","Base"], + ["output","unit_investment_costs","output_type","objective","Base"], + ["output","units_on_costs","output_type","objective","Base"], + ["output","variable_om_costs","output_type","objective","Base"], + ["output","connection_avg_intact_throughflow","output_type","postprocess_value","Base"], + ["output","connection_avg_throughflow","output_type","postprocess_value","Base"], + ["output","contingency_is_binding","output_type","postprocess_value","Base"], + ["output","relative_optimality_gap","output_type","solving_info","Base"], + ["output","binary_gas_connection_flow","output_type","variable","Base"], + ["output","connection_flow","output_type","variable","Base"], + ["output","connection_intact_flow","output_type","variable","Base"], + ["output","connections_decommissioned","output_type","variable","Base"], + ["output","connections_invested","output_type","variable","Base"], + ["output","connections_invested_available","output_type","variable","Base"], + ["output","mp_objective_lowerbound","output_type","variable","Base"], + ["output","node_injection","output_type","variable","Base"], + ["output","node_pressure","output_type","variable","Base"], + ["output","node_slack_neg","output_type","variable","Base"], + ["output","node_slack_pos","output_type","variable","Base"], + ["output","node_state","output_type","variable","Base"], + ["output","node_voltage_angle","output_type","variable","Base"], + ["output","nonspin_ramp_down_unit_flow","output_type","variable","Base"], + ["output","nonspin_ramp_up_unit_flow","output_type","variable","Base"], + ["output","nonspin_units_shut_down","output_type","variable","Base"], + ["output","nonspin_units_started_up","output_type","variable","Base"], + ["output","ramp_down_unit_flow","output_type","variable","Base"], + ["output","ramp_up_unit_flow","output_type","variable","Base"], + ["output","shut_down_unit_flow","output_type","variable","Base"], + ["output","start_up_unit_flow","output_type","variable","Base"], + ["output","storages_decommissioned","output_type","variable","Base"], + ["output","storages_invested","output_type","variable","Base"], + ["output","storages_invested_available","output_type","variable","Base"], + ["output","unit_flow","output_type","variable","Base"], + ["output","unit_flow_op","output_type","variable","Base"], + ["output","unit_flow_op_active","output_type","variable","Base"], + ["output","units_invested","output_type","variable","Base"], + ["output","units_invested_available","output_type","variable","Base"], + ["output","units_mothballed","output_type","variable","Base"], + ["output","units_on","output_type","variable","Base"], + ["output","units_shut_down","output_type","variable","Base"], + ["output","units_started_up","output_type","variable","Base"], + ["output","bound_binary_gas_connection_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_connection_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_connection_intact_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_connections_decommissioned","output_type","variable_reduced_cost","Base"], + ["output","bound_connections_invested","output_type","variable_reduced_cost","Base"], + ["output","bound_connections_invested_available","output_type","variable_reduced_cost","Base"], + ["output","bound_min_capacity_margin_slack","output_type","variable_reduced_cost","Base"], + ["output","bound_node_injection","output_type","variable_reduced_cost","Base"], + ["output","bound_node_pressure","output_type","variable_reduced_cost","Base"], + ["output","bound_node_slack_neg","output_type","variable_reduced_cost","Base"], + ["output","bound_node_slack_pos","output_type","variable_reduced_cost","Base"], + ["output","bound_node_state","output_type","variable_reduced_cost","Base"], + ["output","bound_node_voltage_angle","output_type","variable_reduced_cost","Base"], + ["output","bound_nonspin_units_shut_down","output_type","variable_reduced_cost","Base"], + ["output","bound_nonspin_units_started_up","output_type","variable_reduced_cost","Base"], + ["output","bound_storages_decommissioned","output_type","variable_reduced_cost","Base"], + ["output","bound_storages_invested","output_type","variable_reduced_cost","Base"], + ["output","bound_storages_invested_available","output_type","variable_reduced_cost","Base"], + ["output","bound_unit_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_unit_flow_op","output_type","variable_reduced_cost","Base"], + ["output","bound_unit_flow_op_active","output_type","variable_reduced_cost","Base"], + ["output","bound_units_invested","output_type","variable_reduced_cost","Base"], + ["output","bound_units_invested_available","output_type","variable_reduced_cost","Base"], + ["output","bound_units_mothballed","output_type","variable_reduced_cost","Base"], + ["output","bound_units_on","output_type","variable_reduced_cost","Base"], + ["output","bound_units_out_of_service","output_type","variable_reduced_cost","Base"], + ["output","bound_units_returned_to_service","output_type","variable_reduced_cost","Base"], + ["output","bound_units_shut_down","output_type","variable_reduced_cost","Base"], + ["output","bound_units_started_up","output_type","variable_reduced_cost","Base"], + ["output","bound_units_taken_out_of_service","output_type","variable_reduced_cost","Base"], + ["output","bound_user_constraint_slack_neg","output_type","variable_reduced_cost","Base"], + ["output","bound_user_constraint_slack_pos","output_type","variable_reduced_cost","Base"] ], "tools": [ - ["object_activity_control", ""] + ["object_activity_control", ""] ], "features": [ ["commodity", "is_active", "boolean_value_list", "boolean_value_list"], From 576a6a6d795b8a64d384c2dd3f8ee0231086e130 Mon Sep 17 00:00:00 2001 From: "Huang, JiangYi" Date: Thu, 14 Nov 2024 18:17:47 +0100 Subject: [PATCH 6/6] Update spineopt_template.json align indentation --- templates/spineopt_template.json | 1562 +++++++++++++++--------------- 1 file changed, 781 insertions(+), 781 deletions(-) diff --git a/templates/spineopt_template.json b/templates/spineopt_template.json index 91302ef1ed..ec980ca484 100644 --- a/templates/spineopt_template.json +++ b/templates/spineopt_template.json @@ -16,799 +16,799 @@ ["user_constraint", "A generic data-driven custom constraint.", 281473533931636] ], "relationship_classes": [ - ["connection__from_node", ["connection", "node"], "A flow on a `connection` from a `node`.", 280378317271897], - ["connection__from_node__investment_group", ["connection", "node", "investment_group"], "A flow on a `connection` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], - ["connection__from_node__user_constraint", ["connection", "node", "user_constraint"], "A flow on a `connection` from a `node` constrained by a `user_constraint`."], - ["connection__investment_group", ["connection", "investment_group"], "A `connection` that belongs in an `investment_group`."], - ["connection__investment_stochastic_structure", ["connection", "stochastic_structure"], "The `stochastic_structure` of a `connection` investment."], - ["connection__investment_temporal_block", ["connection", "temporal_block"], "The `temporal_block` of a `connection` investment."], - ["connection__node__node", ["connection", "node", "node"], "A `connection` acting over two `node`s."], - ["connection__to_node", ["connection", "node"], "A flow on a `connection` to a `node` .", 280378317271898], - ["connection__to_node__investment_group", ["connection", "node", "investment_group"], "A flow on a `connection` to a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], - ["connection__to_node__user_constraint", ["connection", "node", "user_constraint"], "A flow on a `connection` to a `node` constrained by a `user_constraint"], - ["connection__user_constraint", ["connection", "user_constraint"], "A `connection` investment constrained by a `user_constraint`."], - ["model__default_investment_stochastic_structure", ["model", "stochastic_structure"], "The default `stochastic_structure` of all investments in the `model`."], - ["model__default_investment_temporal_block", ["model", "temporal_block"], "The default `temporal_block` of all investments in the `model`."], - ["model__default_stochastic_structure", ["model", "stochastic_structure"], "The default `stochastic_structure` of the `model."], - ["model__default_temporal_block", ["model", "temporal_block"], "The default `temporal_block` of the `model`."], - ["model__report", ["model", "report"], "A `report` that should be written for the `model`."], - ["node__commodity", ["node", "commodity"], "A `commodity` for a `node`. Only a single `commodity` is permitted per `node`."], - ["node__investment_group", ["node", "investment_group"], "A `node` that belongs in an `investment_group`."], - ["node__investment_stochastic_structure", ["node", "stochastic_structure"], "The `stochastic_structure` of a `node` storage investment."], - ["node__investment_temporal_block", ["node", "temporal_block"], "The `temporal_block` of a `node` storage investment."], - ["node__node", ["node", "node"], "An interaction between two `node`s."], - ["node__stochastic_structure", ["node", "stochastic_structure"], "The `stochastic_structure` of a `node`. Only one `stochastic_structure` is permitted per `node`."], - ["node__temporal_block", ["node", "temporal_block"], "The `temporal_block` of a `node` and the corresponding `flow` variables."], - ["node__user_constraint", ["node", "user_constraint"], "A `node` state constrained by a `user_constraint`, or a `node` demand included in a `user_constraint`."], - ["parent_stochastic_scenario__child_stochastic_scenario", ["stochastic_scenario", "stochastic_scenario"], "A parent-child relationship between two `stochastic_scenario`s defining the master stochastic direct acyclic graph."], - ["report__output", ["report", "output"], "An `output` that should be included in a `report`."], - ["stage__child_stage", ["stage", "stage"], "A parent-child relationship between two `stage`s (EXPERIMENTAL)."], - ["stage__output__connection", ["stage", "output", "connection"], "An `output` that should be fixed by a `stage` for a `connection` in all its children (EXPERIMENTAL)."], - ["stage__output__node", ["stage", "output", "node"], "An `output` that should be fixed by a `stage` for a `node` in all its children (EXPERIMENTAL)."], - ["stage__output__unit", ["stage", "output", "unit"], "An `output` that should be fixed by a `stage` for a `unit` in all its children (EXPERIMENTAL)."], - ["stochastic_structure__stochastic_scenario", ["stochastic_structure", "stochastic_scenario"], "A `stochastic_scenarios` that belongs in a `stochastic_structure`."], - ["unit__commodity", ["unit", "commodity"], "Holds parameters for `commodities` used by the `unit`."], - ["unit__from_node", ["unit", "node"], "A flow on a `unit` from a `node`.", 281470681805657], - ["unit__from_node__investment_group", ["unit", "node", "investment_group"], "A flow on a `unit` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], - ["unit__from_node__user_constraint", ["unit", "node", "user_constraint"], "A flow on a `unit` from a `node` constrained by a `user_constraint`."], - ["unit__investment_group", ["unit", "investment_group"], "A `unit` that belongs in an `investment_group`."], - ["unit__investment_stochastic_structure", ["unit", "stochastic_structure"], "The `stochastic_structure` of a `unit` investment."], - ["unit__investment_temporal_block", ["unit", "temporal_block"], "The `temporal_block` of a `unit` investment."], - ["unit__node__node", ["unit", "node", "node"], "A `unit` acting over two `node`s."], - ["unit__to_node", ["unit", "node"], "A flow on a `unit` to a `node`.", 281470681805658], - ["unit__to_node__investment_group", ["unit", "node", "investment_group"], "A flow on a `unit` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], - ["unit__to_node__user_constraint", ["unit", "node", "user_constraint"], "A flow on a `unit` to a `node` constrained by a `user_constraint`."], - ["unit__user_constraint", ["unit", "user_constraint"], "A `unit` commitment constrained by a `user_constraint`."], - ["units_on__stochastic_structure", ["unit", "stochastic_structure"], "The `stochastic_structure` of a `unit` commitment. Only one `stochastic_structure` is permitted per `unit`."], - ["units_on__temporal_block", ["unit", "temporal_block"], "The `temporal_block` of a `unit` commitment."] + ["connection__from_node", ["connection", "node"], "A flow on a `connection` from a `node`.", 280378317271897], + ["connection__from_node__investment_group", ["connection", "node", "investment_group"], "A flow on a `connection` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], + ["connection__from_node__user_constraint", ["connection", "node", "user_constraint"], "A flow on a `connection` from a `node` constrained by a `user_constraint`."], + ["connection__investment_group", ["connection", "investment_group"], "A `connection` that belongs in an `investment_group`."], + ["connection__investment_stochastic_structure", ["connection", "stochastic_structure"], "The `stochastic_structure` of a `connection` investment."], + ["connection__investment_temporal_block", ["connection", "temporal_block"], "The `temporal_block` of a `connection` investment."], + ["connection__node__node", ["connection", "node", "node"], "A `connection` acting over two `node`s."], + ["connection__to_node", ["connection", "node"], "A flow on a `connection` to a `node` .", 280378317271898], + ["connection__to_node__investment_group", ["connection", "node", "investment_group"], "A flow on a `connection` to a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], + ["connection__to_node__user_constraint", ["connection", "node", "user_constraint"], "A flow on a `connection` to a `node` constrained by a `user_constraint"], + ["connection__user_constraint", ["connection", "user_constraint"], "A `connection` investment constrained by a `user_constraint`."], + ["model__default_investment_stochastic_structure", ["model", "stochastic_structure"], "The default `stochastic_structure` of all investments in the `model`."], + ["model__default_investment_temporal_block", ["model", "temporal_block"], "The default `temporal_block` of all investments in the `model`."], + ["model__default_stochastic_structure", ["model", "stochastic_structure"], "The default `stochastic_structure` of the `model."], + ["model__default_temporal_block", ["model", "temporal_block"], "The default `temporal_block` of the `model`."], + ["model__report", ["model", "report"], "A `report` that should be written for the `model`."], + ["node__commodity", ["node", "commodity"], "A `commodity` for a `node`. Only a single `commodity` is permitted per `node`."], + ["node__investment_group", ["node", "investment_group"], "A `node` that belongs in an `investment_group`."], + ["node__investment_stochastic_structure", ["node", "stochastic_structure"], "The `stochastic_structure` of a `node` storage investment."], + ["node__investment_temporal_block", ["node", "temporal_block"], "The `temporal_block` of a `node` storage investment."], + ["node__node", ["node", "node"], "An interaction between two `node`s."], + ["node__stochastic_structure", ["node", "stochastic_structure"], "The `stochastic_structure` of a `node`. Only one `stochastic_structure` is permitted per `node`."], + ["node__temporal_block", ["node", "temporal_block"], "The `temporal_block` of a `node` and the corresponding `flow` variables."], + ["node__user_constraint", ["node", "user_constraint"], "A `node` state constrained by a `user_constraint`, or a `node` demand included in a `user_constraint`."], + ["parent_stochastic_scenario__child_stochastic_scenario", ["stochastic_scenario", "stochastic_scenario"], "A parent-child relationship between two `stochastic_scenario`s defining the master stochastic direct acyclic graph."], + ["report__output", ["report", "output"], "An `output` that should be included in a `report`."], + ["stage__child_stage", ["stage", "stage"], "A parent-child relationship between two `stage`s (EXPERIMENTAL)."], + ["stage__output__connection", ["stage", "output", "connection"], "An `output` that should be fixed by a `stage` for a `connection` in all its children (EXPERIMENTAL)."], + ["stage__output__node", ["stage", "output", "node"], "An `output` that should be fixed by a `stage` for a `node` in all its children (EXPERIMENTAL)."], + ["stage__output__unit", ["stage", "output", "unit"], "An `output` that should be fixed by a `stage` for a `unit` in all its children (EXPERIMENTAL)."], + ["stochastic_structure__stochastic_scenario", ["stochastic_structure", "stochastic_scenario"], "A `stochastic_scenarios` that belongs in a `stochastic_structure`."], + ["unit__commodity", ["unit", "commodity"], "Holds parameters for `commodities` used by the `unit`."], + ["unit__from_node", ["unit", "node"], "A flow on a `unit` from a `node`.", 281470681805657], + ["unit__from_node__investment_group", ["unit", "node", "investment_group"], "A flow on a `unit` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], + ["unit__from_node__user_constraint", ["unit", "node", "user_constraint"], "A flow on a `unit` from a `node` constrained by a `user_constraint`."], + ["unit__investment_group", ["unit", "investment_group"], "A `unit` that belongs in an `investment_group`."], + ["unit__investment_stochastic_structure", ["unit", "stochastic_structure"], "The `stochastic_structure` of a `unit` investment."], + ["unit__investment_temporal_block", ["unit", "temporal_block"], "The `temporal_block` of a `unit` investment."], + ["unit__node__node", ["unit", "node", "node"], "A `unit` acting over two `node`s."], + ["unit__to_node", ["unit", "node"], "A flow on a `unit` to a `node`.", 281470681805658], + ["unit__to_node__investment_group", ["unit", "node", "investment_group"], "A flow on a `unit` from a `node` whose capacity should be counted in the capacity invested available of an `investment_group`."], + ["unit__to_node__user_constraint", ["unit", "node", "user_constraint"], "A flow on a `unit` to a `node` constrained by a `user_constraint`."], + ["unit__user_constraint", ["unit", "user_constraint"], "A `unit` commitment constrained by a `user_constraint`."], + ["units_on__stochastic_structure", ["unit", "stochastic_structure"], "The `stochastic_structure` of a `unit` commitment. Only one `stochastic_structure` is permitted per `unit`."], + ["units_on__temporal_block", ["unit", "temporal_block"], "The `temporal_block` of a `unit` commitment."] ], "parameter_value_lists": [ - ["balance_type_list", "balance_type_group"], - ["balance_type_list", "balance_type_node"], - ["balance_type_list", "balance_type_none"], - ["boolean_value_list", false], - ["boolean_value_list", true], - ["commodity_physics_list", "commodity_physics_lodf"], - ["commodity_physics_list", "commodity_physics_none"], - ["commodity_physics_list", "commodity_physics_ptdf"], - ["connection_investment_variable_type_list", "connection_investment_variable_type_continuous"], - ["connection_investment_variable_type_list", "connection_investment_variable_type_integer"], - ["connection_type_list", "connection_type_lossless_bidirectional"], - ["connection_type_list", "connection_type_normal"], - ["constraint_sense_list", "<="], - ["constraint_sense_list", "=="], - ["constraint_sense_list", ">="], - ["db_lp_solver_list", "CDCS.jl"], - ["db_lp_solver_list", "CDDLib.jl"], - ["db_lp_solver_list", "Clp.jl"], - ["db_lp_solver_list", "COSMO.jl"], - ["db_lp_solver_list", "CPLEX.jl"], - ["db_lp_solver_list", "CSDP.jl"], - ["db_lp_solver_list", "ECOS.jl"], - ["db_lp_solver_list", "GLPK.jl"], - ["db_lp_solver_list", "Gurobi.jl"], - ["db_lp_solver_list", "HiGHS.jl"], - ["db_lp_solver_list", "Hypatia.jl"], - ["db_lp_solver_list", "Ipopt.jl"], - ["db_lp_solver_list", "KNITRO.jl"], - ["db_lp_solver_list", "MadNLP.jl"], - ["db_lp_solver_list", "MosekTools.jl"], - ["db_lp_solver_list", "NLopt.jl"], - ["db_lp_solver_list", "OSQP.jl"], - ["db_lp_solver_list", "ProxSDP.jl"], - ["db_lp_solver_list", "SCIP.jl"], - ["db_lp_solver_list", "SCS.jl"], - ["db_lp_solver_list", "SDPA.jl"], - ["db_lp_solver_list", "SDPNAL.jl"], - ["db_lp_solver_list", "SDPT3.jl"], - ["db_lp_solver_list", "SeDuMi.jl"], - ["db_lp_solver_list", "Xpress.jl"], - ["db_mip_solver_list", "Cbc.jl"], - ["db_mip_solver_list", "CPLEX.jl"], - ["db_mip_solver_list", "GLPK.jl"], - ["db_mip_solver_list", "Gurobi.jl"], - ["db_mip_solver_list", "HiGHS.jl"], - ["db_mip_solver_list", "Juniper.jl"], - ["db_mip_solver_list", "KNITRO.jl"], - ["db_mip_solver_list", "MosekTools.jl"], - ["db_mip_solver_list", "SCIP.jl"], - ["db_mip_solver_list", "Xpress.jl"], - ["duration_unit_list", "hour"], - ["duration_unit_list", "minute"], - ["model_algorithm_list", "basic_algorithm"], - ["model_algorithm_list", "mga_algorithm"], - ["model_type_list", "spineopt_benders"], - ["model_type_list", "spineopt_other"], - ["model_type_list", "spineopt_standard"], - ["node_opf_type_list", "node_opf_type_normal"], - ["node_opf_type_list", "node_opf_type_reference"], - ["output_type_list","constraint_dual"], - ["output_type_list","derived_parameter"], - ["output_type_list","objective"], - ["output_type_list","postprocess_value"], - ["output_type_list","variable"], - ["output_type_list","variable_reduced_cost"], - ["output_type_list","solving_info"], - ["storage_investment_variable_type_list", "storage_investment_variable_type_continuous"], - ["storage_investment_variable_type_list", "storage_investment_variable_type_integer"], - ["unit_investment_variable_type_list", "unit_investment_variable_type_continuous"], - ["unit_investment_variable_type_list", "unit_investment_variable_type_integer"], - ["unit_online_variable_type_list", "unit_online_variable_type_binary"], - ["unit_online_variable_type_list", "unit_online_variable_type_integer"], - ["unit_online_variable_type_list", "unit_online_variable_type_linear"], - ["unit_online_variable_type_list", "unit_online_variable_type_none"], - ["write_mps_file_list", "write_mps_always"], - ["write_mps_file_list", "write_mps_never"], - ["write_mps_file_list", "write_mps_on_no_solve"] + ["balance_type_list", "balance_type_group"], + ["balance_type_list", "balance_type_node"], + ["balance_type_list", "balance_type_none"], + ["boolean_value_list", false], + ["boolean_value_list", true], + ["commodity_physics_list", "commodity_physics_lodf"], + ["commodity_physics_list", "commodity_physics_none"], + ["commodity_physics_list", "commodity_physics_ptdf"], + ["connection_investment_variable_type_list", "connection_investment_variable_type_continuous"], + ["connection_investment_variable_type_list", "connection_investment_variable_type_integer"], + ["connection_type_list", "connection_type_lossless_bidirectional"], + ["connection_type_list", "connection_type_normal"], + ["constraint_sense_list", "<="], + ["constraint_sense_list", "=="], + ["constraint_sense_list", ">="], + ["db_lp_solver_list", "CDCS.jl"], + ["db_lp_solver_list", "CDDLib.jl"], + ["db_lp_solver_list", "Clp.jl"], + ["db_lp_solver_list", "COSMO.jl"], + ["db_lp_solver_list", "CPLEX.jl"], + ["db_lp_solver_list", "CSDP.jl"], + ["db_lp_solver_list", "ECOS.jl"], + ["db_lp_solver_list", "GLPK.jl"], + ["db_lp_solver_list", "Gurobi.jl"], + ["db_lp_solver_list", "HiGHS.jl"], + ["db_lp_solver_list", "Hypatia.jl"], + ["db_lp_solver_list", "Ipopt.jl"], + ["db_lp_solver_list", "KNITRO.jl"], + ["db_lp_solver_list", "MadNLP.jl"], + ["db_lp_solver_list", "MosekTools.jl"], + ["db_lp_solver_list", "NLopt.jl"], + ["db_lp_solver_list", "OSQP.jl"], + ["db_lp_solver_list", "ProxSDP.jl"], + ["db_lp_solver_list", "SCIP.jl"], + ["db_lp_solver_list", "SCS.jl"], + ["db_lp_solver_list", "SDPA.jl"], + ["db_lp_solver_list", "SDPNAL.jl"], + ["db_lp_solver_list", "SDPT3.jl"], + ["db_lp_solver_list", "SeDuMi.jl"], + ["db_lp_solver_list", "Xpress.jl"], + ["db_mip_solver_list", "Cbc.jl"], + ["db_mip_solver_list", "CPLEX.jl"], + ["db_mip_solver_list", "GLPK.jl"], + ["db_mip_solver_list", "Gurobi.jl"], + ["db_mip_solver_list", "HiGHS.jl"], + ["db_mip_solver_list", "Juniper.jl"], + ["db_mip_solver_list", "KNITRO.jl"], + ["db_mip_solver_list", "MosekTools.jl"], + ["db_mip_solver_list", "SCIP.jl"], + ["db_mip_solver_list", "Xpress.jl"], + ["duration_unit_list", "hour"], + ["duration_unit_list", "minute"], + ["model_algorithm_list", "basic_algorithm"], + ["model_algorithm_list", "mga_algorithm"], + ["model_type_list", "spineopt_benders"], + ["model_type_list", "spineopt_other"], + ["model_type_list", "spineopt_standard"], + ["node_opf_type_list", "node_opf_type_normal"], + ["node_opf_type_list", "node_opf_type_reference"], + ["output_type_list","constraint_dual"], + ["output_type_list","derived_parameter"], + ["output_type_list","objective"], + ["output_type_list","postprocess_value"], + ["output_type_list","variable"], + ["output_type_list","variable_reduced_cost"], + ["output_type_list","solving_info"], + ["storage_investment_variable_type_list", "storage_investment_variable_type_continuous"], + ["storage_investment_variable_type_list", "storage_investment_variable_type_integer"], + ["unit_investment_variable_type_list", "unit_investment_variable_type_continuous"], + ["unit_investment_variable_type_list", "unit_investment_variable_type_integer"], + ["unit_online_variable_type_list", "unit_online_variable_type_binary"], + ["unit_online_variable_type_list", "unit_online_variable_type_integer"], + ["unit_online_variable_type_list", "unit_online_variable_type_linear"], + ["unit_online_variable_type_list", "unit_online_variable_type_none"], + ["write_mps_file_list", "write_mps_always"], + ["write_mps_file_list", "write_mps_never"], + ["write_mps_file_list", "write_mps_on_no_solve"] ], "object_parameters": [ - ["commodity", "commodity_lodf_tolerance", 0.1, null, "The minimum absolute value of the line outage distribution factor (LODF) that is considered meaningful."], - ["commodity", "commodity_physics", "commodity_physics_none", "commodity_physics_list", "Defines if the `commodity` follows lodf or ptdf physics."], - ["commodity", "commodity_physics_duration", null, null, "For how long the `commodity_physics` should apply relative to the start of the window."], - ["commodity", "commodity_ptdf_threshold", 0.001, null, "The minimum absolute value of the power transfer distribution factor (PTDF) that is considered meaningful."], - ["commodity", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["commodity", "mp_min_res_gen_to_demand_ratio", null, null, "Minimum ratio of renewable generation to demand for this commodity - used in the minimum renewable generation constraint within the Benders master problem"], - ["commodity", "mp_min_res_gen_to_demand_ratio_slack_penalty", null, null, "Penalty for violating the minimum renewable generation to demand ratio."], - ["connection", "benders_starting_connections_invested", null, null, "Fixes the number of connections invested during the first Benders iteration"], - ["connection", "candidate_connections", null, null, "The number of connections that may be invested in"], - ["connection", "connection_availability_factor", 1.0, null, "Availability of the `connection`, acting as a multiplier on its `connection_capacity`. Typically between 0-1."], - ["connection", "connection_contingency", null, "boolean_value_list", "A boolean flag for defining a contingency `connection`."], - ["connection", "connection_investment_cost", null, null, "The per unit investment cost for the connection over the `connection_investment_tech_lifetime`"], - ["connection", "connection_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A connection's decommissioning time, i.e., the time between the moment at which a connection decommissioning decision is takien, and the moment at which decommissioning is complete."], - ["connection", "connection_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], - ["connection", "connection_investment_econ_lifetime", null, null, "Determines the minimum economical investment lifetime of a connection."], - ["connection", "connection_investment_tech_lifetime", null, null, "Determines the maximum technical lifetime of a connection. Once invested, it remains in service for this long"], - ["connection", "connection_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `connection_lifetime` constraint sense."], - ["connection", "connection_investment_variable_type", "connection_investment_variable_type_integer", "connection_investment_variable_type_list", "Determines whether the investment variable is integer `variable_type_integer` or continuous `variable_type_continuous`"], - ["connection", "connection_monitored", false, "boolean_value_list", "A boolean flag for defining a contingency `connection`."], - ["connection", "connection_reactance", null, null, "The per unit reactance of a `connection`."], - ["connection", "connection_reactance_base", 1, null, "If the reactance is given for a p.u. (e.g. p.u. = 100MW), the `connection_reactance_base` can be set to perform this conversion (e.g. *100)."], - ["connection", "connection_resistance", null, null, "The per unit resistance of a `connection`."], - ["connection", "connection_type", "connection_type_normal", "connection_type_list", "A selector between a normal and a lossless bidirectional `connection`."], - ["connection", "connections_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate connections."], - ["connection", "connections_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: connections_invested) will be considered in the maximal-differences of the mga objective"], - ["connection", "connections_invested_mga_weight", 1, null, "Used to scale mga variables. For weightd sum mga method, the length of this weight given as an Array will determine the number of iterations."], - ["connection", "connection_lead_time", {"type": "duration", "data": "0h"}, null, "A connection's lead time, i.e., the time between the moment at which a connection investment decision is takien, and the moment at which the connection investment becomes operational."], - ["connection", "connection_discount_rate_technology_specific", 0.0 , null, "connection-specific discount rate used to calculate the connection's investment costs. If not specified, the model discount rate is used."], - ["connection", "fix_connections_invested", null, null, "Setting a value fixes the connections_invested variable accordingly"], - ["connection", "fix_connections_invested_available", null, null, "Setting a value fixes the connections_invested_available variable accordingly"], - ["connection", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["connection", "has_binary_gas_flow", false, "boolean_value_list", "This parameter needs to be set to `true` in order to represent bidirectional pressure drive gas transfer."], - ["connection", "initial_connections_invested", null, null, "Setting a value fixes the connections_invested variable at the beginning"], - ["connection", "initial_connections_invested_available", null, null, "Setting a value fixes the connections_invested_available variable at the beginning"], - ["connection", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["connection", "number_of_connections", 1.0, null, "Denotes the number of 'sub connections' aggregated to form the modelled `connection`."], - ["investment_group", "equal_investments", false, "boolean_value_list", "Whether all entities in the group must have the same investment decision."], - ["investment_group", "maximum_capacity_invested_available", null, null, "Upper bound on the capacity invested available in the group at any point in time."], - ["investment_group", "maximum_entities_invested_available", null, null, "Upper bound on the number of entities invested available in the group at any point in time."], - ["investment_group", "minimum_capacity_invested_available", null, null, "Lower bound on the capacity invested available in the group at any point in time."], - ["investment_group", "minimum_entities_invested_available", null, null, "Lower bound on the number of entities invested available in the group at any point in time."], - ["model", "big_m", 1000000, null, "Sufficiently large number used for linearization bilinear terms, e.g. to enforce bidirectional flow for gas pipielines"], - ["model", "db_lp_solver", "HiGHS.jl", "db_lp_solver_list", "Solver for MIP problems. Solver package must be added and pre-configured in Julia. Overrides lp_solver RunSpineOpt kwarg"], - ["model", "db_lp_solver_options", {"type": "map", "index_type": "str", "data": [["HiGHS.jl", {"type": "map", "index_type": "str", "data": [["presolve", "on"], ["time_limit", 300.01]]}], ["Clp.jl", {"type": "map", "index_type": "str", "data": [["LogLevel", 0.0]]}]]}, null, "Map parameter containing LP solver option name option value pairs. See solver documentation for supported solver options"], - ["model", "db_mip_solver", "HiGHS.jl", "db_mip_solver_list", "Solver for MIP problems. Solver package must be added and pre-configured in Julia. Overrides mip_solver RunSpineOpt kwarg"], - ["model", "db_mip_solver_options", {"type": "map", "index_type": "str", "data": [["HiGHS.jl", {"type": "map", "index_type": "str", "data": [["presolve", "on"], ["mip_rel_gap", 0.01], ["threads", 0.0], ["time_limit", 300.01]]}], ["Cbc.jl", {"type": "map", "index_type": "str", "data": [["ratioGap", 0.01], ["logLevel", 0.0]]}], ["CPLEX.jl", {"type": "map", "index_type": "str", "data": [["CPX_PARAM_EPGAP", 0.01]]}]]}, null, "Map parameter containing MIP solver option name option value pairs for MIP. See solver documentation for supported solver options"], - ["model", "duration_unit", "hour", "duration_unit_list", "Defines the base temporal unit of the `model`. Currently supported values are either an `hour` or a `minute`."], - ["model", "discount_rate", 0, null, "The discount rate used for the discounting of future cashflows"], - ["model", "discount_year", null, null, "The year to which all cashflows are discounted."], - ["model", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["model", "max_gap", 0.05, null, "Specifies the maximum optimality gap for the model. Currently only used for the master problem within a decomposed structure"], - ["model", "max_iterations", 10.0, null, "Specifies the maximum number of iterations for the model. Currently only used for the master problem within a decomposed structure"], - ["model", "max_mga_iterations", null, null, "Define the number of mga iterations, i.e. how many alternative solutions will be generated."], - ["model", "max_mga_slack", 0.05, null, "Defines the maximum slack by which the alternative solution may differ from the original solution (e.g. 5% more than initial objective function value)"], - ["model", "min_iterations", 1.0, null, "Specifies the minimum number of iterations for the model. Currently only used for the master problem within a decomposed structure"], - ["model", "model_algorithm", "basic_algorithm", "model_algorithm_list", "The algorithm to run (e.g., basic, MGA)"], - ["model", "model_end", {"type": "date_time", "data": "2000-01-02T00:00:00"}, null, "Defines the last timestamp to be modelled. Rolling optimization terminates after passing this point."], - ["model", "model_start", {"type": "date_time", "data": "2000-01-01T00:00:00"}, null, "Defines the first timestamp to be modelled. Relative `temporal_blocks` refer to this value for their start and end."], - ["model", "model_type", "spineopt_standard", "model_type_list", "The model type which gives the solution method (e.g. standerd, Benders)"], - ["model", "roll_forward", null, null, "Defines how much the model moves ahead in time between solves in a rolling optimization. If null, everything is solved in as a single optimization."], - ["model", "use_connection_intact_flow", true, "boolean_value_list", "Whether to use `connection_intact_flow` variables, to capture the impact of connection investments on network characteristics via line outage distribution factors (LODF)."], - ["model", "use_tight_compact_formulations", false, "boolean_value_list", "Whether to use tight and compact constraint formulations."], - ["model", "window_duration", null, null, "The duration of the window in case it differs from roll_forward"], - ["model", "window_weight", 1, null, "The weight of the window in the rolling subproblem"], - ["model", "use_milestone_years", false, "boolean_value_list", "If set to true, the investment models uses milestone years. In other words, operational temporal blocks for one (milestone) year will be scaled up by the discounted duration to represent the entire investment period."], - ["model", "use_economic_representation", false, "boolean_value_list", "If set to true, the investment models uses economic represenation, i.e., multi-year investments will be modeled considering discounts etc."], - ["model", "write_lodf_file", false, "boolean_value_list", "A boolean flag for whether the LODF values should be written to a results file."], - ["model", "write_mps_file", null, "write_mps_file_list", "A selector for writing an .mps file of the model."], - ["model", "write_ptdf_file", false, "boolean_value_list", "A boolean flag for whether the PTDF values should be written to a results file."], - ["node", "balance_type", "balance_type_node", "balance_type_list", "A selector for how the `nodal_balance` constraint should be handled."], - ["node", "benders_starting_storages_invested", null, null, "Fixes the number of storages invested during the first Benders iteration"], - ["node", "candidate_storages", null, null, "Determines the maximum number of new storages which may be invested in"], - ["node", "demand", 0.0, null, "Demand for the `commodity` of a `node`. Energy gains can be represented using negative `demand`."], - ["node", "downward_reserve", false, null, "Identifier for `node`s providing downward reserves"], - ["node", "fix_node_pressure", null, null, "Fixes the corresponding `node_pressure` variable to the provided value"], - ["node", "fix_node_state", null, null, "Fixes the corresponding `node_state` variable to the provided value. Can be used for e.g. fixing boundary conditions."], - ["node", "fix_node_voltage_angle", null, null, "Fixes the corresponding `node_voltage_angle` variable to the provided value"], - ["node", "fix_storages_invested", null, null, "Used to fix the value of the storages_invested variable"], - ["node", "fix_storages_invested_available", null, null, "Used to fix the value of the storages_invested_available variable"], - ["node", "frac_state_loss", 0.0, null, "Self-discharge coefficient for `node_state` variables. Effectively, represents the *loss power per unit of state*."], - ["node", "fractional_demand", 0.0, null, "The fraction of a `node` group's `demand` applied for the `node` in question."], - ["node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["node", "has_pressure", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_pressure` variable."], - ["node", "has_state", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_state` variable."], - ["node", "has_voltage_angle", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_voltage_angle` variable."], - ["node", "initial_node_pressure", null, null, "Initializes the corresponding `node_pressure` variable to the provided value"], - ["node", "initial_node_state", null, null, "Initializes the corresponding `node_state` variable to the provided value."], - ["node", "initial_node_voltage_angle", null, null, "Initializes the corresponding `node_voltage_angle` variable to the provided value"], - ["node", "initial_storages_invested", null, null, "Used to initialze the value of the storages_invested variable"], - ["node", "initial_storages_invested_available", null, null, "Used to initialze the value of the storages_invested_available variable"], - ["node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["node", "is_non_spinning", false, "boolean_value_list", "A boolean flag for whether a `node` is acting as a non-spinning reserve"], - ["node", "is_reserve_node", false, "boolean_value_list", "A boolean flag for whether a `node` is acting as a `reserve_node`"], - ["node", "max_node_pressure", null, null, "Maximum allowed gas pressure at `node`."], - ["node", "max_voltage_angle", null, null, "Maximum allowed voltage angle at `node`."], - ["node", "min_capacity_margin", null, null, "minimum capacity margin applying to the `node` or `node_group`"], - ["node", "min_capacity_margin_penalty", null, null, "penalty to apply to violations of the min capacity_margin constraint of the `node` or `node_group`"], - ["node", "min_node_pressure", null, null, "Minimum allowed gas pressure at `node`."], - ["node", "min_voltage_angle", null, null, "Minimum allowed voltage angle at `node`. "], - ["node", "minimum_reserve_activation_time", null, null, "Duration a certain reserve product needs to be online/available"], - ["node", "nodal_balance_sense", "==", "constraint_sense_list", "A selector for `nodal_balance` constraint sense."], - ["node", "node_opf_type", "node_opf_type_normal", "node_opf_type_list", "A selector for the reference `node` (slack bus) when PTDF-based DC load-flow is enabled."], - ["node", "node_slack_penalty", null, null, "A penalty cost for `node_slack_pos` and `node_slack_neg` variables. The slack variables won't be included in the model unless there's a cost defined for them."], - ["node", "node_state_cap", null, null, "The maximum permitted value for a `node_state` variable."], - ["node", "node_state_min", 0.0, null, "The minimum permitted value for a `node_state` variable."], - ["node", "number_of_storages", 1.0, null, "Denotes the number of 'sub storages' aggregated to form the modelled `node`."], - ["node", "state_coeff", 1.0, null, "Represents the `commodity` content of a `node_state` variable in respect to the `unit_flow` and `connection_flow` variables. Essentially, acts as a coefficient on the `node_state` variable in the `node_injection` constraint."], - ["node", "storage_lead_time", {"type": "duration", "data": "0h"}, null, "A storage's lead time, i.e., the time between the moment at which a storage investment decision is takien, and the moment at which the storage investment becomes operational."], - ["node", "storage_discount_rate_technology_specific", 0.0 , null, "storage-specific discount rate used to calculate the storage's investment costs. If not specified, the model discount rate is used."], - ["node", "storage_fom_cost", null, null, "Fixed operation and maintenance costs of a `node`. Essentially, a cost coefficient on the number of installed units and `node_state_cap` parameters. E.g. EUR/MWh"], - ["node", "storage_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A storage's decommissioning time, i.e., the time between the moment at which a storage decommissioning decision is takien, and the moment at which decommissioning is complete."], - ["node", "storage_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], - ["node", "storage_investment_econ_lifetime", null, null, "Economic lifetime for storage investment decisions."], - ["node", "storage_investment_tech_lifetime", null, null, "Maximum technical lifetime for storage investment decisions."], - ["node", "storage_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `storage_lifetime` constraint sense."], - ["node", "storage_investment_cost", null, null, "Determines the investment cost per unit state_cap over the investment life of a storage"], - ["node", "storage_investment_variable_type", "storage_investment_variable_type_integer", "storage_investment_variable_type_list", "Determines whether the storage investment variable is continuous (usually representing capacity) or integer (representing discrete units invested)"], - ["node", "storages_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate storages."], - ["node", "storages_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: storages_invested) will be considered in the maximal-differences of the mga objective"], - ["node", "storages_invested_mga_weight", 1, null, "Used to scale mga variables. For weighted-sum mga method, the length of this weight given as an Array will determine the number of iterations."], - ["node", "tax_in_unit_flow", null, null, "Tax costs for incoming `unit_flows` on this `node`. E.g. EUR/MWh."], - ["node", "tax_net_unit_flow", null, null, "Tax costs for net incoming and outgoing `unit_flows` on this `node`. Incoming flows accrue positive net taxes, and outgoing flows accrue negative net taxes."], - ["node", "tax_out_unit_flow", null, null, "Tax costs for outgoing `unit_flows` from this `node`. E.g. EUR/MWh."], - ["node", "upward_reserve", false, null, "Identifier for `node`s providing upward reserves"], - ["output", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["output", "output_resolution", null, null, "Temporal resolution of the output variables associated with this `output`."], - ["output", "output_type",null,"output_type_list","Type of this `output`."], - ["report", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["report", "output_db_url", null, null, "Database url for SpineOpt output."], - ["settings", "version", 15, null, "Current version of the SpineOpt data structure. Modify it at your own risk (but please don't)."], - ["stage", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["stage", "stage_scenario", null, null, "The scenario that this `stage` should run (EXPERIMENTAL)."], - ["stochastic_scenario", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["temporal_block", "block_end", null, null, "The end time for the `temporal_block`. Can be given either as a `DateTime` for a static end point, or as a `Duration` for an end point relative to the start of the current optimization."], - ["temporal_block", "block_start", null, null, "The start time for the `temporal_block`. Can be given either as a `DateTime` for a static start point, or as a `Duration` for an start point relative to the start of the current optimization."], - ["temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["temporal_block", "representative_periods_mapping", null, null, "Map from date time to representative temporal block name"], - ["temporal_block", "resolution", {"type": "duration", "data": "1h"}, null, "Temporal resolution of the `temporal_block`. Essentially, divides the period between `block_start` and `block_end` into `TimeSlices` with the input `resolution`."], - ["temporal_block", "weight", 1.0, null, "Weighting factor of the temporal block associated with the objective function"], - ["unit", "benders_starting_units_invested", null, null, "Fixes the number of units invested during the first Benders iteration"], - ["unit", "candidate_units", null, null, "Number of units which may be additionally constructed"], - ["unit", "curtailment_cost", null, null, "Costs for curtailing generation. Essentially, accrues costs whenever `unit_flow` not operating at its maximum available capacity. E.g. EUR/MWh"], - ["unit", "unit_discount_rate_technology_specific", 0.0 , null, "Unit-specific discount rate used to calculate the unit's investment costs. If not specified, the model discount rate is used."], - ["unit", "fix_units_invested", null, null, "Fix the value of the `units_invested` variable."], - ["unit", "fix_units_invested_available", null, null, "Fix the value of the `units_invested_available` variable"], - ["unit", "fix_units_on", null, null, "Fix the value of the `units_on` variable."], - ["unit", "fix_units_out_of_service", null, null, "Fix the value of the `units_out_of_service` variable."], - ["unit", "fom_cost", null, null, "Fixed operation and maintenance costs of a `unit`. Essentially, a cost coefficient on the existing units (incl. `number_of_units` and `units_invested_available`) and `unit_capacity` parameters. Currently, the value needs to be defined per duration unit (i.e. 1 hour), E.g. EUR/MW/h"], - ["unit", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit", "initial_units_invested", null, null, "Initialize the value of the `units_invested` variable."], - ["unit", "initial_units_invested_available", null, null, "Initialize the value of the `units_invested_available` variable"], - ["unit", "initial_units_on", null, null, "Initialize the value of the `units_on` variable."], - ["unit", "initial_units_out_of_service", null, null, "Initialize the value of the `units_out_of_service` variable."], - ["unit", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["unit", "is_renewable", false, "boolean_value_list", "Whether the unit is renewable - used in the minimum renewable generation constraint within the Benders master problem"], - ["unit", "min_down_time", null, null, "Minimum downtime of a `unit` after it shuts down."], - ["unit", "min_up_time", null, null, "Minimum uptime of a `unit` after it starts up."], - ["unit", "number_of_units", 1.0, null, "Denotes the number of 'sub units' aggregated to form the modelled `unit`."], - ["unit", "online_variable_type", "unit_online_variable_type_linear", "unit_online_variable_type_list", "A selector for how the `units_on` variable is represented within the model."], - ["unit", "outage_variable_type", "unit_online_variable_type_none", "unit_online_variable_type_list", "Determines whether the outage variable is integer or continuous or none(no optimisation of maintenance outages)."], - ["unit", "scheduled_outage_duration", null, null, "Specifies the amount of time a unit must be out of service for maintenance as a single block over the course of the optimisation window"], - ["unit", "shut_down_cost", null, null, "Costs of shutting down a 'sub unit', e.g. EUR/shutdown."], - ["unit", "start_up_cost", null, null, "Costs of starting up a 'sub unit', e.g. EUR/startup."], - ["unit", "unit_availability_factor", 1.0, null, "Availability of the `unit`, acting as a multiplier on its `unit_capacity`. Typically between 0-1."], - ["unit", "unit_investment_cost", null, null, "Investment cost per 'sub unit' built."], - ["unit", "unit_investment_variable_type", "unit_investment_variable_type_continuous", "unit_investment_variable_type_list", "Determines whether investment variable is integer or continuous."], - ["unit", "unit_investment_econ_lifetime", null, null, "Economic lifetime for unit investment decisions."], - ["unit", "unit_investment_tech_lifetime", null, null, "Maximum technical lifetime for unit investment decisions."], - ["unit", "unit_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `unit_lifetime` constraint sense."], - ["unit", "unit_lead_time", {"type": "duration", "data": "0h"}, null, "A unit's lead time, i.e., the time between the moment at which a unit investment decision is takien, and the moment at which the unit investment becomes operational."], - ["unit", "unit_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A unit's decommissioning time, i.e., the time between the moment at which a unit decommissioning decision is takien, and the moment at which decommissioning is complete."], - ["unit", "unit_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], - ["unit", "units_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate units."], - ["unit", "units_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: units_invested) will be considered in the maximal-differences of the mga objective"], - ["unit", "units_invested_mga_weight", 1, null, "Used to scale mga variables. For weightd sum mga method, the length of this weight given as an Array will determine the number of iterations."], - ["unit", "units_on_cost", null, null, "Objective function coefficient on `units_on`. An idling cost, for example"], - ["unit", "units_on_non_anticipativity_margin", null, null, "Margin by which `units_on` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["unit", "units_on_non_anticipativity_time", null, null, "Period of time where the value of the `units_on` variable has to be fixed to the result from the previous window."], - ["unit", "units_unavailable", 0, null, "Represents the number of units out of service"], - ["user_constraint", "constraint_sense", "==", "constraint_sense_list", "A selector for the sense of the `user_constraint`."], - ["user_constraint", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["user_constraint", "right_hand_side", 0.0, null, "The right-hand side, constant term in a `user_constraint`. Can be time-dependent and used e.g. for complicated efficiency approximations."], - ["user_constraint", "user_constraint_slack_penalty", null, null, "A penalty for violating a user constraint."] + ["commodity", "commodity_lodf_tolerance", 0.1, null, "The minimum absolute value of the line outage distribution factor (LODF) that is considered meaningful."], + ["commodity", "commodity_physics", "commodity_physics_none", "commodity_physics_list", "Defines if the `commodity` follows lodf or ptdf physics."], + ["commodity", "commodity_physics_duration", null, null, "For how long the `commodity_physics` should apply relative to the start of the window."], + ["commodity", "commodity_ptdf_threshold", 0.001, null, "The minimum absolute value of the power transfer distribution factor (PTDF) that is considered meaningful."], + ["commodity", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["commodity", "mp_min_res_gen_to_demand_ratio", null, null, "Minimum ratio of renewable generation to demand for this commodity - used in the minimum renewable generation constraint within the Benders master problem"], + ["commodity", "mp_min_res_gen_to_demand_ratio_slack_penalty", null, null, "Penalty for violating the minimum renewable generation to demand ratio."], + ["connection", "benders_starting_connections_invested", null, null, "Fixes the number of connections invested during the first Benders iteration"], + ["connection", "candidate_connections", null, null, "The number of connections that may be invested in"], + ["connection", "connection_availability_factor", 1.0, null, "Availability of the `connection`, acting as a multiplier on its `connection_capacity`. Typically between 0-1."], + ["connection", "connection_contingency", null, "boolean_value_list", "A boolean flag for defining a contingency `connection`."], + ["connection", "connection_investment_cost", null, null, "The per unit investment cost for the connection over the `connection_investment_tech_lifetime`"], + ["connection", "connection_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A connection's decommissioning time, i.e., the time between the moment at which a connection decommissioning decision is takien, and the moment at which decommissioning is complete."], + ["connection", "connection_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], + ["connection", "connection_investment_econ_lifetime", null, null, "Determines the minimum economical investment lifetime of a connection."], + ["connection", "connection_investment_tech_lifetime", null, null, "Determines the maximum technical lifetime of a connection. Once invested, it remains in service for this long"], + ["connection", "connection_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `connection_lifetime` constraint sense."], + ["connection", "connection_investment_variable_type", "connection_investment_variable_type_integer", "connection_investment_variable_type_list", "Determines whether the investment variable is integer `variable_type_integer` or continuous `variable_type_continuous`"], + ["connection", "connection_monitored", false, "boolean_value_list", "A boolean flag for defining a contingency `connection`."], + ["connection", "connection_reactance", null, null, "The per unit reactance of a `connection`."], + ["connection", "connection_reactance_base", 1, null, "If the reactance is given for a p.u. (e.g. p.u. = 100MW), the `connection_reactance_base` can be set to perform this conversion (e.g. *100)."], + ["connection", "connection_resistance", null, null, "The per unit resistance of a `connection`."], + ["connection", "connection_type", "connection_type_normal", "connection_type_list", "A selector between a normal and a lossless bidirectional `connection`."], + ["connection", "connections_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate connections."], + ["connection", "connections_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: connections_invested) will be considered in the maximal-differences of the mga objective"], + ["connection", "connections_invested_mga_weight", 1, null, "Used to scale mga variables. For weightd sum mga method, the length of this weight given as an Array will determine the number of iterations."], + ["connection", "connection_lead_time", {"type": "duration", "data": "0h"}, null, "A connection's lead time, i.e., the time between the moment at which a connection investment decision is takien, and the moment at which the connection investment becomes operational."], + ["connection", "connection_discount_rate_technology_specific", 0.0 , null, "connection-specific discount rate used to calculate the connection's investment costs. If not specified, the model discount rate is used."], + ["connection", "fix_connections_invested", null, null, "Setting a value fixes the connections_invested variable accordingly"], + ["connection", "fix_connections_invested_available", null, null, "Setting a value fixes the connections_invested_available variable accordingly"], + ["connection", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["connection", "has_binary_gas_flow", false, "boolean_value_list", "This parameter needs to be set to `true` in order to represent bidirectional pressure drive gas transfer."], + ["connection", "initial_connections_invested", null, null, "Setting a value fixes the connections_invested variable at the beginning"], + ["connection", "initial_connections_invested_available", null, null, "Setting a value fixes the connections_invested_available variable at the beginning"], + ["connection", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["connection", "number_of_connections", 1.0, null, "Denotes the number of 'sub connections' aggregated to form the modelled `connection`."], + ["investment_group", "equal_investments", false, "boolean_value_list", "Whether all entities in the group must have the same investment decision."], + ["investment_group", "maximum_capacity_invested_available", null, null, "Upper bound on the capacity invested available in the group at any point in time."], + ["investment_group", "maximum_entities_invested_available", null, null, "Upper bound on the number of entities invested available in the group at any point in time."], + ["investment_group", "minimum_capacity_invested_available", null, null, "Lower bound on the capacity invested available in the group at any point in time."], + ["investment_group", "minimum_entities_invested_available", null, null, "Lower bound on the number of entities invested available in the group at any point in time."], + ["model", "big_m", 1000000, null, "Sufficiently large number used for linearization bilinear terms, e.g. to enforce bidirectional flow for gas pipielines"], + ["model", "db_lp_solver", "HiGHS.jl", "db_lp_solver_list", "Solver for MIP problems. Solver package must be added and pre-configured in Julia. Overrides lp_solver RunSpineOpt kwarg"], + ["model", "db_lp_solver_options", {"type": "map", "index_type": "str", "data": [["HiGHS.jl", {"type": "map", "index_type": "str", "data": [["presolve", "on"], ["time_limit", 300.01]]}], ["Clp.jl", {"type": "map", "index_type": "str", "data": [["LogLevel", 0.0]]}]]}, null, "Map parameter containing LP solver option name option value pairs. See solver documentation for supported solver options"], + ["model", "db_mip_solver", "HiGHS.jl", "db_mip_solver_list", "Solver for MIP problems. Solver package must be added and pre-configured in Julia. Overrides mip_solver RunSpineOpt kwarg"], + ["model", "db_mip_solver_options", {"type": "map", "index_type": "str", "data": [["HiGHS.jl", {"type": "map", "index_type": "str", "data": [["presolve", "on"], ["mip_rel_gap", 0.01], ["threads", 0.0], ["time_limit", 300.01]]}], ["Cbc.jl", {"type": "map", "index_type": "str", "data": [["ratioGap", 0.01], ["logLevel", 0.0]]}], ["CPLEX.jl", {"type": "map", "index_type": "str", "data": [["CPX_PARAM_EPGAP", 0.01]]}]]}, null, "Map parameter containing MIP solver option name option value pairs for MIP. See solver documentation for supported solver options"], + ["model", "duration_unit", "hour", "duration_unit_list", "Defines the base temporal unit of the `model`. Currently supported values are either an `hour` or a `minute`."], + ["model", "discount_rate", 0, null, "The discount rate used for the discounting of future cashflows"], + ["model", "discount_year", null, null, "The year to which all cashflows are discounted."], + ["model", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["model", "max_gap", 0.05, null, "Specifies the maximum optimality gap for the model. Currently only used for the master problem within a decomposed structure"], + ["model", "max_iterations", 10.0, null, "Specifies the maximum number of iterations for the model. Currently only used for the master problem within a decomposed structure"], + ["model", "max_mga_iterations", null, null, "Define the number of mga iterations, i.e. how many alternative solutions will be generated."], + ["model", "max_mga_slack", 0.05, null, "Defines the maximum slack by which the alternative solution may differ from the original solution (e.g. 5% more than initial objective function value)"], + ["model", "min_iterations", 1.0, null, "Specifies the minimum number of iterations for the model. Currently only used for the master problem within a decomposed structure"], + ["model", "model_algorithm", "basic_algorithm", "model_algorithm_list", "The algorithm to run (e.g., basic, MGA)"], + ["model", "model_end", {"type": "date_time", "data": "2000-01-02T00:00:00"}, null, "Defines the last timestamp to be modelled. Rolling optimization terminates after passing this point."], + ["model", "model_start", {"type": "date_time", "data": "2000-01-01T00:00:00"}, null, "Defines the first timestamp to be modelled. Relative `temporal_blocks` refer to this value for their start and end."], + ["model", "model_type", "spineopt_standard", "model_type_list", "The model type which gives the solution method (e.g. standerd, Benders)"], + ["model", "roll_forward", null, null, "Defines how much the model moves ahead in time between solves in a rolling optimization. If null, everything is solved in as a single optimization."], + ["model", "use_connection_intact_flow", true, "boolean_value_list", "Whether to use `connection_intact_flow` variables, to capture the impact of connection investments on network characteristics via line outage distribution factors (LODF)."], + ["model", "use_tight_compact_formulations", false, "boolean_value_list", "Whether to use tight and compact constraint formulations."], + ["model", "window_duration", null, null, "The duration of the window in case it differs from roll_forward"], + ["model", "window_weight", 1, null, "The weight of the window in the rolling subproblem"], + ["model", "use_milestone_years", false, "boolean_value_list", "If set to true, the investment models uses milestone years. In other words, operational temporal blocks for one (milestone) year will be scaled up by the discounted duration to represent the entire investment period."], + ["model", "use_economic_representation", false, "boolean_value_list", "If set to true, the investment models uses economic represenation, i.e., multi-year investments will be modeled considering discounts etc."], + ["model", "write_lodf_file", false, "boolean_value_list", "A boolean flag for whether the LODF values should be written to a results file."], + ["model", "write_mps_file", null, "write_mps_file_list", "A selector for writing an .mps file of the model."], + ["model", "write_ptdf_file", false, "boolean_value_list", "A boolean flag for whether the PTDF values should be written to a results file."], + ["node", "balance_type", "balance_type_node", "balance_type_list", "A selector for how the `nodal_balance` constraint should be handled."], + ["node", "benders_starting_storages_invested", null, null, "Fixes the number of storages invested during the first Benders iteration"], + ["node", "candidate_storages", null, null, "Determines the maximum number of new storages which may be invested in"], + ["node", "demand", 0.0, null, "Demand for the `commodity` of a `node`. Energy gains can be represented using negative `demand`."], + ["node", "downward_reserve", false, null, "Identifier for `node`s providing downward reserves"], + ["node", "fix_node_pressure", null, null, "Fixes the corresponding `node_pressure` variable to the provided value"], + ["node", "fix_node_state", null, null, "Fixes the corresponding `node_state` variable to the provided value. Can be used for e.g. fixing boundary conditions."], + ["node", "fix_node_voltage_angle", null, null, "Fixes the corresponding `node_voltage_angle` variable to the provided value"], + ["node", "fix_storages_invested", null, null, "Used to fix the value of the storages_invested variable"], + ["node", "fix_storages_invested_available", null, null, "Used to fix the value of the storages_invested_available variable"], + ["node", "frac_state_loss", 0.0, null, "Self-discharge coefficient for `node_state` variables. Effectively, represents the *loss power per unit of state*."], + ["node", "fractional_demand", 0.0, null, "The fraction of a `node` group's `demand` applied for the `node` in question."], + ["node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["node", "has_pressure", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_pressure` variable."], + ["node", "has_state", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_state` variable."], + ["node", "has_voltage_angle", false, "boolean_value_list", "A boolean flag for whether a `node` has a `node_voltage_angle` variable."], + ["node", "initial_node_pressure", null, null, "Initializes the corresponding `node_pressure` variable to the provided value"], + ["node", "initial_node_state", null, null, "Initializes the corresponding `node_state` variable to the provided value."], + ["node", "initial_node_voltage_angle", null, null, "Initializes the corresponding `node_voltage_angle` variable to the provided value"], + ["node", "initial_storages_invested", null, null, "Used to initialze the value of the storages_invested variable"], + ["node", "initial_storages_invested_available", null, null, "Used to initialze the value of the storages_invested_available variable"], + ["node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["node", "is_non_spinning", false, "boolean_value_list", "A boolean flag for whether a `node` is acting as a non-spinning reserve"], + ["node", "is_reserve_node", false, "boolean_value_list", "A boolean flag for whether a `node` is acting as a `reserve_node`"], + ["node", "max_node_pressure", null, null, "Maximum allowed gas pressure at `node`."], + ["node", "max_voltage_angle", null, null, "Maximum allowed voltage angle at `node`."], + ["node", "min_capacity_margin", null, null, "minimum capacity margin applying to the `node` or `node_group`"], + ["node", "min_capacity_margin_penalty", null, null, "penalty to apply to violations of the min capacity_margin constraint of the `node` or `node_group`"], + ["node", "min_node_pressure", null, null, "Minimum allowed gas pressure at `node`."], + ["node", "min_voltage_angle", null, null, "Minimum allowed voltage angle at `node`. "], + ["node", "minimum_reserve_activation_time", null, null, "Duration a certain reserve product needs to be online/available"], + ["node", "nodal_balance_sense", "==", "constraint_sense_list", "A selector for `nodal_balance` constraint sense."], + ["node", "node_opf_type", "node_opf_type_normal", "node_opf_type_list", "A selector for the reference `node` (slack bus) when PTDF-based DC load-flow is enabled."], + ["node", "node_slack_penalty", null, null, "A penalty cost for `node_slack_pos` and `node_slack_neg` variables. The slack variables won't be included in the model unless there's a cost defined for them."], + ["node", "node_state_cap", null, null, "The maximum permitted value for a `node_state` variable."], + ["node", "node_state_min", 0.0, null, "The minimum permitted value for a `node_state` variable."], + ["node", "number_of_storages", 1.0, null, "Denotes the number of 'sub storages' aggregated to form the modelled `node`."], + ["node", "state_coeff", 1.0, null, "Represents the `commodity` content of a `node_state` variable in respect to the `unit_flow` and `connection_flow` variables. Essentially, acts as a coefficient on the `node_state` variable in the `node_injection` constraint."], + ["node", "storage_lead_time", {"type": "duration", "data": "0h"}, null, "A storage's lead time, i.e., the time between the moment at which a storage investment decision is takien, and the moment at which the storage investment becomes operational."], + ["node", "storage_discount_rate_technology_specific", 0.0 , null, "storage-specific discount rate used to calculate the storage's investment costs. If not specified, the model discount rate is used."], + ["node", "storage_fom_cost", null, null, "Fixed operation and maintenance costs of a `node`. Essentially, a cost coefficient on the number of installed units and `node_state_cap` parameters. E.g. EUR/MWh"], + ["node", "storage_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A storage's decommissioning time, i.e., the time between the moment at which a storage decommissioning decision is takien, and the moment at which decommissioning is complete."], + ["node", "storage_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], + ["node", "storage_investment_econ_lifetime", null, null, "Economic lifetime for storage investment decisions."], + ["node", "storage_investment_tech_lifetime", null, null, "Maximum technical lifetime for storage investment decisions."], + ["node", "storage_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `storage_lifetime` constraint sense."], + ["node", "storage_investment_cost", null, null, "Determines the investment cost per unit state_cap over the investment life of a storage"], + ["node", "storage_investment_variable_type", "storage_investment_variable_type_integer", "storage_investment_variable_type_list", "Determines whether the storage investment variable is continuous (usually representing capacity) or integer (representing discrete units invested)"], + ["node", "storages_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate storages."], + ["node", "storages_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: storages_invested) will be considered in the maximal-differences of the mga objective"], + ["node", "storages_invested_mga_weight", 1, null, "Used to scale mga variables. For weighted-sum mga method, the length of this weight given as an Array will determine the number of iterations."], + ["node", "tax_in_unit_flow", null, null, "Tax costs for incoming `unit_flows` on this `node`. E.g. EUR/MWh."], + ["node", "tax_net_unit_flow", null, null, "Tax costs for net incoming and outgoing `unit_flows` on this `node`. Incoming flows accrue positive net taxes, and outgoing flows accrue negative net taxes."], + ["node", "tax_out_unit_flow", null, null, "Tax costs for outgoing `unit_flows` from this `node`. E.g. EUR/MWh."], + ["node", "upward_reserve", false, null, "Identifier for `node`s providing upward reserves"], + ["output", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["output", "output_resolution", null, null, "Temporal resolution of the output variables associated with this `output`."], + ["output", "output_type",null,"output_type_list","Type of this `output`."], + ["report", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["report", "output_db_url", null, null, "Database url for SpineOpt output."], + ["settings", "version", 15, null, "Current version of the SpineOpt data structure. Modify it at your own risk (but please don't)."], + ["stage", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["stage", "stage_scenario", null, null, "The scenario that this `stage` should run (EXPERIMENTAL)."], + ["stochastic_scenario", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["temporal_block", "block_end", null, null, "The end time for the `temporal_block`. Can be given either as a `DateTime` for a static end point, or as a `Duration` for an end point relative to the start of the current optimization."], + ["temporal_block", "block_start", null, null, "The start time for the `temporal_block`. Can be given either as a `DateTime` for a static start point, or as a `Duration` for an start point relative to the start of the current optimization."], + ["temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["temporal_block", "representative_periods_mapping", null, null, "Map from date time to representative temporal block name"], + ["temporal_block", "resolution", {"type": "duration", "data": "1h"}, null, "Temporal resolution of the `temporal_block`. Essentially, divides the period between `block_start` and `block_end` into `TimeSlices` with the input `resolution`."], + ["temporal_block", "weight", 1.0, null, "Weighting factor of the temporal block associated with the objective function"], + ["unit", "benders_starting_units_invested", null, null, "Fixes the number of units invested during the first Benders iteration"], + ["unit", "candidate_units", null, null, "Number of units which may be additionally constructed"], + ["unit", "curtailment_cost", null, null, "Costs for curtailing generation. Essentially, accrues costs whenever `unit_flow` not operating at its maximum available capacity. E.g. EUR/MWh"], + ["unit", "unit_discount_rate_technology_specific", 0.0 , null, "Unit-specific discount rate used to calculate the unit's investment costs. If not specified, the model discount rate is used."], + ["unit", "fix_units_invested", null, null, "Fix the value of the `units_invested` variable."], + ["unit", "fix_units_invested_available", null, null, "Fix the value of the `units_invested_available` variable"], + ["unit", "fix_units_on", null, null, "Fix the value of the `units_on` variable."], + ["unit", "fix_units_out_of_service", null, null, "Fix the value of the `units_out_of_service` variable."], + ["unit", "fom_cost", null, null, "Fixed operation and maintenance costs of a `unit`. Essentially, a cost coefficient on the existing units (incl. `number_of_units` and `units_invested_available`) and `unit_capacity` parameters. Currently, the value needs to be defined per duration unit (i.e. 1 hour), E.g. EUR/MW/h"], + ["unit", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit", "initial_units_invested", null, null, "Initialize the value of the `units_invested` variable."], + ["unit", "initial_units_invested_available", null, null, "Initialize the value of the `units_invested_available` variable"], + ["unit", "initial_units_on", null, null, "Initialize the value of the `units_on` variable."], + ["unit", "initial_units_out_of_service", null, null, "Initialize the value of the `units_out_of_service` variable."], + ["unit", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["unit", "is_renewable", false, "boolean_value_list", "Whether the unit is renewable - used in the minimum renewable generation constraint within the Benders master problem"], + ["unit", "min_down_time", null, null, "Minimum downtime of a `unit` after it shuts down."], + ["unit", "min_up_time", null, null, "Minimum uptime of a `unit` after it starts up."], + ["unit", "number_of_units", 1.0, null, "Denotes the number of 'sub units' aggregated to form the modelled `unit`."], + ["unit", "online_variable_type", "unit_online_variable_type_linear", "unit_online_variable_type_list", "A selector for how the `units_on` variable is represented within the model."], + ["unit", "outage_variable_type", "unit_online_variable_type_none", "unit_online_variable_type_list", "Determines whether the outage variable is integer or continuous or none(no optimisation of maintenance outages)."], + ["unit", "scheduled_outage_duration", null, null, "Specifies the amount of time a unit must be out of service for maintenance as a single block over the course of the optimisation window"], + ["unit", "shut_down_cost", null, null, "Costs of shutting down a 'sub unit', e.g. EUR/shutdown."], + ["unit", "start_up_cost", null, null, "Costs of starting up a 'sub unit', e.g. EUR/startup."], + ["unit", "unit_availability_factor", 1.0, null, "Availability of the `unit`, acting as a multiplier on its `unit_capacity`. Typically between 0-1."], + ["unit", "unit_investment_cost", null, null, "Investment cost per 'sub unit' built."], + ["unit", "unit_investment_variable_type", "unit_investment_variable_type_continuous", "unit_investment_variable_type_list", "Determines whether investment variable is integer or continuous."], + ["unit", "unit_investment_econ_lifetime", null, null, "Economic lifetime for unit investment decisions."], + ["unit", "unit_investment_tech_lifetime", null, null, "Maximum technical lifetime for unit investment decisions."], + ["unit", "unit_investment_lifetime_sense", ">=", "constraint_sense_list", "A selector for `unit_lifetime` constraint sense."], + ["unit", "unit_lead_time", {"type": "duration", "data": "0h"}, null, "A unit's lead time, i.e., the time between the moment at which a unit investment decision is takien, and the moment at which the unit investment becomes operational."], + ["unit", "unit_decommissioning_time", {"type": "duration", "data": "0h"}, null, "A unit's decommissioning time, i.e., the time between the moment at which a unit decommissioning decision is takien, and the moment at which decommissioning is complete."], + ["unit", "unit_decommissioning_cost", null, null, "Costs associated with decommissioning a power plant. The costs will b discounted to the `discount_year``at distribted equally over the decommissioning time."], + ["unit", "units_invested_big_m_mga", null, null, "big_m_mga should be chosen as small as possible but sufficiently large. For units_invested_mga an appropriate big_m_mga would be twice the candidate units."], + ["unit", "units_invested_mga", false, "boolean_value_list", "Defines whether a certain variable (here: units_invested) will be considered in the maximal-differences of the mga objective"], + ["unit", "units_invested_mga_weight", 1, null, "Used to scale mga variables. For weightd sum mga method, the length of this weight given as an Array will determine the number of iterations."], + ["unit", "units_on_cost", null, null, "Objective function coefficient on `units_on`. An idling cost, for example"], + ["unit", "units_on_non_anticipativity_margin", null, null, "Margin by which `units_on` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["unit", "units_on_non_anticipativity_time", null, null, "Period of time where the value of the `units_on` variable has to be fixed to the result from the previous window."], + ["unit", "units_unavailable", 0, null, "Represents the number of units out of service"], + ["user_constraint", "constraint_sense", "==", "constraint_sense_list", "A selector for the sense of the `user_constraint`."], + ["user_constraint", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["user_constraint", "right_hand_side", 0.0, null, "The right-hand side, constant term in a `user_constraint`. Can be time-dependent and used e.g. for complicated efficiency approximations."], + ["user_constraint", "user_constraint_slack_penalty", null, null, "A penalty for violating a user constraint."] ], "relationship_parameters": [ - ["connection__from_node", "connection_capacity", null, null, "Limits the `connection_flow` variable from the `from_node`. `from_node` can be a group of `nodes`, in which case the sum of the `connection_flow` is constrained."], - ["connection__from_node", "connection_conv_cap_to_flow", 1.0, null, "Optional coefficient for `connection_capacity` unit conversions in the case that the `connection_capacity` value is incompatible with the desired `connection_flow` units."], - ["connection__from_node", "connection_emergency_capacity", null, null, "Post contingency flow capacity of a `connection`. Sometimes referred to as emergency rating"], - ["connection__from_node", "connection_flow_cost", null, null, "Variable costs of a flow through a `connection`. E.g. EUR/MWh of energy throughput."], - ["connection__from_node", "connection_flow_non_anticipativity_margin", null, null, "Margin by which `connection_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["connection__from_node", "connection_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_flow` variable has to be fixed to the result from the previous window."], - ["connection__from_node", "connection_intact_flow_non_anticipativity_margin", null, null, "Margin by which `connection_intact_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["connection__from_node", "connection_intact_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_intact_flow` variable has to be fixed to the result from the previous window."], - ["connection__from_node", "fix_binary_gas_connection_flow", null, null, "Fix the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], - ["connection__from_node", "fix_connection_flow", null, null, "Fix the value of the `connection_flow` variable."], - ["connection__from_node", "fix_connection_intact_flow", null, null, "Fix the value of the `connection_intact_flow` variable."], - ["connection__from_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["connection__from_node", "initial_binary_gas_connection_flow", null, null, "Initialize the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], - ["connection__from_node", "initial_connection_flow", null, null, "Initialize the value of the `connection_flow` variable."], - ["connection__from_node", "initial_connection_intact_flow", null, null, "Initialize the value of the `connection_intact_flow` variable."], - ["connection__from_node__user_constraint", "connection_flow_coefficient", 0.0, null, "defines the user constraint coefficient on the connection flow variable in the from direction"], - ["connection__node__node", "compression_factor", null, null, "The compression factor establishes a compression from an origin node to a receiving node, which are connected through a connection. The first node corresponds to the origin node, the second to the (compressed) destination node. Typically the value is >=1."], - ["connection__node__node", "connection_flow_delay", {"type": "duration", "data": "0h"}, null, "Delays the `connection_flows` associated with the latter `node` in respect to the `connection_flows` associated with the first `node`."], - ["connection__node__node", "connection_linepack_constant", null, null, "The linepack constant is a property of gas pipelines and relates the linepack to the pressure of the adjacent nodes."], - ["connection__node__node", "fix_ratio_out_in_connection_flow", null, null, "Fix the ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], - ["connection__node__node", "fixed_pressure_constant_0", null, null, "Fixed pressure points for pipelines for the outer approximation of the Weymouth approximation. The direction of flow is the first node in the relationship to the second node in the relationship."], - ["connection__node__node", "fixed_pressure_constant_1", null, null, "Fixed pressure points for pipelines for the outer approximation of the Weymouth approximation. The direction of flow is the first node in the relationship to the second node in the relationship."], - ["connection__node__node", "max_ratio_out_in_connection_flow", null, null, "Maximum ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], - ["connection__node__node", "min_ratio_out_in_connection_flow", null, null, "Minimum ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], - ["connection__to_node", "connection_capacity", null, null, "Limits the `connection_flow` variable to the `to_node`. `to_node` can be a group of `nodes`, in which case the sum of the `connection_flow` is constrained."], - ["connection__to_node", "connection_conv_cap_to_flow", 1.0, null, "Optional coefficient for `connection_capacity` unit conversions in the case the `connection_capacity` value is incompatible with the desired `connection_flow` units."], - ["connection__to_node", "connection_emergency_capacity", null, null, "The maximum post-contingency flow on a monitored `connection`."], - ["connection__to_node", "connection_flow_cost", null, null, "Variable costs of a flow through a `connection`. E.g. EUR/MWh of energy throughput."], - ["connection__to_node", "connection_flow_non_anticipativity_margin", null, null, "Margin by which `connection_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["connection__to_node", "connection_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_flow` variable has to be fixed to the result from the previous window."], - ["connection__to_node", "connection_intact_flow_non_anticipativity_margin", null, null, "Margin by which `connection_intact_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["connection__to_node", "connection_intact_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_intact_flow` variable has to be fixed to the result from the previous window."], - ["connection__to_node", "fix_binary_gas_connection_flow", null, null, "Fix the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], - ["connection__to_node", "fix_connection_flow", null, null, "Fix the value of the `connection_flow` variable."], - ["connection__to_node", "fix_connection_intact_flow", null, null, "Fix the value of the `connection_intact_flow` variable."], - ["connection__to_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["connection__to_node", "initial_binary_gas_connection_flow", null, null, "Initialize the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], - ["connection__to_node", "initial_connection_flow", null, null, "Initialize the value of the `connection_flow` variable."], - ["connection__to_node", "initial_connection_intact_flow", null, null, "Initialize the value of the `connection_intact_flow` variable."], - ["connection__to_node__user_constraint", "connection_flow_coefficient", 0.0, null, "defines the user constraint coefficient on the connection flow variable in the to direction"], - ["connection__user_constraint", "connections_invested_available_coefficient", 0.0, null, "coefficient of `connections_invested_available` in the specific `user_constraint`"], - ["connection__user_constraint", "connections_invested_coefficient", 0.0, null, "coefficient of `connections_invested` in the specific `user_constraint`"], - ["node__node", "diff_coeff", 0.0, null, "Commodity diffusion coefficient between two `nodes`. Effectively, denotes the *diffusion power per unit of state* from the first `node` to the second."], - ["node__stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["node__temporal_block", "cyclic_condition", false, "boolean_value_list", "If the cyclic condition is set to true for a storage node, the `node_state` at the end of the optimization window has to be larger than or equal to the initial storage state."], - ["node__temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["node__user_constraint", "demand_coefficient", 0.0, null, "coefficient of the specified node's demand in the specified user constraint"], - ["node__user_constraint", "node_state_coefficient", 0.0, null, "Coefficient of the specified node's state variable in the specified user constraint."], - ["node__user_constraint", "storages_invested_available_coefficient", 0.0, null, "Coefficient of the specified node's storages invested available variable in the specified user constraint."], - ["node__user_constraint", "storages_invested_coefficient", 0.0 , null, "Coefficient of the specified node's storage investment variable in the specified user constraint."], - ["report__output", "overwrite_results_on_rolling", true, null, "Whether or not results from further windows should overwrite results from previous ones."], - ["stage__output__connection", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], - ["stage__output__node", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], - ["stage__output__unit", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], - ["stochastic_structure__stochastic_scenario", "stochastic_scenario_end", null, null, "A `Duration` for when a `stochastic_scenario` ends and its `child_stochastic_scenarios` start. Values are interpreted relative to the start of the current solve, and if no value is given, the `stochastic_scenario` is assumed to continue indefinitely."], - ["stochastic_structure__stochastic_scenario", "weight_relative_to_parents", 1.0, null, "The weight of the `stochastic_scenario` in the objective function relative to its parents."], - ["unit__commodity", "max_cum_in_unit_flow_bound", null, null, "Set a maximum cumulative upper bound for a `unit_flow`"], - ["unit__from_node", "fix_nonspin_units_started_up", null, null, "Fix the `nonspin_units_started_up` variable."], - ["unit__from_node", "fix_unit_flow", null, null, "Fix the `unit_flow` variable."], - ["unit__from_node", "fix_unit_flow_op", null, null, "Fix the `unit_flow_op` variable."], - ["unit__from_node", "fuel_cost", null, null, "Variable fuel costs than can be attributed to a `unit_flow`. E.g. EUR/MWh"], - ["unit__from_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit__from_node", "initial_nonspin_units_started_up", null, null, "Initialize the `nonspin_units_started_up` variable."], - ["unit__from_node", "initial_unit_flow", null, null, "Initialize the `unit_flow` variable."], - ["unit__from_node", "initial_unit_flow_op", null, null, "Initialize the `unit_flow_op` variable."], - ["unit__from_node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["unit__from_node", "max_total_cumulated_unit_flow_from_node", null, null, "Bound on the maximum cumulated flows of a unit group from a node group e.g max consumption of certain commodity."], - ["unit__from_node", "min_total_cumulated_unit_flow_from_node", null, null, "Bound on the minimum cumulated flows of a unit group from a node group."], - ["unit__from_node", "min_unit_flow", 0.0, null, "Set lower bound of the `unit_flow` variable."], - ["unit__from_node", "minimum_operating_point", null, null, "Minimum level for the `unit_flow` relative to the `units_on` online capacity."], - ["unit__from_node", "operating_points", null, null, "Operating points for piecewise-linear `unit` efficiency approximations."], - ["unit__from_node", "ordered_unit_flow_op", false, "boolean_value_list", "Defines whether the segments of this unit flow are ordered as per the rank of their operating points."], - ["unit__from_node", "ramp_down_limit", null, null, "Limit the maximum ramp-down rate of an online unit, given as a fraction of the unit_capacity. [ramp_down_limit] = %/t, e.g. 0.2/h"], - ["unit__from_node", "ramp_up_limit", null, null, "Limit the maximum ramp-up rate of an online unit, given as a fraction of the unit_capacity. [ramp_up_limit] = %/t, e.g. 0.2/h"], - ["unit__from_node", "reserve_procurement_cost", null, null, "Procurement cost for reserves"], - ["unit__from_node", "shut_down_limit", null, null, "Maximum ramp-down during shutdowns"], - ["unit__from_node", "start_up_limit", null, null, "Maximum ramp-up during startups"], - ["unit__from_node", "unit_capacity", null, null, "Maximum `unit_flow` capacity of a single 'sub_unit' of the `unit`."], - ["unit__from_node", "unit_conv_cap_to_flow", 1.0, null, "Optional coefficient for `unit_capacity` unit conversions in the case the `unit_capacity` value is incompatible with the desired `unit_flow` units."], - ["unit__from_node", "unit_flow_non_anticipativity_margin", null, null, "Margin by which `unit_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["unit__from_node", "unit_flow_non_anticipativity_time", null, null, "Period of time where the value of the `unit_flow` variable has to be fixed to the result from the previous window."], - ["unit__from_node", "vom_cost", null, null, "Variable operating costs of a `unit_flow` variable. E.g. EUR/MWh."], - ["unit__from_node__user_constraint", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit__from_node__user_constraint", "unit_flow_coefficient", 0.0, null, "Coefficient of a `unit_flow` variable for a custom `user_constraint`."], - ["unit__node__node", "fix_ratio_in_in_unit_flow", null, null, "Fix the ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], - ["unit__node__node", "fix_ratio_in_out_unit_flow", null, null, "Fix the ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], - ["unit__node__node", "fix_ratio_out_in_unit_flow", null, null, "Fix the ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], - ["unit__node__node", "fix_ratio_out_out_unit_flow", null, null, "Fix the ratio between two `unit_flows` going from the `unit` into the two `nodes`."], - ["unit__node__node", "fix_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_in_in_unit_flow` constraint."], - ["unit__node__node", "fix_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_in_out_unit_flow` constraint."], - ["unit__node__node", "fix_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_out_in_unit_flow` constraint."], - ["unit__node__node", "fix_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_out_out_unit_flow` constraint."], - ["unit__node__node", "max_ratio_in_in_unit_flow", null, null, "Maximum ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], - ["unit__node__node", "max_ratio_in_out_unit_flow", null, null, "Maximum ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], - ["unit__node__node", "max_ratio_out_in_unit_flow", null, null, "Maximum ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], - ["unit__node__node", "max_ratio_out_out_unit_flow", null, null, "Maximum ratio between two `unit_flows` going from the `unit` into the two `nodes`."], - ["unit__node__node", "max_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_in_in_unit_flow` constraint."], - ["unit__node__node", "max_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_in_out_unit_flow` constraint."], - ["unit__node__node", "max_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_out_in_unit_flow` constraint."], - ["unit__node__node", "max_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_out_out_unit_flow` constraint."], - ["unit__node__node", "min_ratio_in_in_unit_flow", null, null, "Minimum ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], - ["unit__node__node", "min_ratio_in_out_unit_flow", null, null, "Minimum ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], - ["unit__node__node", "min_ratio_out_in_unit_flow", null, null, "Minimum ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], - ["unit__node__node", "min_ratio_out_out_unit_flow", null, null, "Minimum ratio between two `unit_flows` going from the `unit` into the two `nodes`."], - ["unit__node__node", "min_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_in_in_unit_flow` constraint."], - ["unit__node__node", "min_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_in_out_unit_flow` constraint."], - ["unit__node__node", "min_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_out_in_unit_flow` constraint."], - ["unit__node__node", "min_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_out_out_unit_flow` constraint."], - ["unit__node__node", "unit_start_flow", 0.0, null, "Flow from node1 that is incurred when a unit is started up."], - ["unit__to_node", "fix_nonspin_units_shut_down", null, null, "Fix the `nonspin_units_shut_down` variable."], - ["unit__to_node", "fix_nonspin_units_started_up", null, null, "Fix the `nonspin_units_started_up` variable."], - ["unit__to_node", "fix_unit_flow", null, null, "Fix the `unit_flow` variable."], - ["unit__to_node", "fix_unit_flow_op", null, null, "Fix the `unit_flow_op` variable."], - ["unit__to_node", "fuel_cost", null, null, "Variable fuel costs than can be attributed to a `unit_flow`. E.g. EUR/MWh"], - ["unit__to_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit__to_node", "initial_nonspin_units_shut_down", null, null, "Initialize the `nonspin_units_shut_down` variable."], - ["unit__to_node", "initial_nonspin_units_started_up", null, null, "Initialize the `nonspin_units_started_up` variable."], - ["unit__to_node", "initial_unit_flow", null, null, "Initialize the `unit_flow` variable."], - ["unit__to_node", "initial_unit_flow_op", null, null, "Initialize the `unit_flow_op` variable."], - ["unit__to_node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["unit__to_node", "max_total_cumulated_unit_flow_to_node", null, null, "Bound on the maximum cumulated flows of a unit group to a node group, e.g. total GHG emissions."], - ["unit__to_node", "min_total_cumulated_unit_flow_to_node", null, null, "Bound on the minimum cumulated flows of a unit group to a node group, e.g. total renewable production."], - ["unit__to_node", "min_unit_flow", 0.0, null, "Set lower bound of the `unit_flow` variable."], - ["unit__to_node", "minimum_operating_point", null, null, "Minimum level for the `unit_flow` relative to the `units_on` online capacity."], - ["unit__to_node", "operating_points", null, null, "Decomposes the flow variable into a number of separate operating segment variables. Used to in conjunction with `unit_incremental_heat_rate` and/or `user_constraint`s"], - ["unit__to_node", "ordered_unit_flow_op", false, "boolean_value_list", "Defines whether the segments of this unit flow are ordered as per the rank of their operating points."], - ["unit__to_node", "ramp_down_limit", null, null, "Limit the maximum ramp-down rate of an online unit, given as a fraction of the unit_capacity. [ramp_down_limit] = %/t, e.g. 0.2/h"], - ["unit__to_node", "ramp_up_limit", null, null, "Limit the maximum ramp-up rate of an online unit, given as a fraction of the unit_capacity. [ramp_up_limit] = %/t, e.g. 0.2/h"], - ["unit__to_node", "reserve_procurement_cost", null, null, "Procurement cost for reserves"], - ["unit__to_node", "shut_down_limit", null, null, "Maximum ramp-down during shutdowns"], - ["unit__to_node", "start_up_limit", null, null, "Maximum ramp-up during startups"], - ["unit__to_node", "unit_capacity", null, null, "Maximum `unit_flow` capacity of a single 'sub_unit' of the `unit`."], - ["unit__to_node", "unit_conv_cap_to_flow", 1.0, null, "Optional coefficient for `unit_capacity` unit conversions in the case the `unit_capacity` value is incompatible with the desired `unit_flow` units."], - ["unit__to_node", "unit_flow_non_anticipativity_margin", null, null, "Margin by which `unit_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], - ["unit__to_node", "unit_flow_non_anticipativity_time", null, null, "Period of time where the value of the `unit_flow` variable has to be fixed to the result from the previous window."], - ["unit__to_node", "vom_cost", null, null, "Variable operating costs of a `unit_flow` variable. E.g. EUR/MWh."], - ["unit__to_node__user_constraint", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], - ["unit__to_node__user_constraint", "unit_flow_coefficient", 0.0, null, "Coefficient of a `unit_flow` variable for a custom `user_constraint`."], - ["unit__user_constraint", "units_invested_available_coefficient",0.0 , null, "Coefficient of the `units_invested_available` variable in the specified `user_constraint`."], - ["unit__user_constraint", "units_invested_coefficient", 0.0, null, "Coefficient of the `units_invested` variable in the specified `user_constraint`."], - ["unit__user_constraint", "units_on_coefficient", 0.0, null, "Coefficient of a `units_on` variable for a custom `user_constraint`."], - ["unit__user_constraint", "units_started_up_coefficient", 0.0, null, "Coefficient of a `units_started_up` variable for a custom `user_constraint`."], - ["units_on__stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], - ["units_on__temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"] + ["connection__from_node", "connection_capacity", null, null, "Limits the `connection_flow` variable from the `from_node`. `from_node` can be a group of `nodes`, in which case the sum of the `connection_flow` is constrained."], + ["connection__from_node", "connection_conv_cap_to_flow", 1.0, null, "Optional coefficient for `connection_capacity` unit conversions in the case that the `connection_capacity` value is incompatible with the desired `connection_flow` units."], + ["connection__from_node", "connection_emergency_capacity", null, null, "Post contingency flow capacity of a `connection`. Sometimes referred to as emergency rating"], + ["connection__from_node", "connection_flow_cost", null, null, "Variable costs of a flow through a `connection`. E.g. EUR/MWh of energy throughput."], + ["connection__from_node", "connection_flow_non_anticipativity_margin", null, null, "Margin by which `connection_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["connection__from_node", "connection_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_flow` variable has to be fixed to the result from the previous window."], + ["connection__from_node", "connection_intact_flow_non_anticipativity_margin", null, null, "Margin by which `connection_intact_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["connection__from_node", "connection_intact_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_intact_flow` variable has to be fixed to the result from the previous window."], + ["connection__from_node", "fix_binary_gas_connection_flow", null, null, "Fix the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], + ["connection__from_node", "fix_connection_flow", null, null, "Fix the value of the `connection_flow` variable."], + ["connection__from_node", "fix_connection_intact_flow", null, null, "Fix the value of the `connection_intact_flow` variable."], + ["connection__from_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["connection__from_node", "initial_binary_gas_connection_flow", null, null, "Initialize the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], + ["connection__from_node", "initial_connection_flow", null, null, "Initialize the value of the `connection_flow` variable."], + ["connection__from_node", "initial_connection_intact_flow", null, null, "Initialize the value of the `connection_intact_flow` variable."], + ["connection__from_node__user_constraint", "connection_flow_coefficient", 0.0, null, "defines the user constraint coefficient on the connection flow variable in the from direction"], + ["connection__node__node", "compression_factor", null, null, "The compression factor establishes a compression from an origin node to a receiving node, which are connected through a connection. The first node corresponds to the origin node, the second to the (compressed) destination node. Typically the value is >=1."], + ["connection__node__node", "connection_flow_delay", {"type": "duration", "data": "0h"}, null, "Delays the `connection_flows` associated with the latter `node` in respect to the `connection_flows` associated with the first `node`."], + ["connection__node__node", "connection_linepack_constant", null, null, "The linepack constant is a property of gas pipelines and relates the linepack to the pressure of the adjacent nodes."], + ["connection__node__node", "fix_ratio_out_in_connection_flow", null, null, "Fix the ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], + ["connection__node__node", "fixed_pressure_constant_0", null, null, "Fixed pressure points for pipelines for the outer approximation of the Weymouth approximation. The direction of flow is the first node in the relationship to the second node in the relationship."], + ["connection__node__node", "fixed_pressure_constant_1", null, null, "Fixed pressure points for pipelines for the outer approximation of the Weymouth approximation. The direction of flow is the first node in the relationship to the second node in the relationship."], + ["connection__node__node", "max_ratio_out_in_connection_flow", null, null, "Maximum ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], + ["connection__node__node", "min_ratio_out_in_connection_flow", null, null, "Minimum ratio between an outgoing `connection_flow` to the first `node` and an incoming `connection_flow` from the second `node`."], + ["connection__to_node", "connection_capacity", null, null, "Limits the `connection_flow` variable to the `to_node`. `to_node` can be a group of `nodes`, in which case the sum of the `connection_flow` is constrained."], + ["connection__to_node", "connection_conv_cap_to_flow", 1.0, null, "Optional coefficient for `connection_capacity` unit conversions in the case the `connection_capacity` value is incompatible with the desired `connection_flow` units."], + ["connection__to_node", "connection_emergency_capacity", null, null, "The maximum post-contingency flow on a monitored `connection`."], + ["connection__to_node", "connection_flow_cost", null, null, "Variable costs of a flow through a `connection`. E.g. EUR/MWh of energy throughput."], + ["connection__to_node", "connection_flow_non_anticipativity_margin", null, null, "Margin by which `connection_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["connection__to_node", "connection_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_flow` variable has to be fixed to the result from the previous window."], + ["connection__to_node", "connection_intact_flow_non_anticipativity_margin", null, null, "Margin by which `connection_intact_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["connection__to_node", "connection_intact_flow_non_anticipativity_time", null, null, "Period of time where the value of the `connection_intact_flow` variable has to be fixed to the result from the previous window."], + ["connection__to_node", "fix_binary_gas_connection_flow", null, null, "Fix the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], + ["connection__to_node", "fix_connection_flow", null, null, "Fix the value of the `connection_flow` variable."], + ["connection__to_node", "fix_connection_intact_flow", null, null, "Fix the value of the `connection_intact_flow` variable."], + ["connection__to_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["connection__to_node", "initial_binary_gas_connection_flow", null, null, "Initialize the value of the `connection_flow_binary` variable, and hence pre-determine the direction of flow in the connection."], + ["connection__to_node", "initial_connection_flow", null, null, "Initialize the value of the `connection_flow` variable."], + ["connection__to_node", "initial_connection_intact_flow", null, null, "Initialize the value of the `connection_intact_flow` variable."], + ["connection__to_node__user_constraint", "connection_flow_coefficient", 0.0, null, "defines the user constraint coefficient on the connection flow variable in the to direction"], + ["connection__user_constraint", "connections_invested_available_coefficient", 0.0, null, "coefficient of `connections_invested_available` in the specific `user_constraint`"], + ["connection__user_constraint", "connections_invested_coefficient", 0.0, null, "coefficient of `connections_invested` in the specific `user_constraint`"], + ["node__node", "diff_coeff", 0.0, null, "Commodity diffusion coefficient between two `nodes`. Effectively, denotes the *diffusion power per unit of state* from the first `node` to the second."], + ["node__stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["node__temporal_block", "cyclic_condition", false, "boolean_value_list", "If the cyclic condition is set to true for a storage node, the `node_state` at the end of the optimization window has to be larger than or equal to the initial storage state."], + ["node__temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["node__user_constraint", "demand_coefficient", 0.0, null, "coefficient of the specified node's demand in the specified user constraint"], + ["node__user_constraint", "node_state_coefficient", 0.0, null, "Coefficient of the specified node's state variable in the specified user constraint."], + ["node__user_constraint", "storages_invested_available_coefficient", 0.0, null, "Coefficient of the specified node's storages invested available variable in the specified user constraint."], + ["node__user_constraint", "storages_invested_coefficient", 0.0 , null, "Coefficient of the specified node's storage investment variable in the specified user constraint."], + ["report__output", "overwrite_results_on_rolling", true, null, "Whether or not results from further windows should overwrite results from previous ones."], + ["stage__output__connection", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], + ["stage__output__node", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], + ["stage__output__unit", "output_resolution", null, null, "A duration or array of durations indicating the points in time where the output of this stage should be fixed in the children. If not specified, then the output is fixed at the end of each child's roling window (EXPERIMENTAL)."], + ["stochastic_structure__stochastic_scenario", "stochastic_scenario_end", null, null, "A `Duration` for when a `stochastic_scenario` ends and its `child_stochastic_scenarios` start. Values are interpreted relative to the start of the current solve, and if no value is given, the `stochastic_scenario` is assumed to continue indefinitely."], + ["stochastic_structure__stochastic_scenario", "weight_relative_to_parents", 1.0, null, "The weight of the `stochastic_scenario` in the objective function relative to its parents."], + ["unit__commodity", "max_cum_in_unit_flow_bound", null, null, "Set a maximum cumulative upper bound for a `unit_flow`"], + ["unit__from_node", "fix_nonspin_units_started_up", null, null, "Fix the `nonspin_units_started_up` variable."], + ["unit__from_node", "fix_unit_flow", null, null, "Fix the `unit_flow` variable."], + ["unit__from_node", "fix_unit_flow_op", null, null, "Fix the `unit_flow_op` variable."], + ["unit__from_node", "fuel_cost", null, null, "Variable fuel costs than can be attributed to a `unit_flow`. E.g. EUR/MWh"], + ["unit__from_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit__from_node", "initial_nonspin_units_started_up", null, null, "Initialize the `nonspin_units_started_up` variable."], + ["unit__from_node", "initial_unit_flow", null, null, "Initialize the `unit_flow` variable."], + ["unit__from_node", "initial_unit_flow_op", null, null, "Initialize the `unit_flow_op` variable."], + ["unit__from_node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["unit__from_node", "max_total_cumulated_unit_flow_from_node", null, null, "Bound on the maximum cumulated flows of a unit group from a node group e.g max consumption of certain commodity."], + ["unit__from_node", "min_total_cumulated_unit_flow_from_node", null, null, "Bound on the minimum cumulated flows of a unit group from a node group."], + ["unit__from_node", "min_unit_flow", 0.0, null, "Set lower bound of the `unit_flow` variable."], + ["unit__from_node", "minimum_operating_point", null, null, "Minimum level for the `unit_flow` relative to the `units_on` online capacity."], + ["unit__from_node", "operating_points", null, null, "Operating points for piecewise-linear `unit` efficiency approximations."], + ["unit__from_node", "ordered_unit_flow_op", false, "boolean_value_list", "Defines whether the segments of this unit flow are ordered as per the rank of their operating points."], + ["unit__from_node", "ramp_down_limit", null, null, "Limit the maximum ramp-down rate of an online unit, given as a fraction of the unit_capacity. [ramp_down_limit] = %/t, e.g. 0.2/h"], + ["unit__from_node", "ramp_up_limit", null, null, "Limit the maximum ramp-up rate of an online unit, given as a fraction of the unit_capacity. [ramp_up_limit] = %/t, e.g. 0.2/h"], + ["unit__from_node", "reserve_procurement_cost", null, null, "Procurement cost for reserves"], + ["unit__from_node", "shut_down_limit", null, null, "Maximum ramp-down during shutdowns"], + ["unit__from_node", "start_up_limit", null, null, "Maximum ramp-up during startups"], + ["unit__from_node", "unit_capacity", null, null, "Maximum `unit_flow` capacity of a single 'sub_unit' of the `unit`."], + ["unit__from_node", "unit_conv_cap_to_flow", 1.0, null, "Optional coefficient for `unit_capacity` unit conversions in the case the `unit_capacity` value is incompatible with the desired `unit_flow` units."], + ["unit__from_node", "unit_flow_non_anticipativity_margin", null, null, "Margin by which `unit_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["unit__from_node", "unit_flow_non_anticipativity_time", null, null, "Period of time where the value of the `unit_flow` variable has to be fixed to the result from the previous window."], + ["unit__from_node", "vom_cost", null, null, "Variable operating costs of a `unit_flow` variable. E.g. EUR/MWh."], + ["unit__from_node__user_constraint", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit__from_node__user_constraint", "unit_flow_coefficient", 0.0, null, "Coefficient of a `unit_flow` variable for a custom `user_constraint`."], + ["unit__node__node", "fix_ratio_in_in_unit_flow", null, null, "Fix the ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], + ["unit__node__node", "fix_ratio_in_out_unit_flow", null, null, "Fix the ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], + ["unit__node__node", "fix_ratio_out_in_unit_flow", null, null, "Fix the ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], + ["unit__node__node", "fix_ratio_out_out_unit_flow", null, null, "Fix the ratio between two `unit_flows` going from the `unit` into the two `nodes`."], + ["unit__node__node", "fix_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_in_in_unit_flow` constraint."], + ["unit__node__node", "fix_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_in_out_unit_flow` constraint."], + ["unit__node__node", "fix_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_out_in_unit_flow` constraint."], + ["unit__node__node", "fix_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `fix_ratio_out_out_unit_flow` constraint."], + ["unit__node__node", "max_ratio_in_in_unit_flow", null, null, "Maximum ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], + ["unit__node__node", "max_ratio_in_out_unit_flow", null, null, "Maximum ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], + ["unit__node__node", "max_ratio_out_in_unit_flow", null, null, "Maximum ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], + ["unit__node__node", "max_ratio_out_out_unit_flow", null, null, "Maximum ratio between two `unit_flows` going from the `unit` into the two `nodes`."], + ["unit__node__node", "max_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_in_in_unit_flow` constraint."], + ["unit__node__node", "max_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_in_out_unit_flow` constraint."], + ["unit__node__node", "max_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_out_in_unit_flow` constraint."], + ["unit__node__node", "max_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `max_ratio_out_out_unit_flow` constraint."], + ["unit__node__node", "min_ratio_in_in_unit_flow", null, null, "Minimum ratio between two `unit_flows` coming into the `unit` from the two `nodes`."], + ["unit__node__node", "min_ratio_in_out_unit_flow", null, null, "Minimum ratio between an incoming `unit_flow` from the first `node` and an outgoing `unit_flow` to the second `node`."], + ["unit__node__node", "min_ratio_out_in_unit_flow", null, null, "Minimum ratio between an outgoing `unit_flow` to the first `node` and an incoming `unit_flow` from the second `node`."], + ["unit__node__node", "min_ratio_out_out_unit_flow", null, null, "Minimum ratio between two `unit_flows` going from the `unit` into the two `nodes`."], + ["unit__node__node", "min_units_on_coefficient_in_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_in_in_unit_flow` constraint."], + ["unit__node__node", "min_units_on_coefficient_in_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_in_out_unit_flow` constraint."], + ["unit__node__node", "min_units_on_coefficient_out_in", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_out_in_unit_flow` constraint."], + ["unit__node__node", "min_units_on_coefficient_out_out", 0.0, null, "Optional coefficient for the `units_on` variable impacting the `min_ratio_out_out_unit_flow` constraint."], + ["unit__node__node", "unit_start_flow", 0.0, null, "Flow from node1 that is incurred when a unit is started up."], + ["unit__to_node", "fix_nonspin_units_shut_down", null, null, "Fix the `nonspin_units_shut_down` variable."], + ["unit__to_node", "fix_nonspin_units_started_up", null, null, "Fix the `nonspin_units_started_up` variable."], + ["unit__to_node", "fix_unit_flow", null, null, "Fix the `unit_flow` variable."], + ["unit__to_node", "fix_unit_flow_op", null, null, "Fix the `unit_flow_op` variable."], + ["unit__to_node", "fuel_cost", null, null, "Variable fuel costs than can be attributed to a `unit_flow`. E.g. EUR/MWh"], + ["unit__to_node", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit__to_node", "initial_nonspin_units_shut_down", null, null, "Initialize the `nonspin_units_shut_down` variable."], + ["unit__to_node", "initial_nonspin_units_started_up", null, null, "Initialize the `nonspin_units_started_up` variable."], + ["unit__to_node", "initial_unit_flow", null, null, "Initialize the `unit_flow` variable."], + ["unit__to_node", "initial_unit_flow_op", null, null, "Initialize the `unit_flow_op` variable."], + ["unit__to_node", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["unit__to_node", "max_total_cumulated_unit_flow_to_node", null, null, "Bound on the maximum cumulated flows of a unit group to a node group, e.g. total GHG emissions."], + ["unit__to_node", "min_total_cumulated_unit_flow_to_node", null, null, "Bound on the minimum cumulated flows of a unit group to a node group, e.g. total renewable production."], + ["unit__to_node", "min_unit_flow", 0.0, null, "Set lower bound of the `unit_flow` variable."], + ["unit__to_node", "minimum_operating_point", null, null, "Minimum level for the `unit_flow` relative to the `units_on` online capacity."], + ["unit__to_node", "operating_points", null, null, "Decomposes the flow variable into a number of separate operating segment variables. Used to in conjunction with `unit_incremental_heat_rate` and/or `user_constraint`s"], + ["unit__to_node", "ordered_unit_flow_op", false, "boolean_value_list", "Defines whether the segments of this unit flow are ordered as per the rank of their operating points."], + ["unit__to_node", "ramp_down_limit", null, null, "Limit the maximum ramp-down rate of an online unit, given as a fraction of the unit_capacity. [ramp_down_limit] = %/t, e.g. 0.2/h"], + ["unit__to_node", "ramp_up_limit", null, null, "Limit the maximum ramp-up rate of an online unit, given as a fraction of the unit_capacity. [ramp_up_limit] = %/t, e.g. 0.2/h"], + ["unit__to_node", "reserve_procurement_cost", null, null, "Procurement cost for reserves"], + ["unit__to_node", "shut_down_limit", null, null, "Maximum ramp-down during shutdowns"], + ["unit__to_node", "start_up_limit", null, null, "Maximum ramp-up during startups"], + ["unit__to_node", "unit_capacity", null, null, "Maximum `unit_flow` capacity of a single 'sub_unit' of the `unit`."], + ["unit__to_node", "unit_conv_cap_to_flow", 1.0, null, "Optional coefficient for `unit_capacity` unit conversions in the case the `unit_capacity` value is incompatible with the desired `unit_flow` units."], + ["unit__to_node", "unit_flow_non_anticipativity_margin", null, null, "Margin by which `unit_flow` variable can differ from the value in the previous window during `non_anticipativity_time`."], + ["unit__to_node", "unit_flow_non_anticipativity_time", null, null, "Period of time where the value of the `unit_flow` variable has to be fixed to the result from the previous window."], + ["unit__to_node", "vom_cost", null, null, "Variable operating costs of a `unit_flow` variable. E.g. EUR/MWh."], + ["unit__to_node__user_constraint", "graph_view_position", null, null, "An optional setting for tweaking the position of the different elements when drawing them via Spine Toolbox Graph View."], + ["unit__to_node__user_constraint", "unit_flow_coefficient", 0.0, null, "Coefficient of a `unit_flow` variable for a custom `user_constraint`."], + ["unit__user_constraint", "units_invested_available_coefficient",0.0 , null, "Coefficient of the `units_invested_available` variable in the specified `user_constraint`."], + ["unit__user_constraint", "units_invested_coefficient", 0.0, null, "Coefficient of the `units_invested` variable in the specified `user_constraint`."], + ["unit__user_constraint", "units_on_coefficient", 0.0, null, "Coefficient of a `units_on` variable for a custom `user_constraint`."], + ["unit__user_constraint", "units_started_up_coefficient", 0.0, null, "Coefficient of a `units_started_up` variable for a custom `user_constraint`."], + ["units_on__stochastic_structure", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"], + ["units_on__temporal_block", "is_active", true, "boolean_value_list", "If false, the object is excluded from the model if the tool filter object activity control is specified"] ], "objects": [ - ["output", "binary_gas_connection_flow", null], - ["output", "connection_avg_intact_throughflow", null], - ["output", "connection_avg_throughflow", null], - ["output", "connection_flow", null], - ["output", "connection_flow_costs", null], - ["output", "connection_intact_flow", null], - ["output", "connection_investment_costs", null], - ["output", "connections_decommissioned", null], - ["output", "connections_invested", null], - ["output", "connections_invested_available", null], - ["output", "connection_salvage_fraction", null], - ["output", "connection_tech_discount_factor", null], - ["output", "connection_conversion_to_discounted_annuities", null], - ["output", "connection_discounted_duration", null], - ["output", "contingency_is_binding", null], - ["output", "fixed_om_costs", null], - ["output", "fuel_costs", null], - ["output", "mga_objective", null], - ["output", "mp_objective_lowerbound", null], - ["output", "node_injection", null], - ["output", "node_pressure", null], - ["output", "node_slack_neg", null], - ["output", "node_slack_pos", null], - ["output", "node_state", null], - ["output", "node_voltage_angle", null], - ["output", "nonspin_units_shut_down", null], - ["output", "nonspin_units_started_up", null], - ["output", "objective_penalties", null], - ["output", "relative_optimality_gap", null], - ["output", "renewable_curtailment_costs", null], - ["output", "res_proc_costs", null], - ["output", "shut_down_costs", null], - ["output", "start_up_costs", null], - ["output", "storage_investment_costs", null], - ["output", "storages_decommissioned", null], - ["output", "storages_invested", null], - ["output", "storages_invested_available", null], - ["output", "storage_salvage_fraction", null], - ["output", "storage_tech_discount_factor", null], - ["output", "storage_conversion_to_discounted_annuities", null], - ["output", "storage_discounted_duration", null], - ["output", "taxes", null], - ["output", "total_costs", null], - ["output", "unit_flow", null], - ["output", "unit_flow_op", null], - ["output", "unit_flow_op_active", null], - ["output", "unit_investment_costs", null], - ["output", "units_invested", null], - ["output", "units_invested_available", null], - ["output", "units_mothballed", null], - ["output", "units_on", null], - ["output", "units_on_costs", null], - ["output", "units_shut_down", null], - ["output", "units_started_up", null], - ["output", "unit_salvage_fraction", null], - ["output", "unit_tech_discount_factor", null], - ["output", "unit_conversion_to_discounted_annuities", null], - ["output", "unit_discounted_duration", null], - ["output", "variable_om_costs", null], - ["output","bound_nonspin_units_shut_down",null], - ["output","bound_unit_flow",null], - ["output","bound_units_mothballed",null], - ["output","bound_units_started_up",null], - ["output","bound_binary_gas_connection_flow",null], - ["output","bound_node_slack_pos",null], - ["output","bound_storages_invested_available",null], - ["output","bound_unit_flow_op",null], - ["output","bound_node_injection",null], - ["output","bound_units_invested",null], - ["output","bound_min_capacity_margin_slack",null], - ["output","bound_storages_decommissioned",null], - ["output","bound_node_voltage_angle",null], - ["output","bound_storages_invested",null], - ["output","bound_units_out_of_service",null], - ["output","bound_connection_flow",null], - ["output","bound_unit_flow_op_active",null], - ["output","bound_connections_invested",null], - ["output","bound_units_shut_down",null], - ["output","bound_node_state",null], - ["output","bound_units_taken_out_of_service",null], - ["output","bound_units_on",null], - ["output","bound_node_slack_neg",null], - ["output","bound_connections_invested_available",null], - ["output","bound_connection_intact_flow",null], - ["output","bound_units_returned_to_service",null], - ["output","bound_units_invested_available",null], - ["output","bound_user_constraint_slack_neg",null], - ["output","bound_user_constraint_slack_pos",null], - ["output","bound_connections_decommissioned",null], - ["output","bound_nonspin_units_started_up",null], - ["output","bound_node_pressure",null], - ["output","constraint_min_node_pressure",null], - ["output","constraint_max_ratio_in_out_unit_flow",null], - ["output","constraint_ramp_up",null], - ["output","constraint_investment_group_maximum_capacity_invested_available",null], - ["output","constraint_min_ratio_out_in_connection_flow",null], - ["output","constraint_min_ratio_out_in_unit_flow",null], - ["output","constraint_user_constraint",null], - ["output","constraint_investment_group_equal_investments",null], - ["output","constraint_max_ratio_out_in_unit_flow",null], - ["output","constraint_compression_ratio",null], - ["output","constraint_max_ratio_in_in_unit_flow",null], - ["output","constraint_min_total_cumulated_unit_flow_to_node",null], - ["output","constraint_min_ratio_in_out_unit_flow",null], - ["output","constraint_unit_flow_op_rank",null], - ["output","constraint_operating_point_bounds",null], - ["output","constraint_fix_node_pressure_point",null], - ["output","constraint_connection_flow_lodf",null], - ["output","constraint_connections_invested_transition",null], - ["output","constraint_min_ratio_in_in_unit_flow",null], - ["output","constraint_max_total_cumulated_unit_flow_to_node",null], - ["output","constraint_min_capacity_margin",null], - ["output","constraint_node_voltage_angle",null], - ["output","constraint_non_spinning_reserves_start_up_upper_bound",null], - ["output","constraint_node_state_capacity",null], - ["output","constraint_max_ratio_out_out_unit_flow",null], - ["output","constraint_connection_intact_flow_ptdf",null], - ["output","constraint_storage_lifetime",null], - ["output","constraint_investment_group_maximum_entities_invested_available",null], - ["output","constraint_min_total_cumulated_unit_flow_from_node",null], - ["output","constraint_storages_invested_transition",null], - ["output","constraint_unit_flow_op_sum",null], - ["output","constraint_cyclic_node_state",null], - ["output","constraint_units_out_of_service_contiguity",null], - ["output","constraint_max_total_cumulated_unit_flow_from_node",null], - ["output","constraint_investment_group_minimum_capacity_invested_available",null], - ["output","constraint_ramp_down",null], - ["output","constraint_connection_lifetime",null], - ["output","constraint_min_down_time",null], - ["output","constraint_storages_invested_available",null], - ["output","constraint_non_spinning_reserves_lower_bound",null], - ["output","constraint_connection_unitary_gas_flow",null], - ["output","constraint_min_up_time",null], - ["output","constraint_minimum_operating_point",null], - ["output","constraint_fix_ratio_in_in_unit_flow",null], - ["output","constraint_fix_ratio_in_out_unit_flow",null], - ["output","constraint_fix_ratio_out_out_unit_flow",null], - ["output","constraint_unit_flow_capacity",null], - ["output","constraint_nodal_balance",null], - ["output","constraint_fix_ratio_out_in_unit_flow",null], - ["output","constraint_units_out_of_service_transition",null], - ["output","constraint_max_ratio_out_in_connection_flow",null], - ["output","constraint_unit_state_transition",null], - ["output","constraint_min_node_voltage_angle",null], - ["output","constraint_fix_ratio_out_in_connection_flow",null], - ["output","constraint_unit_flow_op_bounds",null], - ["output","constraint_storage_line_pack",null], - ["output","constraint_connection_flow_capacity",null], - ["output","constraint_max_node_pressure",null], - ["output","constraint_min_scheduled_outage_duration",null], - ["output","constraint_node_injection",null], - ["output","constraint_operating_point_rank",null], - ["output","constraint_units_available",null], - ["output","constraint_min_ratio_out_out_unit_flow",null], - ["output","constraint_max_node_voltage_angle",null], - ["output","constraint_connections_invested_available",null], - ["output","constraint_units_invested_transition",null], - ["output","constraint_units_invested_available",null], - ["output","constraint_connection_flow_gas_capacity",null], - ["output","constraint_investment_group_minimum_entities_invested_available",null], - ["output","constraint_unit_lifetime",null], - ["output","constraint_non_spinning_reserves_shut_down_upper_bound",null] + ["output", "binary_gas_connection_flow", null], + ["output", "connection_avg_intact_throughflow", null], + ["output", "connection_avg_throughflow", null], + ["output", "connection_flow", null], + ["output", "connection_flow_costs", null], + ["output", "connection_intact_flow", null], + ["output", "connection_investment_costs", null], + ["output", "connections_decommissioned", null], + ["output", "connections_invested", null], + ["output", "connections_invested_available", null], + ["output", "connection_salvage_fraction", null], + ["output", "connection_tech_discount_factor", null], + ["output", "connection_conversion_to_discounted_annuities", null], + ["output", "connection_discounted_duration", null], + ["output", "contingency_is_binding", null], + ["output", "fixed_om_costs", null], + ["output", "fuel_costs", null], + ["output", "mga_objective", null], + ["output", "mp_objective_lowerbound", null], + ["output", "node_injection", null], + ["output", "node_pressure", null], + ["output", "node_slack_neg", null], + ["output", "node_slack_pos", null], + ["output", "node_state", null], + ["output", "node_voltage_angle", null], + ["output", "nonspin_units_shut_down", null], + ["output", "nonspin_units_started_up", null], + ["output", "objective_penalties", null], + ["output", "relative_optimality_gap", null], + ["output", "renewable_curtailment_costs", null], + ["output", "res_proc_costs", null], + ["output", "shut_down_costs", null], + ["output", "start_up_costs", null], + ["output", "storage_investment_costs", null], + ["output", "storages_decommissioned", null], + ["output", "storages_invested", null], + ["output", "storages_invested_available", null], + ["output", "storage_salvage_fraction", null], + ["output", "storage_tech_discount_factor", null], + ["output", "storage_conversion_to_discounted_annuities", null], + ["output", "storage_discounted_duration", null], + ["output", "taxes", null], + ["output", "total_costs", null], + ["output", "unit_flow", null], + ["output", "unit_flow_op", null], + ["output", "unit_flow_op_active", null], + ["output", "unit_investment_costs", null], + ["output", "units_invested", null], + ["output", "units_invested_available", null], + ["output", "units_mothballed", null], + ["output", "units_on", null], + ["output", "units_on_costs", null], + ["output", "units_shut_down", null], + ["output", "units_started_up", null], + ["output", "unit_salvage_fraction", null], + ["output", "unit_tech_discount_factor", null], + ["output", "unit_conversion_to_discounted_annuities", null], + ["output", "unit_discounted_duration", null], + ["output", "variable_om_costs", null], + ["output","bound_nonspin_units_shut_down",null], + ["output","bound_unit_flow",null], + ["output","bound_units_mothballed",null], + ["output","bound_units_started_up",null], + ["output","bound_binary_gas_connection_flow",null], + ["output","bound_node_slack_pos",null], + ["output","bound_storages_invested_available",null], + ["output","bound_unit_flow_op",null], + ["output","bound_node_injection",null], + ["output","bound_units_invested",null], + ["output","bound_min_capacity_margin_slack",null], + ["output","bound_storages_decommissioned",null], + ["output","bound_node_voltage_angle",null], + ["output","bound_storages_invested",null], + ["output","bound_units_out_of_service",null], + ["output","bound_connection_flow",null], + ["output","bound_unit_flow_op_active",null], + ["output","bound_connections_invested",null], + ["output","bound_units_shut_down",null], + ["output","bound_node_state",null], + ["output","bound_units_taken_out_of_service",null], + ["output","bound_units_on",null], + ["output","bound_node_slack_neg",null], + ["output","bound_connections_invested_available",null], + ["output","bound_connection_intact_flow",null], + ["output","bound_units_returned_to_service",null], + ["output","bound_units_invested_available",null], + ["output","bound_user_constraint_slack_neg",null], + ["output","bound_user_constraint_slack_pos",null], + ["output","bound_connections_decommissioned",null], + ["output","bound_nonspin_units_started_up",null], + ["output","bound_node_pressure",null], + ["output","constraint_min_node_pressure",null], + ["output","constraint_max_ratio_in_out_unit_flow",null], + ["output","constraint_ramp_up",null], + ["output","constraint_investment_group_maximum_capacity_invested_available",null], + ["output","constraint_min_ratio_out_in_connection_flow",null], + ["output","constraint_min_ratio_out_in_unit_flow",null], + ["output","constraint_user_constraint",null], + ["output","constraint_investment_group_equal_investments",null], + ["output","constraint_max_ratio_out_in_unit_flow",null], + ["output","constraint_compression_ratio",null], + ["output","constraint_max_ratio_in_in_unit_flow",null], + ["output","constraint_min_total_cumulated_unit_flow_to_node",null], + ["output","constraint_min_ratio_in_out_unit_flow",null], + ["output","constraint_unit_flow_op_rank",null], + ["output","constraint_operating_point_bounds",null], + ["output","constraint_fix_node_pressure_point",null], + ["output","constraint_connection_flow_lodf",null], + ["output","constraint_connections_invested_transition",null], + ["output","constraint_min_ratio_in_in_unit_flow",null], + ["output","constraint_max_total_cumulated_unit_flow_to_node",null], + ["output","constraint_min_capacity_margin",null], + ["output","constraint_node_voltage_angle",null], + ["output","constraint_non_spinning_reserves_start_up_upper_bound",null], + ["output","constraint_node_state_capacity",null], + ["output","constraint_max_ratio_out_out_unit_flow",null], + ["output","constraint_connection_intact_flow_ptdf",null], + ["output","constraint_storage_lifetime",null], + ["output","constraint_investment_group_maximum_entities_invested_available",null], + ["output","constraint_min_total_cumulated_unit_flow_from_node",null], + ["output","constraint_storages_invested_transition",null], + ["output","constraint_unit_flow_op_sum",null], + ["output","constraint_cyclic_node_state",null], + ["output","constraint_units_out_of_service_contiguity",null], + ["output","constraint_max_total_cumulated_unit_flow_from_node",null], + ["output","constraint_investment_group_minimum_capacity_invested_available",null], + ["output","constraint_ramp_down",null], + ["output","constraint_connection_lifetime",null], + ["output","constraint_min_down_time",null], + ["output","constraint_storages_invested_available",null], + ["output","constraint_non_spinning_reserves_lower_bound",null], + ["output","constraint_connection_unitary_gas_flow",null], + ["output","constraint_min_up_time",null], + ["output","constraint_minimum_operating_point",null], + ["output","constraint_fix_ratio_in_in_unit_flow",null], + ["output","constraint_fix_ratio_in_out_unit_flow",null], + ["output","constraint_fix_ratio_out_out_unit_flow",null], + ["output","constraint_unit_flow_capacity",null], + ["output","constraint_nodal_balance",null], + ["output","constraint_fix_ratio_out_in_unit_flow",null], + ["output","constraint_units_out_of_service_transition",null], + ["output","constraint_max_ratio_out_in_connection_flow",null], + ["output","constraint_unit_state_transition",null], + ["output","constraint_min_node_voltage_angle",null], + ["output","constraint_fix_ratio_out_in_connection_flow",null], + ["output","constraint_unit_flow_op_bounds",null], + ["output","constraint_storage_line_pack",null], + ["output","constraint_connection_flow_capacity",null], + ["output","constraint_max_node_pressure",null], + ["output","constraint_min_scheduled_outage_duration",null], + ["output","constraint_node_injection",null], + ["output","constraint_operating_point_rank",null], + ["output","constraint_units_available",null], + ["output","constraint_min_ratio_out_out_unit_flow",null], + ["output","constraint_max_node_voltage_angle",null], + ["output","constraint_connections_invested_available",null], + ["output","constraint_units_invested_transition",null], + ["output","constraint_units_invested_available",null], + ["output","constraint_connection_flow_gas_capacity",null], + ["output","constraint_investment_group_minimum_entities_invested_available",null], + ["output","constraint_unit_lifetime",null], + ["output","constraint_non_spinning_reserves_shut_down_upper_bound",null] ], "object_parameter_values": [ - ["output","constraint_compression_ratio","output_type","constraint_dual","Base"], - ["output","constraint_connection_flow_capacity","output_type","constraint_dual","Base"], - ["output","constraint_connection_flow_gas_capacity","output_type","constraint_dual","Base"], - ["output","constraint_connection_flow_lodf","output_type","constraint_dual","Base"], - ["output","constraint_connection_intact_flow_ptdf","output_type","constraint_dual","Base"], - ["output","constraint_connection_lifetime","output_type","constraint_dual","Base"], - ["output","constraint_connection_unitary_gas_flow","output_type","constraint_dual","Base"], - ["output","constraint_connections_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_connections_invested_transition","output_type","constraint_dual","Base"], - ["output","constraint_cyclic_node_state","output_type","constraint_dual","Base"], - ["output","constraint_fix_node_pressure_point","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_fix_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_equal_investments","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_maximum_capacity_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_maximum_entities_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_minimum_capacity_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_investment_group_minimum_entities_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_max_node_pressure","output_type","constraint_dual","Base"], - ["output","constraint_max_node_voltage_angle","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_max_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], - ["output","constraint_max_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], - ["output","constraint_min_capacity_margin","output_type","constraint_dual","Base"], - ["output","constraint_min_down_time","output_type","constraint_dual","Base"], - ["output","constraint_min_node_pressure","output_type","constraint_dual","Base"], - ["output","constraint_min_node_voltage_angle","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], - ["output","constraint_min_scheduled_outage_duration","output_type","constraint_dual","Base"], - ["output","constraint_min_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], - ["output","constraint_min_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], - ["output","constraint_min_up_time","output_type","constraint_dual","Base"], - ["output","constraint_minimum_operating_point","output_type","constraint_dual","Base"], - ["output","constraint_nodal_balance","output_type","constraint_dual","Base"], - ["output","constraint_node_injection","output_type","constraint_dual","Base"], - ["output","constraint_node_state_capacity","output_type","constraint_dual","Base"], - ["output","constraint_node_voltage_angle","output_type","constraint_dual","Base"], - ["output","constraint_non_spinning_reserves_lower_bound","output_type","constraint_dual","Base"], - ["output","constraint_non_spinning_reserves_shut_down_upper_bound","output_type","constraint_dual","Base"], - ["output","constraint_non_spinning_reserves_start_up_upper_bound","output_type","constraint_dual","Base"], - ["output","constraint_operating_point_bounds","output_type","constraint_dual","Base"], - ["output","constraint_operating_point_rank","output_type","constraint_dual","Base"], - ["output","constraint_ramp_down","output_type","constraint_dual","Base"], - ["output","constraint_ramp_up","output_type","constraint_dual","Base"], - ["output","constraint_storage_lifetime","output_type","constraint_dual","Base"], - ["output","constraint_storage_line_pack","output_type","constraint_dual","Base"], - ["output","constraint_storages_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_storages_invested_transition","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_capacity","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_op_bounds","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_op_rank","output_type","constraint_dual","Base"], - ["output","constraint_unit_flow_op_sum","output_type","constraint_dual","Base"], - ["output","constraint_unit_lifetime","output_type","constraint_dual","Base"], - ["output","constraint_unit_state_transition","output_type","constraint_dual","Base"], - ["output","constraint_units_available","output_type","constraint_dual","Base"], - ["output","constraint_units_invested_available","output_type","constraint_dual","Base"], - ["output","constraint_units_invested_transition","output_type","constraint_dual","Base"], - ["output","constraint_units_out_of_service_contiguity","output_type","constraint_dual","Base"], - ["output","constraint_units_out_of_service_transition","output_type","constraint_dual","Base"], - ["output","constraint_user_constraint","output_type","constraint_dual","Base"], - ["output","connection_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], - ["output","connection_discounted_duration","output_type","derived_parameter","Base"], - ["output","connection_salvage_fraction","output_type","derived_parameter","Base"], - ["output","connection_tech_discount_factor","output_type","derived_parameter","Base"], - ["output","storage_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], - ["output","storage_discounted_duration","output_type","derived_parameter","Base"], - ["output","storage_salvage_fraction","output_type","derived_parameter","Base"], - ["output","storage_tech_discount_factor","output_type","derived_parameter","Base"], - ["output","unit_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], - ["output","unit_discounted_duration","output_type","derived_parameter","Base"], - ["output","unit_salvage_fraction","output_type","derived_parameter","Base"], - ["output","unit_tech_discount_factor","output_type","derived_parameter","Base"], - ["output","connection_flow_costs","output_type","objective","Base"], - ["output","connection_investment_costs","output_type","objective","Base"], - ["output","fixed_om_costs","output_type","objective","Base"], - ["output","fuel_costs","output_type","objective","Base"], - ["output","mga_objective","output_type","objective","Base"], - ["output","objective_penalties","output_type","objective","Base"], - ["output","renewable_curtailment_costs","output_type","objective","Base"], - ["output","res_proc_costs","output_type","objective","Base"], - ["output","shut_down_costs","output_type","objective","Base"], - ["output","start_up_costs","output_type","objective","Base"], - ["output","storage_investment_costs","output_type","objective","Base"], - ["output","taxes","output_type","objective","Base"], - ["output","total_costs","output_type","objective","Base"], - ["output","unit_investment_costs","output_type","objective","Base"], - ["output","units_on_costs","output_type","objective","Base"], - ["output","variable_om_costs","output_type","objective","Base"], - ["output","connection_avg_intact_throughflow","output_type","postprocess_value","Base"], - ["output","connection_avg_throughflow","output_type","postprocess_value","Base"], - ["output","contingency_is_binding","output_type","postprocess_value","Base"], - ["output","relative_optimality_gap","output_type","solving_info","Base"], - ["output","binary_gas_connection_flow","output_type","variable","Base"], - ["output","connection_flow","output_type","variable","Base"], - ["output","connection_intact_flow","output_type","variable","Base"], - ["output","connections_decommissioned","output_type","variable","Base"], - ["output","connections_invested","output_type","variable","Base"], - ["output","connections_invested_available","output_type","variable","Base"], - ["output","mp_objective_lowerbound","output_type","variable","Base"], - ["output","node_injection","output_type","variable","Base"], - ["output","node_pressure","output_type","variable","Base"], - ["output","node_slack_neg","output_type","variable","Base"], - ["output","node_slack_pos","output_type","variable","Base"], - ["output","node_state","output_type","variable","Base"], - ["output","node_voltage_angle","output_type","variable","Base"], - ["output","nonspin_ramp_down_unit_flow","output_type","variable","Base"], - ["output","nonspin_ramp_up_unit_flow","output_type","variable","Base"], - ["output","nonspin_units_shut_down","output_type","variable","Base"], - ["output","nonspin_units_started_up","output_type","variable","Base"], - ["output","ramp_down_unit_flow","output_type","variable","Base"], - ["output","ramp_up_unit_flow","output_type","variable","Base"], - ["output","shut_down_unit_flow","output_type","variable","Base"], - ["output","start_up_unit_flow","output_type","variable","Base"], - ["output","storages_decommissioned","output_type","variable","Base"], - ["output","storages_invested","output_type","variable","Base"], - ["output","storages_invested_available","output_type","variable","Base"], - ["output","unit_flow","output_type","variable","Base"], - ["output","unit_flow_op","output_type","variable","Base"], - ["output","unit_flow_op_active","output_type","variable","Base"], - ["output","units_invested","output_type","variable","Base"], - ["output","units_invested_available","output_type","variable","Base"], - ["output","units_mothballed","output_type","variable","Base"], - ["output","units_on","output_type","variable","Base"], - ["output","units_shut_down","output_type","variable","Base"], - ["output","units_started_up","output_type","variable","Base"], - ["output","bound_binary_gas_connection_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_connection_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_connection_intact_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_connections_decommissioned","output_type","variable_reduced_cost","Base"], - ["output","bound_connections_invested","output_type","variable_reduced_cost","Base"], - ["output","bound_connections_invested_available","output_type","variable_reduced_cost","Base"], - ["output","bound_min_capacity_margin_slack","output_type","variable_reduced_cost","Base"], - ["output","bound_node_injection","output_type","variable_reduced_cost","Base"], - ["output","bound_node_pressure","output_type","variable_reduced_cost","Base"], - ["output","bound_node_slack_neg","output_type","variable_reduced_cost","Base"], - ["output","bound_node_slack_pos","output_type","variable_reduced_cost","Base"], - ["output","bound_node_state","output_type","variable_reduced_cost","Base"], - ["output","bound_node_voltage_angle","output_type","variable_reduced_cost","Base"], - ["output","bound_nonspin_units_shut_down","output_type","variable_reduced_cost","Base"], - ["output","bound_nonspin_units_started_up","output_type","variable_reduced_cost","Base"], - ["output","bound_storages_decommissioned","output_type","variable_reduced_cost","Base"], - ["output","bound_storages_invested","output_type","variable_reduced_cost","Base"], - ["output","bound_storages_invested_available","output_type","variable_reduced_cost","Base"], - ["output","bound_unit_flow","output_type","variable_reduced_cost","Base"], - ["output","bound_unit_flow_op","output_type","variable_reduced_cost","Base"], - ["output","bound_unit_flow_op_active","output_type","variable_reduced_cost","Base"], - ["output","bound_units_invested","output_type","variable_reduced_cost","Base"], - ["output","bound_units_invested_available","output_type","variable_reduced_cost","Base"], - ["output","bound_units_mothballed","output_type","variable_reduced_cost","Base"], - ["output","bound_units_on","output_type","variable_reduced_cost","Base"], - ["output","bound_units_out_of_service","output_type","variable_reduced_cost","Base"], - ["output","bound_units_returned_to_service","output_type","variable_reduced_cost","Base"], - ["output","bound_units_shut_down","output_type","variable_reduced_cost","Base"], - ["output","bound_units_started_up","output_type","variable_reduced_cost","Base"], - ["output","bound_units_taken_out_of_service","output_type","variable_reduced_cost","Base"], - ["output","bound_user_constraint_slack_neg","output_type","variable_reduced_cost","Base"], - ["output","bound_user_constraint_slack_pos","output_type","variable_reduced_cost","Base"] + ["output","constraint_compression_ratio","output_type","constraint_dual","Base"], + ["output","constraint_connection_flow_capacity","output_type","constraint_dual","Base"], + ["output","constraint_connection_flow_gas_capacity","output_type","constraint_dual","Base"], + ["output","constraint_connection_flow_lodf","output_type","constraint_dual","Base"], + ["output","constraint_connection_intact_flow_ptdf","output_type","constraint_dual","Base"], + ["output","constraint_connection_lifetime","output_type","constraint_dual","Base"], + ["output","constraint_connection_unitary_gas_flow","output_type","constraint_dual","Base"], + ["output","constraint_connections_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_connections_invested_transition","output_type","constraint_dual","Base"], + ["output","constraint_cyclic_node_state","output_type","constraint_dual","Base"], + ["output","constraint_fix_node_pressure_point","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_fix_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_equal_investments","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_maximum_capacity_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_maximum_entities_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_minimum_capacity_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_investment_group_minimum_entities_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_max_node_pressure","output_type","constraint_dual","Base"], + ["output","constraint_max_node_voltage_angle","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_max_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], + ["output","constraint_max_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], + ["output","constraint_min_capacity_margin","output_type","constraint_dual","Base"], + ["output","constraint_min_down_time","output_type","constraint_dual","Base"], + ["output","constraint_min_node_pressure","output_type","constraint_dual","Base"], + ["output","constraint_min_node_voltage_angle","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_in_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_in_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_out_in_connection_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_out_in_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_ratio_out_out_unit_flow","output_type","constraint_dual","Base"], + ["output","constraint_min_scheduled_outage_duration","output_type","constraint_dual","Base"], + ["output","constraint_min_total_cumulated_unit_flow_from_node","output_type","constraint_dual","Base"], + ["output","constraint_min_total_cumulated_unit_flow_to_node","output_type","constraint_dual","Base"], + ["output","constraint_min_up_time","output_type","constraint_dual","Base"], + ["output","constraint_minimum_operating_point","output_type","constraint_dual","Base"], + ["output","constraint_nodal_balance","output_type","constraint_dual","Base"], + ["output","constraint_node_injection","output_type","constraint_dual","Base"], + ["output","constraint_node_state_capacity","output_type","constraint_dual","Base"], + ["output","constraint_node_voltage_angle","output_type","constraint_dual","Base"], + ["output","constraint_non_spinning_reserves_lower_bound","output_type","constraint_dual","Base"], + ["output","constraint_non_spinning_reserves_shut_down_upper_bound","output_type","constraint_dual","Base"], + ["output","constraint_non_spinning_reserves_start_up_upper_bound","output_type","constraint_dual","Base"], + ["output","constraint_operating_point_bounds","output_type","constraint_dual","Base"], + ["output","constraint_operating_point_rank","output_type","constraint_dual","Base"], + ["output","constraint_ramp_down","output_type","constraint_dual","Base"], + ["output","constraint_ramp_up","output_type","constraint_dual","Base"], + ["output","constraint_storage_lifetime","output_type","constraint_dual","Base"], + ["output","constraint_storage_line_pack","output_type","constraint_dual","Base"], + ["output","constraint_storages_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_storages_invested_transition","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_capacity","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_op_bounds","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_op_rank","output_type","constraint_dual","Base"], + ["output","constraint_unit_flow_op_sum","output_type","constraint_dual","Base"], + ["output","constraint_unit_lifetime","output_type","constraint_dual","Base"], + ["output","constraint_unit_state_transition","output_type","constraint_dual","Base"], + ["output","constraint_units_available","output_type","constraint_dual","Base"], + ["output","constraint_units_invested_available","output_type","constraint_dual","Base"], + ["output","constraint_units_invested_transition","output_type","constraint_dual","Base"], + ["output","constraint_units_out_of_service_contiguity","output_type","constraint_dual","Base"], + ["output","constraint_units_out_of_service_transition","output_type","constraint_dual","Base"], + ["output","constraint_user_constraint","output_type","constraint_dual","Base"], + ["output","connection_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], + ["output","connection_discounted_duration","output_type","derived_parameter","Base"], + ["output","connection_salvage_fraction","output_type","derived_parameter","Base"], + ["output","connection_tech_discount_factor","output_type","derived_parameter","Base"], + ["output","storage_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], + ["output","storage_discounted_duration","output_type","derived_parameter","Base"], + ["output","storage_salvage_fraction","output_type","derived_parameter","Base"], + ["output","storage_tech_discount_factor","output_type","derived_parameter","Base"], + ["output","unit_conversion_to_discounted_annuities","output_type","derived_parameter","Base"], + ["output","unit_discounted_duration","output_type","derived_parameter","Base"], + ["output","unit_salvage_fraction","output_type","derived_parameter","Base"], + ["output","unit_tech_discount_factor","output_type","derived_parameter","Base"], + ["output","connection_flow_costs","output_type","objective","Base"], + ["output","connection_investment_costs","output_type","objective","Base"], + ["output","fixed_om_costs","output_type","objective","Base"], + ["output","fuel_costs","output_type","objective","Base"], + ["output","mga_objective","output_type","objective","Base"], + ["output","objective_penalties","output_type","objective","Base"], + ["output","renewable_curtailment_costs","output_type","objective","Base"], + ["output","res_proc_costs","output_type","objective","Base"], + ["output","shut_down_costs","output_type","objective","Base"], + ["output","start_up_costs","output_type","objective","Base"], + ["output","storage_investment_costs","output_type","objective","Base"], + ["output","taxes","output_type","objective","Base"], + ["output","total_costs","output_type","objective","Base"], + ["output","unit_investment_costs","output_type","objective","Base"], + ["output","units_on_costs","output_type","objective","Base"], + ["output","variable_om_costs","output_type","objective","Base"], + ["output","connection_avg_intact_throughflow","output_type","postprocess_value","Base"], + ["output","connection_avg_throughflow","output_type","postprocess_value","Base"], + ["output","contingency_is_binding","output_type","postprocess_value","Base"], + ["output","relative_optimality_gap","output_type","solving_info","Base"], + ["output","binary_gas_connection_flow","output_type","variable","Base"], + ["output","connection_flow","output_type","variable","Base"], + ["output","connection_intact_flow","output_type","variable","Base"], + ["output","connections_decommissioned","output_type","variable","Base"], + ["output","connections_invested","output_type","variable","Base"], + ["output","connections_invested_available","output_type","variable","Base"], + ["output","mp_objective_lowerbound","output_type","variable","Base"], + ["output","node_injection","output_type","variable","Base"], + ["output","node_pressure","output_type","variable","Base"], + ["output","node_slack_neg","output_type","variable","Base"], + ["output","node_slack_pos","output_type","variable","Base"], + ["output","node_state","output_type","variable","Base"], + ["output","node_voltage_angle","output_type","variable","Base"], + ["output","nonspin_ramp_down_unit_flow","output_type","variable","Base"], + ["output","nonspin_ramp_up_unit_flow","output_type","variable","Base"], + ["output","nonspin_units_shut_down","output_type","variable","Base"], + ["output","nonspin_units_started_up","output_type","variable","Base"], + ["output","ramp_down_unit_flow","output_type","variable","Base"], + ["output","ramp_up_unit_flow","output_type","variable","Base"], + ["output","shut_down_unit_flow","output_type","variable","Base"], + ["output","start_up_unit_flow","output_type","variable","Base"], + ["output","storages_decommissioned","output_type","variable","Base"], + ["output","storages_invested","output_type","variable","Base"], + ["output","storages_invested_available","output_type","variable","Base"], + ["output","unit_flow","output_type","variable","Base"], + ["output","unit_flow_op","output_type","variable","Base"], + ["output","unit_flow_op_active","output_type","variable","Base"], + ["output","units_invested","output_type","variable","Base"], + ["output","units_invested_available","output_type","variable","Base"], + ["output","units_mothballed","output_type","variable","Base"], + ["output","units_on","output_type","variable","Base"], + ["output","units_shut_down","output_type","variable","Base"], + ["output","units_started_up","output_type","variable","Base"], + ["output","bound_binary_gas_connection_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_connection_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_connection_intact_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_connections_decommissioned","output_type","variable_reduced_cost","Base"], + ["output","bound_connections_invested","output_type","variable_reduced_cost","Base"], + ["output","bound_connections_invested_available","output_type","variable_reduced_cost","Base"], + ["output","bound_min_capacity_margin_slack","output_type","variable_reduced_cost","Base"], + ["output","bound_node_injection","output_type","variable_reduced_cost","Base"], + ["output","bound_node_pressure","output_type","variable_reduced_cost","Base"], + ["output","bound_node_slack_neg","output_type","variable_reduced_cost","Base"], + ["output","bound_node_slack_pos","output_type","variable_reduced_cost","Base"], + ["output","bound_node_state","output_type","variable_reduced_cost","Base"], + ["output","bound_node_voltage_angle","output_type","variable_reduced_cost","Base"], + ["output","bound_nonspin_units_shut_down","output_type","variable_reduced_cost","Base"], + ["output","bound_nonspin_units_started_up","output_type","variable_reduced_cost","Base"], + ["output","bound_storages_decommissioned","output_type","variable_reduced_cost","Base"], + ["output","bound_storages_invested","output_type","variable_reduced_cost","Base"], + ["output","bound_storages_invested_available","output_type","variable_reduced_cost","Base"], + ["output","bound_unit_flow","output_type","variable_reduced_cost","Base"], + ["output","bound_unit_flow_op","output_type","variable_reduced_cost","Base"], + ["output","bound_unit_flow_op_active","output_type","variable_reduced_cost","Base"], + ["output","bound_units_invested","output_type","variable_reduced_cost","Base"], + ["output","bound_units_invested_available","output_type","variable_reduced_cost","Base"], + ["output","bound_units_mothballed","output_type","variable_reduced_cost","Base"], + ["output","bound_units_on","output_type","variable_reduced_cost","Base"], + ["output","bound_units_out_of_service","output_type","variable_reduced_cost","Base"], + ["output","bound_units_returned_to_service","output_type","variable_reduced_cost","Base"], + ["output","bound_units_shut_down","output_type","variable_reduced_cost","Base"], + ["output","bound_units_started_up","output_type","variable_reduced_cost","Base"], + ["output","bound_units_taken_out_of_service","output_type","variable_reduced_cost","Base"], + ["output","bound_user_constraint_slack_neg","output_type","variable_reduced_cost","Base"], + ["output","bound_user_constraint_slack_pos","output_type","variable_reduced_cost","Base"] ], "tools": [ - ["object_activity_control", ""] + ["object_activity_control", ""] ], "features": [ ["commodity", "is_active", "boolean_value_list", "boolean_value_list"],