distopf 1.1.0.dev1__tar.gz → 1.1.0.dev3__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.1.0.dev1 → distopf-1.1.0.dev3}/PKG-INFO +41 -2
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/README.md +39 -0
- distopf-1.1.0.dev3/examples/advanced/TEMPORAL_README.md +249 -0
- distopf-1.1.0.dev3/examples/advanced/debug_enapp_123.py +87 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/advanced/run_enapp.py +16 -28
- distopf-1.1.0.dev3/examples/advanced/run_enapp_123.py +111 -0
- distopf-1.1.0.dev3/examples/advanced/run_enapp_123_isolated.py +110 -0
- distopf-1.1.0.dev3/examples/advanced/run_enapp_123_spatiotemporal.py +102 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/advanced/run_enapp_refactor.py +9 -18
- distopf-1.1.0.dev3/examples/advanced/run_enapp_tenapp.py +263 -0
- distopf-1.1.0.dev3/examples/advanced/run_temporal_comparison.py +241 -0
- distopf-1.1.0.dev3/examples/advanced/run_temporal_quick.py +41 -0
- distopf-1.1.0.dev3/examples/advanced/run_temporal_tenapp.py +236 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/control_devices/test_regulator_mi.py +3 -4
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/notebooks/adding_generators.ipynb +126 -126
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/notebooks/adding_generators.py +0 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/notebooks/basic_power_flow_examples.ipynb +363 -363
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/notebooks/build_your_own_opf.ipynb +27 -26
- distopf-1.1.0.dev1/examples/notebooks/demo.ipynb → distopf-1.1.0.dev3/examples/notebooks/distopf_pesgm2026_tutorial.ipynb +24833 -15900
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/optimization/penalties.py +0 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/optimization/thermal_limits.py +0 -2
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/pyomo_multiperiod.py +2 -2
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/pyomo_nlp_123_comparison.py +0 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/pyomo_nlp_13_comparison.py +0 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/pyomo_regulator_control.py +0 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/pyomo_time_comparison.py +2 -2
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/pyproject.toml +1 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/api.py +198 -15
- distopf-1.1.0.dev3/src/distopf/distributed/__init__.py +5 -0
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/ADMM_MATH_REPORT.md +800 -0
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/ENAPP_MATH_REPORT.md +605 -0
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/admm_agents.py +770 -0
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/boundary.py +198 -0
- {distopf-1.1.0.dev1/src/distopf/spatial_decomposition → distopf-1.1.0.dev3/src/distopf/distributed/spatial}/decompose.py +67 -17
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/enapp copy.py +1111 -0
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/enapp_agents.py +441 -0
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/execution.py +612 -0
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/messaging.py +223 -0
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/penalties.py +31 -0
- distopf-1.1.0.dev3/src/distopf/distributed/spatial/schedule.py +72 -0
- distopf-1.1.0.dev3/src/distopf/distributed/temporal/__init__.py +44 -0
- distopf-1.1.0.dev3/src/distopf/distributed/temporal/objectives.py +250 -0
- distopf-1.1.0.dev3/src/distopf/distributed/temporal/tenapp_1o.py +150 -0
- distopf-1.1.0.dev3/src/distopf/distributed/temporal/tenapp_admm.py +173 -0
- distopf-1.1.0.dev3/src/distopf/distributed/temporal/tenapp_aprx.py +149 -0
- distopf-1.1.0.dev3/src/distopf/distributed/temporal/utils.py +215 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/dss_importer/dss_to_csv_converter.py +5 -10
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/fbs.py +16 -10
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/base.py +5 -4
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/base_mp.py +5 -4
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/objectives.py +1 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/spatial_decomposition/decompose.py +7 -11
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/spatial_decomposition/enapp.py +2 -2
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/plot.py +273 -81
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/__init__.py +6 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/constraints.py +146 -2
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/constraints_nlp.py +44 -13
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/lindist.py +62 -8
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/nl_branchflow.py +21 -8
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/objectives.py +256 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/results.py +45 -0
- distopf-1.1.0.dev3/src/distopf/pyomo_models/slack_constraints.py +163 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/solvers.py +10 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/results.py +54 -9
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/utils/call_recorder.py +3 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/utils/kcl_check.py +1 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/validators.py +2 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/wrappers/matrix_bess_wrapper.py +4 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/wrappers/matrix_wrapper.py +5 -2
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/wrappers/pyomo_wrapper.py +119 -33
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/dss_converter/unit/test_triplex_pv.py +1 -1
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/pyomo_models/test_dual_extraction.py +0 -2
- distopf-1.1.0.dev3/tests/test_admm_agents.py +254 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/test_case.py +1 -4
- distopf-1.1.0.dev3/tests/test_distributed_api.py +113 -0
- distopf-1.1.0.dev3/tests/test_enapp_integration.py +276 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/test_nlp_backend.py +57 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/test_results.py +30 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/uv.lock +36 -36
- distopf-1.1.0.dev1/src/distopf/spatial_decomposition/enapp.py +0 -581
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/.github/copilot-instructions.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/.github/skills/run-opf/SKILL.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/.github/workflows/lint.yml +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/.github/workflows/pypi-publish.yml +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/.gitignore +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/2026-04-21-distopf_2-triplex-agent.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/DISCLAIMER.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/LICENSE.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/column_migration.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/docs/STYLE_GUIDE.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/docs/architecture.puml +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/README.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/advanced/profile_matrix.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/advanced/temp_test.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/basics/basic_optimal_power_flow.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/basics/basic_power_flow.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/basics/basic_power_flow_examples.html +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/basics/basic_power_flow_examples.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/control_devices/fbs13.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/control_devices/reg_cap_example.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/data_import/cim_example.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/data_import/compare_cim_case.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/data_import/dss_converter_test.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/data_import/dss_examples.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/data_import/dss_test_loss.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/data_import/dss_test_results.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/optimization/extract_duals.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/optimization/penalty_example.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/build_your_own_opf.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/build_your_own_opf_static.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/nlp.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/pyomo_dss_example.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/pyomo_mi.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/pyomo/pyomo_tests.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/01_simple_power_flow.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/02_loss_minimization.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/03_voltage_optimization.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/04_comparing_wrappers.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/05_control_strategies.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/06_visualization_gallery.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/07_quick_start.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/08_reactive_power_importance.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/09_optimization_tradeoffs.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/10_working_with_results.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/examples/tutorials/11_fbs_power_flow.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/cim/IEEE123_PV.xml +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/cim/IEEE13.xml +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/2Bus-1ph-batt/battery_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/2Bus-1ph-batt/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/2Bus-1ph-batt/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/2Bus-1ph-batt/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/2Bus-1ph-batt/default_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/2Bus-1ph-batt/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/2Bus-1ph-batt/pv_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/2Bus-1ph-batt/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/3Bus-1ph-batt/battery_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/3Bus-1ph-batt/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/3Bus-1ph-batt/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/3Bus-1ph-batt/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/3Bus-1ph-batt/default_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/3Bus-1ph-batt/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/3Bus-1ph-batt/pv_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/3Bus-1ph-batt/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/battery_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/default_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/pv_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/4Bus-YY-Bal_dss_batt/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500-primary-network/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500-primary-network/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500-primary-network/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500-primary-network/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/9500-primary-network/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_30der/bat_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_30der/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_30der/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_30der/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_30der/default_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_30der/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_30der/pv_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_30der/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_30der/schedules.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_alternate/battery_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_alternate/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_alternate/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_alternate/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_alternate/default_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_alternate/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_alternate/pv_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_alternate/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_bat/bat_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_bat/battery_data_v1.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_bat/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_bat/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_bat/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_bat/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_bat/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee123_bat/schedules.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13_battery/battery_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13_battery/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13_battery/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13_battery/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13_battery/default_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13_battery/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13_battery/pv_loadshape.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee13_battery/reg_data.csv +0 -0
- /distopf-1.1.0.dev1/src/distopf/cases/csv/ieee33/battery_data.csv → /distopf-1.1.0.dev3/src/distopf/cases/csv/ieee33/bat_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee33/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee33/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee33/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee33/schedules.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee34/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee34/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee34/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee34/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee34/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500_wye/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500_wye/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500_wye/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500_wye/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/ieee9500_wye/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/minimal_triplex/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/minimal_triplex/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/minimal_triplex/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/minimal_triplex/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/minimal_triplex/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/smartds_small/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/smartds_small/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/smartds_small/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/smartds_small/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/smartds_small/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_3ph/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_3ph/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_3ph/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_3ph/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_3ph/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_pv/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_pv/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_pv/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_pv/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/csv/triplex_pv/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/2Bus/2Bus.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/2BusD/2Bus.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/2Bus_1phase/2Bus1ph.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/IEEE34_BusXY.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/IEEELineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/Run_IEEE34Mod1.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/Run_IEEE34Mod2.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/ieee34-2_Curr_Elem.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/ieee34-2_Power_elem_kVA.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/ieee34-2_RegTaps.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/ieee34-2_VLN_Node.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/ieee34Mod1.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/ieee34Mod2.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/34Bus/nmsu_linecode2_ABC.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/3Bus/3Bus.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-DY-Bal/4Bus-DY-Bal.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-DY-Bal/4busDYBal_Curr_Elem.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-DY-Bal/4busDYBal_Power_elem_kVA.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-DY-Bal/4busDYBal_VLL_Node.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-DY-Bal/4busDYBal_VLN_Node.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-GrdYD-Bal/4Bus-GrdYD-Bal.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-GrdYD-Bal/4busYDBal_Losses.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-GrdYD-Bal/4busYDBal_VLN_Node.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-OYOD-Bal/4Bus-OYOD-Bal.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-OYOD-UnBal/4bus-OYOD-UnBal.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-YD-Bal/4Bus-YD-Bal.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-YY-Bal/4Bus-YY-Bal.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-YYD/Three Winding Transformer Test System-EPRI-2017-Rev4.docx +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4Bus-YYD/YYD-Master.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4wire-Delta/Expanded4WireDelta.pdf +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4wire-Delta/Kersting4wireIndMotor.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4wire-Delta/Kersting4wire_Lagging.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/4wire-Delta/Kersting4wire_Leading.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/BalancedLoads.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/BusCoords.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/CableData.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/CapControls.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/Capacitors.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/DSSViewIntercom.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/EnergyStorage.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/Generators.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/LatLongCoords.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/LineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/LineGeometry.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/LinesSwitchesGeometry.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/LinesSwitchesLineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/LoadXfmrCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/Loads_primary.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/Master-unbal-initial-config.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/Master.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/PVSystems_primary.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/PV_10pen_DSSPV.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/PV_NN_100_DSSPV.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/README.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/Regulators.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/Transformers.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/TriplexLineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/TriplexLines.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/UnbalancedLoads.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/WireData.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/bus_info_temp.json +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/desktop.ini +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/final9500node_Daisy.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/final9500node_Daisy.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/final9500node_Isolated.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/final9500node_Loops.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/final9500node_Power_elem_kVA.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/final9500node_VLN_Node.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/ieee9500bal.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/ieee9500unbal.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/9500-primary-network/xfmrs_info_triplex_nodes.json +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/BusCoords.dat +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/CircuitPlottingScripts.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/DSSGraph_Output.CSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/DSSViewIntercom.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/IEEE123Loads.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/IEEE123Master.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/IEEE123Regulators.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/IEEELineCodes.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/P174_Run_SolarRamp.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/P174_Run_VoltageProfile.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/PV5sdata1.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/PaperLoadShape.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/RevRegTest.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/Run_IEEE123Bus.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/Run_YearlySim.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/SetDailyLoadShape.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/SolarRamp-Mack.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/SolarRamp.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/SolarRamp.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/StorageRamp.CSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/WindRamp.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/WindRampRevRegTest.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Curr_Elem.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Daisy.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Daisy.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_EXP_BUSCOORDS.CSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_EXP_ElemPowers.CSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_EXP_LOADS.CSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_EXP_P_BYPHASE.CSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Elements.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_GenMeterOut.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Loadshape_default.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Loadshape_default.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Loops.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Losses.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Losses.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Power.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Power.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Power_elem_kVA.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Power_seq_kVA.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Profile9998.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Profile9998.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Profile9999.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Profile9999.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_RegTaps.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_VLN.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_VLN_Node.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Voltage.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Voltage.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Vsource_source_PQ.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Vsource_source_PQ.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Vsource_source_V.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee123_dss/ieee123_Vsource_source_V.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/DSSViewIntercom.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/IEEE13Node_BusXY.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt_EXP_ElemPowers.CSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt_Power.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt_Power.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/IEEE13Nodeckt_Power_elem_kVA.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/IEEELineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/parsedcsvs/IEEE13buscsvs/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/parsedcsvs/IEEE13buscsvs/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/parsedcsvs/IEEE13buscsvs/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee13_dss/parsedcsvs/IEEE13buscsvs/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/BalancedLoads.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/BusCoords.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/CableData.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/CapControls.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Capacitors.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/DSSViewIntercom.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/EnergyStorage.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Generators.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/LatLongCoords.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/LineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/LineConstantsCode.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/LineGeometry.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/LinesSwitchesGeometry.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/LinesSwitchesLineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/LoadXfmrCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Master-bal-initial-config.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Master-unbal-initial-config.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/PV_10pen_DSSPV.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/PV_NN_100_DSSPV.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/README.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Regulators.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Elements.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Test9500new_LineConstants.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Mon_mon1_1.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Power.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Power.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Test9500new_Power_elem_kVA.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/Transformers.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/TriplexLineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/TriplexLines.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/UnbalancedLoads.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_dss/WireData.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/BalancedLoads.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/BusCoords.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/CableData.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/CapControls.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Capacitors.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/DSSViewIntercom.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/EnergyStorage.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Generators.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/LatLongCoords.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/LineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/LineConstantsCode.DSS +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/LineGeometry.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/LinesSwitchesGeometry.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/LinesSwitchesLineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/LoadXfmrCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Master-bal-initial-config.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Master-unbal-initial-config.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/PV_10pen_DSSPV.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/PV_NN_100_DSSPV.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/README.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Regulators.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Elements.Txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Test9500new_LineConstants.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Mon_mon1_1.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Power.DSV +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Power.dbl +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Test9500new_Power_elem_kVA.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/Transformers.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/TriplexLineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/TriplexLines.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/UnbalancedLoads.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/ieee9500_wye/WireData.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/minimal_triplex/minimal_triplex.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/rahul123/Line.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/rahul123/Load.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/rahul123/MyLineCodes.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/rahul123/ieee123master_base.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/Buscoords.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/Intermediates.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/LineCodes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/Lines.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/LoadShapes.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/Loads.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/Master.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/PVSystems.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/SMART-DS_version.txt +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/Transformers.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/Summary_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/blown_fuses.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/de-energized_nodes.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_line_overloads.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_over_voltages.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_transformer_overloads.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_under_voltages.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/peak_voltages.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/pu_voltages_histogram.png +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/opendss/analysis/pu_voltages_percentiles.png +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_15_180.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_15_225.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_25_180.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_25_225.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_25_90.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/SFO_37.7452_-122.4074_35_135.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_16017_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_17146_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_17950_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_1835_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_19648_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_19955_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_20964_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_22499_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_22635_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_2581_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_29069_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_29376_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_29596_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_31655_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_31818_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_32244_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_33164_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_33792_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_8445_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kvar_8470_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_16017_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_17146_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_17950_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_1835_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_19648_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_19955_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_20964_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_22499_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_22635_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_2581_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_29069_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_29376_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_29596_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_31655_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_31818_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_32244_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_33164_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_33792_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_8445_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/com_kw_8470_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_10747_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_1077_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_13334_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_14588_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_14705_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_3216_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_6157_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kvar_7380_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kw_10747_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kw_1077_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kw_13334_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kw_14588_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kw_14705_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kw_3216_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kw_6157_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/profiles/res_kw_7380_pu.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/sensors/reactive_ids.json +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/sensors/real_ids.json +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/smartds_small/sensors/voltage_ids.json +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/test_line/main.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/test_line_unbal_line/main.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/test_line_unbal_load/main.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/test_line_unbal_load_unbal_line/main.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/test_reg/main.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/triplex_3ph/triplex_3ph.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cases/dss/triplex_pv/triplex_pv.dss +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/cim_to_csv_converter.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/processors/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/processors/base_processor.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/processors/bus_processor.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/processors/capacitor_processor.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/processors/generator_processor.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/processors/line_processor.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/processors/regulator_processor.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/processors/switch_processor.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/processors/transformer_processor.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/utils/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/utils/phase_utils.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/validators/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/cim_importer/validators/topology_validator.py +0 -0
- {distopf-1.1.0.dev1/src/distopf/matrix_models/matrix_bess/spatial_decomposition → distopf-1.1.0.dev3/src/distopf/distributed/spatial}/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/dss_importer/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/binary_variable_notes.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/lindist.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/lindist_capacitor_mi.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/lindist_capacitor_regulator_mi.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/lindist_loads.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/lindist_p_gen.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/lindist_q_gen.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/lindist_regulator_mi.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/lindist_capacitor_mi_mp.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/lindist_loads_mp.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/lindist_mp.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/pyomo_solver.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/readme.md +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/matrix_bess/solvers.py +0 -0
- {distopf-1.1.0.dev1/src/distopf → distopf-1.1.0.dev3/src/distopf/matrix_models/matrix_bess}/spatial_decomposition/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/objectives.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/matrix_models/solvers.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/factories.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/nl_branchflow_prebuilt.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/pyomo_models/protocol.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/utils/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/utils/input_handlers.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/utils/ngon.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/utils/query_interface.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/utils/results_comparison.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/wrappers/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/src/distopf/wrappers/base.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/conftest.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/data/IEEE13.xml +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/data/ieee13/branch_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/data/ieee13/bus_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/data/ieee13/cap_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/data/ieee13/gen_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/data/ieee13/reg_data.csv +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/integration/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/integration/test_full_conversion.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/integration/test_impedance_comparison.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/test_cim_to_csv_helpser.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/test_cim_to_csv_linking.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/test_converter_run.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/test_phase_utils.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/test_processors.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/test_reg_transformer_small.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/test_regulator_impedances.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/test_topology_validator.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/cim_converter/unit/test_transformer_tank_impedances.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/dss_converter/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/dss_converter/integration/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/dss_converter/integration/test_dss_converter_integration.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/dss_converter/integration/test_triplex_lindist.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/dss_converter/unit/__init__.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/dss_converter/unit/test_dss_converter.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/dss_converter/unit/test_transformer.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/dss_converter/unit/test_triplex_converter.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/integration_references.json +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/pyomo_models/test_pyomo_lindist.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/test_backends.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/test_exports.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/test_integration_snapshots.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/test_matrix_models.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/test_smoke.py +0 -0
- {distopf-1.1.0.dev1 → distopf-1.1.0.dev3}/tests/test_utilities.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: distopf
|
|
3
|
-
Version: 1.1.0.
|
|
3
|
+
Version: 1.1.0.dev3
|
|
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>
|
|
@@ -104,6 +104,45 @@ result = case.run_opf(objective="curtail_min", control_variable="P", v_max=1.05,
|
|
|
104
104
|
result.plot_network().show(renderer="browser")
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
+
## Spatial ENAPP and ADMM solvers
|
|
108
|
+
|
|
109
|
+
The spatial solvers are available through the public [`Case.run_enapp()`](src/distopf/api.py:577) and [`Case.run_admm()`](src/distopf/api.py:617) methods. Supply an area topology as a JSON-safe dictionary keyed by area name. Each area must define `up_areas`, `down_areas`, and exactly one `up_buses` entry; bus names must match the selected case.
|
|
110
|
+
|
|
111
|
+
```python
|
|
112
|
+
area_info = {
|
|
113
|
+
"area1": {
|
|
114
|
+
"up_areas": [],
|
|
115
|
+
"down_areas": ["area2"],
|
|
116
|
+
"up_buses": ["sourcebus"],
|
|
117
|
+
"down_buses": ["632"],
|
|
118
|
+
},
|
|
119
|
+
"area2": {
|
|
120
|
+
"up_areas": ["area1"],
|
|
121
|
+
"down_areas": [],
|
|
122
|
+
"up_buses": ["632"],
|
|
123
|
+
"down_buses": [],
|
|
124
|
+
},
|
|
125
|
+
}
|
|
126
|
+
case = opf.create_case(opf.CASES_DIR / "csv" / "ieee13")
|
|
127
|
+
result = case.run_enapp(
|
|
128
|
+
area_info=area_info,
|
|
129
|
+
objective="substation_power",
|
|
130
|
+
parallel=False,
|
|
131
|
+
max_iterations=25,
|
|
132
|
+
)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Runs made through these methods are recorded by [`record_call()`](src/distopf/utils/call_recorder.py:90). Calling [`PowerFlowResult.save()`](src/distopf/results.py:209) writes `run_config.json`, including the distributed solver and topology, so named-objective runs can be reproduced with [`replay()`](src/distopf/api.py:1140):
|
|
136
|
+
|
|
137
|
+
```python
|
|
138
|
+
result.save("results/ieee13-enapp")
|
|
139
|
+
replayed = opf.replay("results/ieee13-enapp/run_config.json")
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Custom objective callables and solve/iteration callbacks are intentionally marked non-replayable because they cannot be reconstructed from JSON.
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
107
146
|
## Optimization Wrappers
|
|
108
147
|
|
|
109
148
|
DistOPF supports multiple optimization wrappers for solving OPF problems:
|
|
@@ -80,6 +80,45 @@ result = case.run_opf(objective="curtail_min", control_variable="P", v_max=1.05,
|
|
|
80
80
|
result.plot_network().show(renderer="browser")
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
+
## Spatial ENAPP and ADMM solvers
|
|
84
|
+
|
|
85
|
+
The spatial solvers are available through the public [`Case.run_enapp()`](src/distopf/api.py:577) and [`Case.run_admm()`](src/distopf/api.py:617) methods. Supply an area topology as a JSON-safe dictionary keyed by area name. Each area must define `up_areas`, `down_areas`, and exactly one `up_buses` entry; bus names must match the selected case.
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
area_info = {
|
|
89
|
+
"area1": {
|
|
90
|
+
"up_areas": [],
|
|
91
|
+
"down_areas": ["area2"],
|
|
92
|
+
"up_buses": ["sourcebus"],
|
|
93
|
+
"down_buses": ["632"],
|
|
94
|
+
},
|
|
95
|
+
"area2": {
|
|
96
|
+
"up_areas": ["area1"],
|
|
97
|
+
"down_areas": [],
|
|
98
|
+
"up_buses": ["632"],
|
|
99
|
+
"down_buses": [],
|
|
100
|
+
},
|
|
101
|
+
}
|
|
102
|
+
case = opf.create_case(opf.CASES_DIR / "csv" / "ieee13")
|
|
103
|
+
result = case.run_enapp(
|
|
104
|
+
area_info=area_info,
|
|
105
|
+
objective="substation_power",
|
|
106
|
+
parallel=False,
|
|
107
|
+
max_iterations=25,
|
|
108
|
+
)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Runs made through these methods are recorded by [`record_call()`](src/distopf/utils/call_recorder.py:90). Calling [`PowerFlowResult.save()`](src/distopf/results.py:209) writes `run_config.json`, including the distributed solver and topology, so named-objective runs can be reproduced with [`replay()`](src/distopf/api.py:1140):
|
|
112
|
+
|
|
113
|
+
```python
|
|
114
|
+
result.save("results/ieee13-enapp")
|
|
115
|
+
replayed = opf.replay("results/ieee13-enapp/run_config.json")
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Custom objective callables and solve/iteration callbacks are intentionally marked non-replayable because they cannot be reconstructed from JSON.
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
83
122
|
## Optimization Wrappers
|
|
84
123
|
|
|
85
124
|
DistOPF supports multiple optimization wrappers for solving OPF problems:
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Temporal Decomposition Examples README
|
|
3
|
+
|
|
4
|
+
This directory contains examples demonstrating the use of TENAPP (Temporal
|
|
5
|
+
Alternating/Approximate/ADMM-based Multi-period OPF) algorithms for solving
|
|
6
|
+
multi-period optimal power flow problems using temporal decomposition.
|
|
7
|
+
|
|
8
|
+
## Background
|
|
9
|
+
|
|
10
|
+
Temporal decomposition breaks a large multi-period OPF problem into smaller
|
|
11
|
+
per-time-step subproblems, which are solved iteratively while coordinating
|
|
12
|
+
through battery state-of-charge (SOC) constraints. This approach is useful for:
|
|
13
|
+
|
|
14
|
+
- Large time horizons (many hours/days)
|
|
15
|
+
- Limited computational resources
|
|
16
|
+
- Distributed optimization
|
|
17
|
+
- Privacy-preserving solutions
|
|
18
|
+
|
|
19
|
+
## Files
|
|
20
|
+
|
|
21
|
+
### 1. run_temporal_quick.py
|
|
22
|
+
**Simplest example - 6 lines of solving code**
|
|
23
|
+
|
|
24
|
+
- Loads IEEE 123-bus network with 6-hour horizon
|
|
25
|
+
- Sets realistic energy prices
|
|
26
|
+
- Solves with TENAPP-1O algorithm
|
|
27
|
+
- Prints results
|
|
28
|
+
|
|
29
|
+
**Run with:**
|
|
30
|
+
```bash
|
|
31
|
+
uv run examples/advanced/run_temporal_quick.py
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Use when:** You just want to get started quickly
|
|
35
|
+
|
|
36
|
+
### 2. run_temporal_tenapp.py
|
|
37
|
+
**Comprehensive example - All three algorithms in detail**
|
|
38
|
+
|
|
39
|
+
- Loads multi-period case (4 time steps)
|
|
40
|
+
- Configures battery parameters
|
|
41
|
+
- Runs all three algorithms:
|
|
42
|
+
- TENAPP-1O (first-order method)
|
|
43
|
+
- TENAPP-APRX (approximate dual method)
|
|
44
|
+
- TENAPP-ADMM (ADMM-based method)
|
|
45
|
+
- Generates detailed comparison CSV
|
|
46
|
+
- Extracts and displays battery dispatch
|
|
47
|
+
- Shows convergence iteration histories
|
|
48
|
+
|
|
49
|
+
**Run with:**
|
|
50
|
+
```bash
|
|
51
|
+
uv run examples/advanced/run_temporal_tenapp.py
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Output files:**
|
|
55
|
+
- `scratch/temporal_results/temporal_results_summary.csv` - Algorithm comparison
|
|
56
|
+
- `scratch/temporal_results/tenapp_*o_iterations.csv` - Iteration details per algorithm
|
|
57
|
+
- `scratch/temporal_results/*.csv` - Full results
|
|
58
|
+
|
|
59
|
+
**Use when:** You want to understand algorithm behavior and compare performance
|
|
60
|
+
|
|
61
|
+
### 3. run_temporal_comparison.py
|
|
62
|
+
**Advanced example - Flexible comparison framework**
|
|
63
|
+
|
|
64
|
+
- Creates configurable multi-period cases
|
|
65
|
+
- Sets dynamic pricing signals with peak hours
|
|
66
|
+
- Runs comparison with custom parameters
|
|
67
|
+
- Generates detailed analysis:
|
|
68
|
+
- Cost breakdown
|
|
69
|
+
- Convergence metrics
|
|
70
|
+
- Battery scheduling
|
|
71
|
+
- Iteration timings
|
|
72
|
+
- Saves all results to CSV for further analysis
|
|
73
|
+
|
|
74
|
+
**Run with:**
|
|
75
|
+
```bash
|
|
76
|
+
uv run examples/advanced/run_temporal_comparison.py
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Key features:**
|
|
80
|
+
- Modular functions for reuse
|
|
81
|
+
- Configurable number of time steps
|
|
82
|
+
- Dynamic pricing scenarios
|
|
83
|
+
- Comprehensive spreadsheet outputs
|
|
84
|
+
|
|
85
|
+
**Use when:** You want to run parameter studies and custom scenarios
|
|
86
|
+
|
|
87
|
+
## Core Algorithms
|
|
88
|
+
|
|
89
|
+
### TENAPP-1O (First-Order)
|
|
90
|
+
```python
|
|
91
|
+
from distopf.distributed.temporal import solve_tenapp_1o
|
|
92
|
+
result = solve_tenapp_1o(case, objective=energy_cost_min, max_iterations=20)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Pros:**
|
|
96
|
+
- Simple dual-based coordination
|
|
97
|
+
- Direct interpretation of price signals
|
|
98
|
+
- Good for reactive dispatch
|
|
99
|
+
|
|
100
|
+
**Cons:**
|
|
101
|
+
- May need many iterations
|
|
102
|
+
- Sensitive to convergence tolerance
|
|
103
|
+
|
|
104
|
+
### TENAPP-APRX (Approximate Dual)
|
|
105
|
+
```python
|
|
106
|
+
from distopf.distributed.temporal import solve_tenapp_aprx
|
|
107
|
+
result = solve_tenapp_aprx(case, objective=energy_cost_min, alpha2=0.33, alpha3=0.33)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Pros:**
|
|
111
|
+
- Gradient-based dual estimates
|
|
112
|
+
- Good practical performance
|
|
113
|
+
- Tunable approximation accuracy
|
|
114
|
+
|
|
115
|
+
**Cons:**
|
|
116
|
+
- Hyperparameters (alpha2, alpha3) may need tuning
|
|
117
|
+
- Approximation may not be exact
|
|
118
|
+
|
|
119
|
+
### TENAPP-ADMM (ADMM-based)
|
|
120
|
+
```python
|
|
121
|
+
from distopf.distributed.temporal import solve_tenapp_admm
|
|
122
|
+
result = solve_tenapp_admm(case, objective=energy_cost_min, weight=1e2)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Pros:**
|
|
126
|
+
- Provable convergence under certain conditions
|
|
127
|
+
- Natural dual variable updates
|
|
128
|
+
- Adaptable penalty weights
|
|
129
|
+
|
|
130
|
+
**Cons:**
|
|
131
|
+
- Requires careful weight selection
|
|
132
|
+
- More computationally intensive per iteration
|
|
133
|
+
|
|
134
|
+
## Common Output Fields
|
|
135
|
+
|
|
136
|
+
All algorithms return a dictionary with:
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
result = {
|
|
140
|
+
"models": [list of LinDistMPL per-time-step models],
|
|
141
|
+
"results": [list of OptimizeResult per time step],
|
|
142
|
+
"iterations": int, # Iterations to convergence
|
|
143
|
+
"converged": bool, # Whether algorithm converged
|
|
144
|
+
"total_cost": float, # Sum of per-time-step costs ($)
|
|
145
|
+
"solve_time": float, # Total solve time (seconds)
|
|
146
|
+
"iteration_summaries": pd.DataFrame, # Iteration-by-iteration details
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Common Parameters
|
|
151
|
+
|
|
152
|
+
```python
|
|
153
|
+
solve_tenapp_*(
|
|
154
|
+
case, # distopf.Case object (n_steps > 1)
|
|
155
|
+
objective=energy_cost_min, # Objective function
|
|
156
|
+
max_iterations=100, # Max coordination iterations
|
|
157
|
+
tolerance=1e-3, # Convergence tolerance
|
|
158
|
+
parallel=False, # Parallel per-time-step solves
|
|
159
|
+
cost_curve=np.array([...]), # Hourly electricity prices ($/MWh)
|
|
160
|
+
solver="CLARABEL", # CVXPY solver (CLARABEL, SCS, MOSEK, etc.)
|
|
161
|
+
)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Setting Up a Case
|
|
165
|
+
|
|
166
|
+
```python
|
|
167
|
+
import distopf as opf
|
|
168
|
+
import numpy as np
|
|
169
|
+
|
|
170
|
+
# Create multi-period case
|
|
171
|
+
case = opf.create_case(
|
|
172
|
+
opf.CASES_DIR / "csv" / "ieee123_30der_bat",
|
|
173
|
+
n_steps=6, # 6-hour horizon
|
|
174
|
+
start_step=0,
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
# Configure voltage limits
|
|
178
|
+
case.bus_data.v_max = 1.05
|
|
179
|
+
case.bus_data.v_min = 0.95
|
|
180
|
+
|
|
181
|
+
# Configure generator control mode
|
|
182
|
+
case.gen_data.control_variable = "PQ" # Active and reactive power
|
|
183
|
+
|
|
184
|
+
# Configure battery parameters
|
|
185
|
+
case.bat_data.control_variable = "P" # Active power control only
|
|
186
|
+
case.bat_data["start_soc"] = 0.5 # 50% initial SOC
|
|
187
|
+
case.bat_data["max_soc"] = 0.9 # 90% max SOC
|
|
188
|
+
|
|
189
|
+
# Define hourly electricity costs
|
|
190
|
+
cost_curve = np.array([50, 50, 80, 90, 70, 45]) # $/MWh for each hour
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Analyzing Results
|
|
194
|
+
|
|
195
|
+
```python
|
|
196
|
+
# Check convergence
|
|
197
|
+
if result["converged"]:
|
|
198
|
+
print(f"Solved in {result['iterations']} iterations")
|
|
199
|
+
print(f"Total cost: ${result['total_cost']:.2f}")
|
|
200
|
+
else:
|
|
201
|
+
print(f"Did not converge after {result['iterations']} iterations")
|
|
202
|
+
|
|
203
|
+
# View iteration history
|
|
204
|
+
print(result["iteration_summaries"])
|
|
205
|
+
|
|
206
|
+
# Extract battery dispatch from first time step
|
|
207
|
+
model_t0 = result["models"][0]
|
|
208
|
+
optim_result_t0 = result["results"][0]
|
|
209
|
+
p_batt = model_t0.get_p_batt(optim_result_t0.x)
|
|
210
|
+
soc = model_t0.get_soc(optim_result_t0.x)
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Performance Tips
|
|
214
|
+
|
|
215
|
+
1. **Start small**: Begin with short horizons (4-6 hours) before scaling up
|
|
216
|
+
2. **Set tolerances carefully**: Looser tolerance (1e-2) = faster, stricter (1e-5) = more accurate
|
|
217
|
+
3. **Choose algorithm wisely**:
|
|
218
|
+
- 1O for first quick solve
|
|
219
|
+
- APRX for practical implementations
|
|
220
|
+
- ADMM for convergence guarantees
|
|
221
|
+
4. **Adjust weights**: ADMM weight scaling affects convergence speed
|
|
222
|
+
5. **Use realistic pricing**: Include peak hours and time-of-use rates
|
|
223
|
+
6. **Monitor iterations**: Check if converging monotonically or oscillating
|
|
224
|
+
|
|
225
|
+
## Troubleshooting
|
|
226
|
+
|
|
227
|
+
**Algorithm doesn't converge:**
|
|
228
|
+
- Increase `max_iterations`
|
|
229
|
+
- Loosen `tolerance` (use 1e-2 instead of 1e-4)
|
|
230
|
+
- Check if case is feasible with `opf.run_opf(case, objective="loss_min")`
|
|
231
|
+
|
|
232
|
+
**Very slow iterations:**
|
|
233
|
+
- Disable solver verbosity in CVXPY
|
|
234
|
+
- Use `parallel=True` if multi-core available
|
|
235
|
+
- Try different solver (SCS faster on some problems, MOSEK more robust)
|
|
236
|
+
|
|
237
|
+
**Inconsistent results:**
|
|
238
|
+
- Check battery efficiency settings
|
|
239
|
+
- Verify cost curve values are reasonable
|
|
240
|
+
- Ensure schedules/loads are properly formatted
|
|
241
|
+
|
|
242
|
+
## References
|
|
243
|
+
|
|
244
|
+
For detailed algorithm descriptions, see parent documentation in:
|
|
245
|
+
- `distopf.distributed.temporal.solve_tenapp_1o`
|
|
246
|
+
- `distopf.distributed.temporal.solve_tenapp_aprx`
|
|
247
|
+
- `distopf.distributed.temporal.solve_tenapp_admm`
|
|
248
|
+
|
|
249
|
+
"""
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
import pandas as pd
|
|
4
|
+
|
|
5
|
+
import distopf as opf
|
|
6
|
+
from distopf.distributed.spatial.decompose import decompose
|
|
7
|
+
from distopf.distributed.spatial.enapp import solve_enapp
|
|
8
|
+
|
|
9
|
+
AREA_INFO = {
|
|
10
|
+
"area1": {
|
|
11
|
+
"up_areas": [],
|
|
12
|
+
"down_areas": ["area2", "area3"],
|
|
13
|
+
"up_buses": ["150"],
|
|
14
|
+
"down_buses": ["152", "135"],
|
|
15
|
+
},
|
|
16
|
+
"area2": {
|
|
17
|
+
"up_areas": ["area1"],
|
|
18
|
+
"down_areas": ["area4"],
|
|
19
|
+
"up_buses": ["152"],
|
|
20
|
+
"down_buses": ["160"],
|
|
21
|
+
},
|
|
22
|
+
"area3": {
|
|
23
|
+
"up_areas": ["area1"],
|
|
24
|
+
"down_areas": [],
|
|
25
|
+
"up_buses": ["135"],
|
|
26
|
+
"down_buses": [],
|
|
27
|
+
},
|
|
28
|
+
# Assumption: area4 is a leaf area under area2.
|
|
29
|
+
"area4": {
|
|
30
|
+
"up_areas": ["area2"],
|
|
31
|
+
"down_areas": [],
|
|
32
|
+
"up_buses": ["160"],
|
|
33
|
+
"down_buses": [],
|
|
34
|
+
},
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
OUTPUT_DIR = Path("scratch/enapp_123_debug")
|
|
38
|
+
PHASES = ("a", "b", "c")
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _voltage_row(result, bus_name: str) -> pd.Series:
|
|
42
|
+
row = result.voltages.loc[
|
|
43
|
+
result.voltages.name.astype(str) == str(bus_name), ["name", "t", "a", "b", "c"]
|
|
44
|
+
]
|
|
45
|
+
if row.empty:
|
|
46
|
+
raise ValueError(f"Missing voltage row for bus {bus_name}")
|
|
47
|
+
return row.iloc[0]
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _power_row(result, to_bus: str) -> pd.Series:
|
|
51
|
+
flows = result.active_power_flows.merge(
|
|
52
|
+
result.reactive_power_flows,
|
|
53
|
+
on=["fb", "tb", "from_name", "to_name", "t"],
|
|
54
|
+
suffixes=("_p", "_q"),
|
|
55
|
+
)
|
|
56
|
+
row = flows.loc[flows.to_name.astype(str) == str(to_bus)]
|
|
57
|
+
if row.empty:
|
|
58
|
+
raise ValueError(f"Missing power-flow row for boundary bus {to_bus}")
|
|
59
|
+
return row.iloc[0]
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _write_table(df: pd.DataFrame, file_name: str) -> None:
|
|
63
|
+
df.to_csv(OUTPUT_DIR / file_name, index=False)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def main() -> None:
|
|
67
|
+
case = opf.create_case(
|
|
68
|
+
opf.CASES_DIR / "csv" / "ieee123_30der",
|
|
69
|
+
n_steps=1,
|
|
70
|
+
ignore_schedule=True,
|
|
71
|
+
ignore_gen=True,
|
|
72
|
+
ignore_bat=True,
|
|
73
|
+
)
|
|
74
|
+
case.modify(control_variable="", v_max=1.06)
|
|
75
|
+
central = case.run_opf()
|
|
76
|
+
|
|
77
|
+
sources = {area_name: data["up_buses"][0] for area_name, data in AREA_INFO.items()}
|
|
78
|
+
subcases = decompose(case, sources)
|
|
79
|
+
r4 = subcases["area4"].run_opf()
|
|
80
|
+
|
|
81
|
+
result_enapp = solve_enapp(
|
|
82
|
+
case, AREA_INFO, objective="min_loss", tol=1e-3, parallel=False
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
if __name__ == "__main__":
|
|
87
|
+
main()
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import multiprocessing as mp
|
|
2
|
-
from copy import deepcopy
|
|
3
|
-
from pathlib import Path
|
|
4
|
-
import numpy as np
|
|
5
|
-
import pandas as pd
|
|
6
1
|
import distopf as opf
|
|
7
|
-
from distopf.matrix_models.matrix_bess.solvers import cvxpy_solve
|
|
8
|
-
from distopf.matrix_models.matrix_bess.lindist_loads_mp import LinDistMPL
|
|
9
2
|
from distopf.matrix_models.matrix_bess.lindist_mp import LinDistMP
|
|
10
3
|
from distopf.matrix_models.matrix_bess.objectives import cp_obj_cost_min
|
|
11
|
-
|
|
4
|
+
|
|
5
|
+
from distopf.distributed.spatial.enapp import solve_enapp
|
|
12
6
|
from distopf.api import create_case
|
|
13
7
|
from distopf import CASES_DIR
|
|
14
|
-
import plotly.express as px
|
|
15
8
|
import cvxpy as cp
|
|
16
9
|
|
|
17
10
|
|
|
@@ -30,7 +23,7 @@ def main():
|
|
|
30
23
|
m = LinDistMP(case=case)
|
|
31
24
|
m.build()
|
|
32
25
|
# plot_network(m).show()
|
|
33
|
-
|
|
26
|
+
area_info = {
|
|
34
27
|
"area1": {
|
|
35
28
|
"up_areas": [],
|
|
36
29
|
"down_areas": ["area2", "area3"],
|
|
@@ -51,41 +44,36 @@ def main():
|
|
|
51
44
|
},
|
|
52
45
|
}
|
|
53
46
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
m,
|
|
57
|
-
cp_obj_cost_min,
|
|
47
|
+
result_c = case.run_opf(
|
|
48
|
+
objective=cp_obj_cost_min,
|
|
58
49
|
solver=cp.CLARABEL,
|
|
59
50
|
demand_charge=demand_charge,
|
|
60
51
|
cost_curve=case.schedules.price.to_numpy(),
|
|
52
|
+
formulation="lindist_mp",
|
|
61
53
|
)
|
|
62
|
-
print(result_c.
|
|
54
|
+
print(result_c.objective_value, " in ", result_c.solve_time)
|
|
63
55
|
result_enapp = solve_enapp(
|
|
64
|
-
|
|
65
|
-
|
|
56
|
+
case,
|
|
57
|
+
area_info,
|
|
66
58
|
tol=1e-6,
|
|
67
59
|
solver=cp.CLARABEL,
|
|
68
60
|
objective=cp_obj_cost_min,
|
|
69
61
|
demand_charge=demand_charge,
|
|
70
62
|
cost_curve=case.schedules.price.to_numpy(),
|
|
63
|
+
formulation="lindist_mp",
|
|
71
64
|
)
|
|
72
|
-
print(result_enapp.
|
|
73
|
-
|
|
74
|
-
def at_time(df: pd.DataFrame, t):
|
|
75
|
-
names = [name for name in df.columns if name != "t"]
|
|
76
|
-
_df = deepcopy(df.loc[df.t == t, names])
|
|
77
|
-
return _df
|
|
65
|
+
print(result_enapp.objective_value)
|
|
78
66
|
|
|
79
|
-
v_d =
|
|
80
|
-
v_c =
|
|
81
|
-
print(
|
|
82
|
-
print(
|
|
67
|
+
v_d = result_enapp.voltages
|
|
68
|
+
v_c = result_c.voltages
|
|
69
|
+
print(result_enapp.q_gens)
|
|
70
|
+
print(result_c.q_gens)
|
|
83
71
|
|
|
84
72
|
opf.compare_voltages(v_c, v_d, t=12).show(renderer="browser")
|
|
85
73
|
opf.compare_voltages(v_c, v_d, t=13).show(renderer="browser")
|
|
86
74
|
# np.savetxt("copf33x.csv", result_c.x)
|
|
87
75
|
# np.savetxt("dopf33x.csv", result_enapp.x)
|
|
88
|
-
px.scatter(result_c.x - result_enapp.x).show(renderer="browser")
|
|
76
|
+
# px.scatter(result_c.x - result_enapp.x).show(renderer="browser")
|
|
89
77
|
print()
|
|
90
78
|
|
|
91
79
|
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
import distopf as opf
|
|
3
|
+
from distopf.pyomo_models.objectives import (
|
|
4
|
+
loss_objective_rule,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
from distopf.distributed.spatial.enapp import Case, solve_enapp, PowerFlowResult
|
|
8
|
+
|
|
9
|
+
OUTPUT_DIR = Path("scratch/enapp_123_debug")
|
|
10
|
+
PHASES = ("a", "b", "c")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def main() -> None:
|
|
14
|
+
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
|
15
|
+
|
|
16
|
+
case = opf.create_case(
|
|
17
|
+
opf.CASES_DIR / "csv" / "ieee123_30der_bat",
|
|
18
|
+
n_steps=24,
|
|
19
|
+
start_step=0,
|
|
20
|
+
ignore_bat=True,
|
|
21
|
+
# ignore_gen=True,
|
|
22
|
+
# ignore_schedule=True,
|
|
23
|
+
)
|
|
24
|
+
demand_charge = 0 # $/p.u. power
|
|
25
|
+
# case.bus_data.v_max = 2
|
|
26
|
+
# case.bus_data.v_min = 0
|
|
27
|
+
case.gen_data.control_variable = "Q"
|
|
28
|
+
case.bat_data.control_variable = "P"
|
|
29
|
+
# case.reg_data.loc[case.reg_data.tb == 127, ["tap_a", "tap_b", "tap_c"]] = [0.0, 0.0, 0.0]
|
|
30
|
+
# case.reg_data.loc[case.reg_data.tb == 127, ["ratio_a", "ratio_b", "ratio_c"]] = [1.0, 1.0, 1.0]
|
|
31
|
+
|
|
32
|
+
area_info = {
|
|
33
|
+
"area1": {
|
|
34
|
+
"up_areas": [],
|
|
35
|
+
"down_areas": ["area2", "area3"],
|
|
36
|
+
"up_buses": ["150"],
|
|
37
|
+
"down_buses": ["152", "135"],
|
|
38
|
+
},
|
|
39
|
+
"area2": {
|
|
40
|
+
"up_areas": ["area1"],
|
|
41
|
+
"down_areas": ["area4"],
|
|
42
|
+
"up_buses": ["152"],
|
|
43
|
+
"down_buses": ["160"],
|
|
44
|
+
},
|
|
45
|
+
"area3": {
|
|
46
|
+
"up_areas": ["area1"],
|
|
47
|
+
"down_areas": [],
|
|
48
|
+
"up_buses": ["135"],
|
|
49
|
+
"down_buses": [],
|
|
50
|
+
},
|
|
51
|
+
"area4": {
|
|
52
|
+
"up_areas": ["area2"],
|
|
53
|
+
"down_areas": [],
|
|
54
|
+
"up_buses": ["160"],
|
|
55
|
+
"down_buses": [],
|
|
56
|
+
},
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
result_c = case.run_opf(
|
|
60
|
+
objective=loss_objective_rule,
|
|
61
|
+
# demand_charge=demand_charge,
|
|
62
|
+
# cost_curve=case.schedules.price.to_numpy(),
|
|
63
|
+
formulation="lindist",
|
|
64
|
+
wrapper="pyomo",
|
|
65
|
+
solver="ipopt",
|
|
66
|
+
)
|
|
67
|
+
print(result_c.objective_value, " in ", result_c.solve_time)
|
|
68
|
+
# result_c.plot_network().show(renderer="browser")
|
|
69
|
+
|
|
70
|
+
def iteration_callback(
|
|
71
|
+
it, cases: dict[str, Case], all_results: dict[str, PowerFlowResult], boundaries
|
|
72
|
+
) -> None:
|
|
73
|
+
print("ENAPP iteration ", it)
|
|
74
|
+
# for area_name, boundary_vars in boundaries.items():
|
|
75
|
+
# print(area_name)
|
|
76
|
+
# print(f"objective value: {all_results[area_name].objective_value}")
|
|
77
|
+
# print(f"{area_name} s_up")
|
|
78
|
+
# print(boundary_vars.s_up)
|
|
79
|
+
# print(f"{area_name} v_down")
|
|
80
|
+
# print(boundary_vars.v_down)
|
|
81
|
+
# all_results[area_name].plot_network().show(renderer="browser")
|
|
82
|
+
# print()
|
|
83
|
+
|
|
84
|
+
result_enapp = solve_enapp(
|
|
85
|
+
case,
|
|
86
|
+
area_info,
|
|
87
|
+
tol=1e-6,
|
|
88
|
+
objective=loss_objective_rule,
|
|
89
|
+
# objective="min_loss",
|
|
90
|
+
wrapper="pyomo",
|
|
91
|
+
formulation="lindist",
|
|
92
|
+
iteration_callback=iteration_callback,
|
|
93
|
+
solver="ipopt",
|
|
94
|
+
)
|
|
95
|
+
print(result_enapp.objective_value)
|
|
96
|
+
|
|
97
|
+
v_d = result_enapp.voltages
|
|
98
|
+
v_c = result_c.voltages
|
|
99
|
+
p_gens_c = result_c.p_gens
|
|
100
|
+
p_gens_enapp = result_enapp.p_gens
|
|
101
|
+
opf.compare_voltages(p_gens_c, p_gens_enapp).show(renderer="browser")
|
|
102
|
+
# print(result_enapp.q_gens)
|
|
103
|
+
# print(result_c.q_gens)
|
|
104
|
+
# print(v_c)
|
|
105
|
+
# print(v_d)
|
|
106
|
+
opf.compare_voltages(v_c, v_d).show(renderer="browser")
|
|
107
|
+
print()
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
if __name__ == "__main__":
|
|
111
|
+
main()
|