Entropyk Demo

Ce dossier contient des exemples démontrant les fonctionnalités actuelles de la bibliothèque Entropyk.

Exemples disponibles

1. Chiller System (Recommandé)

cargo run --bin chiller

Simulation complète d'un système de refroidissement (water chiller):

  • Condenseur à air: 35°C ambiant, approche 10K
  • Évaporateur BPHE: Eau 12°C → 7°C, 0.5 kg/s
  • Compresseur: R410A, 2900 RPM, 30cc
  • EXV: Détendeur isenthalpique

Le demo montre:

  • Calcul du point de design (Q_evap, Q_cond, COP)
  • Création des composants (CondenserCoil, Evaporator)
  • Topologie multi-circuit (réfrigérant + eau)
  • Couplage thermique entre circuits
  • Détection de dépendances circulaires

2. Thermal Coupling (Story 3.4)

cargo run --bin thermal-coupling

Démontre l'API de couplage thermique:

  • ThermalCoupling struct
  • compute_coupling_heat() avec convention de signe
  • Détection de dépendances circulaires
  • coupling_groups() (SCC)

3. State Machine

cargo run --bin compressor-test

États opérationnels des composants:

  • ON/OFF/BYPASS
  • Multiplicateurs de débit
  • CircuitId

Architecture du projet

entropyk/
├── crates/
│   ├── core/           # Types physiques (Pressure, Temperature, ThermalConductance)
│   ├── components/     # Composants (Compressor, Valve, Condenser, Evaporator, Pump)
│   ├── solver/         # Topologie système, circuits, couplages thermiques
│   └── fluids/         # Propriétés des fluides (CoolProp)
└── demo/
    └── src/
        ├── main.rs              # Test state machine
        └── bin/
            ├── chiller.rs       # Démo système complet
            └── thermal_coupling.rs  # Démo couplage thermique

Capacités actuelles

Feature Status Story
Types physiques (NewType) 1.2
Composant Trait 1.1
Ports & Connexions 1.3
Compressor AHRI 540 1.4
Heat Exchangers (LMTD, ε-NTU) 1.5
Expansion Valve 1.6
State Machine (ON/OFF/BYPASS) 1.7
Multi-circuit System 3.3
Thermal Coupling 3.4
Solver (Newton-Raphson) 🔜 4.x

Résultat du chiller demo

╔══════════════════════════════════════════════════════════════════╗
║        ENTROPYK - Water Chiller System Demo                      ║
╚══════════════════════════════════════════════════════════════════╝

  Water Side (Evaporator Load)
    T_water_in:    12.0°C
    T_water_out:   7.0°C
    ṁ_water:       0.50 kg/s (30 L/min)
    Q_evap:        10.5 kW

  Air Side (Condenser Rejection)
    T_ambient:     35.0°C
    T_cond:        45.0°C
    Q_cond:        13.5 kW

  Refrigerant Cycle (R410A)
    T_evap:        2.0°C
    T_cond:        45.0°C
    ΔT_lift:       43.0 K
    PR:            3.00

  PERFORMANCE (Design Point)
    Q_evap:       10.5 kW
    Q_cond:       13.5 kW
    W_comp:       2.99 kW
    COP:          3.5

Exemple de code

use entropyk_solver::{System, ThermalCoupling, CircuitId, compute_coupling_heat};
use entropyk_core::{Temperature, ThermalConductance};
use entropyk_components::heat_exchanger::{CondenserCoil, Evaporator};

// Créer un système multi-circuit
let mut system = System::new();

// Circuit 0: Réfrigérant
system.add_component_to_circuit(compressor, CircuitId(0)).unwrap();
system.add_component_to_circuit(CondenserCoil::new(1346.0), CircuitId(0)).unwrap();
system.add_component_to_circuit(exv, CircuitId(0)).unwrap();
system.add_component_to_circuit(Evaporator::with_superheat(1451.0, 275.15, 5.0), CircuitId(0)).unwrap();

// Circuit 1: Eau
system.add_component_to_circuit(pump, CircuitId(1)).unwrap();

// Couplage thermique (échangeur de chaleur)
let coupling = ThermalCoupling::new(
    CircuitId(1), // Circuit chaud (eau)
    CircuitId(0), // Circuit froid (réfrigérant)
    ThermalConductance::from_watts_per_kelvin(1451.0),
);
system.add_thermal_coupling(coupling).unwrap();

// Calcul du transfert de chaleur
let t_hot = Temperature::from_celsius(12.0);
let t_cold = Temperature::from_celsius(2.0);
let q = compute_coupling_heat(&coupling, t_hot, t_cold);
// Q ≈ 13.8 kW