1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//! Heat exchanger analysis toolkit.
//!
//! This module provides general-purpose utilities for heat exchanger analysis,
//! including effectiveness-NTU relationships for various flow arrangements.
//!
//! # Overview
//!
//! Heat exchangers transfer thermal energy between two fluid streams. The
//! effectiveness-NTU method relates exchanger performance to its thermal size
//! (NTU = UA / `C_min`) and the capacity ratio of the streams.
//!
//! This toolkit provides:
//!
//! - **Core types**: [`CapacitanceRate`], [`Effectiveness`], [`Ntu`], [`HeatFlow`]
//! - **Stream modeling**: [`StreamInlet`], [`Stream`]
//! - **Flow arrangements**: [`CounterFlow`], [`ParallelFlow`], [`CrossFlow`], [`ShellAndTube`]
//! - **Analysis functions**: [`functional::known_conductance_and_inlets`],
//! [`functional::known_conditions_and_inlets`]
//!
//! # Example
//!
//! ```
//! use twine_models::support::constraint::ConstraintResult;
//! use twine_models::support::hx::{
//! arrangement::CounterFlow,
//! functional::known_conductance_and_inlets,
//! CapacitanceRate, StreamInlet,
//! };
//! use uom::si::{
//! f64::{ThermalConductance, ThermodynamicTemperature},
//! thermal_conductance::kilowatt_per_kelvin,
//! thermodynamic_temperature::degree_celsius,
//! };
//!
//! fn main() -> ConstraintResult<()> {
//! let result = known_conductance_and_inlets(
//! &CounterFlow,
//! ThermalConductance::new::<kilowatt_per_kelvin>(3.0),
//! [
//! StreamInlet::new(
//! CapacitanceRate::new::<kilowatt_per_kelvin>(3.0)?,
//! ThermodynamicTemperature::new::<degree_celsius>(50.0),
//! ),
//! StreamInlet::new(
//! CapacitanceRate::new::<kilowatt_per_kelvin>(6.0)?,
//! ThermodynamicTemperature::new::<degree_celsius>(80.0),
//! ),
//! ],
//! )?;
//!
//! // Access effectiveness and resolved stream states
//! let _effectiveness = result.effectiveness;
//! let [cold_stream, hot_stream] = result.streams;
//! let _cold_outlet = cold_stream.outlet_temperature;
//! let _hot_outlet = hot_stream.outlet_temperature;
//!
//! Ok(())
//! }
//! ```
pub use ;
pub use CapacitanceRate;
pub use CapacityRatio;
pub use ;
pub use HeatFlow;
pub use ;