IntegratorSystemStruct Struct Reference
[Integrator]

#include <integrator.h>

Collaboration diagram for IntegratorSystemStruct:

Collaboration graph
[legend]

Detailed Description

Initial Value Problem description struct. Anyone making a copy of the y, ydot, or obs pointers who plans to free that pointer later should increment the reference count for that pointer so if blsys is destroyed later we don't end up double freeing it. Note this scheme will only work for the first copy and could be eliminated if we decoupled blsode from lsode as we will once things restabilize.

JP: adding to this structure the instance being solved, the engine that we're solving it with, and a struct containing the output function ptrs


Data Fields

Instanceinstance
slv_system_t system
IntegratorEngine engine
const IntegratorInternals * internals
IntegratorReporterreporter
SampleListsamples
void * enginedata
void * clientdata
slv_parameters_t params
int nstates
int nderivs
gl_list_tindepvars
gl_list_tdynvars
gl_list_tobslist
gl_list_tstates
gl_list_tderivs
var_variablex
var_variable ** y
var_variable ** ydot
var_variable ** obs
int * y_id
int * obs_id
int n_y
int n_ydot
int n_obs
int n_diffeqs
int currentstep
int maxsubsteps
double stepzero
double minstep
double maxstep


Field Documentation

struct Instance* IntegratorSystemStruct::instance

not sure if this one is really necessary... -- JP

slv_system_t IntegratorSystemStruct::system

the system that we're integrating in ASCEND

IntegratorEngine IntegratorSystemStruct::engine

enum containing the ID of the integrator engine we're using. Should go away -- fully replaced by 'internals'

const IntegratorInternals* IntegratorSystemStruct::internals

pointers to the various functions belonging to this integrator

IntegratorReporter* IntegratorSystemStruct::reporter

functions for reporting integration results

SampleList* IntegratorSystemStruct::samples

pointer to the list of samples. we *don't own* this

void* IntegratorSystemStruct::enginedata

space where the integrator engine can store stuff

void* IntegratorSystemStruct::clientdata

any stuff that the GUI/CLI needs to associate with this (eg pointer to C++ object)

slv_parameters_t IntegratorSystemStruct::params

structure containing parameters applicable to this Integrator

int IntegratorSystemStruct::nstates

was a local global in integrator.c, moved it here.

int IntegratorSystemStruct::nderivs

ditto, as for nstates

struct gl_list_t* IntegratorSystemStruct::indepvars

all apparent independent vars

struct gl_list_t* IntegratorSystemStruct::dynvars

all state and deriv instances plus indices

struct gl_list_t* IntegratorSystemStruct::obslist

observation instance plus indices

struct gl_list_t* IntegratorSystemStruct::states

ordered list of state variables and indices

struct gl_list_t* IntegratorSystemStruct::derivs

ordered list of derivative (ydot) insts

struct var_variable* IntegratorSystemStruct::x

independent variable

struct var_variable** IntegratorSystemStruct::y

array form of states

struct var_variable** IntegratorSystemStruct::ydot

array form of derivatives

struct var_variable** IntegratorSystemStruct::obs

array form of observed variables

int* IntegratorSystemStruct::y_id

array form of y/ydot user indices, for DAEs we use negatives here for derivative vars

int* IntegratorSystemStruct::obs_id

array form of obs user indices

int IntegratorSystemStruct::n_diffeqs

number of differential equations (used by idaanalyse)

int IntegratorSystemStruct::currentstep

current step number (also

See also:
integrator_getnsamples)

int IntegratorSystemStruct::maxsubsteps

move the following to the 'params' structure? Or maybe better not to? most steps between mesh poins

double IntegratorSystemStruct::stepzero

initial step length, SI units.

double IntegratorSystemStruct::minstep

shortest step length, SI units.

double IntegratorSystemStruct::maxstep

longest step length, SI units.


The documentation for this struct was generated from the following file:
Generated on Thu Jul 17 04:00:59 2008 for libascend by  doxygen 1.5.1