pub struct Memristor {
pub resistance: f64,
pub state: f64,
pub params: MemristorParameters,
pub model: MemristorModel,
pub temperature: f64,
pub variability_factor: f64,
pub voltage_history: Vec<f64>,
pub max_history: usize,
}Expand description
Advanced memristor device model
Fields§
§resistance: f64Current resistance state
state: f64State variable (normalized position of doped region boundary)
params: MemristorParametersDevice parameters
model: MemristorModelModel type
temperature: f64Current temperature
variability_factor: f64Device-specific variability factor
voltage_history: Vec<f64>History of applied voltages (for hysteresis modeling)
max_history: usizeMaximum history length
Implementations§
Source§impl Memristor
impl Memristor
Sourcepub fn new(params: MemristorParameters, model: MemristorModel) -> Self
pub fn new(params: MemristorParameters, model: MemristorModel) -> Self
Create new memristor with advanced model
Sourcepub fn update(&mut self, voltage: f64, dt: f64)
pub fn update(&mut self, voltage: f64, dt: f64)
Update memristor state using advanced physics models
Sourcepub fn conductance(&self) -> f64
pub fn conductance(&self) -> f64
Get conductance (inverse of resistance)
Sourcepub fn set_temperature(&mut self, temperature: f64)
pub fn set_temperature(&mut self, temperature: f64)
Set device temperature
Sourcepub fn power_dissipation(&self, voltage: f64) -> f64
pub fn power_dissipation(&self, voltage: f64) -> f64
Get current power dissipation for given voltage
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Memristor
impl RefUnwindSafe for Memristor
impl Send for Memristor
impl Sync for Memristor
impl Unpin for Memristor
impl UnwindSafe for Memristor
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,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§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).Source§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.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.