Trait bacon_sci::ivp::AdamsSolver[][src]

pub trait AdamsSolver<N: ComplexField, S: DimName, O: DimName>: Sized where
    DefaultAllocator: Allocator<N, S>,
    DefaultAllocator: Allocator<N::RealField, O>, 
{ fn predictor_coefficients() -> VectorN<N::RealField, O>;
fn corrector_coefficients() -> VectorN<N::RealField, O>;
fn error_coefficient() -> N::RealField;
fn solve_ivp<T: Clone, F: FnMut(N::RealField, &[N], &mut T) -> Result<VectorN<N, S>, String>>(
        self,
        f: F,
        params: &mut T
    ) -> Result<Vec<(N::RealField, VectorN<N, S>)>, String>;
fn with_tolerance(self, tol: N::RealField) -> Result<Self, String>;
fn with_dt_max(self, max: N::RealField) -> Result<Self, String>;
fn with_dt_min(self, min: N::RealField) -> Result<Self, String>;
fn with_start(self, t_initial: N::RealField) -> Result<Self, String>;
fn with_end(self, t_final: N::RealField) -> Result<Self, String>;
fn with_initial_conditions(self, start: &[N]) -> Result<Self, String>;
fn build(self) -> Self; }

This trait allows a struct to be used in the Adams Predictor-Corrector solver

Things implementing AdamsSolver should have an AdamsInfo to handle the actual IVP solving.

Examples

See struct Adams for an example of implementing this trait

Required methods

fn predictor_coefficients() -> VectorN<N::RealField, O>[src]

The polynomial interpolation coefficients for the predictor. Should start with the coefficient for n - 1

fn corrector_coefficients() -> VectorN<N::RealField, O>[src]

The polynomial interpolation coefficients for the corrector. Must be the same length as predictor_coefficients. Should start with the implicit coefficient.

fn error_coefficient() -> N::RealField[src]

Coefficient for multiplying error by.

fn solve_ivp<T: Clone, F: FnMut(N::RealField, &[N], &mut T) -> Result<VectorN<N, S>, String>>(
    self,
    f: F,
    params: &mut T
) -> Result<Vec<(N::RealField, VectorN<N, S>)>, String>
[src]

Use AdamsInfo to solve an initial value problem

fn with_tolerance(self, tol: N::RealField) -> Result<Self, String>[src]

Set the error tolerance for this solver.

fn with_dt_max(self, max: N::RealField) -> Result<Self, String>[src]

Set the maximum time step for this solver.

fn with_dt_min(self, min: N::RealField) -> Result<Self, String>[src]

Set the minimum time step for this solver.

fn with_start(self, t_initial: N::RealField) -> Result<Self, String>[src]

Set the initial time for this solver.

fn with_end(self, t_final: N::RealField) -> Result<Self, String>[src]

Set the end time for this solver.

fn with_initial_conditions(self, start: &[N]) -> Result<Self, String>[src]

Set the initial conditions for this solver.

fn build(self) -> Self[src]

Build this solver.

Loading content...

Implementors

impl<N: ComplexField, S: DimName> AdamsSolver<N, S, U3> for Adams2<N, S> where
    DefaultAllocator: Allocator<N, S>,
    DefaultAllocator: Allocator<N::RealField, U3>,
    DefaultAllocator: Allocator<N, U3>, 
[src]

impl<N: ComplexField, S: DimName> AdamsSolver<N, S, U5> for Adams<N, S> where
    DefaultAllocator: Allocator<N, S>,
    DefaultAllocator: Allocator<N::RealField, U5>,
    DefaultAllocator: Allocator<N, U5>, 
[src]

Loading content...