| DLLres {deSolve} | R Documentation |
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
DLLres(res, times, y, dy, parms, dllname, initfunc=dllname, rpar=NULL, ipar=NULL, nout=0, outnames = NULL, forcings=NULL, initforc = NULL, fcontrol = NULL)
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 func,
|
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
dll-function func and jacfunc present in the dll, via
argument rpar,
|
ipar |
a vector with integer values passed to the dll-function
func and jacfunc present in the dll, via function argument
ipar,
|
nout |
the number of output variables. |
outnames |
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.
|
forcings |
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".
|
initforc |
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".
|
fcontrol |
A list of control parameters for the forcing functions.
See package vignette "compiledCode".
|
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.
a list containing:
res |
the residual of derivative estimated by the function |
var |
the ordinary output variables of the function |
Karline Soetaert <k.soetaert@nioo.knaw.nl>
daspk to solve DAE problems
## =========================================================================
## 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(nc=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"))