pub struct BackwardEuler {
pub dt: Scalar,
}Expand description
Fields§
§dt: ScalarFixed value for the time step.
Trait Implementations§
Source§impl Debug for BackwardEuler
impl Debug for BackwardEuler
Source§impl Default for BackwardEuler
impl Default for BackwardEuler
Source§fn default() -> BackwardEuler
fn default() -> BackwardEuler
Returns the “default value” for a type. Read more
Source§impl<T> FixedStep<T> for BackwardEuler
impl<T> FixedStep<T> for BackwardEuler
Source§impl<Y, J, U, V, T> Implicit<Y, J, U, V, T> for BackwardEulerwhere
Y: Differentiable<T> + Tensor,
Derivative<Y, T>: Mul<Quantity<T>, Output = Y>,
J: Differentiable<T> + Tensor + TensorArray,
Derivative<J, T>: Mul<Quantity<T>, Output = J>,
for<'a> &'a Y: Sub<&'a Y, Output = Y>,
U: TensorVec<Item = Y>,
V: TensorVec<Item = Derivative<Y, T>>,
impl<Y, J, U, V, T> Implicit<Y, J, U, V, T> for BackwardEulerwhere
Y: Differentiable<T> + Tensor,
Derivative<Y, T>: Mul<Quantity<T>, Output = Y>,
J: Differentiable<T> + Tensor + TensorArray,
Derivative<J, T>: Mul<Quantity<T>, Output = J>,
for<'a> &'a Y: Sub<&'a Y, Output = Y>,
U: TensorVec<Item = Y>,
V: TensorVec<Item = Derivative<Y, T>>,
fn residual( &self, function: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<Y, T>, IntegrationError>, _t: Quantity<T>, y: &Y, t_trial: Quantity<T>, y_trial: &Y, dt: Quantity<T>, ) -> Result<Y, String>
fn hessian( &self, jacobian: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<J, T>, IntegrationError>, _t: Quantity<T>, _y: &Y, t_trial: Quantity<T>, y_trial: &Y, dt: Quantity<T>, ) -> Result<J, String>
Source§fn integrate(
&self,
function: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<Y, T>, IntegrationError>,
jacobian: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<J, T>, IntegrationError>,
time: &[Quantity<T>],
initial_condition: Y,
solver: impl RootFinding<Y, J, Y>,
) -> Result<(Times<T>, U, V), IntegrationError>
fn integrate( &self, function: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<Y, T>, IntegrationError>, jacobian: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<J, T>, IntegrationError>, time: &[Quantity<T>], initial_condition: Y, solver: impl RootFinding<Y, J, Y>, ) -> Result<(Times<T>, U, V), IntegrationError>
Solves an initial value problem by implicitly integrating a system of ordinary differential equations. Read more
Source§impl<X, F, J, UX, UR, T> ImplicitRates<X, F, J, UX, UR, T> for BackwardEulerwhere
X: Differentiable<T> + Tensor,
Derivative<X, T>: Tensor,
for<'a, 'a> &'a X: Sub<&'a X, Output = X> + Div<Quantity<T>, Output = Derivative<X, T>>,
UX: TensorVec<Item = X>,
UR: TensorVec<Item = Derivative<X, T>>,
impl<X, F, J, UX, UR, T> ImplicitRates<X, F, J, UX, UR, T> for BackwardEulerwhere
X: Differentiable<T> + Tensor,
Derivative<X, T>: Tensor,
for<'a, 'a> &'a X: Sub<&'a X, Output = X> + Div<Quantity<T>, Output = Derivative<X, T>>,
UX: TensorVec<Item = X>,
UR: TensorVec<Item = Derivative<X, T>>,
Source§fn integrate(
&self,
rate: impl FnMut(Quantity<T>, &X) -> Result<Derivative<X, T>, String>,
residual: impl FnMut(Quantity<T>, &X, &Derivative<X, T>) -> Result<F, String>,
tangent: impl FnMut(Quantity<T>, &X, &Derivative<X, T>, Quantity<T>) -> Result<J, String>,
solver: impl RootFinding<F, J, X>,
equality_constraint: impl Fn(Quantity<T>) -> EqualityConstraints,
sparse: Option<SparseSolver>,
time: &[Quantity<T>],
initial_state: X,
) -> Result<(Times<T>, UX, UR), IntegrationError>
fn integrate( &self, rate: impl FnMut(Quantity<T>, &X) -> Result<Derivative<X, T>, String>, residual: impl FnMut(Quantity<T>, &X, &Derivative<X, T>) -> Result<F, String>, tangent: impl FnMut(Quantity<T>, &X, &Derivative<X, T>, Quantity<T>) -> Result<J, String>, solver: impl RootFinding<F, J, X>, equality_constraint: impl Fn(Quantity<T>) -> EqualityConstraints, sparse: Option<SparseSolver>, time: &[Quantity<T>], initial_state: X, ) -> Result<(Times<T>, UX, UR), IntegrationError>
Solves an initial value problem for a first-order system, given the residual of the system as a function of time, state, and rate, and its tangent with respect to the state. Read more
impl<Y, U> OdeIntegrator<Y, U> for BackwardEuler
Auto Trait Implementations§
impl Freeze for BackwardEuler
impl RefUnwindSafe for BackwardEuler
impl Send for BackwardEuler
impl Sync for BackwardEuler
impl Unpin for BackwardEuler
impl UnsafeUnpin for BackwardEuler
impl UnwindSafe for BackwardEuler
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