Entropyk/_bmad-output/implementation-artifacts/11-8-correlation-selector.md

3.1 KiB

Story 11.8: CorrelationSelector

Epic: 11 - Advanced HVAC Components
Priorité: P1-HIGH
Estimation: 4h
Statut: backlog
Dépendances: Aucune


Story

En tant qu'ingénieur simulation,
Je veux sélectionner parmi plusieurs corrélations de transfert thermique,
Afin de comparer différents modèles ou utiliser le plus approprié.


Contexte

Différentes corrélations existent pour calculer le coefficient de transfert thermique (h). Le choix dépend de:

  • Type d'échangeur (tubes, plaques)
  • Phase (évaporation, condensation, monophasique)
  • Fluide
  • Conditions opératoires

Corrélations Disponibles

Évaporation

Corrélation Année Application Défaut
Longo 2004 Plaques BPHX
Kandlikar 1990 Tubes
Shah 1982 Tubes horizontal
Gungor-Winterton 1986 Tubes
Chen 1966 Tubes classique

Condensation

Corrélation Année Application Défaut
Longo 2004 Plaques BPHX
Shah 1979 Tubes Tubes
Shah 2021 Plaques récent
Ko 2021 Low-GWP plaques
Cavallini-Zecchin 1974 Tubes

Monophasique

Corrélation Année Application Défaut
Gnielinski 1976 Turbulent
Dittus-Boelter 1930 Turbulent simple
Sieder-Tate 1936 Laminaire

Architecture

// crates/components/src/correlations/mod.rs

pub trait HeatTransferCorrelation: Send + Sync {
    fn name(&self) -> &str;
    fn year(&self) -> u16;
    fn supported_types(&self) -> Vec<CorrelationType>;
    fn supported_geometries(&self) -> Vec<ExchangerGeometryType>;
    fn compute(&self, ctx: &CorrelationContext) -> Result<CorrelationResult, CorrelationError>;
    fn validity_range(&self) -> ValidityRange;
    fn reference(&self) -> &str;
}

pub struct CorrelationSelector {
    defaults: HashMap<CorrelationType, Box<dyn HeatTransferCorrelation>>,
    selected: Option<Box<dyn HeatTransferCorrelation>>,
}

Fichiers à Créer/Modifier

Fichier Action
crates/components/src/correlations/mod.rs Créer
crates/components/src/correlations/longo.rs Créer
crates/components/src/correlations/shah.rs Créer
crates/components/src/correlations/kandlikar.rs Créer
crates/components/src/correlations/gnielinski.rs Créer

Critères d'Acceptation

  • HeatTransferCorrelation trait défini
  • Longo (2004) implémenté (évap + cond)
  • Shah (1979) implémenté (cond)
  • Kandlikar (1990) implémenté (évap)
  • Gnielinski (1976) implémenté (monophasique)
  • CorrelationSelector avec defaults par type
  • Chaque corrélation documente sa plage de validité
  • CorrelationResult inclut h, Re, Pr, Nu, validity

Références