55 lines
1.6 KiB
Rust
55 lines
1.6 KiB
Rust
//! # 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;
|