/* Data area of RADAU5 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.001" */ double hmax; /* Maximum step */ /*$ 1 | + n MaxStepSize | "1.0" */ double hratiomin; /* Minimal step decreasing ratio*/ /*$ 1 | - n MinRatioStep | "0.2" */ double hratiomax; /* Maximal step increasing ratio*/ /*$ 1 | - n MaxRatioStep | "8.0" */ double chghratiomin; /* Minimal step decreasing ratio for changing step */ /*$ 1 | - n MinRatioStepChange | "1.0" */ double chghratiomax; /* Maximal step increasing ratio for changing step */ /*$ 1 | - n MaxRatioStepChange | "1.2" */ int hstrategy; /* Step size strategy */ /*$ 1 | - n StepSizeStrategy | "1" */ double hsafefact; /* Safety factor in step size prediction*/ /*$ 1 | - n StepSafetyFactor | "0.9" */ double atol; /* Absolute tolerance */ /*$ 1 | + n Tolerance | "0.0001" */ double rtol; /* Relative tolerance */ /*$ 1 | + n RelTolerance | "0.01" */ int maxnewt; /* Maximum number of Newton iteration*/ /*$ 1 | + n MaxNewtonIter | "7" */ int advnewt; /* Advanced Newton Initial Guess */ /*$ 1 | - n AdvNewtonGuess | "0" */ double newtstop; /* Newton Stop Criteria */ /*$ 1 | - n NewtonStop | "0.0" */ int ind1; /* Index 1 variable */ /*$=dae 1 | + n Index1 | "%Phase" */ /*$ 1 | - n Index1 | "0" */ int ind2; /* Index 1 variable */ /*$=dae 1 | + n Index2 | "0" */ /*$ 1 | - n Index2 | "0" */ int ind3; /* Index 1 variable */ /*$=dae 1 | + n Index3 | "0" */ /*$ 1 | - n Index3 | "0" */ int mljac; /* Lowest diagonal of JAC that is not zero */ /*$=dae 1 | + n mljac | "%Phase" */ /*$ 1 | - n mljac | "%Phase" */ int mujac; /* Upper diagonal of JAC that is not zero */ /*$=dae 1 | + n mujac | "%Phase" */ /*$ 1 | - n mujac | "%Phase" */ int mlmas; /* Lowest diagonal of MAS that is not zero */ /*$=dae 1 | + n mlmas | "%Phase" */ /*$ 1 | - n mlmas | "%Phase" */ int mumas; /* Upper diagonal of MAS that is not zero */ /*$=dae 1 | + n mumas | "%Phase" */ /*$ 1 | - n mumas | "%Phase" */ int m1; /* Second order variables */ /*$ 1 | - n m1 | "0" */ int m2; /* First order variables */ /*$ 1 | - n m2 | "0" */ int hessenberg; /* Hessenberg Form Option, only for ODE */ /*$ 1 | - n HessenbergTrf | "0" */ double jaccost; /* Evaluation of the jacobian cost */ /*$ 1 | - n JacCost | "0.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" */ int SystemCLASS; /* This specify the class of the whole system */ /*$=dae 1 | - n | "1" */ /*$ 1 | - n | "0" */ } IntegrData, * IntegrDataPtr;