Skip to main content

conspire/constitutive/thermal/conduction/
mod.rs

1//! Thermal conduction constitutive models.
2//!
3//! ---
4//!
5#![doc = include_str!("doc.md")]
6
7#[cfg(feature = "doc")]
8pub mod doc;
9
10#[cfg(test)]
11pub mod test;
12
13mod fourier;
14
15use crate::{
16    constitutive::{ConstitutiveError, thermal::Thermal},
17    math::Quantity,
18    mechanics::{HeatFlux, HeatFluxTangent, TemperatureGradient},
19    units::PowerTemperatureDensity,
20};
21
22pub use fourier::Fourier;
23
24/// Required methods for thermal conduction constitutive models.
25pub trait ThermalConduction
26where
27    Self: Thermal,
28{
29    /// Calculates and returns the potential.
30    fn potential(
31        &self,
32        temperature_gradient: &TemperatureGradient,
33    ) -> Result<Quantity<PowerTemperatureDensity>, ConstitutiveError>;
34    /// Calculates and returns the heat flux.
35    fn heat_flux(
36        &self,
37        temperature_gradient: &TemperatureGradient,
38    ) -> Result<HeatFlux, ConstitutiveError>;
39    /// Calculates and returns the tangent to the heat flux.
40    fn heat_flux_tangent(
41        &self,
42        temperature_gradient: &TemperatureGradient,
43    ) -> Result<HeatFluxTangent, ConstitutiveError>;
44}