From 2930546b533b53478deec3189ae78e012d8c4b1b Mon Sep 17 00:00:00 2001 From: Amyot Date: Fri, 22 Oct 2021 16:28:43 -0400 Subject: [PATCH 01/10] First draft of tx_min_transmit_power constraint --- db/csvs_test_examples/csv_data_master.csv | 1 + db/csvs_test_examples/scenarios.csv | 183 +++++++++--------- .../1_transmission_min_transmit_power_1.csv | 3 + db/db_schema.sql | 29 +++ .../operations/operational_types/tx_simple.py | 163 ++++++++++++++++ 5 files changed, 288 insertions(+), 91 deletions(-) create mode 100644 db/csvs_test_examples/transmission/transmission_min_transmit_power/1_transmission_min_transmit_power_1.csv diff --git a/db/csvs_test_examples/csv_data_master.csv b/db/csvs_test_examples/csv_data_master.csv index d099e8816..34140cd9a 100644 --- a/db/csvs_test_examples/csv_data_master.csv +++ b/db/csvs_test_examples/csv_data_master.csv @@ -36,6 +36,7 @@ transmission/transmission_operational_chars,transmission,transmission_operationa transmission/transmission_new_cost,transmission,transmission_new_cost_scenario_id,transmission_new_cost,simple,,0,,,, transmission/transmission_hurdle_rates,transmission_hurdle_rates,transmission_hurdle_rate_scenario_id,transmission_hurdle_rates,simple,,0,,,, transmission/transmission_new_potential,transmission,transmission_new_potential_scenario_id,transmission_new_potential,simple,,0,,,, +transmission/transmission_min_transmit_power,transmission,transmission_min_transmit_power_scenario_id,transmission_min_transmit_power,simple,,0,,,, transmission/simultaneous_flow_limits/limits,simultaneous_flow_limits,transmission_simultaneous_flow_limit_scenario_id,transmission_simultaneous_flow_limits,simple,,0,,,, transmission/simultaneous_flow_limits/line_groups,simultaneous_flow_limits,transmission_simultaneous_flow_limit_line_group_scenario_id,transmission_simultaneous_flow_limit_line_groups,simple,,0,,,, reserves/lf_reserves_up/geography_lf_reserves_up_bas,lf_reserves_up,lf_reserves_up_ba_scenario_id,geography_lf_reserves_up_bas,simple,,0,,,, diff --git a/db/csvs_test_examples/scenarios.csv b/db/csvs_test_examples/scenarios.csv index 6c4df7823..1eddd8d7a 100644 --- a/db/csvs_test_examples/scenarios.csv +++ b/db/csvs_test_examples/scenarios.csv @@ -1,92 +1,93 @@ -optional_feature_or_subscenarios,test,test_w_storage,test_w_hydro,test_new_solar,test_new_binary_solar,test_new_build_storage,test_new_build_storage_cumulative_min_max,test_new_binary_build_storage,test_no_overgen_allowed,test_no_reserves,test_variable_gen_reserves,test_new_solar_carbon_cap,test_new_solar_carbon_tax,test_ramp_up_constraints,test_ramp_up_and_down_constraints,2horizons,2horizons_w_hydro,2horizons_w_hydro_and_nuclear_binary_availability,2horizons_w_hydro_w_balancing_types,2periods,2periods_gen_lin_econ_retirement,2periods_gen_bin_econ_retirement,2periods_new_build,2periods_new_build_2zones,2periods_new_build_2zones_singleBA,2periods_new_build_2zones_transmission,2periods_new_build_2zones_transmission_w_losses,2periods_new_build_2zones_transmission_w_losses_opp_dir,2periods_new_build_2zones_new_build_transmission,2periods_new_build_cumulative_min_max,2periods_new_build_rps,2periods_new_build_rps_variable_reserves,2periods_new_build_rps_variable_reserves_subhourly_adj,2periods_new_build_rps_w_rps_eligible_storage,2periods_new_build_rps_w_rps_ineligible_storage,2periods_new_build_simple_prm,test_new_solar_carbon_cap_2zones_dont_count_tx,test_new_solar_carbon_cap_2zones_tx,single_stage_prod_cost,multi_stage_prod_cost,multi_stage_prod_cost_w_hydro,test_tx_simple,test_tx_dcopf,2periods_new_build_local_capacity,test_startup_shutdown_rates,test_no_fuels,test_variable_om_curves,test_aux_cons,2periods_new_build_rps_percent_target,single_stage_prod_cost_linked_subproblems,multi_stage_prod_cost_linked_subproblems,test_w_lf_down_percent_req,2periods_new_build_capgroups,test_markets,2periods_new_build_horizon_energy_target,2periods_new_build_period_and_horizon_energy_target,2periods_new_build_horizon_energy_target_halfyear,test_new_build_gen_var_stor_hyb,test_carbon_tax_allowance,test_min_max_build_trans -of_transmission,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,1 -of_transmission_hurdle_rates,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_simultaneous_flow_limits,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +optional_feature_or_subscenarios,test,test_w_storage,test_w_hydro,test_new_solar,test_new_binary_solar,test_new_build_storage,test_new_build_storage_cumulative_min_max,test_new_binary_build_storage,test_no_overgen_allowed,test_no_reserves,test_variable_gen_reserves,test_new_solar_carbon_cap,test_new_solar_carbon_tax,test_ramp_up_constraints,test_ramp_up_and_down_constraints,2horizons,2horizons_w_hydro,2horizons_w_hydro_and_nuclear_binary_availability,2horizons_w_hydro_w_balancing_types,2periods,2periods_gen_lin_econ_retirement,2periods_gen_bin_econ_retirement,2periods_new_build,2periods_new_build_2zones,2periods_new_build_2zones_singleBA,2periods_new_build_2zones_transmission,2periods_new_build_2zones_transmission_w_losses,2periods_new_build_2zones_transmission_w_losses_opp_dir,2periods_new_build_2zones_new_build_transmission,2periods_new_build_cumulative_min_max,2periods_new_build_rps,2periods_new_build_rps_variable_reserves,2periods_new_build_rps_variable_reserves_subhourly_adj,2periods_new_build_rps_w_rps_eligible_storage,2periods_new_build_rps_w_rps_ineligible_storage,2periods_new_build_simple_prm,test_new_solar_carbon_cap_2zones_dont_count_tx,test_new_solar_carbon_cap_2zones_tx,single_stage_prod_cost,multi_stage_prod_cost,multi_stage_prod_cost_w_hydro,test_tx_simple,test_tx_dcopf,2periods_new_build_local_capacity,test_startup_shutdown_rates,test_no_fuels,test_variable_om_curves,test_aux_cons,2periods_new_build_rps_percent_target,single_stage_prod_cost_linked_subproblems,multi_stage_prod_cost_linked_subproblems,test_w_lf_down_percent_req,2periods_new_build_capgroups,test_markets,2periods_new_build_horizon_energy_target,2periods_new_build_period_and_horizon_energy_target,2periods_new_build_horizon_energy_target_halfyear,test_new_build_gen_var_stor_hyb,test_carbon_tax_allowance,test_min_max_build_trans,test_tx_min_transmit_power +of_transmission,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,1,1 +of_transmission_hurdle_rates,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_simultaneous_flow_limits,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, of_lf_reserves_up,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,"1 -",1,1,1,1,1,1,1,1,1,1,1,1 -of_lf_reserves_down,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -of_regulation_up,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -of_regulation_down,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -of_frequency_response,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_spinning_reserves,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_period_energy_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,1,,,,,,,1,,,, -of_horizon_energy_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,,, -of_carbon_cap,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,, -of_track_carbon_imports,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,1,1,,,,,,,,,,,,,,,,, -of_carbon_tax,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -of_prm,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,, -of_local_capacity,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -of_elcc_surface,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -of_markets,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,, -of_tuning,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -temporal_scenario_id,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,2,2,2,2,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,1,1,4,5,5,1,1,6,7,1,1,1,6,8,9,1,6,1,6,6,6,3,1,6 -load_zone_scenario_id,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2 -load_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,2,1,1,1,1,1,1,1,2,4,1,1,1,3,1,1,1,2,1,3,3,3,1,1,2 -project_portfolio_scenario_id,1,2,3,4,5,6,6,7,1,1,1,4,4,1,1,1,3,3,3,1,8,9,10,11,11,12,12,12,12,10,13,13,13,14,14,10,15,15,1,1,3,16,16,10,17,1,1,1,13,1,1,1,10,1,13,13,13,18,4,12 -project_operational_chars_scenario_id,1,1,1,1,1,1,1,1,1,1,2,1,1,3,4,1,5,10,6,1,1,1,1,1,1,1,1,1,1,1,1,7,7,8,8,1,1,1,7,1,9,1,1,1,11,12,13,14,1,7,7,1,1,1,1,1,1,1,1,1 -project_availability_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -project_load_zone_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -project_elcc_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,, -project_specified_capacity_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,3,3,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -project_specified_fixed_cost_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -fuel_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -fuel_price_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -project_new_cost_scenario_id,,,,1,1,1,1,1,,,,1,1,,,,,,,,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1,1,1,,,,,1,,,,1,,1,1,1,1,1,1 -project_new_potential_scenario_id,,,,1,,,1,,,,,2,2,,,,,,,,,,,,,,,,,1,,,,,,,2,2,,,,2,2,,,,,,,,,,,,,,,,2, -project_new_binary_build_size_scenario_id,,,,,1,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_capacity_group_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,, -project_capacity_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,, -transmission_portfolio_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,2,,,,,,,,1,1,,,,3,3,,,,,,,,,,,,,,,,,2 -transmission_load_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,2,1,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,1 -transmission_specified_capacity_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,1 -transmission_operational_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,3,3,1,,,,,,,,1,1,,,,1,2,,,,,,,,,,,,,,,,,1 -transmission_hurdle_rate_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -transmission_new_cost_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 -transmission_new_potential_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 -transmission_carbon_cap_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,1,1,,,,,,,,,,,,,,,,, -transmission_simultaneous_flow_limit_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -transmission_simultaneous_flow_limit_line_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -lf_reserves_up_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -lf_reserves_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 -project_lf_reserves_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -lf_reserves_down_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1 -lf_reserves_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 -project_lf_reserves_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -regulation_up_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -regulation_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 -project_regulation_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -regulation_down_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -regulation_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 -project_regulation_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -frequency_response_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -frequency_response_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_frequency_response_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -spinning_reserves_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -spinning_reserves_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -project_spinning_reserves_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -period_energy_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,2,,,,,,,1,,,, -horizon_energy_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,3,,, -energy_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,1,,,,,,1,1,1,,, -project_energy_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,2,,,,,,,,,,,,,,1,,,,,,1,1,1,,, -carbon_cap_target_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,, -carbon_cap_zone_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,, -project_carbon_cap_zone_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,, -carbon_tax_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -carbon_tax_zone_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -project_carbon_tax_zone_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -project_carbon_tax_allowance_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -prm_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,, -prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,, -project_prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,, -prm_energy_only_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -elcc_surface_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -local_capacity_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -local_capacity_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -project_local_capacity_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -project_local_capacity_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,, -tuning_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -solver_options_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -market_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,, -load_zone_market_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,, -market_price_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,, -market_volume_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,, \ No newline at end of file +",1,1,1,1,1,1,1,1,1,1,1,1,1 +of_lf_reserves_down,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +of_regulation_up,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +of_regulation_down,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +of_frequency_response,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_spinning_reserves,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_period_energy_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,1,,,,,,,1,,,,, +of_horizon_energy_target,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,,,, +of_carbon_cap,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,,1 +of_track_carbon_imports,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,1,1,,,,,,,,,,,,,,,,,,1 +of_carbon_tax,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +of_prm,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, +of_local_capacity,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +of_elcc_surface,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +of_markets,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,, +of_tuning,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +temporal_scenario_id,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,2,2,2,2,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,1,1,4,5,5,1,1,6,7,1,1,1,6,8,9,1,6,1,6,6,6,3,1,6,1 +load_zone_scenario_id,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,4 +load_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,2,1,1,1,1,1,1,1,2,4,1,1,1,3,1,1,1,2,1,3,3,3,1,1,2,1 +project_portfolio_scenario_id,1,2,3,4,5,6,6,7,1,1,1,4,4,1,1,1,3,3,3,1,8,9,10,11,11,12,12,12,12,10,13,13,13,14,14,10,15,15,1,1,3,16,16,10,17,1,1,1,13,1,1,1,10,1,13,13,13,18,4,12,16 +project_operational_chars_scenario_id,1,1,1,1,1,1,1,1,1,1,2,1,1,3,4,1,5,10,6,1,1,1,1,1,1,1,1,1,1,1,1,7,7,8,8,1,1,1,7,1,9,1,1,1,11,12,13,14,1,7,7,1,1,1,1,1,1,1,1,1,1 +project_availability_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +project_load_zone_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +project_elcc_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, +project_specified_capacity_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,3,3,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 +project_specified_fixed_cost_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +fuel_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +fuel_price_scenario_id,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +project_new_cost_scenario_id,,,,1,1,1,1,1,,,,1,1,,,,,,,,,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,1,1,1,,,,,1,,,,1,,1,1,1,1,1,1,1 +project_new_potential_scenario_id,,,,1,,,1,,,,,2,2,,,,,,,,,,,,,,,,,1,,,,,,,2,2,,,,2,2,,,,,,,,,,,,,,,,2,,2 +project_new_binary_build_size_scenario_id,,,,,1,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_capacity_group_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,, +project_capacity_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,, +transmission_portfolio_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,2,,,,,,,,1,1,,,,3,3,,,,,,,,,,,,,,,,,2,3 +transmission_load_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,2,1,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,1,1 +transmission_specified_capacity_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,1,1 +transmission_operational_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,3,3,1,,,,,,,,1,1,,,,1,2,,,,,,,,,,,,,,,,,1,1 +transmission_hurdle_rate_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +transmission_new_cost_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +transmission_new_potential_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +transmission_min_transmit_power_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 +transmission_carbon_cap_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,1,1,,,,,,,,,,,,,,,,,,1 +transmission_simultaneous_flow_limit_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +transmission_simultaneous_flow_limit_line_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +lf_reserves_up_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +lf_reserves_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1 +project_lf_reserves_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5 +lf_reserves_down_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1 +lf_reserves_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1 +project_lf_reserves_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5 +regulation_up_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +regulation_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1 +project_regulation_up_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5 +regulation_down_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +regulation_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,3,3,3,3,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1 +project_regulation_down_ba_scenario_id,1,1,1,1,1,1,1,1,1,,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,4,4,5,5,1,5,5,1,1,5,5,5,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5 +frequency_response_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +frequency_response_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_frequency_response_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +spinning_reserves_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +spinning_reserves_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +project_spinning_reserves_ba_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +period_energy_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,2,,,,,,,1,,,,, +horizon_energy_target_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,3,,,, +energy_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,1,,,,,,1,1,1,,,, +project_energy_target_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,2,,,,,,,,,,,,,,1,,,,,,1,1,1,,,, +carbon_cap_target_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,,1 +carbon_cap_zone_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,,1 +project_carbon_cap_zone_scenario_id,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,,1 +carbon_tax_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +carbon_tax_zone_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +project_carbon_tax_zone_scenario_id,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +project_carbon_tax_allowance_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +prm_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, +prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, +project_prm_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,, +prm_energy_only_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +elcc_surface_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +local_capacity_requirement_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +local_capacity_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +project_local_capacity_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +project_local_capacity_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, +tuning_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +solver_options_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +market_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,, +load_zone_market_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,, +market_price_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,, +market_volume_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,, \ No newline at end of file diff --git a/db/csvs_test_examples/transmission/transmission_min_transmit_power/1_transmission_min_transmit_power_1.csv b/db/csvs_test_examples/transmission/transmission_min_transmit_power/1_transmission_min_transmit_power_1.csv new file mode 100644 index 000000000..f9a19ae8c --- /dev/null +++ b/db/csvs_test_examples/transmission/transmission_min_transmit_power/1_transmission_min_transmit_power_1.csv @@ -0,0 +1,3 @@ +transmission_line,subproblem_id,stage_id,balancing_type_horizon,horizon,min_transmit_power_mw +Tx1,1,1,day,202001,-0.1 +Tx2,1,1,day,202001,-5.5 diff --git a/db/db_schema.sql b/db/db_schema.sql index cf208b31d..ec2cc614b 100644 --- a/db/db_schema.sql +++ b/db/db_schema.sql @@ -1718,6 +1718,29 @@ FOREIGN KEY (transmission_new_potential_scenario_id) REFERENCES subscenarios_transmission_new_potential (transmission_new_potential_scenario_id) ); +-- Transmission min transmit power +DROP TABLE IF EXISTS subscenarios_transmission_min_transmit_power; +CREATE TABLE subscenarios_transmission_min_transmit_power ( +transmission_min_transmit_power_scenario_id INTEGER PRIMARY KEY AUTOINCREMENT, +name VARCHAR(32), +description VARCHAR(128) +); + +DROP TABLE IF EXISTS inputs_transmission_min_transmit_power; +CREATE TABLE inputs_transmission_min_transmit_power ( +transmission_min_transmit_power_scenario_id INTEGER, +transmission_line VARCHAR(64), +subproblem_id INTEGER, +stage_id INTEGER, +balancing_type_horizon VARCHAR(64), +horizon INTEGER, +min_transmit_power_mw FLOAT, +PRIMARY KEY (transmission_min_transmit_power_scenario_id, transmission_line, subproblem_id, stage_id, +balancing_type_horizon, horizon), +FOREIGN KEY (transmission_min_transmit_power_scenario_id) REFERENCES +subscenarios_transmission_min_transmit_power (transmission_min_transmit_power_scenario_id) +); + -- Operational characteristics DROP TABLE IF EXISTS subscenarios_transmission_operational_chars; CREATE TABLE subscenarios_transmission_operational_chars ( @@ -2405,6 +2428,7 @@ transmission_new_cost_scenario_id INTEGER, transmission_operational_chars_scenario_id INTEGER, transmission_hurdle_rate_scenario_id INTEGER, transmission_new_potential_scenario_id INTEGER, +transmission_min_transmit_power_scenario_id INTEGER, transmission_carbon_cap_zone_scenario_id INTEGER, transmission_simultaneous_flow_limit_scenario_id INTEGER, transmission_simultaneous_flow_limit_line_group_scenario_id INTEGER, @@ -2552,6 +2576,8 @@ FOREIGN KEY (transmission_hurdle_rate_scenario_id) REFERENCES (transmission_hurdle_rate_scenario_id), FOREIGN KEY (transmission_new_potential_scenario_id) REFERENCES subscenarios_transmission_new_potential (transmission_new_potential_scenario_id), +FOREIGN KEY (transmission_min_transmit_power_scenario_id) REFERENCES + subscenarios_transmission_min_transmit_power (transmission_min_transmit_power_scenario_id), FOREIGN KEY (transmission_carbon_cap_zone_scenario_id) REFERENCES subscenarios_transmission_carbon_cap_zones (transmission_carbon_cap_zone_scenario_id), @@ -3820,6 +3846,7 @@ subscenarios_transmission_operational_chars.name AS transmission_operational_chars, subscenarios_transmission_hurdle_rates.name AS transmission_hurdle_rates, subscenarios_transmission_new_potential.name AS transmission_new_potential, +subscenarios_transmission_min_transmit_power.name AS transmission_min_transmit_power, subscenarios_transmission_carbon_cap_zones.name AS transmission_carbon_cap_zones, subscenarios_transmission_simultaneous_flow_limits.name @@ -3923,6 +3950,8 @@ LEFT JOIN subscenarios_transmission_hurdle_rates USING (transmission_hurdle_rate_scenario_id) LEFT JOIN subscenarios_transmission_new_potential USING (transmission_new_potential_scenario_id) +LEFT JOIN subscenarios_transmission_min_transmit_power + USING (transmission_min_transmit_power_scenario_id) LEFT JOIN subscenarios_transmission_carbon_cap_zones USING (transmission_carbon_cap_zone_scenario_id) LEFT JOIN subscenarios_transmission_simultaneous_flow_limits diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index b0ae8a70d..f0806eece 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -21,6 +21,7 @@ """ +import csv import os import pandas as pd from pyomo.environ import Set, Param, Var, Constraint, NonNegativeReals, \ @@ -158,12 +159,31 @@ def add_model_components( ) ) + m.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT = Set( + dimen=3, within=m.TX_SIMPLE * m.BLN_TYPE_HRZS + ) + + m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT = Set( + dimen=2, within=m.TX_SIMPLE_OPR_TMPS, + initialize=lambda mod: + set((l, tmp) for (l, tmp) in mod.TX_SIMPLE_OPR_TMPS + if l in mod.TX_SIMPLE) + ) + # Params ########################################################################### m.tx_simple_loss_factor = Param( m.TX_SIMPLE, within=PercentFraction, default=0 ) + # Optional Params + ########################################################################### + + m.tx_simple_min_transmit_power_mw = Param( + m.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT, + within=Reals + ) + # Variables ########################################################################### @@ -215,6 +235,10 @@ def add_model_components( rule=max_losses_to_rule ) + m.TxSimple_Min_Transmit_Power_Constraint = Constraint( + m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT, + rule=min_transmit_power_rule + ) # Constraint Formulation Rules ############################################################################### @@ -323,6 +347,27 @@ def max_losses_to_rule(mod, l, tmp): <= mod.Tx_Max_Capacity_MW[l, mod.period[tmp]] \ * mod.tx_simple_loss_factor[l] + +def min_transmit_power_rule(mod, l, bt, h): + """ + **Constraint Name**: TxSimple_Min_Transmit_Power_Constraint + **Enforced Over**: TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT + + Transmitted power should exceed the defined minimum transmission power in + each operational timepoint. + """ + var = mod.tx_simple_min_transmit_power_mw[l, bt, h] + if var == 0: + return Constraint.Skip + elif var > 0: + return mod.TxSimple_Transmit_Power_MW[l, mod. + ] \ + >= var + else: + return mod.TxSimple_Transmit_Power_MW[l, tmp] \ + <= var + + # Transmission Operational Type Methods ############################################################################### @@ -396,3 +441,121 @@ def load_model_data(m, d, data_portal, scenario_directory, # Load data data_portal.data()["tx_simple_loss_factor"] = loss_factor + + # Min transmit power + transmission_horizons_with_min = list() + min_transmit_power_mw = dict() + + header = pd.read_csv( + os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", + "transmission_min_transmit_power.tab"), + sep="\t", header=None, nrows=1 + ).values[0] + + optional_columns = ["min_transmit_power_mw"] + used_columns = [c for c in optional_columns if c in header] + + df = pd.read_csv( + os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", + "transmission_min_transmit_power.tab"), + sep="\t", usecols=["transmission_line", "balancing_type_horizon", "horizon"] + used_columns + ) + + # min_transmit_power_mw is optional, + # so TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT + # and min_transmit_power_mw simply won't be initialized if + # min_transmit_power_mw does not exist in the input file + if "min_transmit_power_mw" in df.columns: + for row in zip(df["transmission_line"], + df["balancing_type_horizon"], + df["horizon"], + df["min_transmit_power_mw"]): + if row[3] != ".": + transmission_horizons_with_min.append((row[0], row[1], row[2])) + min_transmit_power_mw[(row[0], row[1], row[2])] = float(row[3]) + else: + pass + else: + pass + + # Load min transmit power data + if not transmission_horizons_with_min: + pass # if the list is empty, don't initialize the set + else: + data_portal.data()["TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT"] = \ + {None: transmission_horizons_with_min} + + data_portal.data()["tx_simple_min_transmit_power_mw"] = \ + min_transmit_power_mw + + +def get_model_inputs_from_database(scenario_id, subscenarios, subproblem, stage, conn): + """ + :param subscenarios: SubScenarios object with all subscenario info + :param subproblem: + :param stage: + :param conn: database connection + :return: + """ + subproblem = 1 if subproblem == "" else subproblem + stage = 1 if stage == "" else stage + + c = conn.cursor() + tx_min_transmit_power = c.execute( + """SELECT transmission_line, balancing_type_horizon, horizon, min_transmit_power_mw + FROM inputs_transmission_min_transmit_power + JOIN + (SELECT balancing_type_horizon, horizon + FROM inputs_temporal_horizons + WHERE temporal_scenario_id = {}) as relevant_horizons + USING (balancing_type_horizon, horizon) + JOIN + (SELECT transmission_line + FROM inputs_transmission_portfolios + WHERE transmission_portfolio_scenario_id = {}) as relevant_tx + USING (transmission_line) + WHERE transmission_min_transmit_power_scenario_id = {} + AND subproblem_id = {} + AND stage_ID = {} + """.format( + subscenarios.TEMPORAL_SCENARIO_ID, + subscenarios.TRANSMISSION_PORTFOLIO_SCENARIO_ID, + subscenarios.TRANSMISSION_MIN_TRANSMIT_POWER_SCENARIO_ID, + subproblem, + stage + ) + ) + + return tx_min_transmit_power + + +def write_model_inputs(scenario_directory, scenario_id, subscenarios, subproblem, stage, conn): + """ + Get inputs from database and write out the model input + transmission_lines.tab file. + :param scenario_directory: string, the scenario directory + :param subscenarios: SubScenarios object with all subscenario info + :param subproblem: + :param stage: + :param conn: database connection + :return: + """ + + tx_min_transmit_power = get_model_inputs_from_database( + scenario_id, subscenarios, subproblem, stage, conn) + + with open(os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", + "transmission_min_transmit_power.tab"), + "w", newline="") as tx_min_transmit_power_tab_file: + writer = csv.writer(tx_min_transmit_power_tab_file, delimiter="\t", lineterminator="\n") + + # TODO: remove all_caps for TRANSMISSION_LINES and make columns + # same as database + # Write header + writer.writerow( + ["transmission_line", "balancing_type_horizon", "horizon", "min_transmit_power_mw"] + ) + + for row in tx_min_transmit_power: + replace_nulls = ["." if i is None else i for i in row] + writer.writerow(replace_nulls) From 9ca3217f413b8f98dd38540f4df102f33486d1d0 Mon Sep 17 00:00:00 2001 From: Amyot Date: Wed, 3 Nov 2021 16:18:05 -0400 Subject: [PATCH 02/10] Finished the implementation of tx_min_transmit_power constraint including unit tests --- examples/2horizons/scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + examples/2periods/scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../transmission_min_transmit_power.tab | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../transmission_min_transmit_power.tab | 1 + .../scenario_description.csv | 1 + .../transmission_min_transmit_power.tab | 1 + .../scenario_description.csv | 1 + .../transmission_min_transmit_power.tab | 1 + .../scenario_description.csv | 1 + .../transmission_min_transmit_power.tab | 1 + .../scenario_description.csv | 1 + .../transmission_min_transmit_power.tab | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + examples/test/scenario_description.csv | 1 + .../test_aux_cons/scenario_description.csv | 1 + .../inputs/variable_generator_profiles.tab | 4 +- .../scenario_description.csv | 1 + .../test_markets/scenario_description.csv | 1 + .../transmission_min_transmit_power.tab | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../inputs/variable_generator_profiles.tab | 4 +- .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../inputs/variable_generator_profiles.tab | 4 +- .../test_new_solar/scenario_description.csv | 1 + .../inputs/variable_generator_profiles.tab | 4 +- .../scenario_description.csv | 1 + .../transmission_min_transmit_power.tab | 1 + .../inputs/variable_generator_profiles.tab | 4 +- .../scenario_description.csv | 1 + .../transmission_min_transmit_power.tab | 1 + .../inputs/variable_generator_profiles.tab | 4 +- .../scenario_description.csv | 1 + .../inputs/variable_generator_profiles.tab | 4 +- .../scenario_description.csv | 1 + .../test_no_fuels/scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../test_no_reserves/scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../inputs/variable_generator_profiles.tab | 4 +- .../test_tx_dcopf/scenario_description.csv | 1 + .../test_tx_min_transmit_power/features.csv | 8 ++ .../inputs/carbon_cap.tab | 2 + .../inputs/carbon_cap_zones.tab | 2 + .../inputs/fuel_prices.tab | 7 ++ .../inputs/fuels.tab | 4 + .../inputs/heat_rate_curves.tab | 12 +++ .../inputs/horizon_timepoints.tab | 3 + .../inputs/horizons.tab | 2 + .../lf_reserves_down_tmp_requirement.tab | 3 + .../inputs/lf_reserves_up_tmp_requirement.tab | 3 + .../load_following_down_balancing_areas.tab | 2 + .../load_following_up_balancing_areas.tab | 2 + .../inputs/load_mw.tab | 7 ++ .../inputs/load_zones.tab | 4 + .../new_build_generator_vintage_costs.tab | 2 + .../inputs/periods.tab | 2 + .../inputs/projects.tab | 9 ++ .../regulation_down_balancing_areas.tab | 2 + .../regulation_down_tmp_requirement.tab | 3 + .../inputs/regulation_up_balancing_areas.tab | 2 + .../inputs/regulation_up_tmp_requirement.tab | 3 + .../inputs/spec_capacity_period_params.tab | 8 ++ ...specified_transmission_line_capacities.tab | 4 + .../inputs/timepoints.tab | 3 + .../inputs/transmission_lines.tab | 4 + .../transmission_min_transmit_power.tab | 3 + .../inputs/variable_generator_profiles.tab | 5 + .../results/objective_function_value.txt | 1 + .../results/solver_status.txt | 1 + .../results/summary_results.txt | 21 +++++ .../results/termination_condition.txt | 1 + .../scenario_description.csv | 93 +++++++++++++++++++ examples/test_tx_min_transmit_power/units.csv | 15 +++ .../transmission_min_transmit_power.tab | 1 + .../inputs/variable_generator_profiles.tab | 4 +- .../test_tx_simple/scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../test_w_hydro/scenario_description.csv | 1 + .../scenario_description.csv | 1 + .../test_w_storage/scenario_description.csv | 1 + .../operations/operational_types/tx_simple.py | 20 ++-- .../transmission_min_transmit_power.tab | 3 + tests/test_examples.py | 11 +++ .../operational_types/test_tx_simple.py | 23 +++++ 117 files changed, 375 insertions(+), 32 deletions(-) create mode 100644 examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_min_transmit_power.tab create mode 100644 examples/test_min_max_build_trans/inputs/transmission_min_transmit_power.tab create mode 100644 examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_min_transmit_power.tab create mode 100644 examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_min_transmit_power.tab create mode 100644 examples/test_tx_min_transmit_power/features.csv create mode 100644 examples/test_tx_min_transmit_power/inputs/carbon_cap.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/carbon_cap_zones.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/fuel_prices.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/fuels.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/heat_rate_curves.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/horizon_timepoints.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/horizons.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/lf_reserves_down_tmp_requirement.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/lf_reserves_up_tmp_requirement.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/load_following_down_balancing_areas.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/load_following_up_balancing_areas.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/load_mw.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/load_zones.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/new_build_generator_vintage_costs.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/periods.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/projects.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/regulation_down_balancing_areas.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/regulation_down_tmp_requirement.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/regulation_up_balancing_areas.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/regulation_up_tmp_requirement.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/spec_capacity_period_params.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/specified_transmission_line_capacities.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/timepoints.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/transmission_lines.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/transmission_min_transmit_power.tab create mode 100644 examples/test_tx_min_transmit_power/inputs/variable_generator_profiles.tab create mode 100644 examples/test_tx_min_transmit_power/results/objective_function_value.txt create mode 100644 examples/test_tx_min_transmit_power/results/solver_status.txt create mode 100644 examples/test_tx_min_transmit_power/results/summary_results.txt create mode 100644 examples/test_tx_min_transmit_power/results/termination_condition.txt create mode 100644 examples/test_tx_min_transmit_power/scenario_description.csv create mode 100644 examples/test_tx_min_transmit_power/units.csv create mode 100644 examples/test_tx_simple/inputs/transmission_min_transmit_power.tab create mode 100644 tests/test_data/inputs/transmission_min_transmit_power.tab diff --git a/examples/2horizons/scenario_description.csv b/examples/2horizons/scenario_description.csv index de83a7f81..076d60239 100644 --- a/examples/2horizons/scenario_description.csv +++ b/examples/2horizons/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2horizons_w_hydro/scenario_description.csv b/examples/2horizons_w_hydro/scenario_description.csv index 44011e6a7..9abc5faa7 100644 --- a/examples/2horizons_w_hydro/scenario_description.csv +++ b/examples/2horizons_w_hydro/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2horizons_w_hydro_and_nuclear_binary_availability/scenario_description.csv b/examples/2horizons_w_hydro_and_nuclear_binary_availability/scenario_description.csv index bdaa038fd..23edb396e 100644 --- a/examples/2horizons_w_hydro_and_nuclear_binary_availability/scenario_description.csv +++ b/examples/2horizons_w_hydro_and_nuclear_binary_availability/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2horizons_w_hydro_w_balancing_types/scenario_description.csv b/examples/2horizons_w_hydro_w_balancing_types/scenario_description.csv index 8f74eb1f3..2b5fc49ea 100644 --- a/examples/2horizons_w_hydro_w_balancing_types/scenario_description.csv +++ b/examples/2horizons_w_hydro_w_balancing_types/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods/scenario_description.csv b/examples/2periods/scenario_description.csv index f36213e64..c9835474f 100644 --- a/examples/2periods/scenario_description.csv +++ b/examples/2periods/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_gen_bin_econ_retirement/scenario_description.csv b/examples/2periods_gen_bin_econ_retirement/scenario_description.csv index a81335ec5..7d1fdd146 100644 --- a/examples/2periods_gen_bin_econ_retirement/scenario_description.csv +++ b/examples/2periods_gen_bin_econ_retirement/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_gen_lin_econ_retirement/scenario_description.csv b/examples/2periods_gen_lin_econ_retirement/scenario_description.csv index ca43daf5c..f0556d3ef 100644 --- a/examples/2periods_gen_lin_econ_retirement/scenario_description.csv +++ b/examples/2periods_gen_lin_econ_retirement/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build/scenario_description.csv b/examples/2periods_new_build/scenario_description.csv index cd4682f9c..57a30bb30 100644 --- a/examples/2periods_new_build/scenario_description.csv +++ b/examples/2periods_new_build/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones/scenario_description.csv b/examples/2periods_new_build_2zones/scenario_description.csv index 7fbed4bbd..4beb6ca61 100644 --- a/examples/2periods_new_build_2zones/scenario_description.csv +++ b/examples/2periods_new_build_2zones/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_new_build_transmission/scenario_description.csv b/examples/2periods_new_build_2zones_new_build_transmission/scenario_description.csv index 37cb227a6..609d7a39c 100644 --- a/examples/2periods_new_build_2zones_new_build_transmission/scenario_description.csv +++ b/examples/2periods_new_build_2zones_new_build_transmission/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_singleBA/scenario_description.csv b/examples/2periods_new_build_2zones_singleBA/scenario_description.csv index 7f9c57385..751f06c70 100644 --- a/examples/2periods_new_build_2zones_singleBA/scenario_description.csv +++ b/examples/2periods_new_build_2zones_singleBA/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission/scenario_description.csv b/examples/2periods_new_build_2zones_transmission/scenario_description.csv index 564c45a00..6bedc3676 100644 --- a/examples/2periods_new_build_2zones_transmission/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavail/scenario_description.csv b/examples/2periods_new_build_2zones_transmission_Tx1halfavail/scenario_description.csv index 075f2b7e8..bb97149aa 100644 --- a/examples/2periods_new_build_2zones_transmission_Tx1halfavail/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission_Tx1halfavail/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,2 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/scenario_description.csv b/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/scenario_description.csv index 56c4be93f..532ed0989 100644 --- a/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,3 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission_w_losses/scenario_description.csv b/examples/2periods_new_build_2zones_transmission_w_losses/scenario_description.csv index 4a14d12f2..d21707a05 100644 --- a/examples/2periods_new_build_2zones_transmission_w_losses/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission_w_losses/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,3 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/scenario_description.csv b/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/scenario_description.csv index a213d8767..3e3935166 100644 --- a/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,3 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_capgroups/scenario_description.csv b/examples/2periods_new_build_capgroups/scenario_description.csv index 87b9661e9..5964fdffb 100644 --- a/examples/2periods_new_build_capgroups/scenario_description.csv +++ b/examples/2periods_new_build_capgroups/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_cumulative_min_max/scenario_description.csv b/examples/2periods_new_build_cumulative_min_max/scenario_description.csv index b6dfc52b4..8b3036bdf 100644 --- a/examples/2periods_new_build_cumulative_min_max/scenario_description.csv +++ b/examples/2periods_new_build_cumulative_min_max/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_horizon_energy_target/scenario_description.csv b/examples/2periods_new_build_horizon_energy_target/scenario_description.csv index f8a841571..faadd8b18 100644 --- a/examples/2periods_new_build_horizon_energy_target/scenario_description.csv +++ b/examples/2periods_new_build_horizon_energy_target/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_horizon_energy_target_halfyear/scenario_description.csv b/examples/2periods_new_build_horizon_energy_target_halfyear/scenario_description.csv index b8b52e42a..dc264d79e 100644 --- a/examples/2periods_new_build_horizon_energy_target_halfyear/scenario_description.csv +++ b/examples/2periods_new_build_horizon_energy_target_halfyear/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_local_capacity/scenario_description.csv b/examples/2periods_new_build_local_capacity/scenario_description.csv index 163a4e33c..6b0913aea 100644 --- a/examples/2periods_new_build_local_capacity/scenario_description.csv +++ b/examples/2periods_new_build_local_capacity/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps/scenario_description.csv b/examples/2periods_new_build_rps/scenario_description.csv index 44f542ae7..80de3e6b5 100644 --- a/examples/2periods_new_build_rps/scenario_description.csv +++ b/examples/2periods_new_build_rps/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_percent_target/scenario_description.csv b/examples/2periods_new_build_rps_percent_target/scenario_description.csv index b7a8b1bdd..381ed4feb 100644 --- a/examples/2periods_new_build_rps_percent_target/scenario_description.csv +++ b/examples/2periods_new_build_rps_percent_target/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_variable_reserves/scenario_description.csv b/examples/2periods_new_build_rps_variable_reserves/scenario_description.csv index 093704485..4284ded1c 100644 --- a/examples/2periods_new_build_rps_variable_reserves/scenario_description.csv +++ b/examples/2periods_new_build_rps_variable_reserves/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_variable_reserves_subhourly_adj/scenario_description.csv b/examples/2periods_new_build_rps_variable_reserves_subhourly_adj/scenario_description.csv index 9ecdf1657..a3e6b68d3 100644 --- a/examples/2periods_new_build_rps_variable_reserves_subhourly_adj/scenario_description.csv +++ b/examples/2periods_new_build_rps_variable_reserves_subhourly_adj/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_w_rps_eligible_storage/scenario_description.csv b/examples/2periods_new_build_rps_w_rps_eligible_storage/scenario_description.csv index c1cb5602b..3de7e76f5 100644 --- a/examples/2periods_new_build_rps_w_rps_eligible_storage/scenario_description.csv +++ b/examples/2periods_new_build_rps_w_rps_eligible_storage/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_w_rps_ineligible_storage/scenario_description.csv b/examples/2periods_new_build_rps_w_rps_ineligible_storage/scenario_description.csv index 295a2701d..7ae3adab8 100644 --- a/examples/2periods_new_build_rps_w_rps_ineligible_storage/scenario_description.csv +++ b/examples/2periods_new_build_rps_w_rps_ineligible_storage/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_simple_prm/scenario_description.csv b/examples/2periods_new_build_simple_prm/scenario_description.csv index c866ff101..d7e4b51b2 100644 --- a/examples/2periods_new_build_simple_prm/scenario_description.csv +++ b/examples/2periods_new_build_simple_prm/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/multi_stage_prod_cost/scenario_description.csv b/examples/multi_stage_prod_cost/scenario_description.csv index 85efe0080..c0626584b 100644 --- a/examples/multi_stage_prod_cost/scenario_description.csv +++ b/examples/multi_stage_prod_cost/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/multi_stage_prod_cost_linked_subproblems/scenario_description.csv b/examples/multi_stage_prod_cost_linked_subproblems/scenario_description.csv index 3e1a4ca75..62c0b7111 100644 --- a/examples/multi_stage_prod_cost_linked_subproblems/scenario_description.csv +++ b/examples/multi_stage_prod_cost_linked_subproblems/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/multi_stage_prod_cost_w_hydro/scenario_description.csv b/examples/multi_stage_prod_cost_w_hydro/scenario_description.csv index 5628f1775..23111d0a5 100644 --- a/examples/multi_stage_prod_cost_w_hydro/scenario_description.csv +++ b/examples/multi_stage_prod_cost_w_hydro/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/single_stage_prod_cost/scenario_description.csv b/examples/single_stage_prod_cost/scenario_description.csv index aa4332516..95f2631b9 100644 --- a/examples/single_stage_prod_cost/scenario_description.csv +++ b/examples/single_stage_prod_cost/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/single_stage_prod_cost_linked_subproblems/scenario_description.csv b/examples/single_stage_prod_cost_linked_subproblems/scenario_description.csv index 7c22848cd..0d357a7af 100644 --- a/examples/single_stage_prod_cost_linked_subproblems/scenario_description.csv +++ b/examples/single_stage_prod_cost_linked_subproblems/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test/scenario_description.csv b/examples/test/scenario_description.csv index c6676268d..dd68fd4de 100644 --- a/examples/test/scenario_description.csv +++ b/examples/test/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_aux_cons/scenario_description.csv b/examples/test_aux_cons/scenario_description.csv index 5e50453c2..f23ebd2cd 100644 --- a/examples/test_aux_cons/scenario_description.csv +++ b/examples/test_aux_cons/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_carbon_tax_allowance/inputs/variable_generator_profiles.tab b/examples/test_carbon_tax_allowance/inputs/variable_generator_profiles.tab index d06d39e88..94cd63e53 100644 --- a/examples/test_carbon_tax_allowance/inputs/variable_generator_profiles.tab +++ b/examples/test_carbon_tax_allowance/inputs/variable_generator_profiles.tab @@ -1,5 +1,5 @@ project timepoint cap_factor -Solar 20200101 0.05 -Solar 20200102 1.0 Wind 20200101 0.9 Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_carbon_tax_allowance/scenario_description.csv b/examples/test_carbon_tax_allowance/scenario_description.csv index 37021bf47..e6968b969 100644 --- a/examples/test_carbon_tax_allowance/scenario_description.csv +++ b/examples/test_carbon_tax_allowance/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_markets/scenario_description.csv b/examples/test_markets/scenario_description.csv index 0aae00286..56c8224aa 100644 --- a/examples/test_markets/scenario_description.csv +++ b/examples/test_markets/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_min_max_build_trans/inputs/transmission_min_transmit_power.tab b/examples/test_min_max_build_trans/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/test_min_max_build_trans/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/test_min_max_build_trans/scenario_description.csv b/examples/test_min_max_build_trans/scenario_description.csv index f5a18adf8..228451d85 100644 --- a/examples/test_min_max_build_trans/scenario_description.csv +++ b/examples/test_min_max_build_trans/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,1 +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_binary_build_storage/scenario_description.csv b/examples/test_new_binary_build_storage/scenario_description.csv index c4102e903..ec2983ed4 100644 --- a/examples/test_new_binary_build_storage/scenario_description.csv +++ b/examples/test_new_binary_build_storage/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_binary_solar/inputs/variable_generator_profiles.tab b/examples/test_new_binary_solar/inputs/variable_generator_profiles.tab index d06d39e88..94cd63e53 100644 --- a/examples/test_new_binary_solar/inputs/variable_generator_profiles.tab +++ b/examples/test_new_binary_solar/inputs/variable_generator_profiles.tab @@ -1,5 +1,5 @@ project timepoint cap_factor -Solar 20200101 0.05 -Solar 20200102 1.0 Wind 20200101 0.9 Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_new_binary_solar/scenario_description.csv b/examples/test_new_binary_solar/scenario_description.csv index 9bad7ef91..e89857016 100644 --- a/examples/test_new_binary_solar/scenario_description.csv +++ b/examples/test_new_binary_solar/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_build_gen_var_stor_hyb/scenario_description.csv b/examples/test_new_build_gen_var_stor_hyb/scenario_description.csv index 165e8f2ad..1528f1c77 100644 --- a/examples/test_new_build_gen_var_stor_hyb/scenario_description.csv +++ b/examples/test_new_build_gen_var_stor_hyb/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_build_storage/scenario_description.csv b/examples/test_new_build_storage/scenario_description.csv index f097ba4e5..ebb331a2d 100644 --- a/examples/test_new_build_storage/scenario_description.csv +++ b/examples/test_new_build_storage/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_build_storage_cumulative_min_max/scenario_description.csv b/examples/test_new_build_storage_cumulative_min_max/scenario_description.csv index c8f6857c1..f51603963 100644 --- a/examples/test_new_build_storage_cumulative_min_max/scenario_description.csv +++ b/examples/test_new_build_storage_cumulative_min_max/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar/inputs/variable_generator_profiles.tab b/examples/test_new_solar/inputs/variable_generator_profiles.tab index d06d39e88..94cd63e53 100644 --- a/examples/test_new_solar/inputs/variable_generator_profiles.tab +++ b/examples/test_new_solar/inputs/variable_generator_profiles.tab @@ -1,5 +1,5 @@ project timepoint cap_factor -Solar 20200101 0.05 -Solar 20200102 1.0 Wind 20200101 0.9 Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_new_solar/scenario_description.csv b/examples/test_new_solar/scenario_description.csv index 6669670fd..ffab28e62 100644 --- a/examples/test_new_solar/scenario_description.csv +++ b/examples/test_new_solar/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar_carbon_cap/inputs/variable_generator_profiles.tab b/examples/test_new_solar_carbon_cap/inputs/variable_generator_profiles.tab index d06d39e88..94cd63e53 100644 --- a/examples/test_new_solar_carbon_cap/inputs/variable_generator_profiles.tab +++ b/examples/test_new_solar_carbon_cap/inputs/variable_generator_profiles.tab @@ -1,5 +1,5 @@ project timepoint cap_factor -Solar 20200101 0.05 -Solar 20200102 1.0 Wind 20200101 0.9 Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_new_solar_carbon_cap/scenario_description.csv b/examples/test_new_solar_carbon_cap/scenario_description.csv index c49f2957a..e1e6acf19 100644 --- a/examples/test_new_solar_carbon_cap/scenario_description.csv +++ b/examples/test_new_solar_carbon_cap/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_min_transmit_power.tab b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/variable_generator_profiles.tab b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/variable_generator_profiles.tab index d06d39e88..94cd63e53 100644 --- a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/variable_generator_profiles.tab +++ b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/variable_generator_profiles.tab @@ -1,5 +1,5 @@ project timepoint cap_factor -Solar 20200101 0.05 -Solar 20200102 1.0 Wind 20200101 0.9 Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/scenario_description.csv b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/scenario_description.csv index 552ada9ae..70ca8e8b7 100644 --- a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/scenario_description.csv +++ b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_min_transmit_power.tab b/examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/test_new_solar_carbon_cap_2zones_tx/inputs/variable_generator_profiles.tab b/examples/test_new_solar_carbon_cap_2zones_tx/inputs/variable_generator_profiles.tab index d06d39e88..94cd63e53 100644 --- a/examples/test_new_solar_carbon_cap_2zones_tx/inputs/variable_generator_profiles.tab +++ b/examples/test_new_solar_carbon_cap_2zones_tx/inputs/variable_generator_profiles.tab @@ -1,5 +1,5 @@ project timepoint cap_factor -Solar 20200101 0.05 -Solar 20200102 1.0 Wind 20200101 0.9 Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_new_solar_carbon_cap_2zones_tx/scenario_description.csv b/examples/test_new_solar_carbon_cap_2zones_tx/scenario_description.csv index 9c9ede5f2..9050cea2d 100644 --- a/examples/test_new_solar_carbon_cap_2zones_tx/scenario_description.csv +++ b/examples/test_new_solar_carbon_cap_2zones_tx/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,1 transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar_carbon_tax/inputs/variable_generator_profiles.tab b/examples/test_new_solar_carbon_tax/inputs/variable_generator_profiles.tab index d06d39e88..94cd63e53 100644 --- a/examples/test_new_solar_carbon_tax/inputs/variable_generator_profiles.tab +++ b/examples/test_new_solar_carbon_tax/inputs/variable_generator_profiles.tab @@ -1,5 +1,5 @@ project timepoint cap_factor -Solar 20200101 0.05 -Solar 20200102 1.0 Wind 20200101 0.9 Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_new_solar_carbon_tax/scenario_description.csv b/examples/test_new_solar_carbon_tax/scenario_description.csv index d6c97fc8b..29bda074e 100644 --- a/examples/test_new_solar_carbon_tax/scenario_description.csv +++ b/examples/test_new_solar_carbon_tax/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_no_fuels/scenario_description.csv b/examples/test_no_fuels/scenario_description.csv index 8ac7ff179..724bd0f58 100644 --- a/examples/test_no_fuels/scenario_description.csv +++ b/examples/test_no_fuels/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_no_overgen_allowed/scenario_description.csv b/examples/test_no_overgen_allowed/scenario_description.csv index 98930379a..e7b8298e8 100644 --- a/examples/test_no_overgen_allowed/scenario_description.csv +++ b/examples/test_no_overgen_allowed/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_no_reserves/scenario_description.csv b/examples/test_no_reserves/scenario_description.csv index 552873ef6..ca3ea43a1 100644 --- a/examples/test_no_reserves/scenario_description.csv +++ b/examples/test_no_reserves/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_ramp_up_and_down_constraints/scenario_description.csv b/examples/test_ramp_up_and_down_constraints/scenario_description.csv index 53db0d78b..f70e2a7a9 100644 --- a/examples/test_ramp_up_and_down_constraints/scenario_description.csv +++ b/examples/test_ramp_up_and_down_constraints/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_ramp_up_constraints/scenario_description.csv b/examples/test_ramp_up_constraints/scenario_description.csv index 1c6d9f137..3a635129a 100644 --- a/examples/test_ramp_up_constraints/scenario_description.csv +++ b/examples/test_ramp_up_constraints/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_startup_shutdown_rates/scenario_description.csv b/examples/test_startup_shutdown_rates/scenario_description.csv index 6fbc10b64..b1f8273d2 100644 --- a/examples/test_startup_shutdown_rates/scenario_description.csv +++ b/examples/test_startup_shutdown_rates/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_tx_dcopf/inputs/variable_generator_profiles.tab b/examples/test_tx_dcopf/inputs/variable_generator_profiles.tab index d06d39e88..94cd63e53 100644 --- a/examples/test_tx_dcopf/inputs/variable_generator_profiles.tab +++ b/examples/test_tx_dcopf/inputs/variable_generator_profiles.tab @@ -1,5 +1,5 @@ project timepoint cap_factor -Solar 20200101 0.05 -Solar 20200102 1.0 Wind 20200101 0.9 Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_tx_dcopf/scenario_description.csv b/examples/test_tx_dcopf/scenario_description.csv index f6cfebf66..211e86339 100644 --- a/examples/test_tx_dcopf/scenario_description.csv +++ b/examples/test_tx_dcopf/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,2 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,1 transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_tx_min_transmit_power/features.csv b/examples/test_tx_min_transmit_power/features.csv new file mode 100644 index 000000000..0062e4d72 --- /dev/null +++ b/examples/test_tx_min_transmit_power/features.csv @@ -0,0 +1,8 @@ +features +transmission +lf_reserves_up +lf_reserves_down +regulation_up +regulation_down +carbon_cap +track_carbon_imports diff --git a/examples/test_tx_min_transmit_power/inputs/carbon_cap.tab b/examples/test_tx_min_transmit_power/inputs/carbon_cap.tab new file mode 100644 index 000000000..8cfa6e269 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/carbon_cap.tab @@ -0,0 +1,2 @@ +carbon_cap_zone period carbon_cap_target +Zone1 2020 300.0 diff --git a/examples/test_tx_min_transmit_power/inputs/carbon_cap_zones.tab b/examples/test_tx_min_transmit_power/inputs/carbon_cap_zones.tab new file mode 100644 index 000000000..71fb3db37 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/carbon_cap_zones.tab @@ -0,0 +1,2 @@ +carbon_cap_zone allow_violation violation_penalty_per_emission +Zone1 0 0.0 diff --git a/examples/test_tx_min_transmit_power/inputs/fuel_prices.tab b/examples/test_tx_min_transmit_power/inputs/fuel_prices.tab new file mode 100644 index 000000000..d3925717d --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/fuel_prices.tab @@ -0,0 +1,7 @@ +fuel period month fuel_price_per_mmbtu +Coal 2020 1 4.0 +Coal 2020 2 4.0 +Gas 2020 1 5.0 +Gas 2020 2 5.0 +Uranium 2020 1 2.0 +Uranium 2020 2 2.0 diff --git a/examples/test_tx_min_transmit_power/inputs/fuels.tab b/examples/test_tx_min_transmit_power/inputs/fuels.tab new file mode 100644 index 000000000..c0a5c106f --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/fuels.tab @@ -0,0 +1,4 @@ +FUELS co2_intensity_tons_per_mmbtu +Coal 0.09552 +Gas 0.05306 +Uranium 0.0 diff --git a/examples/test_tx_min_transmit_power/inputs/heat_rate_curves.tab b/examples/test_tx_min_transmit_power/inputs/heat_rate_curves.tab new file mode 100644 index 000000000..55da0e3cf --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/heat_rate_curves.tab @@ -0,0 +1,12 @@ +project period load_point_fraction average_heat_rate_mmbtu_per_mwh +Coal 0 0.4 1250.0 +Coal 0 1.0 506.0 +Gas_CCGT 0 0.5 506.0 +Gas_CCGT 0 1.0 256.0 +Gas_CCGT_z2 0 0.5 506.0 +Gas_CCGT_z2 0 1.0 256.0 +Gas_CCGT_z3 0 0.5 350.0 +Gas_CCGT_z3 0 1.0 200.0 +Gas_CT 0 0.4 208.33333 +Gas_CT 0 1.0 88.13333 +Nuclear 0 1.0 1666.67 diff --git a/examples/test_tx_min_transmit_power/inputs/horizon_timepoints.tab b/examples/test_tx_min_transmit_power/inputs/horizon_timepoints.tab new file mode 100644 index 000000000..ba1741348 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/horizon_timepoints.tab @@ -0,0 +1,3 @@ +horizon balancing_type_horizon timepoint +202001 day 20200101 +202001 day 20200102 diff --git a/examples/test_tx_min_transmit_power/inputs/horizons.tab b/examples/test_tx_min_transmit_power/inputs/horizons.tab new file mode 100644 index 000000000..169518ded --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/horizons.tab @@ -0,0 +1,2 @@ +horizon balancing_type_horizon boundary +202001 day circular diff --git a/examples/test_tx_min_transmit_power/inputs/lf_reserves_down_tmp_requirement.tab b/examples/test_tx_min_transmit_power/inputs/lf_reserves_down_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/lf_reserves_down_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_tx_min_transmit_power/inputs/lf_reserves_up_tmp_requirement.tab b/examples/test_tx_min_transmit_power/inputs/lf_reserves_up_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/lf_reserves_up_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_tx_min_transmit_power/inputs/load_following_down_balancing_areas.tab b/examples/test_tx_min_transmit_power/inputs/load_following_down_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/load_following_down_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_tx_min_transmit_power/inputs/load_following_up_balancing_areas.tab b/examples/test_tx_min_transmit_power/inputs/load_following_up_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/load_following_up_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_tx_min_transmit_power/inputs/load_mw.tab b/examples/test_tx_min_transmit_power/inputs/load_mw.tab new file mode 100644 index 000000000..0afc61621 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/load_mw.tab @@ -0,0 +1,7 @@ +LOAD_ZONES timepoint load_mw +Zone1 20200101 10.0 +Zone1 20200102 20.0 +Zone2 20200101 10.0 +Zone2 20200102 10.0 +Zone3 20200101 30.0 +Zone3 20200102 30.0 diff --git a/examples/test_tx_min_transmit_power/inputs/load_zones.tab b/examples/test_tx_min_transmit_power/inputs/load_zones.tab new file mode 100644 index 000000000..36677d98e --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/load_zones.tab @@ -0,0 +1,4 @@ +load_zone allow_overgeneration overgeneration_penalty_per_mw allow_unserved_energy unserved_energy_penalty_per_mwh max_unserved_load_penalty_per_mw export_penalty_cost_per_mwh +Zone1 1 99999999.0 1 99999999.0 0.0 0.0 +Zone2 1 99999999.0 1 99999999.0 0.0 0.0 +Zone3 1 99999999.0 1 99999999.0 0.0 0.0 diff --git a/examples/test_tx_min_transmit_power/inputs/new_build_generator_vintage_costs.tab b/examples/test_tx_min_transmit_power/inputs/new_build_generator_vintage_costs.tab new file mode 100644 index 000000000..bcbc29bac --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/new_build_generator_vintage_costs.tab @@ -0,0 +1,2 @@ +project vintage lifetime_yrs annualized_real_cost_per_mw_yr min_cumulative_new_build_mw max_cumulative_new_build_mw +Solar 2020 30 100.0 0.0 2.0 diff --git a/examples/test_tx_min_transmit_power/inputs/periods.tab b/examples/test_tx_min_transmit_power/inputs/periods.tab new file mode 100644 index 000000000..cd509b3ba --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/periods.tab @@ -0,0 +1,2 @@ +period discount_factor period_start_year period_end_year hours_in_period_timepoints +2020 1.0 2020.0 2021.0 8760.0 diff --git a/examples/test_tx_min_transmit_power/inputs/projects.tab b/examples/test_tx_min_transmit_power/inputs/projects.tab new file mode 100644 index 000000000..cf5238d59 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/projects.tab @@ -0,0 +1,9 @@ +project capacity_type availability_type operational_type balancing_type_project technology load_zone fuel variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate carbon_cap_zone +Coal gen_spec exogenous gen_commit_cap day Coal Zone1 Coal 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . 2 . . . . . Zone1 . Zone1 . . . . . Zone1 +Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 Gas 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . 1 . Zone1 . Zone1 . Zone1 . Zone1 . . . . . Zone1 +Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 Gas 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . +Gas_CCGT_z3 gen_spec exogenous gen_commit_cap day Gas Zone3 Gas 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . +Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 Gas 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . Zone1 +Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 Uranium 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Solar gen_new_lin exogenous gen_var day Solar Zone1 . 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Wind gen_spec exogenous gen_var day Wind Zone1 . 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/examples/test_tx_min_transmit_power/inputs/regulation_down_balancing_areas.tab b/examples/test_tx_min_transmit_power/inputs/regulation_down_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/regulation_down_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_tx_min_transmit_power/inputs/regulation_down_tmp_requirement.tab b/examples/test_tx_min_transmit_power/inputs/regulation_down_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/regulation_down_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_tx_min_transmit_power/inputs/regulation_up_balancing_areas.tab b/examples/test_tx_min_transmit_power/inputs/regulation_up_balancing_areas.tab new file mode 100644 index 000000000..7e4fdfbf2 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/regulation_up_balancing_areas.tab @@ -0,0 +1,2 @@ +balancing_area allow_violation violation_penalty_per_mw reserve_to_energy_adjustment +Zone1 1 999999999.0 . diff --git a/examples/test_tx_min_transmit_power/inputs/regulation_up_tmp_requirement.tab b/examples/test_tx_min_transmit_power/inputs/regulation_up_tmp_requirement.tab new file mode 100644 index 000000000..891ff1859 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/regulation_up_tmp_requirement.tab @@ -0,0 +1,3 @@ +ba timepoint requirement +Zone1 20200101 1.0 +Zone1 20200102 2.0 diff --git a/examples/test_tx_min_transmit_power/inputs/spec_capacity_period_params.tab b/examples/test_tx_min_transmit_power/inputs/spec_capacity_period_params.tab new file mode 100644 index 000000000..9f663932f --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/spec_capacity_period_params.tab @@ -0,0 +1,8 @@ +project period specified_capacity_mw hyb_gen_specified_capacity_mw hyb_stor_specified_capacity_mw specified_capacity_mwh fixed_cost_per_mw_yr hyb_gen_fixed_cost_per_mw_yr hyb_stor_fixed_cost_per_mw_yr fixed_cost_per_mwh_yr +Coal 2020 6.0 0.0 +Gas_CCGT 2020 6.0 0.0 +Gas_CCGT_z2 2020 12.0 0.0 +Gas_CCGT_z3 2020 35.0 0.0 +Gas_CT 2020 6.0 0.0 +Nuclear 2020 6.0 0.0 +Wind 2020 2.0 0.0 diff --git a/examples/test_tx_min_transmit_power/inputs/specified_transmission_line_capacities.tab b/examples/test_tx_min_transmit_power/inputs/specified_transmission_line_capacities.tab new file mode 100644 index 000000000..acf9df4e2 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/specified_transmission_line_capacities.tab @@ -0,0 +1,4 @@ +transmission_line period specified_tx_min_mw specified_tx_max_mw +Tx1 2020 -10.0 10.0 +Tx2 2020 -10.0 10.0 +Tx3 2020 -10.0 10.0 diff --git a/examples/test_tx_min_transmit_power/inputs/timepoints.tab b/examples/test_tx_min_transmit_power/inputs/timepoints.tab new file mode 100644 index 000000000..d82db603e --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/timepoints.tab @@ -0,0 +1,3 @@ +timepoint period timepoint_weight number_of_hours_in_timepoint previous_stage_timepoint_map month +20200101 2020 4380.0 1 . 1 +20200102 2020 4380.0 1 . 1 diff --git a/examples/test_tx_min_transmit_power/inputs/transmission_lines.tab b/examples/test_tx_min_transmit_power/inputs/transmission_lines.tab new file mode 100644 index 000000000..499ce0b4e --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/transmission_lines.tab @@ -0,0 +1,4 @@ +transmission_line tx_capacity_type tx_availability_type tx_operational_type load_zone_from load_zone_to tx_simple_loss_factor reactance_ohms carbon_cap_zone carbon_cap_zone_import_direction tx_co2_intensity_tons_per_mwh +Tx1 tx_spec exogenous tx_simple Zone1 Zone2 . . Zone1 negative 0.6 +Tx2 tx_spec exogenous tx_simple Zone2 Zone3 . . . . . +Tx3 tx_spec exogenous tx_simple Zone1 Zone3 . . Zone1 negative 0.6 diff --git a/examples/test_tx_min_transmit_power/inputs/transmission_min_transmit_power.tab b/examples/test_tx_min_transmit_power/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..379220c12 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/transmission_min_transmit_power.tab @@ -0,0 +1,3 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw +Tx1 day 202001 -0.1 +Tx2 day 202001 -5.5 diff --git a/examples/test_tx_min_transmit_power/inputs/variable_generator_profiles.tab b/examples/test_tx_min_transmit_power/inputs/variable_generator_profiles.tab new file mode 100644 index 000000000..94cd63e53 --- /dev/null +++ b/examples/test_tx_min_transmit_power/inputs/variable_generator_profiles.tab @@ -0,0 +1,5 @@ +project timepoint cap_factor +Wind 20200101 0.9 +Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_tx_min_transmit_power/results/objective_function_value.txt b/examples/test_tx_min_transmit_power/results/objective_function_value.txt new file mode 100644 index 000000000..0eff060fe --- /dev/null +++ b/examples/test_tx_min_transmit_power/results/objective_function_value.txt @@ -0,0 +1 @@ +Objective function: -58467336323371.43 \ No newline at end of file diff --git a/examples/test_tx_min_transmit_power/results/solver_status.txt b/examples/test_tx_min_transmit_power/results/solver_status.txt new file mode 100644 index 000000000..b5754e203 --- /dev/null +++ b/examples/test_tx_min_transmit_power/results/solver_status.txt @@ -0,0 +1 @@ +ok \ No newline at end of file diff --git a/examples/test_tx_min_transmit_power/results/summary_results.txt b/examples/test_tx_min_transmit_power/results/summary_results.txt new file mode 100644 index 000000000..93e908b3c --- /dev/null +++ b/examples/test_tx_min_transmit_power/results/summary_results.txt @@ -0,0 +1,21 @@ +##### SUMMARY RESULTS FOR SCENARIO *test_tx_min_transmit_power* ##### + +### CAPACITY RESULTS ### + +--> New Generation Capacity <-- + New Capacity (MW) +load_zone technology vintage +Zone1 Solar 2020 2.00 + +### OPERATIONAL RESULTS ### + +--> Energy Production <-- + Annual Energy (MWh) % Total Power +load_zone period technology +Zone1 2020 Coal 0.00 0.00 + Gas 0.00 0.00 + Nuclear 52,560.00 71.01 + Solar 9,198.00 12.43 + Wind 12,264.00 16.57 +Zone2 2020 Gas 42,110.00 100.00 +Zone3 2020 Gas 306,600.00 100.00 diff --git a/examples/test_tx_min_transmit_power/results/termination_condition.txt b/examples/test_tx_min_transmit_power/results/termination_condition.txt new file mode 100644 index 000000000..644457f4c --- /dev/null +++ b/examples/test_tx_min_transmit_power/results/termination_condition.txt @@ -0,0 +1 @@ +optimal \ No newline at end of file diff --git a/examples/test_tx_min_transmit_power/scenario_description.csv b/examples/test_tx_min_transmit_power/scenario_description.csv new file mode 100644 index 000000000..d6b3a3357 --- /dev/null +++ b/examples/test_tx_min_transmit_power/scenario_description.csv @@ -0,0 +1,93 @@ +scenario_id,63 +scenario_name,test_tx_min_transmit_power +of_transmission,1 +of_transmission_hurdle_rates, +of_simultaneous_flow_limits, +of_lf_reserves_up,1 +of_lf_reserves_down,1 +of_regulation_up,1 +of_regulation_down,1 +of_frequency_response, +of_spinning_reserves, +of_period_energy_target, +of_horizon_energy_target, +of_carbon_cap,1 +of_track_carbon_imports,1 +of_carbon_tax, +of_prm, +of_elcc_surface, +of_local_capacity, +of_markets, +of_tuning, +temporal_scenario_id,1 +load_zone_scenario_id,4 +lf_reserves_up_ba_scenario_id,1 +lf_reserves_down_ba_scenario_id,1 +regulation_up_ba_scenario_id,1 +regulation_down_ba_scenario_id,1 +frequency_response_ba_scenario_id,NULL +spinning_reserves_ba_scenario_id,NULL +energy_target_zone_scenario_id,NULL +carbon_cap_zone_scenario_id,1 +carbon_tax_zone_scenario_id,NULL +prm_zone_scenario_id,NULL +local_capacity_zone_scenario_id,NULL +market_scenario_id,NULL +project_portfolio_scenario_id,16 +project_operational_chars_scenario_id,1 +project_availability_scenario_id,1 +fuel_scenario_id,1 +project_load_zone_scenario_id,1 +project_lf_reserves_up_ba_scenario_id,5 +project_lf_reserves_down_ba_scenario_id,5 +project_regulation_up_ba_scenario_id,5 +project_regulation_down_ba_scenario_id,5 +project_frequency_response_ba_scenario_id,NULL +project_spinning_reserves_ba_scenario_id,NULL +project_energy_target_zone_scenario_id,NULL +project_carbon_cap_zone_scenario_id,1 +project_carbon_tax_zone_scenario_id,NULL +project_carbon_tax_allowance_scenario_id,NULL +project_prm_zone_scenario_id,NULL +project_elcc_chars_scenario_id,NULL +prm_energy_only_scenario_id,NULL +project_local_capacity_zone_scenario_id,NULL +project_local_capacity_chars_scenario_id,NULL +load_zone_market_scenario_id,NULL +project_specified_capacity_scenario_id,3 +project_specified_fixed_cost_scenario_id,1 +fuel_price_scenario_id,1 +project_new_cost_scenario_id,1 +project_new_potential_scenario_id,2 +project_new_binary_build_size_scenario_id,NULL +project_capacity_group_requirement_scenario_id,NULL +project_capacity_group_scenario_id,NULL +transmission_portfolio_scenario_id,3 +transmission_load_zone_scenario_id,1 +transmission_specified_capacity_scenario_id,1 +transmission_new_cost_scenario_id,NULL +transmission_availability_scenario_id,1 +transmission_operational_chars_scenario_id,1 +transmission_hurdle_rate_scenario_id,NULL +transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,1 +transmission_carbon_cap_zone_scenario_id,1 +transmission_simultaneous_flow_limit_scenario_id,NULL +transmission_simultaneous_flow_limit_line_group_scenario_id,NULL +load_scenario_id,1 +lf_reserves_up_scenario_id,1 +lf_reserves_down_scenario_id,1 +regulation_up_scenario_id,1 +regulation_down_scenario_id,1 +frequency_response_scenario_id,NULL +spinning_reserves_scenario_id,NULL +period_energy_target_scenario_id,NULL +horizon_energy_target_scenario_id,NULL +carbon_cap_target_scenario_id,1 +carbon_tax_scenario_id,NULL +prm_requirement_scenario_id,NULL +local_capacity_requirement_scenario_id,NULL +elcc_surface_scenario_id,NULL +market_price_scenario_id,NULL +market_volume_scenario_id,NULL +tuning_scenario_id,NULL diff --git a/examples/test_tx_min_transmit_power/units.csv b/examples/test_tx_min_transmit_power/units.csv new file mode 100644 index 000000000..50a443355 --- /dev/null +++ b/examples/test_tx_min_transmit_power/units.csv @@ -0,0 +1,15 @@ +metric,unit +power,MW +energy,MWh +fuel_energy,MMBtu +cost,USD +carbon_emissions,tonnes CO2 +time_for_cost,yr. +heat_rate,MMBtu/MWh +fuel_emission_intensity,tonnes CO2/MMBtu +fuel_price,USD/MMBtu +variable_om_cost,USD/MWh +fixed_om_cost,USD/MW-yr. +fixed_om_cost_energy,USD/MW-yr. +capacity_cost,USD/MW-yr. +energy_capacity_cost,USD/MWh-yr. diff --git a/examples/test_tx_simple/inputs/transmission_min_transmit_power.tab b/examples/test_tx_simple/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..e5461dcec --- /dev/null +++ b/examples/test_tx_simple/inputs/transmission_min_transmit_power.tab @@ -0,0 +1 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/test_tx_simple/inputs/variable_generator_profiles.tab b/examples/test_tx_simple/inputs/variable_generator_profiles.tab index d06d39e88..94cd63e53 100644 --- a/examples/test_tx_simple/inputs/variable_generator_profiles.tab +++ b/examples/test_tx_simple/inputs/variable_generator_profiles.tab @@ -1,5 +1,5 @@ project timepoint cap_factor -Solar 20200101 0.05 -Solar 20200102 1.0 Wind 20200101 0.9 Wind 20200102 0.5 +Solar 20200101 0.05 +Solar 20200102 1.0 diff --git a/examples/test_tx_simple/scenario_description.csv b/examples/test_tx_simple/scenario_description.csv index a1d4c4b15..bb943285b 100644 --- a/examples/test_tx_simple/scenario_description.csv +++ b/examples/test_tx_simple/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,1 transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_variable_gen_reserves/scenario_description.csv b/examples/test_variable_gen_reserves/scenario_description.csv index 9946bbab1..910704acc 100644 --- a/examples/test_variable_gen_reserves/scenario_description.csv +++ b/examples/test_variable_gen_reserves/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_variable_om_curves/scenario_description.csv b/examples/test_variable_om_curves/scenario_description.csv index 628bb3a38..e0f2de908 100644 --- a/examples/test_variable_om_curves/scenario_description.csv +++ b/examples/test_variable_om_curves/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_w_hydro/scenario_description.csv b/examples/test_w_hydro/scenario_description.csv index e3beccae8..43876769e 100644 --- a/examples/test_w_hydro/scenario_description.csv +++ b/examples/test_w_hydro/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_w_lf_down_percent_req/scenario_description.csv b/examples/test_w_lf_down_percent_req/scenario_description.csv index 9ae965aa7..047aee9ba 100644 --- a/examples/test_w_lf_down_percent_req/scenario_description.csv +++ b/examples/test_w_lf_down_percent_req/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_w_storage/scenario_description.csv b/examples/test_w_storage/scenario_description.csv index da3bd6044..73350301f 100644 --- a/examples/test_w_storage/scenario_description.csv +++ b/examples/test_w_storage/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_min_transmit_power_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index ce766d331..6487a62da 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -163,13 +163,6 @@ def add_model_components( dimen=3, within=m.TX_SIMPLE * m.BLN_TYPE_HRZS ) - m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT = Set( - dimen=2, within=m.TX_SIMPLE_OPR_TMPS, - initialize=lambda mod: - set((l, tmp) for (l, tmp) in mod.TX_SIMPLE_OPR_TMPS - if l in mod.TX_SIMPLE) - ) - # Params ########################################################################### m.tx_simple_loss_factor = Param( @@ -181,7 +174,7 @@ def add_model_components( m.tx_simple_min_transmit_power_mw = Param( m.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT, - within=Reals + within=Reals, default=0 ) # Variables @@ -236,7 +229,7 @@ def add_model_components( ) m.TxSimple_Min_Transmit_Power_Constraint = Constraint( - m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT, + m.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT, rule=min_transmit_power_rule ) @@ -364,12 +357,11 @@ def min_transmit_power_rule(mod, l, bt, h): if var == 0: return Constraint.Skip elif var > 0: - return mod.TxSimple_Transmit_Power_MW[l, mod. - ] \ - >= var + for tmp in mod.TMPS_BY_BLN_TYPE_HRZ[bt, h]: + return mod.TxSimple_Transmit_Power_MW[l, tmp] >= var else: - return mod.TxSimple_Transmit_Power_MW[l, tmp] \ - <= var + for tmp in mod.TMPS_BY_BLN_TYPE_HRZ[bt, h]: + return mod.TxSimple_Transmit_Power_MW[l, tmp] <= var # Transmission Operational Type Methods diff --git a/tests/test_data/inputs/transmission_min_transmit_power.tab b/tests/test_data/inputs/transmission_min_transmit_power.tab new file mode 100644 index 000000000..83ac63e6a --- /dev/null +++ b/tests/test_data/inputs/transmission_min_transmit_power.tab @@ -0,0 +1,3 @@ +transmission_line balancing_type_horizon horizon min_transmit_power_mw +Tx_New day 202001 -0.1 +Tx_New day 202002 -5.5 diff --git a/tests/test_examples.py b/tests/test_examples.py index 15879e8ca..128af9c36 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -947,6 +947,17 @@ def test_example_2periods_new_build_2zones_transmission_Tx1halfavailmonthly(self -308370294932303.7 ) + def test_tx_min_transmit_power(self): + """ + Check validation and objective function value of + "test_tx_min_transmit_power" example + :return: + """ + + self.check_validation("test_tx_min_transmit_power") + self.run_and_check_objective("test_tx_min_transmit_power", + -58467336323371.43) + @classmethod def tearDownClass(cls): os.remove(DB_PATH) diff --git a/tests/transmission/operations/operational_types/test_tx_simple.py b/tests/transmission/operations/operational_types/test_tx_simple.py index 33b7ac341..7ffa05fea 100644 --- a/tests/transmission/operations/operational_types/test_tx_simple.py +++ b/tests/transmission/operations/operational_types/test_tx_simple.py @@ -165,6 +165,18 @@ def test_data_loaded_correctly(self): ) self.assertListEqual(expect_tx_op_tmp, actual_tx_op_tmp) + # Set: TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT + expect_tx_bln_type_hrzs = sorted( + [ + ("Tx_New", "day", 202001), ("Tx_New", "day", 202002) + ] + ) + actual_tx_bln_type_hrzs = sorted( + [(tx, bt, h) for (tx, bt, h) + in instance.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT] + ) + self.assertListEqual(expect_tx_bln_type_hrzs, actual_tx_bln_type_hrzs) + # Param: tx_simple_loss_factor expected_lf = OrderedDict(sorted({"Tx_New": 0.1}.items())) actual_lf = OrderedDict( @@ -175,6 +187,17 @@ def test_data_loaded_correctly(self): ) self.assertDictEqual(expected_lf, actual_lf) + # Param: tx_simple_min_transmit_power_mw + expected_min_transmit_power = OrderedDict(sorted({("Tx_New", "day", 202001): -0.1, + ("Tx_New", "day", 202002): -5.5}.items())) + actual_min_transmit_power = OrderedDict( + sorted( + {(tx, bt, h): instance.tx_simple_min_transmit_power_mw[tx, bt, h] + for (tx, bt, h) in instance.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT}.items() + ) + ) + self.assertDictEqual(expected_min_transmit_power, actual_min_transmit_power) + if __name__ == "__main__": unittest.main() From b712ed6245d34991f8c10d2c095b86f0e51725c6 Mon Sep 17 00:00:00 2001 From: Amyot Date: Wed, 3 Nov 2021 16:36:12 -0400 Subject: [PATCH 03/10] Added missing info in docstring of tx_simple --- .../operations/operational_types/tx_simple.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index 6487a62da..8a4ca69b0 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -47,6 +47,14 @@ def add_model_components( | Two-dimensional set with transmission lines of the :code:`tx_simple` | | operational type and their operational timepoints. | +-------------------------------------------------------------------------+ + | | :code:`TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT` | + | | + | Three-dimensional set of transmission-balancing type-horizon | + | combinations with transmission lines of the :code:`tx_simple` | + | operational type to describe all possible | + | transmission-balancing type-horizon for transmission lines with a min | + | transmit power specified. | + +-------------------------------------------------------------------------+ +-------------------------------------------------------------------------+ | Params | @@ -59,6 +67,19 @@ def add_model_components( | The fraction of power that is lost when transmitted over this line. | +-------------------------------------------------------------------------+ + +-------------------------------------------------------------------------+ + | Optional Params | + +=========================================================================+ + | | :code:`tx_simple_min_transmit_power_mw` | + | | *Defined over*: :code:`TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT` | + | | *Within*: :code:`Reals` | + | | *Default*: :code:`0` | + | | + | The minimum transmitted power (in MW) that must be transmitted in a | + | transmission line during all timepoints of a specific | + | balancing type-horizon combination. | + +-------------------------------------------------------------------------+ + | @@ -137,6 +158,13 @@ def add_model_components( | loss factor in each operational timepoint. Provides upper bound on | | losses. | +-------------------------------------------------------------------------+ + | | :code:`TxSimple_Min_Transmit_Power_Constraint` | + | | *Defined over*: :code:`TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT` | + | | + | Transmitted power should exceed the minimum transmitted power in each | + | operational timepoint for every combination of balancing type and | + | horizon. | + +-------------------------------------------------------------------------+ """ From c49377d346227ba05931be68caa6d32b6bf6d96d Mon Sep 17 00:00:00 2001 From: Amyot Date: Thu, 4 Nov 2021 09:28:13 -0400 Subject: [PATCH 04/10] Default tx_simple_min_transmit_power_mw to -infinity --- .../transmission/operations/operational_types/tx_simple.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index 8a4ca69b0..7309d9ce5 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -26,6 +26,7 @@ import pandas as pd from pyomo.environ import Set, Param, Var, Constraint, NonNegativeReals, \ Reals, PercentFraction +Negative_Infinity = float('-inf') def add_model_components( @@ -73,7 +74,7 @@ def add_model_components( | | :code:`tx_simple_min_transmit_power_mw` | | | *Defined over*: :code:`TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT` | | | *Within*: :code:`Reals` | - | | *Default*: :code:`0` | + | | *Default*: :code:`Negative_Infinity` | | | | The minimum transmitted power (in MW) that must be transmitted in a | | transmission line during all timepoints of a specific | @@ -202,7 +203,7 @@ def add_model_components( m.tx_simple_min_transmit_power_mw = Param( m.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT, - within=Reals, default=0 + within=Reals, default=Negative_Infinity ) # Variables From 007a30f98097c85b50343fdb30266b7dd523cf8d Mon Sep 17 00:00:00 2001 From: Amyot Date: Tue, 23 Nov 2021 09:19:51 -0500 Subject: [PATCH 05/10] Added more explanation for the logic of the tx_min_transmit_power constraint --- .../transmission/operations/operational_types/tx_simple.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index 7309d9ce5..cc10068e4 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -381,6 +381,12 @@ def min_transmit_power_rule(mod, l, bt, h): Transmitted power should exceed the defined minimum transmission power in each operational timepoint. + + If the minimum transmitted power is positive, the transmitted power should + exceed the minimum transmitted power in the transmission line's positive direction. + + If the minimum transmitted power is negative, the transmitted power should + exceed the minimum transmitted power in transmission line's negative direction. """ var = mod.tx_simple_min_transmit_power_mw[l, bt, h] if var == 0: From e7b414e15b806f076d9a9ad0c07b1bddbfb47806 Mon Sep 17 00:00:00 2001 From: AmyotJ Date: Thu, 3 Mar 2022 08:50:55 -0500 Subject: [PATCH 06/10] Fixed transmission flow, added a min and max flow constraints --- db/csvs_test_examples/csv_data_master.csv | 2 +- db/csvs_test_examples/scenarios.csv | 4 +- .../1_transmission_flow_1.csv | 5 + .../1_transmission_min_transmit_power_1.csv | 3 - db/db_schema.sql | 40 ++- examples/2horizons/scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- examples/2periods/scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- examples/test/scenario_description.csv | 2 +- .../test_aux_cons/scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 1 + .../test_markets/scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../test_new_solar/scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../scenario_description.csv | 2 +- .../inputs/transmission_flow.tab | 1 + .../scenario_description.csv | 1 + .../scenario_description.csv | 2 +- .../test_no_fuels/scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../test_no_reserves/scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../test_tx_dcopf/scenario_description.csv | 2 +- .../features.csv | 0 .../inputs/carbon_cap.tab | 0 .../inputs/carbon_cap_zones.tab | 0 .../inputs/fuel_prices.tab | 0 .../inputs/fuels.tab | 0 .../inputs/heat_rate_curves.tab | 0 .../inputs/horizon_timepoints.tab | 0 .../inputs/horizons.tab | 0 .../lf_reserves_down_tmp_requirement.tab | 0 .../inputs/lf_reserves_up_tmp_requirement.tab | 0 .../load_following_down_balancing_areas.tab | 0 .../load_following_up_balancing_areas.tab | 0 .../inputs/load_mw.tab | 0 .../inputs/load_zones.tab | 0 .../new_build_generator_vintage_costs.tab | 0 .../inputs/periods.tab | 0 .../test_tx_flow/inputs/project_fuels.tab | 7 + examples/test_tx_flow/inputs/projects.tab | 9 + .../regulation_down_balancing_areas.tab | 0 .../regulation_down_tmp_requirement.tab | 0 .../inputs/regulation_up_balancing_areas.tab | 0 .../inputs/regulation_up_tmp_requirement.tab | 0 .../inputs/spec_capacity_period_params.tab | 0 ...specified_transmission_line_capacities.tab | 0 .../inputs/timepoints.tab | 0 .../test_tx_flow/inputs/transmission_flow.tab | 5 + .../inputs/transmission_lines.tab | 0 .../inputs/variable_generator_profiles.tab | 0 .../results/objective_function_value.txt | 1 + .../results/solver_status.txt | 0 .../results/summary_results.txt | 6 +- .../results/termination_condition.txt | 0 .../scenario_description.csv | 6 +- .../units.csv | 0 .../inputs/projects.tab | 9 - .../transmission_min_transmit_power.tab | 3 - .../results/objective_function_value.txt | 1 - .../inputs/transmission_flow.tab | 1 + .../transmission_min_transmit_power.tab | 1 - .../test_tx_simple/scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../test_w_hydro/scenario_description.csv | 2 +- .../scenario_description.csv | 2 +- .../test_w_storage/scenario_description.csv | 2 +- .../operations/operational_types/tx_simple.py | 235 ++++++++++++------ tests/test_data/inputs/transmission_flow.tab | 3 + .../transmission_min_transmit_power.tab | 3 - tests/test_examples.py | 8 +- .../operational_types/test_tx_simple.py | 51 ++-- 131 files changed, 328 insertions(+), 218 deletions(-) create mode 100644 db/csvs_test_examples/transmission/transmission_flow/1_transmission_flow_1.csv delete mode 100644 db/csvs_test_examples/transmission/transmission_min_transmit_power/1_transmission_min_transmit_power_1.csv create mode 100644 examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_flow.tab delete mode 100644 examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission/inputs/transmission_flow.tab delete mode 100644 examples/2periods_new_build_2zones_transmission/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_flow.tab delete mode 100644 examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_flow.tab delete mode 100644 examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_flow.tab delete mode 100644 examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_min_transmit_power.tab create mode 100644 examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_flow.tab delete mode 100644 examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_min_transmit_power.tab create mode 100644 examples/test_min_max_build_trans/inputs/transmission_flow.tab delete mode 100644 examples/test_min_max_build_trans/inputs/transmission_min_transmit_power.tab create mode 100644 examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_flow.tab delete mode 100644 examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_min_transmit_power.tab create mode 100644 examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_flow.tab delete mode 100644 examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_min_transmit_power.tab create mode 100644 examples/test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend/inputs/transmission_flow.tab rename examples/{test_tx_min_transmit_power => test_tx_flow}/features.csv (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/carbon_cap.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/carbon_cap_zones.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/fuel_prices.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/fuels.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/heat_rate_curves.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/horizon_timepoints.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/horizons.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/lf_reserves_down_tmp_requirement.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/lf_reserves_up_tmp_requirement.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/load_following_down_balancing_areas.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/load_following_up_balancing_areas.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/load_mw.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/load_zones.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/new_build_generator_vintage_costs.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/periods.tab (100%) create mode 100644 examples/test_tx_flow/inputs/project_fuels.tab create mode 100644 examples/test_tx_flow/inputs/projects.tab rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/regulation_down_balancing_areas.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/regulation_down_tmp_requirement.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/regulation_up_balancing_areas.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/regulation_up_tmp_requirement.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/spec_capacity_period_params.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/specified_transmission_line_capacities.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/timepoints.tab (100%) create mode 100644 examples/test_tx_flow/inputs/transmission_flow.tab rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/transmission_lines.tab (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/inputs/variable_generator_profiles.tab (100%) create mode 100644 examples/test_tx_flow/results/objective_function_value.txt rename examples/{test_tx_min_transmit_power => test_tx_flow}/results/solver_status.txt (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/results/summary_results.txt (78%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/results/termination_condition.txt (100%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/scenario_description.csv (96%) rename examples/{test_tx_min_transmit_power => test_tx_flow}/units.csv (100%) delete mode 100644 examples/test_tx_min_transmit_power/inputs/projects.tab delete mode 100644 examples/test_tx_min_transmit_power/inputs/transmission_min_transmit_power.tab delete mode 100644 examples/test_tx_min_transmit_power/results/objective_function_value.txt create mode 100644 examples/test_tx_simple/inputs/transmission_flow.tab delete mode 100644 examples/test_tx_simple/inputs/transmission_min_transmit_power.tab create mode 100644 tests/test_data/inputs/transmission_flow.tab delete mode 100644 tests/test_data/inputs/transmission_min_transmit_power.tab diff --git a/db/csvs_test_examples/csv_data_master.csv b/db/csvs_test_examples/csv_data_master.csv index fd62670d7..464fbc360 100644 --- a/db/csvs_test_examples/csv_data_master.csv +++ b/db/csvs_test_examples/csv_data_master.csv @@ -39,7 +39,7 @@ transmission/availability,transmission,transmission_availability_scenario_id,tra transmission/availability/exogenous,transmission,exogenous_availability_scenario_id,transmission_availability_exogenous,simple,,1,1,,,inputs_transmission_availability,transmission_availability_scenario_id transmission/transmission_hurdle_rates,transmission_hurdle_rates,transmission_hurdle_rate_scenario_id,transmission_hurdle_rates,simple,,0,0,,,, transmission/transmission_new_potential,transmission,transmission_new_potential_scenario_id,transmission_new_potential,simple,,0,0,,,, -transmission/transmission_min_transmit_power,transmission,transmission_min_transmit_power_scenario_id,transmission_min_transmit_power,simple,,0,0,,,, +transmission/transmission_flow,transmission,transmission_flow_scenario_id,transmission_flow,simple,,0,0,,,, transmission/simultaneous_flow_limits/limits,simultaneous_flow_limits,transmission_simultaneous_flow_limit_scenario_id,transmission_simultaneous_flow_limits,simple,,0,0,,,, transmission/simultaneous_flow_limits/line_groups,simultaneous_flow_limits,transmission_simultaneous_flow_limit_line_group_scenario_id,transmission_simultaneous_flow_limit_line_groups,simple,,0,0,,,, reserves/lf_reserves_up/geography_lf_reserves_up_bas,lf_reserves_up,lf_reserves_up_ba_scenario_id,geography_lf_reserves_up_bas,simple,,0,0,,,, diff --git a/db/csvs_test_examples/scenarios.csv b/db/csvs_test_examples/scenarios.csv index fa460e447..425cfe169 100644 --- a/db/csvs_test_examples/scenarios.csv +++ b/db/csvs_test_examples/scenarios.csv @@ -1,4 +1,4 @@ -optional_feature_or_subscenarios,test,test_w_storage,test_w_hydro,test_new_solar,test_new_binary_solar,test_new_build_storage,test_new_build_storage_cumulative_min_max,test_new_binary_build_storage,test_no_overgen_allowed,test_no_reserves,test_variable_gen_reserves,test_new_solar_carbon_cap,test_new_solar_carbon_tax,test_ramp_up_constraints,test_ramp_up_and_down_constraints,2horizons,2horizons_w_hydro,2horizons_w_hydro_and_nuclear_binary_availability,2horizons_w_hydro_w_balancing_types,2periods,2periods_gen_lin_econ_retirement,2periods_gen_bin_econ_retirement,2periods_new_build,2periods_new_build_2zones,2periods_new_build_2zones_singleBA,2periods_new_build_2zones_transmission,2periods_new_build_2zones_transmission_w_losses,2periods_new_build_2zones_transmission_w_losses_opp_dir,2periods_new_build_2zones_new_build_transmission,2periods_new_build_cumulative_min_max,2periods_new_build_rps,2periods_new_build_rps_variable_reserves,2periods_new_build_rps_variable_reserves_subhourly_adj,2periods_new_build_rps_w_rps_eligible_storage,2periods_new_build_rps_w_rps_ineligible_storage,2periods_new_build_simple_prm,test_new_solar_carbon_cap_2zones_dont_count_tx,test_new_solar_carbon_cap_2zones_tx,single_stage_prod_cost,multi_stage_prod_cost,multi_stage_prod_cost_w_hydro,test_tx_simple,test_tx_dcopf,2periods_new_build_local_capacity,test_startup_shutdown_rates,test_no_fuels,test_variable_om_curves,test_aux_cons,2periods_new_build_rps_percent_target,single_stage_prod_cost_linked_subproblems,multi_stage_prod_cost_linked_subproblems,test_w_lf_down_percent_req,2periods_new_build_capgroups,test_markets,2periods_new_build_horizon_energy_target,2periods_new_build_period_and_horizon_energy_target,2periods_new_build_horizon_energy_target_halfyear,test_new_build_gen_var_stor_hyb,test_carbon_tax_allowance,test_min_max_build_trans,2periods_new_build_2zones_transmission_Tx1halfavail,2periods_new_build_2zones_transmission_Tx1halfavailmonthly,test_cheap_fuel_blend,test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend,test_tx_min_transmit_power +optional_feature_or_subscenarios,test,test_w_storage,test_w_hydro,test_new_solar,test_new_binary_solar,test_new_build_storage,test_new_build_storage_cumulative_min_max,test_new_binary_build_storage,test_no_overgen_allowed,test_no_reserves,test_variable_gen_reserves,test_new_solar_carbon_cap,test_new_solar_carbon_tax,test_ramp_up_constraints,test_ramp_up_and_down_constraints,2horizons,2horizons_w_hydro,2horizons_w_hydro_and_nuclear_binary_availability,2horizons_w_hydro_w_balancing_types,2periods,2periods_gen_lin_econ_retirement,2periods_gen_bin_econ_retirement,2periods_new_build,2periods_new_build_2zones,2periods_new_build_2zones_singleBA,2periods_new_build_2zones_transmission,2periods_new_build_2zones_transmission_w_losses,2periods_new_build_2zones_transmission_w_losses_opp_dir,2periods_new_build_2zones_new_build_transmission,2periods_new_build_cumulative_min_max,2periods_new_build_rps,2periods_new_build_rps_variable_reserves,2periods_new_build_rps_variable_reserves_subhourly_adj,2periods_new_build_rps_w_rps_eligible_storage,2periods_new_build_rps_w_rps_ineligible_storage,2periods_new_build_simple_prm,test_new_solar_carbon_cap_2zones_dont_count_tx,test_new_solar_carbon_cap_2zones_tx,single_stage_prod_cost,multi_stage_prod_cost,multi_stage_prod_cost_w_hydro,test_tx_simple,test_tx_dcopf,2periods_new_build_local_capacity,test_startup_shutdown_rates,test_no_fuels,test_variable_om_curves,test_aux_cons,2periods_new_build_rps_percent_target,single_stage_prod_cost_linked_subproblems,multi_stage_prod_cost_linked_subproblems,test_w_lf_down_percent_req,2periods_new_build_capgroups,test_markets,2periods_new_build_horizon_energy_target,2periods_new_build_period_and_horizon_energy_target,2periods_new_build_horizon_energy_target_halfyear,test_new_build_gen_var_stor_hyb,test_carbon_tax_allowance,test_min_max_build_trans,2periods_new_build_2zones_transmission_Tx1halfavail,2periods_new_build_2zones_transmission_Tx1halfavailmonthly,test_cheap_fuel_blend,test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend,test_tx_flow of_transmission,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,1,1,,,,1,1,,,,,,,,,,,,,,,,,1,1,1,,1,1 of_transmission_hurdle_rates,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, of_simultaneous_flow_limits,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -44,7 +44,7 @@ transmission_operational_chars_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,1,3,3,1,,,,, transmission_hurdle_rate_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, transmission_new_cost_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,, transmission_new_potential_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,, -transmission_min_transmit_power_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 +transmission_flow_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 transmission_carbon_cap_zone_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,1,1,,,,,,,,,,,,,,,,,,,,,1,1 transmission_simultaneous_flow_limit_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, transmission_simultaneous_flow_limit_line_group_scenario_id,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/db/csvs_test_examples/transmission/transmission_flow/1_transmission_flow_1.csv b/db/csvs_test_examples/transmission/transmission_flow/1_transmission_flow_1.csv new file mode 100644 index 000000000..a63826147 --- /dev/null +++ b/db/csvs_test_examples/transmission/transmission_flow/1_transmission_flow_1.csv @@ -0,0 +1,5 @@ +transmission_line,stage_id,timepoint,min_flow_mw,max_flow_mw +Tx1,1,20200101,-10,-0.1 +Tx1,1,20200102,2, +Tx2,1,20200101,,-4 +Tx2,1,20200102,2, diff --git a/db/csvs_test_examples/transmission/transmission_min_transmit_power/1_transmission_min_transmit_power_1.csv b/db/csvs_test_examples/transmission/transmission_min_transmit_power/1_transmission_min_transmit_power_1.csv deleted file mode 100644 index f9a19ae8c..000000000 --- a/db/csvs_test_examples/transmission/transmission_min_transmit_power/1_transmission_min_transmit_power_1.csv +++ /dev/null @@ -1,3 +0,0 @@ -transmission_line,subproblem_id,stage_id,balancing_type_horizon,horizon,min_transmit_power_mw -Tx1,1,1,day,202001,-0.1 -Tx2,1,1,day,202001,-5.5 diff --git a/db/db_schema.sql b/db/db_schema.sql index ec676ae90..eb8e64fe0 100644 --- a/db/db_schema.sql +++ b/db/db_schema.sql @@ -1801,27 +1801,25 @@ FOREIGN KEY (transmission_line, exogenous_availability_scenario_id) (transmission_line, exogenous_availability_scenario_id) ); --- Transmission min transmit power -DROP TABLE IF EXISTS subscenarios_transmission_min_transmit_power; -CREATE TABLE subscenarios_transmission_min_transmit_power ( -transmission_min_transmit_power_scenario_id INTEGER PRIMARY KEY AUTOINCREMENT, +-- Transmission flow +DROP TABLE IF EXISTS subscenarios_transmission_flow; +CREATE TABLE subscenarios_transmission_flow ( +transmission_flow_scenario_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(32), description VARCHAR(128) ); -DROP TABLE IF EXISTS inputs_transmission_min_transmit_power; -CREATE TABLE inputs_transmission_min_transmit_power ( -transmission_min_transmit_power_scenario_id INTEGER, +DROP TABLE IF EXISTS inputs_transmission_flow; +CREATE TABLE inputs_transmission_flow ( +transmission_flow_scenario_id INTEGER, transmission_line VARCHAR(64), -subproblem_id INTEGER, stage_id INTEGER, -balancing_type_horizon VARCHAR(64), -horizon INTEGER, -min_transmit_power_mw FLOAT, -PRIMARY KEY (transmission_min_transmit_power_scenario_id, transmission_line, subproblem_id, stage_id, -balancing_type_horizon, horizon), -FOREIGN KEY (transmission_min_transmit_power_scenario_id) REFERENCES -subscenarios_transmission_min_transmit_power (transmission_min_transmit_power_scenario_id) +timepoint INTEGER, +min_flow_mw FLOAT, +max_flow_mw FLOAT, +PRIMARY KEY (transmission_flow_scenario_id, transmission_line, stage_id, timepoint), +FOREIGN KEY (transmission_flow_scenario_id) REFERENCES +subscenarios_transmission_flow (transmission_flow_scenario_id) ); @@ -2513,7 +2511,7 @@ transmission_availability_scenario_id INTEGER, transmission_operational_chars_scenario_id INTEGER, transmission_hurdle_rate_scenario_id INTEGER, transmission_new_potential_scenario_id INTEGER, -transmission_min_transmit_power_scenario_id INTEGER, +transmission_flow_scenario_id INTEGER, transmission_carbon_cap_zone_scenario_id INTEGER, transmission_simultaneous_flow_limit_scenario_id INTEGER, transmission_simultaneous_flow_limit_line_group_scenario_id INTEGER, @@ -2664,8 +2662,8 @@ FOREIGN KEY (transmission_hurdle_rate_scenario_id) REFERENCES (transmission_hurdle_rate_scenario_id), FOREIGN KEY (transmission_new_potential_scenario_id) REFERENCES subscenarios_transmission_new_potential (transmission_new_potential_scenario_id), -FOREIGN KEY (transmission_min_transmit_power_scenario_id) REFERENCES - subscenarios_transmission_min_transmit_power (transmission_min_transmit_power_scenario_id), +FOREIGN KEY (transmission_flow_scenario_id) REFERENCES + subscenarios_transmission_flow (transmission_flow_scenario_id), FOREIGN KEY (transmission_carbon_cap_zone_scenario_id) REFERENCES subscenarios_transmission_carbon_cap_zones (transmission_carbon_cap_zone_scenario_id), @@ -3934,7 +3932,7 @@ subscenarios_transmission_operational_chars.name AS transmission_operational_chars, subscenarios_transmission_hurdle_rates.name AS transmission_hurdle_rates, subscenarios_transmission_new_potential.name AS transmission_new_potential, -subscenarios_transmission_min_transmit_power.name AS transmission_min_transmit_power, +subscenarios_transmission_flow.name AS transmission_flow, subscenarios_transmission_carbon_cap_zones.name AS transmission_carbon_cap_zones, subscenarios_transmission_simultaneous_flow_limits.name @@ -4038,8 +4036,8 @@ LEFT JOIN subscenarios_transmission_hurdle_rates USING (transmission_hurdle_rate_scenario_id) LEFT JOIN subscenarios_transmission_new_potential USING (transmission_new_potential_scenario_id) -LEFT JOIN subscenarios_transmission_min_transmit_power - USING (transmission_min_transmit_power_scenario_id) +LEFT JOIN subscenarios_transmission_flow + USING (transmission_flow_scenario_id) LEFT JOIN subscenarios_transmission_carbon_cap_zones USING (transmission_carbon_cap_zone_scenario_id) LEFT JOIN subscenarios_transmission_simultaneous_flow_limits diff --git a/examples/2horizons/scenario_description.csv b/examples/2horizons/scenario_description.csv index 076d60239..b98c3f1d5 100644 --- a/examples/2horizons/scenario_description.csv +++ b/examples/2horizons/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2horizons_w_hydro/scenario_description.csv b/examples/2horizons_w_hydro/scenario_description.csv index 9abc5faa7..2d46dbfef 100644 --- a/examples/2horizons_w_hydro/scenario_description.csv +++ b/examples/2horizons_w_hydro/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2horizons_w_hydro_and_nuclear_binary_availability/scenario_description.csv b/examples/2horizons_w_hydro_and_nuclear_binary_availability/scenario_description.csv index 23edb396e..9872d2d62 100644 --- a/examples/2horizons_w_hydro_and_nuclear_binary_availability/scenario_description.csv +++ b/examples/2horizons_w_hydro_and_nuclear_binary_availability/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2horizons_w_hydro_w_balancing_types/scenario_description.csv b/examples/2horizons_w_hydro_w_balancing_types/scenario_description.csv index 2b5fc49ea..e544f8a78 100644 --- a/examples/2horizons_w_hydro_w_balancing_types/scenario_description.csv +++ b/examples/2horizons_w_hydro_w_balancing_types/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods/scenario_description.csv b/examples/2periods/scenario_description.csv index c9835474f..907ce9029 100644 --- a/examples/2periods/scenario_description.csv +++ b/examples/2periods/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_gen_bin_econ_retirement/scenario_description.csv b/examples/2periods_gen_bin_econ_retirement/scenario_description.csv index 7d1fdd146..350da16d3 100644 --- a/examples/2periods_gen_bin_econ_retirement/scenario_description.csv +++ b/examples/2periods_gen_bin_econ_retirement/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_gen_lin_econ_retirement/scenario_description.csv b/examples/2periods_gen_lin_econ_retirement/scenario_description.csv index f0556d3ef..7afda9b44 100644 --- a/examples/2periods_gen_lin_econ_retirement/scenario_description.csv +++ b/examples/2periods_gen_lin_econ_retirement/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build/scenario_description.csv b/examples/2periods_new_build/scenario_description.csv index 57a30bb30..d6807320c 100644 --- a/examples/2periods_new_build/scenario_description.csv +++ b/examples/2periods_new_build/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones/scenario_description.csv b/examples/2periods_new_build_2zones/scenario_description.csv index 4beb6ca61..1cdce0511 100644 --- a/examples/2periods_new_build_2zones/scenario_description.csv +++ b/examples/2periods_new_build_2zones/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_flow.tab b/examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/2periods_new_build_2zones_new_build_transmission/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_new_build_transmission/scenario_description.csv b/examples/2periods_new_build_2zones_new_build_transmission/scenario_description.csv index 609d7a39c..ae4344735 100644 --- a/examples/2periods_new_build_2zones_new_build_transmission/scenario_description.csv +++ b/examples/2periods_new_build_2zones_new_build_transmission/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_singleBA/scenario_description.csv b/examples/2periods_new_build_2zones_singleBA/scenario_description.csv index 751f06c70..377cb5a19 100644 --- a/examples/2periods_new_build_2zones_singleBA/scenario_description.csv +++ b/examples/2periods_new_build_2zones_singleBA/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission/inputs/transmission_flow.tab b/examples/2periods_new_build_2zones_transmission/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/2periods_new_build_2zones_transmission/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/2periods_new_build_2zones_transmission/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission/scenario_description.csv b/examples/2periods_new_build_2zones_transmission/scenario_description.csv index 6bedc3676..3821c52e6 100644 --- a/examples/2periods_new_build_2zones_transmission/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_flow.tab b/examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/2periods_new_build_2zones_transmission_Tx1halfavail/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavail/scenario_description.csv b/examples/2periods_new_build_2zones_transmission_Tx1halfavail/scenario_description.csv index bb97149aa..de1cc4976 100644 --- a/examples/2periods_new_build_2zones_transmission_Tx1halfavail/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission_Tx1halfavail/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,2 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_flow.tab b/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/scenario_description.csv b/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/scenario_description.csv index 532ed0989..5f4cabbad 100644 --- a/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission_Tx1halfavailmonthly/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,3 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_flow.tab b/examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/2periods_new_build_2zones_transmission_w_losses/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission_w_losses/scenario_description.csv b/examples/2periods_new_build_2zones_transmission_w_losses/scenario_description.csv index d21707a05..7712070e9 100644 --- a/examples/2periods_new_build_2zones_transmission_w_losses/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission_w_losses/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,3 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_flow.tab b/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_min_transmit_power.tab b/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/scenario_description.csv b/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/scenario_description.csv index 3e3935166..64904c782 100644 --- a/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/scenario_description.csv +++ b/examples/2periods_new_build_2zones_transmission_w_losses_opp_dir/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,3 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_capgroups/scenario_description.csv b/examples/2periods_new_build_capgroups/scenario_description.csv index 5964fdffb..0e0c20fa7 100644 --- a/examples/2periods_new_build_capgroups/scenario_description.csv +++ b/examples/2periods_new_build_capgroups/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_cumulative_min_max/scenario_description.csv b/examples/2periods_new_build_cumulative_min_max/scenario_description.csv index 8b3036bdf..591c744e1 100644 --- a/examples/2periods_new_build_cumulative_min_max/scenario_description.csv +++ b/examples/2periods_new_build_cumulative_min_max/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_horizon_energy_target/scenario_description.csv b/examples/2periods_new_build_horizon_energy_target/scenario_description.csv index faadd8b18..b23af6d8f 100644 --- a/examples/2periods_new_build_horizon_energy_target/scenario_description.csv +++ b/examples/2periods_new_build_horizon_energy_target/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_horizon_energy_target_halfyear/scenario_description.csv b/examples/2periods_new_build_horizon_energy_target_halfyear/scenario_description.csv index dc264d79e..cce355ae1 100644 --- a/examples/2periods_new_build_horizon_energy_target_halfyear/scenario_description.csv +++ b/examples/2periods_new_build_horizon_energy_target_halfyear/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_local_capacity/scenario_description.csv b/examples/2periods_new_build_local_capacity/scenario_description.csv index 6b0913aea..3fcaa6350 100644 --- a/examples/2periods_new_build_local_capacity/scenario_description.csv +++ b/examples/2periods_new_build_local_capacity/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps/scenario_description.csv b/examples/2periods_new_build_rps/scenario_description.csv index 80de3e6b5..4808c6efc 100644 --- a/examples/2periods_new_build_rps/scenario_description.csv +++ b/examples/2periods_new_build_rps/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_percent_target/scenario_description.csv b/examples/2periods_new_build_rps_percent_target/scenario_description.csv index 381ed4feb..4594a4c60 100644 --- a/examples/2periods_new_build_rps_percent_target/scenario_description.csv +++ b/examples/2periods_new_build_rps_percent_target/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_variable_reserves/scenario_description.csv b/examples/2periods_new_build_rps_variable_reserves/scenario_description.csv index 4284ded1c..e65b8dd42 100644 --- a/examples/2periods_new_build_rps_variable_reserves/scenario_description.csv +++ b/examples/2periods_new_build_rps_variable_reserves/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_variable_reserves_subhourly_adj/scenario_description.csv b/examples/2periods_new_build_rps_variable_reserves_subhourly_adj/scenario_description.csv index a3e6b68d3..f765cf41c 100644 --- a/examples/2periods_new_build_rps_variable_reserves_subhourly_adj/scenario_description.csv +++ b/examples/2periods_new_build_rps_variable_reserves_subhourly_adj/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_w_rps_eligible_storage/scenario_description.csv b/examples/2periods_new_build_rps_w_rps_eligible_storage/scenario_description.csv index 3de7e76f5..46b08c79f 100644 --- a/examples/2periods_new_build_rps_w_rps_eligible_storage/scenario_description.csv +++ b/examples/2periods_new_build_rps_w_rps_eligible_storage/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_rps_w_rps_ineligible_storage/scenario_description.csv b/examples/2periods_new_build_rps_w_rps_ineligible_storage/scenario_description.csv index 7ae3adab8..779fb9b83 100644 --- a/examples/2periods_new_build_rps_w_rps_ineligible_storage/scenario_description.csv +++ b/examples/2periods_new_build_rps_w_rps_ineligible_storage/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/2periods_new_build_simple_prm/scenario_description.csv b/examples/2periods_new_build_simple_prm/scenario_description.csv index d7e4b51b2..e17155de0 100644 --- a/examples/2periods_new_build_simple_prm/scenario_description.csv +++ b/examples/2periods_new_build_simple_prm/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/multi_stage_prod_cost/scenario_description.csv b/examples/multi_stage_prod_cost/scenario_description.csv index c0626584b..ca17b3d3c 100644 --- a/examples/multi_stage_prod_cost/scenario_description.csv +++ b/examples/multi_stage_prod_cost/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/multi_stage_prod_cost_linked_subproblems/scenario_description.csv b/examples/multi_stage_prod_cost_linked_subproblems/scenario_description.csv index 62c0b7111..19c4cc42b 100644 --- a/examples/multi_stage_prod_cost_linked_subproblems/scenario_description.csv +++ b/examples/multi_stage_prod_cost_linked_subproblems/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/multi_stage_prod_cost_w_hydro/scenario_description.csv b/examples/multi_stage_prod_cost_w_hydro/scenario_description.csv index 23111d0a5..72a4e5be3 100644 --- a/examples/multi_stage_prod_cost_w_hydro/scenario_description.csv +++ b/examples/multi_stage_prod_cost_w_hydro/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/single_stage_prod_cost/scenario_description.csv b/examples/single_stage_prod_cost/scenario_description.csv index 95f2631b9..c977d37fc 100644 --- a/examples/single_stage_prod_cost/scenario_description.csv +++ b/examples/single_stage_prod_cost/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/single_stage_prod_cost_linked_subproblems/scenario_description.csv b/examples/single_stage_prod_cost_linked_subproblems/scenario_description.csv index 0d357a7af..0bf21aef7 100644 --- a/examples/single_stage_prod_cost_linked_subproblems/scenario_description.csv +++ b/examples/single_stage_prod_cost_linked_subproblems/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test/scenario_description.csv b/examples/test/scenario_description.csv index dd68fd4de..86b66f615 100644 --- a/examples/test/scenario_description.csv +++ b/examples/test/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_aux_cons/scenario_description.csv b/examples/test_aux_cons/scenario_description.csv index f23ebd2cd..9dbac6868 100644 --- a/examples/test_aux_cons/scenario_description.csv +++ b/examples/test_aux_cons/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_carbon_tax_allowance/scenario_description.csv b/examples/test_carbon_tax_allowance/scenario_description.csv index e6968b969..05ad3ccb3 100644 --- a/examples/test_carbon_tax_allowance/scenario_description.csv +++ b/examples/test_carbon_tax_allowance/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_cheap_fuel_blend/scenario_description.csv b/examples/test_cheap_fuel_blend/scenario_description.csv index 486bbe0ec..e66022d0f 100644 --- a/examples/test_cheap_fuel_blend/scenario_description.csv +++ b/examples/test_cheap_fuel_blend/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_markets/scenario_description.csv b/examples/test_markets/scenario_description.csv index 56c8224aa..2786ff233 100644 --- a/examples/test_markets/scenario_description.csv +++ b/examples/test_markets/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_min_max_build_trans/inputs/transmission_flow.tab b/examples/test_min_max_build_trans/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/test_min_max_build_trans/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/test_min_max_build_trans/inputs/transmission_min_transmit_power.tab b/examples/test_min_max_build_trans/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/test_min_max_build_trans/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/test_min_max_build_trans/scenario_description.csv b/examples/test_min_max_build_trans/scenario_description.csv index 228451d85..873335dc0 100644 --- a/examples/test_min_max_build_trans/scenario_description.csv +++ b/examples/test_min_max_build_trans/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,1 -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_binary_build_storage/scenario_description.csv b/examples/test_new_binary_build_storage/scenario_description.csv index ec2983ed4..8cc6a5629 100644 --- a/examples/test_new_binary_build_storage/scenario_description.csv +++ b/examples/test_new_binary_build_storage/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_binary_solar/scenario_description.csv b/examples/test_new_binary_solar/scenario_description.csv index e89857016..89e79f322 100644 --- a/examples/test_new_binary_solar/scenario_description.csv +++ b/examples/test_new_binary_solar/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_build_gen_var_stor_hyb/scenario_description.csv b/examples/test_new_build_gen_var_stor_hyb/scenario_description.csv index 1528f1c77..5bfcb0f44 100644 --- a/examples/test_new_build_gen_var_stor_hyb/scenario_description.csv +++ b/examples/test_new_build_gen_var_stor_hyb/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_build_storage/scenario_description.csv b/examples/test_new_build_storage/scenario_description.csv index ebb331a2d..463a4fb1a 100644 --- a/examples/test_new_build_storage/scenario_description.csv +++ b/examples/test_new_build_storage/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_build_storage_cumulative_min_max/scenario_description.csv b/examples/test_new_build_storage_cumulative_min_max/scenario_description.csv index f51603963..a6a2b28d8 100644 --- a/examples/test_new_build_storage_cumulative_min_max/scenario_description.csv +++ b/examples/test_new_build_storage_cumulative_min_max/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar/scenario_description.csv b/examples/test_new_solar/scenario_description.csv index ffab28e62..ddbbc0415 100644 --- a/examples/test_new_solar/scenario_description.csv +++ b/examples/test_new_solar/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar_carbon_cap/scenario_description.csv b/examples/test_new_solar_carbon_cap/scenario_description.csv index e1e6acf19..8f4199c70 100644 --- a/examples/test_new_solar_carbon_cap/scenario_description.csv +++ b/examples/test_new_solar_carbon_cap/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_flow.tab b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_min_transmit_power.tab b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/scenario_description.csv b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/scenario_description.csv index 70ca8e8b7..9d46d120d 100644 --- a/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/scenario_description.csv +++ b/examples/test_new_solar_carbon_cap_2zones_dont_count_tx/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_flow.tab b/examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_min_transmit_power.tab b/examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/test_new_solar_carbon_cap_2zones_tx/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/test_new_solar_carbon_cap_2zones_tx/scenario_description.csv b/examples/test_new_solar_carbon_cap_2zones_tx/scenario_description.csv index 9050cea2d..920395f3a 100644 --- a/examples/test_new_solar_carbon_cap_2zones_tx/scenario_description.csv +++ b/examples/test_new_solar_carbon_cap_2zones_tx/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,1 transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend/inputs/transmission_flow.tab b/examples/test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend/scenario_description.csv b/examples/test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend/scenario_description.csv index 9b1d2a35b..24545343f 100644 --- a/examples/test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend/scenario_description.csv +++ b/examples/test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend/scenario_description.csv @@ -70,6 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,1 transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_new_solar_carbon_tax/scenario_description.csv b/examples/test_new_solar_carbon_tax/scenario_description.csv index 29bda074e..33f0d5c44 100644 --- a/examples/test_new_solar_carbon_tax/scenario_description.csv +++ b/examples/test_new_solar_carbon_tax/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_no_fuels/scenario_description.csv b/examples/test_no_fuels/scenario_description.csv index 724bd0f58..69eda94e4 100644 --- a/examples/test_no_fuels/scenario_description.csv +++ b/examples/test_no_fuels/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_no_overgen_allowed/scenario_description.csv b/examples/test_no_overgen_allowed/scenario_description.csv index e7b8298e8..81838e573 100644 --- a/examples/test_no_overgen_allowed/scenario_description.csv +++ b/examples/test_no_overgen_allowed/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_no_reserves/scenario_description.csv b/examples/test_no_reserves/scenario_description.csv index ca3ea43a1..cd0f1755b 100644 --- a/examples/test_no_reserves/scenario_description.csv +++ b/examples/test_no_reserves/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_ramp_up_and_down_constraints/scenario_description.csv b/examples/test_ramp_up_and_down_constraints/scenario_description.csv index f70e2a7a9..6fdd0d881 100644 --- a/examples/test_ramp_up_and_down_constraints/scenario_description.csv +++ b/examples/test_ramp_up_and_down_constraints/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_ramp_up_constraints/scenario_description.csv b/examples/test_ramp_up_constraints/scenario_description.csv index 3a635129a..1332b5e51 100644 --- a/examples/test_ramp_up_constraints/scenario_description.csv +++ b/examples/test_ramp_up_constraints/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_startup_shutdown_rates/scenario_description.csv b/examples/test_startup_shutdown_rates/scenario_description.csv index b1f8273d2..dd53351a5 100644 --- a/examples/test_startup_shutdown_rates/scenario_description.csv +++ b/examples/test_startup_shutdown_rates/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_tx_dcopf/scenario_description.csv b/examples/test_tx_dcopf/scenario_description.csv index 211e86339..922161b9f 100644 --- a/examples/test_tx_dcopf/scenario_description.csv +++ b/examples/test_tx_dcopf/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,2 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,1 transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_tx_min_transmit_power/features.csv b/examples/test_tx_flow/features.csv similarity index 100% rename from examples/test_tx_min_transmit_power/features.csv rename to examples/test_tx_flow/features.csv diff --git a/examples/test_tx_min_transmit_power/inputs/carbon_cap.tab b/examples/test_tx_flow/inputs/carbon_cap.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/carbon_cap.tab rename to examples/test_tx_flow/inputs/carbon_cap.tab diff --git a/examples/test_tx_min_transmit_power/inputs/carbon_cap_zones.tab b/examples/test_tx_flow/inputs/carbon_cap_zones.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/carbon_cap_zones.tab rename to examples/test_tx_flow/inputs/carbon_cap_zones.tab diff --git a/examples/test_tx_min_transmit_power/inputs/fuel_prices.tab b/examples/test_tx_flow/inputs/fuel_prices.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/fuel_prices.tab rename to examples/test_tx_flow/inputs/fuel_prices.tab diff --git a/examples/test_tx_min_transmit_power/inputs/fuels.tab b/examples/test_tx_flow/inputs/fuels.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/fuels.tab rename to examples/test_tx_flow/inputs/fuels.tab diff --git a/examples/test_tx_min_transmit_power/inputs/heat_rate_curves.tab b/examples/test_tx_flow/inputs/heat_rate_curves.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/heat_rate_curves.tab rename to examples/test_tx_flow/inputs/heat_rate_curves.tab diff --git a/examples/test_tx_min_transmit_power/inputs/horizon_timepoints.tab b/examples/test_tx_flow/inputs/horizon_timepoints.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/horizon_timepoints.tab rename to examples/test_tx_flow/inputs/horizon_timepoints.tab diff --git a/examples/test_tx_min_transmit_power/inputs/horizons.tab b/examples/test_tx_flow/inputs/horizons.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/horizons.tab rename to examples/test_tx_flow/inputs/horizons.tab diff --git a/examples/test_tx_min_transmit_power/inputs/lf_reserves_down_tmp_requirement.tab b/examples/test_tx_flow/inputs/lf_reserves_down_tmp_requirement.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/lf_reserves_down_tmp_requirement.tab rename to examples/test_tx_flow/inputs/lf_reserves_down_tmp_requirement.tab diff --git a/examples/test_tx_min_transmit_power/inputs/lf_reserves_up_tmp_requirement.tab b/examples/test_tx_flow/inputs/lf_reserves_up_tmp_requirement.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/lf_reserves_up_tmp_requirement.tab rename to examples/test_tx_flow/inputs/lf_reserves_up_tmp_requirement.tab diff --git a/examples/test_tx_min_transmit_power/inputs/load_following_down_balancing_areas.tab b/examples/test_tx_flow/inputs/load_following_down_balancing_areas.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/load_following_down_balancing_areas.tab rename to examples/test_tx_flow/inputs/load_following_down_balancing_areas.tab diff --git a/examples/test_tx_min_transmit_power/inputs/load_following_up_balancing_areas.tab b/examples/test_tx_flow/inputs/load_following_up_balancing_areas.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/load_following_up_balancing_areas.tab rename to examples/test_tx_flow/inputs/load_following_up_balancing_areas.tab diff --git a/examples/test_tx_min_transmit_power/inputs/load_mw.tab b/examples/test_tx_flow/inputs/load_mw.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/load_mw.tab rename to examples/test_tx_flow/inputs/load_mw.tab diff --git a/examples/test_tx_min_transmit_power/inputs/load_zones.tab b/examples/test_tx_flow/inputs/load_zones.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/load_zones.tab rename to examples/test_tx_flow/inputs/load_zones.tab diff --git a/examples/test_tx_min_transmit_power/inputs/new_build_generator_vintage_costs.tab b/examples/test_tx_flow/inputs/new_build_generator_vintage_costs.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/new_build_generator_vintage_costs.tab rename to examples/test_tx_flow/inputs/new_build_generator_vintage_costs.tab diff --git a/examples/test_tx_min_transmit_power/inputs/periods.tab b/examples/test_tx_flow/inputs/periods.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/periods.tab rename to examples/test_tx_flow/inputs/periods.tab diff --git a/examples/test_tx_flow/inputs/project_fuels.tab b/examples/test_tx_flow/inputs/project_fuels.tab new file mode 100644 index 000000000..9e866d4a0 --- /dev/null +++ b/examples/test_tx_flow/inputs/project_fuels.tab @@ -0,0 +1,7 @@ +project fuel +Coal Coal +Gas_CCGT Gas +Gas_CCGT_z2 Gas +Gas_CCGT_z3 Gas +Gas_CT Gas +Nuclear Uranium diff --git a/examples/test_tx_flow/inputs/projects.tab b/examples/test_tx_flow/inputs/projects.tab new file mode 100644 index 000000000..1eb06e169 --- /dev/null +++ b/examples/test_tx_flow/inputs/projects.tab @@ -0,0 +1,9 @@ +project capacity_type availability_type operational_type balancing_type_project technology load_zone variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate carbon_cap_zone +Coal gen_spec exogenous gen_commit_cap day Coal Zone1 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . 2 . . . . . Zone1 . Zone1 . . . . . Zone1 +Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . 1 . Zone1 . Zone1 . Zone1 . Zone1 . . . . . Zone1 +Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . +Gas_CCGT_z3 gen_spec exogenous gen_commit_cap day Gas Zone3 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . +Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . Zone1 +Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Solar gen_new_lin exogenous gen_var day Solar Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +Wind gen_spec exogenous gen_var day Wind Zone1 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/examples/test_tx_min_transmit_power/inputs/regulation_down_balancing_areas.tab b/examples/test_tx_flow/inputs/regulation_down_balancing_areas.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/regulation_down_balancing_areas.tab rename to examples/test_tx_flow/inputs/regulation_down_balancing_areas.tab diff --git a/examples/test_tx_min_transmit_power/inputs/regulation_down_tmp_requirement.tab b/examples/test_tx_flow/inputs/regulation_down_tmp_requirement.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/regulation_down_tmp_requirement.tab rename to examples/test_tx_flow/inputs/regulation_down_tmp_requirement.tab diff --git a/examples/test_tx_min_transmit_power/inputs/regulation_up_balancing_areas.tab b/examples/test_tx_flow/inputs/regulation_up_balancing_areas.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/regulation_up_balancing_areas.tab rename to examples/test_tx_flow/inputs/regulation_up_balancing_areas.tab diff --git a/examples/test_tx_min_transmit_power/inputs/regulation_up_tmp_requirement.tab b/examples/test_tx_flow/inputs/regulation_up_tmp_requirement.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/regulation_up_tmp_requirement.tab rename to examples/test_tx_flow/inputs/regulation_up_tmp_requirement.tab diff --git a/examples/test_tx_min_transmit_power/inputs/spec_capacity_period_params.tab b/examples/test_tx_flow/inputs/spec_capacity_period_params.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/spec_capacity_period_params.tab rename to examples/test_tx_flow/inputs/spec_capacity_period_params.tab diff --git a/examples/test_tx_min_transmit_power/inputs/specified_transmission_line_capacities.tab b/examples/test_tx_flow/inputs/specified_transmission_line_capacities.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/specified_transmission_line_capacities.tab rename to examples/test_tx_flow/inputs/specified_transmission_line_capacities.tab diff --git a/examples/test_tx_min_transmit_power/inputs/timepoints.tab b/examples/test_tx_flow/inputs/timepoints.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/timepoints.tab rename to examples/test_tx_flow/inputs/timepoints.tab diff --git a/examples/test_tx_flow/inputs/transmission_flow.tab b/examples/test_tx_flow/inputs/transmission_flow.tab new file mode 100644 index 000000000..d754803b9 --- /dev/null +++ b/examples/test_tx_flow/inputs/transmission_flow.tab @@ -0,0 +1,5 @@ +transmission_line timepoint min_flow_mw max_flow_mw +Tx1 20200101 -10.0 -0.1 +Tx1 20200102 2.0 . +Tx2 20200101 . -4.0 +Tx2 20200102 2.0 . diff --git a/examples/test_tx_min_transmit_power/inputs/transmission_lines.tab b/examples/test_tx_flow/inputs/transmission_lines.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/transmission_lines.tab rename to examples/test_tx_flow/inputs/transmission_lines.tab diff --git a/examples/test_tx_min_transmit_power/inputs/variable_generator_profiles.tab b/examples/test_tx_flow/inputs/variable_generator_profiles.tab similarity index 100% rename from examples/test_tx_min_transmit_power/inputs/variable_generator_profiles.tab rename to examples/test_tx_flow/inputs/variable_generator_profiles.tab diff --git a/examples/test_tx_flow/results/objective_function_value.txt b/examples/test_tx_flow/results/objective_function_value.txt new file mode 100644 index 000000000..1cc29effe --- /dev/null +++ b/examples/test_tx_flow/results/objective_function_value.txt @@ -0,0 +1 @@ +Objective function: -59124336744013.48 \ No newline at end of file diff --git a/examples/test_tx_min_transmit_power/results/solver_status.txt b/examples/test_tx_flow/results/solver_status.txt similarity index 100% rename from examples/test_tx_min_transmit_power/results/solver_status.txt rename to examples/test_tx_flow/results/solver_status.txt diff --git a/examples/test_tx_min_transmit_power/results/summary_results.txt b/examples/test_tx_flow/results/summary_results.txt similarity index 78% rename from examples/test_tx_min_transmit_power/results/summary_results.txt rename to examples/test_tx_flow/results/summary_results.txt index 93e908b3c..959b646f2 100644 --- a/examples/test_tx_min_transmit_power/results/summary_results.txt +++ b/examples/test_tx_flow/results/summary_results.txt @@ -1,4 +1,4 @@ -##### SUMMARY RESULTS FOR SCENARIO *test_tx_min_transmit_power* ##### +##### SUMMARY RESULTS FOR SCENARIO *test_tx_flow* ##### ### CAPACITY RESULTS ### @@ -17,5 +17,5 @@ Zone1 2020 Coal 0.00 0.00 Nuclear 52,560.00 71.01 Solar 9,198.00 12.43 Wind 12,264.00 16.57 -Zone2 2020 Gas 42,110.00 100.00 -Zone3 2020 Gas 306,600.00 100.00 +Zone2 2020 Gas 66,138.00 100.00 +Zone3 2020 Gas 276,002.00 100.00 diff --git a/examples/test_tx_min_transmit_power/results/termination_condition.txt b/examples/test_tx_flow/results/termination_condition.txt similarity index 100% rename from examples/test_tx_min_transmit_power/results/termination_condition.txt rename to examples/test_tx_flow/results/termination_condition.txt diff --git a/examples/test_tx_min_transmit_power/scenario_description.csv b/examples/test_tx_flow/scenario_description.csv similarity index 96% rename from examples/test_tx_min_transmit_power/scenario_description.csv rename to examples/test_tx_flow/scenario_description.csv index d6b3a3357..243fb0d04 100644 --- a/examples/test_tx_min_transmit_power/scenario_description.csv +++ b/examples/test_tx_flow/scenario_description.csv @@ -1,5 +1,5 @@ -scenario_id,63 -scenario_name,test_tx_min_transmit_power +scenario_id,65 +scenario_name,test_tx_flow of_transmission,1 of_transmission_hurdle_rates, of_simultaneous_flow_limits, @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,1 +transmission_flow_scenario_id,1 transmission_carbon_cap_zone_scenario_id,1 transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_tx_min_transmit_power/units.csv b/examples/test_tx_flow/units.csv similarity index 100% rename from examples/test_tx_min_transmit_power/units.csv rename to examples/test_tx_flow/units.csv diff --git a/examples/test_tx_min_transmit_power/inputs/projects.tab b/examples/test_tx_min_transmit_power/inputs/projects.tab deleted file mode 100644 index cf5238d59..000000000 --- a/examples/test_tx_min_transmit_power/inputs/projects.tab +++ /dev/null @@ -1,9 +0,0 @@ -project capacity_type availability_type operational_type balancing_type_project technology load_zone fuel variable_om_cost_per_mwh min_stable_level_fraction unit_size_mw startup_cost_per_mw shutdown_cost_per_mw startup_fuel_mmbtu_per_mw startup_plus_ramp_up_rate shutdown_plus_ramp_down_rate ramp_up_when_on_rate ramp_down_when_on_rate ramp_up_violation_penalty ramp_down_violation_penalty min_up_time_hours min_up_time_violation_penalty min_down_time_hours min_down_time_violation_penalty charging_efficiency discharging_efficiency charging_capacity_multiplier discharging_capacity_multiplier minimum_duration_hours maximum_duration_hours aux_consumption_frac_capacity aux_consumption_frac_power last_commitment_stage curtailment_cost_per_pwh lf_reserves_up_ba lf_reserves_up_derate lf_reserves_down_ba lf_reserves_down_derate regulation_up_ba regulation_up_derate regulation_down_ba regulation_down_derate lf_reserves_up_ramp_rate lf_reserves_down_ramp_rate regulation_up_ramp_rate regulation_down_ramp_rate carbon_cap_zone -Coal gen_spec exogenous gen_commit_cap day Coal Zone1 Coal 1.0 0.4 6.0 1.0 0.0 . . . . . . . . . . . . . . . . . . . 2 . . . . . Zone1 . Zone1 . . . . . Zone1 -Gas_CCGT gen_spec exogenous gen_commit_cap day Gas Zone1 Gas 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . 1 . Zone1 . Zone1 . Zone1 . Zone1 . . . . . Zone1 -Gas_CCGT_z2 gen_spec exogenous gen_commit_cap day Gas Zone2 Gas 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . -Gas_CCGT_z3 gen_spec exogenous gen_commit_cap day Gas Zone3 Gas 2.0 0.4 6.0 1.0 2.0 . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . -Gas_CT gen_spec exogenous gen_commit_cap day Gas Zone1 Gas 2.0 0.4 6.0 0.0 1.0 . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . Zone1 -Nuclear gen_spec exogenous gen_must_run day Nuclear Zone1 Uranium 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Solar gen_new_lin exogenous gen_var day Solar Zone1 . 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -Wind gen_spec exogenous gen_var day Wind Zone1 . 0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/examples/test_tx_min_transmit_power/inputs/transmission_min_transmit_power.tab b/examples/test_tx_min_transmit_power/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index 379220c12..000000000 --- a/examples/test_tx_min_transmit_power/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1,3 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw -Tx1 day 202001 -0.1 -Tx2 day 202001 -5.5 diff --git a/examples/test_tx_min_transmit_power/results/objective_function_value.txt b/examples/test_tx_min_transmit_power/results/objective_function_value.txt deleted file mode 100644 index 0eff060fe..000000000 --- a/examples/test_tx_min_transmit_power/results/objective_function_value.txt +++ /dev/null @@ -1 +0,0 @@ -Objective function: -58467336323371.43 \ No newline at end of file diff --git a/examples/test_tx_simple/inputs/transmission_flow.tab b/examples/test_tx_simple/inputs/transmission_flow.tab new file mode 100644 index 000000000..902a4d380 --- /dev/null +++ b/examples/test_tx_simple/inputs/transmission_flow.tab @@ -0,0 +1 @@ +transmission_line timepoint min_flow_mw max_flow_mw diff --git a/examples/test_tx_simple/inputs/transmission_min_transmit_power.tab b/examples/test_tx_simple/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index e5461dcec..000000000 --- a/examples/test_tx_simple/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw diff --git a/examples/test_tx_simple/scenario_description.csv b/examples/test_tx_simple/scenario_description.csv index bb943285b..8d4b2fa81 100644 --- a/examples/test_tx_simple/scenario_description.csv +++ b/examples/test_tx_simple/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,1 transmission_operational_chars_scenario_id,1 transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,1 transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_variable_gen_reserves/scenario_description.csv b/examples/test_variable_gen_reserves/scenario_description.csv index 910704acc..69cfca24c 100644 --- a/examples/test_variable_gen_reserves/scenario_description.csv +++ b/examples/test_variable_gen_reserves/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_variable_om_curves/scenario_description.csv b/examples/test_variable_om_curves/scenario_description.csv index e0f2de908..f50ce2133 100644 --- a/examples/test_variable_om_curves/scenario_description.csv +++ b/examples/test_variable_om_curves/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_w_hydro/scenario_description.csv b/examples/test_w_hydro/scenario_description.csv index 43876769e..05407a6fb 100644 --- a/examples/test_w_hydro/scenario_description.csv +++ b/examples/test_w_hydro/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_w_lf_down_percent_req/scenario_description.csv b/examples/test_w_lf_down_percent_req/scenario_description.csv index 047aee9ba..8896b9285 100644 --- a/examples/test_w_lf_down_percent_req/scenario_description.csv +++ b/examples/test_w_lf_down_percent_req/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/examples/test_w_storage/scenario_description.csv b/examples/test_w_storage/scenario_description.csv index 73350301f..71d54096d 100644 --- a/examples/test_w_storage/scenario_description.csv +++ b/examples/test_w_storage/scenario_description.csv @@ -70,7 +70,7 @@ transmission_availability_scenario_id,NULL transmission_operational_chars_scenario_id,NULL transmission_hurdle_rate_scenario_id,NULL transmission_new_potential_scenario_id,NULL -transmission_min_transmit_power_scenario_id,NULL +transmission_flow_scenario_id,NULL transmission_carbon_cap_zone_scenario_id,NULL transmission_simultaneous_flow_limit_scenario_id,NULL transmission_simultaneous_flow_limit_line_group_scenario_id,NULL diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index e47922a30..ef6d7ed13 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -34,6 +34,7 @@ PercentFraction, ) Negative_Infinity = float('-inf') +Infinity = float("inf") def add_model_components(m, d, scenario_directory, subproblem, stage): @@ -53,13 +54,19 @@ def add_model_components(m, d, scenario_directory, subproblem, stage): | Two-dimensional set with transmission lines of the :code:`tx_simple` | | operational type and their operational timepoints. | +-------------------------------------------------------------------------+ - | | :code:`TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT` | + | | :code:`TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT` | | | - | Three-dimensional set of transmission-balancing type-horizon | - | combinations with transmission lines of the :code:`tx_simple` | - | operational type to describe all possible | - | transmission-balancing type-horizon for transmission lines with a min | - | transmit power specified. | + | Two-dimensional set with transmission lines of the :code:`tx_simple` | + | operational type and their operational timepoints to describe all | + | possible transmission-timepoint combinations for transmission lines | + | with a minimum flow specified. | + +-------------------------------------------------------------------------+ + | | :code:`TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT` | + | | + | Two-dimensional set with transmission lines of the :code:`tx_simple` | + | operational type and their operational timepoints to describe all | + | possible transmission-timepoint combinations for transmission lines | + | with a maximum flow specified. | +-------------------------------------------------------------------------+ +-------------------------------------------------------------------------+ @@ -76,14 +83,21 @@ def add_model_components(m, d, scenario_directory, subproblem, stage): +-------------------------------------------------------------------------+ | Optional Params | +=========================================================================+ - | | :code:`tx_simple_min_transmit_power_mw` | - | | *Defined over*: :code:`TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT` | + | | :code:`tx_simple_min_flow_mw` | + | | *Defined over*: :code:`TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT | + | | *Within*: :code:`Reals` | + | | *Default*: :code:`Negative_Infinity` | + | | + | The minimum flow (in MW) that must be transmitted in a | + | transmission line in each timepoint. | + +-------------------------------------------------------------------------+ + | | :code:`tx_simple_max_flow_mw` | + | | *Defined over*: :code:`TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT | | | *Within*: :code:`Reals` | - | | *Default*: :code:`Negative_Infinity` | + | | *Default*: :code:`Infinity` | | | - | The minimum transmitted power (in MW) that must be transmitted in a | - | transmission line during all timepoints of a specific | - | balancing type-horizon combination. | + | The maximum flow (in MW) that can be transmitted in a | + | transmission line in each timepoint. | +-------------------------------------------------------------------------+ @@ -164,12 +178,17 @@ def add_model_components(m, d, scenario_directory, subproblem, stage): | loss factor in each operational timepoint. Provides upper bound on | | losses. | +-------------------------------------------------------------------------+ - | | :code:`TxSimple_Min_Transmit_Power_Constraint` | - | | *Defined over*: :code:`TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT` | + | | :code:`TxSimple_Min_Flow_Constraint` | + | | *Defined over*: :code:`TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT` | | | | Transmitted power should exceed the minimum transmitted power in each | - | operational timepoint for every combination of balancing type and | - | horizon. | + | operational timepoint. | + +-------------------------------------------------------------------------+ + | | :code:`TxSimple_Max_Flow_Constraint` | + | | *Defined over*: :code:`TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT` | + | | + | Transmitted power should not exceed the maximum transmitted power in | + | each operational timepoint. | +-------------------------------------------------------------------------+ """ @@ -192,9 +211,9 @@ def add_model_components(m, d, scenario_directory, subproblem, stage): ), ) - m.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT = Set( - dimen=3, within=m.TX_SIMPLE * m.BLN_TYPE_HRZS - ) + m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT = Set(dimen=2, within=m.TX_SIMPLE_OPR_TMPS) + + m.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT = Set(dimen=2, within=m.TX_SIMPLE_OPR_TMPS) # Params ########################################################################### @@ -203,11 +222,16 @@ def add_model_components(m, d, scenario_directory, subproblem, stage): # Optional Params ########################################################################### - m.tx_simple_min_transmit_power_mw = Param( - m.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT, + m.tx_simple_min_flow_mw = Param( + m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT, within=Reals, default=Negative_Infinity ) + m.tx_simple_max_flow_mw = Param( + m.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT, + within=Reals, default=Infinity + ) + # Variables ########################################################################### @@ -244,9 +268,14 @@ def add_model_components(m, d, scenario_directory, subproblem, stage): m.TX_SIMPLE_OPR_TMPS, rule=max_losses_to_rule ) - m.TxSimple_Min_Transmit_Power_Constraint = Constraint( - m.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT, - rule=min_transmit_power_rule + m.TxSimple_Min_Flow_Constraint = Constraint( + m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT, + rule=min_flow_rule + ) + + m.TxSimple_Max_Flow_Constraint = Constraint( + m.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT, + rule=max_flow_rule ) # Constraint Formulation Rules @@ -371,30 +400,34 @@ def max_losses_to_rule(mod, l, tmp): ) - -def min_transmit_power_rule(mod, l, bt, h): +def min_flow_rule(mod, l, tmp): """ - **Constraint Name**: TxSimple_Min_Transmit_Power_Constraint + **Constraint Name**: TxSimple_Min_Flow_Constraint **Enforced Over**: TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT - Transmitted power should exceed the defined minimum transmission power in + Transmitted power should exceed the defined minimum flow in each operational timepoint. + """ + var = mod.tx_simple_min_flow_mw[l, tmp] + if var == 0: + return Constraint.Skip + else: + return mod.TxSimple_Transmit_Power_MW[l, tmp] >= var - If the minimum transmitted power is positive, the transmitted power should - exceed the minimum transmitted power in the transmission line's positive direction. - If the minimum transmitted power is negative, the transmitted power should - exceed the minimum transmitted power in transmission line's negative direction. +def max_flow_rule(mod, l, tmp): + """ + **Constraint Name**: TxSimple_Max_Flow_Constraint + **Enforced Over**: TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT + + Transmitted power should not exceed the defined maximum flow in + each operational timepoint. """ - var = mod.tx_simple_min_transmit_power_mw[l, bt, h] + var = mod.tx_simple_max_flow_mw[l, tmp] if var == 0: return Constraint.Skip - elif var > 0: - for tmp in mod.TMPS_BY_BLN_TYPE_HRZ[bt, h]: - return mod.TxSimple_Transmit_Power_MW[l, tmp] >= var else: - for tmp in mod.TMPS_BY_BLN_TYPE_HRZ[bt, h]: - return mod.TxSimple_Transmit_Power_MW[l, tmp] <= var + return mod.TxSimple_Transmit_Power_MW[l, tmp] <= var # Transmission Operational Type Methods @@ -473,51 +506,95 @@ def load_model_data(m, d, data_portal, scenario_directory, subproblem, stage): # Load data data_portal.data()["tx_simple_loss_factor"] = loss_factor - # Min transmit power - transmission_horizons_with_min = list() - min_transmit_power_mw = dict() + # Min Flow + transmission_tmps_with_min = list() + min_flow_mw = dict() + + header = pd.read_csv( + os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", + "transmission_flow.tab"), + sep="\t", header=None, nrows=1 + ).values[0] + + optional_columns = ["min_flow_mw"] + used_columns = [c for c in optional_columns if c in header] + + df = pd.read_csv( + os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", + "transmission_flow.tab"), + sep="\t", usecols=["transmission_line", "timepoint"] + used_columns + ) + + # min_flow_mw is optional, + # so TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT + # and min_flow_mw simply won't be initialized if + # min_flow_mw does not exist in the input file + if "min_flow_mw" in df.columns: + for row in zip(df["transmission_line"], + df["timepoint"], + df["min_flow_mw"]): + if row[2] != ".": + transmission_tmps_with_min.append((row[0], row[1])) + min_flow_mw[(row[0], row[1])] = float(row[2]) + else: + pass + else: + pass + + # Load min flow data + if not transmission_tmps_with_min: + pass # if the list is empty, don't initialize the set + else: + data_portal.data()["TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT"] = \ + {None: transmission_tmps_with_min} + + data_portal.data()["tx_simple_min_flow_mw"] = \ + min_flow_mw + + # Max Flow + transmission_tmps_with_max = list() + max_flow_mw = dict() header = pd.read_csv( os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", - "transmission_min_transmit_power.tab"), + "transmission_flow.tab"), sep="\t", header=None, nrows=1 ).values[0] - optional_columns = ["min_transmit_power_mw"] + optional_columns = ["max_flow_mw"] used_columns = [c for c in optional_columns if c in header] df = pd.read_csv( os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", - "transmission_min_transmit_power.tab"), - sep="\t", usecols=["transmission_line", "balancing_type_horizon", "horizon"] + used_columns + "transmission_flow.tab"), + sep="\t", usecols=["transmission_line", "timepoint"] + used_columns ) - # min_transmit_power_mw is optional, - # so TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT - # and min_transmit_power_mw simply won't be initialized if - # min_transmit_power_mw does not exist in the input file - if "min_transmit_power_mw" in df.columns: + # max_flow_mw is optional, + # so TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT + # and max_flow_mw simply won't be initialized if + # max_flow_mw does not exist in the input file + if "max_flow_mw" in df.columns: for row in zip(df["transmission_line"], - df["balancing_type_horizon"], - df["horizon"], - df["min_transmit_power_mw"]): - if row[3] != ".": - transmission_horizons_with_min.append((row[0], row[1], row[2])) - min_transmit_power_mw[(row[0], row[1], row[2])] = float(row[3]) + df["timepoint"], + df["max_flow_mw"]): + if row[2] != ".": + transmission_tmps_with_max.append((row[0], row[1])) + max_flow_mw[(row[0], row[1])] = float(row[2]) else: pass else: pass - # Load min transmit power data - if not transmission_horizons_with_min: + # Load max flow data + if not transmission_tmps_with_max: pass # if the list is empty, don't initialize the set else: - data_portal.data()["TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT"] = \ - {None: transmission_horizons_with_min} + data_portal.data()["TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT"] = \ + {None: transmission_tmps_with_max} - data_portal.data()["tx_simple_min_transmit_power_mw"] = \ - min_transmit_power_mw + data_portal.data()["tx_simple_max_flow_mw"] = \ + max_flow_mw def get_model_inputs_from_database(scenario_id, subscenarios, subproblem, stage, conn): @@ -532,32 +609,30 @@ def get_model_inputs_from_database(scenario_id, subscenarios, subproblem, stage, stage = 1 if stage == "" else stage c = conn.cursor() - tx_min_transmit_power = c.execute( - """SELECT transmission_line, balancing_type_horizon, horizon, min_transmit_power_mw - FROM inputs_transmission_min_transmit_power + tx_flow = c.execute( + """SELECT transmission_line, timepoint, min_flow_mw, max_flow_mw + FROM inputs_transmission_flow JOIN - (SELECT balancing_type_horizon, horizon - FROM inputs_temporal_horizons - WHERE temporal_scenario_id = {}) as relevant_horizons - USING (balancing_type_horizon, horizon) + (SELECT timepoint + FROM inputs_temporal + WHERE temporal_scenario_id = {}) as relevant_timepoints + USING (timepoint) JOIN (SELECT transmission_line FROM inputs_transmission_portfolios WHERE transmission_portfolio_scenario_id = {}) as relevant_tx USING (transmission_line) - WHERE transmission_min_transmit_power_scenario_id = {} - AND subproblem_id = {} + WHERE transmission_flow_scenario_id = {} AND stage_ID = {} """.format( subscenarios.TEMPORAL_SCENARIO_ID, subscenarios.TRANSMISSION_PORTFOLIO_SCENARIO_ID, - subscenarios.TRANSMISSION_MIN_TRANSMIT_POWER_SCENARIO_ID, - subproblem, + subscenarios.TRANSMISSION_FLOW_SCENARIO_ID, stage ) ) - return tx_min_transmit_power + return tx_flow def write_model_inputs(scenario_directory, scenario_id, subscenarios, subproblem, stage, conn): @@ -572,21 +647,21 @@ def write_model_inputs(scenario_directory, scenario_id, subscenarios, subproblem :return: """ - tx_min_transmit_power = get_model_inputs_from_database( + tx_flow = get_model_inputs_from_database( scenario_id, subscenarios, subproblem, stage, conn) with open(os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", - "transmission_min_transmit_power.tab"), - "w", newline="") as tx_min_transmit_power_tab_file: - writer = csv.writer(tx_min_transmit_power_tab_file, delimiter="\t", lineterminator="\n") + "transmission_flow.tab"), + "w", newline="") as tx_flow_tab_file: + writer = csv.writer(tx_flow_tab_file, delimiter="\t", lineterminator="\n") # TODO: remove all_caps for TRANSMISSION_LINES and make columns # same as database # Write header writer.writerow( - ["transmission_line", "balancing_type_horizon", "horizon", "min_transmit_power_mw"] + ["transmission_line", "timepoint", "min_flow_mw", "max_flow_mw"] ) - for row in tx_min_transmit_power: + for row in tx_flow: replace_nulls = ["." if i is None else i for i in row] writer.writerow(replace_nulls) diff --git a/tests/test_data/inputs/transmission_flow.tab b/tests/test_data/inputs/transmission_flow.tab new file mode 100644 index 000000000..8a645fdf6 --- /dev/null +++ b/tests/test_data/inputs/transmission_flow.tab @@ -0,0 +1,3 @@ +transmission_line timepoint min_flow_mw max_flow_mw +Tx_New 20200101 -0.1 2 +Tx_New 20200102 -5.5 2.5 diff --git a/tests/test_data/inputs/transmission_min_transmit_power.tab b/tests/test_data/inputs/transmission_min_transmit_power.tab deleted file mode 100644 index 83ac63e6a..000000000 --- a/tests/test_data/inputs/transmission_min_transmit_power.tab +++ /dev/null @@ -1,3 +0,0 @@ -transmission_line balancing_type_horizon horizon min_transmit_power_mw -Tx_New day 202001 -0.1 -Tx_New day 202002 -5.5 diff --git a/tests/test_examples.py b/tests/test_examples.py index 6b002b301..5a78427a5 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -1010,15 +1010,15 @@ def test_example_test_new_solar_carbon_cap_2zones_tx_low_carbon_fuel_blend(self) -3504399050661.217, ) - def test_tx_min_transmit_power(self): + def test_tx_flow(self): """ Check validation and objective function value of - "test_tx_min_transmit_power" example + "test_tx_flow" example :return: """ - self.check_validation("test_tx_min_transmit_power") - self.run_and_check_objective("test_tx_min_transmit_power", -58467336323371.43) + self.check_validation("test_tx_flow") + self.run_and_check_objective("test_tx_flow", -59124336744013.484) @classmethod def tearDownClass(cls): diff --git a/tests/transmission/operations/operational_types/test_tx_simple.py b/tests/transmission/operations/operational_types/test_tx_simple.py index 9cd1d25cf..22e67fc01 100644 --- a/tests/transmission/operations/operational_types/test_tx_simple.py +++ b/tests/transmission/operations/operational_types/test_tx_simple.py @@ -211,17 +211,29 @@ def test_data_loaded_correctly(self): ) self.assertListEqual(expect_tx_op_tmp, actual_tx_op_tmp) - # Set: TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT - expect_tx_bln_type_hrzs = sorted( + # Set: TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT + expect_tx_opr_tmps = sorted( [ - ("Tx_New", "day", 202001), ("Tx_New", "day", 202002) + ("Tx_New", 20200101), ("Tx_New", 20200102) ] ) - actual_tx_bln_type_hrzs = sorted( - [(tx, bt, h) for (tx, bt, h) - in instance.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT] + actual_tx_opr_tmps = sorted( + [(tx, tmp) for (tx, tmp) + in instance.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT] ) - self.assertListEqual(expect_tx_bln_type_hrzs, actual_tx_bln_type_hrzs) + self.assertListEqual(expect_tx_opr_tmps, actual_tx_opr_tmps) + + # Set: TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT + expect_tx_opr_tmps = sorted( + [ + ("Tx_New", 20200101), ("Tx_New", 20200102) + ] + ) + actual_tx_opr_tmps = sorted( + [(tx, tmp) for (tx, tmp) + in instance.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT] + ) + self.assertListEqual(expect_tx_opr_tmps, actual_tx_opr_tmps) # Param: tx_simple_loss_factor expected_lf = OrderedDict(sorted({"Tx_New": 0.1}.items())) @@ -234,16 +246,27 @@ def test_data_loaded_correctly(self): ) self.assertDictEqual(expected_lf, actual_lf) - # Param: tx_simple_min_transmit_power_mw - expected_min_transmit_power = OrderedDict(sorted({("Tx_New", "day", 202001): -0.1, - ("Tx_New", "day", 202002): -5.5}.items())) - actual_min_transmit_power = OrderedDict( + # Param: tx_simple_min_flow_mw + expected_min_flow = OrderedDict(sorted({("Tx_New", 20200101): -0.1, + ("Tx_New", 20200102): -5.5}.items())) + actual_min_flow = OrderedDict( + sorted( + {(tx, tmp): instance.tx_simple_min_flow_mw[tx, tmp] + for (tx, tmp) in instance.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT}.items() + ) + ) + self.assertDictEqual(expected_min_flow, actual_min_flow) + + # Param: tx_simple_max_flow_mw + expected_max_flow = OrderedDict(sorted({("Tx_New", 20200101): 2, + ("Tx_New", 20200102): 2.5}.items())) + actual_max_flow = OrderedDict( sorted( - {(tx, bt, h): instance.tx_simple_min_transmit_power_mw[tx, bt, h] - for (tx, bt, h) in instance.TX_SIMPLE_BLN_TYPE_HRZS_W_MIN_CONSTRAINT}.items() + {(tx, tmp): instance.tx_simple_max_flow_mw[tx, tmp] + for (tx, tmp) in instance.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT}.items() ) ) - self.assertDictEqual(expected_min_transmit_power, actual_min_transmit_power) + self.assertDictEqual(expected_max_flow, actual_max_flow) if __name__ == "__main__": From 6324be7d4b871ac603ee2a15f9a5948aaf597c67 Mon Sep 17 00:00:00 2001 From: Amyot Date: Tue, 15 Mar 2022 15:17:53 -0400 Subject: [PATCH 07/10] Fixed lint check --- .../operations/operational_types/tx_simple.py | 109 +++++++++++------- .../operational_types/test_tx_simple.py | 40 +++---- 2 files changed, 87 insertions(+), 62 deletions(-) diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index ef6d7ed13..6a061a6db 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -223,13 +223,11 @@ def add_model_components(m, d, scenario_directory, subproblem, stage): ########################################################################### m.tx_simple_min_flow_mw = Param( - m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT, - within=Reals, default=Negative_Infinity + m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT, within=Reals, default=Negative_Infinity ) m.tx_simple_max_flow_mw = Param( - m.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT, - within=Reals, default=Infinity + m.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT, within=Reals, default=Infinity ) # Variables @@ -269,13 +267,11 @@ def add_model_components(m, d, scenario_directory, subproblem, stage): ) m.TxSimple_Min_Flow_Constraint = Constraint( - m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT, - rule=min_flow_rule + m.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT, rule=min_flow_rule ) m.TxSimple_Max_Flow_Constraint = Constraint( - m.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT, - rule=max_flow_rule + m.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT, rule=max_flow_rule ) # Constraint Formulation Rules @@ -511,18 +507,31 @@ def load_model_data(m, d, data_portal, scenario_directory, subproblem, stage): min_flow_mw = dict() header = pd.read_csv( - os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", - "transmission_flow.tab"), - sep="\t", header=None, nrows=1 + os.path.join( + scenario_directory, + str(subproblem), + str(stage), + "inputs", + "transmission_flow.tab", + ), + sep="\t", + header=None, + nrows=1, ).values[0] optional_columns = ["min_flow_mw"] used_columns = [c for c in optional_columns if c in header] df = pd.read_csv( - os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", - "transmission_flow.tab"), - sep="\t", usecols=["transmission_line", "timepoint"] + used_columns + os.path.join( + scenario_directory, + str(subproblem), + str(stage), + "inputs", + "transmission_flow.tab", + ), + sep="\t", + usecols=["transmission_line", "timepoint"] + used_columns, ) # min_flow_mw is optional, @@ -530,9 +539,7 @@ def load_model_data(m, d, data_portal, scenario_directory, subproblem, stage): # and min_flow_mw simply won't be initialized if # min_flow_mw does not exist in the input file if "min_flow_mw" in df.columns: - for row in zip(df["transmission_line"], - df["timepoint"], - df["min_flow_mw"]): + for row in zip(df["transmission_line"], df["timepoint"], df["min_flow_mw"]): if row[2] != ".": transmission_tmps_with_min.append((row[0], row[1])) min_flow_mw[(row[0], row[1])] = float(row[2]) @@ -545,29 +552,42 @@ def load_model_data(m, d, data_portal, scenario_directory, subproblem, stage): if not transmission_tmps_with_min: pass # if the list is empty, don't initialize the set else: - data_portal.data()["TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT"] = \ - {None: transmission_tmps_with_min} + data_portal.data()["TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT"] = { + None: transmission_tmps_with_min + } - data_portal.data()["tx_simple_min_flow_mw"] = \ - min_flow_mw + data_portal.data()["tx_simple_min_flow_mw"] = min_flow_mw # Max Flow transmission_tmps_with_max = list() max_flow_mw = dict() header = pd.read_csv( - os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", - "transmission_flow.tab"), - sep="\t", header=None, nrows=1 + os.path.join( + scenario_directory, + str(subproblem), + str(stage), + "inputs", + "transmission_flow.tab", + ), + sep="\t", + header=None, + nrows=1, ).values[0] optional_columns = ["max_flow_mw"] used_columns = [c for c in optional_columns if c in header] df = pd.read_csv( - os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", - "transmission_flow.tab"), - sep="\t", usecols=["transmission_line", "timepoint"] + used_columns + os.path.join( + scenario_directory, + str(subproblem), + str(stage), + "inputs", + "transmission_flow.tab", + ), + sep="\t", + usecols=["transmission_line", "timepoint"] + used_columns, ) # max_flow_mw is optional, @@ -575,9 +595,7 @@ def load_model_data(m, d, data_portal, scenario_directory, subproblem, stage): # and max_flow_mw simply won't be initialized if # max_flow_mw does not exist in the input file if "max_flow_mw" in df.columns: - for row in zip(df["transmission_line"], - df["timepoint"], - df["max_flow_mw"]): + for row in zip(df["transmission_line"], df["timepoint"], df["max_flow_mw"]): if row[2] != ".": transmission_tmps_with_max.append((row[0], row[1])) max_flow_mw[(row[0], row[1])] = float(row[2]) @@ -590,11 +608,11 @@ def load_model_data(m, d, data_portal, scenario_directory, subproblem, stage): if not transmission_tmps_with_max: pass # if the list is empty, don't initialize the set else: - data_portal.data()["TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT"] = \ - {None: transmission_tmps_with_max} + data_portal.data()["TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT"] = { + None: transmission_tmps_with_max + } - data_portal.data()["tx_simple_max_flow_mw"] = \ - max_flow_mw + data_portal.data()["tx_simple_max_flow_mw"] = max_flow_mw def get_model_inputs_from_database(scenario_id, subscenarios, subproblem, stage, conn): @@ -628,14 +646,16 @@ def get_model_inputs_from_database(scenario_id, subscenarios, subproblem, stage, subscenarios.TEMPORAL_SCENARIO_ID, subscenarios.TRANSMISSION_PORTFOLIO_SCENARIO_ID, subscenarios.TRANSMISSION_FLOW_SCENARIO_ID, - stage + stage, ) ) return tx_flow -def write_model_inputs(scenario_directory, scenario_id, subscenarios, subproblem, stage, conn): +def write_model_inputs( + scenario_directory, scenario_id, subscenarios, subproblem, stage, conn +): """ Get inputs from database and write out the model input transmission_lines.tab file. @@ -648,11 +668,20 @@ def write_model_inputs(scenario_directory, scenario_id, subscenarios, subproblem """ tx_flow = get_model_inputs_from_database( - scenario_id, subscenarios, subproblem, stage, conn) + scenario_id, subscenarios, subproblem, stage, conn + ) - with open(os.path.join(scenario_directory, str(subproblem), str(stage), "inputs", - "transmission_flow.tab"), - "w", newline="") as tx_flow_tab_file: + with open( + os.path.join( + scenario_directory, + str(subproblem), + str(stage), + "inputs", + "transmission_flow.tab", + ), + "w", + newline="" + ) as tx_flow_tab_file: writer = csv.writer(tx_flow_tab_file, delimiter="\t", lineterminator="\n") # TODO: remove all_caps for TRANSMISSION_LINES and make columns diff --git a/tests/transmission/operations/operational_types/test_tx_simple.py b/tests/transmission/operations/operational_types/test_tx_simple.py index 22e67fc01..325d89aa9 100644 --- a/tests/transmission/operations/operational_types/test_tx_simple.py +++ b/tests/transmission/operations/operational_types/test_tx_simple.py @@ -212,26 +212,16 @@ def test_data_loaded_correctly(self): self.assertListEqual(expect_tx_op_tmp, actual_tx_op_tmp) # Set: TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT - expect_tx_opr_tmps = sorted( - [ - ("Tx_New", 20200101), ("Tx_New", 20200102) - ] - ) + expect_tx_opr_tmps = sorted([("Tx_New", 20200101), ("Tx_New", 20200102)]) actual_tx_opr_tmps = sorted( - [(tx, tmp) for (tx, tmp) - in instance.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT] + [(tx, tmp) for (tx, tmp) in instance.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT] ) self.assertListEqual(expect_tx_opr_tmps, actual_tx_opr_tmps) # Set: TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT - expect_tx_opr_tmps = sorted( - [ - ("Tx_New", 20200101), ("Tx_New", 20200102) - ] - ) + expect_tx_opr_tmps = sorted([("Tx_New", 20200101), ("Tx_New", 20200102)]) actual_tx_opr_tmps = sorted( - [(tx, tmp) for (tx, tmp) - in instance.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT] + [(tx, tmp) for (tx, tmp) in instance.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT] ) self.assertListEqual(expect_tx_opr_tmps, actual_tx_opr_tmps) @@ -247,23 +237,29 @@ def test_data_loaded_correctly(self): self.assertDictEqual(expected_lf, actual_lf) # Param: tx_simple_min_flow_mw - expected_min_flow = OrderedDict(sorted({("Tx_New", 20200101): -0.1, - ("Tx_New", 20200102): -5.5}.items())) + expected_min_flow = OrderedDict( + sorted({("Tx_New", 20200101): -0.1, ("Tx_New", 20200102): -5.5}.items()) + ) actual_min_flow = OrderedDict( sorted( - {(tx, tmp): instance.tx_simple_min_flow_mw[tx, tmp] - for (tx, tmp) in instance.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT}.items() + { + (tx, tmp): instance.tx_simple_min_flow_mw[tx, tmp] + for (tx, tmp) in instance.TX_SIMPLE_OPR_TMPS_W_MIN_CONSTRAINT + }.items() ) ) self.assertDictEqual(expected_min_flow, actual_min_flow) # Param: tx_simple_max_flow_mw - expected_max_flow = OrderedDict(sorted({("Tx_New", 20200101): 2, - ("Tx_New", 20200102): 2.5}.items())) + expected_max_flow = OrderedDict( + sorted({("Tx_New", 20200101): 2, ("Tx_New", 20200102): 2.5}.items()) + ) actual_max_flow = OrderedDict( sorted( - {(tx, tmp): instance.tx_simple_max_flow_mw[tx, tmp] - for (tx, tmp) in instance.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT}.items() + { + (tx, tmp): instance.tx_simple_max_flow_mw[tx, tmp] + for (tx, tmp) in instance.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT + }.items() ) ) self.assertDictEqual(expected_max_flow, actual_max_flow) From badb3db4731fcd1a836d6b8329755e7d98b6d30e Mon Sep 17 00:00:00 2001 From: Amyot Date: Tue, 15 Mar 2022 15:20:40 -0400 Subject: [PATCH 08/10] Fixed lint check --- .../transmission/operations/operational_types/tx_simple.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index 6a061a6db..5d5c924df 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -33,6 +33,7 @@ Reals, PercentFraction, ) + Negative_Infinity = float('-inf') Infinity = float("inf") @@ -274,6 +275,7 @@ def add_model_components(m, d, scenario_directory, subproblem, stage): m.TX_SIMPLE_OPR_TMPS_W_MAX_CONSTRAINT, rule=max_flow_rule ) + # Constraint Formulation Rules ############################################################################### @@ -654,7 +656,7 @@ def get_model_inputs_from_database(scenario_id, subscenarios, subproblem, stage, def write_model_inputs( - scenario_directory, scenario_id, subscenarios, subproblem, stage, conn + scenario_directory, scenario_id, subscenarios, subproblem, stage, conn ): """ Get inputs from database and write out the model input @@ -680,7 +682,7 @@ def write_model_inputs( "transmission_flow.tab", ), "w", - newline="" + newline="", ) as tx_flow_tab_file: writer = csv.writer(tx_flow_tab_file, delimiter="\t", lineterminator="\n") From 814dfca448ff731087a5675239187c1b637d472f Mon Sep 17 00:00:00 2001 From: Amyot Date: Tue, 15 Mar 2022 15:23:20 -0400 Subject: [PATCH 09/10] Fixed lint check --- gridpath/transmission/operations/operational_types/tx_simple.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index 5d5c924df..5114575c0 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -34,7 +34,7 @@ PercentFraction, ) -Negative_Infinity = float('-inf') +Negative_Infinity = float("-inf") Infinity = float("inf") From f0fb1931750b8311c23cb3264d090eb0d2a6035e Mon Sep 17 00:00:00 2001 From: AmyotJ Date: Mon, 21 Mar 2022 20:15:00 -0400 Subject: [PATCH 10/10] Fixed constraint skip conditions --- .../transmission/operations/operational_types/tx_simple.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gridpath/transmission/operations/operational_types/tx_simple.py b/gridpath/transmission/operations/operational_types/tx_simple.py index 5114575c0..961a7bbec 100644 --- a/gridpath/transmission/operations/operational_types/tx_simple.py +++ b/gridpath/transmission/operations/operational_types/tx_simple.py @@ -407,7 +407,7 @@ def min_flow_rule(mod, l, tmp): each operational timepoint. """ var = mod.tx_simple_min_flow_mw[l, tmp] - if var == 0: + if var == Negative_Infinity: return Constraint.Skip else: return mod.TxSimple_Transmit_Power_MW[l, tmp] >= var @@ -422,7 +422,7 @@ def max_flow_rule(mod, l, tmp): each operational timepoint. """ var = mod.tx_simple_max_flow_mw[l, tmp] - if var == 0: + if var == Infinity: return Constraint.Skip else: return mod.TxSimple_Transmit_Power_MW[l, tmp] <= var