pub struct ModalAnalysis { /* private fields */ }Expand description
Modal analysis
Implementations§
Source§impl ModalAnalysis
impl ModalAnalysis
pub fn new() -> Self
Sourcepub fn eigenvalue_solver(&self) -> &EigenvalueSolver
pub fn eigenvalue_solver(&self) -> &EigenvalueSolver
Borrow the eigenvalue solver configuration.
Sourcepub fn eigenvalue_solver_mut(&mut self) -> &mut EigenvalueSolver
pub fn eigenvalue_solver_mut(&mut self) -> &mut EigenvalueSolver
Mutably borrow the eigenvalue solver configuration.
Sourcepub fn add_mode_shape(&mut self, mode: ModeShape)
pub fn add_mode_shape(&mut self, mode: ModeShape)
Append a computed mode shape to the results.
Sourcepub fn mode_shapes(&self) -> &[ModeShape]
pub fn mode_shapes(&self) -> &[ModeShape]
Borrow the computed mode shapes.
Sourcepub fn modal_parameters(&self) -> &ModalParameters
pub fn modal_parameters(&self) -> &ModalParameters
Borrow the modal parameters.
Sourcepub fn modal_parameters_mut(&mut self) -> &mut ModalParameters
pub fn modal_parameters_mut(&mut self) -> &mut ModalParameters
Mutably borrow the modal parameters.
Sourcepub fn analyze_modal(
&mut self,
stiffness: &[f64],
mass_diag: &[f64],
num_dofs: usize,
) -> Result<Vec<ModeShape>, EngineeringError>
pub fn analyze_modal( &mut self, stiffness: &[f64], mass_diag: &[f64], num_dofs: usize, ) -> Result<Vec<ModeShape>, EngineeringError>
Undamped modal analysis: solves the generalized eigenproblem
K φ = ω² M φ for a symmetric stiffness matrix stiffness (row-major
num_dofs × num_dofs) and a lumped (diagonal) mass matrix mass_diag
(num_dofs positive entries), wired to the crate’s symmetric Jacobi
eigensolver via [solve_modal_eigen]. Returns one ModeShape per DOF,
ordered by ascending natural angular frequency ω (rad/s) (stored in
ModeShape::natural_frequency), with zero damping (undamped) and the
mass-normalized mode-shape vector (unit maximum component). The result is
also cached in self.mode_shapes.
Auto Trait Implementations§
impl Freeze for ModalAnalysis
impl RefUnwindSafe for ModalAnalysis
impl Send for ModalAnalysis
impl Sync for ModalAnalysis
impl Unpin for ModalAnalysis
impl UnsafeUnpin for ModalAnalysis
impl UnwindSafe for ModalAnalysis
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