distopf 1.0.2__tar.gz → 1.1.0.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {distopf-1.0.2 → distopf-1.1.0.dev0}/PKG-INFO +31 -1
- {distopf-1.0.2 → distopf-1.1.0.dev0}/README.md +30 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/pyproject.toml +1 -1
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/plot.py +106 -31
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/__init__.py +2 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/lindist.py +16 -1
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/nl_branchflow.py +26 -4
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/objectives.py +10 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/wrappers/pyomo_wrapper.py +3 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/uv.lock +36 -36
- {distopf-1.0.2 → distopf-1.1.0.dev0}/.github/copilot-instructions.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/.github/skills/run-opf/SKILL.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/.github/workflows/lint.yml +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/.github/workflows/pypi-publish.yml +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/.gitignore +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/2026-04-21-distopf_2-triplex-agent.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/DISCLAIMER.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/LICENSE.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/column_migration.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/docs/STYLE_GUIDE.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/docs/architecture.puml +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/README.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/advanced/profile_matrix.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/advanced/run_enapp.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/advanced/run_enapp_refactor.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/advanced/temp_test.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/basics/adding_generators.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/basics/basic_optimal_power_flow.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/basics/basic_power_flow.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/basics/basic_power_flow_examples.html +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/basics/basic_power_flow_examples.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/control_devices/fbs13.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/control_devices/reg_cap_example.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/control_devices/test_regulator_mi.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/data_import/cim_example.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/data_import/compare_cim_case.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/data_import/dss_converter_test.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/data_import/dss_examples.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/data_import/dss_test_loss.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/data_import/dss_test_results.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/optimization/extract_duals.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/optimization/penalties.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/optimization/penalty_example.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/optimization/thermal_limits.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/build_your_own_opf.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/build_your_own_opf_static.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/nlp.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/pyomo_dss_example.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/pyomo_mi.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/pyomo_multiperiod.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/pyomo_nlp_123_comparison.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/pyomo_nlp_13_comparison.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/pyomo_regulator_control.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/pyomo_tests.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/pyomo/pyomo_time_comparison.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/01_simple_power_flow.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/02_loss_minimization.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/03_voltage_optimization.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/04_comparing_wrappers.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/05_control_strategies.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/06_visualization_gallery.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/07_quick_start.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/08_reactive_power_importance.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/09_optimization_tradeoffs.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/10_working_with_results.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/examples/tutorials/11_fbs_power_flow.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/api.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/cim/IEEE123_PV.xml +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/cim/IEEE13.xml +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/2Bus-1ph-batt/battery_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/2Bus-1ph-batt/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/2Bus-1ph-batt/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/2Bus-1ph-batt/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/2Bus-1ph-batt/default_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/2Bus-1ph-batt/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/2Bus-1ph-batt/pv_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/2Bus-1ph-batt/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/3Bus-1ph-batt/battery_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/3Bus-1ph-batt/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/3Bus-1ph-batt/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/3Bus-1ph-batt/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/3Bus-1ph-batt/default_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/3Bus-1ph-batt/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/3Bus-1ph-batt/pv_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/3Bus-1ph-batt/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/battery_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/default_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/pv_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500-primary-network/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500-primary-network/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500-primary-network/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500-primary-network/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/9500-primary-network/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der/bat_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der/default_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der/pv_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der/schedules.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der_bat/bat_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der_bat/battery_data_v1.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der_bat/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der_bat/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der_bat/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der_bat/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der_bat/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_30der_bat/schedules.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_alternate/battery_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_alternate/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_alternate/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_alternate/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_alternate/default_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_alternate/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_alternate/pv_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee123_alternate/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13_battery/battery_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13_battery/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13_battery/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13_battery/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13_battery/default_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13_battery/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13_battery/pv_loadshape.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee13_battery/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee33/battery_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee33/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee33/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee33/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee33/schedules.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee34/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee34/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee34/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee34/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee34/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500_wye/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500_wye/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500_wye/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500_wye/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/ieee9500_wye/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/minimal_triplex/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/minimal_triplex/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/minimal_triplex/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/minimal_triplex/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/minimal_triplex/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/smartds_small/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/smartds_small/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/smartds_small/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/smartds_small/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/smartds_small/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_3ph/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_3ph/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_3ph/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_3ph/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_3ph/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_pv/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_pv/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_pv/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_pv/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/csv/triplex_pv/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/2Bus/2Bus.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/2BusD/2Bus.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/2Bus_1phase/2Bus1ph.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/IEEE34_BusXY.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/IEEELineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/Run_IEEE34Mod1.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/Run_IEEE34Mod2.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/ieee34-2_Curr_Elem.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/ieee34-2_Power_elem_kVA.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/ieee34-2_RegTaps.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/ieee34-2_VLN_Node.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/ieee34Mod1.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/ieee34Mod2.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/34Bus/nmsu_linecode2_ABC.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/3Bus/3Bus.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-DY-Bal/4Bus-DY-Bal.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-DY-Bal/4busDYBal_Curr_Elem.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-DY-Bal/4busDYBal_Power_elem_kVA.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-DY-Bal/4busDYBal_VLL_Node.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-DY-Bal/4busDYBal_VLN_Node.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-GrdYD-Bal/4Bus-GrdYD-Bal.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-GrdYD-Bal/4busYDBal_Losses.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-GrdYD-Bal/4busYDBal_VLN_Node.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-OYOD-Bal/4Bus-OYOD-Bal.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-OYOD-UnBal/4bus-OYOD-UnBal.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-YD-Bal/4Bus-YD-Bal.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-YY-Bal/4Bus-YY-Bal.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-YYD/Three Winding Transformer Test System-EPRI-2017-Rev4.docx +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4Bus-YYD/YYD-Master.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4wire-Delta/Expanded4WireDelta.pdf +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4wire-Delta/Kersting4wireIndMotor.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4wire-Delta/Kersting4wire_Lagging.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/4wire-Delta/Kersting4wire_Leading.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/BalancedLoads.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/BusCoords.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/CableData.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/CapControls.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/Capacitors.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/DSSViewIntercom.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/EnergyStorage.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/Generators.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/LatLongCoords.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/LineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/LineGeometry.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/LinesSwitchesGeometry.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/LinesSwitchesLineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/LoadXfmrCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/Loads_primary.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/Master-unbal-initial-config.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/Master.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/PVSystems_primary.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/PV_10pen_DSSPV.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/PV_NN_100_DSSPV.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/README.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/Regulators.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/Transformers.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/TriplexLineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/TriplexLines.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/UnbalancedLoads.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/WireData.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/bus_info_temp.json +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/desktop.ini +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/final9500node_Daisy.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/final9500node_Daisy.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/final9500node_Isolated.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/final9500node_Loops.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/final9500node_Power_elem_kVA.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/final9500node_VLN_Node.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/ieee9500bal.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/ieee9500unbal.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/9500-primary-network/xfmrs_info_triplex_nodes.json +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/BusCoords.dat +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/CircuitPlottingScripts.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/DSSGraph_Output.CSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/DSSViewIntercom.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/IEEE123Loads.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/IEEE123Master.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/IEEE123Regulators.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/IEEELineCodes.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/P174_Run_SolarRamp.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/P174_Run_VoltageProfile.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/PV5sdata1.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/PaperLoadShape.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/RevRegTest.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/Run_IEEE123Bus.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/Run_YearlySim.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/SetDailyLoadShape.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/SolarRamp-Mack.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/SolarRamp.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/SolarRamp.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/StorageRamp.CSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/WindRamp.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/WindRampRevRegTest.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Curr_Elem.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Daisy.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Daisy.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_EXP_BUSCOORDS.CSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_EXP_ElemPowers.CSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_EXP_LOADS.CSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_EXP_P_BYPHASE.CSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Elements.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_GenMeterOut.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Loadshape_default.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Loadshape_default.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Loops.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Losses.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Losses.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Power.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Power.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Power_elem_kVA.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Power_seq_kVA.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Profile9998.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Profile9998.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Profile9999.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Profile9999.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_RegTaps.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_VLN.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_VLN_Node.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Voltage.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Voltage.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Vsource_source_PQ.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Vsource_source_PQ.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Vsource_source_V.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee123_dss/ieee123_Vsource_source_V.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/DSSViewIntercom.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/IEEE13Node_BusXY.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt_EXP_ElemPowers.CSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt_Power.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt_Power.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt_Power_elem_kVA.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/IEEELineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/parsedcsvs/IEEE13buscsvs/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/parsedcsvs/IEEE13buscsvs/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/parsedcsvs/IEEE13buscsvs/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee13_dss/parsedcsvs/IEEE13buscsvs/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/BalancedLoads.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/BusCoords.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/CableData.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/CapControls.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Capacitors.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/DSSViewIntercom.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/EnergyStorage.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Generators.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/LatLongCoords.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/LineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/LineConstantsCode.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/LineGeometry.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/LinesSwitchesGeometry.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/LinesSwitchesLineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/LoadXfmrCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Master-bal-initial-config.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Master-unbal-initial-config.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/PV_10pen_DSSPV.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/PV_NN_100_DSSPV.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/README.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Regulators.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Elements.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Test9500new_LineConstants.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Mon_mon1_1.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Power.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Power.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Power_elem_kVA.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/Transformers.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/TriplexLineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/TriplexLines.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/UnbalancedLoads.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_dss/WireData.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/BalancedLoads.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/BusCoords.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/CableData.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/CapControls.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Capacitors.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/DSSViewIntercom.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/EnergyStorage.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Generators.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/LatLongCoords.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/LineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/LineConstantsCode.DSS +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/LineGeometry.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/LinesSwitchesGeometry.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/LinesSwitchesLineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/LoadXfmrCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Master-bal-initial-config.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Master-unbal-initial-config.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/PV_10pen_DSSPV.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/PV_NN_100_DSSPV.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/README.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Regulators.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Elements.Txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Test9500new_LineConstants.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Mon_mon1_1.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Power.DSV +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Power.dbl +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Power_elem_kVA.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/Transformers.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/TriplexLineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/TriplexLines.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/UnbalancedLoads.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/ieee9500_wye/WireData.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/minimal_triplex/minimal_triplex.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/rahul123/Line.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/rahul123/Load.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/rahul123/MyLineCodes.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/rahul123/ieee123master_base.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/Buscoords.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/Intermediates.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/LineCodes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/Lines.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/LoadShapes.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/Loads.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/Master.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/PVSystems.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/SMART-DS_version.txt +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/Transformers.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/Summary_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/blown_fuses.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/de-energized_nodes.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_line_overloads.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_over_voltages.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_transformer_overloads.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_under_voltages.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_voltages.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/pu_voltages_histogram.png +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/opendss/analysis/pu_voltages_percentiles.png +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_15_180.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_15_225.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_25_180.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_25_225.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_25_90.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_35_135.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_16017_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_17146_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_17950_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_1835_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_19648_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_19955_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_20964_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_22499_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_22635_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_2581_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_29069_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_29376_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_29596_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_31655_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_31818_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_32244_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_33164_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_33792_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_8445_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_8470_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_16017_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_17146_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_17950_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_1835_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_19648_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_19955_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_20964_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_22499_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_22635_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_2581_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_29069_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_29376_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_29596_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_31655_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_31818_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_32244_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_33164_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_33792_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_8445_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/com_kw_8470_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_10747_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_1077_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_13334_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_14588_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_14705_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_3216_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_6157_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_7380_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kw_10747_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kw_1077_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kw_13334_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kw_14588_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kw_14705_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kw_3216_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kw_6157_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/profiles/res_kw_7380_pu.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/sensors/reactive_ids.json +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/sensors/real_ids.json +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/smartds_small/sensors/voltage_ids.json +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/test_line/main.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/test_line_unbal_line/main.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/test_line_unbal_load/main.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/test_line_unbal_load_unbal_line/main.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/test_reg/main.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/triplex_3ph/triplex_3ph.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cases/dss/triplex_pv/triplex_pv.dss +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/cim_to_csv_converter.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/processors/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/processors/base_processor.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/processors/bus_processor.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/processors/capacitor_processor.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/processors/generator_processor.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/processors/line_processor.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/processors/regulator_processor.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/processors/switch_processor.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/processors/transformer_processor.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/utils/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/utils/phase_utils.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/validators/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/cim_importer/validators/topology_validator.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/dss_importer/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/dss_importer/dss_to_csv_converter.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/fbs.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/base.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/binary_variable_notes.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/lindist.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/lindist_capacitor_mi.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/lindist_capacitor_regulator_mi.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/lindist_loads.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/lindist_p_gen.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/lindist_q_gen.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/lindist_regulator_mi.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/base_mp.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/lindist_capacitor_mi_mp.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/lindist_loads_mp.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/lindist_mp.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/objectives.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/pyomo_solver.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/readme.md +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/solvers.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/spatial_decomposition/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/spatial_decomposition/decompose.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/matrix_bess/spatial_decomposition/enapp.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/objectives.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/matrix_models/solvers.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/constraints.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/constraints_nlp.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/factories.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/nl_branchflow_prebuilt.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/protocol.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/results.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/pyomo_models/solvers.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/results.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/spatial_decomposition/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/spatial_decomposition/decompose.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/spatial_decomposition/enapp.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/utils/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/utils/call_recorder.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/utils/input_handlers.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/utils/kcl_check.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/utils/ngon.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/utils/query_interface.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/utils/results_comparison.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/validators.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/wrappers/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/wrappers/base.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/wrappers/matrix_bess_wrapper.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/src/distopf/wrappers/matrix_wrapper.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/conftest.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/data/IEEE13.xml +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/data/ieee13/branch_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/data/ieee13/bus_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/data/ieee13/cap_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/data/ieee13/gen_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/data/ieee13/reg_data.csv +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/integration/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/integration/test_full_conversion.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/integration/test_impedance_comparison.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/test_cim_to_csv_helpser.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/test_cim_to_csv_linking.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/test_converter_run.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/test_phase_utils.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/test_processors.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/test_reg_transformer_small.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/test_regulator_impedances.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/test_topology_validator.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/cim_converter/unit/test_transformer_tank_impedances.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/dss_converter/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/dss_converter/integration/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/dss_converter/integration/test_dss_converter_integration.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/dss_converter/integration/test_triplex_lindist.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/dss_converter/unit/__init__.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/dss_converter/unit/test_dss_converter.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/dss_converter/unit/test_transformer.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/dss_converter/unit/test_triplex_converter.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/dss_converter/unit/test_triplex_pv.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/integration_references.json +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/pyomo_models/test_dual_extraction.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/pyomo_models/test_pyomo_lindist.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/test_backends.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/test_case.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/test_exports.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/test_integration_snapshots.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/test_matrix_models.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/test_nlp_backend.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/test_results.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/test_smoke.py +0 -0
- {distopf-1.0.2 → distopf-1.1.0.dev0}/tests/test_utilities.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: distopf
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.1.0.dev0
|
|
4
4
|
Summary: A package for solving unbalanced three-phase distribution system optimal power flow problems.
|
|
5
5
|
Author: Abodh Poudyal
|
|
6
6
|
Author-email: Nathan Gray <nathan.gray@pnnl.gov>, Rabayet Sadnan <rabayet.sadnan@pnnl.gov>
|
|
@@ -179,6 +179,36 @@ result = case.run_opf(wrapper="matrix_bess", objective="loss")
|
|
|
179
179
|
#### Solver Requirements
|
|
180
180
|
- **IPOPT**: Install via `conda install -c conda-forge ipopt`. On Ubuntu, `apt-get install coinor-libipopt-dev` only installs headers and shared libraries; it does not provide the `ipopt` executable that Pyomo's `SolverFactory("ipopt")` expects.
|
|
181
181
|
|
|
182
|
+
### Optimization Objectives
|
|
183
|
+
|
|
184
|
+
DistOPF supports multiple optimization objectives for distribution system OPF:
|
|
185
|
+
|
|
186
|
+
| Objective | String | Supported Wrappers | Description |
|
|
187
|
+
|-----------|--------|-------------------|-------------|
|
|
188
|
+
| **Loss Minimization** | `"loss"`, `"loss_min"` | All | Minimize distribution losses (most common) |
|
|
189
|
+
| **Substation Power** | `"substation"`, `"substation_power"` | Pyomo, Matrix | Minimize power imported from substation |
|
|
190
|
+
| **Voltage Deviation** | `"voltage_deviation"` | Pyomo | Minimize deviations from nominal voltage (1.0 p.u.) |
|
|
191
|
+
| **Generation Curtailment** | `"curtail"`, `"curtail_min"`, `"curtailment"` | Pyomo | Minimize DER curtailment |
|
|
192
|
+
| **Cost Minimization** | `"cost"`, `"cost_min"` | Pyomo (LinDistFlow, BranchFlow) | Minimize energy procurement cost from swing bus |
|
|
193
|
+
|
|
194
|
+
#### Cost Minimization with Price Data
|
|
195
|
+
|
|
196
|
+
To use cost minimization, add an hourly `price` column to the case schedules (in $/MWh):
|
|
197
|
+
|
|
198
|
+
```python
|
|
199
|
+
import pandas as pd
|
|
200
|
+
import distopf as opf
|
|
201
|
+
|
|
202
|
+
case = opf.create_case(opf.CASES_DIR / "csv" / "ieee123_30der")
|
|
203
|
+
|
|
204
|
+
# Add hourly electricity prices
|
|
205
|
+
case.schedules['price'] = [38, 35, 34, 32, 30, 32, 38, 45, 52, 58, 62, 65,
|
|
206
|
+
68, 65, 62, 58, 55, 60, 75, 82, 78, 65, 50, 42]
|
|
207
|
+
|
|
208
|
+
# Run OPF minimizing energy cost
|
|
209
|
+
result = case.run_opf(objective="cost")
|
|
210
|
+
print(f"Total energy cost: ${result.objective_value:.2f}")
|
|
211
|
+
```
|
|
182
212
|
|
|
183
213
|
### Result Fields
|
|
184
214
|
|
|
@@ -155,6 +155,36 @@ result = case.run_opf(wrapper="matrix_bess", objective="loss")
|
|
|
155
155
|
#### Solver Requirements
|
|
156
156
|
- **IPOPT**: Install via `conda install -c conda-forge ipopt`. On Ubuntu, `apt-get install coinor-libipopt-dev` only installs headers and shared libraries; it does not provide the `ipopt` executable that Pyomo's `SolverFactory("ipopt")` expects.
|
|
157
157
|
|
|
158
|
+
### Optimization Objectives
|
|
159
|
+
|
|
160
|
+
DistOPF supports multiple optimization objectives for distribution system OPF:
|
|
161
|
+
|
|
162
|
+
| Objective | String | Supported Wrappers | Description |
|
|
163
|
+
|-----------|--------|-------------------|-------------|
|
|
164
|
+
| **Loss Minimization** | `"loss"`, `"loss_min"` | All | Minimize distribution losses (most common) |
|
|
165
|
+
| **Substation Power** | `"substation"`, `"substation_power"` | Pyomo, Matrix | Minimize power imported from substation |
|
|
166
|
+
| **Voltage Deviation** | `"voltage_deviation"` | Pyomo | Minimize deviations from nominal voltage (1.0 p.u.) |
|
|
167
|
+
| **Generation Curtailment** | `"curtail"`, `"curtail_min"`, `"curtailment"` | Pyomo | Minimize DER curtailment |
|
|
168
|
+
| **Cost Minimization** | `"cost"`, `"cost_min"` | Pyomo (LinDistFlow, BranchFlow) | Minimize energy procurement cost from swing bus |
|
|
169
|
+
|
|
170
|
+
#### Cost Minimization with Price Data
|
|
171
|
+
|
|
172
|
+
To use cost minimization, add an hourly `price` column to the case schedules (in $/MWh):
|
|
173
|
+
|
|
174
|
+
```python
|
|
175
|
+
import pandas as pd
|
|
176
|
+
import distopf as opf
|
|
177
|
+
|
|
178
|
+
case = opf.create_case(opf.CASES_DIR / "csv" / "ieee123_30der")
|
|
179
|
+
|
|
180
|
+
# Add hourly electricity prices
|
|
181
|
+
case.schedules['price'] = [38, 35, 34, 32, 30, 32, 38, 45, 52, 58, 62, 65,
|
|
182
|
+
68, 65, 62, 58, 55, 60, 75, 82, 78, 65, 50, 42]
|
|
183
|
+
|
|
184
|
+
# Run OPF minimizing energy cost
|
|
185
|
+
result = case.run_opf(objective="cost")
|
|
186
|
+
print(f"Total energy cost: ${result.objective_value:.2f}")
|
|
187
|
+
```
|
|
158
188
|
|
|
159
189
|
### Result Fields
|
|
160
190
|
|
|
@@ -179,12 +179,22 @@ def voltage_differences(v1: pd.DataFrame, v2: pd.DataFrame, t=None) -> go.Figure
|
|
|
179
179
|
return fig
|
|
180
180
|
|
|
181
181
|
|
|
182
|
-
def plot_power_flows(
|
|
182
|
+
def plot_power_flows(
|
|
183
|
+
p: pd.DataFrame,
|
|
184
|
+
q: pd.DataFrame,
|
|
185
|
+
t: int = None,
|
|
186
|
+
) -> go.Figure:
|
|
183
187
|
"""
|
|
184
188
|
Plot the active and reactive power flowing into each bus on each phase.
|
|
189
|
+
|
|
185
190
|
Parameters
|
|
186
191
|
----------
|
|
187
|
-
|
|
192
|
+
p : pd.DataFrame
|
|
193
|
+
Active power flows with columns ``fb``, ``tb``, ``from_name``,
|
|
194
|
+
``to_name``, optionally ``t``, and phase columns ``a``, ``b``, ``c``
|
|
195
|
+
(and optionally ``s1``, ``s2`` for triplex lines) containing real floats.
|
|
196
|
+
q : pd.DataFrame
|
|
197
|
+
Reactive power flows with the same structure as ``p``.
|
|
188
198
|
t : int or None
|
|
189
199
|
Time step to plot. Defaults to 0 when a ``t`` column is present.
|
|
190
200
|
|
|
@@ -192,39 +202,95 @@ def plot_power_flows(s: pd.DataFrame, t=None) -> go.Figure:
|
|
|
192
202
|
-------
|
|
193
203
|
fig : Plotly figure object
|
|
194
204
|
"""
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
205
|
+
p = _choose_t(p, t)
|
|
206
|
+
q = _choose_t(q, t)
|
|
207
|
+
|
|
208
|
+
id_vars = ["fb", "tb", "from_name", "to_name"]
|
|
209
|
+
phase_cols = [c for c in ["a", "b", "c", "s1", "s2"] if c in p.columns]
|
|
210
|
+
|
|
211
|
+
p_long = p[id_vars + phase_cols].melt(
|
|
212
|
+
id_vars=id_vars, var_name="phase", value_name="power"
|
|
201
213
|
)
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
ignore_index=True,
|
|
207
|
-
id_vars=["fb", "tb", "from_name", "to_name", "phase"],
|
|
208
|
-
var_name="part",
|
|
209
|
-
value_name="power",
|
|
214
|
+
p_long["part"] = "p"
|
|
215
|
+
|
|
216
|
+
q_long = q[id_vars + phase_cols].melt(
|
|
217
|
+
id_vars=id_vars, var_name="phase", value_name="power"
|
|
210
218
|
)
|
|
219
|
+
q_long["part"] = "q"
|
|
220
|
+
|
|
221
|
+
df = pd.concat([p_long, q_long], ignore_index=True)
|
|
222
|
+
|
|
211
223
|
fig = px.bar(
|
|
212
|
-
|
|
224
|
+
df,
|
|
213
225
|
x="to_name",
|
|
214
226
|
y="power",
|
|
215
227
|
facet_col="phase",
|
|
216
228
|
facet_row="part",
|
|
217
229
|
color="phase",
|
|
230
|
+
category_orders={"phase": phase_cols, "part": ["q", "p"]},
|
|
218
231
|
labels={"to_name": "To-Bus Name"},
|
|
219
232
|
)
|
|
220
233
|
fig.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1].upper()))
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
)
|
|
234
|
+
|
|
235
|
+
# In plotly, facet_row places the first category on the BOTTOM row.
|
|
236
|
+
# With category_orders={"part": ["q", "p"]}, bottom row = q, top row = p.
|
|
237
|
+
# yaxis1..N correspond to the bottom row (q); yaxis(N+1)..2N to top row (p).
|
|
238
|
+
n_phases = len(phase_cols)
|
|
239
|
+
p_first_axis = n_phases + 1 # first p-row yaxis index
|
|
240
|
+
layout_updates = {
|
|
241
|
+
"yaxis_title": "Reactive Power (p.u.)",
|
|
242
|
+
f"yaxis{p_first_axis}_title": "Active Power (p.u.)",
|
|
243
|
+
}
|
|
244
|
+
fig.update_layout(**layout_updates)
|
|
225
245
|
return fig
|
|
226
246
|
|
|
227
247
|
|
|
248
|
+
# def plot_power_flows(s: pd.DataFrame, t=None) -> go.Figure:
|
|
249
|
+
# """
|
|
250
|
+
# Plot the active and reactive power flowing into each bus on each phase.
|
|
251
|
+
# Parameters
|
|
252
|
+
# ----------
|
|
253
|
+
# s : pd.DataFrame
|
|
254
|
+
# t : int or None
|
|
255
|
+
# Time step to plot. Defaults to 0 when a ``t`` column is present.
|
|
256
|
+
|
|
257
|
+
# Returns
|
|
258
|
+
# -------
|
|
259
|
+
# fig : Plotly figure object
|
|
260
|
+
# """
|
|
261
|
+
# s = _choose_t(s, t)
|
|
262
|
+
# s = s.melt(
|
|
263
|
+
# ignore_index=True,
|
|
264
|
+
# id_vars=["fb", "tb", "from_name", "to_name"],
|
|
265
|
+
# var_name="phase",
|
|
266
|
+
# value_name="s",
|
|
267
|
+
# )
|
|
268
|
+
# s["p"] = s.s.apply(lambda x: x.real)
|
|
269
|
+
# s["q"] = s.s.apply(lambda x: x.imag)
|
|
270
|
+
# del s["s"]
|
|
271
|
+
# s = s.melt(
|
|
272
|
+
# ignore_index=True,
|
|
273
|
+
# id_vars=["fb", "tb", "from_name", "to_name", "phase"],
|
|
274
|
+
# var_name="part",
|
|
275
|
+
# value_name="power",
|
|
276
|
+
# )
|
|
277
|
+
# fig = px.bar(
|
|
278
|
+
# s,
|
|
279
|
+
# x="to_name",
|
|
280
|
+
# y="power",
|
|
281
|
+
# facet_col="phase",
|
|
282
|
+
# facet_row="part",
|
|
283
|
+
# color="phase",
|
|
284
|
+
# labels={"to_name": "To-Bus Name"},
|
|
285
|
+
# )
|
|
286
|
+
# fig.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1].upper()))
|
|
287
|
+
# fig.update_layout(
|
|
288
|
+
# yaxis4_title="Active Power (p.u.)",
|
|
289
|
+
# yaxis_title="Reactive Power (p.u.)",
|
|
290
|
+
# )
|
|
291
|
+
# return fig
|
|
292
|
+
|
|
293
|
+
|
|
228
294
|
def plot_gens(p_gens: pd.DataFrame, q_gens: pd.DataFrame, t=None) -> go.Figure:
|
|
229
295
|
"""
|
|
230
296
|
Plot the active and reactive power flowing into each bus on each phase.
|
|
@@ -716,7 +782,9 @@ def plot_voltage_vs_distance(
|
|
|
716
782
|
)
|
|
717
783
|
|
|
718
784
|
for col_idx in range(1, len(phases) + 1):
|
|
719
|
-
fig.update_xaxes(
|
|
785
|
+
fig.update_xaxes(
|
|
786
|
+
title_text="Distance from Source Bus (hops)", row=1, col=col_idx
|
|
787
|
+
)
|
|
720
788
|
fig.update_yaxes(title_text="Voltage (pu)", row=1, col=1)
|
|
721
789
|
fig.update_layout(title_text=title, hovermode="closest")
|
|
722
790
|
|
|
@@ -906,7 +974,9 @@ def plot_line_flow_vs_distance(
|
|
|
906
974
|
)
|
|
907
975
|
|
|
908
976
|
for col_idx in range(1, len(phases) + 1):
|
|
909
|
-
fig.update_xaxes(
|
|
977
|
+
fig.update_xaxes(
|
|
978
|
+
title_text="Distance from Source Bus (hops)", row=1, col=col_idx
|
|
979
|
+
)
|
|
910
980
|
fig.update_yaxes(
|
|
911
981
|
title_text=f"{flow_name} (kW)" if "Power" in flow_name else f"{flow_name}",
|
|
912
982
|
row=1,
|
|
@@ -1082,8 +1152,13 @@ def _process_branch_data(branch_data, bus_data, _s, phase_list, edge_scale, edge
|
|
|
1082
1152
|
branch_data["s_a"] = _s.a
|
|
1083
1153
|
branch_data["s_b"] = _s.b
|
|
1084
1154
|
branch_data["s_c"] = _s.c
|
|
1085
|
-
|
|
1086
|
-
branch_data["
|
|
1155
|
+
p_complex = _s.loc[:, phase_list].sum(axis=1)
|
|
1156
|
+
# branch_data["p_abs"] = np.abs(np.real(_s.loc[:, phase_list].sum(axis=1)))
|
|
1157
|
+
# branch_data["q_abs"] = np.abs(np.imag(_s.loc[:, phase_list].sum(axis=1)))
|
|
1158
|
+
branch_data["p_abs"] = p_complex.map(lambda z: abs(z.real))
|
|
1159
|
+
branch_data["q_abs"] = p_complex.map(lambda z: abs(z.imag))
|
|
1160
|
+
branch_data["p_direction"] = p_complex.map(lambda z: np.sign(z.real + 1e-6))
|
|
1161
|
+
branch_data["q_direction"] = p_complex.map(lambda z: np.sign(z.imag + 1e-6))
|
|
1087
1162
|
branch_data["p_norm"] = (
|
|
1088
1163
|
branch_data["p_abs"].to_numpy() / branch_data["p_abs"].max() * edge_scale
|
|
1089
1164
|
+ edge_min
|
|
@@ -1092,12 +1167,12 @@ def _process_branch_data(branch_data, bus_data, _s, phase_list, edge_scale, edge
|
|
|
1092
1167
|
branch_data["q_abs"].to_numpy() / branch_data["q_abs"].max() * edge_scale
|
|
1093
1168
|
+ edge_min
|
|
1094
1169
|
)
|
|
1095
|
-
branch_data["p_direction"] = np.sign(
|
|
1096
|
-
|
|
1097
|
-
)
|
|
1098
|
-
branch_data["q_direction"] = np.sign(
|
|
1099
|
-
|
|
1100
|
-
)
|
|
1170
|
+
# branch_data["p_direction"] = np.sign(
|
|
1171
|
+
# np.real(_s.loc[:, phase_list].sum(axis=1)) + 1e-6
|
|
1172
|
+
# )
|
|
1173
|
+
# branch_data["q_direction"] = np.sign(
|
|
1174
|
+
# np.imag(_s.loc[:, phase_list].sum(axis=1)) + 1e-6
|
|
1175
|
+
# )
|
|
1101
1176
|
return branch_data
|
|
1102
1177
|
|
|
1103
1178
|
|
|
@@ -74,6 +74,7 @@ from distopf.pyomo_models.objectives import (
|
|
|
74
74
|
loss_objective_rule,
|
|
75
75
|
create_penalized_objective,
|
|
76
76
|
set_objective,
|
|
77
|
+
cost_minimization_rule,
|
|
77
78
|
)
|
|
78
79
|
|
|
79
80
|
# Solver
|
|
@@ -121,6 +122,7 @@ __all__ = [
|
|
|
121
122
|
"loss_objective_rule",
|
|
122
123
|
"create_penalized_objective",
|
|
123
124
|
"set_objective",
|
|
125
|
+
"cost_minimization_rule",
|
|
124
126
|
# Solver
|
|
125
127
|
"solve",
|
|
126
128
|
]
|
|
@@ -559,6 +559,21 @@ def _create_branch_thermal_parameters(m: pyo.ConcreteModel, case: Case) -> None:
|
|
|
559
559
|
)
|
|
560
560
|
|
|
561
561
|
|
|
562
|
+
def _create_price_parameters(m: pyo.ConcreteModel, case: Case) -> None:
|
|
563
|
+
"""Create electricity price parameters from schedules."""
|
|
564
|
+
price_data = {}
|
|
565
|
+
if "price" in case.schedules.columns:
|
|
566
|
+
for t in m.time_set:
|
|
567
|
+
price_data[t] = case.schedules.at[t, "price"]
|
|
568
|
+
|
|
569
|
+
m.price = pyo.Param(
|
|
570
|
+
m.time_set,
|
|
571
|
+
initialize=price_data,
|
|
572
|
+
default=0.0,
|
|
573
|
+
doc="Hourly electricity price ($/MWh)",
|
|
574
|
+
)
|
|
575
|
+
|
|
576
|
+
|
|
562
577
|
def _create_parameters(m: pyo.ConcreteModel, case: Case) -> None:
|
|
563
578
|
"""
|
|
564
579
|
Create all parameters for the Pyomo model including impedances, loads,
|
|
@@ -573,7 +588,7 @@ def _create_parameters(m: pyo.ConcreteModel, case: Case) -> None:
|
|
|
573
588
|
_create_v_limit_parameters(m, case)
|
|
574
589
|
_create_battery_parameters(m, case)
|
|
575
590
|
_create_branch_thermal_parameters(m, case)
|
|
576
|
-
|
|
591
|
+
_create_price_parameters(m, case)
|
|
577
592
|
|
|
578
593
|
def create_lindist_model(
|
|
579
594
|
case: Case,
|
|
@@ -37,7 +37,7 @@ def _parse_phases(phases_str: str) -> list[str]:
|
|
|
37
37
|
>>> _parse_phases("s1")
|
|
38
38
|
['s1']
|
|
39
39
|
"""
|
|
40
|
-
return re.findall(r
|
|
40
|
+
return re.findall(r"[A-Za-z]\d|.", phases_str)
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
def _create_phase_tuples(df: pd.DataFrame, id_col: str = "id") -> list[tuple[int, str]]:
|
|
@@ -85,7 +85,9 @@ def _create_sets(m: pyo.ConcreteModel, case: Case) -> None:
|
|
|
85
85
|
m.branch_phase_pair_set = pyo.Set(
|
|
86
86
|
initialize=[
|
|
87
87
|
(int(fb), int(tb), ph1 + ph2)
|
|
88
|
-
for fb, tb, phs in case.branch_data.loc[
|
|
88
|
+
for fb, tb, phs in case.branch_data.loc[
|
|
89
|
+
:, ["fb", "tb", "phases"]
|
|
90
|
+
].to_numpy()
|
|
89
91
|
for ph1, ph2 in combinations_with_replacement(sorted(_parse_phases(phs)), 2)
|
|
90
92
|
]
|
|
91
93
|
)
|
|
@@ -101,7 +103,9 @@ def _create_sets(m: pyo.ConcreteModel, case: Case) -> None:
|
|
|
101
103
|
m.branch_angle_phase_pair_set = pyo.Set(
|
|
102
104
|
initialize=[
|
|
103
105
|
(int(fb), int(tb), ph1 + ph2)
|
|
104
|
-
for fb, tb, phs in case.branch_data.loc[
|
|
106
|
+
for fb, tb, phs in case.branch_data.loc[
|
|
107
|
+
:, ["fb", "tb", "phases"]
|
|
108
|
+
].to_numpy()
|
|
105
109
|
for ph1, ph2 in product(_parse_phases(phs), repeat=2)
|
|
106
110
|
if tb not in m.swing_bus_set
|
|
107
111
|
]
|
|
@@ -579,7 +583,24 @@ def _create_branch_thermal_parameters(m: pyo.ConcreteModel, case: Case) -> None:
|
|
|
579
583
|
|
|
580
584
|
|
|
581
585
|
def _create_angle_parameters(m: pyo.ConcreteModel, case: Case) -> None:
|
|
582
|
-
m.d = pyo.Param(
|
|
586
|
+
m.d = pyo.Param(
|
|
587
|
+
m.branch_angle_phase_pair_set, initialize=0, mutable=True, domain=pyo.Any
|
|
588
|
+
)
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
def _create_price_parameters(m: pyo.ConcreteModel, case: Case) -> None:
|
|
592
|
+
"""Create electricity price parameters from schedules."""
|
|
593
|
+
price_data = {}
|
|
594
|
+
if "price" in case.schedules.columns:
|
|
595
|
+
for t in m.time_set:
|
|
596
|
+
price_data[t] = case.schedules.at[t, "price"]
|
|
597
|
+
|
|
598
|
+
m.price = pyo.Param(
|
|
599
|
+
m.time_set,
|
|
600
|
+
initialize=price_data,
|
|
601
|
+
default=0.0,
|
|
602
|
+
doc="Hourly electricity price ($/MWh)",
|
|
603
|
+
)
|
|
583
604
|
|
|
584
605
|
|
|
585
606
|
def _create_parameters(m: pyo.ConcreteModel, case: Case) -> None:
|
|
@@ -597,6 +618,7 @@ def _create_parameters(m: pyo.ConcreteModel, case: Case) -> None:
|
|
|
597
618
|
_create_battery_parameters(m, case)
|
|
598
619
|
_create_branch_thermal_parameters(m, case)
|
|
599
620
|
_create_angle_parameters(m, case)
|
|
621
|
+
_create_price_parameters(m, case)
|
|
600
622
|
|
|
601
623
|
|
|
602
624
|
def create_nl_branchflow_model(
|
|
@@ -108,6 +108,16 @@ def generation_curtailment_objective_rule(model: LindistModelProtocol):
|
|
|
108
108
|
return total_curtailment
|
|
109
109
|
|
|
110
110
|
|
|
111
|
+
def cost_minimization_rule(m):
|
|
112
|
+
"""Minimize energy procurement cost from swing bus."""
|
|
113
|
+
total_cost = 0
|
|
114
|
+
for fb, tb, ph in m.branch_phase_set:
|
|
115
|
+
for t in m.time_set:
|
|
116
|
+
if fb in m.swing_bus_set:
|
|
117
|
+
total_cost += m.p_flow[fb, tb, ph, t] * m.price[t] * m.delta_t
|
|
118
|
+
return total_cost
|
|
119
|
+
|
|
120
|
+
|
|
111
121
|
# ============ Penalty Functions for Soft Constraints ==================================
|
|
112
122
|
# ======================================================================================
|
|
113
123
|
#
|
|
@@ -396,6 +396,7 @@ class PyomoWrapper(Wrapper):
|
|
|
396
396
|
substation_power_objective_rule,
|
|
397
397
|
voltage_deviation_objective_rule,
|
|
398
398
|
generation_curtailment_objective_rule,
|
|
399
|
+
cost_minimization_rule,
|
|
399
400
|
)
|
|
400
401
|
|
|
401
402
|
if objective is None:
|
|
@@ -415,6 +416,8 @@ class PyomoWrapper(Wrapper):
|
|
|
415
416
|
"curtail": generation_curtailment_objective_rule,
|
|
416
417
|
"curtail_min": generation_curtailment_objective_rule,
|
|
417
418
|
"curtailment": generation_curtailment_objective_rule,
|
|
419
|
+
"cost": cost_minimization_rule,
|
|
420
|
+
"cost_min": cost_minimization_rule,
|
|
418
421
|
}
|
|
419
422
|
|
|
420
423
|
if obj_lower in objective_map:
|
|
@@ -420,7 +420,7 @@ resolution-markers = [
|
|
|
420
420
|
"python_full_version < '3.11'",
|
|
421
421
|
]
|
|
422
422
|
dependencies = [
|
|
423
|
-
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }
|
|
423
|
+
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } },
|
|
424
424
|
]
|
|
425
425
|
sdist = { url = "https://files.pythonhosted.org/packages/66/54/eb9bfc647b19f2009dd5c7f5ec51c4e6ca831725f1aea7a993034f483147/contourpy-1.3.2.tar.gz", hash = "sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54", size = 13466130, upload-time = "2025-04-15T17:47:53.79Z" }
|
|
426
426
|
wheels = [
|
|
@@ -492,7 +492,7 @@ resolution-markers = [
|
|
|
492
492
|
"python_full_version == '3.11.*'",
|
|
493
493
|
]
|
|
494
494
|
dependencies = [
|
|
495
|
-
{ name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" }
|
|
495
|
+
{ name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" } },
|
|
496
496
|
]
|
|
497
497
|
sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" }
|
|
498
498
|
wheels = [
|
|
@@ -763,7 +763,7 @@ wheels = [
|
|
|
763
763
|
|
|
764
764
|
[[package]]
|
|
765
765
|
name = "distopf"
|
|
766
|
-
version = "1.0.
|
|
766
|
+
version = "1.1.0.dev0"
|
|
767
767
|
source = { editable = "." }
|
|
768
768
|
dependencies = [
|
|
769
769
|
{ name = "altdss", extra = ["all"] },
|
|
@@ -919,7 +919,7 @@ name = "exceptiongroup"
|
|
|
919
919
|
version = "1.3.0"
|
|
920
920
|
source = { registry = "https://pypi.org/simple" }
|
|
921
921
|
dependencies = [
|
|
922
|
-
{ name = "typing-extensions"
|
|
922
|
+
{ name = "typing-extensions" },
|
|
923
923
|
]
|
|
924
924
|
sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" }
|
|
925
925
|
wheels = [
|
|
@@ -1233,17 +1233,17 @@ resolution-markers = [
|
|
|
1233
1233
|
"python_full_version < '3.11'",
|
|
1234
1234
|
]
|
|
1235
1235
|
dependencies = [
|
|
1236
|
-
{ name = "colorama", marker = "
|
|
1237
|
-
{ name = "decorator"
|
|
1238
|
-
{ name = "exceptiongroup"
|
|
1239
|
-
{ name = "jedi"
|
|
1240
|
-
{ name = "matplotlib-inline"
|
|
1241
|
-
{ name = "pexpect", marker = "
|
|
1242
|
-
{ name = "prompt-toolkit"
|
|
1243
|
-
{ name = "pygments"
|
|
1244
|
-
{ name = "stack-data"
|
|
1245
|
-
{ name = "traitlets"
|
|
1246
|
-
{ name = "typing-extensions"
|
|
1236
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
1237
|
+
{ name = "decorator" },
|
|
1238
|
+
{ name = "exceptiongroup" },
|
|
1239
|
+
{ name = "jedi" },
|
|
1240
|
+
{ name = "matplotlib-inline" },
|
|
1241
|
+
{ name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
|
|
1242
|
+
{ name = "prompt-toolkit" },
|
|
1243
|
+
{ name = "pygments" },
|
|
1244
|
+
{ name = "stack-data" },
|
|
1245
|
+
{ name = "traitlets" },
|
|
1246
|
+
{ name = "typing-extensions" },
|
|
1247
1247
|
]
|
|
1248
1248
|
sdist = { url = "https://files.pythonhosted.org/packages/85/31/10ac88f3357fc276dc8a64e8880c82e80e7459326ae1d0a211b40abf6665/ipython-8.37.0.tar.gz", hash = "sha256:ca815841e1a41a1e6b73a0b08f3038af9b2252564d01fc405356d34033012216", size = 5606088, upload-time = "2025-05-31T16:39:09.613Z" }
|
|
1249
1249
|
wheels = [
|
|
@@ -1260,17 +1260,17 @@ resolution-markers = [
|
|
|
1260
1260
|
"python_full_version == '3.11.*'",
|
|
1261
1261
|
]
|
|
1262
1262
|
dependencies = [
|
|
1263
|
-
{ name = "colorama", marker = "
|
|
1264
|
-
{ name = "decorator"
|
|
1265
|
-
{ name = "ipython-pygments-lexers"
|
|
1266
|
-
{ name = "jedi"
|
|
1267
|
-
{ name = "matplotlib-inline"
|
|
1268
|
-
{ name = "pexpect", marker = "
|
|
1269
|
-
{ name = "prompt-toolkit"
|
|
1270
|
-
{ name = "pygments"
|
|
1271
|
-
{ name = "stack-data"
|
|
1272
|
-
{ name = "traitlets"
|
|
1273
|
-
{ name = "typing-extensions", marker = "python_full_version
|
|
1263
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
1264
|
+
{ name = "decorator" },
|
|
1265
|
+
{ name = "ipython-pygments-lexers" },
|
|
1266
|
+
{ name = "jedi" },
|
|
1267
|
+
{ name = "matplotlib-inline" },
|
|
1268
|
+
{ name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
|
|
1269
|
+
{ name = "prompt-toolkit" },
|
|
1270
|
+
{ name = "pygments" },
|
|
1271
|
+
{ name = "stack-data" },
|
|
1272
|
+
{ name = "traitlets" },
|
|
1273
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.12'" },
|
|
1274
1274
|
]
|
|
1275
1275
|
sdist = { url = "https://files.pythonhosted.org/packages/6e/71/a86262bf5a68bf211bcc71fe302af7e05f18a2852fdc610a854d20d085e6/ipython-9.5.0.tar.gz", hash = "sha256:129c44b941fe6d9b82d36fc7a7c18127ddb1d6f02f78f867f402e2e3adde3113", size = 4389137, upload-time = "2025-08-29T12:15:21.519Z" }
|
|
1276
1276
|
wheels = [
|
|
@@ -1282,7 +1282,7 @@ name = "ipython-pygments-lexers"
|
|
|
1282
1282
|
version = "1.1.1"
|
|
1283
1283
|
source = { registry = "https://pypi.org/simple" }
|
|
1284
1284
|
dependencies = [
|
|
1285
|
-
{ name = "pygments"
|
|
1285
|
+
{ name = "pygments" },
|
|
1286
1286
|
]
|
|
1287
1287
|
sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" }
|
|
1288
1288
|
wheels = [
|
|
@@ -2441,7 +2441,7 @@ name = "numpy-typing-compat"
|
|
|
2441
2441
|
version = "20250818.2.3"
|
|
2442
2442
|
source = { registry = "https://pypi.org/simple" }
|
|
2443
2443
|
dependencies = [
|
|
2444
|
-
{ name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" }
|
|
2444
|
+
{ name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" } },
|
|
2445
2445
|
]
|
|
2446
2446
|
sdist = { url = "https://files.pythonhosted.org/packages/c9/e3/1a29f174c1e09a2bf111d37a41afceea1b501371abb39e73170ca31a7599/numpy_typing_compat-20250818.2.3.tar.gz", hash = "sha256:72e83d535b635d668ba7315e43ae80be1469a6faea6fc96d312516f39b3d8fa5", size = 4974, upload-time = "2025-08-18T23:46:42.968Z" }
|
|
2447
2447
|
wheels = [
|
|
@@ -2479,7 +2479,7 @@ resolution-markers = [
|
|
|
2479
2479
|
"python_full_version < '3.11'",
|
|
2480
2480
|
]
|
|
2481
2481
|
dependencies = [
|
|
2482
|
-
{ name = "typing-extensions"
|
|
2482
|
+
{ name = "typing-extensions" },
|
|
2483
2483
|
]
|
|
2484
2484
|
sdist = { url = "https://files.pythonhosted.org/packages/88/3c/9d59b0167458b839273ad0c4fc5f62f787058d8f5aed7f71294963a99471/optype-0.9.3.tar.gz", hash = "sha256:5f09d74127d316053b26971ce441a4df01f3a01943601d3712dd6f34cdfbaf48", size = 96143, upload-time = "2025-03-31T17:00:08.392Z" }
|
|
2485
2485
|
wheels = [
|
|
@@ -2496,7 +2496,7 @@ resolution-markers = [
|
|
|
2496
2496
|
"python_full_version == '3.11.*'",
|
|
2497
2497
|
]
|
|
2498
2498
|
dependencies = [
|
|
2499
|
-
{ name = "typing-extensions", marker = "python_full_version
|
|
2499
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
|
2500
2500
|
]
|
|
2501
2501
|
sdist = { url = "https://files.pythonhosted.org/packages/20/7f/daa32a35b2a6a564a79723da49c0ddc464c462e67a906fc2b66a0d64f28e/optype-0.13.4.tar.gz", hash = "sha256:131d8e0f1c12d8095d553e26b54598597133830983233a6a2208886e7a388432", size = 99547, upload-time = "2025-08-19T19:52:44.242Z" }
|
|
2502
2502
|
wheels = [
|
|
@@ -2505,8 +2505,8 @@ wheels = [
|
|
|
2505
2505
|
|
|
2506
2506
|
[package.optional-dependencies]
|
|
2507
2507
|
numpy = [
|
|
2508
|
-
{ name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" }
|
|
2509
|
-
{ name = "numpy-typing-compat"
|
|
2508
|
+
{ name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" } },
|
|
2509
|
+
{ name = "numpy-typing-compat" },
|
|
2510
2510
|
]
|
|
2511
2511
|
|
|
2512
2512
|
[[package]]
|
|
@@ -3498,7 +3498,7 @@ resolution-markers = [
|
|
|
3498
3498
|
"python_full_version < '3.11'",
|
|
3499
3499
|
]
|
|
3500
3500
|
dependencies = [
|
|
3501
|
-
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }
|
|
3501
|
+
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" } },
|
|
3502
3502
|
]
|
|
3503
3503
|
sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" }
|
|
3504
3504
|
wheels = [
|
|
@@ -3559,7 +3559,7 @@ resolution-markers = [
|
|
|
3559
3559
|
"python_full_version == '3.11.*'",
|
|
3560
3560
|
]
|
|
3561
3561
|
dependencies = [
|
|
3562
|
-
{ name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" }
|
|
3562
|
+
{ name = "numpy", version = "2.3.3", source = { registry = "https://pypi.org/simple" } },
|
|
3563
3563
|
]
|
|
3564
3564
|
sdist = { url = "https://files.pythonhosted.org/packages/f5/4a/b927028464795439faec8eaf0b03b011005c487bb2d07409f28bf30879c4/scipy-1.16.1.tar.gz", hash = "sha256:44c76f9e8b6e8e488a586190ab38016e4ed2f8a038af7cd3defa903c0a2238b3", size = 30580861, upload-time = "2025-07-27T16:33:30.834Z" }
|
|
3565
3565
|
wheels = [
|
|
@@ -3627,7 +3627,7 @@ resolution-markers = [
|
|
|
3627
3627
|
"python_full_version < '3.11'",
|
|
3628
3628
|
]
|
|
3629
3629
|
dependencies = [
|
|
3630
|
-
{ name = "optype", version = "0.9.3", source = { registry = "https://pypi.org/simple" }
|
|
3630
|
+
{ name = "optype", version = "0.9.3", source = { registry = "https://pypi.org/simple" } },
|
|
3631
3631
|
]
|
|
3632
3632
|
sdist = { url = "https://files.pythonhosted.org/packages/0b/5f/35c43bd7d412add4adcd68475702571b2489b50c40b6564f808b2355e452/scipy_stubs-1.15.3.0.tar.gz", hash = "sha256:e8f76c9887461cf9424c1e2ad78ea5dac71dd4cbb383dc85f91adfe8f74d1e17", size = 275699, upload-time = "2025-05-08T16:58:35.139Z" }
|
|
3633
3633
|
wheels = [
|
|
@@ -3644,7 +3644,7 @@ resolution-markers = [
|
|
|
3644
3644
|
"python_full_version == '3.11.*'",
|
|
3645
3645
|
]
|
|
3646
3646
|
dependencies = [
|
|
3647
|
-
{ name = "optype", version = "0.13.4", source = { registry = "https://pypi.org/simple" }, extra = ["numpy"]
|
|
3647
|
+
{ name = "optype", version = "0.13.4", source = { registry = "https://pypi.org/simple" }, extra = ["numpy"] },
|
|
3648
3648
|
]
|
|
3649
3649
|
sdist = { url = "https://files.pythonhosted.org/packages/ab/7e/978c7cad40405cb927d065c31bfaefbc09b4f6cf1ce97e4af6625b1935ab/scipy_stubs-1.16.1.1.tar.gz", hash = "sha256:5b36fdcc1a66cc530c08917fa7c7499ec7a607487735419c677742dcf25803fb", size = 347578, upload-time = "2025-08-21T00:57:31.306Z" }
|
|
3650
3650
|
wheels = [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|