pub struct MaxwellModel {
pub elastic_modulus: f64,
pub viscosity: f64,
}Expand description
Maxwell element (spring + dashpot in series) – new API.
Uses field names elastic_modulus and viscosity to distinguish from the
legacy Maxwell struct.
Fields§
§elastic_modulus: f64Young’s modulus E (Pa)
viscosity: f64Dynamic viscosity eta (Pa*s)
Implementations§
Source§impl MaxwellModel
impl MaxwellModel
Sourcepub fn new(e: f64, eta: f64) -> Self
pub fn new(e: f64, eta: f64) -> Self
Create a new Maxwell model with elastic modulus e and viscosity eta.
Sourcepub fn relaxation_time(&self) -> f64
pub fn relaxation_time(&self) -> f64
Relaxation time tau = eta / E.
Sourcepub fn relaxation_modulus(&self, t: f64) -> f64
pub fn relaxation_modulus(&self, t: f64) -> f64
Relaxation modulus E(t) = E * exp(-t / tau).
Sourcepub fn creep_compliance(&self, t: f64) -> f64
pub fn creep_compliance(&self, t: f64) -> f64
Creep compliance J(t) = 1/E + t/eta.
Sourcepub fn stress_update(
&self,
_epsilon: f64,
epsilon_dot: f64,
sigma_old: f64,
dt: f64,
) -> f64
pub fn stress_update( &self, _epsilon: f64, epsilon_dot: f64, sigma_old: f64, dt: f64, ) -> f64
Stress update using exact integration of the Maxwell ODE.
Given old stress sigma_old, strain rate epsilon_dot, and time step dt:
sigma_new = sigma_old * exp(-dt/tau) + E * epsilon_dot * tau * (1 - exp(-dt/tau))
Sourcepub fn storage_modulus(&self, omega: f64) -> f64
pub fn storage_modulus(&self, omega: f64) -> f64
Storage modulus E’(omega) = E * (omegatau)^2 / (1 + (omegatau)^2).
Sourcepub fn loss_modulus(&self, omega: f64) -> f64
pub fn loss_modulus(&self, omega: f64) -> f64
Loss modulus E’’(omega) = E * omegatau / (1 + (omegatau)^2).
Sourcepub fn loss_tangent(&self, omega: f64) -> f64
pub fn loss_tangent(&self, omega: f64) -> f64
Loss tangent tan(delta) = E’’ / E’ = 1 / (omega * tau).
Sourcepub fn complex_modulus_magnitude(&self, omega: f64) -> f64
pub fn complex_modulus_magnitude(&self, omega: f64) -> f64
Complex modulus magnitude |E*| = sqrt(E’^2 + E’’^2).
Sourcepub fn compute_dynamic_modulus(&self, omega: f64) -> (f64, f64)
pub fn compute_dynamic_modulus(&self, omega: f64) -> (f64, f64)
Compute the dynamic (complex) modulus components (G’, G’’) for a Maxwell element.
For a single Maxwell element in shear:
G’(ω) = G · (ωτ)² / (1 + (ωτ)²) [storage / elastic part] G’’(ω) = G · ωτ / (1 + (ωτ)²) [loss / viscous part]
§Arguments
omega- Angular frequency ω [rad/s]
§Returns
(G_prime, G_double_prime) — storage and loss moduli [Pa]
Trait Implementations§
Source§impl Clone for MaxwellModel
impl Clone for MaxwellModel
Source§fn clone(&self) -> MaxwellModel
fn clone(&self) -> MaxwellModel
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more