pub struct ForceBeamColumn3 {
pub node_i: Node3Id,
pub node_j: Node3Id,
pub g: f64,
pub j: f64,
pub density: f64,
/* private fields */
}Expand description
ForceBeamColumn’s spatial (biaxial) counterpart: a 2-node, force-based
3D beam-column. Basic system, force interpolation, and state-
determination algorithm are the direct biaxial generalization of
ForceBeamColumn’s (see that type’s doc comment for the algorithm
itself, ported unchanged in structure — only NSD/NBD and the
matrices below grow); torsion is excluded from the basic system and
handled as a decoupled elastic G*J/L term, same as DispBeamColumn3.
Basic system, v = [v1..v5]: v1 axial elongation (same as
ForceBeamColumn’s v1); v2/v3 the z-bending chord-relative end
rotations, numerically identical in form to ForceBeamColumn’s
v2/v3 since local z-bending uses the same [v, rz] convention;
v4/v5 the y-bending chord-relative end rotations, built by
substituting theta_equiv = -ry into the same construction (matching
DispBeamColumn3::strain_displacement’s b_kappa_y substitution) —
this flips the sign of v4/v5’s rotation coefficient relative to
v2/v3’s (their translation coefficients are unchanged, since the
chord slope psi is purely geometric and doesn’t depend on the
rotation sign convention). Basic forces q = [q1..q5] are then
automatically work-conjugate to v by construction (A/A^T share the
same matrix — the standard force-method contragredience), with q1=N,
(q2,q3) conjugate to (Mz’s end values), (q4,q5) conjugate to
My’s. This whole construction — not just guessed by analogy — is
verified against ElasticBeamColumn3’s exact biaxial-bending elastic
stiffness in core/tests/elements/force_beam.rs, the same role
core/tests/elements/force_beam.rs plays for the planar element.
Fields§
§node_i: Node3Id§node_j: Node3Id§g: f64§j: f64§density: f64Mass per unit volume, same convention as ForceBeamColumn::density.
Implementations§
Trait Implementations§
Source§impl Clone for ForceBeamColumn3
impl Clone for ForceBeamColumn3
Source§fn clone(&self) -> ForceBeamColumn3
fn clone(&self) -> ForceBeamColumn3
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 ForceBeamColumn3
impl RefUnwindSafe for ForceBeamColumn3
impl Send for ForceBeamColumn3
impl Sync for ForceBeamColumn3
impl Unpin for ForceBeamColumn3
impl UnsafeUnpin for ForceBeamColumn3
impl UnwindSafe for ForceBeamColumn3
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.