pub struct Truss3 {
pub node_i: Node3Id,
pub node_j: Node3Id,
pub area: f64,
pub material: Material,
pub density: f64,
}Expand description
A small-displacement axial 3D truss.
The bar has three translational components at each end; its rotational
rows/columns remain zero. Its dof_mask is translations only, so a node
connected only to Truss3 elements has no rotation unknowns and the model
need not fix them.
Fields§
§node_i: Node3Id§node_j: Node3Id§area: f64§material: Material§density: f64Mass per unit volume; zero means massless.
Implementations§
Source§impl Truss3
impl Truss3
pub fn new( node_i: Node3Id, node_j: Node3Id, area: f64, material: Material, ) -> Self
pub fn with_density(self, density: f64) -> Self
Sourcepub fn form_tangent_and_resistance(
&self,
node_i: &Node3,
node_j: &Node3,
) -> (SpatialElementMatrix, SpatialElementVector)
pub fn form_tangent_and_resistance( &self, node_i: &Node3, node_j: &Node3, ) -> (SpatialElementMatrix, SpatialElementVector)
Element tangent and internal resistance in global DOF order
[ux_i, uy_i, uz_i, rx_i, ry_i, rz_i, ux_j, ..., rz_j].
pub fn commit(&mut self, node_i: &Node3, node_j: &Node3)
Sourcepub fn local_force(
&self,
node_i: &Node3,
node_j: &Node3,
) -> SpatialElementVector
pub fn local_force( &self, node_i: &Node3, node_j: &Node3, ) -> SpatialElementVector
See Truss::local_force’s doc comment — same reasoning, no separate
local frame to rotate into.
Sourcepub fn form_mass(&self, node_i: &Node3, node_j: &Node3) -> SpatialElementVector
pub fn form_mass(&self, node_i: &Node3, node_j: &Node3) -> SpatialElementVector
Diagonal lumped mass: half of the member mass at each node, applied to each of its three translational DOFs. Rotational inertia remains zero until a spatial beam/mass formulation supplies it explicitly.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Truss3
impl RefUnwindSafe for Truss3
impl Send for Truss3
impl Sync for Truss3
impl Unpin for Truss3
impl UnsafeUnpin for Truss3
impl UnwindSafe for Truss3
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
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, 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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.