/* Data area of Runge-Kutta integrator. Comments with '$' as the first letter describe appearence of parameters on the screen. */ /*$t Integrator*/ typedef struct { /* The following three fields MUST always be present regardless of method */ void * X0; /* First point supplied by a starter */ /*$ -1 | - n | "0" */ char * ActiveUserTest;/* Activeness of user test functions supplied by starter */ /*$ -1 | - n | "0" */ /*$t Integration data*/ double Tint; /* Integration interval */ /*$=_slv 1 | - n Interval | "10.0" */ /*$ 1 | + n Interval | "10.0" */ double h0; /* Initial step */ /*$ 1 | + n InitStepsize | "0.01" */ double hcur; /* Current step; the user cannot change it */ /*$ 1 | + o CurrentStepsize | "0.01" */ double hmin; /* Min step */ /*$ 1 | + n MinStepsize | "1.0e-5" */ double hmax; /* Max step */ /*$ 1 | + n MaxStepsize | "1.0" */ double eps; /* tolerance */ /*$ 1 | + n Tolerance | "1.0e-5" */ /*$t User function zero */ double epsuf; /* test function tolerance */ /*$ 1 | + n UserFuncTolerance(%UserFunc-1) | "0.001" */ int IterTestFuns; /* max number of iterations for user test functions */ /*$ 1 | + n MaxIterFunc(%UserFunc-1) | "20" */ } IntegrData, * IntegrDataPtr;