Skip to main content

MaterialSpec

Enum MaterialSpec 

Source
pub enum MaterialSpec {
Show 13 variants Elastic { e: f64, }, ElasticPp { e: f64, eyp: f64, }, Gap { e: f64, gap: f64, }, Ent { e: f64, }, Steel01 { fy: f64, e0: f64, b: f64, a1: f64, a2: f64, a3: f64, a4: f64, }, Concrete01 { fpc: f64, epsc0: f64, fpcu: f64, epscu: f64, }, Steel02 { fy: f64, e0: f64, b: f64, r0: f64, cr1: f64, cr2: f64, a1: f64, a2: f64, a3: f64, a4: f64, }, Concrete02 { fc: f64, epsc0: f64, fcu: f64, epscu: f64, rat: f64, ft: f64, ets: f64, }, Parallel { children: Vec<(u32, f64)>, }, Series { children: Vec<u32>, }, MinMax { inner: u32, min_strain: f64, max_strain: f64, }, Hysteretic {
Show 17 fields mom1p: f64, rot1p: f64, mom2p: f64, rot2p: f64, mom3p: f64, rot3p: f64, mom1n: f64, rot1n: f64, mom2n: f64, rot2n: f64, mom3n: f64, rot3n: f64, pinch_x: f64, pinch_y: f64, damfc1: f64, damfc2: f64, beta: f64,
}, Pinching4 {
Show 30 fields stress1p: f64, strain1p: f64, stress2p: f64, strain2p: f64, stress3p: f64, strain3p: f64, stress4p: f64, strain4p: f64, stress1n: f64, strain1n: f64, stress2n: f64, strain2n: f64, stress3n: f64, strain3n: f64, stress4n: f64, strain4n: f64, r_disp_p: f64, r_force_p: f64, u_force_p: f64, r_disp_n: f64, r_force_n: f64, u_force_n: f64, gamma_k_params: [f64; 4], gamma_k_limit: f64, gamma_d_params: [f64; 4], gamma_d_limit: f64, gamma_f_params: [f64; 4], gamma_f_limit: f64, gamma_e: f64, dmg_cyc: Pinching4DmgCycSpec,
},
}
Expand description

One arena entry. Composite variants reference other entries by their u32 index into the same arena, resolved by resolve_materials.

Variants§

§

Elastic

Fields

§

ElasticPp

Fields

§eyp: f64
§

Gap

Fields

§gap: f64
§

Ent

Fields

§

Steel01

Fields

§fy: f64
§e0: f64
§a1: f64
§a2: f64
§a3: f64
§a4: f64
§

Concrete01

Fields

§fpc: f64
§epsc0: f64
§fpcu: f64
§epscu: f64
§

Steel02

Fields

§fy: f64
§e0: f64
§r0: f64
§cr1: f64
§cr2: f64
§a1: f64
§a2: f64
§a3: f64
§a4: f64
§

Concrete02

Fields

§fc: f64
§epsc0: f64
§fcu: f64
§epscu: f64
§rat: f64
§ft: f64
§ets: f64
§

Parallel

Each child arena index paired with its parallel factor.

Fields

§children: Vec<(u32, f64)>
§

Series

Child arena indices, combined with core’s default series tolerance/iteration cap (Material::series’s tol=1e-10, max_iter=30) — not yet wire-configurable.

Fields

§children: Vec<u32>
§

MinMax

Fields

§inner: u32
§min_strain: f64
§max_strain: f64
§

Hysteretic

Trilinear moment-rotation envelope with pinching/stiffness/strength degradation — see core::Material::hysteretic’s doc comment. Field order matches the constructor’s positional parameters.

Fields

§mom1p: f64
§rot1p: f64
§mom2p: f64
§rot2p: f64
§mom3p: f64
§rot3p: f64
§mom1n: f64
§rot1n: f64
§mom2n: f64
§rot2n: f64
§mom3n: f64
§rot3n: f64
§pinch_x: f64
§pinch_y: f64
§damfc1: f64
§damfc2: f64
§beta: f64
§

Pinching4

Quadrilinear backbone with pinching and cyclic damage — see core::Material::pinching4’s doc comment. Field order matches the constructor’s positional parameters.

Fields

§stress1p: f64
§strain1p: f64
§stress2p: f64
§strain2p: f64
§stress3p: f64
§strain3p: f64
§stress4p: f64
§strain4p: f64
§stress1n: f64
§strain1n: f64
§stress2n: f64
§strain2n: f64
§stress3n: f64
§strain3n: f64
§stress4n: f64
§strain4n: f64
§r_disp_p: f64
§r_force_p: f64
§u_force_p: f64
§r_disp_n: f64
§r_force_n: f64
§u_force_n: f64
§gamma_k_params: [f64; 4]
§gamma_k_limit: f64
§gamma_d_params: [f64; 4]
§gamma_d_limit: f64
§gamma_f_params: [f64; 4]
§gamma_f_limit: f64
§gamma_e: f64

Trait Implementations§

Source§

impl Clone for MaterialSpec

Source§

fn clone(&self) -> MaterialSpec

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 Debug for MaterialSpec

Source§

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

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

impl<'de> Deserialize<'de> for MaterialSpec

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 Serialize for MaterialSpec

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 Tsify for MaterialSpec

Source§

const DECL: &'static str = "/**\n * One arena entry. Composite variants reference other entries by their\n * `u32` index into the same arena, resolved by [`resolve_materials`].\n */\nexport type MaterialSpec = { kind: \"elastic\"; e: number } | { kind: \"elasticPp\"; e: number; eyp: number } | { kind: \"gap\"; e: number; gap: number } | { kind: \"ent\"; e: number } | { kind: \"steel01\"; fy: number; e0: number; b: number; a1: number; a2: number; a3: number; a4: number } | { kind: \"concrete01\"; fpc: number; epsc0: number; fpcu: number; epscu: number } | { kind: \"steel02\"; fy: number; e0: number; b: number; r0: number; cr1: number; cr2: number; a1: number; a2: number; a3: number; a4: number } | { kind: \"concrete02\"; fc: number; epsc0: number; fcu: number; epscu: number; rat: number; ft: number; ets: number } | { kind: \"parallel\"; children: [number, number][] } | { kind: \"series\"; children: number[] } | { kind: \"minMax\"; inner: number; minStrain: number; maxStrain: number } | { kind: \"hysteretic\"; mom1p: number; rot1p: number; mom2p: number; rot2p: number; mom3p: number; rot3p: number; mom1n: number; rot1n: number; mom2n: number; rot2n: number; mom3n: number; rot3n: number; pinchX: number; pinchY: number; damfc1: number; damfc2: number; beta: number } | { kind: \"pinching4\"; stress1p: number; strain1p: number; stress2p: number; strain2p: number; stress3p: number; strain3p: number; stress4p: number; strain4p: number; stress1n: number; strain1n: number; stress2n: number; strain2n: number; stress3n: number; strain3n: number; stress4n: number; strain4n: number; rDispP: number; rForceP: number; uForceP: number; rDispN: number; rForceN: number; uForceN: number; gammaKParams: [number, number, number, number]; gammaKLimit: number; gammaDParams: [number, number, number, number]; gammaDLimit: number; gammaFParams: [number, number, number, number]; gammaFLimit: number; gammaE: number; dmgCyc: Pinching4DmgCycSpec };"

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

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