//! # Entropyk Fluids //! //! Fluid properties backend for the Entropyk thermodynamic simulation library. //! //! This crate provides the abstraction layer for thermodynamic property calculations, //! allowing the solver to work with different backends (CoolProp, tabular interpolation, //! test mocks) through a unified trait-based interface. //! //! ## Key Components //! //! - [`FluidBackend`] - The core trait that all backends implement //! - [`TestBackend`] - A mock backend for unit testing //! - [`CoolPropBackend`] - A backend using the CoolProp C++ library //! - [`FluidError`] - Error types for fluid operations //! - [`types`] - Core types like `FluidId`, `Property`, `FluidState`, `CriticalPoint` //! - [`mixture`] - Mixture types for multi-component refrigerants //! //! ## Example //! //! ```rust //! use entropyk_fluids::{FluidBackend, FluidId, Property, FluidState, TestBackend}; //! use entropyk_core::{Pressure, Temperature}; //! //! // Create a test backend for unit testing //! let backend = TestBackend::new(); //! //! // Query properties //! let state = FluidState::from_pt( //! Pressure::from_bar(1.0), //! Temperature::from_celsius(25.0), //! ); //! //! let density = backend.property( //! FluidId::new("R134a"), //! Property::Density, //! state, //! ).unwrap(); //! //! // In production use tracing::info! for observability (never println!) //! ``` #![deny(warnings)] #![warn(missing_docs)] pub mod backend; pub mod cache; pub mod cached_backend; pub mod coolprop; pub mod damped_backend; pub mod damping; pub mod errors; pub mod incompressible; pub mod mixture; pub mod tabular; pub mod tabular_backend; pub mod test_backend; pub mod types; pub use backend::FluidBackend; pub use cached_backend::CachedBackend; pub use coolprop::CoolPropBackend; pub use damped_backend::DampedBackend; pub use damping::{DampingParams, DampingState}; pub use errors::{FluidError, FluidResult}; pub use incompressible::{IncompFluid, IncompressibleBackend, ValidRange}; pub use mixture::{Mixture, MixtureError}; pub use tabular_backend::TabularBackend; pub use test_backend::TestBackend; pub use types::{ CriticalPoint, Entropy, FluidId, FluidState, Phase, Property, Quality, ThermoState, };