warning: unused imports: `BphxCorrelation`, `CorrelationParams`, `FlowRegime`, and `ValidityStatus`
 --> crates/components/src/heat_exchanger/moving_boundary_hx.rs:8:5
  |
8 |     BphxCorrelation, CorrelationParams, CorrelationSelector, FlowRegime, ValidityStatus,
  |     ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^  ^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `BphxType`
  --> crates/components/src/heat_exchanger/moving_boundary_hx.rs:10:42
   |
10 | use super::bphx_geometry::{BphxGeometry, BphxType};
   |                                          ^^^^^^^^

warning: unused import: `ExchangerType`
  --> crates/components/src/heat_exchanger/moving_boundary_hx.rs:11:35
   |
11 | use super::eps_ntu::{EpsNtuModel, ExchangerType};
   |                                   ^^^^^^^^^^^^^

warning: unused import: `HxSideConditions`
  --> crates/components/src/heat_exchanger/moving_boundary_hx.rs:12:39
   |
12 | use super::exchanger::{HeatExchanger, HxSideConditions};
   |                                       ^^^^^^^^^^^^^^^^

warning: unused import: `Calib`
  --> crates/components/src/heat_exchanger/moving_boundary_hx.rs:17:21
   |
17 | use entropyk_core::{Calib, Enthalpy, MassFlow, Power};
   |                     ^^^^^

warning: unused import: `std::fmt`
  --> crates/components/src/port.rs:45:5
   |
45 | use std::fmt;
   |     ^^^^^^^^

warning: use of deprecated type alias `flow_boundary::CompressibleSink`: Use RefrigerantSink instead. See migration guide in docs/migration/boundary-conditions.md
  --> crates/components/src/lib.rs:89:5
   |
89 |     CompressibleSink, CompressibleSource, FlowSink, FlowSource, IncompressibleSink,
   |     ^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(deprecated)]` on by default

warning: use of deprecated type alias `flow_boundary::CompressibleSource`: Use RefrigerantSource instead. See migration guide in docs/migration/boundary-conditions.md
  --> crates/components/src/lib.rs:89:23
   |
89 |     CompressibleSink, CompressibleSource, FlowSink, FlowSource, IncompressibleSink,
   |                       ^^^^^^^^^^^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSink`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
  --> crates/components/src/lib.rs:89:43
   |
89 |     CompressibleSink, CompressibleSource, FlowSink, FlowSource, IncompressibleSink,
   |                                           ^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSource`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
  --> crates/components/src/lib.rs:89:53
   |
89 |     CompressibleSink, CompressibleSource, FlowSink, FlowSource, IncompressibleSink,
   |                                                     ^^^^^^^^^^

warning: use of deprecated type alias `flow_boundary::IncompressibleSink`: Use BrineSink instead. See migration guide in docs/migration/boundary-conditions.md
  --> crates/components/src/lib.rs:89:65
   |
89 |     CompressibleSink, CompressibleSource, FlowSink, FlowSource, IncompressibleSink,
   |                                                                 ^^^^^^^^^^^^^^^^^^

warning: use of deprecated type alias `flow_boundary::IncompressibleSource`: Use BrineSource instead. See migration guide in docs/migration/boundary-conditions.md
  --> crates/components/src/lib.rs:90:5
   |
90 |     IncompressibleSource,
   |     ^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSource`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:103:6
    |
103 | impl FlowSource {
    |      ^^^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSource`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:225:20
    |
225 | impl Component for FlowSource {
    |                    ^^^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSink`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:355:6
    |
355 | impl FlowSink {
    |      ^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSink`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:479:20
    |
479 | impl Component for FlowSink {
    |                    ^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSource`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:586:33
    |
586 | pub type IncompressibleSource = FlowSource;
    |                                 ^^^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSource`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:597:31
    |
597 | pub type CompressibleSource = FlowSource;
    |                               ^^^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSink`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:608:31
    |
608 | pub type IncompressibleSink = FlowSink;
    |                               ^^^^^^^^

warning: use of deprecated struct `flow_boundary::FlowSink`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:619:29
    |
619 | pub type CompressibleSink = FlowSink;
    |                             ^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::kind`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:177:13
    |
177 |             kind,
    |             ^^^^

warning: use of deprecated field `flow_boundary::FlowSource::fluid_id`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:178:13
    |
178 |             fluid_id: fluid,
    |             ^^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::p_set_pa`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:179:13
    |
179 |             p_set_pa,
    |             ^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::h_set_jkg`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:180:13
    |
180 |             h_set_jkg,
    |             ^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::outlet`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:181:13
    |
181 |             outlet,
    |             ^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::kind`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:189:9
    |
189 |         self.kind
    |         ^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::fluid_id`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:193:10
    |
193 |         &self.fluid_id
    |          ^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::p_set_pa`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:197:9
    |
197 |         self.p_set_pa
    |         ^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::h_set_jkg`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:201:9
    |
201 |         self.h_set_jkg
    |         ^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::outlet`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:205:10
    |
205 |         &self.outlet
    |          ^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::p_set_pa`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:215:9
    |
215 |         self.p_set_pa = p_pa;
    |         ^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::h_set_jkg`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:221:9
    |
221 |         self.h_set_jkg = h_jkg;
    |         ^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::outlet`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:242:24
    |
242 |         residuals[0] = self.outlet.pressure().to_pascals() - self.p_set_pa;
    |                        ^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::p_set_pa`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:242:62
    |
242 |         residuals[0] = self.outlet.pressure().to_pascals() - self.p_set_pa;
    |                                                              ^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::outlet`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:244:24
    |
244 |         residuals[1] = self.outlet.enthalpy().to_joules_per_kg() - self.h_set_jkg;
    |                        ^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::h_set_jkg`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:244:68
    |
244 |         residuals[1] = self.outlet.enthalpy().to_joules_per_kg() - self.h_set_jkg;
    |                                                                    ^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSource::outlet`: Use RefrigerantSource, BrineSource, or AirSource instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:285:17
    |
285 |         Ok(vec![self.outlet.enthalpy()])
    |                 ^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::kind`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:426:13
    |
426 |             kind,
    |             ^^^^

warning: use of deprecated field `flow_boundary::FlowSink::fluid_id`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:427:13
    |
427 |             fluid_id: fluid,
    |             ^^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::p_back_pa`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:428:13
    |
428 |             p_back_pa,
    |             ^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::h_back_jkg`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:429:13
    |
429 |             h_back_jkg,
    |             ^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::inlet`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:430:13
    |
430 |             inlet,
    |             ^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::kind`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:438:9
    |
438 |         self.kind
    |         ^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::fluid_id`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:442:10
    |
442 |         &self.fluid_id
    |          ^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::p_back_pa`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:446:9
    |
446 |         self.p_back_pa
    |         ^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::h_back_jkg`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:450:9
    |
450 |         self.h_back_jkg
    |         ^^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::inlet`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:454:10
    |
454 |         &self.inlet
    |          ^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::p_back_pa`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:464:9
    |
464 |         self.p_back_pa = p_pa;
    |         ^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::h_back_jkg`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:470:9
    |
470 |         self.h_back_jkg = Some(h_jkg);
    |         ^^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::h_back_jkg`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:475:9
    |
475 |         self.h_back_jkg = None;
    |         ^^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::h_back_jkg`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:481:12
    |
481 |         if self.h_back_jkg.is_some() {
    |            ^^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::inlet`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:501:24
    |
501 |         residuals[0] = self.inlet.pressure().to_pascals() - self.p_back_pa;
    |                        ^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::p_back_pa`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:501:61
    |
501 |         residuals[0] = self.inlet.pressure().to_pascals() - self.p_back_pa;
    |                                                             ^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::h_back_jkg`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:503:31
    |
503 |         if let Some(h_back) = self.h_back_jkg {
    |                               ^^^^^^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::inlet`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:504:28
    |
504 |             residuals[1] = self.inlet.enthalpy().to_joules_per_kg() - h_back;
    |                            ^^^^^^^^^^

warning: use of deprecated field `flow_boundary::FlowSink::inlet`: Use RefrigerantSink, BrineSink, or AirSink instead. See migration guide in docs/migration/boundary-conditions.md
   --> crates/components/src/flow_boundary.rs:547:17
    |
547 |         Ok(vec![self.inlet.enthalpy()])
    |                 ^^^^^^^^^^

warning: unused variable: `h_sat_l`
   --> crates/components/src/heat_exchanger/bphx_condenser.rs:260:13
    |
260 |         let h_sat_l = backend
    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_h_sat_l`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `state`
   --> crates/components/src/heat_exchanger/exchanger.rs:699:9
    |
699 |         state: &StateSlice,
    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`

warning: unused variable: `h_in`
   --> crates/components/src/python_components.rs:291:13
    |
291 |         let h_in = Enthalpy::from_joules_per_kg(state[in_idx.1]);
    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_h_in`

warning: unused variable: `h_out`
   --> crates/components/src/python_components.rs:292:13
    |
292 |         let h_out = Enthalpy::from_joules_per_kg(state[out_idx.1]);
    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_h_out`

warning: associated constant `MIN_UA` is never used
  --> crates/components/src/heat_exchanger/bphx_exchanger.rs:78:11
   |
76 | impl BphxExchanger {
   | ------------------ associated constant in this implementation
77 |     /// Minimum valid UA value (W/K)
78 |     const MIN_UA: f64 = 0.0;
   |           ^^^^^^
   |
   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: fields `correlation_selector`, `last_htc`, and `last_validity_warning` are never read
  --> crates/components/src/heat_exchanger/moving_boundary_hx.rs:67:5
   |
64 | pub struct MovingBoundaryHX {
   |            ---------------- fields in this struct
...
67 |     correlation_selector: CorrelationSelector,
   |     ^^^^^^^^^^^^^^^^^^^^
...
73 |     last_htc: Cell<f64>,
   |     ^^^^^^^^
74 |     last_validity_warning: Cell<bool>,
   |     ^^^^^^^^^^^^^^^^^^^^^

warning: method `friction_factor` is never used
   --> crates/components/src/python_components.rs:530:8
    |
519 | impl PyPipeReal {
    | --------------- method in this implementation
...
530 |     fn friction_factor(&self, re: f64) -> f64 {
    |        ^^^^^^^^^^^^^^^

warning: missing documentation for a variant
   --> crates/components/src/external_model.rs:134:5
    |
134 |     InvalidInput(String),
    |     ^^^^^^^^^^^^
    |
note: the lint level is defined here
   --> crates/components/src/lib.rs:55:9
    |
 55 | #![warn(missing_docs)]
    |         ^^^^^^^^^^^^

warning: missing documentation for a variant
   --> crates/components/src/external_model.rs:136:5
    |
136 |     InvalidOutput(String),
    |     ^^^^^^^^^^^^^

warning: missing documentation for an associated constant
  --> crates/components/src/heat_exchanger/bphx_geometry.rs:90:5
   |
90 |     pub const MIN_DIMENSION: f64 = 1e-6;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated constant
  --> crates/components/src/heat_exchanger/bphx_geometry.rs:91:5
   |
91 |     pub const MIN_CHEVRON_ANGLE: f64 = 10.0;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated constant
  --> crates/components/src/heat_exchanger/bphx_geometry.rs:92:5
   |
92 |     pub const MAX_CHEVRON_ANGLE: f64 = 80.0;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a variant
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:362:5
    |
362 |     InvalidPlates { n_plates: u32, min: u32 },
    |     ^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:362:21
    |
362 |     InvalidPlates { n_plates: u32, min: u32 },
    |                     ^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:362:36
    |
362 |     InvalidPlates { n_plates: u32, min: u32 },
    |                                    ^^^^^^^^

warning: missing documentation for a variant
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:365:5
    |
365 |     InvalidDimension {
    |     ^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:366:9
    |
366 |         name: &'static str,
    |         ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:367:9
    |
367 |         value: f64,
    |         ^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:368:9
    |
368 |         min: f64,
    |         ^^^^^^^^

warning: missing documentation for a variant
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:372:5
    |
372 |     InvalidChevronAngle { angle: f64, min: f64, max: f64 },
    |     ^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:372:27
    |
372 |     InvalidChevronAngle { angle: f64, min: f64, max: f64 },
    |                           ^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:372:39
    |
372 |     InvalidChevronAngle { angle: f64, min: f64, max: f64 },
    |                                       ^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:372:49
    |
372 |     InvalidChevronAngle { angle: f64, min: f64, max: f64 },
    |                                                 ^^^^^^^^

warning: missing documentation for a variant
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:375:5
    |
375 |     MissingParameter { name: &'static str },
    |     ^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/heat_exchanger/bphx_geometry.rs:375:24
    |
375 |     MissingParameter { name: &'static str },
    |                        ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct
  --> crates/components/src/heat_exchanger/flooded_condenser.rs:37:1
   |
37 | pub struct FloodedCondenser {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
  --> crates/components/src/heat_exchanger/flooded_condenser.rs:67:5
   |
67 |     pub fn new(ua: f64) -> Self {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
  --> crates/components/src/heat_exchanger/flooded_condenser.rs:84:5
   |
84 |     pub fn try_new(ua: f64) -> Result<Self, ComponentError> {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:106:5
    |
106 |     pub fn with_refrigerant(mut self, fluid: impl Into<String>) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:111:5
    |
111 |     pub fn with_secondary_fluid(mut self, fluid: impl Into<String>) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:116:5
    |
116 |     pub fn with_fluid_backend(mut self, backend: Arc<dyn FluidBackend>) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:121:5
    |
121 |     pub fn with_target_subcooling(mut self, subcooling_k: f64) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:126:5
    |
126 |     pub fn with_subcooling_control(mut self, enabled: bool) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:131:5
    |
131 |     pub fn name(&self) -> &str {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:135:5
    |
135 |     pub fn ua(&self) -> f64 {
    |     ^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:139:5
    |
139 |     pub fn calib(&self) -> &Calib {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:143:5
    |
143 |     pub fn set_calib(&mut self, calib: Calib) {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:147:5
    |
147 |     pub fn target_subcooling(&self) -> f64 {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:151:5
    |
151 |     pub fn set_target_subcooling(&mut self, subcooling_k: f64) {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:155:5
    |
155 |     pub fn heat_transfer(&self) -> f64 {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:159:5
    |
159 |     pub fn subcooling(&self) -> Option<f64> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:163:5
    |
163 |     pub fn set_outlet_indices(&mut self, p_idx: usize, h_idx: usize) {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:168:5
    |
168 |     pub fn set_secondary_conditions(&mut self, conditions: HxSideConditions) {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:172:5
    |
172 |     pub fn set_refrigerant_conditions(&mut self, conditions: HxSideConditions) {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:206:5
    |
206 |     pub fn validate_outlet_subcooled(&self, h_out: f64, p_pa: f64) -> Result<f64, ComponentError> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:24:5
   |
24 |     pub fluid: FluidId,
   |     ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:25:5
   |
25 |     pub speed_rpm: f64,
   |     ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:26:5
   |
26 |     pub displacement_m3: f64,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:27:5
   |
27 |     pub efficiency: f64,
   |     ^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:28:5
   |
28 |     pub m1: f64,
   |     ^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:29:5
   |
29 |     pub m2: f64,
   |     ^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:30:5
   |
30 |     pub m3: f64,
   |     ^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:31:5
   |
31 |     pub m4: f64,
   |     ^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:32:5
   |
32 |     pub m5: f64,
   |     ^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:33:5
   |
33 |     pub m6: f64,
   |     ^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:34:5
   |
34 |     pub m7: f64,
   |     ^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:35:5
   |
35 |     pub m8: f64,
   |     ^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:36:5
   |
36 |     pub m9: f64,
   |     ^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:37:5
   |
37 |     pub m10: f64,
   |     ^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:38:5
   |
38 |     pub edge_indices: Vec<(usize, usize)>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:39:5
   |
39 |     pub operational_state: OperationalState,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> crates/components/src/python_components.rs:40:5
   |
40 |     pub circuit_id: CircuitId,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
  --> crates/components/src/python_components.rs:44:5
   |
44 |     pub fn new(fluid: &str, speed_rpm: f64, displacement_m3: f64, efficiency: f64) -> Self {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a method
  --> crates/components/src/python_components.rs:66:5
   |
66 | /     pub fn with_coefficients(
67 | |         mut self,
68 | |         m1: f64,
69 | |         m2: f64,
...  |
77 | |         m10: f64,
78 | |     ) -> Self {
   | |_____________^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:247:5
    |
247 |     pub fluid: FluidId,
    |     ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:248:5
    |
248 |     pub opening: f64,
    |     ^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:249:5
    |
249 |     pub edge_indices: Vec<(usize, usize)>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:250:5
    |
250 |     pub circuit_id: CircuitId,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
   --> crates/components/src/python_components.rs:254:5
    |
254 |     pub fn new(fluid: &str, opening: f64) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:344:5
    |
344 |     pub name: String,
    |     ^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:345:5
    |
345 |     pub ua: f64,
    |     ^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:346:5
    |
346 |     pub fluid: FluidId,
    |     ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:347:5
    |
347 |     pub water_inlet_temp: Temperature,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:348:5
    |
348 |     pub water_flow_rate: f64,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:349:5
    |
349 |     pub is_evaporator: bool,
    |     ^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:350:5
    |
350 |     pub edge_indices: Vec<(usize, usize)>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:351:5
    |
351 |     pub calib: Calib,
    |     ^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:352:5
    |
352 |     pub calib_indices: CalibIndices,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
   --> crates/components/src/python_components.rs:356:5
    |
356 |     pub fn evaporator(ua: f64, fluid: &str, water_temp_c: f64, water_flow: f64) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
   --> crates/components/src/python_components.rs:370:5
    |
370 |     pub fn condenser(ua: f64, fluid: &str, water_temp_c: f64, water_flow: f64) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:512:5
    |
512 |     pub length: f64,
    |     ^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:513:5
    |
513 |     pub diameter: f64,
    |     ^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:514:5
    |
514 |     pub roughness: f64,
    |     ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:515:5
    |
515 |     pub fluid: FluidId,
    |     ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:516:5
    |
516 |     pub edge_indices: Vec<(usize, usize)>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
   --> crates/components/src/python_components.rs:520:5
    |
520 |     pub fn new(length: f64, diameter: f64, fluid: &str) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:616:5
    |
616 |     pub pressure: Pressure,
    |     ^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:617:5
    |
617 |     pub temperature: Temperature,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:618:5
    |
618 |     pub fluid: FluidId,
    |     ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:619:5
    |
619 |     pub edge_indices: Vec<(usize, usize)>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
   --> crates/components/src/python_components.rs:623:5
    |
623 |     pub fn new(fluid: &str, pressure_pa: f64, temperature_k: f64) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:702:5
    |
702 |     pub edge_indices: Vec<(usize, usize)>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct
   --> crates/components/src/python_components.rs:744:1
    |
744 | pub struct PyFlowSplitterReal {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:745:5
    |
745 |     pub n_outlets: usize,
    |     ^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:746:5
    |
746 |     pub edge_indices: Vec<(usize, usize)>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
   --> crates/components/src/python_components.rs:750:5
    |
750 |     pub fn new(n_outlets: usize) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct
   --> crates/components/src/python_components.rs:827:1
    |
827 | pub struct PyFlowMergerReal {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:828:5
    |
828 |     pub n_inlets: usize,
    |     ^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> crates/components/src/python_components.rs:829:5
    |
829 |     pub edge_indices: Vec<(usize, usize)>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for an associated function
   --> crates/components/src/python_components.rs:833:5
    |
833 |     pub fn new(n_inlets: usize) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

   Compiling entropyk-components v0.1.0 (/Users/sepehr/dev/Entropyk/crates/components)
warning: `entropyk-components` (lib) generated 156 warnings (run `cargo fix --lib -p entropyk-components` to apply 10 suggestions)
error[E0432]: unresolved import `entropyk_fluids::MockBackend`
   --> crates/components/src/heat_exchanger/moving_boundary_hx.rs:441:13
    |
441 |         use entropyk_fluids::MockBackend;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `MockBackend` in the root

warning: unused import: `Temperature`
   --> crates/components/src/heat_exchanger/bphx_evaporator.rs:799:39
    |
799 |         use entropyk_core::{Enthalpy, Temperature};
    |                                       ^^^^^^^^^^^
    |
    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `Temperature`
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:531:39
    |
531 |         use entropyk_core::{Enthalpy, Temperature};
    |                                       ^^^^^^^^^^^

warning: unused import: `Temperature`
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:597:39
    |
597 |         use entropyk_core::{Enthalpy, Temperature};
    |                                       ^^^^^^^^^^^

warning: unused imports: `BphxCorrelation`, `CorrelationParams`, `FlowRegime`, and `ValidityStatus`
 --> crates/components/src/heat_exchanger/moving_boundary_hx.rs:8:5
  |
8 |     BphxCorrelation, CorrelationParams, CorrelationSelector, FlowRegime, ValidityStatus,
  |     ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^  ^^^^^^^^^^^^^^

warning: unused import: `Quality`
   --> crates/components/src/refrigerant_boundary.rs:545:92
    |
545 |         CriticalPoint, FluidBackend, FluidError, FluidResult, FluidState, Phase, Property, Quality,
    |                                                                                            ^^^^^^^

warning: unused variable: `fluid`
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:566:17
    |
566 |                 fluid: FluidId,
    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_fluid`

warning: unused variable: `fluid`
   --> crates/components/src/heat_exchanger/flooded_condenser.rs:632:17
    |
632 |                 fluid: FluidId,
    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_fluid`

For more information about this error, try `rustc --explain E0432`.
warning: `entropyk-components` (lib test) generated 66 warnings (59 duplicates)
error: could not compile `entropyk-components` (lib test) due to 1 previous error; 66 warnings emitted
