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"))