//! 3D Thermal Ablation Bioheat Solver //! //! This crate implements a Physics-Informed Neural Network (PINN) for solving //! the Pennes bioheat equation in 3D for thermal ablation simulation. //! //! # Physics Background //! //! The Pennes bioheat equation models heat transfer in biological tissue: //! //! ```text //! ρc(∂T/∂t) = k∇²T + ωb·ρb·cb·(Ta - T) + Qm + Qs //! ``` //! //! where: //! - `T(x,y,z,t)` is the temperature field (what we predict) //! - `ρ, c` = tissue density and specific heat //! - `k` = thermal conductivity //! - `ωb` = blood perfusion rate (cooling effect) //! - `ρb, cb` = blood density and specific heat //! - `Ta` = arterial blood temperature //! - `Qm` = metabolic heat generation //! - `Qs` = external heat source (ablation probe) //! //! # Architecture //! //! The solver uses a PINN approach: //! 1. **ThermalPinn**: Neural network predicting T(x,y,z,t) with 4D input //! 2. **PennesResidual**: Computes physics residual from network outputs //! 3. **ProbeHeatSource**: Models the ablation probe power deposition //! //! # Clinical Applications //! //! - Radiofrequency (RF) ablation planning //! - Microwave ablation simulation //! - Laser interstitial thermal therapy (LITT) //! - Cryoablation (with modified heat source) //! - Hyperthermia treatment optimization pub mod ablation_zone; pub mod config; pub mod inference; pub mod network; pub mod pennes; pub mod probe; pub mod solver; pub mod tissue; pub mod training; // Re-exports pub use ablation_zone::AblationZoneComputer; pub use config::BioheatConfig; pub use inference::InferenceEngine; pub use network::ThermalPinn; pub use pennes::PennesResidual; pub use probe::ProbeHeatSource; pub use solver::BioheatSolver; pub use tissue::TissueDomain; pub use training::Trainer; // Re-export shared types for convenience pub use bioheat_shared::{ AblationZone, BioheatLossRecord, BioheatParams, BioheatSnapshot, BioheatStatus, BloodProperties, BoundingBox3D, Point3D, ProbeGeometry, SimulationParams, SliceAxis, SliceData, TemperatureField, TissueProperties, TissueType, };