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:
ThermalCouplingstructcompute_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