pub struct ZeroLengthSection {
pub node_i: NodeId,
pub node_j: NodeId,
/* private fields */
}Expand description
A 2-node, zero-length connector driven by a coupled FiberSection
instead of ZeroLength’s independent per-DOF materials — the axial
(ux) and flexural (rz) response come out of the same fiber
discretization, so axial force and bending moment interact through
shared fiber strain, the way a concentrated-plasticity “fiber hinge”
needs (e.g. at a beam-column end) and ZeroLength structurally cannot
produce. Modeled on OpenSees/Xara’s ZeroLengthSection
(SRC/element/Point/ZeroLengthSection.cpp): the section’s basic
deformation is the direct nodal DOF difference (no shape functions or
integration — there’s no length to integrate over), and K/P are
Bᵀ*k_section*B/Bᵀ*q with B selecting [ux, rz], the same pattern
DispBeamColumn::form_tangent_and_resistance uses per integration point
(here with a single “point” and unit scale).
uy — the one DOF FiberSection has no resultant for — can still carry
an independent uniaxial Material spring via with_material, exactly
like ZeroLength, additive with (and uncoupled from) the section’s
axial-moment response.
Fields§
§node_i: NodeId§node_j: NodeIdImplementations§
Source§impl ZeroLengthSection
impl ZeroLengthSection
pub fn new(node_i: NodeId, node_j: NodeId, section: FiberSection) -> Self
Sourcepub fn with_material(self, dof: usize, material: Material) -> Self
pub fn with_material(self, dof: usize, material: Material) -> Self
Independent spring for a DOF the section doesn’t drive — intended
for dof = 1 (uy, shear), since the section already owns ux
(dof 0) and rz (dof 2).
Sourcepub fn with_orientation(
self,
orientation: Orientation,
) -> Result<Self, OrientationError>
pub fn with_orientation( self, orientation: Orientation, ) -> Result<Self, OrientationError>
The section’s axial direction is local x and its flexure is about
local z (see Orientation); the default is the global axes.
Trait Implementations§
Source§impl Clone for ZeroLengthSection
impl Clone for ZeroLengthSection
Source§fn clone(&self) -> ZeroLengthSection
fn clone(&self) -> ZeroLengthSection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ZeroLengthSection
impl RefUnwindSafe for ZeroLengthSection
impl Send for ZeroLengthSection
impl Sync for ZeroLengthSection
impl Unpin for ZeroLengthSection
impl UnsafeUnpin for ZeroLengthSection
impl UnwindSafe for ZeroLengthSection
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.