#![doc = include_str!("doc.md")]
#[cfg(feature = "doc")]
pub mod doc;
#[cfg(test)]
pub mod test;
mod fourier;
use crate::{
constitutive::{ConstitutiveError, thermal::Thermal},
math::Quantity,
mechanics::{HeatFlux, HeatFluxTangent, TemperatureGradient},
units::PowerTemperatureDensity,
};
pub use fourier::Fourier;
pub trait ThermalConduction
where
Self: Thermal,
{
fn potential(
&self,
temperature_gradient: &TemperatureGradient,
) -> Result<Quantity<PowerTemperatureDensity>, ConstitutiveError>;
fn heat_flux(
&self,
temperature_gradient: &TemperatureGradient,
) -> Result<HeatFlux, ConstitutiveError>;
fn heat_flux_tangent(
&self,
temperature_gradient: &TemperatureGradient,
) -> Result<HeatFluxTangent, ConstitutiveError>;
}