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

### 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>

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



[Package deSolve version 1.35 Index]