Commit 8b0e8200 authored by Niina Helistö's avatar Niina Helistö
Browse files

Updating spinetoolbox project: updated workflow and BB_data_template

- Removed outdated workflow items
- Created json and sqlite templates for the database and added to the workflow
parent 52818e0f
......@@ -54,56 +54,6 @@
]
},
"connections": [
{
"from": [
"BB_base_sets",
"right"
],
"to": [
"Convert_base_sets",
"left"
]
},
{
"from": [
"supplement_inputData_ts",
"right"
],
"to": [
"Convert_ts",
"bottom"
]
},
{
"from": [
"inputData",
"right"
],
"to": [
"Backbone vara",
"bottom"
]
},
{
"from": [
"inputData",
"right"
],
"to": [
"Convert",
"bottom"
]
},
{
"from": [
"Convert_base_sets",
"right"
],
"to": [
"BB_data",
"left"
]
},
{
"from": [
"BB_data",
......@@ -133,91 +83,81 @@
},
{
"from": [
"Convert_base_sets",
"bottom"
],
"to": [
"inputData",
"left"
]
},
{
"from": [
"supplement_inputData_ts",
"Convert",
"right"
],
"to": [
"Backbone vara",
"BB_data",
"bottom"
]
},
{
"from": [
"Convert",
"BB_config_files",
"right"
],
"to": [
"BB_data",
"Backbone",
"bottom"
]
},
{
"from": [
"Convert_ts",
"left"
"Export_to_BB",
"right"
],
"to": [
"BB_data",
"bottom"
"Backbone",
"left"
]
},
{
"from": [
"BB_config_files_vara",
"BB_sets",
"right"
],
"to": [
"Backbone vara",
"Export_to_BB",
"left"
]
},
{
"from": [
"inputData",
"bottom"
"BB_data_template",
"right"
],
"to": [
"supplement_inputData_ts",
"BB_data",
"left"
]
},
{
"from": [
"BB_config_files",
"inputData",
"right"
],
"to": [
"Backbone",
"bottom"
"Backbone vara",
"left"
]
},
{
"from": [
"Export_to_BB",
"BB_config_files_vara",
"right"
],
"to": [
"Backbone",
"left"
"Backbone vara",
"bottom"
]
},
{
"from": [
"BB_sets",
"inputData",
"right"
],
"to": [
"Export_to_BB",
"Convert",
"left"
]
}
......@@ -247,36 +187,29 @@
"inputData": {
"type": "Data Connection",
"description": "",
"x": -300.4477396385093,
"y": 89.91674269496238,
"x": -347.8182821765176,
"y": 1.577082286244062,
"references": []
},
"BB_config_files": {
"type": "Data Connection",
"description": "",
"x": 192.64471365960787,
"y": -37.134419124776116,
"references": []
},
"supplement_inputData_ts": {
"type": "Data Connection",
"description": "",
"x": -144.99988274364932,
"y": 163.86627654924152,
"x": 225.93212192955966,
"y": -19.210430056340506,
"references": []
},
"BB_config_files_vara": {
"type": "Data Connection",
"description": "",
"x": 132.74637152587613,
"y": 48.479045915210676,
"x": 230.04802646881222,
"y": 189.3103885957761,
"references": []
},
"Backbone": {
"type": "Tool",
"description": "",
"x": 442.86124348844345,
"y": -113.10256157821419,
"x": 371.16528721470104,
"y": -124.62512597935135,
"specification": "Backbone",
"execute_in_work": true,
"cmd_line_args": []
......@@ -284,8 +217,8 @@
"Backbone vara": {
"type": "Tool",
"description": "",
"x": 349.4121144699393,
"y": 41.04075743176567,
"x": 363.49524873799595,
"y": 111.45642877204835,
"specification": "Backbone",
"execute_in_work": false,
"cmd_line_args": [
......@@ -299,63 +232,27 @@
}
]
},
"BB_base_sets": {
"type": "Tool",
"description": "",
"x": -445.3612434884435,
"y": -137.22056911251164,
"specification": "BB_base_sets",
"execute_in_work": false,
"cmd_line_args": []
},
"Convert": {
"type": "Importer",
"description": "",
"x": -193.73406586865244,
"y": -22.476982726399342,
"x": -188.61292613481368,
"y": -42.96154166175431,
"specification": "BB_to_SpineDB",
"cancel_on_error": true,
"file_selection": []
},
"Convert_base_sets": {
"type": "Importer",
"description": "",
"x": -287.8415342698604,
"y": -130.47367383193375,
"specification": "Import_Bacbkone_base_sets_to_SpineDB",
"cancel_on_error": true,
"file_selection": [
[
"Backbone_base_sets_to_gdx.lst",
false
],
[
"Backbone_base_sets.gdx",
true
]
]
},
"Convert_ts": {
"type": "Importer",
"description": "",
"x": -5.105629674072162,
"y": -29.12652513068616,
"specification": "BB_to_SpineDB_ts",
"cancel_on_error": true,
"file_selection": []
},
"BB_sets": {
"type": "Data Transformer",
"description": "",
"x": 36.21444168453502,
"y": -130.8698589903699,
"x": 75.90327462178527,
"y": -132.1501439238296,
"specification": "ToBackboneSets"
},
"Export_to_BB": {
"type": "Exporter",
"description": "",
"x": 305.9880990968649,
"y": -159.36627654924155,
"x": 224.04986335544504,
"y": -129.9197230796688,
"databases": [
{
"output_file_name": "inputData.gdx",
......@@ -370,6 +267,25 @@
"output_time_stamps": false,
"cancel_on_error": true,
"specification": "ExportToBB"
},
"BB_data_template": {
"type": "Data Store",
"description": "",
"x": -282.9429702945906,
"y": -143.39191254748494,
"url": {
"dialect": "sqlite",
"username": "",
"password": "",
"host": "",
"port": "",
"database": {
"type": "path",
"relative": true,
"path": ".spinetoolbox/items/bb_data_template/BB_data_template.sqlite"
}
},
"cancel_on_error": false
}
}
}
\ No newline at end of file
{
"object_classes": [
["boundary", "Slacks and types of boundaries that can be set for a node", 281473533933630],
["constraint", "Possible names for custom constraints", 281473533932850],
["effLevel", "Pre-defined levels for efficiency representation that can start from t_solve + x", 281224891724130],
["effSelector", "Select equations and lambdas/slope for efficiency calculations", 281224891724128],
["emission", "Emissions", 281470681806687],
["flow", "Flow based energy resources (time series)", 281470681805291],
["grid", "Forms of energy", 281470681805032],
["group", "Groups of units, transfer links, nodes, etc.", 281470681804992],
["io", "Designating nodes as either inputs or outputs", 281473533932386],
["model", "Model instances", 281473533931932],
["node", "Nodes maintain the energy balance or track exogenous commodities", 281470681805765],
["restype", "Reserve types", 281470681805031],
["unit", "Energy conversion devices and facilities", 281470681805429],
["unittype", "Unit technology types", 281470681804843],
["up_down", "Direction set used by some variables, e.g. reserve provisions and generation ramps", 281473533932344]
],
"relationship_classes": [
["effLevel__effSelector__unit", ["effLevel", "effSelector", "unit"], "What efficiency selectors are in use for each unit at each efficiency representation level", null],
["flow__node", ["flow", "node"], "Nodes with flows", null],
["flow__unit", ["flow", "unit"], "Units linked to a certain energy flow time series", null],
["gnu__restype__up_down__restype", ["grid", "node", "unit", "restype", "up_down", "restype"], "The first type of reserve can be used also in the second reserve category (with a possible multiplier)", null],
["grid__node", ["grid", "node"], "Nodes within grids", null],
["grid__node__boundary", ["grid", "node", "boundary"], "Node state boundaries and limits", null],
["grid__node__group", ["grid", "node", "group"], "Combination of grids and nodes in particular groups", null],
["grid__node__node", ["grid", "node", "node"], "Interconnections between energy nodes", null],
["grid__node__node__group", ["grid", "node", "node", "group"], "Interconnections in particular groups", null],
["grid__node__node__restype", ["grid", "node", "node", "restype"], "Reserve provision data for interconnections", null],
["grid__node__unit__boundary", ["grid", "node", "unit", "boundary"], "Unit boundaries where energy type matters", null],
["grid__node__unit__group", ["grid", "node", "unit", "group"], "Units in particular groups where energy type matters", null],
["grid__node__unit__io", ["grid", "node", "unit", "io"], "Unit properties where energy type matters", null],
["grid__node__unit__restype", ["grid", "node", "unit", "restype"], "Reserve provision data for units", null],
["group__emission", ["group", "emission"], "Emission policy in particular node groups", null],
["group__restype", ["group", "restype"], "Reserve rules in each node group", null],
["group__restype__up_down", ["group", "restype", "up_down"], "Reserve policy in each node group separately for each reserve type and direction", null],
["group__restype__up_down__group", ["group", "restype", "up_down", "group"], "Reserve policy in each node group separately for each reserve type and direction, also linking to another group", null],
["node__emission", ["node", "emission"], "Emission content (kg/MWh)", null],
["restype__up_down", ["restype", "up_down"], "Combinations of reserve types and directions", null],
["unit__constraint", ["unit", "constraint"], "Constant for constraints (eq1-9, gt1-9) between inputs and outputs", null],
["unit__constraint__node", ["unit", "constraint", "node"], "Coefficients for constraints (eq1-9, gt1-9) between inputs and outputs", null],
["unit__group", ["unit", "group"], "Units in particular groups", null],
["unit__node", ["unit", "node"], "Startup fuels", null],
["unit__unittype", ["unit", "unittype"], "Units linked to technology types", null],
["unit_aggregate__unit__efflevel", ["unit", "unit", "effLevel"], "Aggregator unit linked to aggreted units with a definition when to start the aggregation", null]
],
"object_parameters": [
["group", "ROCOF", null, null, "Maximum rate of change of frequency (Hz/s)"],
["group", "constrainedOnlineTotalMax", null, null, "Total maximum b for online units in equation Sum(i, a(i)*v_online(i)) <= b"],
["group", "defaultFrequency", null, null, "Nominal frequency in the system (Hz)"],
["group", "samples", null, null, "Active samples in the group (Map)"],
["group", "staticInertia", null, null, "A flag to indicate static inertia constraint should be implemented - q_inertiaMin"],
["model", "discountFactor", null, null, "Discount factor of each sample (Map)"],
["model", "t_invest", null, null, "Time steps when investments can be made (Map)"],
["node", "priceChange", null, null, "Initial node/commodity price and consequent changes in price (EUR/MWh)"],
["restype", "restypeReleasedForRealization", null, null, "A flag to indicate that the reserve is released for the realized time intervals (1 if true)"],
["restype", "restype_inertia", null, null, "A flag to indicate that the requirement can also be fulfilled with the inertia of synchronous machines (1 if true)"],
["unit", "availability", null, null, "Availability of given energy conversion technology (p.u.)"],
["unit", "becomeAvailable", null, null, "The relative position of the time step when the unit becomes available"],
["unit", "becomeUnavailable", null, null, "The relative position of the time step when the unit becomes unavailable"],
["unit", "boundSamples", null, null, "Bound the samples so that the unit online state at the last interval of the first sample equals the state at the first interval of the second sample (Map)"],
["unit", "efficiency", null, null, "Efficiency of the unit, expressed in eff00-eff12, opFirstCross, op00-op12, and section; or hr00-hr12, hrop00-hrop12, and hrsection (Map)"],
["unit", "efficiency_ts", null, null, "Efficiency of the unit, expressed in time series form of eff00-eff12 - use only with directOff (Map)"],
["unit", "initialOnlineStatus", null, null, "Initial online status of the unit in the first time step (0-1)"],
["unit", "investMIP", null, null, "A flag to make integer investment instead of continous investment"],
["unit", "maxUnitCount", null, null, "Maximum number of units when making integer investments"],
["unit", "minOperationHours", null, null, "Minimum operation time (h), prevents shutdown after startup until the defined amount of time has passed"],
["unit", "minShutDownHours", null, null, "Minimum shut down time (h), prevents starting up again after the defined amount of time has passed"],
["unit", "minUnitCount", null, null, "Minimum number of units when making integer investments"],
["unit", "outputCapacityTotal", null, null, "Output capacity of the unit, calculated by summing all the outputs together by default, unless defined in data"],
["unit", "rampSpeedFromMinLoad", null, null, "Ramping speed from shutdown decision to zero load (p.u./min)"],
["unit", "rampSpeedToMinLoad", null, null, "Ramping speed from start-up to minimum load (p.u./min)"],
["unit", "shutdownCost", null, null, "Cost of shutting down the unit"],
["unit", "startColdAfterXhours", null, null, "Offline hours after which the start-up will be a cold start (h)"],
["unit", "startCostCold", null, null, "Variable start-up costs for cold starts excluding fuel costs (EUR/MW)"],
["unit", "startCostHot", null, null, "Variable start-up costs for hot starts excluding fuel costs (EUR/MW)"],
["unit", "startCostWarm", null, null, "Variable start-up costs for warm starts excluding fuel costs (EUR/MW)"],
["unit", "startFuelConsCold", null, null, "Consumption of start-up fuel per cold subunit started up (MWh_fuel/MW)"],
["unit", "startFuelConsHot", null, null, "Consumption of start-up fuel per hot subunit started up (MWh_fuel/MW)"],
["unit", "startWarmAfterXHours", null, null, "Offline hours after which the start-up will be a warm start (h)"],
["unit", "startfuelConsWarm", null, null, "Consumption of start-up fuel per warm subunit started up (MWh_fuel/MW)"],
["unit", "unitCount", null, null, "Number of subunits if aggregated"],
["unit", "unit_fail", null, null, "A flag to indicate that there should be enough reserve capacity to cover a trip of the unit (1 if true)"],
["unit", "useInitialOnlineStatus", null, null, "A flag to fix the online status of a unit for the first time step (binary)"],
["unit", "useTimeseries", null, null, "A flag to use time series form input for unit parameters whenever possible"]
],
"relationship_parameters": [
["flow__node", "capacityFactor", null, null, "Mean available capacity factor time series (Map, p.u.)"],
["gnu__restype__up_down__restype", "forwardReserve", null, null, "Multiplier for using the first type of reserve also in the second reserve category"],
["grid__node", "boundAll", null, null, "A flag to bound the state to the reference in all time steps"],
["grid__node", "boundEnd", null, null, "A flag to bound last t in eachn solve based on the reference constant or time series"],
["grid__node", "boundSamples", null, null, "Bound the samples so that the node state at the last interval of the first sample equals the state at the first interval of the second sample (Map)"],
["grid__node", "boundStart", null, null, "A flag to bound the first t in the run using reference constant or time series"],
["grid__node", "boundStartAndEnd", null, null, "A flag that both start and end are bound using reference constant or time series"],
["grid__node", "boundStartToEnd", null, null, "Force the last states to equal the first state"],
["grid__node", "capacityMargin", null, null, "Capacity margin used in invest mode (MW)"],
["grid__node", "energyStoredPerUnitOfState", null, null, "A possible unit conversion if v_state uses something else than MWh (MWh/[v_state])"],
["grid__node", "influx", null, null, "External power inflow/outflow during a time step (MWh/h)"],
["grid__node", "nodeBalance", null, null, "A flag to decide whether node balance constraint is to be used"],
["grid__node", "selfDischargeLoss", null, null, "Self discharge rate of the node (MW/[v_state])"],
["grid__node", "storageValue", null, null, "Value of stored something at the end of a time step (constant or timeseries Map, EUR/<v_state_unit>)"],
["grid__node", "storageValueUseTimeSeries", null, null, "A flag to determine whether to use time series form `storageValue`"],
["grid__node", "usePrice", null, null, "A flag to decide whether priceChange parameter of the node is to be used"],
["grid__node__boundary", "ICrampDown", null, null, "Ramp up limit of the interconnection"],
["grid__node__boundary", "ICrampUp", null, null, "Ramp down limit of the interconnection"],
["grid__node__boundary", "annuity", null, null, "Investment annuity"],
["grid__node__boundary", "constant", null, null, "A constant value for the boundary or the reference"],
["grid__node__boundary", "slackCost", null, null, "The cost of exceeding the slack boundary"],
["grid__node__boundary", "timeseries", null, null, "Timeseries values for the boundary or the reference (Map)"],
["grid__node__boundary", "useConstant", null, null, "A flag to use constant to set state bounds and limits"],
["grid__node__boundary", "useTimeseries", null, null, "A flag to use time series to set state bounds and limits"],
["grid__node__node", "availability", null, null, "Availability of the interconnection (constant or timeseries Map, p.u.)"],
["grid__node__node", "boundStateMaxDiff", null, null, "Maximum difference of node state pairs ([v_state])"],
["grid__node__node", "diffCoeff", null, null, "Coefficients for energy diffusion between nodes (MW/[v_state])"],
["grid__node__node", "invCost", null, null, "Investment cost (EUR/MW)"],
["grid__node__node", "investMIP", null, null, "A flag to make integer investment instead of continuous investment (MW versus number of links)"],
["grid__node__node", "portion_of_transfer_to_reserve", null, null, "Portion of the import/export that needs to be available as reserve if the interconnection fails"],
["grid__node__node", "transferCap", null, null, "Transfer capacity limits (MW)"],
["grid__node__node", "transferCapBidirectional", null, null, "Total bidirectional transfer capacity limit (MW)"],
["grid__node__node", "transferCapInvLimit", null, null, "Capacity limit for investments (MW)"],
["grid__node__node", "transferLoss", null, null, "Transfer losses (constant or timeseries Map, p.u.)"],
["grid__node__node", "unitSize", null, null, "Size of one link for integer investments (MW)"],
["grid__node__node", "useTimeSeriesAvailability", null, null, "A flag to use time series form input for availability"],
["grid__node__node", "useTimeSeriesLoss", null, null, "A flag to use time series form input for transferLoss"],
["grid__node__node", "variableTransCost", null, null, "Variable cost applied to transfers (EUR/MW)"],
["grid__node__node__restype", "down", null, null, "Downwards reserve provision data for node node connections"],
["grid__node__node__restype", "up", null, null, "Upwards reserve provision data for node node connections"],
["grid__node__unit__boundary", "rampCost", null, null, "Wear and tear cost of ramping up (EUR/MW)"],
["grid__node__unit__boundary", "rampLimit", null, null, "Maximum ramp speed (p.u./min)"],
["grid__node__unit__io", "annuity", null, null, "Investment annuity factor"],
["grid__node__unit__io", "availabilityCapacityMargin", null, null, "Availability of the unit in the capacity margin equation (p.u.). If zero, v_gen is used. Currently used only for output capacity."],
["grid__node__unit__io", "capacity", null, null, "Maximum capacity (MW)"],
["grid__node__unit__io", "conversionCoeff", null, null, "Coefficient for conversion equation (multiplies each input or output when summing v_gen from multiple inputs/outputs)"],
["grid__node__unit__io", "inertia", null, null, "Inertia of the unit (s)"],
["grid__node__unit__io", "initialGeneration", null, null, "Initial generation/consumption of the unit in the first time step (MW)"],
["grid__node__unit__io", "invCosts", null, null, "Investment costs (EUR/MW)"],
["grid__node__unit__io", "maxRampDown", null, null, "Speed to ramp down (p.u./min)"],
["grid__node__unit__io", "maxRampUp", null, null, "Speed to ramp up (p.u./min)"],
["grid__node__unit__io", "unitSize", null, null, "Input/Output capacity of one subunit for integer investments (MW)"],
["grid__node__unit__io", "unitSizeMVA", null, null, "Generator MVA rating of one subunit (MVA)"],
["grid__node__unit__io", "useInitialGeneration", null, null, "A flag to indicate whether to fix generation for the first time step (binary)"],
["grid__node__unit__io", "vomCosts", null, null, "Variable operation and maintenance costs (EUR/MWh)"],
["grid__node__unit__restype", "down", null, null, "Downwards reserve provision data for units"],
["grid__node__unit__restype", "offlineReserveCapability", null, null, "Proportion of an offline unit which can contribute to a category of reserve"],
["grid__node__unit__restype", "portion_of_infeed_to_reserve", null, null, "Proportion of the generation of a tripping unit that needs to be covered by reserves from other units"],
["grid__node__unit__restype", "reserveReliability", null, null, "Reliability parameter of reserve provisions"],
["grid__node__unit__restype", "reserve_increase_ratio", null, null, "Unit output is multiplied by this factor to get the increase in reserve demand"],
["grid__node__unit__restype", "up", null, null, "Upwards reserve provision data for units"],
["group__emission", "emissionCap", null, null, "Emission limit (tonne)"],
["group__emission", "emissionTax", null, null, "Emission tax (EUR/tonne)"],
["group__restype", "reserve_activation_duration", null, null, "How long the reserve should be provided once activated (h)"],
["group__restype", "reserve_length", null, null, "Length of reserve horizon (number of timesteps)"],
["group__restype", "reserve_reactivation_time", null, null, "How soon the unit providing reserve needs to be able to reactivate after the start of the previous activation (h)"],
["group__restype", "update_frequency", null, null, "Frequency of updating reserve contributions (number of timesteps)"],
["group__restype", "useTimeseries", null, null, "A flag for using time series data"],
["group__restype__up_down", "LossOfTrans", null, null, "A flag to tell that N-1 reserve is needed due to a possibility that an interconnector to/from the node group fails"],
["group__restype__up_down", "reserveDemand", null, null, "Reserve demand in region (constant or timeseries Map, MW)"],
["group__restype__up_down__group", "ReserveShareMax", null, null, "Maximum reserve share of a group of units"],
["node__emission", "emission_content", null, null, "Emission content (kg/MWh)"],
["unit__constraint", "constant", null, null, "Constant when binding inputs/outputs"],
["unit__constraint__node", "coefficient", null, null, "Coefficient when binding inputs/outputs"],
["unit__group", "constrainedOnlineMultiplier", null, null, "Multiplier a(i) for online units in equation Sum(i, a(i)*v_online(i)) <= b"],
["unit__node", "fixedFuelFraction", null, null, "Fixed share of a fuel in the start-up fuel consumption mix"]
],
"objects": [
["boundary", "balancePenalty", "Penalty value for violating the energy balance of that particular node (EUR/MWh) (can be interpretated as the energy price in certain settings)"],
["boundary", "downwardLimit", "Absolute minimum energy in the node (unit of measure depends on energyStoredPerUnitOfState)"],
["boundary", "downwardSlack01", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack02", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack03", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack04", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack05", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack06", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack07", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack08", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack09", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack10", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack11", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack12", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack13", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack14", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack15", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack16", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack17", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack18", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack19", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "downwardSlack20", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "maxSpill ", "Maximum spill rate from the node (MWh/h)"],
["boundary", "minSpill ", "Minimum spill rate from the node (MWh/h)"],
["boundary", "reference ", "Reference value for a state that can be used to bound a state (unit of measure depends on energyStoredPerUnitOfState)"],
["boundary", "upwardLimit", "Absolute maximum state of the node (unit of measure depends on energyStoredPerUnitOfState)"],
["boundary", "upwardSlack01", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack02", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack03", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack04", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack05", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack06", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack07", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack08", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack09", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack10", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack11", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack12", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack13", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack14", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack15", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack16", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack17", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack18", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack19", "A threshold after which a specific cost co-efficient is applied"],
["boundary", "upwardSlack20", "A threshold after which a specific cost co-efficient is applied"],
["constraint", "eq1", "Equality constraints"],
["constraint", "eq2", "Equality constraints"],
["constraint", "eq3", "Equality constraints"],
["constraint", "eq4", "Equality constraints"],
["constraint", "eq5", "Equality constraints"],
["constraint", "eq6", "Equality constraints"],
["constraint", "eq7", "Equality constraints"],
["constraint", "eq8", "Equality constraints"],
["constraint", "eq9", "Equality constraints"],
["constraint", "gt1", "Greater than constraints"],
["constraint", "gt2", "Greater than constraints"],
["constraint", "gt3", "Greater than constraints"],
["constraint", "gt4", "Greater than constraints"],
["constraint", "gt5", "Greater than constraints"],
["constraint", "gt6", "Greater than constraints"],
["constraint", "gt7", "Greater than constraints"],
["constraint", "gt8", "Greater than constraints"],
["constraint", "gt9", "Greater than constraints"],
["effLevel", "level1", null],
["effLevel", "level2", null],
["effLevel", "level3", null],
["effLevel", "level4", null],
["effLevel", "level5", null],
["effLevel", "level6", null],
["effLevel", "level7", null],
["effLevel", "level8", null],
["effLevel", "level9", null],
["effSelector", "directOff", "Direct input to output equation without online variable, i.e. constant efficiency"],
["effSelector", "directOnLP", "Direct input to output equation with continuous online variable"],
["effSelector", "directOnMIP", "Direct input to output equation with integer online variable"],
["effSelector", "incHR", "Incremental heat rate equation"],
["effSelector", "lambda01", "Lambdas in use for part-load efficiency representation"],
["effSelector", "lambda02", "Lambdas in use for part-load efficiency representation"],
["effSelector", "lambda03", "Lambdas in use for part-load efficiency representation"],
["effSelector", "lambda04", "Lambdas in use for part-load efficiency representation"],
["effSelector", "lambda05", "Lambdas in use for part-load efficiency representation"],
["effSelector", "lambda06", "Lambdas in use for part-load efficiency representation"],
["effSelector", "lambda07", "Lambdas in use for part-load efficiency representation"],
["effSelector", "lambda08", "Lambdas in use for part-load efficiency representation"],