[BUG] SOC→NC warm-start condition is inverted, and NC results are adopted without checking the termination status
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
Start with eDisGo_OPF.jl/Main.jl and trace the soc_tight, warm_start, and method="nc" paths in pm_optimize. Check how the solver termination and primal status are represented before update_data! adopts a result. Done means non-tight SOC results trigger NC rescue, and unsuccessful NC runs in either path fall back to the SOC solution with a loud warning.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Intended behaviour (two-stage solve)
Stage 1: SOC relaxation (Gurobi). If the SOC solution is tight, it is already AC-feasible —
done, no NC solve needed. If it is not tight, the relaxed solution is physically infeasible
and stage 2 should rescue feasibility: solve the exact non-convex model (Ipopt) warm-started
from the SOC solution. (This is also what the SOCBFPowerModelEdisgo docstring describes.)
Actual behaviour (eDisGo_OPF.jl/Main.jl)
- Condition inverted:
if soc_tight & warm_start— the NC polish runs only in the tight
case (where it is unnecessary), and is skipped exactly when the SOC solution is not tight.
A non-tight relaxed solution is returned to eDisGo as the result (only a violations JSON is
written toopf_solutions/). - No termination-status check on the NC result:
result_nc_wsis adopted unconditionally
viaupdate_data!. If Ipopt endsLOCALLY_INFEASIBLE/ITERATION_LIMIT, a worse-than-SOC
solution is silently returned. The same unconditional adoption exists in themethod="nc"
cold-start path. - Rescue gated behind an opt-in flag:
warm_startdefaults toFalseinpm_optimize,
so out of the box a non-tight solution is never rescued.
Fix
- Run the NC rescue when
!soc_tight(regardless of thewarm_startflag); skip the NC solve
when the SOC solution is tight. - Check the NC termination/primal status: on success adopt the NC solution, otherwise fall back
to the SOC solution and log a loud warning. Apply the same status check tomethod="nc".
- Lenguaje dominante
- Python
- Estrellas
- 48
- Forks
- 22
- Merge medio
- 1 d 7 h
- PR fusionados (30 d)
- 38
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de openego/eDisGo
-
area: database bug priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug correctness priority: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
Los mantenedores suelen responder en 1 día
-
[BUG] Spatial complexity reduction merges MV and LV buses when an LV grid has the ID of the MV gridAbiertobug correctness priority: high
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
bug correctness priority: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
OPF docs: explain where the curtailment request comes from and how versions 3 and 4 handle itAbiertoarea: opf documentation priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
Todos los issues de openego/eDisGo
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
FAIRmat-NFDI/pynxtools#861 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
NVIDIA/nsight-python#88 ·
Los mantenedores suelen responder en 1 día
-
Criteria can pass when the deliverable is missingPosiblemente ocupada @clementtisseau la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
harveyai/harvey-labs#217 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
priority/medium roadmap/v1.1.1 stakeholder/rapr type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
databrickslabs/ontos#1420 ·
Los mantenedores suelen responder en 3 días