diff --git a/CHANGELOG.md b/CHANGELOG.md index d17ba09be4..8730775001 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,15 @@ Updated the F2003 utility routines `SUNDIALSFileOpen` and `SUNDIALSFileClose` to support user specification of `stdout` and `stderr` strings for the output file names. +Updated main ARKODE infrastructure so that the time-stepping module `fullrhs` routine, +and the `MRIStepInnerFullRhsFn` for MRIStep are optional. These may still be +required based on integrator usage, including: use of the internal initial time step +size selection algorithm, use of the Hermite interpolation module, use of temporal +root-finding, use of the now-deprecated "bootstrap" predictor method (see +`MRIStepSetPredictorMethod` and `ARKStepSetPredictorMethod`). When `fullrhs` +is not in fact required, one vector of ARKODE storage (the size of the IVP solution) +is left unallocated. + ## Changes to SUNDIALS in release 6.5.1 Added the functions `ARKStepClearStopTime`, `ERKStepClearStopTime`, diff --git a/doc/arkode/guide/source/Introduction.rst b/doc/arkode/guide/source/Introduction.rst index ad675a5ccc..b88a30a01e 100644 --- a/doc/arkode/guide/source/Introduction.rst +++ b/doc/arkode/guide/source/Introduction.rst @@ -163,6 +163,15 @@ Updated the F2003 utility routines :c:func:`SUNDIALSFileOpen` and :c:func:`SUNDI to support user specification of ``stdout`` and ``stderr`` strings for the output file names. +Updated main ARKODE infrastructure so that the time-stepping module `fullrhs` routine, +and the :c:type:`MRIStepInnerFullRhsFn` for MRIStep are optional. These may still be +required based on integrator usage, including: use of the internal initial time step +size selection algorithm, use of the Hermite interpolation module, use of temporal +root-finding, use of the now-deprecated "bootstrap" predictor method (see +:c:func:`MRIStepSetPredictorMethod` and :c:func:`ARKStepSetPredictorMethod`). When +`fullrhs` is not in fact required, one vector of ARKODE storage (the size of the IVP +solution) is left unallocated. + Changes in v5.5.1 ----------------- diff --git a/doc/arkode/guide/source/Usage/MRIStep_c_interface/Custom_Inner_Stepper/Description.rst b/doc/arkode/guide/source/Usage/MRIStep_c_interface/Custom_Inner_Stepper/Description.rst index 4fd6f14b53..48d4d825d3 100644 --- a/doc/arkode/guide/source/Usage/MRIStep_c_interface/Custom_Inner_Stepper/Description.rst +++ b/doc/arkode/guide/source/Usage/MRIStep_c_interface/Custom_Inner_Stepper/Description.rst @@ -366,6 +366,12 @@ member functions: * ``examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp`` +Optional Member Functions +""""""""""""""""""""""""" + +An :c:type:`MRIStepInnerStepper` *may* provide implementations of any of the +following member functions: + .. c:type:: int (*MRIStepInnerFullRhsFn)(MRIStepInnerStepper stepper, realtype t, N_Vector v, N_Vector f, int mode) This function computes the full right-hand side function of the inner (fast) @@ -393,11 +399,16 @@ member functions: **Example codes:** * ``examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp`` -Optional Member Functions -""""""""""""""""""""""""" + .. note:: + + This function will instead be required by MRIStep if: the Hermite interpolation + module is used, the user requests temporal root-finding, or the user requests the + now-deprecated "bootstrap" predictor method (see :c:func:`MRIStepSetPredictorMethod`). + + .. versionchanged:: 5.6.0 + + This function was made optional -An :c:type:`MRIStepInnerStepper` *may* provide implementations of any of the -following member functions: .. c:type:: int (*MRIStepInnerResetFn)(MRIStepInnerStepper stepper, realtype tR, N_Vector vR) diff --git a/examples/arkode/C_serial/ark_analytic.c b/examples/arkode/C_serial/ark_analytic.c index 3b1766d492..f538c3eb74 100644 --- a/examples/arkode/C_serial/ark_analytic.c +++ b/examples/arkode/C_serial/ark_analytic.c @@ -110,6 +110,8 @@ int main() if (check_flag(&flag, "ARKStepSetUserData", 1)) return 1; flag = ARKStepSStolerances(arkode_mem, reltol, abstol); /* Specify tolerances */ if (check_flag(&flag, "ARKStepSStolerances", 1)) return 1; + flag = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolant */ + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; /* Initialize dense matrix data structure and solver */ A = SUNDenseMatrix(NEQ, NEQ, ctx); diff --git a/examples/arkode/C_serial/ark_analytic_mels.c b/examples/arkode/C_serial/ark_analytic_mels.c index f1758db3ef..85ce983059 100644 --- a/examples/arkode/C_serial/ark_analytic_mels.c +++ b/examples/arkode/C_serial/ark_analytic_mels.c @@ -110,6 +110,8 @@ int main() if (check_retval(&retval, "ARKStepSetUserData", 1)) return 1; retval = ARKStepSStolerances(arkode_mem, reltol, abstol); /* Specify tolerances */ if (check_retval(&retval, "ARKStepSStolerances", 1)) return 1; + retval = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolant */ + if (check_retval(&retval, "ARKStepSetInterpolantType", 1)) return 1; /* Initialize custom matrix-embedded linear solver */ LS = MatrixEmbeddedLS(arkode_mem, ctx); diff --git a/examples/arkode/C_serial/ark_analytic_nonlin.c b/examples/arkode/C_serial/ark_analytic_nonlin.c index e6d6cde481..c1ab26416b 100644 --- a/examples/arkode/C_serial/ark_analytic_nonlin.c +++ b/examples/arkode/C_serial/ark_analytic_nonlin.c @@ -92,6 +92,10 @@ int main() flag = ERKStepSStolerances(arkode_mem, reltol, abstol); if (check_flag(&flag, "ERKStepSStolerances", 1)) return 1; + /* Set Lagrange interpolation module */ + flag = ERKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); + if (check_flag(&flag, "ERKStepSetInterpolantType", 1)) return 1; + /* Open output stream for results, output comment line */ UFID = fopen("solution.txt","w"); fprintf(UFID,"# t u\n"); diff --git a/examples/arkode/C_serial/ark_analytic_nonlin.out b/examples/arkode/C_serial/ark_analytic_nonlin.out index 902ace198d..99dbbbb11e 100644 --- a/examples/arkode/C_serial/ark_analytic_nonlin.out +++ b/examples/arkode/C_serial/ark_analytic_nonlin.out @@ -6,15 +6,15 @@ Analytical ODE test problem: t u --------------------- 1.000000 0.916291 - 2.000000 1.609437 - 3.000000 2.140066 - 4.000000 2.564949 + 2.000000 1.609435 + 3.000000 2.140064 + 4.000000 2.564948 5.000000 2.917770 6.000000 3.218876 - 7.000000 3.481240 + 7.000000 3.481239 8.000000 3.713572 9.000000 3.921973 - 10.000000 4.110874 + 10.000000 4.110873 --------------------- Final Statistics: diff --git a/examples/arkode/C_serial/ark_brusselator1D.c b/examples/arkode/C_serial/ark_brusselator1D.c index 86d157e802..14edd89e54 100644 --- a/examples/arkode/C_serial/ark_brusselator1D.c +++ b/examples/arkode/C_serial/ark_brusselator1D.c @@ -207,6 +207,8 @@ int main() if (check_flag(&flag, "ARKStepSetUserData", 1)) return 1; flag = ARKStepSStolerances(arkode_mem, reltol, abstol); /* Specify tolerances */ if (check_flag(&flag, "ARKStepSStolerances", 1)) return 1; + flag = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolant */ + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; /* Initialize band matrix data structure and solver -- A will be factored, so set smu to ml+mu */ A = SUNBandMatrix(NEQ, 4, 4, ctx); diff --git a/examples/arkode/C_serial/ark_brusselator1D.out b/examples/arkode/C_serial/ark_brusselator1D.out index abe61d1f47..1a22a8f3cf 100644 --- a/examples/arkode/C_serial/ark_brusselator1D.out +++ b/examples/arkode/C_serial/ark_brusselator1D.out @@ -8,105 +8,105 @@ t ||u||_rms ||v||_rms ||w||_rms ---------------------------------------------- 0.100000 0.673914 3.377329 1.999987 - 0.200000 0.684316 3.356619 1.999987 + 0.200000 0.684316 3.356619 1.999986 0.300000 0.695306 3.334633 1.999986 0.400000 0.706918 3.311313 1.999986 - 0.500000 0.719185 3.286601 1.999986 + 0.500000 0.719184 3.286601 1.999986 0.600000 0.732137 3.260442 1.999986 - 0.700000 0.745798 3.232787 1.999985 - 0.800000 0.760185 3.203596 1.999985 - 0.900000 0.775303 3.172839 1.999985 - 1.000000 0.791135 3.140510 1.999984 - 1.100000 0.807648 3.106624 1.999984 - 1.200000 0.824771 3.071233 1.999984 - 1.300000 0.842402 3.034426 1.999983 - 1.400000 0.860384 2.996350 1.999983 - 1.500000 0.878514 2.957206 1.999983 - 1.600000 0.896525 2.917266 1.999982 - 1.700000 0.914089 2.876873 1.999982 - 1.800000 0.930823 2.836438 1.999982 - 1.900000 0.946292 2.796446 1.999982 - 2.000000 0.960033 2.757430 1.999981 - 2.100000 0.971576 2.719962 1.999981 - 2.200000 0.980475 2.684623 1.999981 - 2.300000 0.986338 2.651980 1.999981 - 2.400000 0.988852 2.622560 1.999981 - 2.500000 0.987815 2.596818 1.999981 - 2.600000 0.983141 2.575128 1.999981 - 2.700000 0.974858 2.557766 1.999981 - 2.800000 0.963114 2.544903 1.999981 - 2.900000 0.948154 2.536611 1.999981 - 3.000000 0.930299 2.532868 1.999982 - 3.100000 0.909930 2.533567 1.999982 - 3.200000 0.887464 2.538529 1.999983 - 3.300000 0.863335 2.547515 1.999983 - 3.400000 0.837978 2.560241 1.999983 - 3.500000 0.811818 2.576391 1.999984 - 3.600000 0.785255 2.595624 1.999984 - 3.700000 0.758659 2.617587 1.999985 - 3.800000 0.732363 2.641922 1.999986 - 3.900000 0.706662 2.668274 1.999986 - 4.000000 0.681809 2.696300 1.999986 - 4.100000 0.658012 2.725670 1.999987 - 4.200000 0.635435 2.756075 1.999987 - 4.300000 0.614205 2.787228 1.999988 - 4.400000 0.594404 2.818869 1.999988 - 4.500000 0.576082 2.850764 1.999989 - 4.600000 0.559255 2.882710 1.999989 - 4.700000 0.543909 2.914529 1.999989 + 0.700000 0.745795 3.232790 1.999985 + 0.800000 0.760184 3.203596 1.999985 + 0.900000 0.775294 3.172847 1.999985 + 1.000000 0.791132 3.140513 1.999984 + 1.100000 0.807633 3.106639 1.999984 + 1.200000 0.824765 3.071240 1.999984 + 1.300000 0.842379 3.034451 1.999983 + 1.400000 0.860372 2.996364 1.999983 + 1.500000 0.878491 2.957234 1.999983 + 1.600000 0.896508 2.917287 1.999982 + 1.700000 0.914081 2.876882 1.999982 + 1.800000 0.930808 2.836460 1.999982 + 1.900000 0.946289 2.796453 1.999982 + 2.000000 0.960031 2.757436 1.999981 + 2.100000 0.971579 2.719968 1.999981 + 2.200000 0.980482 2.684622 1.999981 + 2.300000 0.986339 2.651980 1.999981 + 2.400000 0.988870 2.622549 1.999981 + 2.500000 0.987832 2.596806 1.999981 + 2.600000 0.983142 2.575126 1.999981 + 2.700000 0.974875 2.557749 1.999981 + 2.800000 0.963129 2.544887 1.999981 + 2.900000 0.948160 2.536604 1.999981 + 3.000000 0.930300 2.532868 1.999982 + 3.100000 0.909935 2.533559 1.999982 + 3.200000 0.887466 2.538521 1.999983 + 3.300000 0.863335 2.547510 1.999983 + 3.400000 0.837978 2.560240 1.999983 + 3.500000 0.811817 2.576389 1.999984 + 3.600000 0.785252 2.595623 1.999984 + 3.700000 0.758655 2.617587 1.999985 + 3.800000 0.732361 2.641922 1.999986 + 3.900000 0.706662 2.668275 1.999986 + 4.000000 0.681805 2.696302 1.999986 + 4.100000 0.658007 2.725673 1.999987 + 4.200000 0.635432 2.756077 1.999987 + 4.300000 0.614204 2.787229 1.999988 + 4.400000 0.594402 2.818871 1.999988 + 4.500000 0.576079 2.850768 1.999989 + 4.600000 0.559252 2.882713 1.999989 + 4.700000 0.543908 2.914530 1.999989 4.800000 0.530011 2.946071 1.999990 - 4.900000 0.517506 2.977209 1.999990 - 5.000000 0.506326 3.007843 1.999990 - 5.100000 0.496394 3.037889 1.999990 - 5.200000 0.487626 3.067283 1.999990 - 5.300000 0.479935 3.095976 1.999991 - 5.400000 0.473237 3.123932 1.999991 - 5.500000 0.467445 3.151125 1.999991 + 4.900000 0.517504 2.977212 1.999990 + 5.000000 0.506325 3.007845 1.999990 + 5.100000 0.496393 3.037890 1.999990 + 5.200000 0.487625 3.067283 1.999990 + 5.300000 0.479935 3.095977 1.999991 + 5.400000 0.473237 3.123933 1.999991 + 5.500000 0.467446 3.151126 1.999991 5.600000 0.462480 3.177540 1.999991 5.700000 0.458264 3.203165 1.999991 - 5.800000 0.454726 3.227997 1.999991 - 5.900000 0.451800 3.252035 1.999991 + 5.800000 0.454726 3.227998 1.999991 + 5.900000 0.451800 3.252036 1.999991 6.000000 0.449425 3.275283 1.999991 6.100000 0.447546 3.297744 1.999991 6.200000 0.446115 3.319428 1.999991 6.300000 0.445086 3.340340 1.999991 - 6.400000 0.444419 3.360491 1.999991 + 6.400000 0.444419 3.360492 1.999991 6.500000 0.444079 3.379890 1.999991 - 6.600000 0.444034 3.398547 1.999991 + 6.600000 0.444034 3.398546 1.999991 6.700000 0.444257 3.416470 1.999991 - 6.800000 0.444722 3.433669 1.999991 + 6.800000 0.444723 3.433669 1.999991 6.900000 0.445409 3.450154 1.999991 7.000000 0.446297 3.465934 1.999991 - 7.100000 0.447370 3.481018 1.999991 + 7.100000 0.447371 3.481018 1.999991 7.200000 0.448614 3.495414 1.999991 - 7.300000 0.450016 3.509131 1.999991 + 7.300000 0.450017 3.509131 1.999991 7.400000 0.451564 3.522176 1.999991 - 7.500000 0.453249 3.534557 1.999991 + 7.500000 0.453250 3.534556 1.999991 7.600000 0.455064 3.546280 1.999991 - 7.700000 0.457000 3.557353 1.999991 + 7.700000 0.457001 3.557353 1.999991 7.800000 0.459052 3.567781 1.999991 7.900000 0.461216 3.577571 1.999991 8.000000 0.463486 3.586728 1.999991 8.100000 0.465860 3.595257 1.999991 8.200000 0.468335 3.603162 1.999991 - 8.300000 0.470909 3.610447 1.999991 + 8.300000 0.470910 3.610447 1.999991 8.400000 0.473582 3.617116 1.999991 - 8.500000 0.476352 3.623171 1.999991 - 8.600000 0.479220 3.628616 1.999991 + 8.500000 0.476353 3.623170 1.999991 + 8.600000 0.479221 3.628615 1.999991 8.700000 0.482186 3.633451 1.999991 - 8.800000 0.485250 3.637679 1.999990 - 8.900000 0.488416 3.641299 1.999990 - 9.000000 0.491684 3.644311 1.999990 - 9.100000 0.495058 3.646715 1.999990 - 9.200000 0.498540 3.648509 1.999990 - 9.300000 0.502134 3.649691 1.999990 - 9.400000 0.505844 3.650257 1.999990 - 9.500000 0.509675 3.650202 1.999990 + 8.800000 0.485252 3.637677 1.999990 + 8.900000 0.488417 3.641297 1.999990 + 9.000000 0.491685 3.644311 1.999990 + 9.100000 0.495059 3.646713 1.999990 + 9.200000 0.498541 3.648507 1.999990 + 9.300000 0.502134 3.649690 1.999990 + 9.400000 0.505845 3.650254 1.999990 + 9.500000 0.509676 3.650199 1.999990 9.600000 0.513632 3.649521 1.999990 - 9.700000 0.517722 3.648209 1.999990 - 9.800000 0.521951 3.646257 1.999990 - 9.900000 0.526326 3.643656 1.999990 - 10.000000 0.530857 3.640396 1.999990 + 9.700000 0.517724 3.648206 1.999990 + 9.800000 0.521953 3.646253 1.999990 + 9.900000 0.526327 3.643655 1.999990 + 10.000000 0.530859 3.640391 1.999990 ---------------------------------------------- Final Solver Statistics: diff --git a/examples/arkode/C_serial/ark_brusselator1D_imexmri.c b/examples/arkode/C_serial/ark_brusselator1D_imexmri.c index 7b8f22c88f..4a4f885305 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_imexmri.c +++ b/examples/arkode/C_serial/ark_brusselator1D_imexmri.c @@ -512,6 +512,10 @@ int main(int argc, char *argv[]) retval = ARKStepSetFixedStep(inner_arkode_mem, hf); if (check_retval(&retval, "ARKStepSetFixedStep", 1)) return 1; + /* Set Lagrange interpolation type */ + retval = ARKStepSetInterpolantType(inner_arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "ARKStepSetInterpolantType", 1)) return 1; + /* Create inner stepper */ retval = ARKStepCreateMRIStepInnerStepper(inner_arkode_mem, &inner_stepper); @@ -648,6 +652,10 @@ int main(int argc, char *argv[]) retval = MRIStepSetMaxNumSteps(arkode_mem, 1000000); if (check_retval(&retval, "MRIStepSetMaxNumSteps", 1)) return 1; + /* Set Lagrange interpolation type */ + retval = MRIStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "MRIStepSetInterpolantType", 1)) return 1; + /* * Integrate ODE */ diff --git a/examples/arkode/C_serial/ark_brusselator1D_imexmri_0_0.001.out b/examples/arkode/C_serial/ark_brusselator1D_imexmri_0_0.001.out index 6dd1721d1b..f8525b0280 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_imexmri_0_0.001.out +++ b/examples/arkode/C_serial/ark_brusselator1D_imexmri_0_0.001.out @@ -30,7 +30,7 @@ Final Solver Statistics: Slow Steps: nsts = 10001 Fast Steps: nstf = 120012 - Total RHS evals: Fs = 30004, Ff = 994988 + Total RHS evals: Fs = 30003, Ff = 864973 Fast Newton iters = 504937 Fast Newton conv fails = 0 Fast Jacobian evals = 2308 diff --git a/examples/arkode/C_serial/ark_brusselator1D_imexmri_2_0.001.out b/examples/arkode/C_serial/ark_brusselator1D_imexmri_2_0.001.out index 1fa9294fa1..dfb29f4b18 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_imexmri_2_0.001.out +++ b/examples/arkode/C_serial/ark_brusselator1D_imexmri_2_0.001.out @@ -30,7 +30,7 @@ Final Solver Statistics: Slow Steps: nsts = 10001 Fast Steps: nstf = 120012 - Total RHS evals: Fs = 68887, Ff = 400041 + Total RHS evals: Fs = 68886, Ff = 360036 Slow Newton iters = 38883 Slow Newton conv fails = 0 Slow Jacobian evals = 501 diff --git a/examples/arkode/C_serial/ark_brusselator1D_imexmri_3_0.001.out b/examples/arkode/C_serial/ark_brusselator1D_imexmri_3_0.001.out index 89fe3e2cc0..bbe27031df 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_imexmri_3_0.001.out +++ b/examples/arkode/C_serial/ark_brusselator1D_imexmri_3_0.001.out @@ -30,7 +30,7 @@ Final Solver Statistics: Slow Steps: nsts = 10001 Fast Steps: nstf = 120012 - Total RHS evals: Fs = 68887, Ff = 1000128 + Total RHS evals: Fs = 68886, Ff = 840111 Slow Newton iters = 38883 Slow Newton conv fails = 0 Slow Jacobian evals = 501 diff --git a/examples/arkode/C_serial/ark_brusselator1D_imexmri_4_0.001.out b/examples/arkode/C_serial/ark_brusselator1D_imexmri_4_0.001.out index 65c7a6f99b..6193093194 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_imexmri_4_0.001.out +++ b/examples/arkode/C_serial/ark_brusselator1D_imexmri_4_0.001.out @@ -30,7 +30,7 @@ Final Solver Statistics: Slow Steps: nsts = 10001 Fast Steps: nstf = 110011 - Total RHS evals: Fse = 40005, Fsi = 78888, Ff = 370038 + Total RHS evals: Fse = 40004, Fsi = 78887, Ff = 330033 Slow Newton iters = 38883 Slow Newton conv fails = 0 Slow Jacobian evals = 501 diff --git a/examples/arkode/C_serial/ark_brusselator1D_imexmri_5_0.001.out b/examples/arkode/C_serial/ark_brusselator1D_imexmri_5_0.001.out index cc8fb37508..e6018ba83f 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_imexmri_5_0.001.out +++ b/examples/arkode/C_serial/ark_brusselator1D_imexmri_5_0.001.out @@ -30,7 +30,7 @@ Final Solver Statistics: Slow Steps: nsts = 10001 Fast Steps: nstf = 110011 - Total RHS evals: Fse = 40005, Fsi = 78888, Ff = 1174341 + Total RHS evals: Fse = 40004, Fsi = 78887, Ff = 1024325 Slow Newton iters = 38883 Slow Newton conv fails = 0 Slow Jacobian evals = 501 diff --git a/examples/arkode/C_serial/ark_brusselator1D_imexmri_6_0.001.out b/examples/arkode/C_serial/ark_brusselator1D_imexmri_6_0.001.out index b567a7e624..5098857205 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_imexmri_6_0.001.out +++ b/examples/arkode/C_serial/ark_brusselator1D_imexmri_6_0.001.out @@ -30,7 +30,7 @@ Final Solver Statistics: Slow Steps: nsts = 10001 Fast Steps: nstf = 130013 - Total RHS evals: Fse = 60007, Fsi = 118894, Ff = 580059 + Total RHS evals: Fse = 60006, Fsi = 118893, Ff = 520052 Slow Newton iters = 58887 Slow Newton conv fails = 0 Slow Jacobian evals = 501 diff --git a/examples/arkode/C_serial/ark_brusselator1D_imexmri_7_0.001.out b/examples/arkode/C_serial/ark_brusselator1D_imexmri_7_0.001.out index 0ebb4a0a14..ba3e40e621 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_imexmri_7_0.001.out +++ b/examples/arkode/C_serial/ark_brusselator1D_imexmri_7_0.001.out @@ -30,7 +30,7 @@ Final Solver Statistics: Slow Steps: nsts = 10001 Fast Steps: nstf = 130013 - Total RHS evals: Fse = 60007, Fsi = 118894, Ff = 1946003 + Total RHS evals: Fse = 60006, Fsi = 118893, Ff = 1885996 Slow Newton iters = 58887 Slow Newton conv fails = 0 Slow Jacobian evals = 501 diff --git a/examples/arkode/C_serial/ark_brusselator1D_klu.c b/examples/arkode/C_serial/ark_brusselator1D_klu.c index 10bd50c840..3e9fa4b8f5 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_klu.c +++ b/examples/arkode/C_serial/ark_brusselator1D_klu.c @@ -226,6 +226,8 @@ int main() if (check_flag(&flag, "ARKStepSetUserData", 1)) return 1; flag = ARKStepSStolerances(arkode_mem, reltol, abstol); /* Specify tolerances */ if (check_flag(&flag, "ARKStepSStolerances", 1)) return 1; + flag = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolation */ + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; /* Initialize sparse matrix data structure and KLU solver */ NNZ = 5*NEQ; diff --git a/examples/arkode/C_serial/ark_brusselator1D_klu.out b/examples/arkode/C_serial/ark_brusselator1D_klu.out index 7e6bc33063..d07a3d5e22 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_klu.out +++ b/examples/arkode/C_serial/ark_brusselator1D_klu.out @@ -7,16 +7,16 @@ t ||u||_rms ||v||_rms ||w||_rms ---------------------------------------------- - 1.000000 0.791135 3.140510 1.999984 - 2.000000 0.960033 2.757430 1.999981 - 3.000000 0.930299 2.532868 1.999982 - 4.000000 0.681809 2.696300 1.999986 - 5.000000 0.506326 3.007843 1.999990 + 1.000000 0.791132 3.140513 1.999984 + 2.000000 0.960031 2.757436 1.999981 + 3.000000 0.930300 2.532868 1.999982 + 4.000000 0.681805 2.696302 1.999986 + 5.000000 0.506325 3.007845 1.999990 6.000000 0.449425 3.275283 1.999991 7.000000 0.446297 3.465934 1.999991 8.000000 0.463486 3.586728 1.999991 - 9.000000 0.491684 3.644311 1.999990 - 10.000000 0.530857 3.640396 1.999990 + 9.000000 0.491685 3.644311 1.999990 + 10.000000 0.530859 3.640391 1.999990 ---------------------------------------------- Final Solver Statistics: diff --git a/examples/arkode/C_serial/ark_brusselator_fp.c b/examples/arkode/C_serial/ark_brusselator_fp.c index a8f3084cde..28b5f182da 100644 --- a/examples/arkode/C_serial/ark_brusselator_fp.c +++ b/examples/arkode/C_serial/ark_brusselator_fp.c @@ -184,6 +184,8 @@ int main(int argc, char *argv[]) if (check_flag(&flag, "ARKStepSStolerances", 1)) return 1; flag = ARKStepSetMaxNonlinIters(arkode_mem, maxcor); /* Increase default iterations */ if (check_flag(&flag, "ARKStepSetMaxNonlinIters", 1)) return 1; + flag = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolation */ + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; /* Open output stream for results, output comment line */ UFID = fopen("solution.txt","w"); diff --git a/examples/arkode/C_serial/ark_brusselator_fp.out b/examples/arkode/C_serial/ark_brusselator_fp.out index 041ebe3d2a..d7073aed65 100644 --- a/examples/arkode/C_serial/ark_brusselator_fp.out +++ b/examples/arkode/C_serial/ark_brusselator_fp.out @@ -6,16 +6,16 @@ Brusselator ODE test problem, fixed-point solver: t u v w ---------------------------------------------- - 1.000000 1.897255 1.274939 2.997155 + 1.000000 1.897255 1.274939 2.997156 2.000000 0.346125 2.366448 2.999481 - 3.000000 0.147442 2.862061 2.999781 - 4.000000 0.140733 3.226731 2.999788 - 5.000000 0.142659 3.583206 2.999788 + 3.000000 0.147442 2.862061 2.999779 + 4.000000 0.140734 3.226730 2.999789 + 5.000000 0.142659 3.583206 2.999786 6.000000 0.145095 3.936910 2.999782 - 7.000000 0.147720 4.287893 2.999780 - 8.000000 0.150542 4.635957 2.999775 - 9.000000 0.153590 4.980863 2.999768 - 10.000000 0.156901 5.322330 2.999763 + 7.000000 0.147720 4.287893 2.999778 + 8.000000 0.150542 4.635957 2.999774 + 9.000000 0.153590 4.980863 2.999770 + 10.000000 0.156901 5.322330 2.999765 ---------------------------------------------- Final Solver Statistics: diff --git a/examples/arkode/C_serial/ark_brusselator_fp_1.out b/examples/arkode/C_serial/ark_brusselator_fp_1.out index 041ebe3d2a..d7073aed65 100644 --- a/examples/arkode/C_serial/ark_brusselator_fp_1.out +++ b/examples/arkode/C_serial/ark_brusselator_fp_1.out @@ -6,16 +6,16 @@ Brusselator ODE test problem, fixed-point solver: t u v w ---------------------------------------------- - 1.000000 1.897255 1.274939 2.997155 + 1.000000 1.897255 1.274939 2.997156 2.000000 0.346125 2.366448 2.999481 - 3.000000 0.147442 2.862061 2.999781 - 4.000000 0.140733 3.226731 2.999788 - 5.000000 0.142659 3.583206 2.999788 + 3.000000 0.147442 2.862061 2.999779 + 4.000000 0.140734 3.226730 2.999789 + 5.000000 0.142659 3.583206 2.999786 6.000000 0.145095 3.936910 2.999782 - 7.000000 0.147720 4.287893 2.999780 - 8.000000 0.150542 4.635957 2.999775 - 9.000000 0.153590 4.980863 2.999768 - 10.000000 0.156901 5.322330 2.999763 + 7.000000 0.147720 4.287893 2.999778 + 8.000000 0.150542 4.635957 2.999774 + 9.000000 0.153590 4.980863 2.999770 + 10.000000 0.156901 5.322330 2.999765 ---------------------------------------------- Final Solver Statistics: diff --git a/examples/arkode/C_serial/ark_brusselator_mri.c b/examples/arkode/C_serial/ark_brusselator_mri.c index 9ce6c623ac..7fc90a3292 100644 --- a/examples/arkode/C_serial/ark_brusselator_mri.c +++ b/examples/arkode/C_serial/ark_brusselator_mri.c @@ -142,6 +142,10 @@ int main() retval = ARKStepSetFixedStep(inner_arkode_mem, hf); if (check_retval(&retval, "ARKStepSetFixedStep", 1)) return 1; + /* Set the Lagrange interpolation module */ + retval = ARKStepSetInterpolantType(inner_arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "ARKStepSetInterpolantType", 1)) return 1; + /* Create inner stepper */ retval = ARKStepCreateMRIStepInnerStepper(inner_arkode_mem, &inner_stepper); @@ -165,6 +169,10 @@ int main() retval = MRIStepSetFixedStep(arkode_mem, hs); if (check_retval(&retval, "MRIStepSetFixedStep", 1)) return 1; + /* Set the Lagrange interpolation module */ + retval = MRIStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "MRIStepSetInterpolantType", 1)) return 1; + /* * Integrate ODE */ diff --git a/examples/arkode/C_serial/ark_brusselator_mri.out b/examples/arkode/C_serial/ark_brusselator_mri.out index 7cfb07b9cf..cb42a1f89d 100644 --- a/examples/arkode/C_serial/ark_brusselator_mri.out +++ b/examples/arkode/C_serial/ark_brusselator_mri.out @@ -9,26 +9,26 @@ Brusselator ODE test problem: 0.000000 1.200000 3.100000 3.000000 0.100000 1.217191 3.061733 3.457934 0.200000 1.227348 3.029334 3.457598 - 0.300000 1.235476 2.998046 3.457312 - 0.400000 1.241026 2.968647 3.457113 - 0.500000 1.243444 2.941977 3.457018 - 0.600000 1.242194 2.918912 3.457047 - 0.700000 1.236795 2.900325 3.457216 - 0.800000 1.226849 2.887050 3.457539 - 0.900000 1.212068 2.879844 3.458026 - 1.000000 1.192294 2.879358 3.458684 - 1.100000 1.167513 2.886108 3.459513 - 1.200000 1.137855 2.900457 3.460510 - 1.300000 1.103595 2.922608 3.461666 - 1.400000 1.065137 2.952596 3.462969 - 1.500000 1.023006 2.990291 3.464400 - 1.600000 0.977832 3.035401 3.465940 - 1.700000 0.930332 3.087477 3.467563 - 1.800000 0.881291 3.145927 3.469244 - 1.900000 0.831543 3.210031 3.470954 - 2.000000 0.781939 3.278965 3.472664 + 0.300000 1.235500 2.998030 3.457312 + 0.400000 1.241086 2.968598 3.457111 + 0.500000 1.243513 2.941912 3.457016 + 0.600000 1.242273 2.918830 3.457044 + 0.700000 1.236884 2.900225 3.457213 + 0.800000 1.226947 2.886932 3.457535 + 0.900000 1.212173 2.879708 3.458022 + 1.000000 1.192405 2.879205 3.458680 + 1.100000 1.167629 2.885938 3.459509 + 1.200000 1.137975 2.900272 3.460506 + 1.300000 1.103763 2.922326 3.461660 + 1.400000 1.065346 2.952217 3.462961 + 1.500000 1.023246 2.989816 3.464391 + 1.600000 0.978090 3.034836 3.465930 + 1.700000 0.930595 3.086833 3.467553 + 1.800000 0.881545 3.145215 3.469234 + 1.900000 0.831773 3.209267 3.470945 + 2.000000 0.782132 3.278166 3.472656 ---------------------------------------------- Final Solver Statistics: Steps: nsts = 81, nstf = 2187 - Total RHS evals: Fs = 244, Ff = 8831 + Total RHS evals: Fs = 243, Ff = 6561 diff --git a/examples/arkode/C_serial/ark_heat1D.c b/examples/arkode/C_serial/ark_heat1D.c index 544d1e1ea0..db67fa257b 100644 --- a/examples/arkode/C_serial/ark_heat1D.c +++ b/examples/arkode/C_serial/ark_heat1D.c @@ -131,6 +131,8 @@ int main() { if (check_flag(&flag, "ARKStepSetPredictorMethod", 1)) return 1; flag = ARKStepSStolerances(arkode_mem, rtol, atol); /* Specify tolerances */ if (check_flag(&flag, "ARKStepSStolerances", 1)) return 1; + flag = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolation */ + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; /* Initialize PCG solver -- no preconditioning, with up to N iterations */ LS = SUNLinSol_PCG(y, 0, (int) N, ctx); diff --git a/examples/arkode/C_serial/ark_heat1D.out b/examples/arkode/C_serial/ark_heat1D.out index 2f33b506c3..f715881505 100644 --- a/examples/arkode/C_serial/ark_heat1D.out +++ b/examples/arkode/C_serial/ark_heat1D.out @@ -18,12 +18,12 @@ ------------------------- Final Solver Statistics: - Internal solver steps = 191 (attempted = 191) - Total RHS evals: Fe = 0, Fi = 1913 + Internal solver steps = 190 (attempted = 190) + Total RHS evals: Fe = 0, Fi = 1903 Total linear solver setups = 0 - Total linear iterations = 18265 - Total number of Jacobian-vector products = 18265 + Total linear iterations = 15277 + Total number of Jacobian-vector products = 15277 Total number of linear solver convergence failures = 0 - Total number of Newton iterations = 955 + Total number of Newton iterations = 950 Total number of nonlinear solver convergence failures = 0 Total number of error test failures = 0 diff --git a/examples/arkode/C_serial/ark_heat1D_adapt.c b/examples/arkode/C_serial/ark_heat1D_adapt.c index 28447942b6..534146ee52 100644 --- a/examples/arkode/C_serial/ark_heat1D_adapt.c +++ b/examples/arkode/C_serial/ark_heat1D_adapt.c @@ -170,6 +170,8 @@ int main() { if (check_flag(&flag, "ARKStepSetAdaptivityMethod", 1)) return 1; flag = ARKStepSetPredictorMethod(arkode_mem, 0); /* Set predictor method */ if (check_flag(&flag, "ARKStepSetPredictorMethod", 1)) return 1; + flag = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolation */ + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; /* Specify linearly implicit RHS, with time-dependent Jacobian */ flag = ARKStepSetLinear(arkode_mem, 1); diff --git a/examples/arkode/C_serial/ark_kpr_mri.c b/examples/arkode/C_serial/ark_kpr_mri.c index 6b7752c0c8..624e5db1ce 100644 --- a/examples/arkode/C_serial/ark_kpr_mri.c +++ b/examples/arkode/C_serial/ark_kpr_mri.c @@ -411,6 +411,10 @@ int main(int argc, char *argv[]) retval = ARKStepSetFixedStep(inner_arkode_mem, hf); if (check_retval(&retval, "ARKStepSetFixedStep", 1)) return 1; + /* Set the Lagrange interpolation module */ + retval = ARKStepSetInterpolantType(inner_arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "ARKStepSetInterpolantType", 1)) return 1; + /* Create inner stepper */ retval = ARKStepCreateMRIStepInnerStepper(inner_arkode_mem, &inner_stepper); @@ -551,6 +555,10 @@ int main(int argc, char *argv[]) retval = MRIStepSetFixedStep(arkode_mem, hs); if (check_retval(&retval, "MRIStepSetFixedStep", 1)) return 1; + /* Set the Lagrange interpolation module */ + retval = MRIStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "MRIStepSetInterpolantType", 1)) return 1; + /* * Integrate ODE */ diff --git a/examples/arkode/C_serial/ark_kpr_mri.out b/examples/arkode/C_serial/ark_kpr_mri.out index 5f8ee0f5d8..4b09d99096 100644 --- a/examples/arkode/C_serial/ark_kpr_mri.out +++ b/examples/arkode/C_serial/ark_kpr_mri.out @@ -12,58 +12,58 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: ------------------------------------------------------ 0.000000 1.224745 1.732051 0.00e+00 0.00e+00 0.100000 1.223726 1.077464 8.49e-07 8.80e-09 - 0.200000 1.220670 1.551800 8.43e-07 2.05e-08 - 0.300000 1.215595 1.467737 8.33e-07 3.10e-08 - 0.400000 1.208525 1.154583 8.19e-07 4.03e-08 - 0.500000 1.199497 1.721908 8.00e-07 4.85e-08 - 0.600000 1.188558 1.023517 7.77e-07 5.56e-08 - 0.700000 1.175765 1.622751 7.49e-07 6.17e-08 - 0.800000 1.161187 1.374632 7.16e-07 6.68e-08 - 0.900000 1.144905 1.245763 6.78e-07 7.09e-08 - 1.000000 1.127010 1.691839 6.36e-07 7.40e-08 - 1.100000 1.107610 1.000490 5.87e-07 7.62e-08 - 1.200000 1.086821 1.677552 5.33e-07 7.74e-08 - 1.300000 1.064777 1.277775 4.73e-07 7.77e-08 - 1.400000 1.041626 1.342455 4.06e-07 7.71e-08 - 1.500000 1.017531 1.642940 3.32e-07 7.55e-08 - 1.600000 0.992674 1.012112 2.51e-07 7.29e-08 - 1.700000 0.967253 1.714058 1.61e-07 6.93e-08 - 1.800000 0.941488 1.183867 6.33e-08 6.48e-08 - 1.900000 0.915617 1.437465 4.33e-08 5.91e-08 - 2.000000 0.889902 1.577082 1.59e-07 5.24e-08 - 2.100000 0.864625 1.056467 2.83e-07 4.46e-08 - 2.200000 0.840089 1.730920 4.16e-07 3.57e-08 - 2.300000 0.816616 1.101047 5.56e-07 2.56e-08 - 2.400000 0.794545 1.525051 7.01e-07 1.44e-08 - 2.500000 0.774227 1.496993 8.48e-07 2.09e-09 - 2.600000 0.756012 1.126857 9.92e-07 1.12e-08 - 2.700000 0.740245 1.727536 1.13e-06 2.54e-08 - 2.800000 0.727246 1.038393 1.25e-06 4.01e-08 - 2.900000 0.717300 1.600759 1.35e-06 5.53e-08 - 3.000000 0.710635 1.406379 1.43e-06 7.03e-08 - 3.100000 0.707411 1.214353 1.47e-06 8.49e-08 - 3.200000 0.707708 1.704026 1.47e-06 9.86e-08 - 3.300000 0.711518 1.004391 1.44e-06 1.11e-07 - 3.400000 0.718748 1.661225 1.37e-06 1.21e-07 - 3.500000 0.729225 1.310102 1.28e-06 1.30e-07 - 3.600000 0.742711 1.310080 1.16e-06 1.36e-07 - 3.700000 0.758913 1.661237 1.03e-06 1.40e-07 - 3.800000 0.777505 1.004387 8.82e-07 1.41e-07 - 3.900000 0.798143 1.704018 7.35e-07 1.40e-07 - 4.000000 0.820474 1.214374 5.88e-07 1.37e-07 - 4.100000 0.844149 1.406358 4.47e-07 1.32e-07 - 4.200000 0.868832 1.600774 3.11e-07 1.26e-07 - 4.300000 0.894204 1.038382 1.84e-07 1.18e-07 - 4.400000 0.919964 1.727533 6.62e-08 1.09e-07 - 4.500000 0.945834 1.126875 4.29e-08 9.90e-08 - 4.600000 0.971558 1.496973 1.43e-07 8.85e-08 - 4.700000 0.996898 1.525070 2.35e-07 7.76e-08 - 4.800000 1.021641 1.101030 3.18e-07 6.64e-08 - 4.900000 1.045589 1.730922 3.94e-07 5.51e-08 - 5.000000 1.068565 1.056480 4.62e-07 4.38e-08 + 0.200000 1.220670 1.551796 7.16e-07 3.24e-06 + 0.300000 1.215595 1.467734 8.18e-07 2.92e-06 + 0.400000 1.208525 1.154580 8.05e-07 2.63e-06 + 0.500000 1.199497 1.721905 7.88e-07 2.37e-06 + 0.600000 1.188558 1.023515 7.66e-07 2.13e-06 + 0.700000 1.175765 1.622749 7.39e-07 1.92e-06 + 0.800000 1.161187 1.374630 7.07e-07 1.73e-06 + 0.900000 1.144905 1.245762 6.70e-07 1.55e-06 + 1.000000 1.127010 1.691838 6.28e-07 1.40e-06 + 1.100000 1.107610 1.000488 5.80e-07 1.25e-06 + 1.200000 1.086821 1.677551 5.27e-07 1.13e-06 + 1.300000 1.064777 1.277774 4.67e-07 1.01e-06 + 1.400000 1.041626 1.342454 4.01e-07 9.09e-07 + 1.500000 1.017531 1.642939 3.27e-07 8.17e-07 + 1.600000 0.992674 1.012111 2.46e-07 7.35e-07 + 1.700000 0.967253 1.714057 1.57e-07 6.61e-07 + 1.800000 0.941488 1.183866 6.00e-08 5.97e-07 + 1.900000 0.915617 1.437465 4.63e-08 5.40e-07 + 2.000000 0.889902 1.577082 1.62e-07 4.89e-07 + 2.100000 0.864625 1.056467 2.86e-07 4.46e-07 + 2.200000 0.840088 1.730916 5.69e-07 4.18e-06 + 2.300000 0.816616 1.101041 6.72e-07 6.23e-06 + 2.400000 0.794545 1.525039 9.85e-07 1.21e-05 + 2.500000 0.774227 1.496981 9.36e-07 1.18e-05 + 2.600000 0.756012 1.126841 1.23e-06 1.53e-05 + 2.700000 0.740245 1.727521 1.27e-06 1.56e-05 + 2.800000 0.727246 1.038378 1.38e-06 1.56e-05 + 2.900000 0.717300 1.600740 1.60e-06 1.86e-05 + 3.000000 0.710635 1.406364 1.47e-06 1.58e-05 + 3.100000 0.707411 1.214335 1.66e-06 1.73e-05 + 3.200000 0.707708 1.704012 1.50e-06 1.44e-05 + 3.300000 0.711518 1.004378 1.49e-06 1.26e-05 + 3.400000 0.718748 1.661212 1.48e-06 1.27e-05 + 3.500000 0.729226 1.310094 1.21e-06 8.14e-06 + 3.600000 0.742711 1.310071 1.23e-06 8.23e-06 + 3.700000 0.758913 1.661233 9.03e-07 3.26e-06 + 3.800000 0.777506 1.004386 8.13e-07 7.66e-07 + 3.900000 0.798143 1.704020 6.73e-07 9.89e-07 + 4.000000 0.820474 1.214380 3.95e-07 5.86e-06 + 4.100000 0.844149 1.406364 3.99e-07 5.82e-06 + 4.200000 0.868832 1.600786 6.15e-08 1.11e-05 + 4.300000 0.894204 1.038395 2.84e-08 1.29e-05 + 4.400000 0.919964 1.727548 1.26e-07 1.51e-05 + 4.500000 0.945834 1.126894 3.10e-07 1.89e-05 + 4.600000 0.971558 1.496992 2.62e-07 1.80e-05 + 4.700000 0.996899 1.525092 5.52e-07 2.25e-05 + 4.800000 1.021641 1.101052 5.04e-07 2.25e-05 + 4.900000 1.045590 1.730946 6.57e-07 2.46e-05 + 5.000000 1.068566 1.056507 7.41e-07 2.66e-05 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 501, nstf = 50601 - u error = 7.941e-07, v error = 8.255e-08, total error = 5.646e-07 - Total RHS evals: Fs = 1504, Ff = 152306 + u error = 8.442e-07, v error = 1.121e-05, total error = 7.949e-06 + Total RHS evals: Fs = 1503, Ff = 151803 diff --git a/examples/arkode/C_serial/ark_kpr_mri_0_0.002.out b/examples/arkode/C_serial/ark_kpr_mri_0_0.002.out index 4957509c74..478896517a 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_0_0.002.out +++ b/examples/arkode/C_serial/ark_kpr_mri_0_0.002.out @@ -32,38 +32,38 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 1.900000 0.915617 1.437465 2.75e-10 4.01e-10 2.000000 0.889903 1.577082 9.56e-10 3.55e-10 2.100000 0.864625 1.056467 1.69e-09 3.05e-10 - 2.200000 0.840089 1.730920 2.47e-09 2.38e-10 - 2.300000 0.816616 1.101047 3.30e-09 1.73e-10 - 2.400000 0.794546 1.525051 4.15e-09 9.32e-11 - 2.500000 0.774227 1.496993 5.01e-09 8.75e-12 - 2.600000 0.756013 1.126857 5.86e-09 8.02e-11 - 2.700000 0.740246 1.727536 6.67e-09 1.81e-10 - 2.800000 0.727247 1.038393 7.38e-09 2.78e-10 - 2.900000 0.717301 1.600759 7.97e-09 3.85e-10 - 3.000000 0.710636 1.406380 8.40e-09 4.87e-10 - 3.100000 0.707412 1.214353 8.63e-09 5.85e-10 - 3.200000 0.707709 1.704026 8.65e-09 6.81e-10 - 3.300000 0.711520 1.004391 8.46e-09 7.60e-10 - 3.400000 0.718750 1.661225 8.06e-09 8.35e-10 - 3.500000 0.729227 1.310102 7.50e-09 8.89e-10 - 3.600000 0.742712 1.310080 6.80e-09 9.30e-10 - 3.700000 0.758914 1.661237 6.01e-09 9.57e-10 - 3.800000 0.777506 1.004387 5.16e-09 9.60e-10 - 3.900000 0.798144 1.704019 4.29e-09 9.58e-10 - 4.000000 0.820474 1.214374 3.43e-09 9.33e-10 - 4.100000 0.844149 1.406358 2.60e-09 9.00e-10 - 4.200000 0.868832 1.600774 1.81e-09 8.56e-10 - 4.300000 0.894204 1.038382 1.06e-09 7.99e-10 - 4.400000 0.919964 1.727533 3.69e-10 7.42e-10 - 4.500000 0.945834 1.126875 2.71e-10 6.70e-10 - 4.600000 0.971557 1.496974 8.58e-10 6.01e-10 - 4.700000 0.996898 1.525070 1.40e-09 5.27e-10 - 4.800000 1.021641 1.101030 1.88e-09 4.48e-10 - 4.900000 1.045589 1.730922 2.33e-09 3.74e-10 - 5.000000 1.068565 1.056480 2.73e-09 2.92e-10 + 2.200000 0.840089 1.730920 3.52e-09 5.43e-08 + 2.300000 0.816616 1.101047 4.94e-09 1.22e-07 + 2.400000 0.794546 1.525051 7.22e-09 2.42e-07 + 2.500000 0.774227 1.496993 6.47e-09 2.37e-07 + 2.600000 0.756013 1.126856 9.23e-09 3.34e-07 + 2.700000 0.740246 1.727536 8.43e-09 3.14e-07 + 2.800000 0.727247 1.038393 9.83e-09 3.38e-07 + 2.900000 0.717301 1.600758 1.10e-08 3.84e-07 + 3.000000 0.710636 1.406379 9.81e-09 3.29e-07 + 3.100000 0.707412 1.214352 1.16e-08 3.75e-07 + 3.200000 0.707709 1.704026 9.41e-09 2.89e-07 + 3.300000 0.711520 1.004391 9.95e-09 2.71e-07 + 3.400000 0.718750 1.661225 9.31e-09 2.46e-07 + 3.500000 0.729227 1.310102 7.36e-09 1.56e-07 + 3.600000 0.742712 1.310080 7.92e-09 1.64e-07 + 3.700000 0.758914 1.661237 4.70e-09 3.72e-08 + 3.800000 0.777506 1.004387 4.76e-09 3.34e-09 + 3.900000 0.798144 1.704019 3.01e-09 6.69e-08 + 4.000000 0.820474 1.214374 1.30e-09 1.60e-07 + 4.100000 0.844149 1.406358 1.58e-09 1.60e-07 + 4.200000 0.868832 1.600775 1.55e-09 2.88e-07 + 4.300000 0.894204 1.038382 1.08e-09 3.05e-07 + 4.400000 0.919964 1.727534 3.08e-09 3.88e-07 + 4.500000 0.945834 1.126875 3.92e-09 4.53e-07 + 4.600000 0.971557 1.496974 3.51e-09 4.41e-07 + 4.700000 0.996898 1.525070 6.06e-09 5.43e-07 + 4.800000 1.021641 1.101030 5.01e-09 5.26e-07 + 4.900000 1.045589 1.730922 7.03e-09 6.01e-07 + 5.000000 1.068565 1.056481 6.96e-09 6.24e-07 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 2501, nstf = 252601 - u error = 4.670e-09, v error = 5.638e-10, total error = 3.327e-09 - Total RHS evals: Fs = 7504, Ff = 760306 + u error = 5.721e-09, v error = 2.541e-07, total error = 1.797e-07 + Total RHS evals: Fs = 7503, Ff = 757803 diff --git a/examples/arkode/C_serial/ark_kpr_mri_1_0.002.out b/examples/arkode/C_serial/ark_kpr_mri_1_0.002.out index 40ed2fe4b3..b5b42c3412 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_1_0.002.out +++ b/examples/arkode/C_serial/ark_kpr_mri_1_0.002.out @@ -32,38 +32,38 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 1.900000 0.915617 1.437465 3.44e-13 3.82e-13 2.000000 0.889903 1.577082 3.50e-14 3.23e-13 2.100000 0.864625 1.056467 9.49e-14 3.63e-12 - 2.200000 0.840089 1.730920 2.82e-13 9.77e-13 + 2.200000 0.840089 1.730920 2.82e-13 9.75e-13 2.300000 0.816616 1.101047 5.31e-13 3.10e-12 - 2.400000 0.794546 1.525051 3.55e-13 1.45e-13 - 2.500000 0.774227 1.496993 1.73e-13 1.47e-13 - 2.600000 0.756013 1.126857 5.61e-14 2.76e-12 + 2.400000 0.794546 1.525051 3.55e-13 1.52e-13 + 2.500000 0.774227 1.496993 1.73e-13 1.40e-13 + 2.600000 0.756013 1.126857 5.61e-14 2.77e-12 2.700000 0.740246 1.727536 2.34e-13 1.63e-12 - 2.800000 0.727247 1.038393 4.93e-13 3.33e-12 - 2.900000 0.717301 1.600759 3.84e-13 8.97e-13 - 3.000000 0.710636 1.406380 2.69e-13 3.69e-13 + 2.800000 0.727247 1.038393 4.93e-13 3.32e-12 + 2.900000 0.717301 1.600759 3.84e-13 8.90e-13 + 3.000000 0.710636 1.406380 2.69e-13 3.62e-13 3.100000 0.707412 1.214353 1.84e-13 1.89e-12 3.200000 0.707709 1.704026 1.75e-13 1.92e-12 3.300000 0.711520 1.004391 3.96e-13 3.62e-12 - 3.400000 0.718750 1.661225 3.90e-13 1.72e-12 - 3.500000 0.729227 1.310102 3.60e-13 8.16e-13 - 3.600000 0.742712 1.310080 2.78e-13 9.20e-13 + 3.400000 0.718750 1.661225 3.90e-13 1.71e-12 + 3.500000 0.729227 1.310102 3.60e-13 8.08e-13 + 3.600000 0.742712 1.310080 2.78e-13 9.28e-13 3.700000 0.758914 1.661237 9.77e-14 1.96e-12 3.800000 0.777506 1.004387 2.59e-13 3.77e-12 3.900000 0.798144 1.704019 3.72e-13 2.32e-12 4.000000 0.820474 1.214374 4.43e-13 1.53e-12 - 4.100000 0.844149 1.406358 3.40e-13 1.78e-14 - 4.200000 0.868832 1.600774 6.66e-16 1.74e-12 + 4.100000 0.844149 1.406358 3.40e-13 2.58e-14 + 4.200000 0.868832 1.600774 4.44e-16 1.74e-12 4.300000 0.894204 1.038382 1.07e-13 3.58e-12 4.400000 0.919964 1.727533 3.31e-13 2.75e-12 - 4.500000 0.945834 1.126875 4.96e-13 2.41e-12 - 4.600000 0.971557 1.496974 3.76e-13 9.10e-13 - 4.700000 0.996898 1.525070 1.11e-13 1.32e-12 - 4.800000 1.021641 1.101030 3.06e-14 2.99e-12 + 4.500000 0.945834 1.126875 4.96e-13 2.40e-12 + 4.600000 0.971557 1.496974 3.76e-13 9.02e-13 + 4.700000 0.996898 1.525070 1.11e-13 1.33e-12 + 4.800000 1.021641 1.101030 3.09e-14 2.99e-12 4.900000 1.045589 1.730922 2.75e-13 3.00e-12 - 5.000000 1.068565 1.056480 5.02e-13 3.36e-12 + 5.000000 1.068565 1.056480 5.02e-13 3.35e-12 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 2501, nstf = 252601 u error = 3.156e-13, v error = 1.909e-12, total error = 1.368e-12 - Total RHS evals: Fs = 5003, Ff = 760306 + Total RHS evals: Fs = 5002, Ff = 757803 diff --git a/examples/arkode/C_serial/ark_kpr_mri_2_0.005.out b/examples/arkode/C_serial/ark_kpr_mri_2_0.005.out index abedbafb39..af02943dbf 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_2_0.005.out +++ b/examples/arkode/C_serial/ark_kpr_mri_2_0.005.out @@ -23,20 +23,20 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.900000 1.144904 1.245763 1.43e-11 1.18e-11 1.000000 1.127010 1.691839 5.99e-12 1.10e-12 1.100000 1.107609 1.000489 8.26e-14 2.51e-11 - 1.200000 1.086821 1.677552 1.01e-11 1.56e-12 + 1.200000 1.086821 1.677552 1.01e-11 1.57e-12 1.300000 1.064777 1.277775 6.85e-12 1.07e-11 1.400000 1.041625 1.342455 1.22e-11 9.47e-12 1.500000 1.017531 1.642940 4.86e-12 1.75e-12 1.600000 0.992673 1.012112 5.21e-12 2.45e-11 - 1.700000 0.967253 1.714058 9.45e-12 6.80e-13 + 1.700000 0.967253 1.714058 9.45e-12 6.82e-13 1.800000 0.941488 1.183867 9.00e-12 1.43e-11 - 1.900000 0.915617 1.437465 1.30e-11 6.71e-12 - 2.000000 0.889903 1.577082 1.52e-12 2.79e-12 + 1.900000 0.915617 1.437465 1.30e-11 6.72e-12 + 2.000000 0.889903 1.577082 1.52e-12 2.80e-12 2.100000 0.864625 1.056467 1.07e-11 1.96e-11 - 2.200000 0.840089 1.730920 8.56e-12 9.89e-13 + 2.200000 0.840089 1.730920 8.56e-12 9.90e-13 2.300000 0.816616 1.101047 9.44e-12 1.65e-11 2.400000 0.794546 1.525051 1.24e-11 4.52e-12 - 2.500000 0.774227 1.496993 3.27e-13 4.39e-12 + 2.500000 0.774227 1.496993 3.27e-13 4.38e-12 2.600000 0.756013 1.126857 1.11e-11 1.63e-11 2.700000 0.740246 1.727536 8.00e-12 1.15e-12 2.800000 0.727247 1.038393 6.76e-12 2.05e-11 @@ -46,7 +46,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 3.200000 0.707709 1.704026 6.69e-12 1.42e-12 3.300000 0.711520 1.004391 1.56e-12 2.31e-11 3.400000 0.718750 1.661225 1.09e-11 2.37e-12 - 3.500000 0.729227 1.310102 7.68e-12 8.83e-12 + 3.500000 0.729227 1.310102 7.68e-12 8.82e-12 3.600000 0.742712 1.310080 1.45e-11 9.88e-12 3.700000 0.758914 1.661237 5.26e-12 1.98e-12 3.800000 0.777506 1.004387 3.51e-12 2.36e-11 @@ -67,7 +67,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: Final Solver Statistics: Steps: nsts = 1001, nstf = 101101 u error = 8.949e-12, v error = 1.228e-11, total error = 1.075e-11 - Total RHS evals: Fs = 2003, Ff = 0 + Total RHS evals: Fs = 2002, Ff = 0 Fast Newton iters = 262659 Fast Newton conv fails = 0 Fast Jacobian evals = 1669 diff --git a/examples/arkode/C_serial/ark_kpr_mri_3_0.01.out b/examples/arkode/C_serial/ark_kpr_mri_3_0.01.out index bb74cbef2d..641375d710 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_3_0.01.out +++ b/examples/arkode/C_serial/ark_kpr_mri_3_0.01.out @@ -11,58 +11,58 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: ------------------------------------------------------ 0.000000 1.224745 1.732051 0.00e+00 0.00e+00 0.100000 1.223763 1.078830 3.82e-05 1.37e-03 - 0.200000 1.220621 1.551459 4.80e-05 3.41e-04 - 0.300000 1.215670 1.468283 7.66e-05 5.46e-04 - 0.400000 1.208470 1.153553 5.41e-05 1.03e-03 - 0.500000 1.199503 1.721912 7.15e-06 4.49e-06 - 0.600000 1.188562 1.024685 5.17e-06 1.17e-03 - 0.700000 1.175722 1.622394 4.23e-05 3.56e-04 - 0.800000 1.161273 1.375492 8.70e-05 8.60e-04 - 0.900000 1.144848 1.244851 5.63e-05 9.12e-04 - 1.000000 1.127033 1.692049 2.33e-05 2.10e-04 - 1.100000 1.107588 1.000787 2.12e-05 2.98e-04 - 1.200000 1.086786 1.677292 3.42e-05 2.60e-04 - 1.300000 1.064866 1.278796 8.90e-05 1.02e-03 - 1.400000 1.041569 1.341623 5.69e-05 8.32e-04 - 1.500000 1.017571 1.643329 4.05e-05 3.90e-04 - 1.600000 0.992634 1.011394 3.91e-05 7.18e-04 - 1.700000 0.967229 1.714025 2.36e-05 3.26e-05 - 1.800000 0.941564 1.184983 7.60e-05 1.12e-03 - 1.900000 0.915563 1.436882 5.48e-05 5.83e-04 - 2.000000 0.889959 1.577469 5.66e-05 3.87e-04 - 2.100000 0.864576 1.055284 4.95e-05 1.18e-03 - 2.200000 0.840077 1.730958 1.20e-05 3.74e-05 - 2.300000 0.816664 1.102379 4.78e-05 1.33e-03 - 2.400000 0.794495 1.524701 5.10e-05 3.50e-04 - 2.500000 0.774298 1.497468 7.05e-05 4.75e-04 - 2.600000 0.755958 1.125772 5.49e-05 1.09e-03 - 2.700000 0.740246 1.727533 4.86e-07 3.55e-06 - 2.800000 0.727261 1.039718 1.36e-05 1.32e-03 - 2.900000 0.717255 1.600423 4.64e-05 3.36e-04 - 3.000000 0.710718 1.407151 8.20e-05 7.72e-04 - 3.100000 0.707355 1.213428 5.79e-05 9.25e-04 - 3.200000 0.707725 1.704161 1.55e-05 1.35e-04 - 3.300000 0.711504 1.005042 1.53e-05 6.51e-04 - 3.400000 0.718710 1.660915 3.93e-05 3.10e-04 - 3.500000 0.729315 1.311097 8.81e-05 9.95e-04 - 3.600000 0.742653 1.309213 5.87e-05 8.67e-04 - 3.700000 0.758947 1.661594 3.32e-05 3.57e-04 - 3.800000 0.777471 1.003977 3.51e-05 4.10e-04 - 3.900000 0.798115 1.703919 2.87e-05 9.98e-05 - 4.000000 0.820556 1.215451 8.20e-05 1.08e-03 - 4.100000 0.844093 1.405680 5.66e-05 6.78e-04 - 4.200000 0.868883 1.601174 5.11e-05 3.99e-04 - 4.300000 0.894157 1.037277 4.67e-05 1.10e-03 - 4.400000 0.919948 1.727576 1.61e-05 4.25e-05 - 4.500000 0.945893 1.128134 5.94e-05 1.26e-03 - 4.600000 0.971505 1.496571 5.20e-05 4.03e-04 - 4.700000 0.996965 1.525489 6.71e-05 4.19e-04 - 4.800000 1.021588 1.099882 5.24e-05 1.15e-03 - 4.900000 1.045586 1.730924 2.84e-06 2.62e-06 - 5.000000 1.068592 1.057870 2.68e-05 1.39e-03 + 0.200000 1.220624 1.552058 4.51e-05 2.58e-04 + 0.300000 1.215673 1.468825 7.93e-05 1.09e-03 + 0.400000 1.208472 1.154044 5.16e-05 5.39e-04 + 0.500000 1.199506 1.722356 9.39e-06 4.49e-04 + 0.600000 1.188564 1.025087 7.19e-06 1.57e-03 + 0.700000 1.175724 1.622758 4.04e-05 7.63e-06 + 0.800000 1.161275 1.375821 8.86e-05 1.19e-03 + 0.900000 1.144849 1.245149 5.48e-05 6.14e-04 + 1.000000 1.127034 1.692318 2.46e-05 4.80e-04 + 1.100000 1.107589 1.001031 2.00e-05 5.42e-04 + 1.200000 1.086787 1.677513 3.31e-05 3.93e-05 + 1.300000 1.064867 1.278996 9.00e-05 1.22e-03 + 1.400000 1.041569 1.341804 5.60e-05 6.51e-04 + 1.500000 1.017572 1.643493 4.13e-05 5.53e-04 + 1.600000 0.992635 1.011542 3.83e-05 5.70e-04 + 1.700000 0.967230 1.714160 2.29e-05 1.02e-04 + 1.800000 0.941564 1.185105 7.66e-05 1.24e-03 + 1.900000 0.915563 1.436992 5.43e-05 4.73e-04 + 2.000000 0.889960 1.577568 5.71e-05 4.86e-04 + 2.100000 0.864576 1.055374 4.91e-05 1.09e-03 + 2.200000 0.840077 1.731052 1.16e-05 1.32e-04 + 2.300000 0.816663 1.102228 4.69e-05 1.18e-03 + 2.400000 0.794497 1.525176 4.88e-05 1.25e-04 + 2.500000 0.774298 1.497421 7.03e-05 4.28e-04 + 2.600000 0.755960 1.126091 5.34e-05 7.66e-04 + 2.700000 0.740247 1.727662 1.08e-06 1.25e-04 + 2.800000 0.727261 1.039699 1.35e-05 1.31e-03 + 2.900000 0.717257 1.600958 4.39e-05 2.00e-04 + 3.000000 0.710718 1.407178 8.21e-05 7.98e-04 + 3.100000 0.707357 1.213916 5.55e-05 4.37e-04 + 3.200000 0.707726 1.704304 1.62e-05 2.78e-04 + 3.300000 0.711505 1.005146 1.48e-05 7.55e-04 + 3.400000 0.718713 1.661442 3.67e-05 2.17e-04 + 3.500000 0.729315 1.311160 8.86e-05 1.06e-03 + 3.600000 0.742656 1.309817 5.57e-05 2.63e-04 + 3.700000 0.758948 1.661745 3.41e-05 5.08e-04 + 3.800000 0.777473 1.004204 3.39e-05 1.83e-04 + 3.900000 0.798118 1.704390 2.62e-05 3.72e-04 + 4.000000 0.820557 1.215527 8.25e-05 1.15e-03 + 4.100000 0.844096 1.406353 5.31e-05 4.98e-06 + 4.200000 0.868884 1.601328 5.20e-05 5.54e-04 + 4.300000 0.894159 1.037626 4.49e-05 7.56e-04 + 4.400000 0.919950 1.727968 1.40e-05 4.34e-04 + 4.500000 0.945894 1.128221 6.00e-05 1.35e-03 + 4.600000 0.971509 1.497268 4.85e-05 2.94e-04 + 4.700000 0.996966 1.525643 6.80e-05 5.74e-04 + 4.800000 1.021591 1.100346 4.99e-05 6.84e-04 + 4.900000 1.045588 1.731239 1.11e-06 3.18e-04 + 5.000000 1.068592 1.057985 2.75e-05 1.50e-03 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 501, nstf = 50601 - u error = 5.052e-05, v error = 7.684e-04, total error = 5.445e-04 - Total RHS evals: Fs = 1504, Ff = 152306 + u error = 5.003e-05, v error = 7.575e-04, total error = 5.368e-04 + Total RHS evals: Fs = 1503, Ff = 151803 diff --git a/examples/arkode/C_serial/ark_kpr_mri_4_0.002.out b/examples/arkode/C_serial/ark_kpr_mri_4_0.002.out index 5177842335..98c64ab912 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_4_0.002.out +++ b/examples/arkode/C_serial/ark_kpr_mri_4_0.002.out @@ -32,41 +32,41 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 1.900000 0.915615 1.437305 2.35e-06 1.61e-04 2.000000 0.889904 1.576564 1.28e-06 5.18e-04 2.100000 0.864627 1.057868 1.53e-06 1.40e-03 - 2.200000 0.840087 1.730117 2.43e-06 8.03e-04 - 2.300000 0.816622 1.102136 5.78e-06 1.09e-03 - 2.400000 0.794543 1.524625 3.12e-06 4.26e-04 - 2.500000 0.774230 1.496597 2.15e-06 3.96e-04 - 2.600000 0.756013 1.127800 7.68e-08 9.44e-04 - 2.700000 0.740244 1.726696 1.85e-06 8.41e-04 - 2.800000 0.727253 1.039861 5.33e-06 1.47e-03 - 2.900000 0.717298 1.600138 3.24e-06 6.21e-04 - 3.000000 0.710633 1.406200 3.03e-06 1.79e-04 - 3.100000 0.707411 1.214845 1.22e-06 4.92e-04 - 3.200000 0.707708 1.703196 1.21e-06 8.30e-04 - 3.300000 0.711524 1.006102 4.35e-06 1.71e-03 - 3.400000 0.718746 1.660466 3.40e-06 7.59e-04 - 3.500000 0.729231 1.310194 4.07e-06 9.26e-05 - 3.600000 0.742710 1.310190 2.18e-06 1.11e-04 - 3.700000 0.758913 1.660462 4.65e-07 7.74e-04 - 3.800000 0.777509 1.006087 3.06e-06 1.70e-03 - 3.900000 0.798140 1.703188 3.88e-06 8.31e-04 - 4.000000 0.820479 1.214819 4.63e-06 4.45e-04 - 4.100000 0.844147 1.406163 2.79e-06 1.95e-04 - 4.200000 0.868833 1.600102 4.16e-07 6.73e-04 - 4.300000 0.894205 1.039813 1.50e-06 1.43e-03 - 4.400000 0.919961 1.726651 2.81e-06 8.83e-04 - 4.500000 0.945839 1.127737 5.31e-06 8.63e-04 - 4.600000 0.971554 1.496541 3.29e-06 4.33e-04 - 4.700000 0.996899 1.524547 1.45e-06 5.23e-04 - 4.800000 1.021641 1.102066 8.60e-08 1.04e-03 - 4.900000 1.045587 1.730025 2.02e-06 8.96e-04 - 5.000000 1.068570 1.057773 5.26e-06 1.29e-03 + 2.200000 0.840086 1.730085 2.59e-06 8.35e-04 + 2.300000 0.816622 1.102097 5.58e-06 1.05e-03 + 2.400000 0.794543 1.524647 3.02e-06 4.05e-04 + 2.500000 0.774229 1.496559 1.96e-06 4.34e-04 + 2.600000 0.756013 1.127823 3.12e-08 9.66e-04 + 2.700000 0.740244 1.726668 1.99e-06 8.69e-04 + 2.800000 0.727253 1.039840 5.22e-06 1.45e-03 + 2.900000 0.717298 1.600160 3.13e-06 5.99e-04 + 3.000000 0.710633 1.406170 3.18e-06 2.09e-04 + 3.100000 0.707411 1.214882 1.04e-06 5.29e-04 + 3.200000 0.707708 1.703171 1.34e-06 8.56e-04 + 3.300000 0.711524 1.006097 4.33e-06 1.71e-03 + 3.400000 0.718746 1.660481 3.32e-06 7.43e-04 + 3.500000 0.729231 1.310170 3.95e-06 6.77e-05 + 3.600000 0.742710 1.310235 1.95e-06 1.56e-04 + 3.700000 0.758913 1.660440 5.77e-07 7.97e-04 + 3.800000 0.777509 1.006097 3.11e-06 1.71e-03 + 3.900000 0.798140 1.703194 3.84e-06 8.24e-04 + 4.000000 0.820479 1.214798 4.52e-06 4.24e-04 + 4.100000 0.844147 1.406210 2.55e-06 1.48e-04 + 4.200000 0.868833 1.600081 3.15e-07 6.94e-04 + 4.300000 0.894205 1.039837 1.62e-06 1.46e-03 + 4.400000 0.919961 1.726647 2.82e-06 8.86e-04 + 4.500000 0.945839 1.127720 5.22e-06 8.45e-04 + 4.600000 0.971554 1.496585 3.07e-06 3.89e-04 + 4.700000 0.996899 1.524527 1.36e-06 5.43e-04 + 4.800000 1.021641 1.102102 2.69e-07 1.07e-03 + 4.900000 1.045587 1.730015 2.07e-06 9.07e-04 + 5.000000 1.068570 1.057763 5.21e-06 1.28e-03 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 2501, nstf = 250100 - u error = 3.482e-06, v error = 9.535e-04, total error = 6.742e-04 - Total RHS evals: Fs = 7143, Ff = 755303 + u error = 3.452e-06, v error = 9.556e-04, total error = 6.757e-04 + Total RHS evals: Fs = 7142, Ff = 750300 Slow Newton iters = 4641 Slow Newton conv fails = 0 Slow Jacobian evals = 126 diff --git a/examples/arkode/C_serial/ark_kpr_mri_5_0.002.out b/examples/arkode/C_serial/ark_kpr_mri_5_0.002.out index 654cb30f41..84d701f0b7 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_5_0.002.out +++ b/examples/arkode/C_serial/ark_kpr_mri_5_0.002.out @@ -32,38 +32,38 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 1.900000 0.915617 1.437465 9.12e-12 5.33e-11 2.000000 0.889903 1.577082 3.33e-11 4.69e-11 2.100000 0.864625 1.056467 5.94e-11 3.62e-11 - 2.200000 0.840089 1.730920 8.72e-11 3.20e-11 - 2.300000 0.816616 1.101047 1.16e-10 1.85e-11 - 2.400000 0.794546 1.525051 1.47e-10 1.05e-11 - 2.500000 0.774227 1.496993 1.78e-10 1.19e-12 - 2.600000 0.756013 1.126857 2.08e-10 1.60e-11 - 2.700000 0.740246 1.727536 2.36e-10 2.55e-11 - 2.800000 0.727247 1.038393 2.62e-10 4.36e-11 - 2.900000 0.717301 1.600759 2.83e-10 5.41e-11 - 3.000000 0.710636 1.406380 2.99e-10 6.92e-11 - 3.100000 0.707412 1.214353 3.07e-10 8.37e-11 - 3.200000 0.707709 1.704026 3.08e-10 9.30e-11 - 3.300000 0.711520 1.004391 3.02e-10 1.08e-10 - 3.400000 0.718750 1.661225 2.88e-10 1.14e-10 - 3.500000 0.729227 1.310102 2.68e-10 1.23e-10 - 3.600000 0.742712 1.310080 2.43e-10 1.28e-10 - 3.700000 0.758914 1.661237 2.15e-10 1.29e-10 - 3.800000 0.777506 1.004387 1.85e-10 1.34e-10 - 3.900000 0.798144 1.704019 1.54e-10 1.28e-10 - 4.000000 0.820474 1.214374 1.24e-10 1.28e-10 - 4.100000 0.844149 1.406358 9.39e-11 1.22e-10 - 4.200000 0.868832 1.600774 6.55e-11 1.14e-10 - 4.300000 0.894204 1.038382 3.88e-11 1.10e-10 - 4.400000 0.919964 1.727533 1.40e-11 9.70e-11 - 4.500000 0.945834 1.126875 8.93e-12 9.14e-11 - 4.600000 0.971557 1.496974 3.00e-11 7.93e-11 - 4.700000 0.996898 1.525070 4.92e-11 6.88e-11 - 4.800000 1.021641 1.101030 6.67e-11 6.10e-11 - 4.900000 1.045589 1.730922 8.26e-11 4.65e-11 - 5.000000 1.068565 1.056480 9.70e-11 4.02e-11 + 2.200000 0.840089 1.730920 2.82e-10 1.47e-08 + 2.300000 0.816616 1.101047 4.44e-10 3.30e-08 + 2.400000 0.794546 1.525051 7.68e-10 6.55e-08 + 2.500000 0.774227 1.496993 5.42e-10 6.41e-08 + 2.600000 0.756013 1.126857 9.28e-10 9.04e-08 + 2.700000 0.740246 1.727536 6.94e-10 8.51e-08 + 2.800000 0.727247 1.038393 8.40e-10 9.14e-08 + 2.900000 0.717301 1.600759 9.80e-10 1.04e-07 + 3.000000 0.710636 1.406380 7.09e-10 8.91e-08 + 3.100000 0.707412 1.214353 9.88e-10 1.02e-07 + 3.200000 0.707709 1.704026 5.93e-10 7.82e-08 + 3.300000 0.711520 1.004391 6.93e-10 7.34e-08 + 3.400000 0.718750 1.661225 6.25e-10 6.66e-08 + 3.500000 0.729227 1.310102 3.35e-10 4.19e-08 + 3.600000 0.742712 1.310080 5.14e-10 4.41e-08 + 3.700000 0.758914 1.661237 2.69e-11 9.67e-09 + 3.800000 0.777506 1.004387 1.22e-10 4.56e-10 + 3.900000 0.798144 1.704019 8.92e-11 1.87e-08 + 4.000000 0.820474 1.214374 3.10e-10 4.41e-08 + 4.100000 0.844149 1.406358 1.63e-10 4.42e-08 + 4.200000 0.868832 1.600774 6.36e-10 7.90e-08 + 4.300000 0.894204 1.038382 4.79e-10 8.38e-08 + 4.400000 0.919964 1.727533 7.59e-10 1.06e-07 + 4.500000 0.945834 1.126875 8.50e-10 1.24e-07 + 4.600000 0.971557 1.496973 7.06e-10 1.21e-07 + 4.700000 0.996898 1.525070 1.10e-09 1.49e-07 + 4.800000 1.021641 1.101030 8.67e-10 1.44e-07 + 4.900000 1.045589 1.730922 1.18e-09 1.64e-07 + 5.000000 1.068565 1.056480 1.13e-09 1.71e-07 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 2501, nstf = 250100 - u error = 1.665e-10, v error = 7.685e-11, total error = 1.296e-10 - Total RHS evals: Fs = 12506, Ff = 1002903 + u error = 5.434e-10, v error = 6.929e-08, total error = 4.900e-08 + Total RHS evals: Fs = 12505, Ff = 1000400 diff --git a/examples/arkode/C_serial/ark_kpr_mri_6_0.005.out b/examples/arkode/C_serial/ark_kpr_mri_6_0.005.out index b89492c708..0ac2b43e2f 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_6_0.005.out +++ b/examples/arkode/C_serial/ark_kpr_mri_6_0.005.out @@ -22,48 +22,48 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.900000 1.144904 1.245763 6.46e-09 2.81e-09 1.000000 1.127010 1.691839 6.05e-09 2.92e-09 1.100000 1.107609 1.000489 5.59e-09 3.00e-09 - 1.200000 1.086821 1.677552 5.08e-09 3.04e-09 - 1.300000 1.064777 1.277775 4.50e-09 3.04e-09 - 1.400000 1.041625 1.342455 3.87e-09 3.00e-09 - 1.500000 1.017531 1.642940 3.17e-09 2.93e-09 - 1.600000 0.992673 1.012112 2.39e-09 2.82e-09 - 1.700000 0.967253 1.714058 1.54e-09 2.67e-09 - 1.800000 0.941488 1.183867 6.13e-10 2.48e-09 - 1.900000 0.915617 1.437465 4.00e-10 2.25e-09 - 2.000000 0.889903 1.577082 1.50e-09 1.98e-09 - 2.100000 0.864625 1.056467 2.68e-09 1.66e-09 - 2.200000 0.840089 1.730920 3.94e-09 1.30e-09 - 2.300000 0.816616 1.101047 5.27e-09 8.99e-10 - 2.400000 0.794546 1.525051 6.65e-09 4.49e-10 - 2.500000 0.774227 1.496993 8.05e-09 4.16e-11 - 2.600000 0.756013 1.126857 9.42e-09 5.71e-10 - 2.700000 0.740246 1.727536 1.07e-08 1.13e-09 - 2.800000 0.727247 1.038393 1.19e-08 1.71e-09 - 2.900000 0.717301 1.600759 1.29e-08 2.31e-09 - 3.000000 0.710636 1.406380 1.36e-08 2.89e-09 - 3.100000 0.707412 1.214353 1.40e-08 3.46e-09 - 3.200000 0.707709 1.704026 1.40e-08 3.98e-09 - 3.300000 0.711520 1.004391 1.37e-08 4.45e-09 - 3.400000 0.718750 1.661225 1.31e-08 4.84e-09 - 3.500000 0.729227 1.310102 1.22e-08 5.15e-09 - 3.600000 0.742712 1.310080 1.11e-08 5.37e-09 - 3.700000 0.758914 1.661237 9.81e-09 5.50e-09 - 3.800000 0.777506 1.004387 8.45e-09 5.53e-09 - 3.900000 0.798144 1.704019 7.04e-09 5.47e-09 - 4.000000 0.820474 1.214374 5.64e-09 5.34e-09 - 4.100000 0.844149 1.406358 4.29e-09 5.13e-09 - 4.200000 0.868832 1.600774 3.00e-09 4.86e-09 - 4.300000 0.894204 1.038382 1.78e-09 4.54e-09 - 4.400000 0.919964 1.727533 6.51e-10 4.18e-09 - 4.500000 0.945834 1.126875 3.93e-10 3.79e-09 - 4.600000 0.971557 1.496974 1.35e-09 3.38e-09 - 4.700000 0.996898 1.525070 2.23e-09 2.94e-09 - 4.800000 1.021641 1.101030 3.02e-09 2.50e-09 - 4.900000 1.045589 1.730922 3.75e-09 2.06e-09 - 5.000000 1.068565 1.056480 4.40e-09 1.61e-09 + 1.200000 1.086821 1.677553 9.61e-09 6.91e-07 + 1.300000 1.064777 1.277776 4.15e-09 8.84e-07 + 1.400000 1.041625 1.342457 2.28e-08 1.86e-06 + 1.500000 1.017531 1.642942 9.17e-09 1.87e-06 + 1.600000 0.992673 1.012115 2.36e-08 2.51e-06 + 1.700000 0.967253 1.714061 2.39e-08 2.93e-06 + 1.800000 0.941488 1.183870 2.22e-08 3.09e-06 + 1.900000 0.915617 1.437469 3.90e-08 3.95e-06 + 2.000000 0.889903 1.577086 2.44e-08 3.80e-06 + 2.100000 0.864625 1.056471 4.00e-08 4.37e-06 + 2.200000 0.840089 1.730925 3.45e-08 4.45e-06 + 2.300000 0.816616 1.101051 3.61e-08 4.52e-06 + 2.400000 0.794546 1.525056 4.93e-08 5.12e-06 + 2.500000 0.774228 1.496998 3.42e-08 4.76e-06 + 2.600000 0.756013 1.126862 4.95e-08 5.17e-06 + 2.700000 0.740246 1.727541 3.78e-08 4.84e-06 + 2.800000 0.727247 1.038398 4.12e-08 4.72e-06 + 2.900000 0.717301 1.600764 4.83e-08 4.93e-06 + 3.000000 0.710636 1.406384 3.27e-08 4.30e-06 + 3.100000 0.707413 1.214357 4.54e-08 4.46e-06 + 3.200000 0.707709 1.704030 2.76e-08 3.71e-06 + 3.300000 0.711520 1.004394 3.10e-08 3.37e-06 + 3.400000 0.718750 1.661228 3.04e-08 3.14e-06 + 3.500000 0.729227 1.310104 1.54e-08 2.31e-06 + 3.600000 0.742712 1.310082 2.51e-08 2.26e-06 + 3.700000 0.758914 1.661238 3.68e-09 1.25e-06 + 3.800000 0.777506 1.004388 8.35e-09 8.51e-07 + 3.900000 0.798144 1.704019 2.03e-09 3.40e-07 + 4.000000 0.820474 1.214373 9.04e-09 4.82e-07 + 4.100000 0.844149 1.406358 1.12e-10 5.31e-07 + 4.200000 0.868832 1.600773 2.11e-08 1.53e-06 + 4.300000 0.894204 1.038380 1.31e-08 1.77e-06 + 4.400000 0.919964 1.727531 2.28e-08 2.35e-06 + 4.500000 0.945834 1.126872 2.78e-08 2.94e-06 + 4.600000 0.971557 1.496971 1.87e-08 2.85e-06 + 4.700000 0.996898 1.525066 3.74e-08 3.66e-06 + 4.800000 1.021641 1.101026 2.58e-08 3.61e-06 + 4.900000 1.045589 1.730918 3.78e-08 4.12e-06 + 5.000000 1.068565 1.056476 3.68e-08 4.39e-06 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 1001, nstf = 100100 - u error = 7.569e-09, v error = 3.238e-09, total error = 5.821e-09 - Total RHS evals: Fs = 5006, Ff = 301303 + u error = 2.628e-08, v error = 2.982e-06, total error = 2.109e-06 + Total RHS evals: Fs = 5005, Ff = 300300 diff --git a/examples/arkode/C_serial/ark_kpr_mri_7_0.001.out b/examples/arkode/C_serial/ark_kpr_mri_7_0.001.out index c635bf99a5..7e813e5076 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_7_0.001.out +++ b/examples/arkode/C_serial/ark_kpr_mri_7_0.001.out @@ -22,51 +22,51 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.900000 1.144904 1.245763 3.24e-10 3.40e-10 1.000000 1.127010 1.691839 3.03e-10 3.56e-10 1.100000 1.107609 1.000489 2.77e-10 3.66e-10 - 1.200000 1.086821 1.677552 2.55e-10 3.66e-10 - 1.300000 1.064777 1.277775 2.29e-10 3.68e-10 - 1.400000 1.041625 1.342455 1.96e-10 3.63e-10 - 1.500000 1.017531 1.642940 1.59e-10 3.51e-10 - 1.600000 0.992673 1.012112 1.22e-10 3.42e-10 - 1.700000 0.967253 1.714058 7.84e-11 3.18e-10 - 1.800000 0.941488 1.183867 3.53e-11 2.98e-10 - 1.900000 0.915617 1.437465 1.65e-11 2.68e-10 - 2.000000 0.889903 1.577082 7.04e-11 2.33e-10 - 2.100000 0.864625 1.056467 1.30e-10 1.98e-10 - 2.200000 0.840089 1.730920 1.96e-10 1.49e-10 - 2.300000 0.816616 1.101047 2.60e-10 1.03e-10 - 2.400000 0.794546 1.525051 3.29e-10 4.53e-11 - 2.500000 0.774227 1.496993 4.02e-10 1.97e-11 - 2.600000 0.756013 1.126857 4.66e-10 8.15e-11 - 2.700000 0.740246 1.727536 5.35e-10 1.53e-10 - 2.800000 0.727247 1.038393 5.92e-10 2.19e-10 - 2.900000 0.717301 1.600759 7.54e-10 2.96e-10 - 3.000000 0.710636 1.406380 6.69e-10 3.66e-10 - 3.100000 0.707412 1.214353 6.92e-10 4.31e-10 - 3.200000 0.707709 1.704026 6.98e-10 4.97e-10 - 3.300000 0.711520 1.004391 6.80e-10 5.46e-10 - 3.400000 0.718750 1.661225 6.52e-10 5.96e-10 - 3.500000 0.729227 1.310102 6.05e-10 6.29e-10 - 3.600000 0.742712 1.310080 5.52e-10 6.53e-10 - 3.700000 0.758914 1.661237 4.96e-10 6.77e-10 - 3.800000 0.777506 1.004387 4.21e-10 6.74e-10 - 3.900000 0.798144 1.704019 3.55e-10 6.70e-10 - 4.000000 0.820474 1.214374 2.86e-10 6.48e-10 - 4.100000 0.844149 1.406358 2.57e-10 6.16e-10 - 4.200000 0.868832 1.600774 1.53e-10 5.75e-10 - 4.300000 0.894204 1.038382 9.25e-11 5.57e-10 - 4.400000 0.919964 1.727533 3.64e-11 4.94e-10 - 4.500000 0.945834 1.126875 1.44e-11 4.68e-10 - 4.600000 0.971557 1.496974 6.29e-11 4.03e-10 - 4.700000 0.996898 1.525070 1.03e-10 3.50e-10 - 4.800000 1.021641 1.101030 1.45e-10 3.12e-10 - 4.900000 1.045589 1.730922 1.85e-10 2.34e-10 - 5.000000 1.068565 1.056480 3.89e-11 2.06e-10 + 1.200000 1.086821 1.677552 5.69e-10 1.86e-08 + 1.300000 1.064777 1.277775 4.83e-10 2.68e-08 + 1.400000 1.041625 1.342455 8.95e-10 5.77e-08 + 1.500000 1.017531 1.642940 5.00e-10 5.67e-08 + 1.600000 0.992673 1.012112 8.70e-10 7.96e-08 + 1.700000 0.967253 1.714058 7.37e-10 8.91e-08 + 1.800000 0.941488 1.183867 7.22e-10 9.68e-08 + 1.900000 0.915617 1.437466 1.04e-09 1.23e-07 + 2.000000 0.889903 1.577082 6.10e-10 1.18e-07 + 2.100000 0.864625 1.056467 9.59e-10 1.38e-07 + 2.200000 0.840089 1.730920 6.48e-10 1.37e-07 + 2.300000 0.816616 1.101047 6.80e-10 1.42e-07 + 2.400000 0.794546 1.525051 8.54e-10 1.59e-07 + 2.500000 0.774227 1.496993 4.04e-10 1.48e-07 + 2.600000 0.756013 1.126857 7.11e-10 1.63e-07 + 2.700000 0.740246 1.727537 2.49e-10 1.50e-07 + 2.800000 0.727247 1.038393 3.21e-10 1.48e-07 + 2.900000 0.717301 1.600759 2.33e-10 1.52e-07 + 3.000000 0.710636 1.406380 4.16e-11 1.33e-07 + 3.100000 0.707412 1.214353 2.35e-10 1.39e-07 + 3.200000 0.707709 1.704026 2.75e-10 1.13e-07 + 3.300000 0.711520 1.004391 1.12e-10 1.05e-07 + 3.400000 0.718750 1.661225 1.83e-10 9.43e-08 + 3.500000 0.729227 1.310102 4.35e-10 6.97e-08 + 3.600000 0.742712 1.310080 1.43e-10 6.82e-08 + 3.700000 0.758914 1.661237 6.30e-10 3.50e-08 + 3.800000 0.777506 1.004387 3.71e-10 2.49e-08 + 3.900000 0.798144 1.704019 5.33e-10 4.85e-09 + 4.000000 0.820474 1.214374 6.47e-10 1.87e-08 + 4.100000 0.844149 1.406358 4.09e-10 2.11e-08 + 4.200000 0.868832 1.600774 8.15e-10 5.31e-08 + 4.300000 0.894204 1.038382 5.04e-10 5.84e-08 + 4.400000 0.919964 1.727533 7.59e-10 8.03e-08 + 4.500000 0.945834 1.126875 7.45e-10 9.63e-08 + 4.600000 0.971557 1.496973 5.09e-10 9.52e-08 + 4.700000 0.996898 1.525070 8.99e-10 1.20e-07 + 4.800000 1.021641 1.101030 5.36e-10 1.17e-07 + 4.900000 1.045589 1.730922 8.55e-10 1.36e-07 + 5.000000 1.068565 1.056480 8.93e-10 1.42e-07 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 3.803e-10, v error = 3.943e-10, total error = 3.874e-10 - Total RHS evals: Fs = 45313, Ff = 1550001 + u error = 5.737e-10, v error = 9.378e-08, total error = 6.631e-08 + Total RHS evals: Fs = 45312, Ff = 1530000 Slow Newton iters = 30312 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/C_serial/ark_kpr_mri_7_0.001_-100_100_0.5_1.out b/examples/arkode/C_serial/ark_kpr_mri_7_0.001_-100_100_0.5_1.out index d70f3bcd8a..7d68555c9c 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_7_0.001_-100_100_0.5_1.out +++ b/examples/arkode/C_serial/ark_kpr_mri_7_0.001_-100_100_0.5_1.out @@ -22,51 +22,51 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.900000 1.144904 1.245763 3.23e-10 3.41e-10 1.000000 1.127010 1.691839 3.03e-10 3.56e-10 1.100000 1.107609 1.000489 2.71e-10 3.60e-10 - 1.200000 1.086821 1.677552 2.54e-10 3.60e-10 - 1.300000 1.064777 1.277775 2.27e-10 3.64e-10 - 1.400000 1.041625 1.342455 1.95e-10 3.59e-10 - 1.500000 1.017531 1.642940 1.58e-10 3.46e-10 - 1.600000 0.992673 1.012112 1.21e-10 3.37e-10 - 1.700000 0.967253 1.714058 7.80e-11 3.14e-10 - 1.800000 0.941488 1.183867 3.34e-11 2.95e-10 - 1.900000 0.915617 1.437465 1.78e-11 2.65e-10 - 2.000000 0.889903 1.577082 7.23e-11 2.30e-10 - 2.100000 0.864625 1.056467 1.32e-10 1.95e-10 - 2.200000 0.840089 1.730920 1.96e-10 1.46e-10 - 2.300000 0.816616 1.101047 2.61e-10 1.01e-10 - 2.400000 0.794546 1.525051 3.30e-10 4.30e-11 - 2.500000 0.774227 1.496993 4.23e-10 3.21e-11 - 2.600000 0.756013 1.126857 4.68e-10 9.29e-11 - 2.700000 0.740246 1.727536 5.36e-10 1.64e-10 - 2.800000 0.727247 1.038393 5.93e-10 2.29e-10 - 2.900000 0.717301 1.600759 5.07e-10 3.03e-10 - 3.000000 0.710636 1.406380 6.73e-10 3.71e-10 - 3.100000 0.707412 1.214353 6.94e-10 4.36e-10 - 3.200000 0.707709 1.704026 6.99e-10 5.01e-10 - 3.300000 0.711520 1.004391 6.73e-10 5.49e-10 - 3.400000 0.718750 1.661225 6.52e-10 5.98e-10 - 3.500000 0.729227 1.310102 6.01e-10 6.31e-10 - 3.600000 0.742712 1.310080 5.52e-10 6.56e-10 - 3.700000 0.758914 1.661237 4.89e-10 6.71e-10 - 3.800000 0.777506 1.004387 4.21e-10 6.69e-10 - 3.900000 0.798144 1.704019 3.62e-10 6.66e-10 - 4.000000 0.820474 1.214374 2.84e-10 6.45e-10 - 4.100000 0.844149 1.406358 3.44e-10 6.14e-10 - 4.200000 0.868832 1.600774 1.51e-10 5.74e-10 - 4.300000 0.894204 1.038382 9.08e-11 5.56e-10 - 4.400000 0.919964 1.727533 4.15e-11 5.08e-10 - 4.500000 0.945834 1.126875 1.62e-11 4.80e-10 - 4.600000 0.971557 1.496974 6.43e-11 4.14e-10 - 4.700000 0.996898 1.525070 1.06e-10 3.63e-10 - 4.800000 1.021641 1.101030 1.47e-10 3.24e-10 - 4.900000 1.045589 1.730922 1.85e-10 2.45e-10 - 5.000000 1.068565 1.056480 3.43e-10 2.17e-10 + 1.200000 1.086821 1.677552 5.69e-10 1.86e-08 + 1.300000 1.064777 1.277775 4.82e-10 2.67e-08 + 1.400000 1.041625 1.342455 8.94e-10 5.77e-08 + 1.500000 1.017531 1.642940 4.98e-10 5.67e-08 + 1.600000 0.992673 1.012112 8.69e-10 7.96e-08 + 1.700000 0.967253 1.714058 7.36e-10 8.91e-08 + 1.800000 0.941488 1.183867 7.20e-10 9.68e-08 + 1.900000 0.915617 1.437466 1.04e-09 1.23e-07 + 2.000000 0.889903 1.577082 6.08e-10 1.18e-07 + 2.100000 0.864625 1.056467 9.58e-10 1.38e-07 + 2.200000 0.840089 1.730920 6.47e-10 1.37e-07 + 2.300000 0.816616 1.101047 6.78e-10 1.42e-07 + 2.400000 0.794546 1.525051 8.52e-10 1.59e-07 + 2.500000 0.774227 1.496993 3.83e-10 1.48e-07 + 2.600000 0.756013 1.126857 7.08e-10 1.63e-07 + 2.700000 0.740246 1.727537 2.49e-10 1.50e-07 + 2.800000 0.727247 1.038393 3.20e-10 1.48e-07 + 2.900000 0.717301 1.600759 4.79e-10 1.52e-07 + 3.000000 0.710636 1.406380 4.53e-11 1.33e-07 + 3.100000 0.707412 1.214353 2.33e-10 1.39e-07 + 3.200000 0.707709 1.704026 2.75e-10 1.13e-07 + 3.300000 0.711520 1.004391 1.05e-10 1.05e-07 + 3.400000 0.718750 1.661225 1.83e-10 9.43e-08 + 3.500000 0.729227 1.310102 4.31e-10 6.97e-08 + 3.600000 0.742712 1.310080 1.43e-10 6.82e-08 + 3.700000 0.758914 1.661237 6.23e-10 3.50e-08 + 3.800000 0.777506 1.004387 3.71e-10 2.49e-08 + 3.900000 0.798144 1.704019 5.41e-10 4.85e-09 + 4.000000 0.820474 1.214374 6.45e-10 1.87e-08 + 4.100000 0.844149 1.406358 4.95e-10 2.11e-08 + 4.200000 0.868832 1.600774 8.13e-10 5.31e-08 + 4.300000 0.894204 1.038382 5.02e-10 5.84e-08 + 4.400000 0.919964 1.727533 7.64e-10 8.03e-08 + 4.500000 0.945834 1.126875 7.43e-10 9.63e-08 + 4.600000 0.971557 1.496973 5.08e-10 9.52e-08 + 4.700000 0.996898 1.525070 8.96e-10 1.20e-07 + 4.800000 1.021641 1.101030 5.34e-10 1.17e-07 + 4.900000 1.045589 1.730922 8.55e-10 1.36e-07 + 5.000000 1.068565 1.056480 1.27e-09 1.42e-07 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 3.764e-10, v error = 3.952e-10, total error = 3.859e-10 - Total RHS evals: Fs = 35313, Ff = 1550001 + u error = 5.908e-10, v error = 9.378e-08, total error = 6.631e-08 + Total RHS evals: Fs = 35312, Ff = 1530000 Slow Newton iters = 30312 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/C_serial/ark_kpr_mri_8_0.001.out b/examples/arkode/C_serial/ark_kpr_mri_8_0.001.out index 094d1b1024..733b1ac7c6 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_8_0.001.out +++ b/examples/arkode/C_serial/ark_kpr_mri_8_0.001.out @@ -22,51 +22,51 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.900000 1.144904 1.245763 1.52e-10 1.47e-10 1.000000 1.127010 1.691839 1.39e-10 1.50e-10 1.100000 1.107609 1.000489 1.29e-10 1.51e-10 - 1.200000 1.086821 1.677552 1.17e-10 1.57e-10 - 1.300000 1.064777 1.277775 1.10e-10 1.55e-10 - 1.400000 1.041625 1.342455 9.08e-11 1.53e-10 - 1.500000 1.017531 1.642940 6.97e-11 1.52e-10 - 1.600000 0.992673 1.012112 5.33e-11 1.42e-10 - 1.700000 0.967253 1.714058 3.20e-11 1.38e-10 - 1.800000 0.941488 1.183867 1.63e-11 1.24e-10 - 1.900000 0.915617 1.437465 1.06e-11 1.13e-10 - 2.000000 0.889903 1.577082 3.61e-11 9.93e-11 - 2.100000 0.864625 1.056467 6.56e-11 7.88e-11 - 2.200000 0.840089 1.730920 9.96e-11 6.38e-11 - 2.300000 0.816616 1.101047 1.27e-10 3.80e-11 - 2.400000 0.794546 1.525051 1.59e-10 1.69e-11 - 2.500000 0.774227 1.496993 1.88e-10 9.37e-12 - 2.600000 0.756013 1.126857 2.24e-10 3.98e-11 - 2.700000 0.740246 1.727536 2.59e-10 6.53e-11 - 2.800000 0.727247 1.038393 2.83e-10 1.00e-10 - 2.900000 0.717301 1.600759 3.04e-10 1.27e-10 - 3.000000 0.710636 1.406380 3.17e-10 1.58e-10 - 3.100000 0.707412 1.214353 3.28e-10 1.88e-10 - 3.200000 0.707709 1.704026 3.27e-10 2.11e-10 - 3.300000 0.711520 1.004391 3.17e-10 2.40e-10 - 3.400000 0.718750 1.661225 3.04e-10 2.54e-10 - 3.500000 0.729227 1.310102 2.87e-10 2.71e-10 - 3.600000 0.742712 1.310080 2.57e-10 2.81e-10 - 3.700000 0.758914 1.661237 2.23e-10 2.83e-10 - 3.800000 0.777506 1.004387 1.91e-10 2.87e-10 - 3.900000 0.798144 1.704019 1.58e-10 2.78e-10 - 4.000000 0.820474 1.214374 1.33e-10 2.73e-10 - 4.100000 0.844149 1.406358 9.74e-11 2.68e-10 - 4.200000 0.868832 1.600774 6.65e-11 2.60e-10 - 4.300000 0.894204 1.038382 3.79e-11 2.21e-10 - 4.400000 0.919964 1.727533 9.38e-12 2.25e-10 - 4.500000 0.945834 1.126875 1.03e-11 1.82e-10 - 4.600000 0.971557 1.496974 3.35e-11 1.74e-10 - 4.700000 0.996898 1.525070 5.02e-11 1.52e-10 - 4.800000 1.021641 1.101030 7.16e-11 1.11e-10 - 4.900000 1.045589 1.730922 9.30e-11 1.12e-10 - 5.000000 1.068565 1.056480 1.05e-10 6.39e-11 + 1.200000 1.086821 1.677552 1.11e-10 1.34e-09 + 1.300000 1.064777 1.277775 1.01e-10 1.87e-09 + 1.400000 1.041625 1.342455 7.19e-11 3.88e-09 + 1.500000 1.017531 1.642940 5.10e-11 3.83e-09 + 1.600000 0.992673 1.012112 2.70e-11 5.31e-09 + 1.700000 0.967253 1.714058 2.58e-12 5.92e-09 + 1.800000 0.941488 1.183867 1.57e-11 6.41e-09 + 1.900000 0.915617 1.437465 5.11e-11 8.09e-09 + 2.000000 0.889903 1.577082 7.50e-11 7.77e-09 + 2.100000 0.864625 1.056467 1.11e-10 9.08e-09 + 2.200000 0.840089 1.730920 1.45e-10 9.00e-09 + 2.300000 0.816616 1.101047 1.74e-10 9.29e-09 + 2.400000 0.794546 1.525051 2.12e-10 1.04e-08 + 2.500000 0.774227 1.496993 2.37e-10 9.66e-09 + 2.600000 0.756013 1.126857 2.78e-10 1.06e-08 + 2.700000 0.740246 1.727536 3.08e-10 9.69e-09 + 2.800000 0.727247 1.038393 3.32e-10 9.59e-09 + 2.900000 0.717301 1.600759 3.54e-10 9.80e-09 + 3.000000 0.710636 1.406380 3.62e-10 8.56e-09 + 3.100000 0.707412 1.214353 3.74e-10 8.90e-09 + 3.200000 0.707709 1.704026 3.65e-10 7.20e-09 + 3.300000 0.711520 1.004391 3.52e-10 6.65e-09 + 3.400000 0.718750 1.661225 3.35e-10 5.93e-09 + 3.500000 0.729227 1.310102 3.10e-10 4.31e-09 + 3.600000 0.742712 1.310080 2.79e-10 4.21e-09 + 3.700000 0.758914 1.661237 2.35e-10 2.04e-09 + 3.800000 0.777506 1.004387 2.00e-10 1.38e-09 + 3.900000 0.798144 1.704019 1.60e-10 7.67e-11 + 4.000000 0.820474 1.214374 1.27e-10 1.46e-09 + 4.100000 0.844149 1.406358 9.07e-11 1.61e-09 + 4.200000 0.868832 1.600774 4.93e-11 3.69e-09 + 4.300000 0.894204 1.038382 1.90e-11 4.00e-09 + 4.400000 0.919964 1.727533 1.67e-11 5.43e-09 + 4.500000 0.945834 1.126875 4.17e-11 6.43e-09 + 4.600000 0.971557 1.496974 6.45e-11 6.36e-09 + 4.700000 0.996898 1.525070 8.95e-11 7.97e-09 + 4.800000 1.021641 1.101030 1.10e-10 7.71e-09 + 4.900000 1.045589 1.730922 1.38e-10 8.97e-09 + 5.000000 1.068565 1.056480 1.52e-10 9.29e-09 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 1.795e-10, v error = 1.678e-10, total error = 1.737e-10 - Total RHS evals: Fse = 20001, Fsi = 50342, Ff = 1550001 + u error = 1.999e-10, v error = 6.118e-09, total error = 4.328e-09 + Total RHS evals: Fse = 20000, Fsi = 50341, Ff = 1530000 Slow Newton iters = 30341 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/C_serial/ark_kpr_mri_8_0.001_-100_100_0.5_1.out b/examples/arkode/C_serial/ark_kpr_mri_8_0.001_-100_100_0.5_1.out index 2d69932a6a..fbe69d74d1 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_8_0.001_-100_100_0.5_1.out +++ b/examples/arkode/C_serial/ark_kpr_mri_8_0.001_-100_100_0.5_1.out @@ -22,51 +22,51 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.900000 1.144904 1.245763 1.50e-10 1.45e-10 1.000000 1.127010 1.691839 1.39e-10 1.49e-10 1.100000 1.107609 1.000489 1.28e-10 1.48e-10 - 1.200000 1.086821 1.677552 1.16e-10 1.54e-10 - 1.300000 1.064777 1.277775 1.06e-10 1.54e-10 - 1.400000 1.041625 1.342455 8.86e-11 1.52e-10 - 1.500000 1.017531 1.642940 6.63e-11 1.54e-10 - 1.600000 0.992673 1.012112 5.20e-11 1.44e-10 - 1.700000 0.967253 1.714058 3.14e-11 1.40e-10 - 1.800000 0.941488 1.183867 1.25e-11 1.26e-10 - 1.900000 0.915617 1.437465 1.30e-11 1.15e-10 - 2.000000 0.889903 1.577082 3.91e-11 1.01e-10 - 2.100000 0.864625 1.056467 6.79e-11 8.03e-11 - 2.200000 0.840089 1.730920 9.97e-11 6.52e-11 - 2.300000 0.816616 1.101047 1.29e-10 3.94e-11 - 2.400000 0.794546 1.525051 1.61e-10 1.81e-11 - 2.500000 0.774227 1.496993 1.92e-10 8.14e-12 - 2.600000 0.756013 1.126857 2.26e-10 3.86e-11 - 2.700000 0.740246 1.727536 2.58e-10 6.41e-11 - 2.800000 0.727247 1.038393 2.84e-10 9.90e-11 - 2.900000 0.717301 1.600759 3.05e-10 1.26e-10 - 3.000000 0.710636 1.406380 3.19e-10 1.58e-10 - 3.100000 0.707412 1.214353 3.28e-10 1.87e-10 - 3.200000 0.707709 1.704026 3.28e-10 2.11e-10 - 3.300000 0.711520 1.004391 3.14e-10 2.38e-10 - 3.400000 0.718750 1.661225 3.03e-10 2.53e-10 - 3.500000 0.729227 1.310102 2.83e-10 2.70e-10 - 3.600000 0.742712 1.310080 2.55e-10 2.80e-10 - 3.700000 0.758914 1.661237 2.23e-10 2.81e-10 - 3.800000 0.777506 1.004387 1.90e-10 2.86e-10 - 3.900000 0.798144 1.704019 1.57e-10 2.77e-10 - 4.000000 0.820474 1.214374 1.28e-10 2.72e-10 - 4.100000 0.844149 1.406358 9.48e-11 2.67e-10 - 4.200000 0.868832 1.600774 6.42e-11 2.59e-10 - 4.300000 0.894204 1.038382 3.58e-11 2.20e-10 - 4.400000 0.919964 1.727533 9.15e-12 2.25e-10 - 4.500000 0.945834 1.126875 1.30e-11 1.82e-10 - 4.600000 0.971557 1.496974 3.55e-11 1.73e-10 - 4.700000 0.996898 1.525070 5.41e-11 1.52e-10 - 4.800000 1.021641 1.101030 7.39e-11 1.11e-10 - 4.900000 1.045589 1.730922 9.28e-11 1.12e-10 - 5.000000 1.068565 1.056480 1.06e-10 6.40e-11 + 1.200000 1.086821 1.677552 1.10e-10 1.34e-09 + 1.300000 1.064777 1.277775 9.68e-11 1.87e-09 + 1.400000 1.041625 1.342455 6.97e-11 3.88e-09 + 1.500000 1.017531 1.642940 4.77e-11 3.83e-09 + 1.600000 0.992673 1.012112 2.58e-11 5.31e-09 + 1.700000 0.967253 1.714058 2.03e-12 5.92e-09 + 1.800000 0.941488 1.183867 1.94e-11 6.41e-09 + 1.900000 0.915617 1.437465 5.36e-11 8.10e-09 + 2.000000 0.889903 1.577082 7.80e-11 7.77e-09 + 2.100000 0.864625 1.056467 1.14e-10 9.08e-09 + 2.200000 0.840089 1.730920 1.45e-10 9.00e-09 + 2.300000 0.816616 1.101047 1.76e-10 9.29e-09 + 2.400000 0.794546 1.525051 2.14e-10 1.04e-08 + 2.500000 0.774227 1.496993 2.41e-10 9.66e-09 + 2.600000 0.756013 1.126857 2.80e-10 1.06e-08 + 2.700000 0.740246 1.727536 3.08e-10 9.69e-09 + 2.800000 0.727247 1.038393 3.33e-10 9.59e-09 + 2.900000 0.717301 1.600759 3.55e-10 9.80e-09 + 3.000000 0.710636 1.406380 3.63e-10 8.56e-09 + 3.100000 0.707412 1.214353 3.74e-10 8.90e-09 + 3.200000 0.707709 1.704026 3.65e-10 7.20e-09 + 3.300000 0.711520 1.004391 3.49e-10 6.65e-09 + 3.400000 0.718750 1.661225 3.34e-10 5.93e-09 + 3.500000 0.729227 1.310102 3.06e-10 4.31e-09 + 3.600000 0.742712 1.310080 2.77e-10 4.21e-09 + 3.700000 0.758914 1.661237 2.35e-10 2.04e-09 + 3.800000 0.777506 1.004387 1.99e-10 1.38e-09 + 3.900000 0.798144 1.704019 1.59e-10 7.79e-11 + 4.000000 0.820474 1.214374 1.22e-10 1.46e-09 + 4.100000 0.844149 1.406358 8.81e-11 1.61e-09 + 4.200000 0.868832 1.600774 4.70e-11 3.69e-09 + 4.300000 0.894204 1.038382 1.69e-11 4.00e-09 + 4.400000 0.919964 1.727533 1.70e-11 5.43e-09 + 4.500000 0.945834 1.126875 4.43e-11 6.43e-09 + 4.600000 0.971557 1.496974 6.66e-11 6.36e-09 + 4.700000 0.996898 1.525070 9.34e-11 7.97e-09 + 4.800000 1.021641 1.101030 1.12e-10 7.71e-09 + 4.900000 1.045589 1.730922 1.37e-10 8.97e-09 + 5.000000 1.068565 1.056480 1.53e-10 9.29e-09 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 1.860e-10, v error = 1.672e-10, total error = 1.769e-10 - Total RHS evals: Fse = 20001, Fsi = 35342, Ff = 1550001 + u error = 2.059e-10, v error = 6.119e-09, total error = 4.329e-09 + Total RHS evals: Fse = 20000, Fsi = 35341, Ff = 1530000 Slow Newton iters = 30341 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/C_serial/ark_kpr_mri_9_0.001.out b/examples/arkode/C_serial/ark_kpr_mri_9_0.001.out index 0d0c029141..a8b2862541 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_9_0.001.out +++ b/examples/arkode/C_serial/ark_kpr_mri_9_0.001.out @@ -22,51 +22,51 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.900000 1.144904 1.245763 1.13e-11 3.12e-12 1.000000 1.127010 1.691839 1.30e-11 2.17e-12 1.100000 1.107609 1.000489 1.11e-11 1.99e-12 - 1.200000 1.086821 1.677552 9.53e-12 2.46e-12 - 1.300000 1.064777 1.277775 7.58e-12 8.15e-14 - 1.400000 1.041625 1.342455 5.18e-12 6.19e-13 - 1.500000 1.017531 1.642940 6.00e-12 2.62e-12 - 1.600000 0.992673 1.012112 3.78e-12 1.37e-12 - 1.700000 0.967253 1.714058 3.29e-12 3.05e-12 - 1.800000 0.941488 1.183867 2.33e-13 3.64e-13 - 1.900000 0.915617 1.437465 3.31e-12 1.16e-12 - 2.000000 0.889903 1.577082 6.58e-12 1.93e-12 - 2.100000 0.864625 1.056467 7.90e-12 1.61e-12 - 2.200000 0.840089 1.730920 6.75e-12 2.46e-12 - 2.300000 0.816616 1.101047 1.18e-11 1.79e-12 - 2.400000 0.794546 1.525051 1.53e-11 5.67e-13 - 2.500000 0.774227 1.496993 1.85e-11 6.68e-14 - 2.600000 0.756013 1.126857 2.18e-11 2.74e-12 - 2.700000 0.740246 1.727536 2.05e-11 7.31e-13 - 2.800000 0.727247 1.038393 2.46e-11 4.05e-12 - 2.900000 0.717301 1.600759 2.68e-11 9.31e-13 - 3.000000 0.710636 1.406380 2.78e-11 2.59e-12 - 3.100000 0.707412 1.214353 2.85e-11 4.24e-12 - 3.200000 0.707709 1.704026 2.85e-11 1.49e-12 - 3.300000 0.711520 1.004391 2.77e-11 6.31e-12 - 3.400000 0.718750 1.661225 2.60e-11 2.42e-12 - 3.500000 0.729227 1.310102 2.41e-11 4.83e-12 - 3.600000 0.742712 1.310080 2.08e-11 5.02e-12 - 3.700000 0.758914 1.661237 1.99e-11 2.84e-12 - 3.800000 0.777506 1.004387 1.62e-11 7.00e-12 - 3.900000 0.798144 1.704019 1.39e-11 2.46e-12 - 4.000000 0.820474 1.214374 1.04e-11 5.40e-12 - 4.100000 0.844149 1.406358 6.45e-12 8.29e-12 - 4.200000 0.868832 1.600774 3.62e-12 1.13e-11 - 4.300000 0.894204 1.038382 1.62e-12 2.54e-13 - 4.400000 0.919964 1.727533 2.31e-12 1.24e-11 - 4.500000 0.945834 1.126875 2.27e-12 7.51e-13 - 4.600000 0.971557 1.496974 5.17e-12 6.90e-12 - 4.700000 0.996898 1.525070 8.51e-12 6.90e-12 - 4.800000 1.021641 1.101030 8.53e-12 1.57e-12 - 4.900000 1.045589 1.730922 6.09e-12 9.55e-12 - 5.000000 1.068565 1.056480 9.98e-12 3.37e-12 + 1.200000 1.086821 1.677552 3.12e-10 1.86e-08 + 1.300000 1.064777 1.277775 2.57e-10 2.70e-08 + 1.400000 1.041625 1.342455 6.84e-10 5.85e-08 + 1.500000 1.017531 1.642940 3.49e-10 5.76e-08 + 1.600000 0.992673 1.012112 7.38e-10 8.10e-08 + 1.700000 0.967253 1.714058 6.58e-10 9.07e-08 + 1.800000 0.941488 1.183866 6.84e-10 9.86e-08 + 1.900000 0.915617 1.437465 1.04e-09 1.25e-07 + 2.000000 0.889903 1.577082 6.81e-10 1.20e-07 + 2.100000 0.864625 1.056467 1.07e-09 1.41e-07 + 2.200000 0.840089 1.730920 8.42e-10 1.40e-07 + 2.300000 0.816616 1.101047 9.29e-10 1.45e-07 + 2.400000 0.794546 1.525051 1.16e-09 1.63e-07 + 2.500000 0.774227 1.496993 8.00e-10 1.52e-07 + 2.600000 0.756013 1.126856 1.15e-09 1.67e-07 + 2.700000 0.740246 1.727536 7.78e-10 1.53e-07 + 2.800000 0.727247 1.038393 8.94e-10 1.52e-07 + 2.900000 0.717301 1.600759 9.62e-10 1.56e-07 + 3.000000 0.710636 1.406379 6.17e-10 1.37e-07 + 3.100000 0.707412 1.214353 8.99e-10 1.43e-07 + 3.200000 0.707709 1.704026 4.17e-10 1.16e-07 + 3.300000 0.711520 1.004391 5.50e-10 1.08e-07 + 3.400000 0.718750 1.661225 4.54e-10 9.70e-08 + 3.500000 0.729227 1.310102 1.65e-10 7.18e-08 + 3.600000 0.742712 1.310080 3.92e-10 7.04e-08 + 3.700000 0.758914 1.661237 1.29e-10 3.64e-08 + 3.800000 0.777506 1.004387 4.16e-11 2.61e-08 + 3.900000 0.798144 1.704019 1.79e-10 5.62e-09 + 4.000000 0.820474 1.214374 3.56e-10 1.85e-08 + 4.100000 0.844149 1.406358 1.57e-10 2.10e-08 + 4.200000 0.868832 1.600774 6.46e-10 5.37e-08 + 4.300000 0.894204 1.038382 4.12e-10 5.91e-08 + 4.400000 0.919964 1.727533 7.13e-10 8.15e-08 + 4.500000 0.945834 1.126875 7.49e-10 9.79e-08 + 4.600000 0.971557 1.496974 5.71e-10 9.68e-08 + 4.700000 0.996898 1.525070 9.81e-10 1.22e-07 + 4.800000 1.021641 1.101030 6.79e-10 1.19e-07 + 4.900000 1.045589 1.730922 1.03e-09 1.39e-07 + 5.000000 1.068565 1.056480 9.23e-10 1.45e-07 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 1.532e-11, v error = 4.194e-12, total error = 1.123e-11 - Total RHS evals: Fse = 30001, Fsi = 82555, Ff = 2070001 + u error = 6.270e-10, v error = 9.579e-08, total error = 6.773e-08 + Total RHS evals: Fse = 30000, Fsi = 82554, Ff = 2040000 Slow Newton iters = 52554 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/C_serial/ark_kpr_mri_9_0.001_-100_100_0.5_1.out b/examples/arkode/C_serial/ark_kpr_mri_9_0.001_-100_100_0.5_1.out index 3ca62f46fd..72b047498a 100644 --- a/examples/arkode/C_serial/ark_kpr_mri_9_0.001_-100_100_0.5_1.out +++ b/examples/arkode/C_serial/ark_kpr_mri_9_0.001_-100_100_0.5_1.out @@ -12,7 +12,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: ------------------------------------------------------ 0.000000 1.224745 1.732051 0.00e+00 0.00e+00 0.100000 1.223725 1.077464 1.63e-11 6.37e-13 - 0.200000 1.220669 1.551800 1.61e-11 6.85e-13 + 0.200000 1.220669 1.551800 1.61e-11 6.84e-13 0.300000 1.215594 1.467737 1.58e-11 9.70e-13 0.400000 1.208524 1.154583 1.55e-11 9.37e-13 0.500000 1.199496 1.721908 1.57e-11 1.74e-12 @@ -22,51 +22,51 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.900000 1.144904 1.245763 1.22e-11 3.18e-12 1.000000 1.127010 1.691839 1.28e-11 2.23e-12 1.100000 1.107609 1.000489 1.13e-11 1.92e-12 - 1.200000 1.086821 1.677552 9.93e-12 2.55e-12 - 1.300000 1.064777 1.277775 7.67e-12 1.72e-13 - 1.400000 1.041625 1.342455 6.64e-12 7.05e-13 - 1.500000 1.017531 1.642940 6.42e-12 2.73e-12 - 1.600000 0.992673 1.012112 4.49e-12 1.25e-12 - 1.700000 0.967253 1.714058 3.11e-12 3.19e-12 - 1.800000 0.941488 1.183867 5.46e-14 2.23e-13 - 1.900000 0.915617 1.437465 1.89e-12 1.29e-12 - 2.000000 0.889903 1.577082 4.66e-12 2.09e-12 - 2.100000 0.864625 1.056467 6.54e-12 1.44e-12 - 2.200000 0.840089 1.730920 7.40e-12 2.63e-12 - 2.300000 0.816616 1.101047 1.16e-11 1.62e-12 - 2.400000 0.794546 1.525051 1.48e-11 7.29e-13 - 2.500000 0.774227 1.496993 1.92e-11 2.39e-13 - 2.600000 0.756013 1.126857 2.04e-11 2.58e-12 - 2.700000 0.740246 1.727536 2.11e-11 8.85e-13 - 2.800000 0.727247 1.038393 2.44e-11 3.90e-12 - 2.900000 0.717301 1.600759 2.66e-11 7.90e-13 - 3.000000 0.710636 1.406380 2.78e-11 2.46e-12 - 3.100000 0.707412 1.214353 2.84e-11 4.12e-12 - 3.200000 0.707709 1.704026 2.84e-11 1.38e-12 - 3.300000 0.711520 1.004391 2.77e-11 6.21e-12 - 3.400000 0.718750 1.661225 2.61e-11 2.34e-12 - 3.500000 0.729227 1.310102 2.42e-11 4.77e-12 - 3.600000 0.742712 1.310080 2.16e-11 4.95e-12 - 3.700000 0.758914 1.661237 1.99e-11 2.79e-12 - 3.800000 0.777506 1.004387 1.67e-11 6.97e-12 - 3.900000 0.798144 1.704019 1.39e-11 2.45e-12 - 4.000000 0.820474 1.214374 1.05e-11 5.41e-12 - 4.100000 0.844149 1.406358 7.58e-12 8.30e-12 - 4.200000 0.868832 1.600774 5.05e-12 1.14e-11 - 4.300000 0.894204 1.038382 2.82e-12 3.26e-13 - 4.400000 0.919964 1.727533 1.81e-12 1.24e-11 - 4.500000 0.945834 1.126875 1.90e-12 8.41e-13 - 4.600000 0.971557 1.496974 3.74e-12 6.99e-12 - 4.700000 0.996898 1.525070 5.90e-12 7.03e-12 - 4.800000 1.021641 1.101030 7.15e-12 1.43e-12 - 4.900000 1.045589 1.730922 6.82e-12 9.68e-12 - 5.000000 1.068565 1.056480 9.36e-12 3.23e-12 + 1.200000 1.086821 1.677552 3.12e-10 1.86e-08 + 1.300000 1.064777 1.277775 2.57e-10 2.70e-08 + 1.400000 1.041625 1.342455 6.85e-10 5.85e-08 + 1.500000 1.017531 1.642940 3.50e-10 5.76e-08 + 1.600000 0.992673 1.012112 7.39e-10 8.10e-08 + 1.700000 0.967253 1.714058 6.57e-10 9.07e-08 + 1.800000 0.941488 1.183866 6.84e-10 9.86e-08 + 1.900000 0.915617 1.437465 1.04e-09 1.25e-07 + 2.000000 0.889903 1.577082 6.83e-10 1.20e-07 + 2.100000 0.864625 1.056467 1.07e-09 1.41e-07 + 2.200000 0.840089 1.730920 8.42e-10 1.40e-07 + 2.300000 0.816616 1.101047 9.29e-10 1.45e-07 + 2.400000 0.794546 1.525051 1.16e-09 1.63e-07 + 2.500000 0.774227 1.496993 8.00e-10 1.52e-07 + 2.600000 0.756013 1.126856 1.15e-09 1.67e-07 + 2.700000 0.740246 1.727536 7.78e-10 1.53e-07 + 2.800000 0.727247 1.038393 8.94e-10 1.52e-07 + 2.900000 0.717301 1.600759 9.63e-10 1.56e-07 + 3.000000 0.710636 1.406379 6.17e-10 1.37e-07 + 3.100000 0.707412 1.214353 8.99e-10 1.43e-07 + 3.200000 0.707709 1.704026 4.17e-10 1.16e-07 + 3.300000 0.711520 1.004391 5.50e-10 1.08e-07 + 3.400000 0.718750 1.661225 4.54e-10 9.70e-08 + 3.500000 0.729227 1.310102 1.65e-10 7.18e-08 + 3.600000 0.742712 1.310080 3.91e-10 7.04e-08 + 3.700000 0.758914 1.661237 1.30e-10 3.64e-08 + 3.800000 0.777506 1.004387 4.11e-11 2.61e-08 + 3.900000 0.798144 1.704019 1.79e-10 5.62e-09 + 4.000000 0.820474 1.214374 3.56e-10 1.85e-08 + 4.100000 0.844149 1.406358 1.58e-10 2.10e-08 + 4.200000 0.868832 1.600774 6.47e-10 5.37e-08 + 4.300000 0.894204 1.038382 4.13e-10 5.91e-08 + 4.400000 0.919964 1.727533 7.12e-10 8.15e-08 + 4.500000 0.945834 1.126875 7.49e-10 9.79e-08 + 4.600000 0.971557 1.496974 5.72e-10 9.68e-08 + 4.700000 0.996898 1.525070 9.83e-10 1.22e-07 + 4.800000 1.021641 1.101030 6.80e-10 1.19e-07 + 4.900000 1.045589 1.730922 1.03e-09 1.39e-07 + 5.000000 1.068565 1.056480 9.24e-10 1.45e-07 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 1.533e-11, v error = 4.203e-12, total error = 1.124e-11 - Total RHS evals: Fse = 30001, Fsi = 57555, Ff = 2070001 + u error = 6.274e-10, v error = 9.579e-08, total error = 6.773e-08 + Total RHS evals: Fse = 30000, Fsi = 57554, Ff = 2040000 Slow Newton iters = 52554 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/C_serial/ark_onewaycouple_mri.c b/examples/arkode/C_serial/ark_onewaycouple_mri.c index 6f3bd3845b..7e92f85848 100644 --- a/examples/arkode/C_serial/ark_onewaycouple_mri.c +++ b/examples/arkode/C_serial/ark_onewaycouple_mri.c @@ -145,6 +145,10 @@ int main() retval = ARKStepSetFixedStep(inner_arkode_mem, hf); if (check_retval(&retval, "ARKStepSetFixedStep", 1)) return 1; + /* Specify the Lagrange interpolation module */ + retval = ARKStepSetInterpolantType(inner_arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "ARKStepSetInterpolantType", 1)) return 1; + /* Create inner stepper */ retval = ARKStepCreateMRIStepInnerStepper(inner_arkode_mem, &inner_stepper); @@ -164,6 +168,10 @@ int main() retval = MRIStepSetFixedStep(arkode_mem, hs); if (check_retval(&retval, "MRIStepSetFixedStep", 1)) return 1; + /* Specify the Lagrange interpolation module */ + retval = MRIStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "MRIStepSetInterpolantType", 1)) return 1; + /* * Integrate ODE */ diff --git a/examples/arkode/C_serial/ark_onewaycouple_mri.out b/examples/arkode/C_serial/ark_onewaycouple_mri.out index 99d72a08ca..c8ce561000 100644 --- a/examples/arkode/C_serial/ark_onewaycouple_mri.out +++ b/examples/arkode/C_serial/ark_onewaycouple_mri.out @@ -20,4 +20,4 @@ One way coupling ODE test problem: Final Solver Statistics: Steps: nsts = 1000, nstf = 12000 - Total RHS evals: Fs = 3001, Ff = 49002 + Total RHS evals: Fs = 3000, Ff = 36000 diff --git a/examples/arkode/C_serial/ark_reaction_diffusion_mri.c b/examples/arkode/C_serial/ark_reaction_diffusion_mri.c index 86a65f42d3..20eadf0eec 100644 --- a/examples/arkode/C_serial/ark_reaction_diffusion_mri.c +++ b/examples/arkode/C_serial/ark_reaction_diffusion_mri.c @@ -155,6 +155,10 @@ int main() { retval = ARKStepSetFixedStep(inner_arkode_mem, hf); if (check_retval(&retval, "ARKStepSetFixedStep", 1)) return 1; + /* Specify the Lagrange interpolation module */ + retval = ARKStepSetInterpolantType(inner_arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "ARKStepSetInterpolantType", 1)) return 1; + /* Create inner stepper */ retval = ARKStepCreateMRIStepInnerStepper(inner_arkode_mem, &inner_stepper); @@ -178,6 +182,10 @@ int main() { retval = MRIStepSetFixedStep(arkode_mem, hs); if (check_retval(&retval, "MRIStepSetFixedStep", 1)) return 1; + /* Specify the Lagrange interpolation module */ + retval = MRIStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "MRIStepSetInterpolantType", 1)) return 1; + /* Increase max num steps */ retval = MRIStepSetMaxNumSteps(arkode_mem, 10000); if (check_retval(&retval, "MRIStepSetMaxNumSteps", 1)) return 1; diff --git a/examples/arkode/C_serial/ark_reaction_diffusion_mri.out b/examples/arkode/C_serial/ark_reaction_diffusion_mri.out index bb334179a1..e31bf8fb9f 100644 --- a/examples/arkode/C_serial/ark_reaction_diffusion_mri.out +++ b/examples/arkode/C_serial/ark_reaction_diffusion_mri.out @@ -49,7 +49,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 0.001 Current step size = 0.001 -Explicit slow RHS fn evals = 9004 +Explicit slow RHS fn evals = 9003 Implicit slow RHS fn evals = 0 NLS iters = 0 NLS fails = 0 @@ -68,7 +68,7 @@ Inequality constraint fails = 0 Initial step size = 2e-05 Last step size = 9.999999998289147e-06 Current step size = 9.999999998289147e-06 -Explicit RHS fn evals = 615207 +Explicit RHS fn evals = 459153 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_robertson.c b/examples/arkode/C_serial/ark_robertson.c index 299b90e661..3549a7e9e7 100644 --- a/examples/arkode/C_serial/ark_robertson.c +++ b/examples/arkode/C_serial/ark_robertson.c @@ -128,6 +128,9 @@ int main() if (check_flag(&flag, "ARKStepSetPredictorMethod", 1)) return 1; flag = ARKStepSStolerances(arkode_mem, reltol, abstol); /* Specify tolerances */ if (check_flag(&flag, "ARKStepSStolerances", 1)) return 1; + flag = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolation */ + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; + /* Initialize dense matrix data structure and solver */ A = SUNDenseMatrix(NEQ, NEQ, ctx); @@ -294,9 +297,9 @@ static int check_ans(N_Vector y, realtype t, realtype rtol, realtype atol) ewt = N_VClone(y); /* set the reference solution data */ - NV_Ith_S(ref,0) = RCONST(2.0833403356917897e-08); - NV_Ith_S(ref,1) = RCONST(8.1470714598028223e-14); - NV_Ith_S(ref,2) = RCONST(9.9999997916651040e-01); + NV_Ith_S(ref,0) = RCONST(2.0878749372744711e-08); + NV_Ith_S(ref,1) = RCONST(8.4220713891497298e-14); + NV_Ith_S(ref,2) = RCONST(9.9999997912116090e-01); /* compute the error weight vector */ N_VAbs(ref, ewt); diff --git a/examples/arkode/C_serial/ark_robertson.out b/examples/arkode/C_serial/ark_robertson.out index 1aea595ee5..e76ec72eac 100644 --- a/examples/arkode/C_serial/ark_robertson.out +++ b/examples/arkode/C_serial/ark_robertson.out @@ -4,127 +4,127 @@ Robertson ODE test problem: t u v w -------------------------------------------------- 0.000e+00 1.00000e+00 0.00000e+00 0.00000e+00 - 1.000e+09 2.08324e-06 8.34276e-12 9.99998e-01 - 2.000e+09 1.04164e-06 4.17283e-12 9.99999e-01 - 3.000e+09 6.94437e-07 2.78375e-12 9.99999e-01 - 4.000e+09 5.20830e-07 2.05394e-12 9.99999e-01 - 5.000e+09 4.16667e-07 1.66756e-12 1.00000e+00 - 6.000e+09 3.47220e-07 1.38545e-12 1.00000e+00 - 7.000e+09 2.97617e-07 1.17655e-12 1.00000e+00 - 8.000e+09 2.60409e-07 1.02537e-12 1.00000e+00 - 9.000e+09 2.31480e-07 9.41190e-13 1.00000e+00 - 1.000e+10 2.08335e-07 8.36764e-13 1.00000e+00 - 1.100e+10 1.89395e-07 7.64332e-13 1.00000e+00 - 1.200e+10 1.73606e-07 6.70149e-13 1.00000e+00 - 1.300e+10 1.60258e-07 6.41057e-13 1.00000e+00 - 1.400e+10 1.48808e-07 6.17193e-13 1.00000e+00 - 1.500e+10 1.38890e-07 5.48220e-13 1.00000e+00 - 1.600e+10 1.30203e-07 4.86507e-13 1.00000e+00 - 1.700e+10 1.22547e-07 4.67931e-13 1.00000e+00 - 1.800e+10 1.15742e-07 4.70245e-13 1.00000e+00 - 1.900e+10 1.09647e-07 4.55585e-13 1.00000e+00 - 2.000e+10 1.04167e-07 4.24475e-13 1.00000e+00 - 2.100e+10 9.92072e-08 3.90746e-13 1.00000e+00 - 2.200e+10 9.46966e-08 3.68978e-13 1.00000e+00 - 2.300e+10 9.05806e-08 3.58503e-13 1.00000e+00 - 2.400e+10 8.68057e-08 3.53926e-13 1.00000e+00 - 2.500e+10 8.33309e-08 3.44650e-13 1.00000e+00 - 2.600e+10 8.01259e-08 3.30901e-13 1.00000e+00 - 2.700e+10 7.71607e-08 3.13931e-13 1.00000e+00 - 2.800e+10 7.44057e-08 2.95253e-13 1.00000e+00 - 2.900e+10 7.18388e-08 2.78961e-13 1.00000e+00 - 3.000e+10 6.94438e-08 2.67061e-13 1.00000e+00 - 3.100e+10 6.72046e-08 2.60762e-13 1.00000e+00 - 3.200e+10 6.51052e-08 2.61201e-13 1.00000e+00 - 3.300e+10 6.31308e-08 2.61658e-13 1.00000e+00 - 3.400e+10 6.12720e-08 2.57843e-13 1.00000e+00 - 3.500e+10 5.95204e-08 2.50778e-13 1.00000e+00 - 3.600e+10 5.78677e-08 2.41487e-13 1.00000e+00 - 3.700e+10 5.63054e-08 2.30992e-13 1.00000e+00 - 3.800e+10 5.48254e-08 2.20317e-13 1.00000e+00 - 3.900e+10 5.34196e-08 2.10724e-13 1.00000e+00 - 4.000e+10 5.20833e-08 2.03599e-13 1.00000e+00 - 4.100e+10 5.08123e-08 1.98476e-13 1.00000e+00 - 4.200e+10 4.96023e-08 1.94720e-13 1.00000e+00 - 4.300e+10 4.84493e-08 1.91698e-13 1.00000e+00 - 4.400e+10 4.73490e-08 1.88774e-13 1.00000e+00 - 4.500e+10 4.62972e-08 1.85299e-13 1.00000e+00 - 4.600e+10 4.52907e-08 1.78904e-13 1.00000e+00 - 4.700e+10 4.43271e-08 1.74761e-13 1.00000e+00 - 4.800e+10 4.34036e-08 1.75489e-13 1.00000e+00 - 4.900e+10 4.25178e-08 1.67760e-13 1.00000e+00 - 5.000e+10 4.16674e-08 1.68504e-13 1.00000e+00 - 5.100e+10 4.08503e-08 1.72673e-13 1.00000e+00 - 5.200e+10 4.00645e-08 1.71906e-13 1.00000e+00 - 5.300e+10 3.93085e-08 1.67608e-13 1.00000e+00 - 5.400e+10 3.85807e-08 1.61181e-13 1.00000e+00 - 5.500e+10 3.78794e-08 1.54027e-13 1.00000e+00 - 5.600e+10 3.72030e-08 1.47521e-13 1.00000e+00 - 5.700e+10 3.65500e-08 1.42263e-13 1.00000e+00 - 5.800e+10 3.59194e-08 1.38124e-13 1.00000e+00 - 5.900e+10 3.53102e-08 1.34960e-13 1.00000e+00 - 6.000e+10 3.47215e-08 1.32628e-13 1.00000e+00 - 6.100e+10 3.41523e-08 1.30983e-13 1.00000e+00 - 6.200e+10 3.36017e-08 1.29882e-13 1.00000e+00 - 6.300e+10 3.30688e-08 1.29180e-13 1.00000e+00 - 6.400e+10 3.25525e-08 1.28734e-13 1.00000e+00 - 6.500e+10 3.20519e-08 1.28399e-13 1.00000e+00 - 6.600e+10 3.15661e-08 1.28511e-13 1.00000e+00 - 6.700e+10 3.10945e-08 1.29667e-13 1.00000e+00 - 6.800e+10 3.06366e-08 1.31575e-13 1.00000e+00 - 6.900e+10 3.01919e-08 1.33923e-13 1.00000e+00 - 7.000e+10 2.97600e-08 1.36404e-13 1.00000e+00 - 7.100e+10 2.93405e-08 1.38706e-13 1.00000e+00 - 7.200e+10 2.89328e-08 1.40520e-13 1.00000e+00 - 7.300e+10 2.85365e-08 1.41536e-13 1.00000e+00 - 7.400e+10 2.81511e-08 1.41445e-13 1.00000e+00 - 7.500e+10 2.77762e-08 1.39937e-13 1.00000e+00 - 7.600e+10 2.74113e-08 1.36702e-13 1.00000e+00 - 7.700e+10 2.70559e-08 1.31431e-13 1.00000e+00 - 7.800e+10 2.67096e-08 1.23813e-13 1.00000e+00 - 7.900e+10 2.63719e-08 1.13538e-13 1.00000e+00 - 8.000e+10 2.60423e-08 1.00933e-13 1.00000e+00 - 8.100e+10 2.57208e-08 9.31863e-14 1.00000e+00 - 8.200e+10 2.54071e-08 9.21249e-14 1.00000e+00 - 8.300e+10 2.51010e-08 9.73996e-14 1.00000e+00 - 8.400e+10 2.48022e-08 1.03740e-13 1.00000e+00 - 8.500e+10 2.45104e-08 1.01400e-13 1.00000e+00 - 8.600e+10 2.42254e-08 9.65651e-14 1.00000e+00 - 8.700e+10 2.39469e-08 9.61320e-14 1.00000e+00 - 8.800e+10 2.36747e-08 9.68559e-14 1.00000e+00 - 8.900e+10 2.34087e-08 9.44562e-14 1.00000e+00 - 9.000e+10 2.31485e-08 9.00151e-14 1.00000e+00 - 9.100e+10 2.28941e-08 8.46151e-14 1.00000e+00 - 9.200e+10 2.26453e-08 7.93387e-14 1.00000e+00 - 9.300e+10 2.24018e-08 7.52684e-14 1.00000e+00 - 9.400e+10 2.21635e-08 7.34866e-14 1.00000e+00 - 9.500e+10 2.19303e-08 7.50757e-14 1.00000e+00 - 9.600e+10 2.17019e-08 8.11182e-14 1.00000e+00 - 9.700e+10 2.14781e-08 9.01508e-14 1.00000e+00 - 9.800e+10 2.12589e-08 9.22475e-14 1.00000e+00 - 9.900e+10 2.10442e-08 8.92813e-14 1.00000e+00 - 1.000e+11 2.08338e-08 8.47365e-14 1.00000e+00 + 1.000e+09 2.08379e-06 8.33612e-12 9.99998e-01 + 2.000e+09 1.04187e-06 4.16715e-12 9.99999e-01 + 3.000e+09 6.94689e-07 2.77857e-12 9.99999e-01 + 4.000e+09 5.21193e-07 2.08459e-12 9.99999e-01 + 5.000e+09 4.16778e-07 1.66721e-12 1.00000e+00 + 6.000e+09 3.47255e-07 1.38908e-12 1.00000e+00 + 7.000e+09 2.97636e-07 1.18904e-12 1.00000e+00 + 8.000e+09 2.60420e-07 1.04147e-12 1.00000e+00 + 9.000e+09 2.31488e-07 9.26231e-13 1.00000e+00 + 1.000e+10 2.08444e-07 8.33469e-13 1.00000e+00 + 1.100e+10 1.89463e-07 7.56534e-13 1.00000e+00 + 1.200e+10 1.73622e-07 6.93550e-13 1.00000e+00 + 1.300e+10 1.60388e-07 6.41009e-13 1.00000e+00 + 1.400e+10 1.48861e-07 5.95379e-13 1.00000e+00 + 1.500e+10 1.38970e-07 5.56144e-13 1.00000e+00 + 1.600e+10 1.30280e-07 5.21347e-13 1.00000e+00 + 1.700e+10 1.22586e-07 4.90325e-13 1.00000e+00 + 1.800e+10 1.15793e-07 4.62894e-13 1.00000e+00 + 1.900e+10 1.09662e-07 4.38073e-13 1.00000e+00 + 2.000e+10 1.04196e-07 4.16067e-13 1.00000e+00 + 2.100e+10 9.92122e-08 3.96163e-13 1.00000e+00 + 2.200e+10 9.47318e-08 3.78319e-13 1.00000e+00 + 2.300e+10 9.06338e-08 3.62116e-13 1.00000e+00 + 2.400e+10 8.68370e-08 3.47243e-13 1.00000e+00 + 2.500e+10 8.33495e-08 3.33569e-13 1.00000e+00 + 2.600e+10 8.01665e-08 3.20937e-13 1.00000e+00 + 2.700e+10 7.72012e-08 3.09022e-13 1.00000e+00 + 2.800e+10 7.44062e-08 2.97582e-13 1.00000e+00 + 2.900e+10 7.18661e-08 2.87383e-13 1.00000e+00 + 3.000e+10 6.94996e-08 2.77920e-13 1.00000e+00 + 3.100e+10 6.72800e-08 2.69108e-13 1.00000e+00 + 3.200e+10 6.51811e-08 2.60867e-13 1.00000e+00 + 3.300e+10 6.31770e-08 2.53114e-13 1.00000e+00 + 3.400e+10 6.12829e-08 2.45800e-13 1.00000e+00 + 3.500e+10 5.95532e-08 2.38905e-13 1.00000e+00 + 3.600e+10 5.79174e-08 2.32314e-13 1.00000e+00 + 3.700e+10 5.63615e-08 2.25955e-13 1.00000e+00 + 3.800e+10 5.48718e-08 2.19757e-13 1.00000e+00 + 3.900e+10 5.34344e-08 2.13647e-13 1.00000e+00 + 4.000e+10 5.20927e-08 2.08034e-13 1.00000e+00 + 4.100e+10 5.08336e-08 2.02853e-13 1.00000e+00 + 4.200e+10 4.96318e-08 1.97934e-13 1.00000e+00 + 4.300e+10 4.84797e-08 1.93260e-13 1.00000e+00 + 4.400e+10 4.73699e-08 1.88811e-13 1.00000e+00 + 4.500e+10 4.62977e-08 1.84573e-13 1.00000e+00 + 4.600e+10 4.53004e-08 1.80588e-13 1.00000e+00 + 4.700e+10 4.43469e-08 1.76805e-13 1.00000e+00 + 4.800e+10 4.34334e-08 1.73211e-13 1.00000e+00 + 4.900e+10 4.25559e-08 1.69791e-13 1.00000e+00 + 5.000e+10 4.17105e-08 1.66532e-13 1.00000e+00 + 5.100e+10 4.08933e-08 1.63420e-13 1.00000e+00 + 5.200e+10 4.01004e-08 1.60440e-13 1.00000e+00 + 5.300e+10 3.93278e-08 1.57580e-13 1.00000e+00 + 5.400e+10 3.85832e-08 1.54823e-13 1.00000e+00 + 5.500e+10 3.78893e-08 1.52150e-13 1.00000e+00 + 5.600e+10 3.72204e-08 1.49553e-13 1.00000e+00 + 5.700e+10 3.65743e-08 1.47016e-13 1.00000e+00 + 5.800e+10 3.59489e-08 1.44526e-13 1.00000e+00 + 5.900e+10 3.53421e-08 1.42068e-13 1.00000e+00 + 6.000e+10 3.47517e-08 1.39628e-13 1.00000e+00 + 6.100e+10 3.41757e-08 1.37192e-13 1.00000e+00 + 6.200e+10 3.36119e-08 1.34745e-13 1.00000e+00 + 6.300e+10 3.30727e-08 1.32430e-13 1.00000e+00 + 6.400e+10 3.25632e-08 1.30308e-13 1.00000e+00 + 6.500e+10 3.20702e-08 1.28248e-13 1.00000e+00 + 6.600e+10 3.15926e-08 1.26245e-13 1.00000e+00 + 6.700e+10 3.11294e-08 1.24297e-13 1.00000e+00 + 6.800e+10 3.06794e-08 1.22401e-13 1.00000e+00 + 6.900e+10 3.02415e-08 1.20554e-13 1.00000e+00 + 7.000e+10 2.98148e-08 1.18752e-13 1.00000e+00 + 7.100e+10 2.93981e-08 1.16992e-13 1.00000e+00 + 7.200e+10 2.89903e-08 1.15272e-13 1.00000e+00 + 7.300e+10 2.85904e-08 1.13588e-13 1.00000e+00 + 7.400e+10 2.81972e-08 1.11937e-13 1.00000e+00 + 7.500e+10 2.78098e-08 1.10315e-13 1.00000e+00 + 7.600e+10 2.74269e-08 1.08721e-13 1.00000e+00 + 7.700e+10 2.70590e-08 1.07196e-13 1.00000e+00 + 7.800e+10 2.67177e-08 1.05788e-13 1.00000e+00 + 7.900e+10 2.63852e-08 1.04428e-13 1.00000e+00 + 8.000e+10 2.60610e-08 1.03114e-13 1.00000e+00 + 8.100e+10 2.57446e-08 1.01845e-13 1.00000e+00 + 8.200e+10 2.54355e-08 1.00621e-13 1.00000e+00 + 8.300e+10 2.51330e-08 9.94407e-14 1.00000e+00 + 8.400e+10 2.48368e-08 9.83032e-14 1.00000e+00 + 8.500e+10 2.45461e-08 9.72075e-14 1.00000e+00 + 8.600e+10 2.42606e-08 9.61527e-14 1.00000e+00 + 8.700e+10 2.39796e-08 9.51378e-14 1.00000e+00 + 8.800e+10 2.37027e-08 9.41620e-14 1.00000e+00 + 8.900e+10 2.34293e-08 9.32244e-14 1.00000e+00 + 9.000e+10 2.31588e-08 9.23238e-14 1.00000e+00 + 9.100e+10 2.28954e-08 9.14479e-14 1.00000e+00 + 9.200e+10 2.26510e-08 9.05652e-14 1.00000e+00 + 9.300e+10 2.24123e-08 8.97062e-14 1.00000e+00 + 9.400e+10 2.21790e-08 8.88693e-14 1.00000e+00 + 9.500e+10 2.19508e-08 8.80529e-14 1.00000e+00 + 9.600e+10 2.17276e-08 8.72553e-14 1.00000e+00 + 9.700e+10 2.15090e-08 8.64749e-14 1.00000e+00 + 9.800e+10 2.12949e-08 8.57101e-14 1.00000e+00 + 9.900e+10 2.10849e-08 8.49592e-14 1.00000e+00 + 1.000e+11 2.08787e-08 8.42207e-14 1.00000e+00 -------------------------------------------------- Final Statistics: -Current time = 100509725868.0247 -Steps = 990 -Step attempts = 1170 +Current time = 113052406117.5358 +Steps = 974 +Step attempts = 1157 Stability limited steps = 0 -Accuracy limited steps = 1167 -Error test fails = 177 -NLS step fails = 3 +Accuracy limited steps = 1157 +Error test fails = 183 +NLS step fails = 0 Inequality constraint fails = 0 Initial step size = 1e-08 -Last step size = 4072648616.470474 -Current step size = 4072648616.470474 +Last step size = 22298072834.29625 +Current step size = 22298072834.29625 Explicit RHS fn evals = 0 -Implicit RHS fn evals = 33161 -NLS iters = 27313 -NLS fails = 46 -NLS iters per step = 27.58888888888889 -LS setups = 517 -Jac fn evals = 56 +Implicit RHS fn evals = 31848 +NLS iters = 26063 +NLS fails = 19 +NLS iters per step = 26.75872689938398 +LS setups = 487 +Jac fn evals = 30 LS RHS fn evals = 0 Prec setup evals = 0 Prec solves = 0 @@ -133,5 +133,5 @@ LS fails = 0 Jac-times setups = 0 Jac-times evals = 0 LS iters per NLS iter = 0 -Jac evals per NLS iter = 0.002050305715227181 +Jac evals per NLS iter = 0.001151057054061313 Prec evals per NLS iter = 0 diff --git a/examples/arkode/C_serial/ark_robertson_constraints.c b/examples/arkode/C_serial/ark_robertson_constraints.c index 827e890e2b..f9a7f1bfc4 100644 --- a/examples/arkode/C_serial/ark_robertson_constraints.c +++ b/examples/arkode/C_serial/ark_robertson_constraints.c @@ -140,6 +140,8 @@ int main() if (check_flag(&flag, "ARKStepSStolerances", 1)) return 1; flag = ARKStepSetConstraints(arkode_mem, constraints); /* Set constraints */ if (check_flag(&flag, "ARKStepSetConstraints", 1)) return 1; + flag = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolation */ + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; /* Initialize dense matrix data structure and solver */ A = SUNDenseMatrix(NEQ, NEQ, ctx); diff --git a/examples/arkode/C_serial/ark_robertson_constraints.out b/examples/arkode/C_serial/ark_robertson_constraints.out index e28ffe18c9..267f9e4fe5 100644 --- a/examples/arkode/C_serial/ark_robertson_constraints.out +++ b/examples/arkode/C_serial/ark_robertson_constraints.out @@ -4,116 +4,116 @@ Robertson ODE test problem: t u v w -------------------------------------------------- 0.000e+00 1.00000e+00 0.00000e+00 0.00000e+00 - 1.000e+09 2.07857e-06 -1.09385e-10 9.99998e-01 - 2.000e+09 1.04202e-06 4.21741e-12 9.99999e-01 - 3.000e+09 6.94597e-07 2.66732e-12 9.99999e-01 - 4.000e+09 5.20918e-07 2.08504e-12 9.99999e-01 - 5.000e+09 4.16721e-07 1.50113e-12 1.00000e+00 - 6.000e+09 3.47261e-07 3.09313e-12 1.00000e+00 - 7.000e+09 2.97649e-07 1.12013e-12 1.00000e+00 - 8.000e+09 2.60438e-07 1.30410e-12 1.00000e+00 - 9.000e+09 2.31501e-07 6.01213e-15 1.00000e+00 - 1.000e+10 2.08348e-07 8.07940e-13 1.00000e+00 - 1.100e+10 1.89407e-07 5.27220e-13 1.00000e+00 - 1.200e+10 1.73622e-07 5.67013e-13 1.00000e+00 - 1.300e+10 1.60265e-07 6.62046e-13 1.00000e+00 - 1.400e+10 1.48820e-07 -1.96317e-12 1.00000e+00 - 1.500e+10 1.38895e-07 1.17103e-12 1.00000e+00 - 1.600e+10 1.30214e-07 3.98260e-13 1.00000e+00 - 1.700e+10 1.22554e-07 6.36369e-13 1.00000e+00 - 1.800e+10 1.15747e-07 -6.66047e-13 1.00000e+00 - 1.900e+10 1.09653e-07 4.39347e-13 1.00000e+00 - 2.000e+10 1.04171e-07 3.61443e-13 1.00000e+00 - 2.100e+10 9.92098e-08 5.00251e-13 1.00000e+00 - 2.200e+10 9.47001e-08 4.91884e-13 1.00000e+00 - 2.300e+10 9.05822e-08 8.71476e-13 1.00000e+00 - 2.400e+10 8.68083e-08 3.63347e-13 1.00000e+00 - 2.500e+10 8.33363e-08 -4.58969e-15 1.00000e+00 - 2.600e+10 8.01306e-08 3.78826e-13 1.00000e+00 - 2.700e+10 7.71624e-08 6.09154e-13 1.00000e+00 - 2.800e+10 7.44070e-08 2.04226e-13 1.00000e+00 - 2.900e+10 7.18410e-08 3.71843e-13 1.00000e+00 - 3.000e+10 6.94465e-08 4.86116e-14 1.00000e+00 - 3.100e+10 6.72060e-08 2.63403e-13 1.00000e+00 - 3.200e+10 6.51057e-08 3.32928e-13 1.00000e+00 - 3.300e+10 6.31329e-08 2.79447e-13 1.00000e+00 - 3.400e+10 6.12760e-08 2.69539e-13 1.00000e+00 - 3.500e+10 5.95252e-08 2.37903e-13 1.00000e+00 - 3.600e+10 5.78717e-08 2.27549e-13 1.00000e+00 - 3.700e+10 5.63075e-08 2.16412e-13 1.00000e+00 - 3.800e+10 5.48258e-08 2.20845e-13 1.00000e+00 - 3.900e+10 5.34200e-08 1.80732e-13 1.00000e+00 - 4.000e+10 5.20844e-08 2.07741e-13 1.00000e+00 - 4.100e+10 5.08141e-08 2.02952e-13 1.00000e+00 - 4.200e+10 4.96042e-08 1.74303e-13 1.00000e+00 - 4.300e+10 4.84505e-08 2.18218e-13 1.00000e+00 - 4.400e+10 4.73494e-08 1.66929e-13 1.00000e+00 - 4.500e+10 4.62972e-08 1.38049e-13 1.00000e+00 - 4.600e+10 4.52908e-08 1.08118e-13 1.00000e+00 - 4.700e+10 4.43271e-08 1.76051e-13 1.00000e+00 - 4.800e+10 4.34036e-08 1.70607e-13 1.00000e+00 - 4.900e+10 4.25178e-08 1.81842e-13 1.00000e+00 - 5.000e+10 4.16676e-08 -1.13757e-14 1.00000e+00 - 5.100e+10 4.08507e-08 -2.05065e-13 1.00000e+00 - 5.200e+10 4.00651e-08 -1.78624e-13 1.00000e+00 - 5.300e+10 3.93089e-08 1.41307e-13 1.00000e+00 - 5.400e+10 3.85809e-08 1.37592e-13 1.00000e+00 - 5.500e+10 3.78794e-08 1.22696e-13 1.00000e+00 - 5.600e+10 3.72032e-08 -1.10452e-13 1.00000e+00 - 5.700e+10 3.65501e-08 3.36533e-13 1.00000e+00 - 5.800e+10 3.59205e-08 -2.61161e-13 1.00000e+00 - 5.900e+10 3.53190e-08 -7.59722e-12 1.00000e+00 - 6.000e+10 3.47227e-08 1.85374e-13 1.00000e+00 - 6.100e+10 3.41536e-08 9.39629e-14 1.00000e+00 - 6.200e+10 3.36021e-08 7.25389e-13 1.00000e+00 - 6.300e+10 3.30696e-08 -1.63630e-13 1.00000e+00 - 6.400e+10 3.25554e-08 -2.65856e-12 1.00000e+00 - 6.500e+10 3.20517e-08 1.30711e-13 1.00000e+00 - 6.600e+10 3.15661e-08 1.26194e-13 1.00000e+00 - 6.700e+10 3.10950e-08 1.40543e-13 1.00000e+00 - 6.800e+10 3.06377e-08 1.09899e-13 1.00000e+00 - 6.900e+10 3.01937e-08 1.22297e-13 1.00000e+00 - 7.000e+10 2.97623e-08 1.43754e-13 1.00000e+00 - 7.100e+10 2.93432e-08 9.00254e-14 1.00000e+00 - 7.200e+10 2.89356e-08 1.09983e-13 1.00000e+00 - 7.300e+10 2.85392e-08 1.07976e-13 1.00000e+00 - 7.400e+10 2.81535e-08 1.10593e-13 1.00000e+00 - 7.500e+10 2.77782e-08 1.05388e-13 1.00000e+00 - 7.600e+10 2.74134e-08 -6.45069e-13 1.00000e+00 - 7.700e+10 2.70583e-08 -1.58650e-12 1.00000e+00 - 7.800e+10 2.67111e-08 -1.22796e-12 1.00000e+00 - 7.900e+10 2.63717e-08 8.74686e-14 1.00000e+00 - 8.000e+10 2.60420e-08 9.65943e-14 1.00000e+00 - 8.100e+10 2.57204e-08 1.41528e-13 1.00000e+00 - 8.200e+10 2.54068e-08 1.61138e-13 1.00000e+00 - 8.300e+10 2.51008e-08 -4.32908e-15 1.00000e+00 - 8.400e+10 2.48019e-08 6.26448e-14 1.00000e+00 - 8.500e+10 2.45101e-08 1.00567e-13 1.00000e+00 - 8.600e+10 2.42251e-08 9.76438e-14 1.00000e+00 - 8.700e+10 2.39466e-08 1.01689e-13 1.00000e+00 - 8.800e+10 2.36745e-08 1.26632e-13 1.00000e+00 - 8.900e+10 2.34085e-08 1.35620e-13 1.00000e+00 - 9.000e+10 2.31484e-08 8.73805e-14 1.00000e+00 - 9.100e+10 2.28938e-08 3.36553e-13 1.00000e+00 - 9.200e+10 2.26446e-08 7.21253e-13 1.00000e+00 - 9.300e+10 2.24013e-08 5.28310e-13 1.00000e+00 - 9.400e+10 2.21668e-08 -3.34767e-12 1.00000e+00 - 9.500e+10 2.19300e-08 1.72230e-13 1.00000e+00 - 9.600e+10 2.17016e-08 7.81589e-14 1.00000e+00 - 9.700e+10 2.14779e-08 1.07435e-13 1.00000e+00 - 9.800e+10 2.12602e-08 -1.41747e-12 1.00000e+00 - 9.900e+10 2.10435e-08 6.16285e-13 1.00000e+00 - 1.000e+11 2.08336e-08 8.08491e-14 1.00000e+00 + 1.000e+09 2.08446e-06 8.88798e-12 9.99998e-01 + 2.000e+09 1.04182e-06 3.86860e-12 9.99999e-01 + 3.000e+09 6.94560e-07 2.72933e-12 9.99999e-01 + 4.000e+09 5.20862e-07 2.06649e-12 9.99999e-01 + 5.000e+09 4.17340e-07 1.76141e-12 1.00000e+00 + 6.000e+09 3.47534e-07 1.68073e-12 1.00000e+00 + 7.000e+09 2.97755e-07 1.10794e-12 1.00000e+00 + 8.000e+09 2.60460e-07 1.00646e-12 1.00000e+00 + 9.000e+09 2.31492e-07 4.24800e-13 1.00000e+00 + 1.000e+10 2.08410e-07 2.77190e-13 1.00000e+00 + 1.100e+10 1.89459e-07 6.46331e-13 1.00000e+00 + 1.200e+10 1.73641e-07 5.39379e-13 1.00000e+00 + 1.300e+10 1.60322e-07 4.66084e-13 1.00000e+00 + 1.400e+10 1.48847e-07 3.57957e-13 1.00000e+00 + 1.500e+10 1.38906e-07 2.57823e-13 1.00000e+00 + 1.600e+10 1.30270e-07 2.41710e-13 1.00000e+00 + 1.700e+10 1.22646e-07 3.69520e-13 1.00000e+00 + 1.800e+10 1.15749e-07 6.66019e-13 1.00000e+00 + 1.900e+10 1.09711e-07 7.15279e-13 1.00000e+00 + 2.000e+10 1.04235e-07 5.80681e-13 1.00000e+00 + 2.100e+10 9.92121e-08 3.27449e-13 1.00000e+00 + 2.200e+10 9.46996e-08 3.93907e-13 1.00000e+00 + 2.300e+10 9.05821e-08 4.26554e-13 1.00000e+00 + 2.400e+10 8.68125e-08 4.33263e-13 1.00000e+00 + 2.500e+10 8.33428e-08 3.96460e-13 1.00000e+00 + 2.600e+10 8.01313e-08 3.13533e-13 1.00000e+00 + 2.700e+10 7.71719e-08 2.74014e-13 1.00000e+00 + 2.800e+10 7.44181e-08 2.62895e-13 1.00000e+00 + 2.900e+10 7.18422e-08 2.86442e-13 1.00000e+00 + 3.000e+10 6.94599e-08 2.70872e-13 1.00000e+00 + 3.100e+10 6.72307e-08 2.46579e-13 1.00000e+00 + 3.200e+10 6.51325e-08 2.09720e-13 1.00000e+00 + 3.300e+10 6.31431e-08 1.56454e-13 1.00000e+00 + 3.400e+10 6.12830e-08 1.12241e-13 1.00000e+00 + 3.500e+10 5.95420e-08 8.15594e-14 1.00000e+00 + 3.600e+10 5.78932e-08 5.72528e-14 1.00000e+00 + 3.700e+10 5.63234e-08 4.15237e-14 1.00000e+00 + 3.800e+10 5.48272e-08 3.83523e-14 1.00000e+00 + 3.900e+10 5.34282e-08 5.81709e-14 1.00000e+00 + 4.000e+10 5.20979e-08 9.97689e-14 1.00000e+00 + 4.100e+10 5.08280e-08 1.66508e-13 1.00000e+00 + 4.200e+10 4.96105e-08 2.61750e-13 1.00000e+00 + 4.300e+10 4.84526e-08 3.34169e-13 1.00000e+00 + 4.400e+10 4.73551e-08 3.55296e-13 1.00000e+00 + 4.500e+10 4.63051e-08 3.46008e-13 1.00000e+00 + 4.600e+10 4.52976e-08 2.98465e-13 1.00000e+00 + 4.700e+10 4.43275e-08 2.04829e-13 1.00000e+00 + 4.800e+10 4.34061e-08 1.74392e-13 1.00000e+00 + 4.900e+10 4.25231e-08 1.59926e-13 1.00000e+00 + 5.000e+10 4.16745e-08 1.61650e-13 1.00000e+00 + 5.100e+10 4.08572e-08 1.84764e-13 1.00000e+00 + 5.200e+10 4.00680e-08 2.34468e-13 1.00000e+00 + 5.300e+10 3.93097e-08 2.76714e-13 1.00000e+00 + 5.400e+10 3.85837e-08 2.85374e-13 1.00000e+00 + 5.500e+10 3.78838e-08 2.86963e-13 1.00000e+00 + 5.600e+10 3.72078e-08 2.79305e-13 1.00000e+00 + 5.700e+10 3.65538e-08 2.60223e-13 1.00000e+00 + 5.800e+10 3.59201e-08 2.29380e-13 1.00000e+00 + 5.900e+10 3.53134e-08 2.15668e-13 1.00000e+00 + 6.000e+10 3.47271e-08 2.01187e-13 1.00000e+00 + 6.100e+10 3.41601e-08 1.86401e-13 1.00000e+00 + 6.200e+10 3.36109e-08 1.71776e-13 1.00000e+00 + 6.300e+10 3.30783e-08 1.57775e-13 1.00000e+00 + 6.400e+10 3.25609e-08 1.44862e-13 1.00000e+00 + 6.500e+10 3.20574e-08 1.33501e-13 1.00000e+00 + 6.600e+10 3.15665e-08 1.24157e-13 1.00000e+00 + 6.700e+10 3.10968e-08 1.30035e-13 1.00000e+00 + 6.800e+10 3.06415e-08 1.44555e-13 1.00000e+00 + 6.900e+10 3.01993e-08 1.68144e-13 1.00000e+00 + 7.000e+10 2.97692e-08 2.01884e-13 1.00000e+00 + 7.100e+10 2.93505e-08 2.46856e-13 1.00000e+00 + 7.200e+10 2.89423e-08 3.04140e-13 1.00000e+00 + 7.300e+10 2.85438e-08 3.74819e-13 1.00000e+00 + 7.400e+10 2.81542e-08 4.59973e-13 1.00000e+00 + 7.500e+10 2.77780e-08 3.83826e-13 1.00000e+00 + 7.600e+10 2.74125e-08 2.21251e-13 1.00000e+00 + 7.700e+10 2.70567e-08 5.64726e-14 1.00000e+00 + 7.800e+10 2.67100e-08 -8.88159e-14 1.00000e+00 + 7.900e+10 2.63720e-08 -1.88472e-13 1.00000e+00 + 8.000e+10 2.60424e-08 -2.15474e-13 1.00000e+00 + 8.100e+10 2.57208e-08 -1.42801e-13 1.00000e+00 + 8.200e+10 2.54069e-08 1.92134e-14 1.00000e+00 + 8.300e+10 2.51007e-08 9.32266e-14 1.00000e+00 + 8.400e+10 2.48019e-08 1.13130e-13 1.00000e+00 + 8.500e+10 2.45101e-08 7.58730e-14 1.00000e+00 + 8.600e+10 2.42252e-08 2.54297e-14 1.00000e+00 + 8.700e+10 2.39468e-08 -2.49203e-14 1.00000e+00 + 8.800e+10 2.36748e-08 -5.52587e-14 1.00000e+00 + 8.900e+10 2.34087e-08 -4.56675e-14 1.00000e+00 + 9.000e+10 2.31485e-08 1.86372e-14 1.00000e+00 + 9.100e+10 2.28942e-08 6.39413e-15 1.00000e+00 + 9.200e+10 2.26455e-08 -1.03143e-15 1.00000e+00 + 9.300e+10 2.24020e-08 -1.98081e-15 1.00000e+00 + 9.400e+10 2.21637e-08 5.20465e-15 1.00000e+00 + 9.500e+10 2.19303e-08 2.21836e-14 1.00000e+00 + 9.600e+10 2.17017e-08 3.91182e-14 1.00000e+00 + 9.700e+10 2.14782e-08 4.57073e-14 1.00000e+00 + 9.800e+10 2.12591e-08 5.19129e-14 1.00000e+00 + 9.900e+10 2.10445e-08 5.72423e-14 1.00000e+00 + 1.000e+11 2.08341e-08 6.12025e-14 1.00000e+00 -------------------------------------------------- Final Solver Statistics: - Internal solver steps = 372 (attempted = 563) - Total RHS evals: Fe = 0, Fi = 14565 - Total linear solver setups = 581 + Internal solver steps = 164 (attempted = 198) + Total RHS evals: Fe = 0, Fi = 6133 + Total linear solver setups = 182 Total RHS evals for setting up the linear system = 0 - Total number of Jacobian evaluations = 391 - Total number of Newton iterations = 12497 - Total number of nonlinear solver convergence failures = 376 - Total number of error test failures = 1 - Total number of constraint test failures = 14 - Total number of failed steps from solver failure = 176 + Total number of Jacobian evaluations = 100 + Total number of Newton iterations = 5269 + Total number of nonlinear solver convergence failures = 95 + Total number of error test failures = 0 + Total number of constraint test failures = 4 + Total number of failed steps from solver failure = 30 diff --git a/examples/arkode/C_serial/ark_robertson_root.c b/examples/arkode/C_serial/ark_robertson_root.c index f2c4331d3b..16f78fc2b4 100644 --- a/examples/arkode/C_serial/ark_robertson_root.c +++ b/examples/arkode/C_serial/ark_robertson_root.c @@ -72,7 +72,7 @@ int main() realtype TMult = RCONST(10.0); /* output time multiplication factor */ int Nt = 12; /* total number of output times */ sunindextype NEQ = 3; /* number of dependent vars. */ - + /* rootfinding variables */ int rootsfound[2]; int rtflag; /* root info flag */ @@ -139,6 +139,8 @@ int main() if (check_flag(&flag, "ARKStepSetPredictorMethod", 1)) return 1; flag = ARKStepSVtolerances(arkode_mem, reltol, atols); /* Specify tolerances */ if (check_flag(&flag, "ARKStepSStolerances", 1)) return 1; + flag = ARKStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); /* Lagrange interpolation */ + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; /* Specify the root-finding function, having 2 equations */ flag = ARKStepRootInit(arkode_mem, 2, g); diff --git a/examples/arkode/C_serial/ark_robertson_root.out b/examples/arkode/C_serial/ark_robertson_root.out index 236a53d64b..1b7756b314 100644 --- a/examples/arkode/C_serial/ark_robertson_root.out +++ b/examples/arkode/C_serial/ark_robertson_root.out @@ -4,30 +4,30 @@ Robertson ODE test problem (with rootfinding): t u v w ----------------------------------------------------- 0.00000e+00 1.00000e+00 0.00000e+00 0.00000e+00 - 2.64019e-01 9.89965e-01 3.47058e-05 1.00000e-02 + 2.64019e-01 9.89965e-01 3.47057e-05 1.00000e-02 rootsfound[] = 0 1 4.00000e+00 9.05519e-01 2.24048e-05 9.44589e-02 - 4.00000e+01 7.15827e-01 9.18557e-06 2.84164e-01 - 4.00000e+02 4.50519e-01 3.22289e-06 5.49478e-01 - 4.00000e+03 1.83202e-01 8.94239e-07 8.16797e-01 - 4.00000e+04 3.89834e-02 1.62177e-07 9.61016e-01 - 4.00000e+05 4.93828e-03 1.98499e-08 9.95062e-01 - 4.00000e+06 5.16810e-04 2.06836e-09 9.99483e-01 - 2.07955e+07 1.00000e-04 4.00913e-10 9.99900e-01 + 4.00000e+01 7.15827e-01 9.18553e-06 2.84164e-01 + 4.00000e+02 4.50519e-01 3.22290e-06 5.49478e-01 + 4.00000e+03 1.83202e-01 8.94237e-07 8.16797e-01 + 4.00000e+04 3.89835e-02 1.62178e-07 9.61016e-01 + 4.00000e+05 4.93828e-03 1.98677e-08 9.95062e-01 + 4.00000e+06 5.16810e-04 2.06829e-09 9.99483e-01 + 2.07998e+07 1.00000e-04 3.99952e-10 9.99900e-01 rootsfound[] = -1 0 - 4.00000e+08 5.20777e-06 2.07144e-11 9.99995e-01 - 4.00000e+09 5.20870e-07 2.07803e-12 9.99999e-01 - 4.00000e+10 5.20800e-08 4.22489e-13 1.00000e+00 + 4.00000e+08 5.21814e-06 2.07478e-11 9.99995e-01 + 4.00000e+09 5.20997e-07 2.07221e-12 9.99999e-01 + 4.00000e+10 5.25071e-08 1.48757e-13 1.00000e+00 ----------------------------------------------------- Final Solver Statistics: - Internal solver steps = 1070 (attempted = 1298) - Total RHS evals: Fe = 0, Fi = 36412 - Total linear solver setups = 590 + Internal solver steps = 880 (attempted = 1005) + Total RHS evals: Fe = 0, Fi = 28750 + Total linear solver setups = 363 Total RHS evals for setting up the linear system = 0 - Total number of Jacobian evaluations = 66 - Total number of Newton iterations = 29962 - Total root-function g evals = 1104 - Total number of nonlinear solver convergence failures = 55 - Total number of error test failures = 213 - Total number of failed steps from solver failure = 15 + Total number of Jacobian evaluations = 35 + Total number of Newton iterations = 23734 + Total root-function g evals = 910 + Total number of nonlinear solver convergence failures = 25 + Total number of error test failures = 122 + Total number of failed steps from solver failure = 3 diff --git a/examples/arkode/C_serial/ark_twowaycouple_mri.c b/examples/arkode/C_serial/ark_twowaycouple_mri.c index e9151211fd..65382a5a48 100644 --- a/examples/arkode/C_serial/ark_twowaycouple_mri.c +++ b/examples/arkode/C_serial/ark_twowaycouple_mri.c @@ -124,6 +124,10 @@ int main() retval = ARKStepSetFixedStep(inner_arkode_mem, hf); if (check_retval(&retval, "ARKStepSetFixedStep", 1)) return 1; + /* Specify the Lagrange interpolation module */ + retval = ARKStepSetInterpolantType(inner_arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "ARKStepSetInterpolantType", 1)) return 1; + /* Create inner stepper */ retval = ARKStepCreateMRIStepInnerStepper(inner_arkode_mem, &inner_stepper); @@ -143,6 +147,10 @@ int main() retval = MRIStepSetFixedStep(arkode_mem, hs); if (check_retval(&retval, "MRIStepSetFixedStep", 1)) return 1; + /* Specify the Lagrange interpolation module */ + retval = MRIStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); + if (check_retval(&retval, "MRIStepSetInterpolantType", 1)) return 1; + /* * Integrate ODE */ diff --git a/examples/arkode/C_serial/ark_twowaycouple_mri.out b/examples/arkode/C_serial/ark_twowaycouple_mri.out index ef4f3fa787..ad502e1d80 100644 --- a/examples/arkode/C_serial/ark_twowaycouple_mri.out +++ b/examples/arkode/C_serial/ark_twowaycouple_mri.out @@ -17,17 +17,17 @@ Two way coupling ODE test problem: 0.900000 -0.484725 -4.961021 406.541945 1.000000 0.823044 -3.167333 367.837598 1.100000 -1.032597 -3.289257 332.833949 - 1.200000 0.787590 -3.587066 301.163880 - 1.300000 -0.400605 -1.796875 272.487024 - 1.400000 -0.215620 -3.447105 246.572215 - 1.500000 0.671620 -1.510547 223.089539 - 1.600000 -0.994117 -2.245693 201.866372 - 1.700000 0.922731 -2.165057 182.655933 - 1.800000 -0.622232 -0.856671 165.261102 - 1.900000 0.060835 -2.492531 149.550168 - 2.000000 0.464954 -0.474682 135.299471 + 1.200000 0.787540 -3.587042 301.163829 + 1.300000 -0.400621 -1.796900 272.486934 + 1.400000 -0.215634 -3.447071 246.572091 + 1.500000 0.671577 -1.510563 223.089390 + 1.600000 -0.994105 -2.245684 201.866203 + 1.700000 0.922686 -2.165040 182.655750 + 1.800000 -0.622231 -0.856693 165.260909 + 1.900000 0.060822 -2.492497 149.549968 + 2.000000 0.464925 -0.474704 135.299268 ----------------------------------------------- Final Solver Statistics: Steps: nsts = 2001, nstf = 102051 - Total RHS evals: Fs = 6004, Ff = 410207 + Total RHS evals: Fs = 6003, Ff = 306153 diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 5c12e4afe6..549f3940ea 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -139,10 +139,12 @@ ARKodeMem arkCreate(SUNContext sunctx) /* Initially, rwt should point to ewt */ ark_mem->rwt_is_ewt = SUNTRUE; - /* Indicate that evaluation of the full RHS is not required after each step, - this flag is updated to SUNTRUE by the interpolation module initialization - function and/or the stepper initialization function in arkInitialSetup */ - ark_mem->call_fullrhs = SUNFALSE; + /* Indicate that evaluation of the full RHS is not required before/after + each step, this flag is updated to SUNTRUE by the interpolation module + initialization function and/or the stepper initialization function in + arkInitialSetup */ + ark_mem->call_fullrhs_start = SUNFALSE; + ark_mem->call_fullrhs_end = SUNFALSE; /* Indicate that the problem needs to be initialized */ ark_mem->initsetup = SUNTRUE; @@ -1349,10 +1351,12 @@ int arkInit(ARKodeMem ark_mem, realtype t0, N_Vector y0, ark_mem->hadapt_mem->hhist[0] = ZERO; ark_mem->hadapt_mem->hhist[1] = ZERO; - /* Indicate that evaluation of the full RHS is not required after each step, - this flag is updated to SUNTRUE by the interpolation module initialization - function and/or the stepper initialization function in arkInitialSetup */ - ark_mem->call_fullrhs = SUNFALSE; + /* Indicate that evaluation of the full RHS is not required before/after + each step, this flag is updated to SUNTRUE by the interpolation module + initialization function and/or the stepper initialization function in + arkInitialSetup */ + ark_mem->call_fullrhs_start = SUNFALSE; + ark_mem->call_fullrhs_end = SUNFALSE; /* Indicate that initialization has not been done before */ ark_mem->initialized = SUNFALSE; @@ -1399,7 +1403,8 @@ void arkPrintMem(ARKodeMem ark_mem, FILE *outfile) fprintf(outfile, "Sabstol = %" RSYM"\n", ark_mem->Sabstol); fprintf(outfile, "fixedstep = %i\n", ark_mem->fixedstep); fprintf(outfile, "tolsf = %" RSYM"\n", ark_mem->tolsf); - fprintf(outfile, "call_fullrhs = %i\n", ark_mem->call_fullrhs); + fprintf(outfile, "call_fullrhs_start = %i\n", ark_mem->call_fullrhs_start); + fprintf(outfile, "call_fullrhs_end = %i\n", ark_mem->call_fullrhs_end); /* output counters */ fprintf(outfile, "nhnil = %i\n", ark_mem->nhnil); @@ -1453,8 +1458,10 @@ void arkPrintMem(ARKodeMem ark_mem, FILE *outfile) N_VPrintFile(ark_mem->ycur, outfile); fprintf(outfile, "yn:\n"); N_VPrintFile(ark_mem->yn, outfile); - fprintf(outfile, "fn:\n"); - N_VPrintFile(ark_mem->fn, outfile); + if (ark_mem->fn != NULL) { + fprintf(outfile, "fn:\n"); + N_VPrintFile(ark_mem->fn, outfile); + } fprintf(outfile, "tempv1:\n"); N_VPrintFile(ark_mem->tempv1, outfile); fprintf(outfile, "tempv2:\n"); @@ -1479,10 +1486,9 @@ void arkPrintMem(ARKodeMem ark_mem, FILE *outfile) ---------------------------------------------------------------*/ booleantype arkCheckTimestepper(ARKodeMem ark_mem) { - if ( (ark_mem->step_init == NULL) || - (ark_mem->step == NULL) || - (ark_mem->step_mem == NULL) || - (ark_mem->step_fullrhs == NULL) ) + if ( (ark_mem->step_init == NULL) || + (ark_mem->step == NULL) || + (ark_mem->step_mem == NULL) ) return(SUNFALSE); return(SUNTRUE); } @@ -1688,10 +1694,6 @@ booleantype arkAllocVectors(ARKodeMem ark_mem, N_Vector tmpl) if (!arkAllocVec(ark_mem, tmpl, &ark_mem->yn)) return(SUNFALSE); - /* Allocate fn if needed */ - if (!arkAllocVec(ark_mem, tmpl, &ark_mem->fn)) - return(SUNFALSE); - /* Allocate tempv1 if needed */ if (!arkAllocVec(ark_mem, tmpl, &ark_mem->tempv1)) return(SUNFALSE); @@ -1805,7 +1807,7 @@ void arkFreeVectors(ARKodeMem ark_mem) arkFreeVec(ark_mem, &ark_mem->tempv3); arkFreeVec(ark_mem, &ark_mem->tempv4); arkFreeVec(ark_mem, &ark_mem->yn); - arkFreeVec(ark_mem, &ark_mem->fn); + arkFreeVec(ark_mem, &ark_mem->fn); arkFreeVec(ark_mem, &ark_mem->Vabstol); arkFreeVec(ark_mem, &ark_mem->constraints); } @@ -1916,18 +1918,43 @@ int arkInitialSetup(ARKodeMem ark_mem, realtype tout) potential mass matrix solve when computing the full rhs */ if (ark_mem->h == ZERO) ark_mem->h = ONE; - /* Call fullrhs (used in estimating initial step, explicit steppers, Hermite - interpolation module, and possibly (but not always) arkRootCheck1) */ - retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tcur, ark_mem->yn, - ark_mem->fn, ARK_FULLRHS_START); - if (retval != 0) return(ARK_RHSFUNC_FAIL); - /* Fill initial interpolation data (if needed) */ if (ark_mem->interp != NULL) { retval = arkInterpInit(ark_mem, ark_mem->interp, ark_mem->tcur); if (retval != 0) return(retval); } + + /* If a stepper requested fullrhs, then we check that the fullrhs function + is provied and allocate fn to store the result of fullrhs. */ + if (ark_mem->call_fullrhs_start || ark_mem->call_fullrhs_end) { + if (ark_mem->step_fullrhs == NULL) { + arkProcessError(ark_mem, ARK_ILL_INPUT, "ARKODE", + "arkInitialSetup", MSG_ARK_MISSING_FULLRHS); + return(ARK_ILL_INPUT); + } + + if (!arkAllocVec(ark_mem, ark_mem->yn, &ark_mem->fn)) { + arkProcessError(ark_mem, ARK_MEM_FAIL, "ARKODE", + "arkInitialSetup", MSG_ARK_MEM_FAIL); + return(ARK_MEM_FAIL); + } + } + + /* Call fullrhs if indicated as needed (stepper-requested, Hermite + interpolation module, temporal root-finding) */ + if (ark_mem->call_fullrhs_start) { + retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tcur, ark_mem->yn, + ark_mem->fn, ARK_FULLRHS_START); + if (retval != 0) return(ARK_RHSFUNC_FAIL); + } + + /* Update interpolation data with initial state (if needed) */ + if (ark_mem->interp != NULL) { + retval = arkInterpUpdate(ark_mem, ark_mem->interp, ark_mem->tcur); + if (retval != 0) return(retval); + } + /* initialization complete */ ark_mem->initialized = SUNTRUE; @@ -2046,7 +2073,7 @@ int arkStopTests(ARKodeMem ark_mem, realtype tout, N_Vector yout, /* If the full rhs was not computed in the last call to arkCompleteStep and roots were found in the previous step, then compute the full rhs for possible use in arkRootCheck2 (not always necessary) */ - if (!(ark_mem->call_fullrhs) && irfndp != 0) { + if (!(ark_mem->call_fullrhs_end) && irfndp != 0) { retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tcur, ark_mem->yn, ark_mem->fn, ARK_FULLRHS_END); if (retval != 0) { @@ -2213,6 +2240,29 @@ int arkHin(ARKodeMem ark_mem, realtype tout) if (tdist < TWO*tround) return(ARK_TOO_CLOSE); + /* If ark_mem->fn is still unallocated then do so here */ + if (!arkAllocVec(ark_mem, ark_mem->yn, &ark_mem->fn)) { + arkProcessError(ark_mem, ARK_MEM_FAIL, "ARKODE", + "arkHin", MSG_ARK_MEM_FAIL); + return(ARK_MEM_FAIL); + } + /* If fullrhs was not called already, then ensure that it is provided, and + call it to fill ark_mem->fn */ + if (!(ark_mem->call_fullrhs_start)) { + if (ark_mem->step_fullrhs == NULL) { + arkProcessError(ark_mem, ARK_ILL_INPUT, "ARKODE", + "arkHin", MSG_ARK_MISSING_FULLRHS); + return(ARK_ILL_INPUT); + } + retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tcur, ark_mem->yn, + ark_mem->fn, ARK_FULLRHS_START); + if (retval != 0) { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE", "arkHin", + MSG_ARK_RHSFUNC_FAILED); + return(ARK_RHSFUNC_FAIL); + } + } + /* Set lower and upper bounds on h0, and take geometric mean as first trial value. Exit with this value if the bounds cross each other. */ @@ -2425,7 +2475,7 @@ int arkCompleteStep(ARKodeMem ark_mem, realtype dsm) } /* call fullrhs if needed */ - if (ark_mem->call_fullrhs) { + if (ark_mem->call_fullrhs_end) { mode = (ark_mem->ProcessStep != NULL) ? ARK_FULLRHS_START : ARK_FULLRHS_END; retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tcur, ark_mem->ycur, ark_mem->fn, mode); diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index e1245168e0..06896033d9 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1068,7 +1068,7 @@ int arkStep_GetGammas(void* arkode_mem, realtype *gamma, - initializes and sets up the nonlinear solver (if applicable) - allocates the interpolation data structure (if needed based on ARKStep solver options) - - updates the call_fullrhs flag if necessary + - updates the call_fullrhs_start flag if necessary With initialization type FIRST_INIT or RESIZE_INIT, this routine: - sets the relevant TakeStep routine based on the current @@ -1240,7 +1240,7 @@ int arkStep_Init(void* arkode_mem, int init_type) /* If the bootstrap predictor is enabled, signal to shared arkode module that fullrhs is required after each step */ - if (step_mem->predictor == 4) ark_mem->call_fullrhs = SUNTRUE; + if (step_mem->predictor == 4) ark_mem->call_fullrhs_start = SUNTRUE; } /* set appropriate TakeStep routine based on problem configuration */ diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index f21aa2602b..3f9cda7365 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -493,7 +493,6 @@ void ERKStepPrintMem(void* arkode_mem, FILE* outfile) - sets/checks the ARK Butcher tables to be used - allocates any memory that depends on the number of ARK stages, method order, or solver options - - sets the call_fullrhs flag With other initialization types, this routine does nothing. ---------------------------------------------------------------*/ @@ -593,8 +592,9 @@ int erkStep_Init(void* arkode_mem, int init_type) } } - /* Signal to shared arkode module that fullrhs is required after each step */ - ark_mem->call_fullrhs = SUNTRUE; + /* Indicate to ARKODE to evaluate the RHS before/after each step */ + ark_mem->call_fullrhs_start = SUNTRUE; + ark_mem->call_fullrhs_end = SUNTRUE; return(ARK_SUCCESS); } @@ -766,6 +766,18 @@ int erkStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) ark_mem->nst, ark_mem->h, ark_mem->tcur); #endif + /* if fullrhs has not been called, fill in F[0] */ + if (!ark_mem->call_fullrhs_start) { + retval = step_mem->f(ark_mem->tn, ark_mem->ycur, + step_mem->F[0], ark_mem->user_data); + step_mem->nfe++; + if (retval != 0) { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ERKStep", + "erkStep_TakeStep", MSG_ARK_RHSFUNC_FAILED, ark_mem->tn); + return(ARK_RHSFUNC_FAIL); + } + } + #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::erkStep_TakeStep", "stage", diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index 32c73219ee..7d20f2d683 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -409,7 +409,8 @@ struct ARKodeMemRec int init_type; /* initialization type (see constants above) */ booleantype firststage; /* denotes first stage in simulation */ booleantype initialized; /* denotes arkInitialSetup has been done */ - booleantype call_fullrhs; /* denotes fn needs updating after each step */ + booleantype call_fullrhs_start; /* denotes fn needs updating before or */ + booleantype call_fullrhs_end; /* after each step */ /* Error handler function and error ouput file */ ARKErrHandlerFn ehfun; /* error messages are handled by ehfun */ @@ -811,6 +812,14 @@ struct ARKodeMemRec maximize reuse between calls to this function and RHS evaluations inside the stepper itself. + This routine is only required to be supplied to ARKODE if: + * ARKODE's initial time step selection algorithm is used, + * the user requests temporal root-finding, + * the Hermite interpolation module is used, or + * the user requests the "bootstrap" implicit predictor. + Note that any stepper can itself require that this routine + exist for its own internal business (e.g., ERKStep). + This routine should return 0 if successful, and a negative value otherwise. If an error does occur, an appropriate message should be sent to the error handler function. @@ -1154,7 +1163,7 @@ int arkGetLastKFlag(void *arkode_mem, int *last_kflag); #define MSG_ARK_POSTPROCESS_STAGE_FAIL "At " MSG_TIME ", the stage postprocessing routine failed in an unrecoverable manner." #define MSG_ARK_NULL_SUNCTX "sunctx = NULL illegal." #define MSG_ARK_CONTEXT_MISMATCH "Outer and inner steppers have different contexts." - +#define MSG_ARK_MISSING_FULLRHS "Time-stepping module missing fullrhs routine (required by requested solver configuration)." #ifdef __cplusplus } #endif diff --git a/src/arkode/arkode_interp.c b/src/arkode/arkode_interp.c index 30ee7aece8..8146cde7fb 100644 --- a/src/arkode/arkode_interp.c +++ b/src/arkode/arkode_interp.c @@ -150,10 +150,6 @@ ARKInterp arkInterpCreate_Hermite(void* arkode_mem, int degree) /* set maximum interpolant degree */ content->degree = SUNMIN(ARK_INTERP_MAX_DEGREE, degree); - /* set ynew and fnew pointers to ark_mem->yn and ark_mem->fn, respectively */ - content->ynew = ark_mem->yn; - content->fnew = ark_mem->fn; - /* update workspace sizes */ ark_mem->lrw += 2; ark_mem->liw += 5; @@ -202,10 +198,6 @@ int arkInterpResize_Hermite(void* arkode_mem, ARKInterp interp, liw_diff, y0, &HINT_FB(interp))) return(ARK_MEM_FAIL); - /* update ynew and fnew pointers */ - HINT_YNEW(interp) = ark_mem->yn; - HINT_FNEW(interp) = ark_mem->fn; - /* reinitialize time values */ HINT_TOLD(interp) = ark_mem->tcur; HINT_TNEW(interp) = ark_mem->tcur; @@ -286,12 +278,8 @@ void arkInterpPrintMem_Hermite(ARKInterp interp, FILE *outfile) #ifdef SUNDIALS_DEBUG_PRINTVEC fprintf(outfile, "arkode_interp (Hermite): fold:\n"); N_VPrintFile(HINT_FOLD(interp), outfile); - fprintf(outfile, "arkode_interp (Hermite): fnew:\n"); - N_VPrintFile(HINT_FNEW(interp), outfile); fprintf(outfile, "arkode_interp (Hermite): yold:\n"); N_VPrintFile(HINT_YOLD(interp), outfile); - fprintf(outfile, "arkode_interp (Hermite): ynew:\n"); - N_VPrintFile(HINT_YNEW(interp), outfile); fprintf(outfile, "arkode_interp (Hermite): fa:\n"); N_VPrintFile(HINT_FA(interp), outfile); fprintf(outfile, "arkode_interp (Hermite): fb:\n"); @@ -405,11 +393,9 @@ int arkInterpInit_Hermite(void* arkode_mem, ARKInterp interp, /* copy current solution into yold */ N_VScale(ONE, ark_mem->yn, HINT_YOLD(interp)); - /* copy fnew into fold */ - N_VScale(ONE, HINT_FNEW(interp), HINT_FOLD(interp)); - - /* signal that fullrhs is required after each step */ - ark_mem->call_fullrhs = SUNTRUE; + /* signal that fullrhs is required at both "ends" of the time step */ + ark_mem->call_fullrhs_start = SUNTRUE; + ark_mem->call_fullrhs_end = SUNTRUE; /* return with success */ return(ARK_SUCCESS); @@ -431,8 +417,8 @@ int arkInterpUpdate_Hermite(void* arkode_mem, ARKInterp interp, realtype tnew) ark_mem = (ARKodeMem) arkode_mem; /* copy ynew and fnew into yold and fold, respectively */ - N_VScale(ONE, HINT_YNEW(interp), HINT_YOLD(interp)); - N_VScale(ONE, HINT_FNEW(interp), HINT_FOLD(interp)); + N_VScale(ONE, ark_mem->yn, HINT_YOLD(interp)); + N_VScale(ONE, ark_mem->fn, HINT_FOLD(interp)); /* update time values */ HINT_TOLD(interp) = HINT_TNEW(interp); @@ -528,7 +514,7 @@ int arkInterpEvaluate_Hermite(void* arkode_mem, ARKInterp interp, switch (q) { case(0): /* constant interpolant, yout = 0.5*(yn+yp) */ - N_VLinearSum(HALF, HINT_YOLD(interp), HALF, HINT_YNEW(interp), yout); + N_VLinearSum(HALF, HINT_YOLD(interp), HALF, ark_mem->yn, yout); break; case(1): /* linear interpolant */ @@ -539,7 +525,7 @@ int arkInterpEvaluate_Hermite(void* arkode_mem, ARKInterp interp, a0 = -ONE/h; a1 = ONE/h; } - N_VLinearSum(a0, HINT_YOLD(interp), a1, HINT_YNEW(interp), yout); + N_VLinearSum(a0, HINT_YOLD(interp), a1, ark_mem->yn, yout); break; case(2): /* quadratic interpolant */ @@ -557,8 +543,8 @@ int arkInterpEvaluate_Hermite(void* arkode_mem, ARKInterp interp, a[2] = TWO/h; } X[0] = HINT_YOLD(interp); - X[1] = HINT_YNEW(interp); - X[2] = HINT_FNEW(interp); + X[1] = ark_mem->yn; + X[2] = ark_mem->fn; retval = N_VLinearCombination(3, a, X, yout); if (retval != 0) return(ARK_VECTOROP_ERR); break; @@ -586,9 +572,9 @@ int arkInterpEvaluate_Hermite(void* arkode_mem, ARKInterp interp, a[3] = SIX/h2; } X[0] = HINT_YOLD(interp); - X[1] = HINT_YNEW(interp); + X[1] = ark_mem->yn; X[2] = HINT_FOLD(interp); - X[3] = HINT_FNEW(interp); + X[3] = ark_mem->fn; retval = N_VLinearCombination(4, a, X, yout); if (retval != 0) return(ARK_VECTOROP_ERR); break; @@ -639,9 +625,9 @@ int arkInterpEvaluate_Hermite(void* arkode_mem, ARKInterp interp, a[4] = -RCONST(162.0)/h3; } X[0] = HINT_YOLD(interp); - X[1] = HINT_YNEW(interp); + X[1] = ark_mem->yn; X[2] = HINT_FOLD(interp); - X[3] = HINT_FNEW(interp); + X[3] = ark_mem->fn; X[4] = HINT_FA(interp); retval = N_VLinearCombination(5, a, X, yout); if (retval != 0) return(ARK_VECTOROP_ERR); @@ -716,9 +702,9 @@ int arkInterpEvaluate_Hermite(void* arkode_mem, ARKInterp interp, a[5] = a[4]; } X[0] = HINT_YOLD(interp); - X[1] = HINT_YNEW(interp); + X[1] = ark_mem->yn; X[2] = HINT_FOLD(interp); - X[3] = HINT_FNEW(interp); + X[3] = ark_mem->fn; X[4] = HINT_FA(interp); X[5] = HINT_FB(interp); retval = N_VLinearCombination(6, a, X, yout); diff --git a/src/arkode/arkode_interp_impl.h b/src/arkode/arkode_interp_impl.h index 75a4696704..7c8794ff82 100644 --- a/src/arkode/arkode_interp_impl.h +++ b/src/arkode/arkode_interp_impl.h @@ -47,9 +47,7 @@ extern "C" { struct _ARKInterpContent_Hermite { int degree; /* maximum interpolant degree to use */ N_Vector fold; /* f(t,y) at beginning of last successful step */ - N_Vector fnew; /* f(t,y) at end of last successful step */ N_Vector yold; /* y at beginning of last successful step */ - N_Vector ynew; /* y at end of last successful step */ N_Vector fa; /* f(t,y) used in higher-order interpolation */ N_Vector fb; /* f(t,y) used in higher-order interpolation */ realtype told; /* t at beginning of last successful step */ @@ -65,9 +63,7 @@ typedef struct _ARKInterpContent_Hermite *ARKInterpContent_Hermite; #define HINT_CONTENT(I) ( (ARKInterpContent_Hermite)(I->content) ) #define HINT_DEGREE(I) ( HINT_CONTENT(I)->degree ) #define HINT_FOLD(I) ( HINT_CONTENT(I)->fold ) -#define HINT_FNEW(I) ( HINT_CONTENT(I)->fnew ) #define HINT_YOLD(I) ( HINT_CONTENT(I)->yold ) -#define HINT_YNEW(I) ( HINT_CONTENT(I)->ynew ) #define HINT_FA(I) ( HINT_CONTENT(I)->fa ) #define HINT_FB(I) ( HINT_CONTENT(I)->fb ) #define HINT_TOLD(I) ( HINT_CONTENT(I)->told ) diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index 11e74e86a5..7331ec98cb 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -131,7 +131,7 @@ void* MRIStepCreate(ARKRhsFn fse, ARKRhsFn fsi, realtype t0, N_Vector y0, step_mem->implicit_rhs = (fsi == NULL) ? SUNFALSE : SUNTRUE; /* Update the ARKODE workspace requirements */ - ark_mem->liw += 42; /* fcn/data ptr, int, long int, sunindextype, booleantype */ + ark_mem->liw += 43; /* fcn/data ptr, int, long int, sunindextype, booleantype */ ark_mem->lrw += 10; /* Create a default Newton NLS object (just in case; will be deleted if @@ -965,7 +965,6 @@ int mriStep_GetGammas(void* arkode_mem, realtype *gamma, - sets/checks the ARK Butcher tables to be used - allocates any memory that depends on the number of ARK stages, method order, or solver options - - sets the call_fullrhs flag With other initialization types, this routine does nothing. ---------------------------------------------------------------*/ @@ -1207,9 +1206,6 @@ int mriStep_Init(void* arkode_mem, int init_type) } } - /* Signal to shared arkode module that fullrhs is required after each step */ - ark_mem->call_fullrhs = SUNTRUE; - return(ARK_SUCCESS); } @@ -1250,6 +1246,13 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, &ark_mem, &step_mem); if (retval != ARK_SUCCESS) return(retval); + /* ensure that inner stepper provides fullrhs function */ + if (step_mem->stepper->ops->fullrhs == NULL) { + arkProcessError(ark_mem, ARK_ILL_INPUT, "ARKODE::MRIStep", + "mriStep_FullRHS", MSG_ARK_MISSING_FULLRHS); + return(ARK_ILL_INPUT); + } + /* perform RHS functions contingent on 'mode' argument */ switch(mode) { @@ -1462,6 +1465,30 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) ark_mem->nst, ark_mem->h, ark_mem->tcur); #endif + /* if fullrhs has not been called, fill in Fse[0] and Fsi[0] as applicable */ + if (!ark_mem->call_fullrhs_start) { + if (step_mem->explicit_rhs) { + retval = step_mem->fse(ark_mem->tn, ark_mem->ycur, + step_mem->Fse[0], ark_mem->user_data); + step_mem->nfse++; + if (retval != 0) { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", + "mriStep_TakeStep", MSG_ARK_RHSFUNC_FAILED, ark_mem->tn); + return(ARK_RHSFUNC_FAIL); + } + } + if (step_mem->implicit_rhs) { + retval = step_mem->fsi(ark_mem->tn, ark_mem->ycur, + step_mem->Fsi[0], ark_mem->user_data); + step_mem->nfsi++; + if (retval != 0) { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", + "mriStep_TakeStep", MSG_ARK_RHSFUNC_FAILED, ark_mem->tn); + return(ARK_RHSFUNC_FAIL); + } + } + } + #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::mriStep_TakeStep", "slow stage", @@ -2729,7 +2756,7 @@ int mriStepInnerStepper_HasRequiredOps(MRIStepInnerStepper stepper) if (stepper == NULL) return ARK_ILL_INPUT; if (stepper->ops == NULL) return ARK_ILL_INPUT; - if (stepper->ops->evolve && stepper->ops->fullrhs) + if (stepper->ops->evolve) return ARK_SUCCESS; else return ARK_ILL_INPUT; diff --git a/src/arkode/arkode_root.c b/src/arkode/arkode_root.c index 7c0b49df81..86842efd20 100644 --- a/src/arkode/arkode_root.c +++ b/src/arkode/arkode_root.c @@ -30,7 +30,8 @@ arkRootInit initializes a rootfinding problem to be solved during the integration of the ODE system. It loads the root - function pointer and the number of root functions, and allocates + function pointer and the number of root functions, notifies + ARKODE that the "fullrhs" function is required, and allocates workspace memory. The return value is ARK_SUCCESS = 0 if no errors occurred, or a negative value otherwise. ---------------------------------------------------------------*/ @@ -197,6 +198,16 @@ int arkRootInit(ARKodeMem ark_mem, int nrtfn, ARKRootFn g) /* Set default values for gactive (all active) */ for(i=0; iroot_mem->gactive[i] = SUNTRUE; + /* Ensure that stepper provides fullrhs function */ + if (nrt > 0) { + if (ark_mem->step_fullrhs == NULL) { + arkProcessError(ark_mem, ARK_ILL_INPUT, "ARKODE", + "arkRootInit", MSG_ARK_MISSING_FULLRHS); + return(ARK_ILL_INPUT); + } + } + + /* Update total ARKODE memory footprint */ ark_mem->lrw += 3*nrt; ark_mem->liw += 3*nrt; diff --git a/src/arkode/arkode_sprkstep.c b/src/arkode/arkode_sprkstep.c index 5d6219e98e..9a9157ecb4 100644 --- a/src/arkode/arkode_sprkstep.c +++ b/src/arkode/arkode_sprkstep.c @@ -461,7 +461,7 @@ int sprkStep_Init(void* arkode_mem, int init_type) /* Signal to shared arkode module that fullrhs is not required after each step */ - ark_mem->call_fullrhs = SUNFALSE; + ark_mem->call_fullrhs_end = SUNFALSE; return (ARK_SUCCESS); } diff --git a/test/answers b/test/answers index 59ceb24b2e..f5ee4c35ce 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 59ceb24b2edee3b4062153047a4bdc561b626b5e +Subproject commit f5ee4c35ce8c701af4b45a9cefb91cb9391fd77a