pub struct Node<const NDIM: usize = PLANAR_NDIM, const NDOF: usize = 3> {
pub coords: [f64; NDIM],
pub fixed: [bool; NDOF],
pub displacement: [f64; NDOF],
pub velocity: [f64; NDOF],
pub acceleration: [f64; NDOF],
pub mass: [f64; NDOF],
}Expand description
A node in a concrete kinematic profile. Coordinates have NDIM
components; state, boundary conditions, and mass have NDOF components.
Node defaults to the existing planar (2, 3) profile, so its public API
remains source-compatible; Node3 is the spatial (3, 6) specialization.
velocity/acceleration are only meaningful for/written by
TransientAnalysis — static Analysis never touches them. Applied load
is not here; it belongs to Domain load patterns because one node can
carry independently scaled loads across phases.
Fields§
§coords: [f64; NDIM]§fixed: [bool; NDOF]§displacement: [f64; NDOF]§velocity: [f64; NDOF]§acceleration: [f64; NDOF]§mass: [f64; NDOF]Lumped nodal mass per DOF — a user-assigned point mass, additive with any element-consistent lumped mass.
Implementations§
Source§impl<const NDIM: usize, const NDOF: usize> Node<NDIM, NDOF>
impl<const NDIM: usize, const NDOF: usize> Node<NDIM, NDOF>
pub fn new(coords: [f64; NDIM]) -> Self
pub fn fix(self, dof: usize) -> Self
pub fn with_mass(self, dof: usize, value: f64) -> Self
Sourcepub fn with_initial_displacement(self, dof: usize, value: f64) -> Self
pub fn with_initial_displacement(self, dof: usize, value: f64) -> Self
Sets an initial displacement without solving for it.
pub fn with_initial_velocity(self, dof: usize, value: f64) -> Self
Trait Implementations§
Auto Trait Implementations§
impl<const NDIM: usize, const NDOF: usize> Freeze for Node<NDIM, NDOF>
impl<const NDIM: usize, const NDOF: usize> RefUnwindSafe for Node<NDIM, NDOF>
impl<const NDIM: usize, const NDOF: usize> Send for Node<NDIM, NDOF>
impl<const NDIM: usize, const NDOF: usize> Sync for Node<NDIM, NDOF>
impl<const NDIM: usize, const NDOF: usize> Unpin for Node<NDIM, NDOF>
impl<const NDIM: usize, const NDOF: usize> UnsafeUnpin for Node<NDIM, NDOF>
impl<const NDIM: usize, const NDOF: usize> UnwindSafe for Node<NDIM, NDOF>
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.