pub struct StateTransitionResult<S: Scalar> { /* private fields */ }Expand description
Result of an initial-condition sensitivity solve.
Carries the state trajectory y(t) and the state-transition matrix
Φ(t) = ∂y(t) / ∂y₀ ∈ ℝ^{N×N} of the linearised flow, evaluated at every
output time the underlying solver produced.
§Φ(t) layout
Column-major within each per-time block: phi(i)[k*N + j] = Φ(t_i)_{j,k} = ∂y_j(t_i) / ∂y_{0,k}. The column-major flattening makes the j-th
column (the trajectory’s response at time t_i to a unit perturbation
of y_{0,k}) a free contiguous slice — see Self::phi_column.
§Vocabulary
All accessors speak state-transition-matrix vocabulary
(Φ, ∂y_i/∂y_{0,j}, monodromy). The type holds the underlying
SensitivityResult in a private field; it does not Deref to it
and does not re-export the parameter-shaped accessors.
Implementations§
Source§impl<S: Scalar> StateTransitionResult<S>
impl<S: Scalar> StateTransitionResult<S>
Sourcepub fn t(&self) -> &[S]
pub fn t(&self) -> &[S]
Output time points (length n_times). t()[i] is the i-th output
time; phi(i) is Φ(t()[i]).
Sourcepub fn final_y(&self) -> &[S]
pub fn final_y(&self) -> &[S]
State at the final output time, length N. Empty slice when the
result has no time points.
Sourcepub fn phi(&self, i: usize) -> &[S]
pub fn phi(&self, i: usize) -> &[S]
Full state-transition matrix Φ(t_i) ∈ ℝ^{N×N} at output index i,
column-major. phi(i)[k*N + j] = Φ(t_i)_{j,k} = ∂y_j(t_i)/∂y_{0,k}.
Sourcepub fn phi_ij(&self, i: usize, row: usize, col: usize) -> S
pub fn phi_ij(&self, i: usize, row: usize, col: usize) -> S
Single entry Φ(t_i)_{row, col} = ∂y_row(t_i) / ∂y_{0, col}.
Sourcepub fn phi_column(&self, i: usize, col: usize) -> &[S]
pub fn phi_column(&self, i: usize, col: usize) -> &[S]
Contiguous slice Φ(t_i)_{:, col} of length N — the trajectory’s
response at t_i to a unit perturbation of y_{0, col}. Free slice
thanks to the column-major flattening.
Sourcepub fn final_phi(&self) -> &[S]
pub fn final_phi(&self) -> &[S]
Φ(t_f), the state-transition matrix at the final output time.
When (t_f − t_0) equals one period of a periodic orbit this is
the monodromy matrix, whose eigenvalues are the orbit’s
characteristic (Floquet) multipliers. The type does not enforce
periodicity; it only names the natural use. Empty slice when the
result has no time points.
Sourcepub fn stats(&self) -> &SolverStats
pub fn stats(&self) -> &SolverStats
Solver statistics from the underlying integration.
Trait Implementations§
Auto Trait Implementations§
impl<S> Freeze for StateTransitionResult<S>
impl<S> RefUnwindSafe for StateTransitionResult<S>where
S: RefUnwindSafe,
impl<S> Send for StateTransitionResult<S>
impl<S> Sync for StateTransitionResult<S>
impl<S> Unpin for StateTransitionResult<S>where
S: Unpin,
impl<S> UnsafeUnpin for StateTransitionResult<S>
impl<S> UnwindSafe for StateTransitionResult<S>where
S: UnwindSafe,
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
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>
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>
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 more