pub struct StructuralWrench {
pub force_struct: DVec3,
pub torque_struct: DVec3,
pub t_struct_body: DMat3,
}Expand description
External wrench specified in the body’s structural frame, applied by
integrate_body at each integrator derivative evaluation.
JEOD recomputes extern_forc_inrtl = T_inertial_structᵀ · extern_forc_struct
inside the derivative function (dyn_body_collect.cc:214-224, reached via
DynManager::compute_derivatives at every RK4 stage), so a rotating body
sees the force rotated by its intermediate-stage attitude. The torque
transform extern_torq_body = T_struct_body · extern_torq_struct
(:245-252) uses only the fixed structure→body rotation, so it is constant
over a step. Holding the force constant over the step — the prior runner
behaviour — drifts by O(ω·dt) and is only acceptable at low angular rates.
t_struct_body is irrelevant when both vectors are zero; use Self::NONE
for bodies with no structural load.
Fields§
§force_struct: DVec3External force in the structural frame (N).
torque_struct: DVec3External torque in the structural frame (N·m).
t_struct_body: DMat3Structure→body rotation (identity when structure = body).
Implementations§
Trait Implementations§
Source§impl Clone for StructuralWrench
impl Clone for StructuralWrench
Source§fn clone(&self) -> StructuralWrench
fn clone(&self) -> StructuralWrench
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 StructuralWrench
Auto Trait Implementations§
impl Freeze for StructuralWrench
impl RefUnwindSafe for StructuralWrench
impl Send for StructuralWrench
impl Sync for StructuralWrench
impl Unpin for StructuralWrench
impl UnsafeUnpin for StructuralWrench
impl UnwindSafe for StructuralWrench
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,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§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).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.