Skip to main content

TwoWayShapeMemory

Struct TwoWayShapeMemory 

Source
pub struct TwoWayShapeMemory {
    pub model: BrinsonModel,
    pub two_way_fraction: f64,
    pub training_cycles: u32,
    pub max_two_way_fraction: f64,
    pub saturation_rate: f64,
}
Expand description

Two-way shape memory effect: the material spontaneously deforms during both cooling and heating without external load, after training.

The trained material has internal residual stresses from dislocation arrays that bias the variant selection during cooling.

Fields§

§model: BrinsonModel

Brinson model for constitutive relations.

§two_way_fraction: f64

Two-way recoverable strain (fraction of h_max, typically 0.2-0.5).

§training_cycles: u32

Number of training cycles completed.

§max_two_way_fraction: f64

Maximum two-way fraction after saturation.

§saturation_rate: f64

Training saturation rate constant.

Implementations§

Source§

impl TwoWayShapeMemory

Source

pub fn new(model: BrinsonModel) -> Self

Create a new two-way shape memory model.

Source

pub fn train_cycle(&mut self)

Apply one training cycle (loading + unloading + thermal cycle).

Source

pub fn cooling_strain(&self, temp: f64) -> f64

Spontaneous strain on cooling to T < Mf (no external load).

Source

pub fn heating_strain(&self, temp: f64) -> f64

Spontaneous strain on heating to T > Af (recovery).

Trait Implementations§

Source§

impl Clone for TwoWayShapeMemory

Source§

fn clone(&self) -> TwoWayShapeMemory

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 TwoWayShapeMemory

Source§

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

Formats the value using the given formatter. 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
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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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