# Entropyk Demo Ce dossier contient des exemples démontrant les fonctionnalités actuelles de la bibliothèque Entropyk. ## Exemples disponibles ### 1. Chiller System (Recommandé) ```bash 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) ```bash 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 ```bash 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 ```rust 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 ```