Skip to main content

Node3Id

Struct Node3Id 

Source
pub struct Node3Id(/* private fields */);
Expand description

Generational index for a future spatial Domain3 node store. It is distinct from NodeId, so planar elements cannot connect to spatial nodes at compile time.

Trait Implementations§

Source§

impl Clone for Node3Id

Source§

fn clone(&self) -> Node3Id

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Node3Id

Source§

impl Debug for Node3Id

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Node3Id

Source§

fn default() -> Node3Id

Returns the “default value” for a type. Read more
Source§

impl ElementOps<SPATIAL_NDIM, SPATIAL_NDF, Node3Id> for Element3

Source§

type Load = ElementLoad3

An element-load kind this catalog supports. Add so several loads on one element in one pattern accumulate.
Source§

type Id = Element3Id

This catalog’s own Domain element-store key. An associated type rather than a further generic parameter of Domain, so it is always determined by E and never an independently unconstrained type variable (which broke inference at every Domain::new()).
Source§

fn nodes(&self) -> NodeList<Node3Id>

The nodes this element connects, in local order.
Source§

fn dof_mask(&self) -> DofMask

The node DOF slots this element stiffens (the same for each node). Must cover every slot on which assemble_tangent can produce a nonzero stiffness or resistance: a slot outside the mask that no other element, constraint or boundary condition uses is not an equation at all, so such a contribution would be silently dropped (debug builds assert against it).
Source§

fn validate( &self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>, ) -> Result<(), &'static str>

Rejects an element whose geometry or parameters make it unusable (coincident nodes, inverted orientation, …); called by Domain::validate. The default accepts everything.
Source§

fn accepts_load(&self, load: &ElementLoad3) -> bool

Whether this element can carry every kind of load present in load. Checked by Domain::validate on each pattern’s load, before anything is accumulated; the default accepts everything.
Source§

fn prepare(&mut self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>)

Caches geometry-only quantities (shape-function derivatives, areas) once the model is final; called by Domain::validate after validate succeeds. Must be idempotent, and every method must give the same answer whether or not it has been called (the default does nothing).
Source§

fn gauss_point_count(&self) -> usize

How many Gauss points gauss_responses reports (zero for elements that are not continuum elements); the bound a Gauss-point recorder’s point is checked against.
Source§

fn gauss_component_count(&self) -> usize

Components per Gauss-point strain or stress vector (3 for plane elements, 8 for shells); the bound a Gauss-point recorder’s component is checked against.
Source§

fn shell_responses( &self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>, ) -> Option<Vec<ShellResponse>>

Every Gauss point’s committed generalized strain and resultants; None for every element that is not a shell.
Source§

fn assemble_tangent<S: TangentSink<Node3Id>>( &self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>, load: Option<&ElementLoad3>, sink: &mut S, )

Tangent and internal resisting force at the current nodal state. load is the effective element load at the pseudo-time being assembled (every pattern’s load on this element, scaled by its factor). Only elements whose internal state depends on the load itself (ForceBeamColumn) read it; for every other element loads enter only through assemble_load.
Source§

fn assemble_load<S: VectorSink<Node3Id>>( &self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>, load: Option<&ElementLoad3>, sink: &mut S, )

The equivalent nodal load vector of load (zero if load is None or of a kind this element does not carry).
Source§

fn assemble_mass<S: VectorSink<Node3Id>>( &self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>, sink: &mut S, )

Lumped (diagonal) mass, per element DOF.
Source§

fn commit( &mut self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>, load: Option<&ElementLoad3>, )

Commit this element’s state at the converged nodal state. load is the effective element load at the committed pseudo-time.
Source§

fn local_force_width(&self) -> usize

Length of local_force/local_load_force; the bound a recorder’s component index is checked against.
Source§

fn local_force( &self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>, ) -> ElementForce

This element’s local nodal force at its current committed state, in the element’s own axis frame (the original fixed orientation for Linear/PDelta, the current chord for Corotational). Never mutates state.
Source§

fn local_load_force( &self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>, load: Option<&ElementLoad3>, ) -> ElementForce

assemble_load’s equivalent nodal load in the same local frame as local_force; what Domain::element_end_force subtracts so a loaded member’s end forces include the load’s fixed-end effect.
Source§

fn fiber_responses( &self, nodes: &NodeView<'_, SPATIAL_NDIM, SPATIAL_NDF, Node3Id>, ) -> Option<Vec<Vec<(f64, f64)>>>

Every integration point’s per-fiber (strain, stress); None for every element that is not fiber-discretized.
Source§

fn gauss_responses( &self, _nodes: &NodeView<'_, NDIM, NDOF, NId>, ) -> Option<Vec<GaussResponse>>

Every Gauss point’s committed strain and stress; None for every element that is not a continuum element.
Source§

impl Eq for Node3Id

Source§

impl From<KeyData> for Node3Id

Source§

fn from(k: KeyData) -> Self

Converts to this type from the input type.
Source§

impl Hash for Node3Id

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Key for Node3Id

Source§

fn data(&self) -> KeyData

Gets the KeyData stored in this key. Read more
Source§

fn null() -> Self

Creates a new key that is always invalid and distinct from any non-null key. A null key can only be created through this method (or default initialization of keys made with new_key_type!, which calls this method). Read more
Source§

fn is_null(&self) -> bool

Checks if a key is null. There is only a single null key, that is a.is_null() && b.is_null() implies a == b. Read more
Source§

impl Ord for Node3Id

Source§

fn cmp(&self, other: &Node3Id) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Node3Id

Source§

fn eq(&self, other: &Node3Id) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialOrd for Node3Id

Source§

fn partial_cmp(&self, other: &Node3Id) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl StructuralPartialEq for Node3Id

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Boilerplate for T
where T: Copy + Send + Sync + Debug + PartialEq + 'static,

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> ByRef<T> for T

§

fn by_ref(&self) -> &T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Imply<T> for U
where T: ?Sized, U: ?Sized,

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,

§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

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

Checks if self is actually part of its subset T (and can be converted to it).
§

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

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.