Struct ThermalModel
pub struct ThermalModel { /* private fields */ }Expand description
Thermal model for a circuit’s temperature evolution.
Models a simple first-order thermal system:
- Ambient temperature (starting point)
- Steady-state operating temperature (target after warm-up)
- Thermal time constant (how fast it warms up)
The temperature follows: T(t) = T_ambient + (T_steady - T_ambient) * (1 - exp(-t/tau))
Implementations§
§impl ThermalModel
impl ThermalModel
pub fn with_coefficients(
ambient_temp: f64,
steady_state_temp: f64,
thermal_tau: f64,
coefficients: ThermalCoefficients,
sample_rate: f64,
) -> ThermalModel
pub fn with_coefficients( ambient_temp: f64, steady_state_temp: f64, thermal_tau: f64, coefficients: ThermalCoefficients, sample_rate: f64, ) -> ThermalModel
Create a new thermal model with device-specific coefficients.
pub fn new(
ambient_temp: f64,
steady_state_temp: f64,
thermal_tau: f64,
sample_rate: f64,
) -> ThermalModel
pub fn new( ambient_temp: f64, steady_state_temp: f64, thermal_tau: f64, sample_rate: f64, ) -> ThermalModel
Create a new thermal model with default (silicon) coefficients.
pub fn germanium_fuzz(sample_rate: f64) -> ThermalModel
pub fn germanium_fuzz(sample_rate: f64) -> ThermalModel
Germanium Fuzz Face thermal model.
pub fn silicon_standard(sample_rate: f64) -> ThermalModel
pub fn silicon_standard(sample_rate: f64) -> ThermalModel
Silicon circuit thermal model.
pub fn tube_amp(sample_rate: f64) -> ThermalModel
pub fn tube_amp(sample_rate: f64) -> ThermalModel
Tube amp thermal model.
pub fn tick(&mut self) -> &ThermalState
pub fn tick(&mut self) -> &ThermalState
Advance the thermal model by one audio sample.
pub fn state(&self) -> &ThermalState
pub fn state(&self) -> &ThermalState
Get current thermal state without advancing time.
pub fn temperature(&self) -> f64
pub fn temperature(&self) -> f64
Get current temperature in deg C.
pub fn reset(&mut self)
pub fn reset(&mut self)
Reset to cold start (ambient temperature, elapsed = 0).
pub fn warm_up(&mut self)
pub fn warm_up(&mut self)
Jump to fully warmed up state.
pub fn set_sample_rate(&mut self, sample_rate: f64)
pub fn set_sample_rate(&mut self, sample_rate: f64)
Set sample rate.
Trait Implementations§
§impl Clone for ThermalModel
impl Clone for ThermalModel
§fn clone(&self) -> ThermalModel
fn clone(&self) -> ThermalModel
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ThermalModel
impl RefUnwindSafe for ThermalModel
impl Send for ThermalModel
impl Sync for ThermalModel
impl Unpin for ThermalModel
impl UnsafeUnpin for ThermalModel
impl UnwindSafe for ThermalModel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more