DLLres {deSolve}  R Documentation 
Evaluates a Residual Derivative Function Represented in a DLL
Description
Calls a residual function, F(t,y,y')
of a DAE system
(differential algebraic equations) defined in a compiled language as a
DLL.
To be used for testing the implementation of DAE problems in compiled code
Usage
DLLres(res, times, y, dy, parms, dllname,
initfunc = dllname, rpar = NULL, ipar = NULL, nout = 0,
outnames = NULL, forcings = NULL, initforc = NULL,
fcontrol = NULL)
Arguments
res 
the name of the function in the dynamically loaded shared library, 
times 
first value = the time at which the function needs to be evaluated, 
y 
the values of the dependent variables for which the function needs to be evaluated, 
dy 
the derivative of the values of the dependent variables for which the function needs to be evaluated, 
parms 
the parameters that are passed to the initialiser function, 
dllname 
a string giving the name of the shared library (without
extension) that contains the compiled function or subroutine definitions
referred to in 
initfunc 
if not NULL, the name of the initialisation function (which initialises values of parameters), as provided in ‘dllname’. See details, 
rpar 
a vector with double precision values passed to the
DLLfunction 
ipar 
a vector with integer values passed to the DLLfunction

nout 
the number of output variables. 
outnames 
only used if ‘dllname’ is specified and

forcings 
only used if ‘dllname’ is specified: a list with
the forcing function data sets, each present as a twocolumned matrix,
with (time,value); interpolation outside the interval
[min( See package vignette 
initforc 
if not 
fcontrol 
A list of control parameters for the forcing functions.
See package vignette 
Details
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
.
Value
a list containing:
res 
the residual of derivative estimated by the function 
var 
the ordinary output variables of the function 
Author(s)
Karline Soetaert <karline.soetaert@nioz.nl>
See Also
daspk to solve DAE problems
Examples
## =========================================================================
## 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"))