chemreac.util.analysis

Functions to analyze numierc output from integration.

chemreac.util.analysis.solver_linear_error(y, rtol, atol, logy=False, scale_err=1.0)[source]

Returns linear estimated error bounds from numerical integration

Parameters:

y : array_like

Output from integration (before back-transformation is applied)

rtol : float

Relative tolerance

atol : float

Absolute tolerance

logy : bool

Is y from a run with logarithmic concentration?

scale_err : float

scale estimated error bounds (useful for testing)

Returns:

Array of shape (2, len(y)) with rows corresponding to lower and

upper bounds around y.

Note

Assumes maximum mangitude of error be: \(\boldsymbol{e}_{max} = \|\boldsymbol{y} \cdot \mathrm{rtol}\| + \mathrm{atol}\)

chemreac.util.analysis.solver_linear_error_from_integration(integration, ti=slice(None, None, None), bi=0, si=0, **kwargs)[source]

Convenience function wrapping solver_linear_error()

Parameters:integration: Integration instance
chemreac.util.analysis.suggest_t0(rd, y0, max_f=1.0)[source]

Suggests an appropriate initial time, useful when logy==True and logt==True, If suggested t0 > 1, 1 is returned.

Parameters:

rd: ReactionDiffusion instance

System at hand

y0: sequence

initial values

max_f: float

upper bound of absolute value for largest element in for the inital step.