Last chance! 50% off unlimited learning
Sale ends in
Calls a residual function,
To be used for testing the implementation of DAE problems in compiled code
DLLres(res, times, y, dy, parms, dllname,
initfunc = dllname, rpar = NULL, ipar = NULL, nout = 0,
outnames = NULL, forcings = NULL, initforc = NULL,
fcontrol = NULL)
the name of the function in the dynamically loaded shared library,
first value = the time at which the function needs to be evaluated,
the values of the dependent variables for which the function needs to be evaluated,
the derivative of the values of the dependent variables for which the function needs to be evaluated,
the parameters that are passed to the initialiser function,
a string giving the name of the shared library (without
extension) that contains the compiled function or subroutine definitions
referred to in func
,
if not NULL, the name of the initialisation function
(which initialises values of parameters), as provided in dllname
.
See details,
a vector with double precision values passed to the
DLL-function func
and jacfunc
present in the DLL, via
argument rpar
,
a vector with integer values passed to the DLL-function
func
and jacfunc
present in the DLL, via function argument
ipar
,
the number of output variables.
only used if dllname
is specified and
nout
> 0: the names of output variables calculated in the
compiled function func
, present in the shared library.
only used if dllname
is specified: a list with
the forcing function data sets, each present as a two-columned matrix,
with (time,value); interpolation outside the interval
[min(times
), max(times
)] is done by taking the value at
the closest data extreme.
See package vignette "compiledCode"
.
if not NULL
, the name of the forcing function
initialisation function, as provided in
dllname
. It MUST be present if forcings
has been given a
value.
See package vignette "compiledCode"
.
A list of control parameters for the forcing functions.
See package vignette "compiledCode"
.
a list containing:
the residual of derivative estimated by the function
the ordinary output variables of the function
This function is meant to help developing FORTRAN or C models that are to be
used to solve differential algebraic equations (DAE) in
package deSolve
.
daspk to solve DAE problems
# NOT RUN {
## =========================================================================
## Residuals from the daspk chemical model, production a forcing function
## =========================================================================
## Parameter values and initial conditions
## see example(daspk) for a more comprehensive implementation
pars <- c(K = 1, ka = 1e6, r = 1)
## Initial conc; D is in equilibrium with A,B
y <- c(A = 2, B = 3, D = 2 * 3/pars["K"])
## Initial rate of change
dy <- c(dA = 0, dB = 0, dD = 0)
## production increases with time
prod <- matrix(ncol = 2,
data = c(seq(0, 100, by = 10), seq(0.1, 0.5, len = 11)))
DLLres(y = y, dy = dy, times = 5, res = "chemres",
dllname = "deSolve", initfunc = "initparms",
initforc = "initforcs", parms = pars, forcings = prod,
nout = 2, outnames = c("CONC", "Prod"))
# }
Run the code above in your browser using DataLab