pub struct GeoNonlinearBar {
pub ea: f64,
pub length: f64,
}Expand description
A single-DOF geometrically-nonlinear axial bar (fixed–free), Green–Lagrange strain.
For a straight prismatic bar of length L, section EA, with the fixed end at
x = 0 and axial tip displacement u, the Green–Lagrange axial strain is
ε = u/L + ½(u/L)². Strain energy U = ½·EA·L·ε², so the internal tip force and
its tangent are
f_int(u) = EA·ε·(1 + u/L)Kₜ(u) = (EA/L)·[(1 + u/L)² + ε]
These reduce to the linear bar (f = EA·u/L) for small u and stiffen
geometrically for large u. This is the concrete nonlinear model wired to the
facade NonlinearStatic / NonlinearDynamic variants.
Fields§
§ea: f64§length: f64Implementations§
Source§impl GeoNonlinearBar
impl GeoNonlinearBar
Sourcepub fn internal_force(&self, u: f64) -> f64
pub fn internal_force(&self, u: f64) -> f64
Internal tip force f_int(u).
Sourcepub fn solve_static(
&self,
f_ext: f64,
tol: f64,
max_iter: usize,
) -> Result<f64, EngineeringError>
pub fn solve_static( &self, f_ext: f64, tol: f64, max_iter: usize, ) -> Result<f64, EngineeringError>
Solve f_int(u) = f_ext for the tip displacement by Newton–Raphson.
Trait Implementations§
Source§impl Clone for GeoNonlinearBar
impl Clone for GeoNonlinearBar
Source§fn clone(&self) -> GeoNonlinearBar
fn clone(&self) -> GeoNonlinearBar
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 moreSource§impl Debug for GeoNonlinearBar
impl Debug for GeoNonlinearBar
impl Copy for GeoNonlinearBar
Auto Trait Implementations§
impl Freeze for GeoNonlinearBar
impl RefUnwindSafe for GeoNonlinearBar
impl Send for GeoNonlinearBar
impl Sync for GeoNonlinearBar
impl Unpin for GeoNonlinearBar
impl UnsafeUnpin for GeoNonlinearBar
impl UnwindSafe for GeoNonlinearBar
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>,
Aggregate shares in an MPC protocol.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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>
Converts
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>
Converts
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