Spaces:
Paused
Paused
| # Initial LF — use DC_VALUES init, skip failed PREVIOUS_VALUES attempt | |
| ## Contexte | |
| Les logs d'`/api/config` comportaient systématiquement : | |
| ``` | |
| Warning: Load flow with PREVIOUS_VALUES failed | |
| (com.powsybl.commons.PowsyblException: Voltage magnitude is undefined | |
| for bus 'CHOLOP3_2'). Retrying with DC_VALUES... | |
| ``` | |
| Le LF initial dans `SimulationEnvironment._ensure_valid_state` utilisait | |
| les paramètres par défaut (`voltage_init_mode=PREVIOUS_VALUES`), échouait | |
| immédiatement parce qu'aucun état précédent n'existe sur un Network | |
| fraîchement chargé, puis était relancé en interne avec `DC_VALUES`. | |
| ## Correction upstream (`expert_op4grid_recommender == 0.2.0.post7`, commit `a377a968`) | |
| Le paramètre `voltage_init_mode` est maintenant exposé sur | |
| `NetworkManager.run_load_flow()`. `SimulationEnvironment._ensure_valid_state` | |
| passe explicitement `lf.VoltageInitMode.DC_VALUES` : | |
| ```python | |
| def _ensure_valid_state(self): | |
| result = self.network_manager.run_load_flow( | |
| voltage_init_mode=lf.VoltageInitMode.DC_VALUES, | |
| ) | |
| ``` | |
| **Point critique** : ce changement ne s'applique **qu'au LF initial** | |
| (construction de `SimulationEnvironment` + `reset()`). Tous les autres | |
| appels à `run_load_flow` continuent d'utiliser `PREVIOUS_VALUES` par | |
| défaut — qui est le bon choix après une mutation (warm-start depuis | |
| le solution précédente). | |
| ## Mesure sur grille France 118 MB | |
| Benchmark direct (3 reps, process frais) : | |
| | Version | LF initial median | | |
| |---|---| | |
| | Current (PREVIOUS → fail → DC fallback) | 660 ms | | |
| | Direct DC_VALUES | **588 ms** | | |
| **Gain ~70 ms**. Plus modeste que les ~1 s estimés à l'origine — le | |
| `PREVIOUS_VALUES` throw est rapide (pypowsybl détecte l'absence de | |
| voltage et lève immédiatement). Mais : | |
| 1. **Logs propres** : plus de warning bogus sur le chargement. | |
| 2. **Sémantique correcte** : on déclare explicitement l'état initial. | |
| 3. **Marge** : sur d'autres grilles où le throw serait plus lent, le | |
| gain pourrait être plus important. | |
| ## Tests | |
| 24 tests upstream affectés (environment_detection, environment_pypowsybl, | |
| conversion_actions_helpers_vectorized) passent. L'output numérique du | |
| LF est le même (même convergence, mêmes flux, même status `CONVERGED`). | |
| ## Dépendance | |
| Co-Study4Grid requiert `expert_op4grid_recommender >= 0.2.0.post7`. | |
| Aucune modification côté Co-Study4Grid — le gain s'active au bump | |
| upstream. | |