Files
rustytorch/demos/rtx-bioheat/src/lib.rs
T
2026-03-04 00:08:42 +00:00

66 lines
2.0 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//! 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,
};