/* Data area of Crank-Nicolson 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 eps; /* Tolerance */ /*$ 1 | + n Tolerance | "0.00001" */ double dx; /* Increment */ /*$ 1 | + n Increment | "0.0001" */ double maxiter; /* Maximal number of Newton iterations */ /*$ 1 | + n MaxNewtonIter | "7" */ void * X1; /*$ -1 | - n | "0" */ double hmin; /* Min step */ /*$ 1 | + n MinStepsize | "1.0e-5" */ double hmax; /* Max step */ /*$ 1 | + n MaxStepsize | "1.0" */ int nadapt; /* number of points between adaptation */ /*$ 1 | + n BetweenAdaptation | "0" */ /*$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;