pub struct LindladSimulator { /* private fields */ }Expand description
Lindblad master equation simulator for open quantum systems
Implementations§
Source§impl LindladSimulator
impl LindladSimulator
Sourcepub fn with_scirs2_backend(self) -> Result<Self>
pub fn with_scirs2_backend(self) -> Result<Self>
Initialize with SciRS2 backend
Sourcepub fn set_density_matrix(&mut self, rho: Array2<Complex64>) -> Result<()>
pub fn set_density_matrix(&mut self, rho: Array2<Complex64>) -> Result<()>
Set initial density matrix
Sourcepub fn from_state_vector(
&mut self,
psi: &ArrayView1<'_, Complex64>,
) -> Result<()>
pub fn from_state_vector( &mut self, psi: &ArrayView1<'_, Complex64>, ) -> Result<()>
Initialize from pure state vector
Sourcepub fn add_lindblad_operator(&mut self, operator: LindladOperator) -> Result<()>
pub fn add_lindblad_operator(&mut self, operator: LindladOperator) -> Result<()>
Add Lindblad operator
Sourcepub const fn set_time_step(&mut self, dt: f64)
pub const fn set_time_step(&mut self, dt: f64)
Set time step for integration
Sourcepub const fn set_integration_method(&mut self, method: IntegrationMethod)
pub const fn set_integration_method(&mut self, method: IntegrationMethod)
Set integration method
Sourcepub fn evolve(&mut self, total_time: f64) -> Result<EvolutionResult>
pub fn evolve(&mut self, total_time: f64) -> Result<EvolutionResult>
Evolve system for given time
Sourcepub const fn get_density_matrix(&self) -> &Array2<Complex64>
pub const fn get_density_matrix(&self) -> &Array2<Complex64>
Get current density matrix
Auto Trait Implementations§
impl Freeze for LindladSimulator
impl !RefUnwindSafe for LindladSimulator
impl Send for LindladSimulator
impl Sync for LindladSimulator
impl Unpin for LindladSimulator
impl !UnwindSafe for LindladSimulator
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> 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.