Skip to main content

RecorderSpec

Enum RecorderSpec 

Source
pub enum RecorderSpec {
    NodeDisp {
        node: u32,
        dof: u8,
    },
    NodeVel {
        node: u32,
        dof: u8,
    },
    NodeAccel {
        node: u32,
        dof: u8,
    },
    ElementForce {
        element_kind: ElementKind,
        element_index: u32,
        component: u8,
    },
    ElementLoad {
        element_kind: ElementKind,
        element_index: u32,
        component: u8,
    },
    ModeShape {
        mode: u32,
        node: u32,
        dof: u8,
    },
    Reaction {
        node: u32,
        dof: u8,
    },
    Fiber {
        element_kind: ElementKind,
        element_index: u32,
        point: u32,
        fiber: u32,
        quantity: FiberResponseKind,
    },
    GaussPoint {
        element_kind: ElementKind,
        element_index: u32,
        point: u32,
        quantity: GaussQuantity,
        component: u8,
    },
}

Variants§

§

NodeDisp

node/dof index into NodeTable.

Fields

§node: u32
§dof: u8
§

NodeVel

Only meaningful during a Transient stage — analysis.domain()’s node velocity is otherwise always zero (a Static stage never touches it), so this recorder simply contributes no sample outside one.

Fields

§node: u32
§dof: u8
§

NodeAccel

See NodeVel’s doc comment — same restriction, for acceleration.

Fields

§node: u32
§dof: u8
§

ElementForce

element_index indexes into whichever per-kind table element_kind names (e.g. ForceBeamColumnTable), not a flat cross-kind element list. component indexes the element’s local nodal force vector (ElementOps::local_force — axial/shear/moment at each end, in the element’s own axis frame), width 2 * dofsPerNode (6 in 2D, 12 in 3D); a component past ElementOps::local_force_width is DecodeError::InvalidRecorderComponent.

Fields

§element_kind: ElementKind
§element_index: u32
§component: u8
§

ElementLoad

The uniform load an element carries at the sample’s pseudo-time (every pattern’s load on it, scaled by its factor, summed — frozen patterns included): component 0 = wx, 1 = wy, 2 = wz (3D only), local axes; past the load’s width it is DecodeError::InvalidRecorderComponent. What a consumer needs to recover internal-force diagrams from ElementForce’s end forces. 0 for an unloaded element.

Fields

§element_kind: ElementKind
§element_index: u32
§component: u8
§

ModeShape

Only meaningful during a Modal stage: mode indexes that stage’s computed Vec<Mode> (ascending frequency, 0 = lowest), node/ dof locate one entry of that mode’s free-DOF-indexed shape vector (core::Mode::shape) via Domain::equation_of — a fixed DOF has no equation number and reads as 0.0 (trivially true: a fixed DOF can’t participate in any mode shape). The recorded “time” component is the mode’s frequency (rad/time), not a pseudo-time or load factor — there’s no more natural scalar to pair a mode’s shape component with.

Fields

§mode: u32
§node: u32
§dof: u8
§

Reaction

Support/equilibrium reaction at node/dof (core::Domain:: reaction’s doc comment) — most useful at a fixed DOF, but not restricted to one. Valid during Static and Transient stages (paired with the stage’s own load factor/time, same as NodeDisp); records nothing during a Modal stage, which has no applied-load state for reaction to evaluate against.

Fields

§node: u32
§dof: u8
§

Fiber

One fiber’s strain or stress, at one integration point, of one DispBeamColumn/ForceBeamColumn element (core::Domain:: element_fiber_responses’s doc comment) — element_kind/ element_index mirror ElementForce’s own disambiguation. point/fiber index into that element’s own integration-point/ fiber ordering, exactly as originally given to its constructor (point therefore also matches IntegrationSpec’s point count, and fiber matches FiberTable’s per-section fiber range). Records nothing for any other element kind (no fiber section to read) or an out-of-range point/fiber — the same “unresolved by runtime state, not a decode-time error” handling ModeShape uses, since neither can be checked before the analysis actually runs.

Fields

§element_kind: ElementKind
§element_index: u32
§point: u32
§fiber: u32
§

GaussPoint

One component of the strain or stress at one Gauss point of a continuum element (tri3: 1 point, quad4: 4, in core’s Gauss-point order). component is 0..3 = x, y, xy (engineering shear for strain). Valid during Static and Transient stages; records nothing during Modal. point past the element’s Gauss-point count (or any point of a non-continuum kind) is DecodeError::InvalidGaussPoint; component past 2 is InvalidRecorderComponent.

Fields

§element_kind: ElementKind
§element_index: u32
§point: u32
§quantity: GaussQuantity
§component: u8

Trait Implementations§

Source§

impl Clone for RecorderSpec

Source§

fn clone(&self) -> RecorderSpec

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 RecorderSpec

Source§

impl Debug for RecorderSpec

Source§

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

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

impl<'de> Deserialize<'de> for RecorderSpec

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for RecorderSpec

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl Serialize for RecorderSpec

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for RecorderSpec

Source§

impl Tsify for RecorderSpec

Source§

const DECL: &'static str = "export type RecorderSpec = { response: \"nodeDisp\"; node: number; dof: number } | { response: \"nodeVel\"; node: number; dof: number } | { response: \"nodeAccel\"; node: number; dof: number } | { response: \"elementForce\"; elementKind: ElementKind; elementIndex: number; component: number } | { response: \"elementLoad\"; elementKind: ElementKind; elementIndex: number; component: number } | { response: \"modeShape\"; mode: number; node: number; dof: number } | { response: \"reaction\"; node: number; dof: number } | { response: \"fiber\"; elementKind: ElementKind; elementIndex: number; point: number; fiber: number; quantity: FiberResponseKind } | { response: \"gaussPoint\"; elementKind: ElementKind; elementIndex: number; point: number; quantity: GaussQuantity; component: number };"

Source§

const SERIALIZATION_CONFIG: SerializationConfig

Source§

type JsType = JsType

Must be a type imported through #[wasm_bindgen] extern "C" { .. }. [Ts<T>] is #[repr(transparent)] over this and passes it across the ABI as a plain JS handle, which any other representation would break.
§

fn into_js(&self) -> Result<Self::JsType, Error>
where Self: Serialize,

§

fn from_js<T>(js: T) -> Result<Self, Error>
where T: Into<JsValue>, Self: DeserializeOwned,

§

fn into_ts(&self) -> Result<Ts<Self>, Error>
where Self: Sized + Serialize,

Calls Ts::from_rust on self, returning a Result<Ts<Self>, crate::Error>. Read more

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more