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
ElasticPp
Gap
Ent
Steel01
Concrete01
Steel02
Concrete02
Parallel
Each child arena index paired with its parallel factor.
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.
MinMax
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
Pinching4
Quadrilinear backbone with pinching and cyclic damage — see
core::Material::pinching4’s doc comment. Field order matches the
constructor’s positional parameters.
Fields
§
dmg_cyc: Pinching4DmgCycSpecTrait Implementations§
Source§impl Clone for MaterialSpec
impl Clone for MaterialSpec
Source§fn clone(&self) -> MaterialSpec
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)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MaterialSpec
impl Debug for MaterialSpec
Source§impl<'de> Deserialize<'de> for MaterialSpec
impl<'de> Deserialize<'de> for MaterialSpec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
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
impl Serialize for MaterialSpec
Source§impl Tsify for MaterialSpec
impl Tsify for MaterialSpec
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 };"
const SERIALIZATION_CONFIG: SerializationConfig
Source§type JsType = JsType
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>
Auto Trait Implementations§
impl Freeze for MaterialSpec
impl RefUnwindSafe for MaterialSpec
impl Send for MaterialSpec
impl Sync for MaterialSpec
impl Unpin for MaterialSpec
impl UnsafeUnpin for MaterialSpec
impl UnwindSafe for MaterialSpec
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
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
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
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.