pub struct VibrationAnalysis { /* private fields */ }Expand description
Vibration analysis
Implementations§
Source§impl VibrationAnalysis
impl VibrationAnalysis
pub fn new() -> Self
pub fn initialize(&mut self) -> Result<(), EngineeringError>
Sourcepub fn free_vibration(&self) -> &FreeVibration
pub fn free_vibration(&self) -> &FreeVibration
Borrow the free-vibration sub-component.
Sourcepub fn free_vibration_mut(&mut self) -> &mut FreeVibration
pub fn free_vibration_mut(&mut self) -> &mut FreeVibration
Mutably borrow the free-vibration sub-component.
Sourcepub fn forced_vibration(&self) -> &ForcedVibration
pub fn forced_vibration(&self) -> &ForcedVibration
Borrow the forced-vibration sub-component.
Sourcepub fn forced_vibration_mut(&mut self) -> &mut ForcedVibration
pub fn forced_vibration_mut(&mut self) -> &mut ForcedVibration
Mutably borrow the forced-vibration sub-component.
Sourcepub fn random_vibration(&self) -> &RandomVibration
pub fn random_vibration(&self) -> &RandomVibration
Borrow the random-vibration sub-component.
Sourcepub fn random_vibration_mut(&mut self) -> &mut RandomVibration
pub fn random_vibration_mut(&mut self) -> &mut RandomVibration
Mutably borrow the random-vibration sub-component.
Sourcepub fn analyze_free(
&mut self,
stiffness: &[f64],
mass_diag: &[f64],
num_dofs: usize,
) -> Result<FreeVibration, EngineeringError>
pub fn analyze_free( &mut self, stiffness: &[f64], mass_diag: &[f64], num_dofs: usize, ) -> Result<FreeVibration, EngineeringError>
Undamped free-vibration analysis of an num_dofs-DOF lumped-mass system.
Delegates to the same generalized eigenproblem as modal analysis
(K φ = ω² M φ, wired to symmetric_eigen via [solve_modal_eigen]) and
packs the result into FreeVibration: natural_frequencies are the
natural angular frequencies ω (rad/s), ascending, with their mass-
normalized mode shapes and zero damping ratios (undamped). Cached into
self.free_vibration.
Sourcepub fn natural_frequency_sdof(
&self,
stiffness: f64,
mass: f64,
) -> Result<f64, EngineeringError>
pub fn natural_frequency_sdof( &self, stiffness: f64, mass: f64, ) -> Result<f64, EngineeringError>
Single-DOF undamped natural angular frequency ω = √(k/m) (rad/s).
Sourcepub fn analyze_harmonic_sdof(
&mut self,
mass: f64,
damping: f64,
stiffness: f64,
force_amplitude: f64,
excitation_freqs: &[f64],
) -> Result<ForcedVibration, EngineeringError>
pub fn analyze_harmonic_sdof( &mut self, mass: f64, damping: f64, stiffness: f64, force_amplitude: f64, excitation_freqs: &[f64], ) -> Result<ForcedVibration, EngineeringError>
Steady-state harmonic (forced-vibration) response of a damped single-DOF
oscillator m·ẍ + c·ẋ + k·x = F₀·sin(ωt). For each excitation angular
frequency ω (rad/s) in excitation_freqs, returns the response amplitude
X(ω) = F₀ / √((k − m·ω²)² + (c·ω)²) and the phase lag
φ(ω) = atan2(c·ω, k − m·ω²) (rad). Genuine closed-form frequency-response
function; no fabricated values. Fills and returns ForcedVibration.
Auto Trait Implementations§
impl Freeze for VibrationAnalysis
impl RefUnwindSafe for VibrationAnalysis
impl Send for VibrationAnalysis
impl Sync for VibrationAnalysis
impl Unpin for VibrationAnalysis
impl UnsafeUnpin for VibrationAnalysis
impl UnwindSafe for VibrationAnalysis
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more