| 463 | ******************************************************************/ |
| 464 | |
| 465 | typedef struct CVodeMemRec { |
| 466 | |
| 467 | real cv_uround; /* machine unit roundoff */ |
| 468 | |
| 469 | /* Problem Specification Data */ |
| 470 | |
| 471 | integer cv_N; /* ODE system size */ |
| 472 | RhsFn cv_f; /* y' = f(t,y(t)) */ |
| 473 | void *cv_f_data; /* user pointer passed to f */ |
| 474 | int cv_lmm; /* lmm = ADAMS or BDF */ |
| 475 | int cv_iter; /* iter = FUNCTIONAL or NEWTON */ |
| 476 | int cv_itol; /* itol = SS or SV */ |
| 477 | real *cv_reltol; /* ptr to relative tolerance */ |
| 478 | void *cv_abstol; /* ptr to absolute tolerance */ |
| 479 | |
| 480 | /* Nordsieck History Array */ |
| 481 | |
| 482 | N_Vector cv_zn[L_MAX]; /* Nordsieck array N x (q+1), */ |
| 483 | /* zn[j] is a vector of length N, j=0, ... , q */ |
| 484 | /* zn[j] = h^j * jth derivative of the */ |
| 485 | /* interpolating polynomial */ |
| 486 | |
| 487 | /* Vectors of length N */ |
| 488 | |
| 489 | N_Vector cv_ewt; /* error weight vector */ |
| 490 | N_Vector cv_y; /* y is used as temporary storage by the solver */ |
| 491 | /* The memory is provided by the user to CVode */ |
| 492 | /* where the vector is named yout. */ |
| 493 | N_Vector cv_acor; /* In the context of the solution of the */ |
| 494 | /* nonlinear equation, acor = y_n(m) - y_n(0). */ |
| 495 | /* On return, this vector is scaled to give */ |
| 496 | /* the estimated local error in y. */ |
| 497 | N_Vector cv_tempv; /* temporary storage vector */ |
| 498 | N_Vector cv_ftemp; /* temporary storage vector */ |
| 499 | |
| 500 | /* Step Data */ |
| 501 | |
| 502 | int cv_q; /* current order */ |
| 503 | int cv_qprime; /* order to be used on the next step */ |
| 504 | /* = q-1, q, or q+1 */ |
| 505 | int cv_qwait; /* number of internal steps to wait before */ |
| 506 | /* considering a change in q */ |
| 507 | int cv_L; /* L = q + 1 */ |
| 508 | |
| 509 | real cv_h; /* current step size */ |
| 510 | real cv_hprime; /* step size to be used on the next step */ |
| 511 | real cv_eta; /* eta = hprime / h */ |
| 512 | real cv_hscale; /* value of h used in zn */ |
| 513 | real cv_tn; /* current internal value of t */ |
| 514 | |
| 515 | real cv_tau[L_MAX+1]; /* vector of previous q+1 successful step */ |
| 516 | /* sizes indexed from 1 to q+1 */ |
| 517 | real cv_tq[NUM_TESTS+1]; /* vector of test quantities indexed from */ |
| 518 | /* 1 to NUM_TESTS(=5) */ |
| 519 | real cv_l[L_MAX]; /* coefficients of l(x) (degree q poly) */ |
| 520 | |
| 521 | real cv_rl1; /* 1 / l[1] */ |
| 522 | real cv_gamma; /* gamma = h * rl1 */ |
nothing calls this directly
no outgoing calls
no test coverage detected