//! # Entropyk Core //! //! Core types and primitives for the Entropyk thermodynamic simulation library. //! //! This crate provides the foundation types used throughout the Entropyk ecosystem, //! including type-safe physical quantities via the NewType pattern. //! //! ## Physical Types //! //! All physical quantities use the NewType pattern to provide compile-time unit safety: //! //! - [`Pressure`] - Pressure in Pascals (Pa) //! - [`Temperature`] - Temperature in Kelvin (K) //! - [`Enthalpy`] - Specific enthalpy in Joules per kilogram (J/kg) //! - [`MassFlow`] - Mass flow rate in kilograms per second (kg/s) //! //! ## Example //! //! ```rust //! use entropyk_core::{Pressure, Temperature, Enthalpy, MassFlow}; //! //! // Create values using constructors //! let pressure = Pressure::from_bar(1.0); //! let temperature = Temperature::from_celsius(25.0); //! //! // Convert to base units //! assert_eq!(pressure.to_pascals(), 100_000.0); //! assert_eq!(temperature.to_kelvin(), 298.15); //! //! // Arithmetic operations //! let p1 = Pressure::from_pascals(100_000.0); //! let p2 = Pressure::from_pascals(50_000.0); //! let p3 = p1 + p2; //! assert_eq!(p3.to_pascals(), 150_000.0); //! ``` #![deny(warnings)] #![warn(missing_docs)] pub mod calib; pub mod state; pub mod types; // Re-export all physical types for convenience pub use types::{ CircuitId, Enthalpy, Entropy, MassFlow, Power, Pressure, Temperature, ThermalConductance, MIN_MASS_FLOW_REGULARIZATION_KG_S, }; // Re-export calibration types pub use calib::{Calib, CalibIndices, CalibValidationError}; // Re-export system state pub use state::SystemState;