pub enum ConstraintHandler {
Plain,
Transformation,
}Expand description
Constraint-handling strategy. Closed enum — small, homogeneous, user-selected per analysis.
Variants§
Plain
Single-point constraints only (fixed DOFs), applied directly via
Domain’s DOF numbering (fixed DOFs get no equation number, so they
never enter the free-DOF system at all). No Lagrange multipliers, no
penalty terms. Using this with a Domain that has multi-point
constraints (Domain::equal_dof/rigid_diaphragm) is a model
construction error — see AnalysisBuilder<Ready>::build; use
Transformation instead.
Transformation
Single-point and multi-point constraints: general linear ties
u_slave = sum(coeff * u_master) with masters on any nodes
(Domain::add_constraint, and the helpers built on it:
equal_dof, rigid_diaphragm, rigid_link). They are resolved at
Domain::number_dofs time by substitution, with no extra unknowns
(no Lagrange multipliers) and no penalty: a slave that reduces to
exactly one master with coefficient 1 is literally the same unknown
(it shares the master’s equation number); any other slave is a
stored linear combination of unknowns that assembly and state
scatter apply (Domain::value_at reads one back). Chains (a slave
that is another constraint’s master) resolve to any depth. The
constraints are homogeneous, so a fixed master must stay at zero.
Trait Implementations§
Source§impl Clone for ConstraintHandler
impl Clone for ConstraintHandler
Source§fn clone(&self) -> ConstraintHandler
fn clone(&self) -> ConstraintHandler
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ConstraintHandler
Auto Trait Implementations§
impl Freeze for ConstraintHandler
impl RefUnwindSafe for ConstraintHandler
impl Send for ConstraintHandler
impl Sync for ConstraintHandler
impl Unpin for ConstraintHandler
impl UnsafeUnpin for ConstraintHandler
impl UnwindSafe for ConstraintHandler
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.