Skip to contents

Dense output (continuous interpolation) allows the solver to reconstruct the solution at any point within a completed step without extra function evaluations. This lets the solver take large internal steps that span many requested output times, then interpolate cheaply – improving both speed and accuracy on densely sampled grids.

Usage

rxIsDense(method)

Arguments

method

A character vector of method names or an integerish vector of method codes (as returned by odeMethodToInt()). Vectorised.

Value

A logical vector the same length as method. TRUE if the corresponding method supports dense output.

Details

Dense-capable single methods are: "dop853" (0), "dop5" (10), "bs" (11), "ros4" (13).

For composite AutoSwitch methods (e.g. "dop5+ros4"), TRUE is returned only when both the primary and stiff secondary are dense-capable. "ros4" is the only stiff method with dense support, so the valid dense composites are "dop853+ros4", "dop5+ros4", and "bs+ros4".

Examples

rxIsDense("dop853")                       # TRUE
#> [1] TRUE
rxIsDense("ros4")                         # TRUE
#> [1] TRUE
rxIsDense("liblsoda")                     # FALSE
#> [1] FALSE
rxIsDense(c("dop5", "bs", "cvode"))       # TRUE TRUE FALSE
#> [1]  TRUE  TRUE FALSE
rxIsDense("dop5+ros4")                    # TRUE  (both dense)
#> [1] TRUE
rxIsDense("dop5+ros43")                   # FALSE (ros43 not dense)
#> [1] FALSE