72 lines
2.2 KiB
Rust

//! # 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,
};