From c86f8a5d93d64d1beede7ca45c57102b63922ade Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 31 Jul 2023 21:35:33 -0700 Subject: [PATCH 01/92] flow chart for ERKStep Full RHS Evals --- doc/sundials_developers/source/conf.py | 3 +- doc/sundials_developers/source/index.rst | 1 + .../source/packages/ARKODE.rst | 104 ++++++++++++++++++ .../source/packages/index.rst | 23 ++++ doc/sundials_developers/source/testing/CI.rst | 2 +- 5 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 doc/sundials_developers/source/packages/ARKODE.rst create mode 100644 doc/sundials_developers/source/packages/index.rst diff --git a/doc/sundials_developers/source/conf.py b/doc/sundials_developers/source/conf.py index 24e5e80f31..05d04cde08 100644 --- a/doc/sundials_developers/source/conf.py +++ b/doc/sundials_developers/source/conf.py @@ -34,7 +34,8 @@ def setup(app: Sphinx): # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx_rtd_theme', 'sphinx.ext.ifconfig', 'sphinx.ext.mathjax', - 'sphinxfortran.fortran_domain', 'sphinxcontrib.bibtex', 'sphinx_copybutton'] + 'sphinxfortran.fortran_domain', 'sphinxcontrib.bibtex', + 'sphinx_copybutton', 'sphinx.ext.graphviz'] # References bibtex_bibfiles = ['../../shared/sundials.bib'] diff --git a/doc/sundials_developers/source/index.rst b/doc/sundials_developers/source/index.rst index 901544a729..6fb64c1b28 100644 --- a/doc/sundials_developers/source/index.rst +++ b/doc/sundials_developers/source/index.rst @@ -28,5 +28,6 @@ SUNDIALS Developers Guide benchmarks/index pull_requests/index releases/index + packages/index appendix/index references diff --git a/doc/sundials_developers/source/packages/ARKODE.rst b/doc/sundials_developers/source/packages/ARKODE.rst new file mode 100644 index 0000000000..eba45cdba4 --- /dev/null +++ b/doc/sundials_developers/source/packages/ARKODE.rst @@ -0,0 +1,104 @@ +.. + Author(s): David J. Gardner @ LLNL + ----------------------------------------------------------------------------- + SUNDIALS Copyright Start + Copyright (c) 2002-2023, Lawrence Livermore National Security + and Southern Methodist University. + All rights reserved. + + See the top-level LICENSE and NOTICE files for details. + + SPDX-License-Identifier: BSD-3-Clause + SUNDIALS Copyright End + ----------------------------------------------------------------------------- + +.. _ARKODE.ERKFullRHS: + +ERKStep Full RHS Flow +===================== + +Dotted lines signify execution paths that should not be possible. + +.. digraph:: fullrhs + + node [shape=box] + + start [label="Initialize fn_current to False"]; + h0 [label="Is h0 provided?", target="_top"]; + f0q1 [label="Has f(t0, y0) been computed?"]; + eval1 [label="Evaluate f(t0, y0)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + step1 [label="Start Step 1"]; + + start -> h0 + h0 -> step1 [label="Yes"] + h0 -> f0q1 [label="No"] + f0q1 -> step1 [label="Yes", style="dotted"] + f0q1 -> eval1 [label="No"] + eval1 -> step1 + + f0q2 [label="Has f(t0, y0) been computed?"]; + eval2 [label="Evaluate f(t0, y0)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + stages1 [label="Compute Stages"] + complete [label="Complete Step"] + + step1 -> f0q2 + f0q2 -> stages1 [label="Yes"] + f0q2 -> eval2 [label="No"] + eval2 -> stages1 + stages1 -> complete + + interp_update [label="Update interpolation module?"]; + hermite1 [label="Hermite interpolation?"]; + lagrange1 [label="Add ycur to history"] + f0q3 [label="Has f(t0, y0) been computed?"]; + eval3 [label="Evaluate f(t0, y0)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + update_yn [label="Copy tcur to tn\lCopy ycur to yn\lSet fn_current to False"]; + + complete -> interp_update + interp_update -> update_yn [label="No"] + interp_update -> hermite1 [label="Yes"] + hermite1 -> lagrange1 [label="No"] + hermite1 -> f0q3 [label="Yes"] + lagrange1 -> update_yn + f0q3 -> update_yn [label="Yes"] + f0q3 -> eval3 [label="No", style="dotted"] + eval3 -> update_yn [style="dotted"] + + interp [label="Interpolate output?"]; + interp_eval [label="Evaluate interpolant"] + step2 [label="Start Step 2"]; + f1q1 [label="Has f(t1, y1) been computed?"]; + hermite2 [label="Hermite interpolation?"]; + fsal1 [label="Is the method FSAL?"] + eval4 [label="Evaluate f(t1, y1)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + copy1 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + interp_yout [label="Compute yout"] + + update_yn -> interp + interp -> interp_yout [label="No"] + interp -> interp_eval [label="Yes"] + interp_eval -> hermite2 + hermite2 -> interp_yout [label="No"] + hermite2 -> f1q1 [label="Yes"] + f1q1 -> interp_yout [label="Yes", style="dotted"] + f1q1 -> fsal1 [label="No"] + fsal1 -> eval4 [label="No"] + fsal1 -> copy1 [label="Yes"] + copy1 -> interp_yout + eval4 -> interp_yout + interp_yout -> step2 + + f1q2 [label="Has f(t1, y1) been computed?"]; + fsal2 [label="Is the method FSAL?"] + eval5 [label="Evaluate f(t1, y1)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + copy2 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + stages2 [label="Compute Stages"] + + step2 -> f1q2 + f1q2 -> stages2 [label="Yes"] + f1q2 -> fsal2 [label="No"] + fsal2 -> copy2 [label="Yes"] + fsal2 -> eval5 [label="No"] + copy2 -> stages2 + eval5 -> stages2 + stages2 -> "Complete Step" diff --git a/doc/sundials_developers/source/packages/index.rst b/doc/sundials_developers/source/packages/index.rst new file mode 100644 index 0000000000..372543ead6 --- /dev/null +++ b/doc/sundials_developers/source/packages/index.rst @@ -0,0 +1,23 @@ +.. + Author(s): David J. Gardner @ LLNL + ----------------------------------------------------------------------------- + SUNDIALS Copyright Start + Copyright (c) 2002-2023, Lawrence Livermore National Security + and Southern Methodist University. + All rights reserved. + + See the top-level LICENSE and NOTICE files for details. + + SPDX-License-Identifier: BSD-3-Clause + SUNDIALS Copyright End + ----------------------------------------------------------------------------- + +.. _Packages: + +Packages +=========== + +.. toctree:: + :maxdepth: 2 + + ARKODE diff --git a/doc/sundials_developers/source/testing/CI.rst b/doc/sundials_developers/source/testing/CI.rst index 52626c5301..d8b0c59006 100644 --- a/doc/sundials_developers/source/testing/CI.rst +++ b/doc/sundials_developers/source/testing/CI.rst @@ -279,7 +279,7 @@ To update the spack commit used for the CI: 1. The first thing to do is update the spack commit in the ``.uberenv_config.json`` file. 2. Then, a pipeline should be manually launched from the GitLab UI with the ``SHARED_SPACK`` CI variable set -to ``ON`` and the ``SPACK_PREFIX`` variable to the version of spack being set in the uberenv_config.json. + to ``ON`` and the ``SPACK_PREFIX`` variable to the version of spack being set in the uberenv_config.json. This will create a new spack installation and rebuild all of the specs. From 856b49f9ce13dd170e9ab86134c18f9acc1d0dfa Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 31 Jul 2023 21:52:45 -0700 Subject: [PATCH 02/92] Update ERKStep RHS eval logic --- src/arkode/arkode.c | 50 ++++++++++++++++--------- src/arkode/arkode_erkstep.c | 75 +++++++++++++++++++++++++------------ src/arkode/arkode_impl.h | 29 +++++++++----- src/arkode/arkode_interp.c | 31 +++++++++++---- src/arkode/arkode_root.c | 14 ++++++- 5 files changed, 140 insertions(+), 59 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 5c12e4afe6..428e1fd3a0 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -286,6 +286,7 @@ int arkResize(ARKodeMem ark_mem, N_Vector y0, realtype hscale, /* Copy y0 into ark_yn to set the current solution */ N_VScale(ONE, y0, ark_mem->yn); + ark_mem->fn_current = SUNFALSE; /* Disable constraints */ ark_mem->constraintsSet = SUNFALSE; @@ -1316,6 +1317,7 @@ int arkInit(ARKodeMem ark_mem, realtype t0, N_Vector y0, /* Initialize yn */ N_VScale(ONE, y0, ark_mem->yn); + ark_mem->fn_current = SUNFALSE; /* Clear any previous 'tstop' */ ark_mem->tstopset = SUNFALSE; @@ -1688,10 +1690,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); @@ -1918,9 +1916,22 @@ int arkInitialSetup(ARKodeMem ark_mem, realtype tout) /* 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); + if (ark_mem->call_fullrhs) + { + if (!ark_mem->step_fullrhs) + { + 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); + } + } /* Fill initial interpolation data (if needed) */ if (ark_mem->interp != NULL) { @@ -2043,11 +2054,11 @@ int arkStopTests(ARKodeMem ark_mem, realtype tout, N_Vector yout, /* Shortcut to roots found in previous step */ irfndp = ark_mem->root_mem->irfnd; - /* If the full rhs was not computed in the last call to arkCompleteStep + /* 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) { - retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tcur, ark_mem->yn, + if (!(ark_mem->fn_current) && irfndp != 0) { + retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, ark_mem->fn, ARK_FULLRHS_END); if (retval != 0) { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE", "arkStopTests", @@ -2055,6 +2066,7 @@ int arkStopTests(ARKodeMem ark_mem, realtype tout, N_Vector yout, *ier = ARK_RHSFUNC_FAIL; return(1); } + ark_mem->fn_current = SUNTRUE; } retval = arkRootCheck2((void*) ark_mem); @@ -2213,6 +2225,15 @@ int arkHin(ARKodeMem ark_mem, realtype tout) if (tdist < TWO*tround) return(ARK_TOO_CLOSE); + /* call full RHS if needed */ + if (!(ark_mem->fn_current)) + { + retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, + ark_mem->fn, ARK_FULLRHS_START); + if (retval) { return ARK_RHSFUNC_FAIL; } + ark_mem->fn_current = SUNTRUE; + } + /* 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. */ @@ -2424,16 +2445,9 @@ int arkCompleteStep(ARKodeMem ark_mem, realtype dsm) if (retval != ARK_SUCCESS) return(retval); } - /* call fullrhs if needed */ - if (ark_mem->call_fullrhs) { - 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); - if (retval != 0) return(ARK_RHSFUNC_FAIL); - } - /* update yn to current solution */ N_VScale(ONE, ark_mem->ycur, ark_mem->yn); + ark_mem->fn_current = SUNFALSE; /* Update step size and error history arrays */ ark_mem->hadapt_mem->ehist[1] = ark_mem->hadapt_mem->ehist[0]; diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index f21aa2602b..d7b3de94f4 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -627,7 +627,7 @@ int erkStep_Init(void* arkode_mem, int init_type) int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, int mode) { - int retval; + int i, s, retval; ARKodeMem ark_mem; ARKodeERKStepMem step_mem; booleantype recomputeRHS; @@ -646,12 +646,16 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_START: /* call f */ - retval = step_mem->f(t, y, step_mem->F[0], ark_mem->user_data); - step_mem->nfe++; - if (retval != 0) { - arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ERKStep", - "erkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); - return(ARK_RHSFUNC_FAIL); + if (!(ark_mem->fn_current)) + { + retval = step_mem->f(t, y, step_mem->F[0], ark_mem->user_data); + step_mem->nfe++; + if (retval != 0) + { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ERKStep", + "erkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); + return(ARK_RHSFUNC_FAIL); + } } /* copy RHS vector into output */ @@ -667,24 +671,35 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_END: /* determine if explicit RHS function needs to be recomputed */ - recomputeRHS = SUNFALSE; - if (SUNRabs(step_mem->B->c[step_mem->stages - 1] - ONE) > TINY) - recomputeRHS = SUNTRUE; - - /* base RHS calls on recomputeRHS argument */ - if (recomputeRHS) { + if (!(ark_mem->fn_current)) + { + recomputeRHS = SUNFALSE; + s = step_mem->B->stages; + for (i = 0; i < s; i++) + { + if (SUNRabs(step_mem->B->b[i] - step_mem->B->A[s-1][i]) > TINY) + { + recomputeRHS = SUNTRUE; + } + } - /* call f */ - retval = step_mem->f(t, y, step_mem->F[0], ark_mem->user_data); - step_mem->nfe++; - if (retval != 0) { - arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ERKStep", + /* base RHS calls on recomputeRHS argument */ + if (recomputeRHS) + { + /* call f */ + retval = step_mem->f(t, y, step_mem->F[0], ark_mem->user_data); + step_mem->nfe++; + if (retval != 0) + { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ERKStep", "erkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); - return(ARK_RHSFUNC_FAIL); + return(ARK_RHSFUNC_FAIL); + } + } + else + { + N_VScale(ONE, step_mem->F[step_mem->stages-1], step_mem->F[0]); } - - } else { - N_VScale(ONE, step_mem->F[step_mem->stages-1], step_mem->F[0]); } /* copy RHS vector into output */ @@ -741,7 +756,7 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, ---------------------------------------------------------------*/ int erkStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) { - int retval, is, js, nvec; + int retval, is, js, nvec, mode; realtype* cvals; N_Vector* Xvecs; ARKodeMem ark_mem; @@ -777,6 +792,20 @@ int erkStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) N_VPrintFile(step_mem->F[0], ARK_LOGGER->debug_fp); #endif + /* call full RHS if needed -- if this is the first step then we need to + evaluate or copy the RHS values at the start of the step. With subsequent + steps we are evaluating the RHS at the end of the just completed step i.e., + the start of this step can may be able to use the last stage RHS at the end + of the last step (FSAL methods) or need a new function evaluation. */ + if (!(ark_mem->fn_current)) + { + mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; + retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, + ark_mem->fn, ARK_FULLRHS_START); + if (retval) { return ARK_RHSFUNC_FAIL; } + ark_mem->fn_current = SUNTRUE; + } + /* Loop over internal stages to the step; since the method is explicit the first stage RHS is just the full RHS from the start of the step */ for (is=1; isstages; is++) { diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index 32c73219ee..363a8fa596 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -330,15 +330,17 @@ struct ARKodeMemRec void *step_mem; /* N_Vector storage */ - N_Vector ewt; /* error weight vector */ - N_Vector rwt; /* residual weight vector */ - booleantype rwt_is_ewt; /* SUNTRUE if rwt is a pointer to ewt */ - N_Vector ycur; /* pointer to user-provided solution memory; used - as evolving solution by the timestepper modules */ - N_Vector yn; /* solution from the last successful step */ - N_Vector fn; /* full IVP right-hand side from last step */ - N_Vector tempv1; /* temporary storage vectors (for local use and by */ - N_Vector tempv2; /* time-stepping modules) */ + N_Vector ewt; /* error weight vector */ + N_Vector rwt; /* residual weight vector */ + booleantype rwt_is_ewt; /* SUNTRUE if rwt is a pointer to ewt */ + N_Vector ycur; /* pointer to user-provided solution memory; used + as evolving solution by the time stepper + modules */ + N_Vector yn; /* solution from the last successful step */ + N_Vector fn; /* full IVP right-hand side from last step */ + sunbooleantype fn_current; /* SUNTRUE if fn has been evaluated at yn */ + N_Vector tempv1; /* temporary storage vectors (for local use and */ + N_Vector tempv2; /* by time-stepping modules) */ N_Vector tempv3; N_Vector tempv4; @@ -811,6 +813,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,6 +1164,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 } diff --git a/src/arkode/arkode_interp.c b/src/arkode/arkode_interp.c index 30ee7aece8..c371157491 100644 --- a/src/arkode/arkode_interp.c +++ b/src/arkode/arkode_interp.c @@ -402,13 +402,7 @@ 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 */ + /* signal that a full RHS data is required for interpolation */ ark_mem->call_fullrhs = SUNTRUE; /* return with success */ @@ -424,12 +418,23 @@ int arkInterpInit_Hermite(void* arkode_mem, ARKInterp interp, ---------------------------------------------------------------*/ int arkInterpUpdate_Hermite(void* arkode_mem, ARKInterp interp, realtype tnew) { + int retval; ARKodeMem ark_mem; /* access ARKodeMem structure */ if (arkode_mem == NULL) return(ARK_MEM_NULL); ark_mem = (ARKodeMem) arkode_mem; + /* call full RHS if needed -- called just BEFORE the end of a step, so yn has + NOT been updated to ycur yet */ + if (!(ark_mem->fn_current)) + { + retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, + ark_mem->fn, ARK_FULLRHS_START); + if (retval) { return ARK_RHSFUNC_FAIL; } + ark_mem->fn_current = SUNTRUE; + } + /* 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)); @@ -510,6 +515,16 @@ int arkInterpEvaluate_Hermite(void* arkode_mem, ARKInterp interp, "tau = %"RSYM", d = %i, q = %i", tau, d, q); #endif + /* call full RHS if needed -- called just AFTER the end of a step, so yn has + been updated to ycur */ + if (!(ark_mem->fn_current)) + { + retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, + ark_mem->fn, ARK_FULLRHS_END); + if (retval) { return ARK_RHSFUNC_FAIL; } + ark_mem->fn_current = SUNTRUE; + } + /* error on illegal d */ if (d < 0) { arkProcessError(ark_mem, ARK_ILL_INPUT, "ARKODE", @@ -1052,7 +1067,7 @@ int arkInterpInit_Lagrange(void* arkode_mem, ARKInterp I, } } - /* update allocated size if necesary */ + /* update allocated size if necessary */ if (LINT_NMAX(I) > LINT_NMAXALLOC(I)) LINT_NMAXALLOC(I) = LINT_NMAX(I); diff --git a/src/arkode/arkode_root.c b/src/arkode/arkode_root.c index 7c0b49df81..6e1612c6f0 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. ---------------------------------------------------------------*/ @@ -46,6 +47,17 @@ int arkRootInit(ARKodeMem ark_mem, int nrtfn, ARKRootFn g) } nrt = (nrtfn < 0) ? 0 : nrtfn; + /* Ensure that stepper provides fullrhs function */ + if (nrt > 0) + { + if (!(ark_mem->step_fullrhs)) + { + arkProcessError(ark_mem, ARK_ILL_INPUT, "ARKODE", + "arkRootInit", MSG_ARK_MISSING_FULLRHS); + return ARK_ILL_INPUT; + } + } + /* If unallocated, allocate rootfinding structure, set defaults, update space */ if (ark_mem->root_mem == NULL) { ark_mem->root_mem = (ARKodeRootMem) malloc(sizeof(struct ARKodeRootMemRec)); From 63ac4e0da8eceb44be3ac75e96b6d8af36d9f2ed Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 31 Jul 2023 22:23:50 -0700 Subject: [PATCH 03/92] fix unused full rhs mode --- src/arkode/arkode_erkstep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index d7b3de94f4..4f13c909b1 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -801,7 +801,7 @@ int erkStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) { mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, - ark_mem->fn, ARK_FULLRHS_START); + ark_mem->fn, mode); if (retval) { return ARK_RHSFUNC_FAIL; } ark_mem->fn_current = SUNTRUE; } From 9eb21bc7b39e6472378afce8e93a1760ed4310de Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 31 Jul 2023 22:27:09 -0700 Subject: [PATCH 04/92] remove unused var --- src/arkode/arkode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 428e1fd3a0..929059f239 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -2400,7 +2400,7 @@ int arkYddNorm(ARKodeMem ark_mem, realtype hg, realtype *yddnrm) ---------------------------------------------------------------*/ int arkCompleteStep(ARKodeMem ark_mem, realtype dsm) { - int retval, mode; + int retval; realtype troundoff; /* Set current time to the end of the step (in case the last From d0630d99eed71f8bfbcd84968dcfdf7e9190c117 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 1 Aug 2023 09:56:32 -0700 Subject: [PATCH 05/92] init interp before checking if full RHS is required, check hin, remove h = 1 --- src/arkode/arkode.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 929059f239..1897bb258e 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -1910,13 +1910,15 @@ int arkInitialSetup(ARKodeMem ark_mem, realtype tout) } } - /* If necessary, temporarily set h as it is used to compute the tolerance in a - potential mass matrix solve when computing the full rhs */ - if (ark_mem->h == ZERO) ark_mem->h = ONE; + /* 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); + } /* Call fullrhs (used in estimating initial step, explicit steppers, Hermite interpolation module, and possibly (but not always) arkRootCheck1) */ - if (ark_mem->call_fullrhs) + if (ark_mem->call_fullrhs || ark_mem->hin == ZERO) { if (!ark_mem->step_fullrhs) { @@ -1933,12 +1935,6 @@ int arkInitialSetup(ARKodeMem ark_mem, realtype tout) } } - /* 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); - } - /* initialization complete */ ark_mem->initialized = SUNTRUE; @@ -2228,6 +2224,10 @@ int arkHin(ARKodeMem ark_mem, realtype tout) /* call full RHS if needed */ if (!(ark_mem->fn_current)) { + /* NOTE: The step size (h) is used in setting the tolerance in a potential + mass matrix solve when computing the full RHS. Before calling arkHin, h is + set to |tout- tcur| or 1 and so we do not need to guard against h == 0 here + before calling the full RHS. */ retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, ark_mem->fn, ARK_FULLRHS_START); if (retval) { return ARK_RHSFUNC_FAIL; } From 713225ffc726ba0955ce709b7958fea98a2c9455 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 1 Aug 2023 09:57:15 -0700 Subject: [PATCH 06/92] remove ynew and fnew aliases in Hermite interp module --- src/arkode/arkode_interp.c | 36 +++++++++++---------------------- src/arkode/arkode_interp_impl.h | 4 ---- 2 files changed, 12 insertions(+), 28 deletions(-) diff --git a/src/arkode/arkode_interp.c b/src/arkode/arkode_interp.c index c371157491..6896cfe5dc 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"); @@ -436,8 +424,8 @@ int arkInterpUpdate_Hermite(void* arkode_mem, ARKInterp interp, realtype tnew) } /* 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); @@ -543,7 +531,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 */ @@ -554,7 +542,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 */ @@ -572,8 +560,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; @@ -601,9 +589,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; @@ -654,9 +642,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); @@ -731,9 +719,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 ) From f7e7d6da18d32b1b7655f6f5067711fce2914f52 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 1 Aug 2023 13:08:53 -0700 Subject: [PATCH 07/92] check fn_current in ARKStep, update FSAL check --- src/arkode/arkode_arkstep.c | 220 +++++++++++++++++++++++------------- 1 file changed, 141 insertions(+), 79 deletions(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index e1245168e0..33ba655398 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1341,7 +1341,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, { ARKodeMem ark_mem; ARKodeARKStepMem step_mem; - int nvec, retval; + int i, s, nvec, retval; booleantype recomputeRHS; realtype* cvals; N_Vector* Xvecs; @@ -1370,83 +1370,23 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, possible reuse in the first stage of the subsequent time step */ case ARK_FULLRHS_START: - /* call fe if the problem has an explicit component */ - if (step_mem->explicit) { - retval = step_mem->fe(t, y, step_mem->Fe[0], ark_mem->user_data); - step_mem->nfe++; - if (retval != 0) { - arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ARKStep", - "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); - return(ARK_RHSFUNC_FAIL); - } - /* apply external polynomial forcing */ - if (step_mem->expforcing) { - cvals[0] = ONE; - Xvecs[0] = step_mem->Fe[0]; - nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fe[0]); - } - } - - /* call fi if the problem has an implicit component */ - if (step_mem->implicit) { - retval = step_mem->fi(t, y, step_mem->Fi[0], ark_mem->user_data); - step_mem->nfi++; - if (retval != 0) { - arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ARKStep", - "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); - return(ARK_RHSFUNC_FAIL); - } - /* apply external polynomial forcing */ - if (step_mem->impforcing) { - cvals[0] = ONE; - Xvecs[0] = step_mem->Fi[0]; - nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fi[0]); - } - } - - /* combine RHS vector(s) into output */ - if (step_mem->explicit && step_mem->implicit) { /* ImEx */ - N_VLinearSum(ONE, step_mem->Fi[0], ONE, step_mem->Fe[0], f); - } else if (step_mem->implicit) { /* implicit */ - N_VScale(ONE, step_mem->Fi[0], f); - } else { /* explicit */ - N_VScale(ONE, step_mem->Fe[0], f); - } - - break; - - - /* ARK_FULLRHS_END: called at the end of a successful step - If the ARK method coefficients support it, we just copy the last stage RHS - vectors to fill f instead of calling fe() and fi(). - Copy the results to Fe[0] and Fi[0] if the ARK coefficients support it. */ - case ARK_FULLRHS_END: - - /* determine if explicit/implicit RHS functions need to be recomputed */ - recomputeRHS = SUNFALSE; - if ( step_mem->explicit && (SUNRabs(step_mem->Be->c[step_mem->stages-1]-ONE)>TINY) ) - recomputeRHS = SUNTRUE; - if ( step_mem->implicit && (SUNRabs(step_mem->Bi->c[step_mem->stages-1]-ONE)>TINY) ) - recomputeRHS = SUNTRUE; - - /* base RHS calls on recomputeRHS argument */ - if (recomputeRHS) { - + /* call f */ + if (!(ark_mem->fn_current)) + { /* call fe if the problem has an explicit component */ - if (step_mem->explicit) { + if (step_mem->explicit) + { retval = step_mem->fe(t, y, step_mem->Fe[0], ark_mem->user_data); step_mem->nfe++; - if (retval != 0) { + if (retval != 0) + { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ARKStep", "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } /* apply external polynomial forcing */ - if (step_mem->expforcing) { + if (step_mem->expforcing) + { cvals[0] = ONE; Xvecs[0] = step_mem->Fe[0]; nvec = 1; @@ -1456,16 +1396,19 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } /* call fi if the problem has an implicit component */ - if (step_mem->implicit) { + if (step_mem->implicit) + { retval = step_mem->fi(t, y, step_mem->Fi[0], ark_mem->user_data); step_mem->nfi++; - if (retval != 0) { + if (retval != 0) + { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ARKStep", "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } /* apply external polynomial forcing */ - if (step_mem->impforcing) { + if (step_mem->impforcing) + { cvals[0] = ONE; Xvecs[0] = step_mem->Fi[0]; nvec = 1; @@ -1473,19 +1416,138 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fi[0]); } } - } else { + } + + /* combine RHS vector(s) into output */ + if (step_mem->explicit && step_mem->implicit) + { + /* ImEx */ + N_VLinearSum(ONE, step_mem->Fi[0], ONE, step_mem->Fe[0], f); + } + else if (step_mem->implicit) + { + /* implicit */ + N_VScale(ONE, step_mem->Fi[0], f); + } + else + { + /* explicit */ + N_VScale(ONE, step_mem->Fe[0], f); + } + + break; + + + /* ARK_FULLRHS_END: called at the end of a successful step + If the ARK method coefficients support it, we just copy the last stage RHS + vectors to fill f instead of calling fe() and fi(). + Copy the results to Fe[0] and Fi[0] if the ARK coefficients support it. */ + case ARK_FULLRHS_END: + + /* determine if RHS functions need to be recomputed */ + if (!(ark_mem->fn_current)) + { + /* determine if explicit/implicit RHS functions need to be recomputed */ + recomputeRHS = SUNFALSE; + if (step_mem->explicit) - N_VScale(ONE, step_mem->Fe[step_mem->stages-1], step_mem->Fe[0]); + { + s = step_mem->Be->stages; + for (i = 0; i < s; i++) + { + if (SUNRabs(step_mem->Be->b[i] - step_mem->Be->A[s-1][i]) > TINY) + { + recomputeRHS = SUNTRUE; + } + } + } + if (step_mem->implicit) - N_VScale(ONE, step_mem->Fi[step_mem->stages-1], step_mem->Fi[0]); + { + s = step_mem->Bi->stages; + for (i = 0; i < s; i++) + { + if (SUNRabs(step_mem->Bi->b[i] - step_mem->Bi->A[s-1][i]) > TINY) + { + recomputeRHS = SUNTRUE; + } + } + } + + /* base RHS calls on recomputeRHS argument */ + if (recomputeRHS) + { + /* call fe if the problem has an explicit component */ + if (step_mem->explicit) + { + retval = step_mem->fe(t, y, step_mem->Fe[0], ark_mem->user_data); + step_mem->nfe++; + if (retval != 0) + { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ARKStep", + "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); + return(ARK_RHSFUNC_FAIL); + } + /* apply external polynomial forcing */ + if (step_mem->expforcing) + { + cvals[0] = ONE; + Xvecs[0] = step_mem->Fe[0]; + nvec = 1; + arkStep_ApplyForcing(step_mem, t, ONE, &nvec); + N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fe[0]); + } + } + + /* call fi if the problem has an implicit component */ + if (step_mem->implicit) + { + retval = step_mem->fi(t, y, step_mem->Fi[0], ark_mem->user_data); + step_mem->nfi++; + if (retval != 0) + { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::ARKStep", + "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); + return(ARK_RHSFUNC_FAIL); + } + /* apply external polynomial forcing */ + if (step_mem->impforcing) + { + cvals[0] = ONE; + Xvecs[0] = step_mem->Fi[0]; + nvec = 1; + arkStep_ApplyForcing(step_mem, t, ONE, &nvec); + N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fi[0]); + } + } + } + else + { + if (step_mem->explicit) + { + N_VScale(ONE, step_mem->Fe[step_mem->stages-1], step_mem->Fe[0]); + } + if (step_mem->implicit) + { + N_VScale(ONE, step_mem->Fi[step_mem->stages-1], step_mem->Fi[0]); + } + } } /* combine RHS vector(s) into output */ - if (step_mem->explicit && step_mem->implicit) { /* ImEx */ + if (step_mem->explicit && step_mem->implicit) + { + /* ImEx */ N_VLinearSum(ONE, step_mem->Fi[0], ONE, step_mem->Fe[0], f); - } else if (step_mem->implicit) { /* implicit */ + } + else if (step_mem->implicit) + { + /* implicit */ N_VScale(ONE, step_mem->Fi[0], f); - } else { /* explicit */ + } + else + { + /* explicit */ N_VScale(ONE, step_mem->Fe[0], f); } From ce6d7f494d240c1b7754e97693c277f58756af94 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 1 Aug 2023 13:30:47 -0700 Subject: [PATCH 08/92] adjust ARKStep stage index if explicit first stage --- src/arkode/arkode_arkstep.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 33ba655398..eb0290338f 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1657,7 +1657,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, ---------------------------------------------------------------*/ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) { - int retval, is, nvec; + int retval, is, is_start, nvec, mode; booleantype implicit_stage; booleantype deduce_stage; ARKodeMem ark_mem; @@ -1689,8 +1689,35 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) if (retval > 0) return(ARK_NLS_SETUP_RECVR); } + /* check for explicit first stage */ + implicit_stage = SUNFALSE; + is_start = 1; + if (step_mem->implicit) + { + if (SUNRabs(step_mem->Bi->A[0][0]) > TINY) + { + implicit_stage = SUNTRUE; + is_start = 0; + } + } + + /* call full RHS if needed for explicit first stage -- if this is the first + step then we need to evaluate or copy the RHS values at the start of the + step. With subsequent steps we are evaluating the RHS at the end of the + just completed step i.e., the start of this step can may be able to use the + last stage RHS at the end of the last step (FSAL methods) or need a new + function evaluation. */ + if (!implicit_stage && !(ark_mem->fn_current)) + { + mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; + retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, + ark_mem->fn, mode); + if (retval) { return ARK_RHSFUNC_FAIL; } + ark_mem->fn_current = SUNTRUE; + } + /* loop over internal stages to the step */ - for (is=0; isstages; is++) { + for (is = is_start; is < step_mem->stages; is++) { /* store current stage index */ step_mem->istage = is; From 06e8c911f51c4094309edae7eb42e83dfc701964 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 1 Aug 2023 14:12:13 -0700 Subject: [PATCH 09/92] free vectors in kepler example --- examples/arkode/C_serial/ark_kepler.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/arkode/C_serial/ark_kepler.c b/examples/arkode/C_serial/ark_kepler.c index fa0448b808..6ff42f8fe5 100644 --- a/examples/arkode/C_serial/ark_kepler.c +++ b/examples/arkode/C_serial/ark_kepler.c @@ -600,6 +600,9 @@ int main(int argc, char* argv[]) expected_order); return 1; } + + N_VDestroy(ref_sol); + N_VDestroy(error); } N_VDestroy(result.sol); From ca8bc5f7e8e46e2455531e669aca0a7239d84cb3 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 1 Aug 2023 14:13:05 -0700 Subject: [PATCH 10/92] free helper ops --- src/sunmemory/cuda/sundials_cuda_memory.cu | 3 ++- src/sunmemory/hip/sundials_hip_memory.hip.cpp | 3 ++- src/sunmemory/sycl/sundials_sycl_memory.cpp | 3 ++- src/sunmemory/system/sundials_system_memory.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/sunmemory/cuda/sundials_cuda_memory.cu b/src/sunmemory/cuda/sundials_cuda_memory.cu index 8716d1dd72..f0b7bab145 100644 --- a/src/sunmemory/cuda/sundials_cuda_memory.cu +++ b/src/sunmemory/cuda/sundials_cuda_memory.cu @@ -341,7 +341,8 @@ int SUNMemoryHelper_Destroy_Cuda(SUNMemoryHelper helper) { if (helper) { - free(helper->content); + if (helper->content) { free(helper->content); } + if (helper->ops) { free(helper->ops); } free(helper); } return 0; diff --git a/src/sunmemory/hip/sundials_hip_memory.hip.cpp b/src/sunmemory/hip/sundials_hip_memory.hip.cpp index 6c7cae919a..c862fd4f88 100644 --- a/src/sunmemory/hip/sundials_hip_memory.hip.cpp +++ b/src/sunmemory/hip/sundials_hip_memory.hip.cpp @@ -340,7 +340,8 @@ int SUNMemoryHelper_Destroy_Hip(SUNMemoryHelper helper) { if (helper) { - free(helper->content); + if (helper->content) { free(helper->content); } + if (helper->ops) { free(helper->ops); } free(helper); } return 0; diff --git a/src/sunmemory/sycl/sundials_sycl_memory.cpp b/src/sunmemory/sycl/sundials_sycl_memory.cpp index 6156ecdacb..c14ced9dfd 100644 --- a/src/sunmemory/sycl/sundials_sycl_memory.cpp +++ b/src/sunmemory/sycl/sundials_sycl_memory.cpp @@ -304,7 +304,8 @@ int SUNMemoryHelper_Destroy_Sycl(SUNMemoryHelper helper) { if (helper) { - free(helper->content); + if (helper->content) { free(helper->content); } + if (helper->ops) { free(helper->ops); } free(helper); } return 0; diff --git a/src/sunmemory/system/sundials_system_memory.c b/src/sunmemory/system/sundials_system_memory.c index 088f06d8d9..2987c45289 100644 --- a/src/sunmemory/system/sundials_system_memory.c +++ b/src/sunmemory/system/sundials_system_memory.c @@ -160,7 +160,8 @@ int SUNMemoryHelper_Destroy_Sys(SUNMemoryHelper helper) { if (helper) { - free(helper->content); + if (helper->content) { free(helper->content); } + if (helper->ops) { free(helper->ops); } free(helper); } return 0; From 6cd6237bf9601c3458a0300188f6cba567e97212 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 1 Aug 2023 14:16:55 -0700 Subject: [PATCH 11/92] update recent changes --- CHANGELOG.md | 5 +++++ doc/arkode/guide/source/Introduction.rst | 6 ++++++ doc/cvode/guide/source/Introduction.rst | 6 ++++++ doc/cvodes/guide/source/Introduction.rst | 6 ++++++ doc/ida/guide/source/Introduction.rst | 6 ++++++ doc/idas/guide/source/Introduction.rst | 6 ++++++ doc/kinsol/guide/source/Introduction.rst | 6 ++++++ 7 files changed, 41 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d17ba09be4..5129794504 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # SUNDIALS Changelog +## Changes to SUNDIALS in release x.x.x + +Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper +object. + ## Changes to SUNDIALS in release 6.6.0 A new time-stepping module, `SPRKStep`, was added to ARKODE. This time-stepper diff --git a/doc/arkode/guide/source/Introduction.rst b/doc/arkode/guide/source/Introduction.rst index ad675a5ccc..b532f9243e 100644 --- a/doc/arkode/guide/source/Introduction.rst +++ b/doc/arkode/guide/source/Introduction.rst @@ -130,6 +130,12 @@ provided with SUNDIALS, or again may utilize a user-supplied module. Changes from previous versions ============================== +Changes in vX.X.X +----------------- + +Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper +object. + Changes in v5.6.0 ----------------- diff --git a/doc/cvode/guide/source/Introduction.rst b/doc/cvode/guide/source/Introduction.rst index ff6741b0bc..98b1aff326 100644 --- a/doc/cvode/guide/source/Introduction.rst +++ b/doc/cvode/guide/source/Introduction.rst @@ -111,6 +111,12 @@ implementations. Changes from previous versions ============================== +Changes in vX.X.X +----------------- + +Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper +object. + Changes in v6.6.0 ----------------- diff --git a/doc/cvodes/guide/source/Introduction.rst b/doc/cvodes/guide/source/Introduction.rst index a562b42cbc..b634624683 100644 --- a/doc/cvodes/guide/source/Introduction.rst +++ b/doc/cvodes/guide/source/Introduction.rst @@ -111,6 +111,12 @@ Fortran. Changes from previous versions ============================== +Changes in vX.X.X +----------------- + +Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper +object. + Changes in v6.6.0 ----------------- diff --git a/doc/ida/guide/source/Introduction.rst b/doc/ida/guide/source/Introduction.rst index b2a5a15671..cacbd25aa4 100644 --- a/doc/ida/guide/source/Introduction.rst +++ b/doc/ida/guide/source/Introduction.rst @@ -72,6 +72,12 @@ systems. Changes from previous versions ============================== +Changes in vX.X.X +----------------- + +Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper +object. + Changes in v6.6.0 ----------------- diff --git a/doc/idas/guide/source/Introduction.rst b/doc/idas/guide/source/Introduction.rst index 67f4afe223..0244e5f494 100644 --- a/doc/idas/guide/source/Introduction.rst +++ b/doc/idas/guide/source/Introduction.rst @@ -86,6 +86,12 @@ integrate any final-condition ODE dependent on the solution of the original IVP Changes from previous versions ============================== +Changes in vX.X.X +----------------- + +Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper +object. + Changes in v5.6.0 ----------------- diff --git a/doc/kinsol/guide/source/Introduction.rst b/doc/kinsol/guide/source/Introduction.rst index 49916102a2..e55881feca 100644 --- a/doc/kinsol/guide/source/Introduction.rst +++ b/doc/kinsol/guide/source/Introduction.rst @@ -88,6 +88,12 @@ applications written in Fortran. Changes from previous versions ============================== +Changes in vX.X.X +----------------- + +Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper +object. + Changes in v6.6.0 ----------------- From f4431dce3cf1b0c2de38a22b459b441f072b6f13 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 1 Aug 2023 19:06:16 -0700 Subject: [PATCH 12/92] update call_fullrhs flag for ARKStep --- src/arkode/arkode_arkstep.c | 7 +++---- src/arkode/arkode_erkstep.c | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index eb0290338f..cbfc394fc3 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1237,10 +1237,6 @@ int arkStep_Init(void* arkode_mem, int init_type) if (step_mem->mass_type != MASS_IDENTITY) if ((step_mem->predictor == 4) || (step_mem->predictor == 5)) step_mem->predictor = 0; - - /* 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; } /* set appropriate TakeStep routine based on problem configuration */ @@ -1303,6 +1299,9 @@ int arkStep_Init(void* arkode_mem, int init_type) } } + /* Signal to shared arkode module that full RHS evaluations are required */ + ark_mem->call_fullrhs = SUNTRUE; + return(ARK_SUCCESS); } diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index 4f13c909b1..cb8dc8d46b 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -593,7 +593,7 @@ int erkStep_Init(void* arkode_mem, int init_type) } } - /* Signal to shared arkode module that fullrhs is required after each step */ + /* Signal to shared arkode module that full RHS evaluations are required */ ark_mem->call_fullrhs = SUNTRUE; return(ARK_SUCCESS); From 295d135cd5832bf8e41a08b3c628dc312fac06ca Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Wed, 2 Aug 2023 15:38:28 -0700 Subject: [PATCH 13/92] update relaxation to work with full RHS eval changes --- src/arkode/arkode_arkstep.c | 52 ++++++++++++++++++++++++++++++++-- src/arkode/arkode_erkstep.c | 3 ++ src/arkode/arkode_relaxation.c | 13 +++++++++ 3 files changed, 65 insertions(+), 3 deletions(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index cbfc394fc3..7004dbe820 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1473,6 +1473,9 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } + /* FSAL methods are not FSAL when when relaxation is enabled */ + if (ark_mem->relax_enabled) { recomputeRHS = SUNTRUE; } + /* base RHS calls on recomputeRHS argument */ if (recomputeRHS) { @@ -1659,6 +1662,7 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) int retval, is, is_start, nvec, mode; booleantype implicit_stage; booleantype deduce_stage; + booleantype save_stages = SUNFALSE; ARKodeMem ark_mem; ARKodeARKStepMem step_mem; N_Vector zcor0; @@ -1688,7 +1692,14 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) if (retval > 0) return(ARK_NLS_SETUP_RECVR); } - /* check for explicit first stage */ + /* check if we need to store stage values */ + if (ark_mem->relax_enabled && (step_mem->implicit || + step_mem->mass_type == MASS_FIXED)) + { + save_stages = SUNTRUE; + } + + /* check for implicit method with explicit first stage */ implicit_stage = SUNFALSE; is_start = 1; if (step_mem->implicit) @@ -1700,6 +1711,12 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) } } + /* explicit first stage -- store stage if necessary for relaxation */ + if (is_start == 1 && save_stages) + { + N_VScale(ONE, ark_mem->yn, step_mem->z[0]); + } + /* call full RHS if needed for explicit first stage -- if this is the first step then we need to evaluate or copy the RHS values at the start of the step. With subsequent steps we are evaluating the RHS at the end of the @@ -1715,6 +1732,36 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) ark_mem->fn_current = SUNTRUE; } +#if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_INFO + if (is_start == 1) + { + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_INFO, + "ARKODE::arkStep_TakeStep_Z", "start-stage", + "step = %li, stage = %i, implicit = %i, h = %"RSYM", tcur = %"RSYM, + ark_mem->nst, 0, implicit_stage, ark_mem->h, ark_mem->tcur); +#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkStep_TakeStep_Z", "explicit stage", + "z[%i] =", 0); + N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); + if (step_mem->implicit) + { + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkStep_TakeStep_Z", "implicit RHS", + "Fi[%i] =", 0); + N_VPrintFile(step_mem->Fi[0], ARK_LOGGER->debug_fp); + } + if (step_mem->explicit) + { + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkStep_TakeStep_Z", "explicit RHS", + "Fe[%i] =", 0); + N_VPrintFile(step_mem->Fe[0], ARK_LOGGER->debug_fp); + } +#endif + } +#endif + /* loop over internal stages to the step */ for (is = is_start; is < step_mem->stages; is++) { @@ -1846,8 +1893,7 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) /* successful stage solve */ /* store stage (if necessary for relaxation) */ - if (ark_mem->relax_enabled && (step_mem->implicit || - step_mem->mass_type == MASS_FIXED)) + if (save_stages) { N_VScale(ONE, ark_mem->ycur, step_mem->z[is]); } diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index cb8dc8d46b..8d7b4ba184 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -683,6 +683,9 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } + /* FSAL methods are not FSAL when when relaxation is enabled */ + if (ark_mem->relax_enabled) { recomputeRHS = SUNTRUE; } + /* base RHS calls on recomputeRHS argument */ if (recomputeRHS) { diff --git a/src/arkode/arkode_relaxation.c b/src/arkode/arkode_relaxation.c index cc9fb5d0b8..0c6ebfba26 100644 --- a/src/arkode/arkode_relaxation.c +++ b/src/arkode/arkode_relaxation.c @@ -344,10 +344,23 @@ int arkRelaxSolve(ARKodeMem ark_mem, ARKodeRelaxMem relax_mem, &(relax_mem->delta_e)); if (retval) return retval; +#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkRelaxSolve", "compute delta E", + "delta_e = %"RSYM, relax_mem->delta_e); +#endif + /* Get the change in state (delta_y = tempv2) */ retval = relax_mem->delta_y_fn(ark_mem, ark_mem->tempv2); if (retval) return retval; +#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkRelaxSolve", "compute delta y", + "delta_y =", ""); + N_VPrintFile(ark_mem->tempv2, ARK_LOGGER->debug_fp); +#endif + /* Store the current relaxation function value */ retval = relax_mem->relax_fn(ark_mem->yn, &(relax_mem->e_old), ark_mem->user_data); From fd8a29f11feac32e4706d7360dce90c3c16f1d67 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Wed, 2 Aug 2023 16:58:35 -0700 Subject: [PATCH 14/92] add ARKStep test for number of RHS evals --- .../arkode/CXX_serial/CMakeLists.txt | 1 + .../CXX_serial/ark_test_dahlquist_ark.cpp | 577 ++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_mri.cpp | 5 +- 3 files changed, 581 insertions(+), 2 deletions(-) create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp diff --git a/test/unit_tests/arkode/CXX_serial/CMakeLists.txt b/test/unit_tests/arkode/CXX_serial/CMakeLists.txt index 84d040ad24..01a410f89c 100644 --- a/test/unit_tests/arkode/CXX_serial/CMakeLists.txt +++ b/test/unit_tests/arkode/CXX_serial/CMakeLists.txt @@ -18,6 +18,7 @@ set(unit_tests "ark_test_analytic_sys_mri.cpp\;0" "ark_test_analytic_sys_mri.cpp\;1" + "ark_test_dahlquist_ark.cpp\;" "ark_test_dahlquist_mri.cpp\;" "ark_test_butcher.cpp\;" "ark_test_getjac.cpp\;" diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp new file mode 100644 index 0000000000..873faedcfc --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -0,0 +1,577 @@ +/* --------------------------------------------------------------------------- + * Programmer(s): David J. Gardner @ LLNL + * --------------------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2023, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * --------------------------------------------------------------------------- + * IMEX multirate Dahlquist problem: + * + * y' = lambda_e * y + lambda_i * y + * ---------------------------------------------------------------------------*/ + +// Header files +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#if defined(SUNDIALS_EXTENDED_PRECISION) +#define GSYM "Lg" +#define ESYM "Le" +#define FSYM "Lf" +#else +#define GSYM "g" +#define ESYM "e" +#define FSYM "f" +#endif + +// Constants +#define NEG_ONE SUN_RCONST(-1.0) +#define ZERO SUN_RCONST(0.0) +#define ONE SUN_RCONST(1.0) + +// Method types +enum class method_type +{ + expl, + impl, + imex +}; + +// Problem parameters +struct ProblemData +{ + sunrealtype lambda_e = NEG_ONE; + sunrealtype lambda_i = NEG_ONE; +}; + +// Problem options +struct ProblemOptions +{ + // Initial time + sunrealtype t0 = ZERO; + + // Number of time steps + int nsteps = 3; + + // Relative and absolute tolerances + sunrealtype reltol = SUN_RCONST(1.0e-4); + sunrealtype abstol = SUN_RCONST(1.0e-6); + + // Step size + sunrealtype h = SUN_RCONST(0.01); + + // Interpolant type + // 0 = Hermite + // 1 = Lagrange + int interp_type = 0; +}; + +// User-supplied Functions called by the solver +int fe(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data); +int fi(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data); +int Ji(sunrealtype t, N_Vector y, N_Vector fy, SUNMatrix J, void* user_data, + N_Vector tmp1, N_Vector tmp2, N_Vector tmp3); + +// Private function to check function return values +int check_flag(void* flagvalue, const std::string funcname, int opt); + +// Test drivers +int run_tests(method_type type, ProblemData& prob_data, + ProblemOptions& prob_opts, sundials::Context& sunctx); + +// ----------------------------------------------------------------------------- +// Main Program +// ----------------------------------------------------------------------------- + +int main(int argc, char* argv[]) +{ + // Problem data and options structures + ProblemData prob_data; + ProblemOptions prob_opts; + + // Check for inputs + if (argc > 1) { prob_opts.interp_type = std::stoi(argv[1]); } + + // Output problem setup + std::cout << "\nDahlquist ODE test problem:\n" + << " lambda expl = " << prob_data.lambda_e << "\n" + << " lambda impl = " << prob_data.lambda_i << "\n" + << " step size = " << prob_opts.h << "\n" + << " num steps = " << prob_opts.nsteps << "\n" + << " relative tol = " << prob_opts.reltol << "\n" + << " absolute tol = " << prob_opts.abstol << "\n" + << " interp type = " << prob_opts.interp_type << "\n"; + + // Create SUNDIALS context + sundials::Context sunctx; + + // Test methods + int numfails = 0; + + // Explicit + numfails += run_tests(method_type::expl, prob_data, prob_opts, sunctx); + + // Implicit + numfails += run_tests(method_type::impl, prob_data, prob_opts, sunctx); + + // IMEX + numfails += run_tests(method_type::imex, prob_data, prob_opts, sunctx); + + if (numfails) { std::cout << "\n\nFailed " << numfails << " tests!\n"; } + else { std::cout << "\n\nAll tests passed!\n"; } + + // Return test status + return numfails; +} + +// ----------------------------------------------------------------------------- +// Test drivers +// ----------------------------------------------------------------------------- + +int run_tests(method_type type, ProblemData& prob_data, + ProblemOptions& prob_opts, sundials::Context& sunctx) +{ + // Reusable error-checking flag + int flag; + + // Test failure counter + int numfails = 0; + + // Create initial condition vector + N_Vector y = N_VNew_Serial(1, sunctx); + if (check_flag((void*)y, "N_VNew_Serial", 0)) return 1; + + N_VConst(SUN_RCONST(1.0), y); + + // Create matrix and linear solver (if necessary) + SUNMatrix A = nullptr; + SUNLinearSolver LS = nullptr; + + if (type == method_type::impl || type == method_type::imex) + { + // Initialize dense matrix data structures and solvers + A = SUNDenseMatrix(1, 1, sunctx); + if (check_flag((void*)A, "SUNDenseMatrix", 0)) return 1; + + LS = SUNLinSol_Dense(y, A, sunctx); + if (check_flag((void*)LS, "SUNLinSol_Dense", 0)) return 1; + } + + // ----------------- + // Create integrator + // ----------------- + + // Create integrator based on type + void* arkstep_mem = nullptr; + + if (type == method_type::expl) + { + arkstep_mem = ARKStepCreate(fe, nullptr, prob_opts.t0, y, sunctx); + } + else if (type == method_type::impl) + { + arkstep_mem = ARKStepCreate(nullptr, fi, prob_opts.t0, y, sunctx); + } + else if (type == method_type::imex) + { + arkstep_mem = ARKStepCreate(fe, fi, prob_opts.t0, y, sunctx); + } + else { return 1; } + if (check_flag((void*)arkstep_mem, "ARKStepCreate", 0)) return 1; + + // Set user data + flag = ARKStepSetUserData(arkstep_mem, &prob_data); + if (check_flag(&flag, "ARKStepSetUserData", 1)) return 1; + + // Specify tolerances + flag = ARKStepSStolerances(arkstep_mem, prob_opts.reltol, prob_opts.abstol); + if (check_flag(&flag, "ARKStepSStolerances", 1)) return 1; + + // Specify fixed time step size + flag = ARKStepSetFixedStep(arkstep_mem, prob_opts.h); + if (check_flag(&flag, "ARKStepSetFixedStep", 1)) return 1; + + // Lagrange interpolant (removes additional RHS evaluation with DIRK methods) + if (prob_opts.interp_type == 1) + { + flag = ARKStepSetInterpolantType(arkstep_mem, ARK_INTERP_LAGRANGE); + if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; + } + + if (type == method_type::impl || type == method_type::imex) + { + // Attach linear solver + flag = ARKStepSetLinearSolver(arkstep_mem, LS, A); + if (check_flag(&flag, "ARKStepSetLinearSolver", 1)) return 1; + + // Set Jacobian function + flag = ARKStepSetJacFn(arkstep_mem, Ji); + if (check_flag(&flag, "ARKStepSetJacFn", 1)) return 1; + + // Specify linearly implicit RHS, with non-time-dependent Jacobian + flag = ARKStepSetLinear(arkstep_mem, 0); + if (check_flag(&flag, "ARKStepSetLinear", 1)) return 1; + } + + // --------------------------- + // Evolve with various methods + // --------------------------- + + // Methods to test + int num_methods; + + if (type == method_type::expl) + { + std::cout << "\n========================\n" + << "Test explicit RK methods\n" + << "========================\n"; + num_methods = 1; + } + else if (type == method_type::impl) + { + std::cout << "\n========================\n" + << "Test implicit RK methods\n" + << "========================\n"; + num_methods = 1; + } + else if (type == method_type::imex) + { + std::cout << "\n=====================\n" + << "Test IMEX ARK methods\n" + << "=====================\n"; + num_methods = 1; + } + else { return 1; } + + for (int i = 0; i < num_methods; i++) + { + std::cout << "\nTesting method " << i << "\n"; + + // ------------- + // Select method + // ------------- + + ARKodeButcherTable Be = nullptr; + ARKodeButcherTable Bi = nullptr; + int stages = 0; + bool fsal_explicit_first_stage = false; + bool implicit_first_stage = false; + + if (type == method_type::expl) + { + // Explicit Euler + stages = 1; + fsal_explicit_first_stage = false; + implicit_first_stage = false; + + Be = ARKodeButcherTable_Alloc(stages, SUNFALSE); + Be->A[0][0] = ZERO; + Be->b[0] = ONE; + Be->c[0] = ZERO; + Be->q = 1; + Bi = nullptr; + } + else if (type == method_type::impl) + { + // Implicit Euler + stages = 1; + fsal_explicit_first_stage = false; + implicit_first_stage = true; + + Bi = ARKodeButcherTable_Alloc(stages, SUNFALSE); + Bi->A[0][0] = ONE; + Bi->b[0] = ONE; + Bi->c[0] = ONE; + Bi->q = 1; + Be = nullptr; + } + else if (type == method_type::imex) + { + // IMEX Euler + stages = 2; + fsal_explicit_first_stage = true; + implicit_first_stage = false; + + Be = ARKodeButcherTable_Alloc(stages, SUNFALSE); + Be->A[1][0] = ONE; + Be->b[0] = ONE; + Be->c[1] = ONE; + Be->q = 1; + + Bi = ARKodeButcherTable_Alloc(stages, SUNFALSE); + Bi->A[1][1] = ONE; + Bi->b[1] = ONE; + Bi->c[1] = ONE; + Bi->q = 1; + } + else { return 1; } + + // Attach Butcher tables + flag = ARKStepSetTables(arkstep_mem, 1, 0, Bi, Be); + if (check_flag(&flag, "ARKStepSetTables", 1)) return 1; + + ARKodeButcherTable_Free(Be); + ARKodeButcherTable_Free(Bi); + Be = nullptr; + Bi = nullptr; + + // -------------- + // Evolve in time + // -------------- + + sunrealtype t = prob_opts.t0; + sunrealtype tf = prob_opts.nsteps * prob_opts.h; + + for (int i = 0; i < prob_opts.nsteps; i++) + { + // Advance in time + flag = ARKStepEvolve(arkstep_mem, tf, y, &t, ARK_ONE_STEP); + if (check_flag(&flag, "ARKStepEvolve", 1)) return 1; + + // Update output time + tf += prob_opts.h; + } + + // ----------------- + // Output statistics + // ----------------- + + long int nst, nfe, nfi; // integrator + long int nni, ncfn; // nonlinear solver + long int nsetups, nje, nfeLS; // linear solver + + flag = ARKStepGetNumSteps(arkstep_mem, &nst); + if (check_flag(&flag, "ARKStepGetNumSteps", 1)) return 1; + + flag = ARKStepGetNumRhsEvals(arkstep_mem, &nfe, &nfi); + if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) return 1; + + if (type == method_type::impl || type == method_type::imex) + { + flag = ARKStepGetNumNonlinSolvIters(arkstep_mem, &nni); + if (check_flag(&flag, "ARKStepGetNumNonlinSolvIters", 1)) return 1; + + flag = ARKStepGetNumNonlinSolvConvFails(arkstep_mem, &ncfn); + if (check_flag(&flag, "ARKStepGetNumNonlinSolvConvFails", 1)) return 1; + + flag = ARKStepGetNumLinSolvSetups(arkstep_mem, &nsetups); + if (check_flag(&flag, "ARKStepGetNumLinSolvSetups", 1)) return 1; + + flag = ARKStepGetNumJacEvals(arkstep_mem, &nje); + if (check_flag(&flag, "ARKStepGetNumJacEvals", 1)) return 1; + + flag = ARKStepGetNumLinRhsEvals(arkstep_mem, &nfeLS); + check_flag(&flag, "ARKStepGetNumLinRhsEvals", 1); + } + + sunrealtype pow = ZERO; + if (type == method_type::expl || type == method_type::imex) + { + pow += prob_data.lambda_e; + } + if (type == method_type::impl || type == method_type::imex) + { + pow += prob_data.lambda_i; + } + sunrealtype ytrue = exp(pow * t); + + sunrealtype* ydata = N_VGetArrayPointer(y); + sunrealtype error = ytrue - ydata[0]; + + std::cout << "\nARKStep Statistics:\n" + << " Time = " << t << "\n" + << " y(t) = " << ytrue << "\n" + << " y_n = " << ydata[0] << "\n" + << " Error = " << error << "\n" + << " Steps = " << nst << "\n" + << " Fe evals = " << nfe << "\n" + << " Fi evals = " << nfi << "\n"; + + if (type == method_type::impl || type == method_type::imex) + { + std::cout << " NLS iters = " << nni << "\n" + << " NLS fails = " << ncfn << "\n" + << " LS setups = " << nsetups << "\n" + << " LS Fi evals = " << nfeLS << "\n" + << " Ji evals = " << nje << "\n"; + } + + // ---------------- + // Check statistics + // ---------------- + + // expected number of explicit functions evaluations + if (type == method_type::expl || type == method_type::imex) + { + long int expected; + + if (fsal_explicit_first_stage) + { + expected = stages + (stages - 1) * (prob_opts.nsteps - 1); + } + else { expected = stages * prob_opts.nsteps; } + + if (prob_opts.interp_type == 0 && implicit_first_stage) + { + expected += prob_opts.nsteps; + } + + if (nfe != expected) + { + numfails++; + std::cout << "Fe RHS evals:\n" + << " actual: " << nfe << "\n" + << " expected: " << expected << "\n"; + } + } + + // expected number of implicit functions evaluations + if (type == method_type::impl || type == method_type::imex) + { + long int expected; + + if (fsal_explicit_first_stage) + { + expected = stages + (stages - 1) * (prob_opts.nsteps - 1) + nni; + } + else { expected = stages * prob_opts.nsteps + nni; } + + if (prob_opts.interp_type == 0 && implicit_first_stage) + { + expected += prob_opts.nsteps; + } + + if (nfi != expected) + { + numfails++; + std::cout << "Fi RHS evals:\n" + << " actual: " << nfi << "\n" + << " expected: " << expected << "\n"; + } + } + + if (numfails) { std::cout << "Failed " << numfails << " checks\n"; } + else { std::cout << "All checks passed\n"; } + + // ------------------- + // Setup for next test + // ------------------- + + // Free table(s) + + // Reset state vector to the initial condition + N_VConst(SUN_RCONST(1.0), y); + + // Re-initialize integrator based on type + if (type == method_type::expl) + { + flag = ARKStepReInit(arkstep_mem, fe, nullptr, prob_opts.t0, y); + } + else if (type == method_type::impl) + { + flag = ARKStepReInit(arkstep_mem, nullptr, fi, prob_opts.t0, y); + } + else if (type == method_type::imex) + { + flag = ARKStepReInit(arkstep_mem, fe, fi, prob_opts.t0, y); + } + else { return 1; } + if (check_flag(&flag, "ARKStepReInit", 1)) return 1; + } + + // Clean up + ARKStepFree(&arkstep_mem); + if (type == method_type::impl || type == method_type::imex) + { + SUNLinSolFree(LS); + SUNMatDestroy(A); + } + N_VDestroy(y); + + return numfails; +} + +// ----------------------------------------------------------------------------- +// Functions called by the solver +// ----------------------------------------------------------------------------- + +// Explicit ODE RHS function fe(t,y) +int fe(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data) +{ + sunrealtype* y_data = N_VGetArrayPointer(y); + sunrealtype* yd_data = N_VGetArrayPointer(ydot); + ProblemData* prob_data = static_cast(user_data); + + yd_data[0] = prob_data->lambda_e * y_data[0]; + + return 0; +} + +// Implicit ODE RHS function fi(t,y) +int fi(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data) +{ + sunrealtype* y_data = N_VGetArrayPointer(y); + sunrealtype* yd_data = N_VGetArrayPointer(ydot); + ProblemData* prob_data = static_cast(user_data); + + yd_data[0] = prob_data->lambda_i * y_data[0]; + + return 0; +} + +// Jacobian routine to compute J(t,y) = dfi/dy. +int Ji(sunrealtype t, N_Vector y, N_Vector fy, SUNMatrix J, void* user_data, + N_Vector tmp1, N_Vector tmp2, N_Vector tmp3) +{ + sunrealtype* J_data = SUNDenseMatrix_Data(J); + ProblemData* prob_data = static_cast(user_data); + + J_data[0] = prob_data->lambda_i; + + return 0; +} + +// ----------------------------------------------------------------------------- +// Utility functions +// ----------------------------------------------------------------------------- + +// Check function return value +int check_flag(void* flagvalue, const std::string funcname, int opt) +{ + int* errflag; + + // Check if function returned NULL pointer - no memory allocated + if (opt == 0 && flagvalue == nullptr) + { + std::cerr << "\nMEMORY_ERROR: " << funcname + << " failed - returned NULL pointer\n\n"; + return 1; + } + // Check if flag < 0 + else if (opt == 1) + { + errflag = (int*)flagvalue; + if (*errflag < 0) + { + std::cerr << "\nSUNDIALS_ERROR: " << funcname + << " failed with flag = " << *errflag << "\n\n"; + return 1; + } + } + + return 0; +} diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp index 7f52a88d86..c9a1744de0 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp @@ -17,9 +17,10 @@ * ---------------------------------------------------------------------------*/ // Header files -#include +#include +#include #include -#include +#include #include #include From 1594025eb4b2da9b5c757b24f82284346b240116 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 3 Aug 2023 15:11:36 -0700 Subject: [PATCH 15/92] update ARKStep rhs eval test --- .../CXX_serial/ark_test_dahlquist_ark.cpp | 522 ++++++++++-------- 1 file changed, 284 insertions(+), 238 deletions(-) diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp index 873faedcfc..a50a65c36d 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -42,6 +42,7 @@ #define NEG_ONE SUN_RCONST(-1.0) #define ZERO SUN_RCONST(0.0) #define ONE SUN_RCONST(1.0) +#define TWO SUN_RCONST(2.0) // Method types enum class method_type @@ -64,9 +65,6 @@ struct ProblemOptions // Initial time sunrealtype t0 = ZERO; - // Number of time steps - int nsteps = 3; - // Relative and absolute tolerances sunrealtype reltol = SUN_RCONST(1.0e-4); sunrealtype abstol = SUN_RCONST(1.0e-6); @@ -90,8 +88,19 @@ int Ji(sunrealtype t, N_Vector y, N_Vector fy, SUNMatrix J, void* user_data, int check_flag(void* flagvalue, const std::string funcname, int opt); // Test drivers -int run_tests(method_type type, ProblemData& prob_data, - ProblemOptions& prob_opts, sundials::Context& sunctx); +int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, + ProblemData& prob_data, ProblemOptions& prob_opts, + sundials::Context& sunctx); + +int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, + int& stages, bool& explicit_first_stage, bool& fsal); + +int expected_rhs_evals(method_type type, int interp_type, int stages, + bool explicit_first_stage, bool fsal, void* arkstep_mem, + long int& nfe_expected, long int& nfi_expected); + +int check_rhs_evals(void* arkstep_mem, long int nfe_expected, + long int nfi_expected); // ----------------------------------------------------------------------------- // Main Program @@ -111,7 +120,6 @@ int main(int argc, char* argv[]) << " lambda expl = " << prob_data.lambda_e << "\n" << " lambda impl = " << prob_data.lambda_i << "\n" << " step size = " << prob_opts.h << "\n" - << " num steps = " << prob_opts.nsteps << "\n" << " relative tol = " << prob_opts.reltol << "\n" << " absolute tol = " << prob_opts.abstol << "\n" << " interp type = " << prob_opts.interp_type << "\n"; @@ -122,14 +130,74 @@ int main(int argc, char* argv[]) // Test methods int numfails = 0; + ARKodeButcherTable Be = nullptr; + ARKodeButcherTable Bi = nullptr; + // Explicit - numfails += run_tests(method_type::expl, prob_data, prob_opts, sunctx); + std::cout << "\n========================\n" + << "Test explicit RK methods\n" + << "========================\n"; + + // Explicit Euler + Be = ARKodeButcherTable_Alloc(1, SUNFALSE); + Be->A[0][0] = ZERO; + Be->b[0] = ONE; + Be->c[0] = ZERO; + Be->q = 1; + Bi = nullptr; + + numfails += run_tests(Be, Bi, prob_data, prob_opts, sunctx); + + ARKodeButcherTable_Free(Be); + ARKodeButcherTable_Free(Bi); + Be = nullptr; + Bi = nullptr; // Implicit - numfails += run_tests(method_type::impl, prob_data, prob_opts, sunctx); + std::cout << "\n========================\n" + << "Test implicit RK methods\n" + << "========================\n"; + + // Implicit Euler + Bi = ARKodeButcherTable_Alloc(1, SUNFALSE); + Bi->A[0][0] = ONE; + Bi->b[0] = ONE; + Bi->c[0] = ONE; + Bi->q = 1; + Be = nullptr; + + numfails += run_tests(Be, Bi, prob_data, prob_opts, sunctx); + + ARKodeButcherTable_Free(Be); + ARKodeButcherTable_Free(Bi); + Be = nullptr; + Bi = nullptr; // IMEX - numfails += run_tests(method_type::imex, prob_data, prob_opts, sunctx); + + std::cout << "\n=====================\n" + << "Test IMEX ARK methods\n" + << "=====================\n"; + + // IMEX Euler + Be = ARKodeButcherTable_Alloc(2, SUNFALSE); + Be->A[1][0] = ONE; + Be->b[0] = ONE; + Be->c[1] = ONE; + Be->q = 1; + + Bi = ARKodeButcherTable_Alloc(2, SUNFALSE); + Bi->A[1][1] = ONE; + Bi->b[1] = ONE; + Bi->c[1] = ONE; + Bi->q = 1; + + numfails += run_tests(Be, Bi, prob_data, prob_opts, sunctx); + + ARKodeButcherTable_Free(Be); + ARKodeButcherTable_Free(Bi); + Be = nullptr; + Bi = nullptr; if (numfails) { std::cout << "\n\nFailed " << numfails << " tests!\n"; } else { std::cout << "\n\nAll tests passed!\n"; } @@ -142,8 +210,9 @@ int main(int argc, char* argv[]) // Test drivers // ----------------------------------------------------------------------------- -int run_tests(method_type type, ProblemData& prob_data, - ProblemOptions& prob_opts, sundials::Context& sunctx) +int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, + ProblemData& prob_data, ProblemOptions& prob_opts, + sundials::Context& sunctx) { // Reusable error-checking flag int flag; @@ -151,6 +220,23 @@ int run_tests(method_type type, ProblemData& prob_data, // Test failure counter int numfails = 0; + // Determine method type + method_type type; + if (Be && !Bi) { type = method_type::expl; } + else if (!Be && Bi) { type = method_type::impl; } + else if (Be && Bi) { type = method_type::imex; } + else + { + std::cerr << "ERROR: Both Butcher tables are NULL" << std::endl; + return 1; + } + + // Get method properties + int stages; + bool explicit_first_stage, fsal; + flag = get_method_properties(Be, Bi, stages, explicit_first_stage, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + // Create initial condition vector N_Vector y = N_VNew_Serial(1, sunctx); if (check_flag((void*)y, "N_VNew_Serial", 0)) return 1; @@ -186,11 +272,10 @@ int run_tests(method_type type, ProblemData& prob_data, { arkstep_mem = ARKStepCreate(nullptr, fi, prob_opts.t0, y, sunctx); } - else if (type == method_type::imex) + else { arkstep_mem = ARKStepCreate(fe, fi, prob_opts.t0, y, sunctx); } - else { return 1; } if (check_flag((void*)arkstep_mem, "ARKStepCreate", 0)) return 1; // Set user data @@ -227,282 +312,243 @@ int run_tests(method_type type, ProblemData& prob_data, if (check_flag(&flag, "ARKStepSetLinear", 1)) return 1; } - // --------------------------- - // Evolve with various methods - // --------------------------- + // Attach Butcher tables + flag = ARKStepSetTables(arkstep_mem, 1, 0, Bi, Be); + if (check_flag(&flag, "ARKStepSetTables", 1)) return 1; - // Methods to test - int num_methods; + // -------------- + // Evolve in time + // -------------- - if (type == method_type::expl) - { - std::cout << "\n========================\n" - << "Test explicit RK methods\n" - << "========================\n"; - num_methods = 1; - } - else if (type == method_type::impl) - { - std::cout << "\n========================\n" - << "Test implicit RK methods\n" - << "========================\n"; - num_methods = 1; - } - else if (type == method_type::imex) - { - std::cout << "\n=====================\n" - << "Test IMEX ARK methods\n" - << "=====================\n"; - num_methods = 1; - } - else { return 1; } + sunrealtype t_ret = prob_opts.t0; + sunrealtype t_out = 3 * prob_opts.h; - for (int i = 0; i < num_methods; i++) - { - std::cout << "\nTesting method " << i << "\n"; + long int nfe_expected, nfi_expected; - // ------------- - // Select method - // ------------- - - ARKodeButcherTable Be = nullptr; - ARKodeButcherTable Bi = nullptr; - int stages = 0; - bool fsal_explicit_first_stage = false; - bool implicit_first_stage = false; - - if (type == method_type::expl) - { - // Explicit Euler - stages = 1; - fsal_explicit_first_stage = false; - implicit_first_stage = false; - - Be = ARKodeButcherTable_Alloc(stages, SUNFALSE); - Be->A[0][0] = ZERO; - Be->b[0] = ONE; - Be->c[0] = ZERO; - Be->q = 1; - Bi = nullptr; - } - else if (type == method_type::impl) - { - // Implicit Euler - stages = 1; - fsal_explicit_first_stage = false; - implicit_first_stage = true; - - Bi = ARKodeButcherTable_Alloc(stages, SUNFALSE); - Bi->A[0][0] = ONE; - Bi->b[0] = ONE; - Bi->c[0] = ONE; - Bi->q = 1; - Be = nullptr; - } - else if (type == method_type::imex) - { - // IMEX Euler - stages = 2; - fsal_explicit_first_stage = true; - implicit_first_stage = false; - - Be = ARKodeButcherTable_Alloc(stages, SUNFALSE); - Be->A[1][0] = ONE; - Be->b[0] = ONE; - Be->c[1] = ONE; - Be->q = 1; - - Bi = ARKodeButcherTable_Alloc(stages, SUNFALSE); - Bi->A[1][1] = ONE; - Bi->b[1] = ONE; - Bi->c[1] = ONE; - Bi->q = 1; - } - else { return 1; } + for (int i = 0; i < 3; i++) + { + std::cout << "--------------------" << std::endl; - // Attach Butcher tables - flag = ARKStepSetTables(arkstep_mem, 1, 0, Bi, Be); - if (check_flag(&flag, "ARKStepSetTables", 1)) return 1; + // Advance in time + flag = ARKStepEvolve(arkstep_mem, t_out, y, &t_ret, ARK_ONE_STEP); + if (check_flag(&flag, "ARKStepEvolve", 1)) return 1; - ARKodeButcherTable_Free(Be); - ARKodeButcherTable_Free(Bi); - Be = nullptr; - Bi = nullptr; + // Update output time + t_out += prob_opts.h; - // -------------- - // Evolve in time - // -------------- + // Check statistics + flag = expected_rhs_evals(type, prob_opts.interp_type, stages, + explicit_first_stage, fsal, arkstep_mem, + nfe_expected, nfi_expected); + if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; - sunrealtype t = prob_opts.t0; - sunrealtype tf = prob_opts.nsteps * prob_opts.h; + numfails += check_rhs_evals(arkstep_mem, nfe_expected, nfi_expected); - for (int i = 0; i < prob_opts.nsteps; i++) + if (numfails) { - // Advance in time - flag = ARKStepEvolve(arkstep_mem, tf, y, &t, ARK_ONE_STEP); - if (check_flag(&flag, "ARKStepEvolve", 1)) return 1; - - // Update output time - tf += prob_opts.h; + std::cout << "Failed " << numfails << " checks\n"; + break; } + } + std::cout << "--------------------" << std::endl; - // ----------------- - // Output statistics - // ----------------- - - long int nst, nfe, nfi; // integrator - long int nni, ncfn; // nonlinear solver - long int nsetups, nje, nfeLS; // linear solver + // ---------------- + // Get dense output + // ---------------- - flag = ARKStepGetNumSteps(arkstep_mem, &nst); - if (check_flag(&flag, "ARKStepGetNumSteps", 1)) return 1; + sunrealtype h_last; + flag = ARKStepGetLastStep(arkstep_mem, &h_last); + if (check_flag(&flag, "ARKStepGetLastStep", 1)) return 1; - flag = ARKStepGetNumRhsEvals(arkstep_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) return 1; + flag = ARKStepGetDky(arkstep_mem, t_ret - h_last / TWO, 0, y); + if (check_flag(&flag, "ARKStepGetDky", 1)) return 1; + // FSAL methods do not require an additional RHS evaluation to get the new + // RHS value at the end of a step for dense output + if (!fsal) + { + if (type == method_type::expl || type == method_type::imex) + { + nfe_expected++; + } if (type == method_type::impl || type == method_type::imex) { - flag = ARKStepGetNumNonlinSolvIters(arkstep_mem, &nni); - if (check_flag(&flag, "ARKStepGetNumNonlinSolvIters", 1)) return 1; + nfi_expected++; + } + } + numfails += check_rhs_evals(arkstep_mem, nfe_expected, nfi_expected); - flag = ARKStepGetNumNonlinSolvConvFails(arkstep_mem, &ncfn); - if (check_flag(&flag, "ARKStepGetNumNonlinSolvConvFails", 1)) return 1; + std::cout << "--------------------" << std::endl; - flag = ARKStepGetNumLinSolvSetups(arkstep_mem, &nsetups); - if (check_flag(&flag, "ARKStepGetNumLinSolvSetups", 1)) return 1; + // -------------------- + // Additional time step + // -------------------- - flag = ARKStepGetNumJacEvals(arkstep_mem, &nje); - if (check_flag(&flag, "ARKStepGetNumJacEvals", 1)) return 1; + // Advance in time + flag = ARKStepEvolve(arkstep_mem, t_out, y, &t_ret, ARK_ONE_STEP); + if (check_flag(&flag, "ARKStepEvolve", 1)) return 1; - flag = ARKStepGetNumLinRhsEvals(arkstep_mem, &nfeLS); - check_flag(&flag, "ARKStepGetNumLinRhsEvals", 1); - } + // Update output time + t_out += prob_opts.h; + + // Check statistics + flag = expected_rhs_evals(type, prob_opts.interp_type, stages, + explicit_first_stage, fsal, arkstep_mem, + nfe_expected, nfi_expected); + if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; + + // FSAL methods with an implicit first stage using the Hermite interpolation + // method do not have the additional RHS evaluation they usually would to save + // fn before updating the interpolation module - sunrealtype pow = ZERO; + // >>>> So FSAL methods could have an RHS evaluation by saving fn before starting + // the next time step and don't need to delay the full RHS call <<< + if (!explicit_first_stage && fsal && prob_opts.interp_type == 0) + { if (type == method_type::expl || type == method_type::imex) { - pow += prob_data.lambda_e; + nfe_expected--; } if (type == method_type::impl || type == method_type::imex) { - pow += prob_data.lambda_i; + nfi_expected--; } - sunrealtype ytrue = exp(pow * t); + } - sunrealtype* ydata = N_VGetArrayPointer(y); - sunrealtype error = ytrue - ydata[0]; + numfails += check_rhs_evals(arkstep_mem, nfe_expected, nfi_expected); - std::cout << "\nARKStep Statistics:\n" - << " Time = " << t << "\n" - << " y(t) = " << ytrue << "\n" - << " y_n = " << ydata[0] << "\n" - << " Error = " << error << "\n" - << " Steps = " << nst << "\n" - << " Fe evals = " << nfe << "\n" - << " Fi evals = " << nfi << "\n"; + // Clean up + ARKStepFree(&arkstep_mem); + if (type == method_type::impl || type == method_type::imex) + { + SUNLinSolFree(LS); + SUNMatDestroy(A); + } + N_VDestroy(y); - if (type == method_type::impl || type == method_type::imex) - { - std::cout << " NLS iters = " << nni << "\n" - << " NLS fails = " << ncfn << "\n" - << " LS setups = " << nsetups << "\n" - << " LS Fi evals = " << nfeLS << "\n" - << " Ji evals = " << nje << "\n"; - } + return numfails; +} - // ---------------- - // Check statistics - // ---------------- +int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, + int& stages, bool& explicit_first_stage, bool& fsal) +{ + stages = 0; + if (Bi) { stages = Bi->stages; } + else if (Be) { stages = Be->stages; } + else + { + std::cerr << "ERROR: Both Butcher tables are NULL!" << std::endl; + return 1; + } - // expected number of explicit functions evaluations - if (type == method_type::expl || type == method_type::imex) + // Check for explicit first stage + explicit_first_stage = true; + if (Bi) + { + if (std::abs(Bi->A[0][0]) > ZERO) { explicit_first_stage = false; } + } + if (Be) + { + if (std::abs(Be->A[0][0]) > ZERO) { explicit_first_stage = false; } + } + + // Check for first same as last (FSAL) property + fsal = true; + if (Bi) + { + for (int i = 0; i < stages; i++) { - long int expected; - - if (fsal_explicit_first_stage) - { - expected = stages + (stages - 1) * (prob_opts.nsteps - 1); - } - else { expected = stages * prob_opts.nsteps; } - - if (prob_opts.interp_type == 0 && implicit_first_stage) - { - expected += prob_opts.nsteps; - } - - if (nfe != expected) - { - numfails++; - std::cout << "Fe RHS evals:\n" - << " actual: " << nfe << "\n" - << " expected: " << expected << "\n"; - } + if (std::abs(Bi->b[i] - Bi->A[stages - 1][i]) > ZERO) { fsal = false; } } - - // expected number of implicit functions evaluations - if (type == method_type::impl || type == method_type::imex) + } + if (Be) + { + for (int i = 0; i < stages; i++) { - long int expected; - - if (fsal_explicit_first_stage) - { - expected = stages + (stages - 1) * (prob_opts.nsteps - 1) + nni; - } - else { expected = stages * prob_opts.nsteps + nni; } - - if (prob_opts.interp_type == 0 && implicit_first_stage) - { - expected += prob_opts.nsteps; - } - - if (nfi != expected) - { - numfails++; - std::cout << "Fi RHS evals:\n" - << " actual: " << nfi << "\n" - << " expected: " << expected << "\n"; - } + if (std::abs(Be->b[i] - Be->A[stages - 1][i]) > ZERO) { fsal = false; } } + } - if (numfails) { std::cout << "Failed " << numfails << " checks\n"; } - else { std::cout << "All checks passed\n"; } + return 0; +} - // ------------------- - // Setup for next test - // ------------------- +int expected_rhs_evals(method_type type, int interp_type, int stages, + bool explicit_first_stage, bool fsal, void* arkstep_mem, + long int& nfe_expected, long int& nfi_expected) +{ + int flag = 0; - // Free table(s) + // Get number of steps and nonlinear solver iterations + long int nst = 0; + flag = ARKStepGetNumSteps(arkstep_mem, &nst); + if (check_flag(&flag, "ARKStepGetNumSteps", 1)) return 1; - // Reset state vector to the initial condition - N_VConst(SUN_RCONST(1.0), y); + long int nni = 0; + if (type == method_type::impl || type == method_type::imex) + { + flag = ARKStepGetNumNonlinSolvIters(arkstep_mem, &nni); + if (check_flag(&flag, "ARKStepGetNumNonlinSolvIters", 1)) return 1; + } - // Re-initialize integrator based on type - if (type == method_type::expl) - { - flag = ARKStepReInit(arkstep_mem, fe, nullptr, prob_opts.t0, y); - } - else if (type == method_type::impl) + // Expected number of explicit functions evaluations + nfe_expected = 0; + if (type == method_type::expl || type == method_type::imex) + { + if (explicit_first_stage && fsal) { - flag = ARKStepReInit(arkstep_mem, nullptr, fi, prob_opts.t0, y); + nfe_expected = stages + (stages - 1) * (nst - 1); } - else if (type == method_type::imex) + else { nfe_expected = stages * nst; } + + if (interp_type == 0 && !explicit_first_stage) { nfe_expected += nst; } + } + + // Expected number of implicit functions evaluations + nfi_expected = 0; + if (type == method_type::impl || type == method_type::imex) + { + if (explicit_first_stage && fsal) { - flag = ARKStepReInit(arkstep_mem, fe, fi, prob_opts.t0, y); + nfi_expected = stages + (stages - 1) * (nst - 1) + nni; } - else { return 1; } - if (check_flag(&flag, "ARKStepReInit", 1)) return 1; + else { nfi_expected = stages * nst + nni; } + + if (interp_type == 0 && !explicit_first_stage) { nfi_expected += nst; } } - // Clean up - ARKStepFree(&arkstep_mem); - if (type == method_type::impl || type == method_type::imex) + std::cout << "Steps: " << nst << std::endl; + std::cout << "NLS iters: " << nni << std::endl; + + return 0; +} + +int check_rhs_evals(void* arkstep_mem, long int nfe_expected, + long int nfi_expected) +{ + int flag = 0; + + long int nst = 0; + flag = ARKStepGetNumSteps(arkstep_mem, &nst); + if (check_flag(&flag, "ARKStepGetNumSteps", 1)) return 1; + + long int nfe, nfi; + flag = ARKStepGetNumRhsEvals(arkstep_mem, &nfe, &nfi); + if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) return 1; + + std::cout << "Fe RHS evals:\n" + << " actual: " << nfe << "\n" + << " expected: " << nfe_expected << "\n"; + std::cout << "Fi RHS evals:\n" + << " actual: " << nfi << "\n" + << " expected: " << nfi_expected << "\n"; + + if (nfe != nfe_expected || nfi != nfi_expected) { - SUNLinSolFree(LS); - SUNMatDestroy(A); + std::cerr << ">>> Check failed <<<" << std::endl; + return 1; } - N_VDestroy(y); - return numfails; + return 0; } // ----------------------------------------------------------------------------- From 4832f91b41d446db616d18d5a553088c54b1a390 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 3 Aug 2023 15:47:05 -0700 Subject: [PATCH 16/92] remove extra RHS evaluation with FSAL DIRK methods --- src/arkode/arkode.c | 3 ++ src/arkode/arkode_arkstep.c | 34 +++++++++++- src/arkode/arkode_impl.h | 1 + src/arkode/arkode_io.c | 14 +++-- .../CXX_serial/ark_test_dahlquist_ark.cpp | 53 +++++++++++-------- 5 files changed, 79 insertions(+), 26 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 1897bb258e..2f53a6393a 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -135,6 +135,7 @@ ARKodeMem arkCreate(SUNContext sunctx) /* Initialize the interpolation structure to NULL */ ark_mem->interp = NULL; + ark_mem->interp_type = -1; /* Initially, rwt should point to ewt */ ark_mem->rwt_is_ewt = SUNTRUE; @@ -1110,6 +1111,7 @@ void arkFree(void **arkode_mem) if (ark_mem->interp != NULL) { arkInterpFree(ark_mem, ark_mem->interp); ark_mem->interp = NULL; + ark_mem->interp_type = -1; } /* free the root-finding module */ @@ -1303,6 +1305,7 @@ int arkInit(ARKodeMem ark_mem, realtype t0, N_Vector y0, "Unable to allocate interpolation module"); return(ARK_MEM_FAIL); } + ark_mem->interp_type = ARK_INTERP_HERMITE; /* All allocations are complete */ ark_mem->MallocDone = SUNTRUE; diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 7004dbe820..2f8cb41036 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1663,6 +1663,7 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) booleantype implicit_stage; booleantype deduce_stage; booleantype save_stages = SUNFALSE; + booleantype fsal = SUNTRUE; ARKodeMem ark_mem; ARKodeARKStepMem step_mem; N_Vector zcor0; @@ -1717,13 +1718,42 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) N_VScale(ONE, ark_mem->yn, step_mem->z[0]); } + /* check if the method is First Same As Last (FASL) */ + if (step_mem->explicit) + { + for (is = 0; is < step_mem->stages; is++) + { + if (SUNRabs(step_mem->Be->b[is] - step_mem->Be->A[step_mem->stages - 1][is]) > TINY) + { + fsal = SUNFALSE; + } + } + } + + if (step_mem->implicit) + { + for (is = 0; is < step_mem->stages; is++) + { + if (SUNRabs(step_mem->Bi->b[is] - step_mem->Bi->A[step_mem->stages - 1][is]) > TINY) + { + fsal = SUNFALSE; + } + } + } + /* call full RHS if needed for explicit first stage -- if this is the first step then we need to evaluate or copy the RHS values at the start of the step. With subsequent steps we are evaluating the RHS at the end of the just completed step i.e., the start of this step can may be able to use the last stage RHS at the end of the last step (FSAL methods) or need a new - function evaluation. */ - if (!implicit_stage && !(ark_mem->fn_current)) + function evaluation. + + It the method has an implicit first stage but is FSAL, call the full RHS to + copy fn from the end of the last step when using Hermite interpolation to + save a function evaluation per step. */ + + if ((!implicit_stage || (fsal && ark_mem->interp_type == ARK_INTERP_HERMITE)) + && !(ark_mem->fn_current)) { mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index 363a8fa596..33285c3a70 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -348,6 +348,7 @@ struct ARKodeMemRec /* Temporal interpolation module */ ARKInterp interp; + int interp_type; /* Tstop information */ booleantype tstopset; diff --git a/src/arkode/arkode_io.c b/src/arkode/arkode_io.c index 60e6d04187..af230fb8e0 100644 --- a/src/arkode/arkode_io.c +++ b/src/arkode/arkode_io.c @@ -158,12 +158,20 @@ int arkSetInterpolantType(void *arkode_mem, int itype) /* create requested interpolation module, initially specifying the maximum possible interpolant degree. */ - if (itype == ARK_INTERP_HERMITE) { + if (itype == ARK_INTERP_HERMITE) + { ark_mem->interp = arkInterpCreate_Hermite(arkode_mem, ARK_INTERP_MAX_DEGREE); - } else if (itype == ARK_INTERP_LAGRANGE) { + ark_mem->interp_type = ARK_INTERP_HERMITE; + } + else if (itype == ARK_INTERP_LAGRANGE) + { ark_mem->interp = arkInterpCreate_Lagrange(arkode_mem, ARK_INTERP_MAX_DEGREE); - } else { + ark_mem->interp_type = ARK_INTERP_LAGRANGE; + } + else + { ark_mem->interp = NULL; + ark_mem->interp_type = -1; } if (ark_mem->interp == NULL) { arkProcessError(ark_mem, ARK_MEM_FAIL, "ARKODE", "arkSetInterpolantType", diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp index a50a65c36d..421e855c22 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -365,7 +365,7 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, // FSAL methods do not require an additional RHS evaluation to get the new // RHS value at the end of a step for dense output - if (!fsal) + if (prob_opts.interp_type == 0 && !fsal) { if (type == method_type::expl || type == method_type::imex) { @@ -397,27 +397,14 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, nfe_expected, nfi_expected); if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; - // FSAL methods with an implicit first stage using the Hermite interpolation - // method do not have the additional RHS evaluation they usually would to save - // fn before updating the interpolation module - - // >>>> So FSAL methods could have an RHS evaluation by saving fn before starting - // the next time step and don't need to delay the full RHS call <<< - if (!explicit_first_stage && fsal && prob_opts.interp_type == 0) - { - if (type == method_type::expl || type == method_type::imex) - { - nfe_expected--; - } - if (type == method_type::impl || type == method_type::imex) - { - nfi_expected--; - } - } - numfails += check_rhs_evals(arkstep_mem, nfe_expected, nfi_expected); + std::cout << "--------------------" << std::endl; + + // -------- // Clean up + // -------- + ARKStepFree(&arkstep_mem); if (type == method_type::impl || type == method_type::imex) { @@ -500,7 +487,19 @@ int expected_rhs_evals(method_type type, int interp_type, int stages, } else { nfe_expected = stages * nst; } - if (interp_type == 0 && !explicit_first_stage) { nfe_expected += nst; } + if (interp_type == 0 && !explicit_first_stage) + { + if (!fsal) + { + // One extra evaluation in each step + nfe_expected += nst; + } + else + { + // One extra evaluation in the first step only + nfe_expected++; + } + } } // Expected number of implicit functions evaluations @@ -513,7 +512,19 @@ int expected_rhs_evals(method_type type, int interp_type, int stages, } else { nfi_expected = stages * nst + nni; } - if (interp_type == 0 && !explicit_first_stage) { nfi_expected += nst; } + if (interp_type == 0 && !explicit_first_stage) + { + if (!fsal) + { + // One extra evaluation in each step + nfi_expected += nst; + } + else + { + // One extra evaluation in the first step only + nfi_expected++; + } + } } std::cout << "Steps: " << nst << std::endl; From ce3e58587107870b8371f22fdbbc9609290b3676 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 3 Aug 2023 16:39:48 -0700 Subject: [PATCH 17/92] fsal -> stiffly accurate --- src/arkode/arkode_arkstep.c | 14 +-- .../CXX_serial/ark_test_dahlquist_ark.cpp | 86 ++++++++++++------- 2 files changed, 61 insertions(+), 39 deletions(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 2f8cb41036..415563ae20 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1663,7 +1663,7 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) booleantype implicit_stage; booleantype deduce_stage; booleantype save_stages = SUNFALSE; - booleantype fsal = SUNTRUE; + booleantype stiffly_accurate = SUNTRUE; ARKodeMem ark_mem; ARKodeARKStepMem step_mem; N_Vector zcor0; @@ -1725,7 +1725,7 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) { if (SUNRabs(step_mem->Be->b[is] - step_mem->Be->A[step_mem->stages - 1][is]) > TINY) { - fsal = SUNFALSE; + stiffly_accurate = SUNFALSE; } } } @@ -1736,7 +1736,7 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) { if (SUNRabs(step_mem->Bi->b[is] - step_mem->Bi->A[step_mem->stages - 1][is]) > TINY) { - fsal = SUNFALSE; + stiffly_accurate = SUNFALSE; } } } @@ -1748,11 +1748,11 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) last stage RHS at the end of the last step (FSAL methods) or need a new function evaluation. - It the method has an implicit first stage but is FSAL, call the full RHS to - copy fn from the end of the last step when using Hermite interpolation to - save a function evaluation per step. */ + It the method has an implicit first stage but is stiffly accurate, call the + full RHS to copy fn from the end of the last step when using Hermite + interpolation to save a function evaluation per step. */ - if ((!implicit_stage || (fsal && ark_mem->interp_type == ARK_INTERP_HERMITE)) + if ((!implicit_stage || (stiffly_accurate && ark_mem->interp_type == ARK_INTERP_HERMITE)) && !(ark_mem->fn_current)) { mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp index 421e855c22..9b7559494c 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -93,11 +93,13 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, sundials::Context& sunctx); int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, - int& stages, bool& explicit_first_stage, bool& fsal); + int& stages, bool& explicit_first_stage, + bool& stiffly_accurate, bool& fsal); int expected_rhs_evals(method_type type, int interp_type, int stages, - bool explicit_first_stage, bool fsal, void* arkstep_mem, - long int& nfe_expected, long int& nfi_expected); + bool explicit_first_stage, bool stiffly_accurate, + bool fsal, void* arkstep_mem, long int& nfe_expected, + long int& nfi_expected); int check_rhs_evals(void* arkstep_mem, long int nfe_expected, long int nfi_expected); @@ -233,8 +235,9 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, // Get method properties int stages; - bool explicit_first_stage, fsal; - flag = get_method_properties(Be, Bi, stages, explicit_first_stage, fsal); + bool explicit_first_stage, stiffly_accurate, fsal; + flag = get_method_properties(Be, Bi, stages, explicit_first_stage, + stiffly_accurate, fsal); if (check_flag(&flag, "get_method_properties", 1)) return 1; // Create initial condition vector @@ -338,8 +341,8 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, // Check statistics flag = expected_rhs_evals(type, prob_opts.interp_type, stages, - explicit_first_stage, fsal, arkstep_mem, - nfe_expected, nfi_expected); + explicit_first_stage, stiffly_accurate, fsal, + arkstep_mem,nfe_expected, nfi_expected); if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; numfails += check_rhs_evals(arkstep_mem, nfe_expected, nfi_expected); @@ -363,9 +366,9 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, flag = ARKStepGetDky(arkstep_mem, t_ret - h_last / TWO, 0, y); if (check_flag(&flag, "ARKStepGetDky", 1)) return 1; - // FSAL methods do not require an additional RHS evaluation to get the new - // RHS value at the end of a step for dense output - if (prob_opts.interp_type == 0 && !fsal) + // Stiffly accurate (and FSAL) methods do not require an additional RHS + // evaluation to get the new RHS value at the end of a step for dense output + if (prob_opts.interp_type == 0 && !stiffly_accurate) { if (type == method_type::expl || type == method_type::imex) { @@ -393,8 +396,8 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, // Check statistics flag = expected_rhs_evals(type, prob_opts.interp_type, stages, - explicit_first_stage, fsal, arkstep_mem, - nfe_expected, nfi_expected); + explicit_first_stage, stiffly_accurate, fsal, + arkstep_mem, nfe_expected, nfi_expected); if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; numfails += check_rhs_evals(arkstep_mem, nfe_expected, nfi_expected); @@ -417,7 +420,8 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, } int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, - int& stages, bool& explicit_first_stage, bool& fsal) + int& stages, bool& explicit_first_stage, + bool& stiffly_accurate, bool& fsal) { stages = 0; if (Bi) { stages = Bi->stages; } @@ -439,28 +443,38 @@ int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, if (std::abs(Be->A[0][0]) > ZERO) { explicit_first_stage = false; } } - // Check for first same as last (FSAL) property - fsal = true; + // Check for stiffly accurate method + stiffly_accurate = true; if (Bi) { for (int i = 0; i < stages; i++) { - if (std::abs(Bi->b[i] - Bi->A[stages - 1][i]) > ZERO) { fsal = false; } + if (std::abs(Bi->b[i] - Bi->A[stages - 1][i]) > ZERO) + { + stiffly_accurate = false; + } } } if (Be) { for (int i = 0; i < stages; i++) { - if (std::abs(Be->b[i] - Be->A[stages - 1][i]) > ZERO) { fsal = false; } + if (std::abs(Be->b[i] - Be->A[stages - 1][i]) > ZERO) + { + stiffly_accurate = false; + } } } + // Check for first same as last (FSAL) property + fsal = explicit_first_stage && stiffly_accurate; + return 0; } int expected_rhs_evals(method_type type, int interp_type, int stages, - bool explicit_first_stage, bool fsal, void* arkstep_mem, + bool explicit_first_stage, bool stiffly_accurate, + bool fsal, void* arkstep_mem, long int& nfe_expected, long int& nfi_expected) { int flag = 0; @@ -481,23 +495,27 @@ int expected_rhs_evals(method_type type, int interp_type, int stages, nfe_expected = 0; if (type == method_type::expl || type == method_type::imex) { - if (explicit_first_stage && fsal) + if (fsal) { + // Save one function evaluation after first step nfe_expected = stages + (stages - 1) * (nst - 1); } - else { nfe_expected = stages * nst; } + else + { + nfe_expected = stages * nst; + } if (interp_type == 0 && !explicit_first_stage) { - if (!fsal) + if (stiffly_accurate) { - // One extra evaluation in each step - nfe_expected += nst; + // One extra evaluation in the first step only + nfe_expected++; } else { - // One extra evaluation in the first step only - nfe_expected++; + // One extra evaluation in each step + nfe_expected += nst; } } } @@ -506,23 +524,27 @@ int expected_rhs_evals(method_type type, int interp_type, int stages, nfi_expected = 0; if (type == method_type::impl || type == method_type::imex) { - if (explicit_first_stage && fsal) + if (fsal) { + // Save one function evaluation after first step nfi_expected = stages + (stages - 1) * (nst - 1) + nni; } - else { nfi_expected = stages * nst + nni; } + else + { + nfi_expected = stages * nst + nni; + } if (interp_type == 0 && !explicit_first_stage) { - if (!fsal) + if (stiffly_accurate) { - // One extra evaluation in each step - nfi_expected += nst; + // One extra evaluation in the first step only + nfi_expected++; } else { - // One extra evaluation in the first step only - nfi_expected++; + // One extra evaluation in each step + nfi_expected += nst; } } } From 3cc9f3aa42d0c8316312ef81b67eec2c7fa49912 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 3 Aug 2023 18:09:52 -0700 Subject: [PATCH 18/92] test all ERK, DIRK, and IMEX methods --- .../CXX_serial/ark_test_dahlquist_ark.cpp | 330 ++++++++++++++---- 1 file changed, 264 insertions(+), 66 deletions(-) diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp index 9b7559494c..5401e5acf5 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -52,6 +52,12 @@ enum class method_type imex }; +enum class interp_type +{ + hermite, + lagrange +}; + // Problem parameters struct ProblemData { @@ -75,7 +81,7 @@ struct ProblemOptions // Interpolant type // 0 = Hermite // 1 = Lagrange - int interp_type = 0; + interp_type i_type = interp_type::hermite; }; // User-supplied Functions called by the solver @@ -93,10 +99,10 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, sundials::Context& sunctx); int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, - int& stages, bool& explicit_first_stage, + int& stages, int& order, bool& explicit_first_stage, bool& stiffly_accurate, bool& fsal); -int expected_rhs_evals(method_type type, int interp_type, int stages, +int expected_rhs_evals(method_type m_type, interp_type i_type, int stages, bool explicit_first_stage, bool stiffly_accurate, bool fsal, void* arkstep_mem, long int& nfe_expected, long int& nfi_expected); @@ -115,7 +121,17 @@ int main(int argc, char* argv[]) ProblemOptions prob_opts; // Check for inputs - if (argc > 1) { prob_opts.interp_type = std::stoi(argv[1]); } + if (argc > 1) + { + if (std::stoi(argv[1]) == 0) + { + prob_opts.i_type = interp_type::hermite; + } + else + { + prob_opts.i_type = interp_type::lagrange; + } + } // Output problem setup std::cout << "\nDahlquist ODE test problem:\n" @@ -123,65 +139,144 @@ int main(int argc, char* argv[]) << " lambda impl = " << prob_data.lambda_i << "\n" << " step size = " << prob_opts.h << "\n" << " relative tol = " << prob_opts.reltol << "\n" - << " absolute tol = " << prob_opts.abstol << "\n" - << " interp type = " << prob_opts.interp_type << "\n"; + << " absolute tol = " << prob_opts.abstol << "\n"; + if (prob_opts.i_type == interp_type::hermite) + { + std::cout << " interp type = Hermite\n"; + } + else + { + std::cout << " interp type = Lagrange\n"; + } // Create SUNDIALS context sundials::Context sunctx; // Test methods - int numfails = 0; + int flag, numfails = 0; ARKodeButcherTable Be = nullptr; ARKodeButcherTable Bi = nullptr; + int stages, order; + bool explicit_first_stage, stiffly_accurate, fsal; + + // -------- // Explicit + // -------- + std::cout << "\n========================\n" << "Test explicit RK methods\n" << "========================\n"; - // Explicit Euler Be = ARKodeButcherTable_Alloc(1, SUNFALSE); Be->A[0][0] = ZERO; Be->b[0] = ONE; Be->c[0] = ZERO; Be->q = 1; - Bi = nullptr; + + flag = get_method_properties(Be, Bi, stages, order, explicit_first_stage, + stiffly_accurate, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + + std::cout << "\n========================" << std::endl; + std::cout << "Explicit Euler" << std::endl; + std::cout << " stages: " << stages << std::endl; + std::cout << " order: " << order << std::endl; + std::cout << " explicit 1st stage: " << explicit_first_stage << std::endl; + std::cout << " stiffly accurate: " << stiffly_accurate << std::endl; + std::cout << " first same as last: " << fsal << std::endl; + std::cout << "========================" << std::endl; numfails += run_tests(Be, Bi, prob_data, prob_opts, sunctx); ARKodeButcherTable_Free(Be); - ARKodeButcherTable_Free(Bi); Be = nullptr; - Bi = nullptr; + for (int i = ARKODE_MIN_ERK_NUM; i <= ARKODE_MAX_ERK_NUM; i++) + { + Be = ARKodeButcherTable_LoadERK(static_cast(i)); + flag = get_method_properties(Be, Bi, stages, order, explicit_first_stage, + stiffly_accurate, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + + std::cout << "\n========================" << std::endl; + std::cout << "ERK Table ID " << i << std::endl; + std::cout << " stages: " << stages << std::endl; + std::cout << " order: " << order << std::endl; + std::cout << " explicit 1st stage: " << explicit_first_stage << std::endl; + std::cout << " stiffly accurate: " << stiffly_accurate << std::endl; + std::cout << " first same as last: " << fsal << std::endl; + std::cout << "========================" << std::endl; + + numfails += run_tests(Be, Bi, prob_data, prob_opts, sunctx); + + ARKodeButcherTable_Free(Be); + Be = nullptr; + } + + // -------- // Implicit + // -------- + std::cout << "\n========================\n" << "Test implicit RK methods\n" << "========================\n"; - // Implicit Euler Bi = ARKodeButcherTable_Alloc(1, SUNFALSE); Bi->A[0][0] = ONE; Bi->b[0] = ONE; Bi->c[0] = ONE; Bi->q = 1; - Be = nullptr; + + flag = get_method_properties(Be, Bi, stages, order, explicit_first_stage, + stiffly_accurate, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + + std::cout << "\n========================" << std::endl; + std::cout << "Implicit Euler" << std::endl; + std::cout << " stages: " << stages << std::endl; + std::cout << " order: " << order << std::endl; + std::cout << " explicit 1st stage: " << explicit_first_stage << std::endl; + std::cout << " stiffly accurate: " << stiffly_accurate << std::endl; + std::cout << " first same as last: " << fsal << std::endl; + std::cout << "========================" << std::endl; numfails += run_tests(Be, Bi, prob_data, prob_opts, sunctx); - ARKodeButcherTable_Free(Be); ARKodeButcherTable_Free(Bi); - Be = nullptr; Bi = nullptr; + for (int i = ARKODE_MIN_DIRK_NUM; i <= ARKODE_MAX_DIRK_NUM; i++) + { + Bi = ARKodeButcherTable_LoadDIRK(static_cast(i)); + flag = get_method_properties(Be, Bi, stages, order, explicit_first_stage, + stiffly_accurate, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + + std::cout << "\n========================" << std::endl; + std::cout << "DIRK Table ID " << i << std::endl; + std::cout << " stages: " << stages << std::endl; + std::cout << " order: " << order << std::endl; + std::cout << " explicit 1st stage: " << explicit_first_stage << std::endl; + std::cout << " stiffly accurate: " << stiffly_accurate << std::endl; + std::cout << " first same as last: " << fsal << std::endl; + std::cout << "========================" << std::endl; + + numfails += run_tests(Be, Bi, prob_data, prob_opts, sunctx); + + ARKodeButcherTable_Free(Bi); + Bi = nullptr; + } + + // ---- // IMEX + // ---- std::cout << "\n=====================\n" << "Test IMEX ARK methods\n" << "=====================\n"; - // IMEX Euler Be = ARKodeButcherTable_Alloc(2, SUNFALSE); Be->A[1][0] = ONE; Be->b[0] = ONE; @@ -194,6 +289,19 @@ int main(int argc, char* argv[]) Bi->c[1] = ONE; Bi->q = 1; + flag = get_method_properties(Be, Bi, stages, order, explicit_first_stage, + stiffly_accurate, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + + std::cout << "\n========================" << std::endl; + std::cout << "IMEX Euler" << std::endl; + std::cout << " stages: " << stages << std::endl; + std::cout << " order: " << order << std::endl; + std::cout << " explicit 1st stage: " << explicit_first_stage << std::endl; + std::cout << " stiffly accurate: " << stiffly_accurate << std::endl; + std::cout << " first same as last: " << fsal << std::endl; + std::cout << "========================" << std::endl; + numfails += run_tests(Be, Bi, prob_data, prob_opts, sunctx); ARKodeButcherTable_Free(Be); @@ -201,6 +309,48 @@ int main(int argc, char* argv[]) Be = nullptr; Bi = nullptr; + const char* ark_methods_erk[6] = + {"ARKODE_ARK2_ERK_3_1_2", + "ARKODE_ARK324L2SA_ERK_4_2_3", + "ARKODE_ARK436L2SA_ERK_6_3_4", + "ARKODE_ARK437L2SA_ERK_7_3_4", + "ARKODE_ARK548L2SA_ERK_8_4_5", + "ARKODE_ARK548L2SAb_ERK_8_4_5"}; + + const char* ark_methods_dirk[6] = + {"ARKODE_ARK2_DIRK_3_1_2", + "ARKODE_ARK324L2SA_DIRK_4_2_3", + "ARKODE_ARK436L2SA_DIRK_6_3_4", + "ARKODE_ARK437L2SA_DIRK_7_3_4", + "ARKODE_ARK548L2SA_ERK_8_4_5", + "ARKODE_ARK548L2SAb_ERK_8_4_5"}; + + for (int i = 0; i < 6; i++) + { + Be = ARKodeButcherTable_LoadERKByName(ark_methods_erk[0]); + Bi = ARKodeButcherTable_LoadDIRKByName(ark_methods_dirk[0]); + + flag = get_method_properties(Be, Bi, stages, order, explicit_first_stage, + stiffly_accurate, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + + std::cout << "\n========================" << std::endl; + std::cout << "IMEX Table ID " << i << std::endl; + std::cout << " stages: " << stages << std::endl; + std::cout << " order: " << order << std::endl; + std::cout << " explicit 1st stage: " << explicit_first_stage << std::endl; + std::cout << " stiffly accurate: " << stiffly_accurate << std::endl; + std::cout << " first same as last: " << fsal << std::endl; + std::cout << "========================" << std::endl; + + numfails += run_tests(Be, Bi, prob_data, prob_opts, sunctx); + + ARKodeButcherTable_Free(Be); + ARKodeButcherTable_Free(Bi); + Be = nullptr; + Bi = nullptr; + } + if (numfails) { std::cout << "\n\nFailed " << numfails << " tests!\n"; } else { std::cout << "\n\nAll tests passed!\n"; } @@ -223,10 +373,10 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, int numfails = 0; // Determine method type - method_type type; - if (Be && !Bi) { type = method_type::expl; } - else if (!Be && Bi) { type = method_type::impl; } - else if (Be && Bi) { type = method_type::imex; } + method_type m_type; + if (Be && !Bi) { m_type = method_type::expl; } + else if (!Be && Bi) { m_type = method_type::impl; } + else if (Be && Bi) { m_type = method_type::imex; } else { std::cerr << "ERROR: Both Butcher tables are NULL" << std::endl; @@ -234,9 +384,9 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, } // Get method properties - int stages; + int stages, order; bool explicit_first_stage, stiffly_accurate, fsal; - flag = get_method_properties(Be, Bi, stages, explicit_first_stage, + flag = get_method_properties(Be, Bi, stages, order, explicit_first_stage, stiffly_accurate, fsal); if (check_flag(&flag, "get_method_properties", 1)) return 1; @@ -250,7 +400,7 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, SUNMatrix A = nullptr; SUNLinearSolver LS = nullptr; - if (type == method_type::impl || type == method_type::imex) + if (m_type == method_type::impl || m_type == method_type::imex) { // Initialize dense matrix data structures and solvers A = SUNDenseMatrix(1, 1, sunctx); @@ -267,11 +417,11 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, // Create integrator based on type void* arkstep_mem = nullptr; - if (type == method_type::expl) + if (m_type == method_type::expl) { arkstep_mem = ARKStepCreate(fe, nullptr, prob_opts.t0, y, sunctx); } - else if (type == method_type::impl) + else if (m_type == method_type::impl) { arkstep_mem = ARKStepCreate(nullptr, fi, prob_opts.t0, y, sunctx); } @@ -294,13 +444,13 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, if (check_flag(&flag, "ARKStepSetFixedStep", 1)) return 1; // Lagrange interpolant (removes additional RHS evaluation with DIRK methods) - if (prob_opts.interp_type == 1) + if (prob_opts.i_type == interp_type::lagrange) { flag = ARKStepSetInterpolantType(arkstep_mem, ARK_INTERP_LAGRANGE); if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; } - if (type == method_type::impl || type == method_type::imex) + if (m_type == method_type::impl || m_type == method_type::imex) { // Attach linear solver flag = ARKStepSetLinearSolver(arkstep_mem, LS, A); @@ -340,7 +490,7 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, t_out += prob_opts.h; // Check statistics - flag = expected_rhs_evals(type, prob_opts.interp_type, stages, + flag = expected_rhs_evals(m_type, prob_opts.i_type, stages, explicit_first_stage, stiffly_accurate, fsal, arkstep_mem,nfe_expected, nfi_expected); if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; @@ -353,63 +503,101 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, break; } } - std::cout << "--------------------" << std::endl; // ---------------- // Get dense output // ---------------- - sunrealtype h_last; - flag = ARKStepGetLastStep(arkstep_mem, &h_last); - if (check_flag(&flag, "ARKStepGetLastStep", 1)) return 1; - - flag = ARKStepGetDky(arkstep_mem, t_ret - h_last / TWO, 0, y); - if (check_flag(&flag, "ARKStepGetDky", 1)) return 1; + long int extra_fe_evals = 0; + long int extra_fi_evals = 0; - // Stiffly accurate (and FSAL) methods do not require an additional RHS - // evaluation to get the new RHS value at the end of a step for dense output - if (prob_opts.interp_type == 0 && !stiffly_accurate) + if (numfails == 0) { - if (type == method_type::expl || type == method_type::imex) + std::cout << "--------------------" << std::endl; + std::cout << "Dense Output" << std::endl; + + sunrealtype h_last; + flag = ARKStepGetLastStep(arkstep_mem, &h_last); + if (check_flag(&flag, "ARKStepGetLastStep", 1)) return 1; + + flag = ARKStepGetDky(arkstep_mem, t_ret - h_last / TWO, 0, y); + if (check_flag(&flag, "ARKStepGetDky", 1)) return 1; + + // Stiffly accurate (and FSAL) methods do not require an additional RHS + // evaluation to get the new RHS value at the end of a step for dense + // output. However, for methods with an explicit first stage this evaluation + // can be used at the start of the next step. For methods with an implicit + // first stage that are not stiffly accurate this evaluation replaces one + // that would happen at the end of the next step (this is accounted for in + // expected_rhs_evals after the next step is taken below). + if (prob_opts.i_type == interp_type::hermite && !stiffly_accurate) { - nfe_expected++; + if (m_type == method_type::expl || m_type == method_type::imex) + { + nfe_expected++; + } + if (m_type == method_type::impl || m_type == method_type::imex) + { + nfi_expected++; + } } - if (type == method_type::impl || type == method_type::imex) + + // Higher order methods require additional RHS evaluations for dense output + // with the Hermite interpolant (note default degree is order - 1, except + // for first order where the degree is 1. These are not accounted for in + // explicit_rhs_evals and must be carried forward. + int degree = (order == 1) ? 1 : order - 1; + if (prob_opts.i_type == interp_type::hermite && degree > 3) { - nfi_expected++; + if (m_type == method_type::expl || m_type == method_type::imex) + { + extra_fe_evals += (degree == 4) ? 1 : 4; + } + if (m_type == method_type::impl || m_type == method_type::imex) + { + extra_fi_evals += (degree == 4) ? 1 : 4; + } } - } - numfails += check_rhs_evals(arkstep_mem, nfe_expected, nfi_expected); - std::cout << "--------------------" << std::endl; + numfails += check_rhs_evals(arkstep_mem, + nfe_expected + extra_fe_evals, + nfi_expected + extra_fi_evals); + + std::cout << "--------------------" << std::endl; + } // -------------------- // Additional time step // -------------------- - // Advance in time - flag = ARKStepEvolve(arkstep_mem, t_out, y, &t_ret, ARK_ONE_STEP); - if (check_flag(&flag, "ARKStepEvolve", 1)) return 1; + if (numfails == 0) + { + // Advance in time + flag = ARKStepEvolve(arkstep_mem, t_out, y, &t_ret, ARK_ONE_STEP); + if (check_flag(&flag, "ARKStepEvolve", 1)) return 1; - // Update output time - t_out += prob_opts.h; + // Update output time + t_out += prob_opts.h; - // Check statistics - flag = expected_rhs_evals(type, prob_opts.interp_type, stages, - explicit_first_stage, stiffly_accurate, fsal, - arkstep_mem, nfe_expected, nfi_expected); - if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; + // Check statistics + flag = expected_rhs_evals(m_type, prob_opts.i_type, stages, + explicit_first_stage, stiffly_accurate, fsal, + arkstep_mem, nfe_expected, nfi_expected); + if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; - numfails += check_rhs_evals(arkstep_mem, nfe_expected, nfi_expected); + numfails += check_rhs_evals(arkstep_mem, + nfe_expected + extra_fe_evals, + nfi_expected + extra_fi_evals); - std::cout << "--------------------" << std::endl; + std::cout << "--------------------" << std::endl; + } // -------- // Clean up // -------- ARKStepFree(&arkstep_mem); - if (type == method_type::impl || type == method_type::imex) + if (m_type == method_type::impl || m_type == method_type::imex) { SUNLinSolFree(LS); SUNMatDestroy(A); @@ -420,7 +608,7 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, } int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, - int& stages, bool& explicit_first_stage, + int& stages, int& order, bool& explicit_first_stage, bool& stiffly_accurate, bool& fsal) { stages = 0; @@ -432,6 +620,16 @@ int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, return 1; } + // Built-in ARK methods have the same order for Bi and Be + order = 0; + if (Bi) { order = Bi->q; } + else if (Be) { order= Be->q; } + else + { + std::cerr << "ERROR: Both Butcher tables are NULL!" << std::endl; + return 1; + } + // Check for explicit first stage explicit_first_stage = true; if (Bi) @@ -472,7 +670,7 @@ int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, return 0; } -int expected_rhs_evals(method_type type, int interp_type, int stages, +int expected_rhs_evals(method_type m_type, interp_type i_type, int stages, bool explicit_first_stage, bool stiffly_accurate, bool fsal, void* arkstep_mem, long int& nfe_expected, long int& nfi_expected) @@ -485,7 +683,7 @@ int expected_rhs_evals(method_type type, int interp_type, int stages, if (check_flag(&flag, "ARKStepGetNumSteps", 1)) return 1; long int nni = 0; - if (type == method_type::impl || type == method_type::imex) + if (m_type == method_type::impl || m_type == method_type::imex) { flag = ARKStepGetNumNonlinSolvIters(arkstep_mem, &nni); if (check_flag(&flag, "ARKStepGetNumNonlinSolvIters", 1)) return 1; @@ -493,7 +691,7 @@ int expected_rhs_evals(method_type type, int interp_type, int stages, // Expected number of explicit functions evaluations nfe_expected = 0; - if (type == method_type::expl || type == method_type::imex) + if (m_type == method_type::expl || m_type == method_type::imex) { if (fsal) { @@ -505,7 +703,7 @@ int expected_rhs_evals(method_type type, int interp_type, int stages, nfe_expected = stages * nst; } - if (interp_type == 0 && !explicit_first_stage) + if (i_type == interp_type::hermite && !explicit_first_stage) { if (stiffly_accurate) { @@ -522,7 +720,7 @@ int expected_rhs_evals(method_type type, int interp_type, int stages, // Expected number of implicit functions evaluations nfi_expected = 0; - if (type == method_type::impl || type == method_type::imex) + if (m_type == method_type::impl || m_type == method_type::imex) { if (fsal) { @@ -534,7 +732,7 @@ int expected_rhs_evals(method_type type, int interp_type, int stages, nfi_expected = stages * nst + nni; } - if (interp_type == 0 && !explicit_first_stage) + if (i_type == interp_type::hermite && !explicit_first_stage) { if (stiffly_accurate) { @@ -577,7 +775,7 @@ int check_rhs_evals(void* arkstep_mem, long int nfe_expected, if (nfe != nfe_expected || nfi != nfi_expected) { - std::cerr << ">>> Check failed <<<" << std::endl; + std::cout << ">>> Check failed <<<" << std::endl; return 1; } From 26dda470d3be1eefac41444cb67110cd059e263d Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 3 Aug 2023 18:26:50 -0700 Subject: [PATCH 19/92] add ERKStep RHS eval test --- .../arkode/CXX_serial/CMakeLists.txt | 1 + .../CXX_serial/ark_test_dahlquist_ark.cpp | 41 +- .../CXX_serial/ark_test_dahlquist_erk.cpp | 535 ++++++++++++++++++ 3 files changed, 562 insertions(+), 15 deletions(-) create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp diff --git a/test/unit_tests/arkode/CXX_serial/CMakeLists.txt b/test/unit_tests/arkode/CXX_serial/CMakeLists.txt index 01a410f89c..a9466ddf6a 100644 --- a/test/unit_tests/arkode/CXX_serial/CMakeLists.txt +++ b/test/unit_tests/arkode/CXX_serial/CMakeLists.txt @@ -19,6 +19,7 @@ set(unit_tests "ark_test_analytic_sys_mri.cpp\;0" "ark_test_analytic_sys_mri.cpp\;1" "ark_test_dahlquist_ark.cpp\;" + "ark_test_dahlquist_erk.cpp\;" "ark_test_dahlquist_mri.cpp\;" "ark_test_butcher.cpp\;" "ark_test_getjac.cpp\;" diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp index 5401e5acf5..1099144e9d 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -11,7 +11,7 @@ * SPDX-License-Identifier: BSD-3-Clause * SUNDIALS Copyright End * --------------------------------------------------------------------------- - * IMEX multirate Dahlquist problem: + * IMEX Dahlquist problem: * * y' = lambda_e * y + lambda_i * y * ---------------------------------------------------------------------------*/ @@ -107,8 +107,8 @@ int expected_rhs_evals(method_type m_type, interp_type i_type, int stages, bool fsal, void* arkstep_mem, long int& nfe_expected, long int& nfi_expected); -int check_rhs_evals(void* arkstep_mem, long int nfe_expected, - long int nfi_expected); +int check_rhs_evals(method_type m_type, void* arkstep_mem, + long int nfe_expected, long int nfi_expected); // ----------------------------------------------------------------------------- // Main Program @@ -495,7 +495,7 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, arkstep_mem,nfe_expected, nfi_expected); if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; - numfails += check_rhs_evals(arkstep_mem, nfe_expected, nfi_expected); + numfails += check_rhs_evals(m_type, arkstep_mem, nfe_expected, nfi_expected); if (numfails) { @@ -559,7 +559,7 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, } } - numfails += check_rhs_evals(arkstep_mem, + numfails += check_rhs_evals(m_type, arkstep_mem, nfe_expected + extra_fe_evals, nfi_expected + extra_fi_evals); @@ -585,7 +585,7 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, arkstep_mem, nfe_expected, nfi_expected); if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; - numfails += check_rhs_evals(arkstep_mem, + numfails += check_rhs_evals(m_type, arkstep_mem, nfe_expected + extra_fe_evals, nfi_expected + extra_fi_evals); @@ -748,13 +748,17 @@ int expected_rhs_evals(method_type m_type, interp_type i_type, int stages, } std::cout << "Steps: " << nst << std::endl; - std::cout << "NLS iters: " << nni << std::endl; + + if (m_type == method_type::impl || m_type == method_type::imex) + { + std::cout << "NLS iters: " << nni << std::endl; + } return 0; } -int check_rhs_evals(void* arkstep_mem, long int nfe_expected, - long int nfi_expected) +int check_rhs_evals(method_type m_type, void* arkstep_mem, + long int nfe_expected, long int nfi_expected) { int flag = 0; @@ -766,12 +770,19 @@ int check_rhs_evals(void* arkstep_mem, long int nfe_expected, flag = ARKStepGetNumRhsEvals(arkstep_mem, &nfe, &nfi); if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) return 1; - std::cout << "Fe RHS evals:\n" - << " actual: " << nfe << "\n" - << " expected: " << nfe_expected << "\n"; - std::cout << "Fi RHS evals:\n" - << " actual: " << nfi << "\n" - << " expected: " << nfi_expected << "\n"; + + if (m_type == method_type::expl || m_type == method_type::imex) + { + std::cout << "Fe RHS evals:\n" + << " actual: " << nfe << "\n" + << " expected: " << nfe_expected << "\n"; + } + if (m_type == method_type::impl || m_type == method_type::imex) + { + std::cout << "Fi RHS evals:\n" + << " actual: " << nfi << "\n" + << " expected: " << nfi_expected << "\n"; + } if (nfe != nfe_expected || nfi != nfi_expected) { diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp new file mode 100644 index 0000000000..90b9cdbcb6 --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp @@ -0,0 +1,535 @@ +/* --------------------------------------------------------------------------- + * Programmer(s): David J. Gardner @ LLNL + * --------------------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2023, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * --------------------------------------------------------------------------- + * Dahlquist problem: + * + * y' = lambda_e * y + * ---------------------------------------------------------------------------*/ + +// Header files +#include +#include +#include +#include +#include + +#include +#include + +#if defined(SUNDIALS_EXTENDED_PRECISION) +#define GSYM "Lg" +#define ESYM "Le" +#define FSYM "Lf" +#else +#define GSYM "g" +#define ESYM "e" +#define FSYM "f" +#endif + +// Constants +#define NEG_ONE SUN_RCONST(-1.0) +#define ZERO SUN_RCONST(0.0) +#define ONE SUN_RCONST(1.0) +#define TWO SUN_RCONST(2.0) + +enum class interp_type +{ + hermite, + lagrange +}; + +// Problem parameters +struct ProblemData +{ + sunrealtype lambda_e = NEG_ONE; + sunrealtype lambda_i = NEG_ONE; +}; + +// Problem options +struct ProblemOptions +{ + // Initial time + sunrealtype t0 = ZERO; + + // Relative and absolute tolerances + sunrealtype reltol = SUN_RCONST(1.0e-4); + sunrealtype abstol = SUN_RCONST(1.0e-6); + + // Step size + sunrealtype h = SUN_RCONST(0.01); + + // Interpolant type + // 0 = Hermite + // 1 = Lagrange + interp_type i_type = interp_type::hermite; +}; + +// User-supplied Functions called by the solver +int fe(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data); + +// Private function to check function return values +int check_flag(void* flagvalue, const std::string funcname, int opt); + +// Test drivers +int run_tests(ARKodeButcherTable Be, ProblemData& prob_data, + ProblemOptions& prob_opts, sundials::Context& sunctx); + +int get_method_properties(ARKodeButcherTable Be, int& stages, int& order, + bool& explicit_first_stage, bool& stiffly_accurate, + bool& fsal); + +int expected_rhs_evals(interp_type i_type, int stages, + bool explicit_first_stage, bool stiffly_accurate, + bool fsal, void* erkstep_mem, long int& nfe_expected); + +int check_rhs_evals(void* erkstep_mem, long int nfe_expected); + +// ----------------------------------------------------------------------------- +// Main Program +// ----------------------------------------------------------------------------- + +int main(int argc, char* argv[]) +{ + // Problem data and options structures + ProblemData prob_data; + ProblemOptions prob_opts; + + // Check for inputs + if (argc > 1) + { + if (std::stoi(argv[1]) == 0) + { + prob_opts.i_type = interp_type::hermite; + } + else + { + prob_opts.i_type = interp_type::lagrange; + } + } + + // Output problem setup + std::cout << "\nDahlquist ODE test problem:\n" + << " lambda expl = " << prob_data.lambda_e << "\n" + << " step size = " << prob_opts.h << "\n" + << " relative tol = " << prob_opts.reltol << "\n" + << " absolute tol = " << prob_opts.abstol << "\n"; + if (prob_opts.i_type == interp_type::hermite) + { + std::cout << " interp type = Hermite\n"; + } + else + { + std::cout << " interp type = Lagrange\n"; + } + + // Create SUNDIALS context + sundials::Context sunctx; + + // Test methods + int flag, numfails = 0; + + ARKodeButcherTable Be = nullptr; + + int stages, order; + bool explicit_first_stage, stiffly_accurate, fsal; + + // -------- + // Explicit + // -------- + + std::cout << "\n========================\n" + << "Test explicit RK methods\n" + << "========================\n"; + + Be = ARKodeButcherTable_Alloc(1, SUNFALSE); + Be->A[0][0] = ZERO; + Be->b[0] = ONE; + Be->c[0] = ZERO; + Be->q = 1; + + flag = get_method_properties(Be, stages, order, explicit_first_stage, + stiffly_accurate, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + + std::cout << "\n========================" << std::endl; + std::cout << "Explicit Euler" << std::endl; + std::cout << " stages: " << stages << std::endl; + std::cout << " order: " << order << std::endl; + std::cout << " explicit 1st stage: " << explicit_first_stage << std::endl; + std::cout << " stiffly accurate: " << stiffly_accurate << std::endl; + std::cout << " first same as last: " << fsal << std::endl; + std::cout << "========================" << std::endl; + + numfails += run_tests(Be, prob_data, prob_opts, sunctx); + + ARKodeButcherTable_Free(Be); + Be = nullptr; + + for (int i = ARKODE_MIN_ERK_NUM; i <= ARKODE_MAX_ERK_NUM; i++) + { + Be = ARKodeButcherTable_LoadERK(static_cast(i)); + flag = get_method_properties(Be, stages, order, explicit_first_stage, + stiffly_accurate, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + + std::cout << "\n========================" << std::endl; + std::cout << "ERK Table ID " << i << std::endl; + std::cout << " stages: " << stages << std::endl; + std::cout << " order: " << order << std::endl; + std::cout << " explicit 1st stage: " << explicit_first_stage << std::endl; + std::cout << " stiffly accurate: " << stiffly_accurate << std::endl; + std::cout << " first same as last: " << fsal << std::endl; + std::cout << "========================" << std::endl; + + numfails += run_tests(Be, prob_data, prob_opts, sunctx); + + ARKodeButcherTable_Free(Be); + Be = nullptr; + } + + if (numfails) { std::cout << "\n\nFailed " << numfails << " tests!\n"; } + else { std::cout << "\n\nAll tests passed!\n"; } + + // Return test status + return numfails; +} + +// ----------------------------------------------------------------------------- +// Test drivers +// ----------------------------------------------------------------------------- + +int run_tests(ARKodeButcherTable Be, ProblemData& prob_data, + ProblemOptions& prob_opts, sundials::Context& sunctx) +{ + // Reusable error-checking flag + int flag; + + // Test failure counter + int numfails = 0; + + // Get method properties + int stages, order; + bool explicit_first_stage, stiffly_accurate, fsal; + flag = get_method_properties(Be, stages, order, explicit_first_stage, + stiffly_accurate, fsal); + if (check_flag(&flag, "get_method_properties", 1)) return 1; + + // Create initial condition vector + N_Vector y = N_VNew_Serial(1, sunctx); + if (check_flag((void*)y, "N_VNew_Serial", 0)) return 1; + + N_VConst(SUN_RCONST(1.0), y); + + // ----------------- + // Create integrator + // ----------------- + + // Create integrator based on type + void* erkstep_mem = nullptr; + + erkstep_mem = ERKStepCreate(fe, prob_opts.t0, y, sunctx); + if (check_flag((void*)erkstep_mem, "ERKStepCreate", 0)) return 1; + + // Set user data + flag = ERKStepSetUserData(erkstep_mem, &prob_data); + if (check_flag(&flag, "ERKStepSetUserData", 1)) return 1; + + // Specify tolerances + flag = ERKStepSStolerances(erkstep_mem, prob_opts.reltol, prob_opts.abstol); + if (check_flag(&flag, "ERKStepSStolerances", 1)) return 1; + + // Specify fixed time step size + flag = ERKStepSetFixedStep(erkstep_mem, prob_opts.h); + if (check_flag(&flag, "ERKStepSetFixedStep", 1)) return 1; + + // Lagrange interpolant (removes additional RHS evaluation with DIRK methods) + if (prob_opts.i_type == interp_type::lagrange) + { + flag = ERKStepSetInterpolantType(erkstep_mem, ARK_INTERP_LAGRANGE); + if (check_flag(&flag, "ERKStepSetInterpolantType", 1)) return 1; + } + + // Attach Butcher tables + flag = ERKStepSetTable(erkstep_mem, Be); + if (check_flag(&flag, "ERKStepSetTables", 1)) return 1; + + // -------------- + // Evolve in time + // -------------- + + sunrealtype t_ret = prob_opts.t0; + sunrealtype t_out = 3 * prob_opts.h; + + long int nfe_expected; + + for (int i = 0; i < 3; i++) + { + std::cout << "--------------------" << std::endl; + + // Advance in time + flag = ERKStepEvolve(erkstep_mem, t_out, y, &t_ret, ARK_ONE_STEP); + if (check_flag(&flag, "ERKStepEvolve", 1)) return 1; + + // Update output time + t_out += prob_opts.h; + + // Check statistics + flag = expected_rhs_evals(prob_opts.i_type, stages, + explicit_first_stage, stiffly_accurate, fsal, + erkstep_mem,nfe_expected); + if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; + + numfails += check_rhs_evals(erkstep_mem, nfe_expected); + + if (numfails) + { + std::cout << "Failed " << numfails << " checks\n"; + break; + } + } + + // ---------------- + // Get dense output + // ---------------- + + long int extra_fe_evals = 0; + + if (numfails == 0) + { + std::cout << "--------------------" << std::endl; + std::cout << "Dense Output" << std::endl; + + sunrealtype h_last; + flag = ERKStepGetLastStep(erkstep_mem, &h_last); + if (check_flag(&flag, "ERKStepGetLastStep", 1)) return 1; + + flag = ERKStepGetDky(erkstep_mem, t_ret - h_last / TWO, 0, y); + if (check_flag(&flag, "ERKStepGetDky", 1)) return 1; + + // Stiffly accurate (and FSAL) methods do not require an additional RHS + // evaluation to get the new RHS value at the end of a step for dense + // output. However, for methods with an explicit first stage this evaluation + // can be used at the start of the next step. For methods with an implicit + // first stage that are not stiffly accurate this evaluation replaces one + // that would happen at the end of the next step (this is accounted for in + // expected_rhs_evals after the next step is taken below). + if (prob_opts.i_type == interp_type::hermite && !stiffly_accurate) + { + nfe_expected++; + } + + // Higher order methods require additional RHS evaluations for dense output + // with the Hermite interpolant (note default degree is order - 1, except + // for first order where the degree is 1. These are not accounted for in + // explicit_rhs_evals and must be carried forward. + int degree = (order == 1) ? 1 : order - 1; + if (prob_opts.i_type == interp_type::hermite && degree > 3) + { + extra_fe_evals += (degree == 4) ? 1 : 4; + } + + numfails += check_rhs_evals(erkstep_mem, + nfe_expected + extra_fe_evals); + + std::cout << "--------------------" << std::endl; + } + + // -------------------- + // Additional time step + // -------------------- + + if (numfails == 0) + { + // Advance in time + flag = ERKStepEvolve(erkstep_mem, t_out, y, &t_ret, ARK_ONE_STEP); + if (check_flag(&flag, "ERKStepEvolve", 1)) return 1; + + // Update output time + t_out += prob_opts.h; + + // Check statistics + flag = expected_rhs_evals(prob_opts.i_type, stages, + explicit_first_stage, stiffly_accurate, fsal, + erkstep_mem, nfe_expected); + if (check_flag(&flag, "expected_rhs_evals", 1)) return 1; + + numfails += check_rhs_evals(erkstep_mem, + nfe_expected + extra_fe_evals); + + std::cout << "--------------------" << std::endl; + } + + // -------- + // Clean up + // -------- + + ERKStepFree(&erkstep_mem); + N_VDestroy(y); + + return numfails; +} + +int get_method_properties(ARKodeButcherTable Be, int& stages, int& order, + bool& explicit_first_stage, bool& stiffly_accurate, + bool& fsal) +{ + stages = 0; + if (Be) { stages = Be->stages; } + else + { + std::cerr << "ERROR: Butcher table is NULL!" << std::endl; + return 1; + } + + order = 0; + if (Be) { order= Be->q; } + else + { + std::cerr << "ERROR: Both Butcher tables are NULL!" << std::endl; + return 1; + } + + // Check for explicit first stage + explicit_first_stage = true; + if (std::abs(Be->A[0][0]) > ZERO) { explicit_first_stage = false; } + + // Check for stiffly accurate method + stiffly_accurate = true; + for (int i = 0; i < stages; i++) + { + if (std::abs(Be->b[i] - Be->A[stages - 1][i]) > ZERO) + { + stiffly_accurate = false; + } + } + + // Check for first same as last (FSAL) property + fsal = explicit_first_stage && stiffly_accurate; + + return 0; +} + +int expected_rhs_evals(interp_type i_type, int stages, + bool explicit_first_stage, bool stiffly_accurate, + bool fsal, void* erkstep_mem, + long int& nfe_expected) +{ + int flag = 0; + + // Get number of steps and nonlinear solver iterations + long int nst = 0; + flag = ERKStepGetNumSteps(erkstep_mem, &nst); + if (check_flag(&flag, "ERKStepGetNumSteps", 1)) return 1; + + // Expected number of explicit functions evaluations + nfe_expected = 0; + if (fsal) + { + // Save one function evaluation after first step + nfe_expected = stages + (stages - 1) * (nst - 1); + } + else + { + nfe_expected = stages * nst; + } + + if (i_type == interp_type::hermite && !explicit_first_stage) + { + if (stiffly_accurate) + { + // One extra evaluation in the first step only + nfe_expected++; + } + else + { + // One extra evaluation in each step + nfe_expected += nst; + } + } + + std::cout << "Steps: " << nst << std::endl; + + return 0; +} + +int check_rhs_evals(void* erkstep_mem, long int nfe_expected) +{ + int flag = 0; + + long int nst = 0; + flag = ERKStepGetNumSteps(erkstep_mem, &nst); + if (check_flag(&flag, "ERKStepGetNumSteps", 1)) return 1; + + long int nfe; + flag = ERKStepGetNumRhsEvals(erkstep_mem, &nfe); + if (check_flag(&flag, "ERKStepGetNumRhsEvals", 1)) return 1; + + std::cout << "Fe RHS evals:\n" + << " actual: " << nfe << "\n" + << " expected: " << nfe_expected << "\n"; + + if (nfe != nfe_expected) + { + std::cout << ">>> Check failed <<<" << std::endl; + return 1; + } + + return 0; +} + +// ----------------------------------------------------------------------------- +// Functions called by the solver +// ----------------------------------------------------------------------------- + +// Explicit ODE RHS function fe(t,y) +int fe(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data) +{ + sunrealtype* y_data = N_VGetArrayPointer(y); + sunrealtype* yd_data = N_VGetArrayPointer(ydot); + ProblemData* prob_data = static_cast(user_data); + + yd_data[0] = prob_data->lambda_e * y_data[0]; + + return 0; +} + +// ----------------------------------------------------------------------------- +// Utility functions +// ----------------------------------------------------------------------------- + +// Check function return value +int check_flag(void* flagvalue, const std::string funcname, int opt) +{ + int* errflag; + + // Check if function returned NULL pointer - no memory allocated + if (opt == 0 && flagvalue == nullptr) + { + std::cerr << "\nMEMORY_ERROR: " << funcname + << " failed - returned NULL pointer\n\n"; + return 1; + } + // Check if flag < 0 + else if (opt == 1) + { + errflag = (int*)flagvalue; + if (*errflag < 0) + { + std::cerr << "\nSUNDIALS_ERROR: " << funcname + << " failed with flag = " << *errflag << "\n\n"; + return 1; + } + } + + return 0; +} From 5342d7743e640be92cc173b1670884ebcf614940 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 8 Aug 2023 20:43:21 -0500 Subject: [PATCH 20/92] add M and M(t) to stage test --- .../CXX_serial/ark_test_dahlquist_ark.cpp | 152 ++++++++++++++---- 1 file changed, 125 insertions(+), 27 deletions(-) diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp index 1099144e9d..fecde23e24 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -13,7 +13,11 @@ * --------------------------------------------------------------------------- * IMEX Dahlquist problem: * - * y' = lambda_e * y + lambda_i * y + * 1) y' = lambda_e * y + lambda_i * y + * 2) M y' = M (lambda_e * y + lambda_i * y) + * 3) M(t) y' = M(t) (lambda_e * y + lambda_i * y) + * + * >>>> WHY do FE and BE fail currently? <<<<<< * ---------------------------------------------------------------------------*/ // Header files @@ -45,6 +49,13 @@ #define TWO SUN_RCONST(2.0) // Method types +enum class prob_type +{ + identity, + fixed_mass_matrix, + time_dependent_mass_matrix +}; + enum class method_type { expl, @@ -63,6 +74,7 @@ struct ProblemData { sunrealtype lambda_e = NEG_ONE; sunrealtype lambda_i = NEG_ONE; + prob_type p_type = prob_type::identity; }; // Problem options @@ -89,6 +101,8 @@ int fe(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data); int fi(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data); int Ji(sunrealtype t, N_Vector y, N_Vector fy, SUNMatrix J, void* user_data, N_Vector tmp1, N_Vector tmp2, N_Vector tmp3); +int MassMatrix(sunrealtype t, SUNMatrix M, void *user_data, N_Vector tmp1, + N_Vector tmp2, N_Vector tmp3); // Private function to check function return values int check_flag(void* flagvalue, const std::string funcname, int opt); @@ -123,19 +137,47 @@ int main(int argc, char* argv[]) // Check for inputs if (argc > 1) { - if (std::stoi(argv[1]) == 0) + if (std::stoi(argv[1]) == 1) { - prob_opts.i_type = interp_type::hermite; + prob_data.p_type = prob_type::fixed_mass_matrix; + } + else if (std::stoi(argv[1]) == 2) + { + prob_data.p_type = prob_type::time_dependent_mass_matrix; } else + { + prob_data.p_type = prob_type::identity; + } + } + + if (argc > 2) + { + if (std::stoi(argv[2]) == 1) { prob_opts.i_type = interp_type::lagrange; } + else + { + prob_opts.i_type = interp_type::hermite; + } } // Output problem setup - std::cout << "\nDahlquist ODE test problem:\n" - << " lambda expl = " << prob_data.lambda_e << "\n" + std::cout << "\nDahlquist ODE test problem:\n"; + if (prob_data.p_type == prob_type::identity) + { + std::cout << " problem type = Identity\n"; + } + else if (prob_data.p_type == prob_type::fixed_mass_matrix) + { + std::cout << " problem type = Fixed mass matrix\n"; + } + else + { + std::cout << " problem type = Time-dependent mass matrix\n"; + } + std::cout << " lambda expl = " << prob_data.lambda_e << "\n" << " lambda impl = " << prob_data.lambda_i << "\n" << " step size = " << prob_opts.h << "\n" << " relative tol = " << prob_opts.reltol << "\n" @@ -396,20 +438,6 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, N_VConst(SUN_RCONST(1.0), y); - // Create matrix and linear solver (if necessary) - SUNMatrix A = nullptr; - SUNLinearSolver LS = nullptr; - - if (m_type == method_type::impl || m_type == method_type::imex) - { - // Initialize dense matrix data structures and solvers - A = SUNDenseMatrix(1, 1, sunctx); - if (check_flag((void*)A, "SUNDenseMatrix", 0)) return 1; - - LS = SUNLinSol_Dense(y, A, sunctx); - if (check_flag((void*)LS, "SUNLinSol_Dense", 0)) return 1; - } - // ----------------- // Create integrator // ----------------- @@ -443,6 +471,10 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, flag = ARKStepSetFixedStep(arkstep_mem, prob_opts.h); if (check_flag(&flag, "ARKStepSetFixedStep", 1)) return 1; + // Attach Butcher tables <<<<<<< correct method order? + flag = ARKStepSetTables(arkstep_mem, 1, 0, Bi, Be); + if (check_flag(&flag, "ARKStepSetTables", 1)) return 1; + // Lagrange interpolant (removes additional RHS evaluation with DIRK methods) if (prob_opts.i_type == interp_type::lagrange) { @@ -450,8 +482,19 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, if (check_flag(&flag, "ARKStepSetInterpolantType", 1)) return 1; } + // Create matrix and linear solver (if necessary) + SUNMatrix A = nullptr; + SUNLinearSolver LS = nullptr; + if (m_type == method_type::impl || m_type == method_type::imex) { + // Initialize dense matrix data structures and solvers + A = SUNDenseMatrix(1, 1, sunctx); + if (check_flag((void*)A, "SUNDenseMatrix", 0)) return 1; + + LS = SUNLinSol_Dense(y, A, sunctx); + if (check_flag((void*)LS, "SUNLinSol_Dense", 0)) return 1; + // Attach linear solver flag = ARKStepSetLinearSolver(arkstep_mem, LS, A); if (check_flag(&flag, "ARKStepSetLinearSolver", 1)) return 1; @@ -465,9 +508,29 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, if (check_flag(&flag, "ARKStepSetLinear", 1)) return 1; } - // Attach Butcher tables - flag = ARKStepSetTables(arkstep_mem, 1, 0, Bi, Be); - if (check_flag(&flag, "ARKStepSetTables", 1)) return 1; + // Create mass matrix and linear solver (if necessary) + SUNMatrix M = nullptr; + SUNLinearSolver MLS = nullptr; + + if (prob_data.p_type == prob_type::fixed_mass_matrix || + prob_data.p_type == prob_type::time_dependent_mass_matrix) + { + M = SUNDenseMatrix(1, 1, sunctx); + if (check_flag((void *)M, "SUNDenseMatrix", 0)) return 1; + + MLS = SUNLinSol_Dense(y, M, sunctx); + if (check_flag((void *)MLS, "SUNLinSol_Dense", 0)) return 1; + + int time_dep = 0; + if (prob_data.p_type == prob_type::time_dependent_mass_matrix) + time_dep = 1; + + flag = ARKStepSetMassLinearSolver(arkstep_mem, MLS, M, time_dep); + if (check_flag(&flag, "ARKStepSetMassLinearSolver", 1)) return 1; + + flag = ARKStepSetMassFn(arkstep_mem, MassMatrix); + if (check_flag(&flag, "ARKStepSetMassFn", 1)) return 1; + } // -------------- // Evolve in time @@ -597,11 +660,10 @@ int run_tests(ARKodeButcherTable Be, ARKodeButcherTable Bi, // -------- ARKStepFree(&arkstep_mem); - if (m_type == method_type::impl || m_type == method_type::imex) - { - SUNLinSolFree(LS); - SUNMatDestroy(A); - } + SUNLinSolFree(LS); + SUNMatDestroy(A); + SUNLinSolFree(MLS); + SUNMatDestroy(M); N_VDestroy(y); return numfails; @@ -806,6 +868,15 @@ int fe(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data) yd_data[0] = prob_data->lambda_e * y_data[0]; + if (prob_data->p_type == prob_type::fixed_mass_matrix) + { + yd_data[0] *= TWO; + } + else if (prob_data->p_type == prob_type::time_dependent_mass_matrix) + { + yd_data[0] *= TWO + std::cos(t); + } + return 0; } @@ -818,6 +889,15 @@ int fi(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data) yd_data[0] = prob_data->lambda_i * y_data[0]; + if (prob_data->p_type == prob_type::fixed_mass_matrix) + { + yd_data[0] *= TWO; + } + else if (prob_data->p_type == prob_type::time_dependent_mass_matrix) + { + yd_data[0] *= TWO + std::cos(t); + } + return 0; } @@ -833,6 +913,24 @@ int Ji(sunrealtype t, N_Vector y, N_Vector fy, SUNMatrix J, void* user_data, return 0; } +int MassMatrix(sunrealtype t, SUNMatrix M, void *user_data, N_Vector tmp1, + N_Vector tmp2, N_Vector tmp3) +{ + sunrealtype* M_data = SUNDenseMatrix_Data(M); + ProblemData* prob_data = static_cast(user_data); + + if (prob_data->p_type == prob_type::fixed_mass_matrix) + { + M_data[0] = TWO; + } + else + { + M_data[0] = TWO + std::cos(t); + } + + return 0; +} + // ----------------------------------------------------------------------------- // Utility functions // ----------------------------------------------------------------------------- From 2114001b15d4c6623efd8f45064db7aec997678d Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 8 Aug 2023 20:44:03 -0500 Subject: [PATCH 21/92] fix bug when using explicit method with fixed M --- src/arkode/arkode.c | 16 ++++++++++++++-- src/arkode/arkode_arkstep.c | 17 +++++++---------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 2f53a6393a..9374d9a8bf 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -854,11 +854,23 @@ int arkEvolve(ARKodeMem ark_mem, realtype tout, N_Vector yout, >0 => step encountered recoverable failure; reduce step if possible <0 => step encountered unrecoverable failure */ kflag = ark_mem->step((void*) ark_mem, &dsm, &nflag); - if (kflag < 0) break; +#if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_INFO, + "ARKODE::arkEvolve", "step return", + "step = %li, kflag = %d, nflag = %d", + ark_mem->nst, kflag, nflag); +#endif + if (kflag < 0) break; /* handle solver convergence failures */ kflag = arkCheckConvergence(ark_mem, &nflag, &ncf); - if (kflag < 0) break; +#if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_INFO, + "ARKODE::arkEvolve", "check convergence return", + "step = %li, kflag = %d, nflag = %d, ncf = %d", + ark_mem->nst, kflag, nflag, ncf); +#endif + if (kflag < 0) break; /* Perform relaxation: - computes relaxation parameter diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 415563ae20..fabb046c5a 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -2009,15 +2009,12 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) This can fail recoverably due to nonconvergence of the mass matrix solve, so handle that appropriately. */ if (step_mem->mass_type == MASS_FIXED) { - retval = arkStep_ComputeSolutions_MassFixed(ark_mem, dsmPtr); + *nflagPtr = arkStep_ComputeSolutions_MassFixed(ark_mem, dsmPtr); } else { - retval = arkStep_ComputeSolutions(ark_mem, dsmPtr); - } - if (retval < 0) return(retval); - if (retval > 0) { - *nflagPtr = retval; - return(TRY_AGAIN); + *nflagPtr = arkStep_ComputeSolutions(ark_mem, dsmPtr); } + if (*nflagPtr < 0) return(retval); + if (*nflagPtr > 0) return(TRY_AGAIN); #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, @@ -2033,9 +2030,9 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_INFO SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_INFO, - "ARKODE::arkStep_TakeStep_Z", "error-test", - "step = %li, h = %"RSYM", dsm = %"RSYM, - ark_mem->nst, ark_mem->h, *dsmPtr); + "ARKODE::arkStep_TakeStep_Z", "end-step", + "step = %li, h = %"RSYM", dsm = %"RSYM", nflag = %d", + ark_mem->nst, ark_mem->h, *dsmPtr, *nflagPtr); #endif return(ARK_SUCCESS); From 0dc100fffa969abfcc1fa48552e32e2ca97666ae Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Fri, 11 Aug 2023 16:22:24 -0700 Subject: [PATCH 22/92] update mass matrix logic in ARKStep fullRHS --- src/arkode/arkode_arkstep.c | 112 ++++++++++++++++++++++++++++++++---- 1 file changed, 101 insertions(+), 11 deletions(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index fabb046c5a..693c73cb0f 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1383,6 +1383,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } + /* apply external polynomial forcing */ if (step_mem->expforcing) { @@ -1392,6 +1393,18 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, arkStep_ApplyForcing(step_mem, t, ONE, &nvec); N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fe[0]); } + + if (step_mem->mass_type == MASS_TIMEDEP) + { + retval = step_mem->msolve((void *) ark_mem, step_mem->Fe[0], + step_mem->nlscoef / ark_mem->h); + if (retval) + { + arkProcessError(ark_mem, ARK_MASSSOLVE_FAIL, "ARKODE::ARKStep", + "arkStep_FullRHS", "Mass matrix solver failure"); + return ARK_MASSSOLVE_FAIL; + } + } } /* call fi if the problem has an implicit component */ @@ -1405,6 +1418,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } + /* apply external polynomial forcing */ if (step_mem->impforcing) { @@ -1414,6 +1428,18 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, arkStep_ApplyForcing(step_mem, t, ONE, &nvec); N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fi[0]); } + + if (step_mem->mass_type == MASS_TIMEDEP) + { + retval = step_mem->msolve((void *) ark_mem, step_mem->Fi[0], + step_mem->nlscoef / ark_mem->h); + if (retval) + { + arkProcessError(ark_mem, ARK_MASSSOLVE_FAIL, "ARKODE::ARKStep", + "arkStep_FullRHS", "Mass matrix solver failure"); + return ARK_MASSSOLVE_FAIL; + } + } } } @@ -1434,6 +1460,18 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, N_VScale(ONE, step_mem->Fe[0], f); } + if (step_mem->mass_type == MASS_FIXED) + { + retval = step_mem->msolve((void *) ark_mem, f, + step_mem->nlscoef / ark_mem->h); + if (retval) + { + arkProcessError(ark_mem, ARK_MASSSOLVE_FAIL, "ARKODE::ARKStep", + "arkStep_FullRHS", "Mass matrix solver failure"); + return ARK_MASSSOLVE_FAIL; + } + } + break; @@ -1490,6 +1528,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } + /* apply external polynomial forcing */ if (step_mem->expforcing) { @@ -1499,6 +1538,18 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, arkStep_ApplyForcing(step_mem, t, ONE, &nvec); N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fe[0]); } + + if (step_mem->mass_type == MASS_TIMEDEP) + { + retval = step_mem->msolve((void *) ark_mem, step_mem->Fe[0], + step_mem->nlscoef / ark_mem->h); + if (retval) + { + arkProcessError(ark_mem, ARK_MASSSOLVE_FAIL, "ARKODE::ARKStep", + "arkStep_FullRHS", "Mass matrix solver failure"); + return ARK_MASSSOLVE_FAIL; + } + } } /* call fi if the problem has an implicit component */ @@ -1512,6 +1563,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } + /* apply external polynomial forcing */ if (step_mem->impforcing) { @@ -1521,6 +1573,18 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, arkStep_ApplyForcing(step_mem, t, ONE, &nvec); N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fi[0]); } + + if (step_mem->mass_type == MASS_TIMEDEP) + { + retval = step_mem->msolve((void *) ark_mem, step_mem->Fi[0], + step_mem->nlscoef / ark_mem->h); + if (retval) + { + arkProcessError(ark_mem, ARK_MASSSOLVE_FAIL, "ARKODE::ARKStep", + "arkStep_FullRHS", "Mass matrix solver failure"); + return ARK_MASSSOLVE_FAIL; + } + } } } else @@ -1553,6 +1617,18 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, N_VScale(ONE, step_mem->Fe[0], f); } + if (step_mem->mass_type == MASS_FIXED) + { + retval = step_mem->msolve((void *) ark_mem, f, + step_mem->nlscoef / ark_mem->h); + if (retval) + { + arkProcessError(ark_mem, ARK_MASSSOLVE_FAIL, "ARKODE::ARKStep", + "arkStep_FullRHS", "Mass matrix solver failure"); + return ARK_MASSSOLVE_FAIL; + } + } + break; /* ARK_FULLRHS_OTHER: called for dense output in-between steps or for @@ -1607,6 +1683,19 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, N_VScale(ONE, ark_mem->tempv2, f); } + /* if M != I, then update f = M^{-1}*f */ + if (step_mem->mass_type != MASS_IDENTITY) + { + retval = step_mem->msolve((void *) ark_mem, f, + step_mem->nlscoef / ark_mem->h); + if (retval) + { + arkProcessError(ark_mem, ARK_MASSSOLVE_FAIL, "ARKODE::ARKStep", + "arkStep_FullRHS", "Mass matrix solver failure"); + return ARK_MASSSOLVE_FAIL; + } + } + break; default: @@ -1616,17 +1705,6 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, return(ARK_RHSFUNC_FAIL); } - /* if M != I, then update f = M^{-1}*f */ - if (step_mem->mass_type != MASS_IDENTITY) { - retval = step_mem->msolve((void *) ark_mem, f, - step_mem->nlscoef/ark_mem->h); - if (retval != ARK_SUCCESS) { - arkProcessError(ark_mem, ARK_MASSSOLVE_FAIL, "ARKODE::ARKStep", - "arkStep_FullRHS", "Mass matrix solver failure"); - return(ARK_MASSSOLVE_FAIL); - } - } - return(ARK_SUCCESS); } @@ -1995,10 +2073,22 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) /* If the implicit stage was deduced, it already includes M(t)^{-1} */ if (step_mem->implicit && !deduce_stage) { *nflagPtr = step_mem->msolve((void *) ark_mem, step_mem->Fi[is], step_mem->nlscoef); +#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkStep_TakeStep_Z", "M^{-1} implicit RHS", + "Fi[%i] =", is); + N_VPrintFile(step_mem->Fi[is], ARK_LOGGER->debug_fp); +#endif if (*nflagPtr != ARK_SUCCESS) return(TRY_AGAIN); } if (step_mem->explicit) { *nflagPtr = step_mem->msolve((void *) ark_mem, step_mem->Fe[is], step_mem->nlscoef); +#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkStep_TakeStep_Z", "M^{-1} explicit RHS", + "Fe[%i] =", is); + N_VPrintFile(step_mem->Fe[is], ARK_LOGGER->debug_fp); +#endif if (*nflagPtr != ARK_SUCCESS) return(TRY_AGAIN); } } From a3e44cf38c025dc0c4c68328a7f0267c631898f2 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Fri, 11 Aug 2023 18:44:38 -0700 Subject: [PATCH 23/92] update ERK flow chart, start ARK flow chart --- .../source/packages/ARKODE.rst | 171 +++++++++++++++--- 1 file changed, 149 insertions(+), 22 deletions(-) diff --git a/doc/sundials_developers/source/packages/ARKODE.rst b/doc/sundials_developers/source/packages/ARKODE.rst index eba45cdba4..9768a4d250 100644 --- a/doc/sundials_developers/source/packages/ARKODE.rst +++ b/doc/sundials_developers/source/packages/ARKODE.rst @@ -14,12 +14,12 @@ .. _ARKODE.ERKFullRHS: -ERKStep Full RHS Flow -===================== +ERKStep Full RHS +================ Dotted lines signify execution paths that should not be possible. -.. digraph:: fullrhs +.. digraph:: erk_fullrhs node [shape=box] @@ -32,7 +32,6 @@ Dotted lines signify execution paths that should not be possible. start -> h0 h0 -> step1 [label="Yes"] h0 -> f0q1 [label="No"] - f0q1 -> step1 [label="Yes", style="dotted"] f0q1 -> eval1 [label="No"] eval1 -> step1 @@ -47,11 +46,122 @@ Dotted lines signify execution paths that should not be possible. eval2 -> stages1 stages1 -> complete + interp_update [label="Update interpolation module?"]; + lagrange1 [label="Add ycur to history"] + f0q3 [label="Has f(t0, y0) been computed?"]; + update_yn [label="Copy tcur to tn\lCopy ycur to yn\lSet fn_current to False"]; + + complete -> interp_update + interp_update -> update_yn [label="No"] + interp_update -> lagrange1 [label="Lagrange"] + lagrange1 -> update_yn + interp_update -> f0q3 [label="Hermite"] + f0q3 -> update_yn [label="Yes"] + + interp_eval [label="Evaluate interpolant?"] + step2 [label="Start Step 2"]; + f1q1 [label="Has f(t1, y1) been computed?"]; + fsal1 [label="Is the method FSAL?"] + eval3 [label="Evaluate f(t1, y1)\lStore in F[0]"]; + copy1 [label="Copy F[s-1] to F[0]"]; + fcur1 [label="Copy F[0] to fn\lSet fn_current to True"]; + interp_yout [label="Compute yout"] + + update_yn -> interp_eval + interp_eval -> step2 [label="No"] + interp_eval -> interp_yout [label="Lagrange"] + interp_eval -> f1q1 [label="Hermite"] + f1q1 -> fsal1 [label="No"] + fsal1 -> eval3 [label="No"] + eval3 -> fcur1 + fsal1 -> copy1 [label="Yes"] + copy1 -> fcur1 + fcur1 -> interp_yout + interp_yout -> step2 + + f1q2 [label="Has f(t1, y1) been computed?"]; + fsal2 [label="Is the method FSAL?"] + eval4 [label="Evaluate f(t1, y1)\lStore in F[0]"]; + copy2 [label="Copy F[s-1] to F[0]"]; + fcur2 [label="Copy F[0] to fn\lSet fn_current to True"]; + stages2 [label="Compute Stages"] + + step2 -> f1q2 + f1q2 -> stages2 [label="Yes"] + f1q2 -> fsal2 [label="No"] + fsal2 -> copy2 [label="Yes"] + copy2 -> fcur2 + fsal2 -> eval4 [label="No"] + eval4 -> fcur2 + fcur2 -> stages2 + stages2 -> "Complete Step" + + +ARKStep Full RHS +================ + +Dotted lines signify execution paths that should not be possible. + +.. digraph:: ark_fullrhs + + node [shape=box] + + start [label="Initialize fn_current to False"]; + h0 [label="Is h0 provided?", target="_top"]; + f0q1 [label="Has f(t0, y0) been computed?"]; + eval1 [label="Evaluate fe(t0, y0), fi(t0,y0)\lStore in Fe[0], Fi[0]"]; + mass1a [label="Is there a mass matrix?"]; + mass1b [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to fn"]; + mass1c [label="Copy Fe[0] + Fi[0] to fn\lSolve M x = fn\lCopy x to fn"]; + fcur1 [label="Set fn_current to True"]; + step1 [label="Start Step 1"]; + + start -> h0 + h0 -> step1 [label="Yes"] + h0 -> f0q1 [label="No"] + f0q1 -> step1 [label="Yes", style="dotted"] + f0q1 -> eval1 [label="No"] + eval1 -> mass1a + mass1a -> mass1b [label="Yes\lM(t)"] + mass1a -> mass1c [label="Yes\lM"] + mass1a -> fcur1 [label="No"] + mass1b -> fcur1 + mass1c -> fcur1 + fcur1 -> step1 + + f0q2a [label="Is the first stage explicit?\nor\nIs the method stiffly accurate and Hermite interpolation is used?"]; + f0q2b [label="Has f(t0, y0) been computed?"]; + eval2 [label="Evaluate fe(t0, y0), fi(t0,y0)\lStore in Fe[0], Fi[0]"]; + mass2a [label="Is there a mass matrix?"]; + mass2b [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to fn"]; + mass2c [label="Copy Fe[0] + Fi[0] to fn\lSolve M x = fn\lCopy x to fn"]; + fcur2 [label="Set fn_current to True"]; + stages1 [label="Compute Stages"] + complete [label="Complete Step"] + + step1 -> f0q2a + f0q2a -> f0q2b [label="Yes"] + f0q2a -> stages1 [label="No"] + f0q2b -> stages1 [label="Yes"] + f0q2b -> eval2 [label="No"] + eval2 -> mass2a + mass2a -> mass2b [label="Yes\lM(t)"] + mass2a -> mass2c [label="Yes\lM"] + mass2a -> fcur2 [label="No"] + mass2b -> fcur2 + mass2c -> fcur2 + fcur2 -> stages1 + stages1 -> complete + interp_update [label="Update interpolation module?"]; hermite1 [label="Hermite interpolation?"]; lagrange1 [label="Add ycur to history"] f0q3 [label="Has f(t0, y0) been computed?"]; - eval3 [label="Evaluate f(t0, y0)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + eval3 [label="Evaluate fe(t0, y0), fi(t0,y0)\lStore in Fe[0], Fi[0]"]; + mass3a [label="Is there a mass matrix?"]; + mass3b [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to fn"]; + mass3c [label="Copy Fe[0] + Fi[0] to fn\lSolve M x = fn\lCopy x to fn"]; + fcur3 [label="Set fn_current to True"]; update_yn [label="Copy tcur to tn\lCopy ycur to yn\lSet fn_current to False"]; complete -> interp_update @@ -61,44 +171,61 @@ Dotted lines signify execution paths that should not be possible. hermite1 -> f0q3 [label="Yes"] lagrange1 -> update_yn f0q3 -> update_yn [label="Yes"] - f0q3 -> eval3 [label="No", style="dotted"] - eval3 -> update_yn [style="dotted"] + f0q3 -> eval3 [label="No"] + eval3 -> mass3a + mass3a -> mass3b [label="Yes\lM(t)"] + mass3a -> mass3c [label="Yes\lM"] + mass3a -> fcur3 [label="No"] + mass3b -> fcur3 + mass3c -> fcur3 + fcur3 -> update_yn interp [label="Interpolate output?"]; interp_eval [label="Evaluate interpolant"] step2 [label="Start Step 2"]; f1q1 [label="Has f(t1, y1) been computed?"]; hermite2 [label="Hermite interpolation?"]; - fsal1 [label="Is the method FSAL?"] - eval4 [label="Evaluate f(t1, y1)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; - copy1 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + sa [label="Is the method stiffly accurate?"] + eval4 [label="Evaluate fe(t1, y1), fi(t1, y1)\lStore in Fe[0], Fi[0]"]; + mass4a [label="Is there a mass matrix?"]; + mass4b [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]"]; + mass4c [label="Solve M x = fn\lCopy x to fn"]; + copy1 [label="Copy Fe[s-1], Fi[s-1] to Fe[0], Fi[0]"]; + copy2 [label="Copy Fe[0] + Fi[0] to fn"]; + fcur4 [label="Set fn_current to True"]; interp_yout [label="Compute yout"] update_yn -> interp - interp -> interp_yout [label="No"] + interp -> step2 [label="No"] interp -> interp_eval [label="Yes"] interp_eval -> hermite2 hermite2 -> interp_yout [label="No"] hermite2 -> f1q1 [label="Yes"] f1q1 -> interp_yout [label="Yes", style="dotted"] - f1q1 -> fsal1 [label="No"] - fsal1 -> eval4 [label="No"] - fsal1 -> copy1 [label="Yes"] - copy1 -> interp_yout - eval4 -> interp_yout + f1q1 -> sa [label="No"] + sa -> copy1 [label="Yes"] + sa -> eval4 [label="No"] + copy1 -> copy2 + eval4 -> copy2 + copy2 -> mass4a + mass4a -> mass4b [label="Yes\lM(t)"] + mass4a -> mass4c [label="Yes\lM"] + mass4a -> fcur4 [label="No"] + mass4c -> fcur4 + fcur4 -> interp_yout interp_yout -> step2 f1q2 [label="Has f(t1, y1) been computed?"]; - fsal2 [label="Is the method FSAL?"] + fsal [label="Is the method FSAL?"] eval5 [label="Evaluate f(t1, y1)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; - copy2 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + copy3 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\lSet fn_current to True"]; stages2 [label="Compute Stages"] step2 -> f1q2 f1q2 -> stages2 [label="Yes"] - f1q2 -> fsal2 [label="No"] - fsal2 -> copy2 [label="Yes"] - fsal2 -> eval5 [label="No"] - copy2 -> stages2 + f1q2 -> fsal [label="No"] + fsal -> copy3 [label="Yes"] + fsal -> eval5 [label="No"] + copy3 -> stages2 eval5 -> stages2 stages2 -> "Complete Step" From 16fe67eafa49dc08dcb55e41cabc829c2e715995 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 12 Aug 2023 23:38:33 -0700 Subject: [PATCH 24/92] update flow charts --- .../source/packages/ARKODE.rst | 442 ++++++++++-------- 1 file changed, 247 insertions(+), 195 deletions(-) diff --git a/doc/sundials_developers/source/packages/ARKODE.rst b/doc/sundials_developers/source/packages/ARKODE.rst index 9768a4d250..cfd129c30e 100644 --- a/doc/sundials_developers/source/packages/ARKODE.rst +++ b/doc/sundials_developers/source/packages/ARKODE.rst @@ -17,215 +17,267 @@ ERKStep Full RHS ================ -Dotted lines signify execution paths that should not be possible. - .. digraph:: erk_fullrhs node [shape=box] - - start [label="Initialize fn_current to False"]; - h0 [label="Is h0 provided?", target="_top"]; - f0q1 [label="Has f(t0, y0) been computed?"]; - eval1 [label="Evaluate f(t0, y0)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; - step1 [label="Start Step 1"]; - - start -> h0 - h0 -> step1 [label="Yes"] - h0 -> f0q1 [label="No"] - f0q1 -> eval1 [label="No"] - eval1 -> step1 - - f0q2 [label="Has f(t0, y0) been computed?"]; - eval2 [label="Evaluate f(t0, y0)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; + splines=ortho + + // ----------------- + // Before first step + // ----------------- + + init [label="Initialize integrator\lCopy t0, y0 to tn, yn\l"] + f0cur [label="Set fn_current to False", style=filled, fillcolor=tomato1] + h0 [label="Is h0 provided?", target="_top"] + f0_q1 [label="Has f(tn, yn) been computed?"] + eval1 [label="Evaluate f(tn, yn)\lStore in F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=lightskyblue] + fcur1 [label="Set fn_current to True", style=filled, fillcolor=lightgreen] + h0_comp [label="Compute h0"] + start [label="Start Step"] + + init -> f0cur -> h0 + h0 -> start [taillabel="Yes", labeldistance=2, labelangle=45] + h0 -> f0_q1 [taillabel="No", labeldistance=2, labelangle=-45] + f0_q1 -> h0_comp [taillabel="Yes", labeldistance=2, labelangle=-45] + f0_q1 -> eval1 [taillabel="No", labeldistance=2, labelangle=-45] + eval1 -> fcur1 + fcur1 -> h0_comp + h0_comp -> start + + // ---------- + // First step + // ---------- + + f0q2 [label="Has f(tn, yn) been computed?"] + step_q [label="Is this the first step after initial setup?"] + eval2 [label="Evaluate f(tn, yn)\lStore in F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=lightskyblue] + fsal [label="Is the method FSAL?", style=filled, fillcolor=slateblue1] + eval3 [label="Evaluate f(tn, yn)\lStore in F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=slateblue1] + copy1 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=slateblue1] + fcur2 [label="Set fn_current to True", style=filled, fillcolor=lightgreen] stages1 [label="Compute Stages"] complete [label="Complete Step"] - step1 -> f0q2 - f0q2 -> stages1 [label="Yes"] - f0q2 -> eval2 [label="No"] - eval2 -> stages1 - stages1 -> complete - - interp_update [label="Update interpolation module?"]; - lagrange1 [label="Add ycur to history"] - f0q3 [label="Has f(t0, y0) been computed?"]; - update_yn [label="Copy tcur to tn\lCopy ycur to yn\lSet fn_current to False"]; - - complete -> interp_update - interp_update -> update_yn [label="No"] - interp_update -> lagrange1 [label="Lagrange"] - lagrange1 -> update_yn - interp_update -> f0q3 [label="Hermite"] - f0q3 -> update_yn [label="Yes"] - - interp_eval [label="Evaluate interpolant?"] - step2 [label="Start Step 2"]; - f1q1 [label="Has f(t1, y1) been computed?"]; - fsal1 [label="Is the method FSAL?"] - eval3 [label="Evaluate f(t1, y1)\lStore in F[0]"]; - copy1 [label="Copy F[s-1] to F[0]"]; - fcur1 [label="Copy F[0] to fn\lSet fn_current to True"]; - interp_yout [label="Compute yout"] - - update_yn -> interp_eval - interp_eval -> step2 [label="No"] - interp_eval -> interp_yout [label="Lagrange"] - interp_eval -> f1q1 [label="Hermite"] - f1q1 -> fsal1 [label="No"] - fsal1 -> eval3 [label="No"] - eval3 -> fcur1 - fsal1 -> copy1 [label="Yes"] - copy1 -> fcur1 - fcur1 -> interp_yout - interp_yout -> step2 - - f1q2 [label="Has f(t1, y1) been computed?"]; - fsal2 [label="Is the method FSAL?"] - eval4 [label="Evaluate f(t1, y1)\lStore in F[0]"]; - copy2 [label="Copy F[s-1] to F[0]"]; - fcur2 [label="Copy F[0] to fn\lSet fn_current to True"]; - stages2 [label="Compute Stages"] - - step2 -> f1q2 - f1q2 -> stages2 [label="Yes"] - f1q2 -> fsal2 [label="No"] - fsal2 -> copy2 [label="Yes"] - copy2 -> fcur2 - fsal2 -> eval4 [label="No"] - eval4 -> fcur2 - fcur2 -> stages2 - stages2 -> "Complete Step" + start -> f0q2 + f0q2 -> stages1 [taillabel="Yes", labeldistance=2, labelangle=45] + f0q2 -> step_q [taillabel="No", labeldistance=2, labelangle=-45] + step_q -> eval2 [taillabel="Yes", labeldistance=2, labelangle=45] + eval2 -> fcur2 + step_q -> fsal [taillabel="No", labeldistance=2, labelangle=-45] + fsal -> eval3 [taillabel="No", labeldistance=2, labelangle=-45] + eval3 -> fcur2 + fsal -> copy1 [taillabel="Yes", labeldistance=2, labelangle=45] + copy1 -> fcur2 + fcur2 -> stages1 -> complete + + // ------------- + // Complete step + // ------------- + + interp_update [label="Interpolation enabled?"] + interp_type1 [label="Using Hermite interpolation?"] + f0q3 [label="Has f(tn, yn) been computed?"] + update_yn [label="Copy tcur, ycur to tn, yn"] + fcur3 [label="Set fn_current to False", style=filled, fillcolor=tomato1] + + complete -> interp_update + interp_update -> update_yn [taillabel="No", labeldistance=2, labelangle=45] + interp_update -> interp_type1 [taillabel="Yes", labeldistance=2, labelangle=-45] + interp_type1 -> update_yn [taillabel="No", labeldistance=2, labelangle=45] + interp_type1 -> f0q3 [taillabel="Yes", labeldistance=2, labelangle=-45] + f0q3 -> update_yn [taillabel="Yes", labeldistance=2, labelangle=45] + update_yn -> fcur3 + + // ---------- + // After step + // ---------- + + interp_eval [label="Evaluate interpolant?"] + interp_type2 [label="Using Hermite interpolation?"] + f1q1 [label="Has f(tn, yn) been computed?"] + fsal1 [label="Is the method FSAL?", style=filled, fillcolor=slateblue1] + eval4 [label="Evaluate f(tn, yn)\lStore in F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=slateblue1] + copy2 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=slateblue1] + fcur4 [label="Set fn_current to True", style=filled, fillcolor=lightgreen] + interp_yout [label="Compute yout"] + step2 [label="Start Next Step"] + + fcur3 -> interp_eval + interp_eval -> step2 [taillabel="No", labeldistance=2, labelangle=45] + interp_eval -> interp_type2 [taillabel="Yes", labeldistance=2, labelangle=-45] + interp_type2 -> interp_yout [taillabel="No", labeldistance=2, labelangle=45] + interp_type2 -> f1q1 [taillabel="Yes", labeldistance=2, labelangle=-45] + f1q1 -> fsal1 [taillabel="No", labeldistance=2, labelangle=45] + fsal1 -> eval4 [taillabel="No", labeldistance=2, labelangle=-45] + eval4 -> fcur4 + fsal1 -> copy2 [taillabel="Yes", labeldistance=2, labelangle=45] + copy2 -> fcur4 + fcur4 -> interp_yout -> step2 ARKStep Full RHS ================ -Dotted lines signify execution paths that should not be possible. +.. digraph:: ark_fullrhs_start + :caption: ARKStep Full RHS Start + + node [shape=box, style=filled, fillcolor=white] + splines=ortho + bgcolor=lightskyblue + + // -------------- + // Full RHS Start + // -------------- + + fcur [label="Has f(tn, yn) been computed?"] + eval [label="Evaluate fe(tn, yn), fi(tn,yn)\lStore in Fe[0], Fi[0]\l"] + mass_a [label="Is there a mass matrix?"] + mass_b [label="Is M time dependent?"] + mass_c [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to f\l"] + mass_d [label="Copy Fe[0] + Fi[0] to f\lSolve M x = f\lCopy x to f\l"] + copy [label="Copy Fe[0] + Fi[0] to f"] + return [label="Set fn_current to True", style=filled, fillcolor=lightgreen] + + fcur -> copy [taillabel="Yes", labeldistance=2, labelangle=45] + fcur -> eval [taillabel="No", labeldistance=2, labelangle=45] + eval -> mass_a + mass_a -> copy [taillabel="No", labeldistance=2, labelangle=45] + copy -> return + mass_a -> mass_b [taillabel="Yes", labeldistance=2, labelangle=-45] + mass_b -> mass_c [taillabel="Yes", labeldistance=2, labelangle=-45] + mass_c -> return + mass_b -> mass_d [taillabel="No", labeldistance=2, labelangle=45] + mass_d -> return + +.. digraph:: ark_fullrhs_start + :caption: ARKStep Full RHS End + + node [shape=box, style=filled, fillcolor=white] + splines=ortho + bgcolor=slateblue1 + + // ------------ + // Full RHS End + // ------------ + + fcur [label="Has f(tn, yn) been computed?"] + sa [label="Is the method stiffly accurate?"] + eval [label="Evaluate fe(tn, yn), fi(tn, yn)\lStore in Fe[0], Fi[0]\l"] + mass_a1 [label="Is there a mass matrix?"] + mass_a2 [label="Is there a mass matrix?"] + mass_b1 [label="Is M time dependent?"] + mass_b2 [label="Is M time dependent?"] + mass_c [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to fn\l"] + mass_d1 [label="Solve M x = fn\lCopy x to fn\l"] + mass_d2 [label="Copy Fe[0] + Fi[0] to fn\lSolve M x = fn\lCopy x to fn\l"] + copy_1 [label="Copy Fe[0] + Fi[0] to fn"] + copy_2 [label="Copy Fe[s-1], Fi[s-1] to Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to fn\l"] + return [label="Set fn_current to True", style=filled, fillcolor=lightgreen] + + fcur -> copy_1 [taillabel="Yes", labeldistance=2, labelangle=45] + fcur -> sa [taillabel="No", labeldistance=2, labelangle=45] + sa -> copy_2 [taillabel="Yes", labeldistance=2, labelangle=45] + copy_2 -> mass_a1 + mass_a1 -> return [taillabel="No", labeldistance=2, labelangle=-45] + mass_a1 -> mass_b1 [taillabel="Yes", labeldistance=2, labelangle=45] + mass_b1 -> mass_d1 [taillabel="No", labeldistance=2, labelangle=-45] + mass_d1 -> return + mass_b1 -> return [taillabel="Yes", labeldistance=2, labelangle=45] + sa -> eval [taillabel="No", labeldistance=2, labelangle=-45] + eval -> mass_a2 + mass_a2 -> copy_1 [taillabel="No", labeldistance=2, labelangle=45] + copy_1 -> return + mass_a2 -> mass_b2 [taillabel="Yes", labeldistance=2, labelangle=-45] + mass_b2 -> mass_c [taillabel="Yes", labeldistance=2, labelangle=-45] + mass_c -> return + mass_b2 -> mass_d2 [taillabel="No", labeldistance=2, labelangle=45] + mass_d2 -> return + .. digraph:: ark_fullrhs node [shape=box] - - start [label="Initialize fn_current to False"]; - h0 [label="Is h0 provided?", target="_top"]; - f0q1 [label="Has f(t0, y0) been computed?"]; - eval1 [label="Evaluate fe(t0, y0), fi(t0,y0)\lStore in Fe[0], Fi[0]"]; - mass1a [label="Is there a mass matrix?"]; - mass1b [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to fn"]; - mass1c [label="Copy Fe[0] + Fi[0] to fn\lSolve M x = fn\lCopy x to fn"]; - fcur1 [label="Set fn_current to True"]; - step1 [label="Start Step 1"]; - - start -> h0 - h0 -> step1 [label="Yes"] - h0 -> f0q1 [label="No"] - f0q1 -> step1 [label="Yes", style="dotted"] - f0q1 -> eval1 [label="No"] - eval1 -> mass1a - mass1a -> mass1b [label="Yes\lM(t)"] - mass1a -> mass1c [label="Yes\lM"] - mass1a -> fcur1 [label="No"] - mass1b -> fcur1 - mass1c -> fcur1 - fcur1 -> step1 - - f0q2a [label="Is the first stage explicit?\nor\nIs the method stiffly accurate and Hermite interpolation is used?"]; - f0q2b [label="Has f(t0, y0) been computed?"]; - eval2 [label="Evaluate fe(t0, y0), fi(t0,y0)\lStore in Fe[0], Fi[0]"]; - mass2a [label="Is there a mass matrix?"]; - mass2b [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to fn"]; - mass2c [label="Copy Fe[0] + Fi[0] to fn\lSolve M x = fn\lCopy x to fn"]; - fcur2 [label="Set fn_current to True"]; - stages1 [label="Compute Stages"] + splines=ortho + + // ----------------- + // Before first step + // ----------------- + + init [label="Initialize integrator\lCopy t0, y0 to tn, yn\l"] + f0cur [label="Set fn_current to False", style=filled, fillcolor=tomato1] + h0 [label="Is h0 provided?"] + f0_q [label="Has f(tn, yn) been computed?"] + rhs_1 [label="Call Full RHS Start", style=filled, fillcolor=lightskyblue] + h0_comp [label="Compute h0"] + start [label="Start Step"] + + init -> f0cur -> h0 + h0 -> start [taillabel="Yes", labeldistance=2, labelangle=45] + h0 -> f0_q [taillabel="No", labeldistance=2, labelangle=-45] + f0_q -> h0_comp [taillabel="Yes", labeldistance=2, labelangle=45] + f0_q -> rhs_1 [taillabel="No", labeldistance=2, labelangle=-45] + rhs_1 -> h0_comp + h0_comp -> start + + // ---------- + // Start step + // ---------- + + method_q [label="Is the first stage explicit?\nor\nIs the method stiffly accurate and Hermite interpolation is used?"] + step_q [label="Is this the first step after initial setup?"] + fn_q [label="Has f(tn, yn) been computed?"] + rhs_2 [label="Call Full RHS Start", style=filled, fillcolor=lightskyblue] + rhs_3 [label="Call Full RHS End", style=filled, fillcolor=slateblue1] + stages [label="Compute Stages"] complete [label="Complete Step"] - step1 -> f0q2a - f0q2a -> f0q2b [label="Yes"] - f0q2a -> stages1 [label="No"] - f0q2b -> stages1 [label="Yes"] - f0q2b -> eval2 [label="No"] - eval2 -> mass2a - mass2a -> mass2b [label="Yes\lM(t)"] - mass2a -> mass2c [label="Yes\lM"] - mass2a -> fcur2 [label="No"] - mass2b -> fcur2 - mass2c -> fcur2 - fcur2 -> stages1 - stages1 -> complete - - interp_update [label="Update interpolation module?"]; - hermite1 [label="Hermite interpolation?"]; - lagrange1 [label="Add ycur to history"] - f0q3 [label="Has f(t0, y0) been computed?"]; - eval3 [label="Evaluate fe(t0, y0), fi(t0,y0)\lStore in Fe[0], Fi[0]"]; - mass3a [label="Is there a mass matrix?"]; - mass3b [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to fn"]; - mass3c [label="Copy Fe[0] + Fi[0] to fn\lSolve M x = fn\lCopy x to fn"]; - fcur3 [label="Set fn_current to True"]; - update_yn [label="Copy tcur to tn\lCopy ycur to yn\lSet fn_current to False"]; - - complete -> interp_update - interp_update -> update_yn [label="No"] - interp_update -> hermite1 [label="Yes"] - hermite1 -> lagrange1 [label="No"] - hermite1 -> f0q3 [label="Yes"] - lagrange1 -> update_yn - f0q3 -> update_yn [label="Yes"] - f0q3 -> eval3 [label="No"] - eval3 -> mass3a - mass3a -> mass3b [label="Yes\lM(t)"] - mass3a -> mass3c [label="Yes\lM"] - mass3a -> fcur3 [label="No"] - mass3b -> fcur3 - mass3c -> fcur3 - fcur3 -> update_yn - - interp [label="Interpolate output?"]; - interp_eval [label="Evaluate interpolant"] - step2 [label="Start Step 2"]; - f1q1 [label="Has f(t1, y1) been computed?"]; - hermite2 [label="Hermite interpolation?"]; - sa [label="Is the method stiffly accurate?"] - eval4 [label="Evaluate fe(t1, y1), fi(t1, y1)\lStore in Fe[0], Fi[0]"]; - mass4a [label="Is there a mass matrix?"]; - mass4b [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]"]; - mass4c [label="Solve M x = fn\lCopy x to fn"]; - copy1 [label="Copy Fe[s-1], Fi[s-1] to Fe[0], Fi[0]"]; - copy2 [label="Copy Fe[0] + Fi[0] to fn"]; - fcur4 [label="Set fn_current to True"]; - interp_yout [label="Compute yout"] - - update_yn -> interp - interp -> step2 [label="No"] - interp -> interp_eval [label="Yes"] - interp_eval -> hermite2 - hermite2 -> interp_yout [label="No"] - hermite2 -> f1q1 [label="Yes"] - f1q1 -> interp_yout [label="Yes", style="dotted"] - f1q1 -> sa [label="No"] - sa -> copy1 [label="Yes"] - sa -> eval4 [label="No"] - copy1 -> copy2 - eval4 -> copy2 - copy2 -> mass4a - mass4a -> mass4b [label="Yes\lM(t)"] - mass4a -> mass4c [label="Yes\lM"] - mass4a -> fcur4 [label="No"] - mass4c -> fcur4 - fcur4 -> interp_yout - interp_yout -> step2 - - f1q2 [label="Has f(t1, y1) been computed?"]; - fsal [label="Is the method FSAL?"] - eval5 [label="Evaluate f(t1, y1)\lStore in F[0]\lCopy F[0] to fn\lSet fn_current to True"]; - copy3 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\lSet fn_current to True"]; - stages2 [label="Compute Stages"] - - step2 -> f1q2 - f1q2 -> stages2 [label="Yes"] - f1q2 -> fsal [label="No"] - fsal -> copy3 [label="Yes"] - fsal -> eval5 [label="No"] - copy3 -> stages2 - eval5 -> stages2 - stages2 -> "Complete Step" + start -> method_q + method_q -> stages [taillabel="No", labeldistance=2, labelangle=45] + method_q -> fn_q [taillabel="Yes", labeldistance=2, labelangle=-45] + fn_q -> stages [taillabel="Yes", labeldistance=2, labelangle=-45] + fn_q -> step_q [taillabel="No", labeldistance=2, labelangle=-45] + step_q -> rhs_2 [taillabel="Yes", labeldistance=2, labelangle=-45] + step_q -> rhs_3 [taillabel="No", labeldistance=2, labelangle=-45] + rhs_2 -> stages + rhs_3 -> stages + stages -> complete + + // ------------- + // Complete step + // ------------- + + interp_update [label="Interpolation enabled?"] + interp_type1 [label="Using Hermite interpolation?"] + f0q3 [label="Has f(tn, yn) been computed?"] + rhs3 [label="Call Full RHS Start", style=filled, fillcolor=lightskyblue] + update_yn [label="Copy tcur, ycur to tn, yn"] + fcur1 [label="Set fn_current to False", style=filled, fillcolor=tomato1] + + complete -> interp_update + interp_update -> update_yn [taillabel="No", labeldistance=2, labelangle=45] + interp_update -> interp_type1 [taillabel="Yes", labeldistance=2, labelangle=-45] + interp_type1 -> update_yn [taillabel="No", labeldistance=2, labelangle=45] + interp_type1 -> f0q3 [taillabel="Yes", labeldistance=2, labelangle=-45] + f0q3 -> update_yn [taillabel="Yes", labeldistance=2, labelangle=45] + f0q3 -> rhs3 [taillabel="No", labeldistance=2, labelangle=-45] + rhs3 -> update_yn -> fcur1 + + // ---------- + // After step + // ---------- + + interp_eval [label="Evaluate interpolant?"] + interp_type2 [label="Using Hermite interpolation?"] + f1q1 [label="Has f(tn, yn) been computed?"] + rhs4 [label="Call Full RHS End", style=filled, fillcolor=slateblue1] + interp_yout [label="Compute yout"] + return [label="Start Next Step"] + + fcur1 -> interp_eval + interp_eval -> return [taillabel="No", labeldistance=2, labelangle=45] + interp_eval -> interp_type2 [taillabel="Yes", labeldistance=2, labelangle=-45] + interp_type2 -> interp_yout [taillabel="No", labeldistance=2, labelangle=45] + interp_type2 -> f1q1 [taillabel="Yes", labeldistance=2, labelangle=-45] + f1q1 -> interp_yout [taillabel="Yes", labeldistance=2, labelangle=45] + f1q1 -> rhs4 [taillabel="No", labeldistance=2, labelangle=45] + rhs4 -> interp_yout -> return From d672857dc4a1218c523bfe0fcba1e40442023829 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 14 Aug 2023 15:02:40 -0700 Subject: [PATCH 25/92] update MRIStep full RHS --- src/arkode/arkode_arkstep.c | 28 +++--- src/arkode/arkode_mristep.c | 179 ++++++++++++++++++++++-------------- 2 files changed, 124 insertions(+), 83 deletions(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 693c73cb0f..e15bce242f 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -2023,13 +2023,6 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) -ONE / step_mem->gamma, step_mem->sdata, step_mem->Fi[is]); } -#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::arkStep_TakeStep_Z", "implicit RHS", - "Fi[%i] =", is); - N_VPrintFile(step_mem->Fi[is], ARK_LOGGER->debug_fp); -#endif - if (retval < 0) return(ARK_RHSFUNC_FAIL); if (retval > 0) return(ARK_UNREC_RHSFUNC_ERR); /* apply external polynomial forcing */ @@ -2040,6 +2033,13 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) arkStep_ApplyForcing(step_mem, ark_mem->tcur, ONE, &nvec); N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fi[is]); } + +#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkStep_TakeStep_Z", "implicit RHS", + "Fi[%i] =", is); + N_VPrintFile(step_mem->Fi[is], ARK_LOGGER->debug_fp); +#endif } /* store explicit RHS */ @@ -2048,13 +2048,6 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) ark_mem->ycur, step_mem->Fe[is], ark_mem->user_data); step_mem->nfe++; -#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::arkStep_TakeStep_Z", "explicit RHS", - "Fe[%i] =", is); - N_VPrintFile(step_mem->Fe[is], ARK_LOGGER->debug_fp); -#endif - if (retval < 0) return(ARK_RHSFUNC_FAIL); if (retval > 0) return(ARK_UNREC_RHSFUNC_ERR); /* apply external polynomial forcing */ @@ -2066,6 +2059,13 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) ONE, &nvec); N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fe[is]); } + +#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkStep_TakeStep_Z", "explicit RHS", + "Fe[%i] =", is); + N_VPrintFile(step_mem->Fe[is], ARK_LOGGER->debug_fp); +#endif } /* if using a time-dependent mass matrix, update Fe[is] and/or Fi[is] with M(t)^{-1} */ diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index 11e74e86a5..22a1d4b82b 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -1258,47 +1258,62 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, in the first stage of the subsequent time step */ case ARK_FULLRHS_START: - /* call fse if the problem has an explicit component */ - if (step_mem->explicit_rhs) { - retval = step_mem->fse(t, y, step_mem->Fse[0], ark_mem->user_data); - step_mem->nfse++; - if (retval != 0) { - arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", - "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); - return(ARK_RHSFUNC_FAIL); + /* call f */ + if (!(ark_mem->fn_current)) + { + /* call fse if the problem has an explicit component */ + if (step_mem->explicit_rhs) + { + retval = step_mem->fse(t, y, step_mem->Fse[0], ark_mem->user_data); + step_mem->nfse++; + if (retval != 0) + { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", + "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); + return(ARK_RHSFUNC_FAIL); + } } - } - /* call fsi if the problem has an implicit component */ - if (step_mem->implicit_rhs) { - retval = step_mem->fsi(t, y, step_mem->Fsi[0], ark_mem->user_data); - step_mem->nfsi++; - if (retval != 0) { + /* call fsi if the problem has an implicit component */ + if (step_mem->implicit_rhs) + { + retval = step_mem->fsi(t, y, step_mem->Fsi[0], ark_mem->user_data); + step_mem->nfsi++; + if (retval != 0) + { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", + "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); + return(ARK_RHSFUNC_FAIL); + } + } + + /* call ff (force new RHS computation) */ + retval = mriStepInnerStepper_FullRhs(step_mem->stepper, t, y, f, + ARK_FULLRHS_OTHER); + if (retval != ARK_SUCCESS) + { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } } - /* call ff (force new RHS computation) */ - retval = mriStepInnerStepper_FullRhs(step_mem->stepper, t, y, f, - ARK_FULLRHS_OTHER); - if (retval != ARK_SUCCESS) { - arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", - "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); - return(ARK_RHSFUNC_FAIL); - } - /* combine RHS vectors into output */ - if (step_mem->explicit_rhs && step_mem->implicit_rhs) { /* ImEx */ + if (step_mem->explicit_rhs && step_mem->implicit_rhs) + { + /* ImEx */ N_VLinearSum(ONE, step_mem->Fse[0], ONE, f, f); N_VLinearSum(ONE, step_mem->Fsi[0], ONE, f, f); - } else { - if (step_mem->implicit_rhs) { /* implicit */ - N_VLinearSum(ONE, step_mem->Fsi[0], ONE, f, f); - } else { /* explicit */ - N_VLinearSum(ONE, step_mem->Fse[0], ONE, f, f); - } + } + else if (step_mem->implicit_rhs) + { + /* implicit */ + N_VLinearSum(ONE, step_mem->Fsi[0], ONE, f, f); + } + else + { + /* explicit */ + N_VLinearSum(ONE, step_mem->Fse[0], ONE, f, f); } break; @@ -1309,48 +1324,64 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, same as case 0). */ case ARK_FULLRHS_END: - /* call fse if the problem has an explicit component */ - if (step_mem->explicit_rhs) { - retval = step_mem->fse(t, y, step_mem->Fse[0], ark_mem->user_data); - step_mem->nfse++; - if (retval != 0) { - arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", - "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); - return(ARK_RHSFUNC_FAIL); + /* determine if RHS functions need to be recomputed */ + if (!(ark_mem->fn_current)) + { + /* call fse if the problem has an explicit component */ + if (step_mem->explicit_rhs) + { + retval = step_mem->fse(t, y, step_mem->Fse[0], ark_mem->user_data); + step_mem->nfse++; + if (retval != 0) + { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", + "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); + return(ARK_RHSFUNC_FAIL); + } } - } - /* call fsi if the problem has an implicit component */ - if (step_mem->implicit_rhs) { - retval = step_mem->fsi(t, y, step_mem->Fsi[0], ark_mem->user_data); - step_mem->nfsi++; - if (retval != 0) { + /* call fsi if the problem has an implicit component */ + if (step_mem->implicit_rhs) + { + retval = step_mem->fsi(t, y, step_mem->Fsi[0], ark_mem->user_data); + step_mem->nfsi++; + if (retval != 0) + { + arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", + "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); + return(ARK_RHSFUNC_FAIL); + } + } + + /* call ff (force new RHS computation) */ + retval = mriStepInnerStepper_FullRhs(step_mem->stepper, t, y, f, + ARK_FULLRHS_OTHER); + if (retval != ARK_SUCCESS) + { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } } - /* call ff (force new RHS computation) */ - retval = mriStepInnerStepper_FullRhs(step_mem->stepper, t, y, f, - ARK_FULLRHS_OTHER); - if (retval != ARK_SUCCESS) { - arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, "ARKODE::MRIStep", - "mriStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); - return(ARK_RHSFUNC_FAIL); - } - /* combine RHS vectors into output */ - if (step_mem->explicit_rhs && step_mem->implicit_rhs) { /* ImEx */ + if (step_mem->explicit_rhs && step_mem->implicit_rhs) + { + /* ImEx */ N_VLinearSum(ONE, step_mem->Fse[0], ONE, f, f); N_VLinearSum(ONE, step_mem->Fsi[0], ONE, f, f); - } else { - if (step_mem->implicit_rhs) { /* implicit */ - N_VLinearSum(ONE, step_mem->Fsi[0], ONE, f, f); - } else { /* explicit */ - N_VLinearSum(ONE, step_mem->Fse[0], ONE, f, f); - } } + else if (step_mem->implicit_rhs) + { + /* implicit */ + N_VLinearSum(ONE, step_mem->Fsi[0], ONE, f, f); + } + else + { + /* explicit */ + N_VLinearSum(ONE, step_mem->Fse[0], ONE, f, f); + } + break; /* ARK_FULLRHS_OTHER: called for dense output in-between steps @@ -1446,6 +1477,7 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) ARKodeMRIStepMem step_mem; /* outer stepper memory */ int is; /* current stage index */ int retval; /* reusable return flag */ + int mode; /* full RHS evaluation mode */ /* initialize algebraic solver convergence flag to success; error estimate to zero */ @@ -1457,6 +1489,24 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) &ark_mem, &step_mem); if (retval != ARK_SUCCESS) return(retval); + /* call nonlinear solver setup if it exists */ + if (step_mem->NLS) + if ((step_mem->NLS)->ops->setup) { + N_VConst(ZERO, ark_mem->tempv3); /* set guess to 0 for predictor-corrector form */ + retval = SUNNonlinSolSetup(step_mem->NLS, ark_mem->tempv3, ark_mem); + if (retval < 0) return(ARK_NLS_SETUP_FAIL); + if (retval > 0) return(ARK_NLS_SETUP_RECVR); + } + + if (!(ark_mem->fn_current)) + { + mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; + retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, + ark_mem->fn, mode); + if (retval) { return ARK_RHSFUNC_FAIL; } + ark_mem->fn_current = SUNTRUE; + } + #ifdef SUNDIALS_DEBUG printf(" MRIStep step %li, stage 0, h = %"RSYM", t_n = %"RSYM"\n", ark_mem->nst, ark_mem->h, ark_mem->tcur); @@ -1484,15 +1534,6 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) } #endif - /* call nonlinear solver setup if it exists */ - if (step_mem->NLS) - if ((step_mem->NLS)->ops->setup) { - N_VConst(ZERO, ark_mem->tempv3); /* set guess to 0 for predictor-corrector form */ - retval = SUNNonlinSolSetup(step_mem->NLS, ark_mem->tempv3, ark_mem); - if (retval < 0) return(ARK_NLS_SETUP_FAIL); - if (retval > 0) return(ARK_NLS_SETUP_RECVR); - } - /* The first stage is the previous time-step solution, so its RHS is the [already-computed] slow RHS from the start of the step */ From ec38e32e28fc7a0777f8dcf5b7b9ad88f11bd439 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 15 Aug 2023 17:15:19 -0700 Subject: [PATCH 26/92] update some .out files --- examples/arkode/C_serial/ark_brusselator_fp.out | 6 +++--- examples/arkode/C_serial/ark_brusselator_fp_1.out | 6 +++--- .../arkode/C_serial/ark_conserved_exp_entropy_ark_1_0.out | 2 +- .../arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out | 2 +- .../arkode/C_serial/ark_conserved_exp_entropy_erk_1.out | 2 +- examples/arkode/C_serial/ark_dissipated_exp_entropy_1_0.out | 2 +- examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/examples/arkode/C_serial/ark_brusselator_fp.out b/examples/arkode/C_serial/ark_brusselator_fp.out index 041ebe3d2a..ed5ca0e6f3 100644 --- a/examples/arkode/C_serial/ark_brusselator_fp.out +++ b/examples/arkode/C_serial/ark_brusselator_fp.out @@ -9,8 +9,8 @@ Brusselator ODE test problem, fixed-point solver: 1.000000 1.897255 1.274939 2.997155 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 + 4.000000 0.140733 3.226731 2.999780 + 5.000000 0.142659 3.583206 2.999789 6.000000 0.145095 3.936910 2.999782 7.000000 0.147720 4.287893 2.999780 8.000000 0.150542 4.635957 2.999775 @@ -20,7 +20,7 @@ Brusselator ODE test problem, fixed-point solver: Final Solver Statistics: Internal solver steps = 729 (attempted = 730) - Total RHS evals: Fe = 4383, Fi = 18793 + Total RHS evals: Fe = 4382, Fi = 18792 Total number of fixed-point iterations = 14410 Total number of nonlinear solver convergence failures = 0 Total number of error test failures = 1 diff --git a/examples/arkode/C_serial/ark_brusselator_fp_1.out b/examples/arkode/C_serial/ark_brusselator_fp_1.out index 041ebe3d2a..ed5ca0e6f3 100644 --- a/examples/arkode/C_serial/ark_brusselator_fp_1.out +++ b/examples/arkode/C_serial/ark_brusselator_fp_1.out @@ -9,8 +9,8 @@ Brusselator ODE test problem, fixed-point solver: 1.000000 1.897255 1.274939 2.997155 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 + 4.000000 0.140733 3.226731 2.999780 + 5.000000 0.142659 3.583206 2.999789 6.000000 0.145095 3.936910 2.999782 7.000000 0.147720 4.287893 2.999780 8.000000 0.150542 4.635957 2.999775 @@ -20,7 +20,7 @@ Brusselator ODE test problem, fixed-point solver: Final Solver Statistics: Internal solver steps = 729 (attempted = 730) - Total RHS evals: Fe = 4383, Fi = 18793 + Total RHS evals: Fe = 4382, Fi = 18792 Total number of fixed-point iterations = 14410 Total number of nonlinear solver convergence failures = 0 Total number of error test failures = 1 diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_0.out b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_0.out index 05f6b3f4ce..b42c3a1564 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_0.out +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_0.out @@ -15,7 +15,7 @@ Conserved Exponential Entropy problem: Final Solver Statistics: Internal solver steps = 99 (attempted = 124) Total number of error test failures = 0 - Total RHS evals: Fe = 722, Fi = 0 + Total RHS evals: Fe = 597, Fi = 0 Total Relaxation Fn evals = 622 Total Relaxation Jac evals = 1019 Total Relaxation fails = 25 diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out index 77742dc2bd..411da8877d 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out @@ -38,7 +38,7 @@ Conserved Exponential Entropy problem: Final Solver Statistics: Internal solver steps = 1024 (attempted = 1376) Total number of error test failures = 86 - Total RHS evals: Fe = 0, Fi = 9934 + Total RHS evals: Fe = 0, Fi = 9581 Total number of Newton iterations = 5803 Total number of linear solver convergence failures = 37 Total linear solver setups = 844 diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_erk_1.out b/examples/arkode/C_serial/ark_conserved_exp_entropy_erk_1.out index 9e1649f48e..d8fd4b691f 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_erk_1.out +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_erk_1.out @@ -15,7 +15,7 @@ Conserved Exponential Entropy problem: Final Solver Statistics: Internal solver steps = 95 (attempted = 121) Total number of error test failures = 2 - Total RHS evals = 582 + Total RHS evals = 581 Total Relaxation Fn evals = 608 Total Relaxation Jac evals = 995 Total Relaxation fails = 24 diff --git a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_0.out b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_0.out index 90df8380be..16e1aa7a33 100644 --- a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_0.out +++ b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_0.out @@ -16,7 +16,7 @@ Dissipated Exponential Entropy problem: Final Solver Statistics: Internal solver steps = 130 (attempted = 130) Total number of error test failures = 0 - Total RHS evals: Fe = 783, Fi = 0 + Total RHS evals: Fe = 652, Fi = 0 Total Relaxation Fn evals = 392 Total Relaxation Jac evals = 782 Total Relaxation fails = 0 diff --git a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out index 49be4a5967..bc834dbbda 100644 --- a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out +++ b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out @@ -44,7 +44,7 @@ Dissipated Exponential Entropy problem: Final Solver Statistics: Internal solver steps = 1244 (attempted = 1246) Total number of error test failures = 2 - Total RHS evals: Fe = 0, Fi = 9633 + Total RHS evals: Fe = 0, Fi = 9630 Total number of Newton iterations = 5892 Total number of linear solver convergence failures = 81 Total linear solver setups = 149 From d61d18b09145c062ac3063597359b1fbe8d8885a Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Fri, 18 Aug 2023 16:16:48 -0700 Subject: [PATCH 27/92] move mri forcing in arkstep to sdata and compute solution --- doc/arkode/guide/source/Mathematics.rst | 2 +- src/arkode/arkode_arkstep.c | 281 +++++++++++++++--------- 2 files changed, 177 insertions(+), 106 deletions(-) diff --git a/doc/arkode/guide/source/Mathematics.rst b/doc/arkode/guide/source/Mathematics.rst index ec66f9838b..4e146b8375 100644 --- a/doc/arkode/guide/source/Mathematics.rst +++ b/doc/arkode/guide/source/Mathematics.rst @@ -705,7 +705,7 @@ characterized by nonzero values on or above the diagonal of the matrices :math:`\Gamma^{\{k\}}`. Typically, MRI-GARK and IMEX-MRI-GARK methods are at most diagonally-implicit (i.e., :math:`\gamma_{i,j}^{\{k\}}=0` for all :math:`j>i`). Furthermore, diagonally-implicit stages are characterized as being -"solve-decoupled" if :math:`\Delta c_i^S = 0` when `\gamma_{i,i}^{\{k\}} \ne 0`, +"solve-decoupled" if :math:`\Delta c_i^S = 0` when :math:`\gamma_{i,i}^{\{k\}} \ne 0`, in which case the stage is computed as standard ARK or DIRK update. Alternately, a diagonally-implicit stage :math:`i` is considered "solve-coupled" if :math:`\Delta c^S_i \gamma_{i,j}^{\{k\}} \ne 0`, in which diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index e15bce242f..0ca38becfb 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1384,16 +1384,6 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, return(ARK_RHSFUNC_FAIL); } - /* apply external polynomial forcing */ - if (step_mem->expforcing) - { - cvals[0] = ONE; - Xvecs[0] = step_mem->Fe[0]; - nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fe[0]); - } - if (step_mem->mass_type == MASS_TIMEDEP) { retval = step_mem->msolve((void *) ark_mem, step_mem->Fe[0], @@ -1419,16 +1409,6 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, return(ARK_RHSFUNC_FAIL); } - /* apply external polynomial forcing */ - if (step_mem->impforcing) - { - cvals[0] = ONE; - Xvecs[0] = step_mem->Fi[0]; - nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fi[0]); - } - if (step_mem->mass_type == MASS_TIMEDEP) { retval = step_mem->msolve((void *) ark_mem, step_mem->Fi[0], @@ -1472,6 +1452,16 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } + /* apply external polynomial (MRI) forcing (M = I required) */ + if (step_mem->expforcing || step_mem->impforcing) + { + cvals[0] = ONE; + Xvecs[0] = f; + nvec = 1; + arkStep_ApplyForcing(step_mem, t, ONE, &nvec); + N_VLinearCombination(nvec, cvals, Xvecs, f); + } + break; @@ -1529,16 +1519,6 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, return(ARK_RHSFUNC_FAIL); } - /* apply external polynomial forcing */ - if (step_mem->expforcing) - { - cvals[0] = ONE; - Xvecs[0] = step_mem->Fe[0]; - nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fe[0]); - } - if (step_mem->mass_type == MASS_TIMEDEP) { retval = step_mem->msolve((void *) ark_mem, step_mem->Fe[0], @@ -1564,16 +1544,6 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, return(ARK_RHSFUNC_FAIL); } - /* apply external polynomial forcing */ - if (step_mem->impforcing) - { - cvals[0] = ONE; - Xvecs[0] = step_mem->Fi[0]; - nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fi[0]); - } - if (step_mem->mass_type == MASS_TIMEDEP) { retval = step_mem->msolve((void *) ark_mem, step_mem->Fi[0], @@ -1629,6 +1599,16 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } + /* apply external polynomial (MRI) forcing (M = I required) */ + if (step_mem->expforcing || step_mem->impforcing) + { + cvals[0] = ONE; + Xvecs[0] = f; + nvec = 1; + arkStep_ApplyForcing(step_mem, t, ONE, &nvec); + N_VLinearCombination(nvec, cvals, Xvecs, f); + } + break; /* ARK_FULLRHS_OTHER: called for dense output in-between steps or for @@ -1645,14 +1625,6 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } - /* apply external polynomial forcing */ - if (step_mem->expforcing) { - cvals[0] = ONE; - Xvecs[0] = ark_mem->tempv2; - nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, ark_mem->tempv2); - } } /* call fi if the problem has an implicit component (store in sdata) */ @@ -1664,14 +1636,6 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, "arkStep_FullRHS", MSG_ARK_RHSFUNC_FAILED, t); return(ARK_RHSFUNC_FAIL); } - /* apply external polynomial forcing */ - if (step_mem->impforcing) { - cvals[0] = ONE; - Xvecs[0] = step_mem->sdata; - nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, step_mem->sdata); - } } /* combine RHS vector(s) into output */ @@ -1696,6 +1660,16 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } + /* apply external polynomial (MRI) forcing (M = I required) */ + if (step_mem->expforcing || step_mem->impforcing) + { + cvals[0] = ONE; + Xvecs[0] = f; + nvec = 1; + arkStep_ApplyForcing(step_mem, t, ONE, &nvec); + N_VLinearCombination(nvec, cvals, Xvecs, f); + } + break; default: @@ -1737,7 +1711,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, ---------------------------------------------------------------*/ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) { - int retval, is, is_start, nvec, mode; + int retval, is, is_start, mode; booleantype implicit_stage; booleantype deduce_stage; booleantype save_stages = SUNFALSE; @@ -1745,18 +1719,12 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) ARKodeMem ark_mem; ARKodeARKStepMem step_mem; N_Vector zcor0; - realtype* cvals; - N_Vector* Xvecs; /* access ARKodeARKStepMem structure */ retval = arkStep_AccessStepMem(arkode_mem, "arkStep_TakeStep_Z", &ark_mem, &step_mem); if (retval != ARK_SUCCESS) return(retval); - /* local shortcuts for use with fused vector operations */ - cvals = step_mem->cvals; - Xvecs = step_mem->Xvecs; - /* if problem will involve no algebraic solvers, initialize nflagPtr to success */ if ((!step_mem->implicit) && (step_mem->mass_type == MASS_IDENTITY)) *nflagPtr = ARK_SUCCESS; @@ -2023,49 +1991,32 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) -ONE / step_mem->gamma, step_mem->sdata, step_mem->Fi[is]); } - if (retval < 0) return(ARK_RHSFUNC_FAIL); - if (retval > 0) return(ARK_UNREC_RHSFUNC_ERR); - /* apply external polynomial forcing */ - if (step_mem->impforcing) { - cvals[0] = ONE; - Xvecs[0] = step_mem->Fi[is]; - nvec = 1; - arkStep_ApplyForcing(step_mem, ark_mem->tcur, ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fi[is]); - } - #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::arkStep_TakeStep_Z", "implicit RHS", "Fi[%i] =", is); N_VPrintFile(step_mem->Fi[is], ARK_LOGGER->debug_fp); #endif + + if (retval < 0) return(ARK_RHSFUNC_FAIL); + if (retval > 0) return(ARK_UNREC_RHSFUNC_ERR); } /* store explicit RHS */ if (step_mem->explicit) { - retval = step_mem->fe(ark_mem->tn + step_mem->Be->c[is]*ark_mem->h, - ark_mem->ycur, step_mem->Fe[is], ark_mem->user_data); - step_mem->nfe++; - - if (retval < 0) return(ARK_RHSFUNC_FAIL); - if (retval > 0) return(ARK_UNREC_RHSFUNC_ERR); - /* apply external polynomial forcing */ - if (step_mem->expforcing) { - cvals[0] = ONE; - Xvecs[0] = step_mem->Fe[is]; - nvec = 1; - arkStep_ApplyForcing(step_mem, ark_mem->tn+step_mem->Be->c[is]*ark_mem->h, - ONE, &nvec); - N_VLinearCombination(nvec, cvals, Xvecs, step_mem->Fe[is]); - } + retval = step_mem->fe(ark_mem->tn + step_mem->Be->c[is]*ark_mem->h, + ark_mem->ycur, step_mem->Fe[is], ark_mem->user_data); + step_mem->nfe++; #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::arkStep_TakeStep_Z", "explicit RHS", - "Fe[%i] =", is); - N_VPrintFile(step_mem->Fe[is], ARK_LOGGER->debug_fp); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkStep_TakeStep_Z", "explicit RHS", + "Fe[%i] =", is); + N_VPrintFile(step_mem->Fe[is], ARK_LOGGER->debug_fp); #endif + + if (retval < 0) return(ARK_RHSFUNC_FAIL); + if (retval > 0) return(ARK_UNREC_RHSFUNC_ERR); } /* if using a time-dependent mass matrix, update Fe[is] and/or Fi[is] with M(t)^{-1} */ @@ -2732,7 +2683,10 @@ int arkStep_StageSetup(ARKodeMem ark_mem, booleantype implicit) { /* local data */ ARKodeARKStepMem step_mem; - int retval, i, j, nvec; + int retval, i, j, k, jmax, nvec; + sunrealtype tj, tau, taui; + sunrealtype* cj; + sunrealtype** Aij; realtype* cvals; N_Vector* Xvecs; @@ -2747,12 +2701,6 @@ int arkStep_StageSetup(ARKodeMem ark_mem, booleantype implicit) /* Set shortcut to current stage index */ i = step_mem->istage; - /* If this is the first stage, and explicit, just set sdata=0 and return */ - if (!implicit && (i==0)) { - N_VConst(ZERO, step_mem->sdata); - return (ARK_SUCCESS); - } - /* local shortcuts for fused vector operations */ cvals = step_mem->cvals; Xvecs = step_mem->Xvecs; @@ -2816,10 +2764,46 @@ int arkStep_StageSetup(ARKodeMem ark_mem, booleantype implicit) } } - /* apply external polynomial forcing (updates nvec, cvals, Xvecs) */ - if (step_mem->impforcing) { - arkStep_ApplyForcing(step_mem, ark_mem->tcur, - ark_mem->h * step_mem->Bi->A[i][i], &nvec); + /* apply external polynomial (MRI) forcing (M = I required) */ + if (step_mem->expforcing || step_mem->impforcing) + { + if (step_mem->expforcing) + { + jmax = i; + Aij = step_mem->Be->A; + cj = step_mem->Be->c; + } + else + { + jmax = i + 1; + Aij = step_mem->Bi->A; + cj = step_mem->Bi->c; + } + + for (k = 0; k < step_mem->nforcing; k++) + { + cvals[nvec + k] = ZERO; + } + + for (j = 0; j < jmax; j++) + { + tj = ark_mem->tn + cj[j] * ark_mem->h; + tau = (tj - step_mem->tshift) / (step_mem->tscale); + taui = ONE; + + for (k = 0; k < step_mem->nforcing; k++) + { + cvals[nvec + k] += Aij[i][j] * taui; + taui *= tau; + } + } + + for (k = 0; k < step_mem->nforcing; k++) + { + cvals[nvec + k] *= ark_mem->h; + Xvecs[nvec + k] = step_mem->forcing[k]; + } + nvec += step_mem->nforcing; } /* call fused vector operation to do the work */ @@ -2848,8 +2832,12 @@ int arkStep_StageSetup(ARKodeMem ark_mem, booleantype implicit) int arkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsmPtr) { /* local data */ - int retval, j, nvec; + int retval, j, k, nvec; N_Vector y, yerr; + sunrealtype tj, tau, taui; + sunrealtype* cj; + sunrealtype* bj; + sunrealtype* dj; realtype* cvals; N_Vector* Xvecs; ARKodeARKStepMem step_mem; @@ -2891,6 +2879,47 @@ int arkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsmPtr) } } + /* apply external polynomial (MRI) forcing (M = I required) */ + if (step_mem->expforcing || step_mem->impforcing) + { + if (step_mem->expforcing) + { + cj = step_mem->Be->c; + bj = step_mem->Be->b; + } + else + { + cj = step_mem->Bi->c; + bj = step_mem->Bi->b; + } + + + for (k = 0; k < step_mem->nforcing; k++) + { + cvals[nvec + k] = ZERO; + } + + for (j = 0; j < step_mem->stages; j++) + { + tj = ark_mem->tn + cj[j] * ark_mem->h; + tau = (tj - step_mem->tshift) / (step_mem->tscale); + taui = ONE; + + for (k = 0; k < step_mem->nforcing; k++) + { + cvals[nvec + k] += bj[j] * taui; + taui *= tau; + } + } + + for (k = 0; k < step_mem->nforcing; k++) + { + cvals[nvec + k] *= ark_mem->h; + Xvecs[nvec + k] = step_mem->forcing[k]; + } + nvec += step_mem->nforcing; + } + /* call fused vector operation to do the work */ retval = N_VLinearCombination(nvec, cvals, Xvecs, y); if (retval != 0) return(ARK_VECTOROP_ERR); @@ -2913,6 +2942,48 @@ int arkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsmPtr) } } + /* apply external polynomial (MRI) forcing (M = I required) */ + if (step_mem->expforcing || step_mem->impforcing) + { + if (step_mem->expforcing) + { + cj = step_mem->Be->c; + bj = step_mem->Be->b; + dj = step_mem->Be->d; + } + else + { + cj = step_mem->Bi->c; + bj = step_mem->Bi->b; + dj = step_mem->Bi->d; + } + + for (k = 0; k < step_mem->nforcing; k++) + { + cvals[nvec + k] = ZERO; + } + + for (j = 0; j < step_mem->stages; j++) + { + tj = ark_mem->tn + cj[j] * ark_mem->h; + tau = (tj - step_mem->tshift) / (step_mem->tscale); + taui = ONE; + + for (k = 0; k < step_mem->nforcing; k++) + { + cvals[nvec + k] += (bj[j] - dj[j]) * taui; + taui *= tau; + } + } + + for (k = 0; k < step_mem->nforcing; k++) + { + cvals[nvec + k] *= ark_mem->h; + Xvecs[nvec + k] = step_mem->forcing[k]; + } + nvec += step_mem->nforcing; + } + /* call fused vector operation to do the work */ retval = N_VLinearCombination(nvec, cvals, Xvecs, yerr); if (retval != 0) return(ARK_VECTOROP_ERR); From 00edf3aaa57218ba49bd23ac43db48fb14cb37a0 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 19 Aug 2023 16:19:04 -0700 Subject: [PATCH 28/92] update some ERK, ARK, and MRI output files --- ...k_diffusion_reaction_p_--np_2_2_--imex.out | 42 +- ...sion_reaction_p_--np_2_2_--mri-arkstep.out | 42 +- .../ark_heat2D_hypre_ls_--np_2_2.out | 44 +- .../ark_heat2D_hypre_pfmg_--np_2_2.out | 44 +- .../ark_heat2D_hypre_pfmg_imex_--np_2_2.out | 18 +- .../ark_heat2D_hypre_pfmg_mri_--np_2_2.out | 22 +- .../ark_advection_diffusion_reaction.out | 22 +- .../CXX_serial/ark_kpr_Mt_0_3_0_-10_0.out | 216 +- .../ark_kpr_Mt_0_4_0_-10_0_10_1.out | 216 +- .../ark_kpr_Mt_0_4_0_-10_1_10_1.out | 222 +- .../arkode/CXX_serial/ark_kpr_Mt_0_4_1.out | 208 +- examples/arkode/CXX_serial/ark_kpr_Mt_0_5.out | 222 +- .../CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out | 2 +- .../arkode/CXX_serial/ark_kpr_Mt_1_-5.out | 12 +- examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out | 204 +- .../CXX_serial/ark_kpr_Mt_2_4_0_-10_0.out | 6 +- .../CXX_serial/ark_kpr_Mt_2_8_0_-10.out | 206 +- ...mg_xbraid_--np_2_1_2_--x_print_level_0.out | 2 +- ..._p_xbraid_--np_2_1_2_--x_print_level_0.out | 2 +- .../ark_heat2D_xbraid_--x_print_level_0.out | 2 +- .../ark_brusselator1D_manyvec.out | 24 +- .../ark_brusselator1D_imexmri_0_0.001.out | 2 +- .../ark_brusselator1D_imexmri_3_0.001.out | 2 +- .../ark_brusselator1D_imexmri_5_0.001.out | 2 +- .../C_serial/ark_brusselator_1D_mri.out | 2 +- .../arkode/C_serial/ark_brusselator_mri.out | 2 +- .../arkode/C_serial/ark_kpr_mri_0_0.002.out | 2 +- .../arkode/C_serial/ark_kpr_mri_5_0.002.out | 4 +- .../ark_kpr_mri_7_0.001_-100_100_0.5_1.out | 4 +- .../arkode/C_serial/ark_kpr_mri_8_0.001.out | 12 +- .../ark_kpr_mri_8_0.001_-100_100_0.5_1.out | 4 +- .../arkode/C_serial/ark_kpr_mri_9_0.001.out | 60 +- .../ark_kpr_mri_9_0.001_-100_100_0.5_1.out | 50 +- .../arkode/C_serial/ark_onewaycouple_mri.out | 2 +- .../C_serial/ark_reaction_diffusion_mri.out | 2 +- .../arkode/C_serial/ark_twowaycouple_mri.out | 2 +- .../CXX_serial/ark_test_dahlquist_ark.out | 1972 +++++++++++++++++ .../CXX_serial/ark_test_dahlquist_erk.out | 609 +++++ 38 files changed, 3546 insertions(+), 965 deletions(-) create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.out create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.out diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out index b7c7a5805c..c5297a95e5 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out @@ -48,25 +48,25 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.172144385112383e+00 - 5.000000000000000e-01 3.136781978966371e+00 - 1.000000000000000e+00 3.125095500559746e+00 - 1.500000000000000e+00 3.152620956520280e+00 - 2.000000000000000e+00 3.252033049944731e+00 - 2.500000000000000e+00 3.404813950977549e+00 - 3.000000000000000e+00 3.570162567428832e+00 - 3.500000000000000e+00 3.699962132487487e+00 - 4.000000000000000e+00 3.694761763072449e+00 - 4.500000000000000e+00 3.628565769394313e+00 - 5.000000000000000e+00 3.475500510795411e+00 - 5.500000000000000e+00 3.344032274118367e+00 - 6.000000000000000e+00 3.233949925729428e+00 - 6.500000000000000e+00 3.082058120794513e+00 - 7.000000000000000e+00 2.890442427981788e+00 - 7.500000000000000e+00 2.837091032458512e+00 - 8.000000000000000e+00 2.898054545259084e+00 - 8.500000000000000e+00 3.139933622385019e+00 - 9.000000000000000e+00 3.442183323454377e+00 - 9.500000000000000e+00 3.740380013622370e+00 + 5.000000000000000e-01 3.136697755289245e+00 + 1.000000000000000e+00 3.125045363662519e+00 + 1.500000000000000e+00 3.152621144482752e+00 + 2.000000000000000e+00 3.252103105111211e+00 + 2.500000000000000e+00 3.404836380445778e+00 + 3.000000000000000e+00 3.570289124032259e+00 + 3.500000000000000e+00 3.700390110599262e+00 + 4.000000000000000e+00 3.695069067461584e+00 + 4.500000000000000e+00 3.628501948241147e+00 + 5.000000000000000e+00 3.475486870968288e+00 + 5.500000000000000e+00 3.344048556646717e+00 + 6.000000000000000e+00 3.234016955415836e+00 + 6.500000000000000e+00 3.082257265934162e+00 + 7.000000000000000e+00 2.890412267831545e+00 + 7.500000000000000e+00 2.837091002264438e+00 + 8.000000000000000e+00 2.898066439117228e+00 + 8.500000000000000e+00 3.139960237168968e+00 + 9.000000000000000e+00 3.442188896137627e+00 + 9.500000000000000e+00 3.740379679871287e+00 1.000000000000000e+01 4.014473424455050e+00 ---------------------------------------------- @@ -74,8 +74,8 @@ Final integrator statistics: Steps = 105 Step attempts = 111 Error test fails = 6 - RHS reaction = 447 - RHS diffusion = 780 + RHS reaction = 441 + RHS diffusion = 774 NLS iters = 333 NLS fails = 0 LS iters = 1638 diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out index 44e9ca39ad..25f2be4093 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out @@ -51,26 +51,26 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.172144385112383e+00 - 5.000000000000000e-01 3.136741760177363e+00 - 1.000000000000000e+00 3.125063288126960e+00 - 1.500000000000000e+00 3.152612100930424e+00 - 2.000000000000000e+00 3.252042400952964e+00 - 2.500000000000000e+00 3.404761539326434e+00 - 3.000000000000000e+00 3.570183798164206e+00 - 3.500000000000000e+00 3.699958243267201e+00 - 4.000000000000000e+00 3.694644394786519e+00 - 4.500000000000000e+00 3.628182390566946e+00 - 5.000000000000000e+00 3.475214313463735e+00 - 5.500000000000000e+00 3.343937480671038e+00 - 6.000000000000000e+00 3.234080840699362e+00 - 6.500000000000000e+00 3.082501265216459e+00 - 7.000000000000000e+00 2.890793620590566e+00 - 7.500000000000000e+00 2.837373326530296e+00 - 8.000000000000000e+00 2.898190808646831e+00 - 8.500000000000000e+00 3.139962981781891e+00 - 9.000000000000000e+00 3.442134760530028e+00 - 9.500000000000000e+00 3.740312877536207e+00 - 1.000000000000000e+01 4.014396629231554e+00 + 5.000000000000000e-01 3.136741760565112e+00 + 1.000000000000000e+00 3.125063288044017e+00 + 1.500000000000000e+00 3.152612112450619e+00 + 2.000000000000000e+00 3.252043983418060e+00 + 2.500000000000000e+00 3.404765989603421e+00 + 3.000000000000000e+00 3.570190973270146e+00 + 3.500000000000000e+00 3.699967498112868e+00 + 4.000000000000000e+00 3.694660650362031e+00 + 4.500000000000000e+00 3.628195423135894e+00 + 5.000000000000000e+00 3.475226557220142e+00 + 5.500000000000000e+00 3.343940437806177e+00 + 6.000000000000000e+00 3.234074877204449e+00 + 6.500000000000000e+00 3.082487398091975e+00 + 7.000000000000000e+00 2.890772981241159e+00 + 7.500000000000000e+00 2.837358027670640e+00 + 8.000000000000000e+00 2.898182312219831e+00 + 8.500000000000000e+00 3.139958281273060e+00 + 9.000000000000000e+00 3.442131791691251e+00 + 9.500000000000000e+00 3.740310837117296e+00 + 1.000000000000000e+01 4.014395612342793e+00 ---------------------------------------------- Final integrator statistics: @@ -96,4 +96,4 @@ Fast Integrator: Steps = 472 Step attempts = 472 Error test fails = 0 - RHS reaction = 2419 + RHS reaction = 1947 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls_--np_2_2.out index 995ecf1103..d62dcc437b 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls_--np_2_2.out @@ -39,33 +39,33 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.603048616851151e-01 5.947581797283163e-04 - 1.000000000000000e-01 3.341442212572840e-01 7.029487839260717e-04 - 1.500000000000000e-01 2.933129364211772e-01 6.872104501928211e-04 - 2.000000000000000e-01 2.418371827909151e-01 6.138967488541480e-04 - 2.500000000000000e-01 1.847632280527681e-01 5.043531323443151e-04 - 3.000000000000000e-01 1.276840002010777e-01 3.835930211336658e-04 - 3.500000000000000e-01 7.618719033675811e-02 2.636045435802092e-04 - 4.000000000000000e-01 3.531419593151618e-02 1.573064662659523e-04 - 4.500000000000000e-01 9.066519343283548e-03 7.648430090645419e-05 - 4.999999999999999e-01 1.366001184678036e-05 2.823151530294188e-05 - 5.499999999999999e-01 9.040623250818201e-03 1.797011524983308e-05 - 6.000000000000000e-01 3.526521493345149e-02 4.668317652109510e-05 - 6.500000000000000e-01 7.611978800433235e-02 1.113065341032948e-04 - 7.000000000000001e-01 1.276052139912309e-01 2.055078043680103e-04 - 7.500000000000001e-01 1.846816872673240e-01 3.198179447260197e-04 - 8.000000000000002e-01 2.417622665681260e-01 4.436012109942933e-04 - 8.500000000000002e-01 2.932595626602583e-01 5.646811622962433e-04 - 9.000000000000002e-01 3.341325736101829e-01 6.709854988270481e-04 - 9.500000000000003e-01 3.603805168277087e-01 7.524532455107646e-04 - 1.000000000000000e+00 3.694333172773836e-01 7.994041692465093e-04 + 5.000000000000000e-02 3.603048616822545e-01 5.947581714760286e-04 + 1.000000000000000e-01 3.341442212785615e-01 7.029488409013851e-04 + 1.500000000000000e-01 2.933129364275077e-01 6.872104685722302e-04 + 2.000000000000000e-01 2.418371828080387e-01 6.138967946408558e-04 + 2.500000000000000e-01 1.847632280583572e-01 5.043531478602370e-04 + 3.000000000000000e-01 1.276840002100012e-01 3.835930452203429e-04 + 3.500000000000000e-01 7.618719032579514e-02 2.636045144156773e-04 + 4.000000000000000e-01 3.531419592855609e-02 1.573064584402817e-04 + 4.500000000000000e-01 9.066519338739386e-03 7.648428870138738e-05 + 4.999999999999999e-01 1.366001182694566e-05 2.823151529496145e-05 + 5.499999999999999e-01 9.040623249651518e-03 1.797011214870609e-05 + 6.000000000000000e-01 3.526521493569591e-02 4.668318270634186e-05 + 6.500000000000000e-01 7.611978800136085e-02 1.113065263843305e-04 + 7.000000000000001e-01 1.276052139782833e-01 2.055077698996932e-04 + 7.500000000000001e-01 1.846816872939459e-01 3.198180155253305e-04 + 8.000000000000002e-01 2.417622665916507e-01 4.436012737950579e-04 + 8.500000000000002e-01 2.932595626771289e-01 5.646812075739138e-04 + 9.000000000000002e-01 3.341325736192596e-01 6.709855232923667e-04 + 9.500000000000003e-01 3.603805168236139e-01 7.524532347086277e-04 + 1.000000000000000e+00 3.694333172787351e-01 7.994041733336843e-04 ----------------------------------------------------------------------- Final integrator statistics: Steps = 134 Step attempts = 135 Error test fails = 1 - RHS evals = 948 + RHS evals = 813 NLS iters = 405 NLS fails = 0 LS iters = 2925 @@ -76,4 +76,4 @@ Final integrator statistics: Avg NLS iters per step attempt = 3.000000 Avg LS iters per NLS iter = 7.222222 - Max error = 7.994041692465093e-04 + Max error = 7.994041733336843e-04 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_--np_2_2.out index 72c9868caa..f2b48883ca 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_--np_2_2.out @@ -40,33 +40,33 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.603048619327799e-01 5.947588761685552e-04 - 1.000000000000000e-01 3.341442198324603e-01 7.029449875427529e-04 - 1.500000000000000e-01 2.933129359408688e-01 6.872090865805980e-04 - 2.000000000000000e-01 2.418371816114719e-01 6.138936173949450e-04 - 2.500000000000000e-01 1.847632276987459e-01 5.043521686299290e-04 - 3.000000000000000e-01 1.276839996709629e-01 3.835916125021210e-04 - 3.500000000000000e-01 7.618719090432620e-02 2.636060692945696e-04 - 4.000000000000000e-01 3.531419605764338e-02 1.573068055824300e-04 - 4.500000000000000e-01 9.066519483453687e-03 7.648468362444691e-05 - 4.999999999999999e-01 1.366000934602030e-05 2.823150954460473e-05 - 5.499999999999999e-01 9.040623272556180e-03 1.797017413211754e-05 - 6.000000000000000e-01 3.526521486171871e-02 4.668298506418922e-05 - 6.500000000000000e-01 7.611978811657902e-02 1.113068278075224e-04 - 7.000000000000001e-01 1.276052146286863e-01 2.055095081313074e-04 - 7.500000000000001e-01 1.846816856478577e-01 3.198136633395521e-04 - 8.000000000000002e-01 2.417622647584950e-01 4.435963861751935e-04 - 8.500000000000002e-01 2.932595610245435e-01 5.646767564563282e-04 - 9.000000000000002e-01 3.341325725110011e-01 6.709825281477899e-04 - 9.500000000000003e-01 3.603805174370124e-01 7.524548362450867e-04 - 1.000000000000000e+00 3.694333171114552e-01 7.994036412738437e-04 + 5.000000000000000e-02 3.603048619662594e-01 5.947589771124751e-04 + 1.000000000000000e-01 3.341442196174839e-01 7.029444121012807e-04 + 1.500000000000000e-01 2.933129358750161e-01 6.872089117678781e-04 + 2.000000000000000e-01 2.418371814148556e-01 6.138930842621848e-04 + 2.500000000000000e-01 1.847632276336554e-01 5.043519800296270e-04 + 3.000000000000000e-01 1.276839995651514e-01 3.835913188042217e-04 + 3.500000000000000e-01 7.618719103623366e-02 2.636064234229352e-04 + 4.000000000000000e-01 3.531419609294345e-02 1.573069046419823e-04 + 4.500000000000000e-01 9.066519518111988e-03 7.648477672918610e-05 + 4.999999999999999e-01 1.366000896373604e-05 2.823150862393431e-05 + 5.499999999999999e-01 9.040623277437885e-03 1.797018734061087e-05 + 6.000000000000000e-01 3.526521486679048e-02 4.668299420636235e-05 + 6.500000000000000e-01 7.611978809919251e-02 1.113067842546667e-04 + 7.000000000000001e-01 1.276052144727296e-01 2.055090932608361e-04 + 7.500000000000001e-01 1.846816861396953e-01 3.198149617728019e-04 + 8.000000000000002e-01 2.417622654058103e-01 4.435981137953515e-04 + 8.500000000000002e-01 2.932595616787877e-01 5.646785202919613e-04 + 9.000000000000002e-01 3.341325729864703e-01 6.709838211867991e-04 + 9.500000000000003e-01 3.603805171569960e-01 7.524541115215833e-04 + 1.000000000000000e+00 3.694333171827900e-01 7.994038755922972e-04 ----------------------------------------------------------------------- Final integrator statistics: Steps = 134 Step attempts = 135 Error test fails = 1 - RHS evals = 948 + RHS evals = 813 NLS iters = 405 NLS fails = 0 LS iters = 2482 @@ -82,4 +82,4 @@ Final integrator statistics: Preconditioner solves = 2482 PFMG iters = 2482 - Max error = 7.994036412738437e-04 + Max error = 7.994038755922972e-04 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out index 23218a24c1..5760e7e5fe 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out @@ -40,15 +40,15 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 - 1.000000000000000e-01 5.162013648736323e-02 - 2.000000000000000e-01 7.426103375907699e-03 - 3.000000000000000e-01 1.067221964126028e-03 - 4.000000000000000e-01 1.533639279173463e-04 - 5.000000000000000e-01 2.203893657177772e-05 - 6.000000000000000e-01 3.167052399497521e-06 - 7.000000000000000e-01 4.550960415372650e-07 - 7.999999999999999e-01 6.537285820788082e-08 - 8.999999999999999e-01 9.413914309992992e-09 + 1.000000000000000e-01 5.162013561953564e-02 + 2.000000000000000e-01 7.426103216931702e-03 + 3.000000000000000e-01 1.067221955570474e-03 + 4.000000000000000e-01 1.533639242649863e-04 + 5.000000000000000e-01 2.203893152743892e-05 + 6.000000000000000e-01 3.167052161936452e-06 + 7.000000000000000e-01 4.550959197622963e-07 + 7.999999999999999e-01 6.537253782319481e-08 + 8.999999999999999e-01 9.573763963251624e-09 9.999999999999999e-01 1.326291426916515e-09 ---------------------------------------------- diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out index d5b866980e..738af757b8 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out @@ -42,16 +42,16 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 - 1.000000000000000e-01 5.162012484063394e-02 - 2.000000000000000e-01 7.426100623733855e-03 - 3.000000000000000e-01 1.067221389928324e-03 - 4.000000000000000e-01 1.533638122100311e-04 - 5.000000000000000e-01 2.203890106093356e-05 - 6.000000000000000e-01 3.167064486065304e-06 - 7.000000000000000e-01 4.551179117995729e-07 - 7.999999999999999e-01 6.540200053027528e-08 - 8.999999999999999e-01 9.398526428504205e-09 - 9.999999999999999e-01 1.350608973293627e-09 + 1.000000000000000e-01 5.162012484065175e-02 + 2.000000000000000e-01 7.426100623747953e-03 + 3.000000000000000e-01 1.067221389930970e-03 + 4.000000000000000e-01 1.533638122104530e-04 + 5.000000000000000e-01 2.203890106096816e-05 + 6.000000000000000e-01 3.167064486069615e-06 + 7.000000000000000e-01 4.551179118001787e-07 + 7.999999999999999e-01 6.540200053036262e-08 + 8.999999999999999e-01 9.398526428516744e-09 + 9.999999999999999e-01 1.350608973295430e-09 ---------------------------------------------- Final slow integrator statistics: @@ -74,7 +74,7 @@ Final fast integrator statistics: Steps = 3003 Step attempts = 3003 Error test fails = 0 - RHS evals = 33857 + RHS evals = 30854 NLS iters = 17842 NLS fails = 0 LS iters = 10048 diff --git a/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.out b/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.out index 06a9c9284d..a87d092125 100644 --- a/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.out +++ b/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.out @@ -31,15 +31,15 @@ Problem parameters and options: t ||y||_rms ---------------------------------------------- 0.000000000000000e+00 4.029895706298216e+00 - 3.000000000000000e-01 3.942279347418077e+00 - 6.000000000000000e-01 3.877431469116385e+00 - 8.999999999999999e-01 3.793649083180712e+00 - 1.200000000000000e+00 3.689067746332020e+00 - 1.500000000000000e+00 3.567028985343041e+00 - 1.800000000000000e+00 3.439281992076554e+00 - 2.100000000000000e+00 3.320144385200880e+00 - 2.400000000000000e+00 3.219721039168443e+00 - 2.700000000000000e+00 3.146930769180139e+00 + 3.000000000000000e-01 3.942280121135499e+00 + 6.000000000000000e-01 3.877434662389668e+00 + 8.999999999999999e-01 3.793654006700049e+00 + 1.200000000000000e+00 3.689067718768748e+00 + 1.500000000000000e+00 3.567028830880791e+00 + 1.800000000000000e+00 3.439281683889970e+00 + 2.100000000000000e+00 3.320143971224290e+00 + 2.400000000000000e+00 3.219720187221883e+00 + 2.700000000000000e+00 3.146931515115551e+00 3.000000000000000e+00 3.110922385062612e+00 ---------------------------------------------- @@ -47,8 +47,8 @@ Final integrator statistics: Steps = 23 Step attempts = 24 Error test fails = 0 - Explicit RHS evals = 96 - Implicit RHS evals = 288 + Explicit RHS evals = 95 + Implicit RHS evals = 287 NLS iters = 192 NLS fails = 7 LS setups = 16 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_0_3_0_-10_0.out b/examples/arkode/CXX_serial/ark_kpr_Mt_0_3_0_-10_0.out index f38ae7c147..e3c31815e3 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_0_3_0_-10_0.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_0_3_0_-10_0.out @@ -12,117 +12,117 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: t u v uerr verr ------------------------------------------------------ -3.000000 0.710636 1.363407 0.00e+00 0.00e+00 - -2.900000 0.717671 1.324640 3.70e-04 2.29e-03 - -2.800000 0.727992 1.287515 7.44e-04 2.84e-03 - -2.700000 0.741092 1.251460 8.46e-04 2.58e-03 - -2.600000 0.757028 1.216006 1.01e-03 2.39e-03 - -2.500000 0.775576 1.181098 1.35e-03 2.76e-03 - -2.400000 0.795610 1.149093 1.06e-03 1.79e-03 - -2.300000 0.818403 1.117287 1.79e-03 2.67e-03 - -2.200000 0.842494 1.088504 2.40e-03 3.06e-03 - -2.100000 0.867789 1.062951 3.16e-03 3.25e-03 - -2.000000 0.890243 1.044103 3.40e-04 2.64e-04 - -1.900000 0.918743 1.024377 3.13e-03 2.12e-03 - -1.800000 0.944502 1.011651 3.01e-03 1.34e-03 - -1.700000 0.967983 1.003922 7.30e-04 2.37e-04 - -1.600000 0.996105 0.999928 3.43e-03 2.85e-04 - -1.500000 1.019955 1.001656 2.42e-03 4.05e-04 - -1.400000 1.043204 1.007716 1.58e-03 4.68e-04 - -1.300000 1.068074 1.019878 3.30e-03 1.82e-03 - -1.200000 1.088381 1.034712 1.56e-03 1.29e-03 - -1.100000 1.109643 1.054948 2.03e-03 1.96e-03 - -1.000000 1.129780 1.079804 2.77e-03 3.45e-03 - -0.900000 1.145536 1.104049 6.32e-04 1.02e-03 - -0.800000 1.163216 1.136066 2.03e-03 3.53e-03 - -0.700000 1.177736 1.168573 1.97e-03 4.19e-03 - -0.600000 1.188627 1.198295 7.04e-05 2.31e-04 - -0.500000 1.201096 1.237762 1.60e-03 4.65e-03 - -0.400000 1.209605 1.273093 1.08e-03 4.01e-03 - -0.300000 1.215977 1.307261 3.83e-04 1.70e-03 - -0.200000 1.221524 1.347217 8.55e-04 5.08e-03 - -0.100000 1.224023 1.381573 2.99e-04 3.11e-03 - 0.000000 1.224915 1.417046 1.70e-04 2.83e-03 - 0.100000 1.223682 1.453905 4.31e-05 4.83e-03 - 0.200000 1.220491 1.484604 1.78e-04 1.81e-03 - 0.300000 1.215142 1.518474 4.52e-04 3.38e-03 - 0.400000 1.207613 1.549792 9.12e-04 4.02e-03 - 0.500000 1.199317 1.575083 1.79e-04 4.64e-04 - 0.600000 1.187241 1.604738 1.32e-03 3.29e-03 - 0.700000 1.174195 1.628977 1.57e-03 2.87e-03 - 0.800000 1.160798 1.649024 3.88e-04 5.83e-04 - 0.900000 1.142674 1.670977 2.23e-03 2.65e-03 - 1.000000 1.125149 1.687306 1.86e-03 1.64e-03 - 1.100000 1.106375 1.701281 1.23e-03 9.26e-04 - 1.200000 1.083821 1.713934 3.00e-03 1.61e-03 - 1.300000 1.063098 1.722088 1.68e-03 5.89e-04 - 1.400000 1.039432 1.728436 2.19e-03 5.91e-04 - 1.500000 1.014086 1.731733 3.44e-03 4.05e-04 - 1.600000 0.991678 1.731904 9.96e-04 2.36e-05 - 1.700000 0.961426 1.728911 5.83e-03 7.32e-04 - 1.800000 0.935542 1.723129 5.95e-03 1.36e-03 - 1.900000 0.909675 1.714513 5.94e-03 1.97e-03 - 2.000000 0.884086 1.703125 5.82e-03 2.54e-03 - 2.100000 0.859058 1.689043 5.57e-03 3.06e-03 - 2.200000 0.835574 1.672856 4.52e-03 3.00e-03 - 2.300000 0.814580 1.655404 2.04e-03 1.61e-03 - 2.400000 0.792171 1.633239 2.37e-03 2.45e-03 - 2.500000 0.771823 1.609184 2.40e-03 2.79e-03 - 2.600000 0.753719 1.582648 2.29e-03 3.38e-03 - 2.700000 0.739155 1.555902 1.09e-03 2.10e-03 - 2.800000 0.726876 1.527066 3.71e-04 1.00e-03 - 2.900000 0.717091 1.495571 2.10e-04 8.41e-04 - 3.000000 0.710388 1.461718 2.48e-04 1.54e-03 - 3.100000 0.707227 1.426224 1.85e-04 2.62e-03 - 3.200000 0.707774 1.389871 6.43e-05 3.55e-03 - 3.300000 0.711937 1.353272 4.17e-04 4.02e-03 - 3.400000 0.719482 1.316831 7.32e-04 3.95e-03 - 3.500000 0.730101 1.280910 8.74e-04 3.31e-03 - 3.600000 0.743437 1.245871 7.25e-04 2.12e-03 - 3.700000 0.759104 1.212075 1.91e-04 4.28e-04 - 3.800000 0.778229 1.176840 7.22e-04 1.35e-03 - 3.900000 0.799673 1.143027 1.53e-03 2.50e-03 - 4.000000 0.822611 1.111958 2.14e-03 3.03e-03 - 4.100000 0.846613 1.084064 2.46e-03 3.01e-03 - 4.200000 0.872616 1.058537 3.78e-03 3.74e-03 - 4.300000 0.896759 1.038903 2.56e-03 2.17e-03 - 4.400000 0.922654 1.022357 2.69e-03 1.56e-03 - 4.500000 0.949804 1.009423 3.97e-03 1.75e-03 - 4.600000 0.971677 1.003131 1.20e-04 1.84e-05 - 4.700000 1.000881 0.999978 3.98e-03 6.03e-05 - 4.800000 1.024123 1.002244 2.48e-03 3.28e-04 - 4.900000 1.048218 1.009872 2.63e-03 1.14e-03 - 5.000000 1.072193 1.022451 3.63e-03 2.12e-03 - 5.100000 1.090618 1.036650 2.10e-04 2.21e-04 - 5.200000 1.114344 1.060263 3.37e-03 3.60e-03 - 5.300000 1.132066 1.083037 1.94e-03 2.42e-03 - 5.400000 1.149808 1.111129 2.05e-03 3.32e-03 - 5.500000 1.166384 1.142517 2.62e-03 4.77e-03 - 5.600000 1.178247 1.170493 2.05e-04 5.64e-04 - 5.700000 1.192675 1.209460 2.15e-03 5.58e-03 - 5.800000 1.202249 1.242415 1.10e-03 3.30e-03 - 5.900000 1.210920 1.279453 1.07e-03 4.26e-03 - 6.000000 1.217779 1.317297 1.19e-03 5.59e-03 - 6.100000 1.221394 1.349080 6.94e-05 8.08e-04 - 6.200000 1.224584 1.390348 5.45e-04 5.82e-03 - 6.300000 1.224861 1.423309 1.45e-04 3.16e-03 - 6.400000 1.223197 1.458922 1.55e-04 4.09e-03 - 6.500000 1.219541 1.493333 4.15e-04 5.01e-03 - 6.600000 1.214349 1.521229 1.94e-04 8.53e-04 - 6.700000 1.205961 1.555583 1.18e-03 4.82e-03 - 6.800000 1.197025 1.581689 7.64e-04 2.41e-03 - 6.900000 1.185091 1.608881 1.44e-03 3.13e-03 - 7.000000 1.171483 1.633589 1.95e-03 3.56e-03 + -2.900000 0.717316 1.326932 1.47e-05 9.30e-07 + -2.800000 0.727263 1.290352 1.55e-05 1.41e-06 + -2.700000 0.740260 1.254041 1.37e-05 9.10e-07 + -2.600000 0.756026 1.218399 1.32e-05 1.28e-06 + -2.500000 0.774239 1.183861 1.16e-05 8.00e-07 + -2.400000 0.794556 1.150884 9.86e-06 9.51e-07 + -2.300000 0.816624 1.119952 8.14e-06 5.76e-07 + -2.200000 0.840096 1.091559 7.49e-06 1.29e-06 + -2.100000 0.864636 1.066203 1.09e-05 9.87e-07 + -2.000000 0.889911 1.044366 8.52e-06 1.42e-06 + -1.900000 0.915620 1.026500 2.77e-06 1.52e-06 + -1.800000 0.941486 1.012993 1.33e-06 1.21e-06 + -1.700000 0.967247 1.004162 5.58e-06 2.92e-06 + -1.600000 0.992663 1.000217 1.08e-05 3.99e-06 + -1.500000 1.017517 1.001257 1.39e-05 5.41e-06 + -1.400000 1.041608 1.007254 1.72e-05 5.39e-06 + -1.300000 1.064756 1.018066 2.11e-05 7.67e-06 + -1.200000 1.086799 1.033429 2.13e-05 6.93e-06 + -1.100000 1.107583 1.053000 2.60e-05 8.00e-06 + -1.000000 1.126983 1.076359 2.70e-05 9.49e-06 + -0.900000 1.144876 1.103036 2.80e-05 7.01e-06 + -0.800000 1.161155 1.132548 3.11e-05 9.47e-06 + -0.700000 1.175735 1.164388 2.88e-05 7.11e-06 + -0.600000 1.188524 1.198072 3.31e-05 7.78e-06 + -0.500000 1.199463 1.233124 3.29e-05 8.30e-06 + -0.400000 1.208491 1.269093 3.27e-05 5.77e-06 + -0.300000 1.215559 1.305564 3.51e-05 7.20e-06 + -0.200000 1.220638 1.342141 3.14e-05 4.88e-06 + -0.100000 1.223689 1.378471 3.53e-05 5.22e-06 + 0.000000 1.224711 1.414219 3.42e-05 5.14e-06 + 0.100000 1.223691 1.449083 3.33e-05 3.29e-06 + 0.200000 1.220634 1.482795 3.50e-05 3.94e-06 + 0.300000 1.215563 1.515100 3.04e-05 2.14e-06 + 0.400000 1.208490 1.545777 3.36e-05 2.28e-06 + 0.500000 1.199464 1.574621 3.18e-05 2.03e-06 + 0.600000 1.188527 1.601451 3.02e-05 1.01e-06 + 0.700000 1.175733 1.626106 3.09e-05 1.39e-06 + 0.800000 1.161160 1.648441 2.58e-05 1.18e-07 + 0.900000 1.144876 1.668331 2.78e-05 4.44e-08 + 1.000000 1.126984 1.685666 2.53e-05 3.97e-07 + 1.100000 1.107586 1.700354 2.29e-05 1.20e-06 + 1.200000 1.086798 1.712318 2.23e-05 1.40e-06 + 1.300000 1.064760 1.721497 1.71e-05 2.15e-06 + 1.400000 1.041608 1.727843 1.70e-05 2.44e-06 + 1.500000 1.017517 1.731325 1.39e-05 2.90e-06 + 1.600000 0.992663 1.731924 1.02e-05 3.31e-06 + 1.700000 0.967239 1.729638 1.35e-05 4.84e-06 + 1.800000 0.941479 1.724478 8.60e-06 7.09e-06 + 1.900000 0.915621 1.716469 3.16e-06 9.53e-06 + 2.000000 0.889921 1.705654 1.84e-05 1.20e-05 + 2.100000 0.864659 1.692088 3.40e-05 1.40e-05 + 2.200000 0.840134 1.675842 4.55e-05 1.50e-05 + 2.300000 0.816667 1.657002 5.04e-05 1.46e-05 + 2.400000 0.794592 1.635671 4.58e-05 1.29e-05 + 2.500000 0.774269 1.611965 4.20e-05 1.31e-05 + 2.600000 0.756048 1.586022 3.55e-05 1.15e-05 + 2.700000 0.740280 1.557994 3.41e-05 1.07e-05 + 2.800000 0.727280 1.528057 3.23e-05 1.03e-05 + 2.900000 0.717332 1.496403 3.06e-05 9.62e-06 + 3.000000 0.710665 1.463248 2.89e-05 8.97e-06 + 3.100000 0.707440 1.428831 2.71e-05 8.29e-06 + 3.200000 0.707734 1.393415 2.51e-05 7.67e-06 + 3.300000 0.711545 1.357289 2.59e-05 7.84e-06 + 3.400000 0.718776 1.320772 2.60e-05 7.74e-06 + 3.500000 0.729252 1.284211 2.51e-05 7.39e-06 + 3.600000 0.742735 1.247983 2.31e-05 6.80e-06 + 3.700000 0.758934 1.212497 2.04e-05 6.03e-06 + 3.800000 0.777524 1.178189 1.72e-05 5.18e-06 + 3.900000 0.798158 1.145523 1.38e-05 4.36e-06 + 4.000000 0.820485 1.114984 1.07e-05 3.81e-06 + 4.100000 0.844158 1.087067 8.91e-06 4.05e-06 + 4.200000 0.868842 1.062267 9.49e-06 5.94e-06 + 4.300000 0.894213 1.041069 8.96e-06 4.31e-06 + 4.400000 0.919966 1.023913 2.07e-06 3.47e-07 + 4.500000 0.945831 1.011172 3.41e-06 8.05e-07 + 4.600000 0.971546 1.003152 1.12e-05 2.18e-06 + 4.700000 0.996883 1.000042 1.55e-05 3.97e-06 + 4.800000 1.021617 1.001922 2.33e-05 6.45e-06 + 4.900000 1.045562 1.008742 2.69e-05 6.55e-06 + 5.000000 1.068534 1.020341 3.13e-05 1.03e-05 + 5.100000 1.090371 1.036440 3.70e-05 1.06e-05 + 5.200000 1.110937 1.056675 3.46e-05 8.26e-06 + 5.300000 1.130084 1.080630 4.28e-05 1.37e-05 + 5.400000 1.147713 1.107817 4.42e-05 1.06e-05 + 5.500000 1.163715 1.137755 4.38e-05 1.22e-05 + 5.600000 1.177993 1.169941 4.89e-05 1.25e-05 + 5.700000 1.190483 1.203883 4.46e-05 8.51e-06 + 5.800000 1.201100 1.239124 4.97e-05 1.20e-05 + 5.900000 1.209801 1.275204 4.99e-05 8.96e-06 + 6.000000 1.216540 1.311719 4.73e-05 8.93e-06 + 6.100000 1.221273 1.348281 5.21e-05 8.85e-06 + 6.200000 1.223992 1.384531 4.65e-05 5.55e-06 + 6.300000 1.224665 1.420153 5.12e-05 7.47e-06 + 6.400000 1.223303 1.454842 5.01e-05 5.07e-06 + 6.500000 1.219909 1.488333 4.71e-05 4.73e-06 + 6.600000 1.214493 1.520380 5.05e-05 4.31e-06 + 6.700000 1.207098 1.550760 4.38e-05 1.96e-06 + 6.800000 1.197742 1.579279 4.76e-05 2.86e-06 + 6.900000 1.186489 1.605753 4.51e-05 1.14e-06 + 7.000000 1.173394 1.630027 4.15e-05 6.93e-07 ------------------------------------------------------ Final Solver Statistics: - Internal solver steps = 168 (attempted = 168) + Internal solver steps = 167 (attempted = 167) Total number of error test failures = 0 - Total RHS evals: Fe = 675, Fi = 1698 - Total mass matrix setups = 508 - Total mass matrix solves = 1515 - Total mass times evals = 1191 - Total number of Jacobian evaluations = 18 + Total RHS evals: Fe = 671, Fi = 1763 + Total mass matrix setups = 504 + Total mass matrix solves = 1340 + Total mass times evals = 1259 + Total number of Jacobian evaluations = 7 Total linear solver setups = 18 - Total number of Nonlinear iterations = 1023 + Total number of Nonlinear iterations = 1092 Total number of Nonlinear convergence failures = 5 - Errors: u = 0.00224481, v = 0.0027708, total = 0.00252156 + Errors: u = 3.02996e-05, v = 6.97389e-06, total = 2.19852e-05 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_0_-10_0_10_1.out b/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_0_-10_0_10_1.out index 0966765b36..25d972ace0 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_0_-10_0_10_1.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_0_-10_0_10_1.out @@ -12,117 +12,117 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: t u v uerr verr ------------------------------------------------------ -3.000000 0.710636 1.363407 0.00e+00 0.00e+00 - -2.900000 0.717019 1.329852 2.82e-04 2.92e-03 - -2.800000 0.727128 1.291781 1.19e-04 1.43e-03 - -2.700000 0.740964 1.252385 7.18e-04 1.66e-03 - -2.600000 0.756983 1.216059 9.70e-04 2.34e-03 - -2.500000 0.773350 1.185766 8.78e-04 1.90e-03 - -2.400000 0.793611 1.152873 9.34e-04 1.99e-03 - -2.300000 0.817253 1.119332 6.37e-04 6.21e-04 - -2.200000 0.841717 1.089568 1.63e-03 1.99e-03 - -2.100000 0.864011 1.066886 6.14e-04 6.82e-04 - -2.000000 0.892474 1.042263 2.57e-03 2.10e-03 - -1.900000 0.917602 1.025755 1.98e-03 7.44e-04 - -1.800000 0.937390 1.016647 4.10e-03 3.65e-03 - -1.700000 0.971792 1.003765 4.54e-03 3.94e-04 - -1.600000 0.989541 1.001911 3.13e-03 1.70e-03 - -1.500000 1.020109 1.001600 2.58e-03 3.48e-04 - -1.400000 1.041436 1.008886 1.89e-04 1.64e-03 - -1.300000 1.062303 1.017039 2.47e-03 1.02e-03 - -1.200000 1.089683 1.036317 2.86e-03 2.90e-03 - -1.100000 1.105577 1.052294 2.03e-03 6.98e-04 - -1.000000 1.126083 1.075316 9.26e-04 1.03e-03 - -0.900000 1.147001 1.106761 2.10e-03 3.73e-03 - -0.800000 1.159860 1.131459 1.33e-03 1.08e-03 - -0.700000 1.174024 1.161179 1.74e-03 3.20e-03 - -0.600000 1.190189 1.202272 1.63e-03 4.21e-03 - -0.500000 1.199459 1.234387 3.74e-05 1.27e-03 - -0.400000 1.206986 1.264980 1.54e-03 4.11e-03 - -0.300000 1.215711 1.306063 1.17e-04 5.06e-04 - -0.200000 1.221127 1.346177 4.58e-04 4.04e-03 - -0.100000 1.223082 1.376940 6.43e-04 1.53e-03 - 0.000000 1.224285 1.409999 4.59e-04 4.21e-03 - 0.100000 1.223699 1.452499 2.62e-05 3.42e-03 - 0.200000 1.220132 1.484766 5.37e-04 1.98e-03 - 0.300000 1.215566 1.511788 2.80e-05 3.31e-03 - 0.400000 1.208854 1.543863 3.30e-04 1.91e-03 - 0.500000 1.198305 1.577949 1.19e-03 3.33e-03 - 0.600000 1.188064 1.601091 4.93e-04 3.59e-04 - 0.700000 1.177002 1.622831 1.24e-03 3.27e-03 - 0.800000 1.160467 1.649540 7.19e-04 1.10e-03 - 0.900000 1.143024 1.669900 1.88e-03 1.57e-03 - 1.000000 1.127703 1.684083 6.93e-04 1.58e-03 - 1.100000 1.109563 1.698647 1.95e-03 1.71e-03 - 1.200000 1.084375 1.713548 2.45e-03 1.23e-03 - 1.300000 1.063451 1.721352 1.33e-03 1.47e-04 - 1.400000 1.043958 1.726670 2.33e-03 1.18e-03 - 1.500000 1.018212 1.731200 6.81e-04 1.28e-04 - 1.600000 0.989541 1.731687 3.13e-03 2.41e-04 - 1.700000 0.967594 1.729038 3.42e-04 6.05e-04 - 1.800000 0.945779 1.724938 4.29e-03 4.53e-04 - 1.900000 0.913122 1.714408 2.50e-03 2.07e-03 - 2.000000 0.892727 1.706653 2.82e-03 9.87e-04 - 2.100000 0.863079 1.690005 1.55e-03 2.10e-03 - 2.200000 0.842837 1.677421 2.75e-03 1.56e-03 - 2.300000 0.813660 1.654059 2.96e-03 2.96e-03 - 2.400000 0.796357 1.636543 1.81e-03 8.59e-04 - 2.500000 0.776495 1.614269 2.27e-03 2.29e-03 - 2.600000 0.754401 1.583710 1.61e-03 2.32e-03 - 2.700000 0.738886 1.554989 1.36e-03 3.02e-03 - 2.800000 0.727154 1.526628 9.33e-05 1.44e-03 - 2.900000 0.717938 1.496740 6.37e-04 3.28e-04 - 3.000000 0.711417 1.464762 7.80e-04 1.51e-03 - 3.100000 0.708036 1.430991 6.24e-04 2.15e-03 - 3.200000 0.708079 1.395889 3.70e-04 2.47e-03 - 3.300000 0.711619 1.359926 9.94e-05 2.63e-03 - 3.400000 0.718581 1.323519 1.69e-04 2.74e-03 - 3.500000 0.728792 1.287040 4.35e-04 2.82e-03 - 3.600000 0.742019 1.250864 6.93e-04 2.87e-03 - 3.700000 0.757977 1.215395 9.37e-04 2.89e-03 - 3.800000 0.776344 1.181065 1.16e-03 2.87e-03 - 3.900000 0.796778 1.148333 1.37e-03 2.81e-03 - 4.000000 0.818928 1.117683 1.55e-03 2.69e-03 - 4.100000 0.842446 1.089606 1.70e-03 2.53e-03 - 4.200000 0.866998 1.064597 1.83e-03 2.32e-03 - 4.300000 0.892261 1.043136 1.94e-03 2.06e-03 - 4.400000 0.916058 1.027104 3.91e-03 3.19e-03 - 4.500000 0.949013 1.011415 3.18e-03 2.42e-04 - 4.600000 0.967871 1.004821 3.69e-03 1.67e-03 - 4.700000 1.000576 1.000388 3.68e-03 3.49e-04 - 4.800000 1.019516 1.003159 2.12e-03 1.24e-03 - 4.900000 1.045822 1.008812 2.34e-04 7.65e-05 - 5.000000 1.070392 1.022564 1.83e-03 2.23e-03 - 5.100000 1.087297 1.034966 3.11e-03 1.46e-03 - 5.200000 1.112850 1.058594 1.88e-03 1.93e-03 - 5.300000 1.131091 1.082926 9.64e-04 2.31e-03 - 5.400000 1.145267 1.104991 2.49e-03 2.82e-03 - 5.500000 1.164313 1.138717 5.54e-04 9.74e-04 - 5.600000 1.179397 1.173602 1.35e-03 3.67e-03 - 5.700000 1.189228 1.201963 1.30e-03 1.91e-03 - 5.800000 1.199849 1.235675 1.30e-03 3.44e-03 - 5.900000 1.210965 1.279516 1.11e-03 4.32e-03 - 6.000000 1.216453 1.313042 1.34e-04 1.33e-03 - 6.100000 1.220283 1.344121 1.04e-03 4.15e-03 - 6.200000 1.224013 1.384363 2.59e-05 1.62e-04 - 6.300000 1.224687 1.424123 2.89e-05 3.98e-03 - 6.400000 1.222879 1.453549 4.74e-04 1.29e-03 - 6.500000 1.220024 1.484232 6.72e-05 4.10e-03 - 6.600000 1.214102 1.523276 4.41e-04 2.90e-03 - 6.700000 1.206270 1.552659 8.72e-04 1.90e-03 - 6.800000 1.198139 1.576403 3.50e-04 2.87e-03 - 6.900000 1.187244 1.603789 7.10e-04 1.96e-03 - 7.000000 1.171735 1.632792 1.70e-03 2.77e-03 + -2.900000 0.717301 1.326933 2.70e-07 3.73e-08 + -2.800000 0.727249 1.290351 1.13e-06 1.93e-06 + -2.700000 0.740247 1.254036 1.07e-06 5.17e-06 + -2.600000 0.756014 1.218395 7.58e-07 4.79e-06 + -2.500000 0.774228 1.183857 4.73e-07 4.46e-06 + -2.400000 0.794546 1.150881 3.10e-07 4.15e-06 + -2.300000 0.816616 1.119949 1.90e-07 3.86e-06 + -2.200000 0.840089 1.091557 7.29e-08 3.57e-06 + -2.100000 0.864625 1.066201 5.01e-08 3.31e-06 + -2.000000 0.889902 1.044364 2.51e-07 2.98e-06 + -1.900000 0.915617 1.026496 7.41e-07 2.44e-06 + -1.800000 0.941484 1.012992 3.21e-06 4.66e-07 + -1.700000 0.967244 1.004159 8.82e-06 3.48e-08 + -1.600000 0.992667 1.000213 5.91e-06 1.67e-07 + -1.500000 1.017525 1.001250 6.01e-06 1.73e-06 + -1.400000 1.041618 1.007250 7.55e-06 6.60e-07 + -1.300000 1.064770 1.018056 7.07e-06 1.39e-06 + -1.200000 1.086812 1.033423 8.15e-06 1.14e-06 + -1.100000 1.107603 1.052993 6.37e-06 1.16e-06 + -1.000000 1.127003 1.076350 6.54e-06 5.97e-07 + -0.900000 1.144897 1.103030 7.12e-06 1.12e-06 + -0.800000 1.161181 1.132540 5.65e-06 1.73e-06 + -0.700000 1.175759 1.164384 5.09e-06 3.04e-06 + -0.600000 1.188551 1.198067 6.35e-06 3.20e-06 + -0.500000 1.199490 1.233118 5.85e-06 1.93e-06 + -0.400000 1.208519 1.269088 5.00e-06 5.89e-07 + -0.300000 1.215588 1.305555 6.04e-06 2.25e-06 + -0.200000 1.220662 1.342131 6.84e-06 5.78e-06 + -0.100000 1.223719 1.378457 6.01e-06 7.95e-06 + 0.000000 1.224739 1.414204 5.62e-06 9.85e-06 + 0.100000 1.223718 1.449068 7.07e-06 1.25e-05 + 0.200000 1.220662 1.482778 6.74e-06 1.28e-05 + 0.300000 1.215588 1.515084 5.72e-06 1.31e-05 + 0.400000 1.208518 1.545760 5.96e-06 1.46e-05 + 0.500000 1.199489 1.574603 6.91e-06 1.62e-05 + 0.600000 1.188551 1.601433 6.09e-06 1.67e-05 + 0.700000 1.175759 1.626088 5.28e-06 1.69e-05 + 0.800000 1.161180 1.648423 5.98e-06 1.75e-05 + 0.900000 1.144898 1.668313 5.87e-06 1.77e-05 + 1.000000 1.127005 1.685649 4.85e-06 1.72e-05 + 1.100000 1.107605 1.700338 4.37e-06 1.67e-05 + 1.200000 1.086816 1.712303 4.71e-06 1.64e-05 + 1.300000 1.064773 1.721483 3.98e-06 1.56e-05 + 1.400000 1.041622 1.727831 3.10e-06 1.45e-05 + 1.500000 1.017528 1.731314 2.71e-06 1.35e-05 + 1.600000 0.992671 1.731915 2.16e-06 1.23e-05 + 1.700000 0.967251 1.729632 1.35e-06 1.10e-05 + 1.800000 0.941487 1.724475 4.26e-07 9.77e-06 + 1.900000 0.915622 1.716469 5.05e-06 1.00e-05 + 2.000000 0.889909 1.705658 6.21e-06 8.62e-06 + 2.100000 0.864636 1.692092 1.05e-05 1.02e-05 + 2.200000 0.840099 1.675847 1.03e-05 9.88e-06 + 2.300000 0.816629 1.657008 1.24e-05 9.44e-06 + 2.400000 0.794555 1.635676 9.06e-06 8.49e-06 + 2.500000 0.774235 1.611970 7.64e-06 7.70e-06 + 2.600000 0.756021 1.586026 7.63e-06 7.67e-06 + 2.700000 0.740253 1.557998 6.87e-06 7.15e-06 + 2.800000 0.727253 1.528060 5.82e-06 7.10e-06 + 2.900000 0.717306 1.496405 4.89e-06 7.26e-06 + 3.000000 0.710640 1.463249 4.17e-06 7.32e-06 + 3.100000 0.707416 1.428831 3.60e-06 7.55e-06 + 3.200000 0.707712 1.393413 3.07e-06 8.92e-06 + 3.300000 0.711522 1.357287 2.62e-06 9.53e-06 + 3.400000 0.718752 1.320772 2.24e-06 7.95e-06 + 3.500000 0.729229 1.284212 1.93e-06 6.49e-06 + 3.600000 0.742713 1.247985 1.62e-06 5.13e-06 + 3.700000 0.758915 1.212499 1.32e-06 3.88e-06 + 3.800000 0.777507 1.178192 1.01e-06 2.73e-06 + 3.900000 0.798145 1.145526 7.18e-07 1.69e-06 + 4.000000 0.820475 1.114987 4.41e-07 7.68e-07 + 4.100000 0.844149 1.087071 1.85e-07 3.81e-08 + 4.200000 0.868832 1.062274 5.04e-08 7.17e-07 + 4.300000 0.894204 1.041075 2.64e-07 1.26e-06 + 4.400000 0.919963 1.023915 9.20e-07 2.28e-06 + 4.500000 0.945828 1.011177 6.19e-06 4.81e-06 + 4.600000 0.971553 1.003152 4.72e-06 1.97e-06 + 4.700000 0.996891 1.000041 7.14e-06 2.29e-06 + 4.800000 1.021634 1.001919 6.39e-06 3.05e-06 + 4.900000 1.045581 1.008736 7.54e-06 9.35e-07 + 5.000000 1.068557 1.020334 7.55e-06 2.47e-06 + 5.100000 1.090402 1.036431 5.68e-06 1.83e-06 + 5.200000 1.110965 1.056670 7.01e-06 2.46e-06 + 5.300000 1.130120 1.080619 6.62e-06 2.63e-06 + 5.400000 1.147752 1.107809 5.22e-06 2.51e-06 + 5.500000 1.163753 1.137747 5.96e-06 3.76e-06 + 5.600000 1.178036 1.169935 6.19e-06 6.46e-06 + 5.700000 1.190523 1.203881 5.11e-06 5.99e-06 + 5.800000 1.201144 1.239116 4.94e-06 4.32e-06 + 5.900000 1.209845 1.275199 6.25e-06 3.31e-06 + 6.000000 1.216582 1.311713 5.78e-06 2.19e-06 + 6.100000 1.221320 1.348274 4.88e-06 1.47e-06 + 6.200000 1.224033 1.384526 5.58e-06 8.06e-07 + 6.300000 1.224710 1.420146 6.33e-06 9.33e-08 + 6.400000 1.223348 1.454836 5.45e-06 7.00e-07 + 6.500000 1.219952 1.488327 4.87e-06 1.03e-06 + 6.600000 1.214538 1.520374 6.04e-06 1.49e-06 + 6.700000 1.207136 1.550752 6.18e-06 5.85e-06 + 6.800000 1.197784 1.579267 5.34e-06 8.88e-06 + 6.900000 1.186528 1.605740 5.46e-06 1.20e-05 + 7.000000 1.173429 1.630011 6.48e-06 1.55e-05 ------------------------------------------------------ Final Solver Statistics: Internal solver steps = 80 (attempted = 82) Total number of error test failures = 2 - Total RHS evals: Fe = 495, Fi = 1086 - Total mass matrix setups = 416 - Total mass matrix solves = 657 - Total mass times evals = 1081 - Total number of Jacobian evaluations = 21 + Total RHS evals: Fe = 493, Fi = 1082 + Total mass matrix setups = 413 + Total mass matrix solves = 574 + Total mass times evals = 1079 + Total number of Jacobian evaluations = 12 Total linear solver setups = 21 - Total number of Nonlinear iterations = 1001 - Total number of Nonlinear convergence failures = 13 - Errors: u = 0.00178101, v = 0.00231678, total = 0.00206634 + Total number of Nonlinear iterations = 999 + Total number of Nonlinear convergence failures = 11 + Errors: u = 5.44891e-06, v = 7.96021e-06, total = 6.82113e-06 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_0_-10_1_10_1.out b/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_0_-10_1_10_1.out index 2d97a74e97..e28c955d6b 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_0_-10_1_10_1.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_0_-10_1_10_1.out @@ -12,117 +12,117 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: t u v uerr verr ------------------------------------------------------ -3.000000 0.710636 1.363407 0.00e+00 0.00e+00 - -2.900000 0.717211 1.328223 8.99e-05 1.29e-03 - -2.800000 0.728269 1.287692 1.02e-03 2.66e-03 - -2.700000 0.739164 1.256719 1.08e-03 2.68e-03 - -2.600000 0.757034 1.216907 1.02e-03 1.49e-03 - -2.500000 0.773721 1.184656 5.07e-04 7.94e-04 - -2.400000 0.794153 1.151722 3.93e-04 8.37e-04 - -2.300000 0.818329 1.118100 1.71e-03 1.85e-03 - -2.200000 0.837303 1.094451 2.79e-03 2.89e-03 - -2.100000 0.862921 1.067619 1.70e-03 1.41e-03 - -2.000000 0.890741 1.043833 8.39e-04 5.34e-04 - -1.900000 0.917113 1.027334 1.50e-03 8.36e-04 - -1.800000 0.937132 1.014893 4.36e-03 1.90e-03 - -1.700000 0.971264 1.004558 4.01e-03 3.99e-04 - -1.600000 0.989148 1.001512 3.53e-03 1.30e-03 - -1.500000 1.019857 1.001974 2.33e-03 7.23e-04 - -1.400000 1.041333 1.009018 2.92e-04 1.77e-03 - -1.300000 1.062133 1.016423 2.64e-03 1.64e-03 - -1.200000 1.089269 1.036935 2.45e-03 3.51e-03 - -1.100000 1.105611 1.051822 2.00e-03 1.17e-03 - -1.000000 1.126373 1.075348 6.37e-04 1.00e-03 - -0.900000 1.146348 1.106984 1.44e-03 3.96e-03 - -0.800000 1.159966 1.130930 1.22e-03 1.61e-03 - -0.700000 1.174625 1.161225 1.14e-03 3.16e-03 - -0.600000 1.189605 1.202473 1.05e-03 4.41e-03 - -0.500000 1.199275 1.233916 2.21e-04 8.00e-04 - -0.400000 1.207551 1.264783 9.73e-04 4.30e-03 - -0.300000 1.215744 1.306771 1.50e-04 1.21e-03 - -0.200000 1.220747 1.345850 7.74e-05 3.71e-03 - -0.100000 1.223304 1.376541 4.20e-04 1.92e-03 - 0.000000 1.224655 1.410336 9.03e-05 3.88e-03 - 0.100000 1.223464 1.452678 2.60e-04 3.60e-03 - 0.200000 1.220141 1.484317 5.28e-04 1.53e-03 - 0.300000 1.215820 1.511673 2.26e-04 3.42e-03 - 0.400000 1.208782 1.544565 2.58e-04 1.21e-03 - 0.500000 1.198262 1.577820 1.23e-03 3.20e-03 - 0.600000 1.188266 1.600763 2.91e-04 6.87e-04 - 0.700000 1.177064 1.622917 1.30e-03 3.19e-03 - 0.800000 1.160152 1.650027 1.03e-03 1.59e-03 - 0.900000 1.143163 1.669738 1.74e-03 1.41e-03 - 1.000000 1.127953 1.683870 9.43e-04 1.80e-03 - 1.100000 1.109344 1.698839 1.74e-03 1.52e-03 - 1.200000 1.084126 1.713713 2.69e-03 1.39e-03 - 1.300000 1.063729 1.721220 1.05e-03 2.79e-04 - 1.400000 1.044265 1.726551 2.64e-03 1.29e-03 - 1.500000 1.017322 1.731363 2.09e-04 3.55e-05 - 1.600000 0.989409 1.731682 3.26e-03 2.45e-04 - 1.700000 0.968115 1.729005 8.62e-04 6.38e-04 - 1.800000 0.945780 1.724905 4.29e-03 4.21e-04 - 1.900000 0.913350 1.714227 2.27e-03 2.25e-03 - 2.000000 0.891914 1.706373 2.01e-03 7.06e-04 - 2.100000 0.863536 1.689964 1.09e-03 2.14e-03 - 2.200000 0.842451 1.677230 2.36e-03 1.37e-03 - 2.300000 0.813595 1.653718 3.02e-03 3.30e-03 - 2.400000 0.797036 1.637090 2.49e-03 1.41e-03 - 2.500000 0.776409 1.614316 2.18e-03 2.34e-03 - 2.600000 0.753957 1.582797 2.06e-03 3.24e-03 - 2.700000 0.739018 1.554652 1.23e-03 3.35e-03 - 2.800000 0.727507 1.526918 2.60e-04 1.15e-03 - 2.900000 0.718202 1.497373 9.00e-04 9.61e-04 - 3.000000 0.711511 1.465459 8.75e-04 2.20e-03 - 3.100000 0.707986 1.431691 5.73e-04 2.85e-03 - 3.200000 0.707904 1.396535 1.95e-04 3.11e-03 - 3.300000 0.711361 1.360512 1.59e-04 3.21e-03 - 3.400000 0.718242 1.324028 5.08e-04 3.25e-03 - 3.500000 0.728403 1.287440 8.23e-04 3.22e-03 - 3.600000 0.741598 1.251148 1.11e-03 3.16e-03 - 3.700000 0.757545 1.215559 1.37e-03 3.06e-03 - 3.800000 0.775921 1.181111 1.59e-03 2.92e-03 - 3.900000 0.796382 1.148270 1.76e-03 2.74e-03 - 4.000000 0.818578 1.117520 1.90e-03 2.53e-03 - 4.100000 0.842160 1.089361 1.99e-03 2.29e-03 - 4.200000 0.866788 1.064291 2.04e-03 2.02e-03 - 4.300000 0.892141 1.042793 2.06e-03 1.72e-03 - 4.400000 0.915470 1.026651 4.49e-03 2.74e-03 - 4.500000 0.949956 1.010481 4.12e-03 6.92e-04 - 4.600000 0.969819 1.004919 1.74e-03 1.77e-03 - 4.700000 0.995171 0.999962 1.73e-03 7.62e-05 - 4.800000 1.024036 1.003989 2.40e-03 2.07e-03 - 4.900000 1.042057 1.008020 3.53e-03 7.16e-04 - 5.000000 1.070886 1.022350 2.32e-03 2.02e-03 - 5.100000 1.090463 1.038105 5.51e-05 1.68e-03 - 5.200000 1.108350 1.053723 2.62e-03 2.94e-03 - 5.300000 1.131978 1.084116 1.85e-03 3.50e-03 - 5.400000 1.147773 1.109311 1.62e-05 1.50e-03 - 5.500000 1.161934 1.133924 1.83e-03 3.82e-03 - 5.600000 1.178681 1.171971 6.39e-04 2.04e-03 - 5.700000 1.191085 1.207296 5.57e-04 3.42e-03 - 5.800000 1.200245 1.236544 9.04e-04 2.57e-03 - 5.900000 1.209250 1.271951 6.01e-04 3.24e-03 - 6.000000 1.217002 1.316051 4.15e-04 4.34e-03 - 6.100000 1.221052 1.349146 2.73e-04 8.74e-04 - 6.200000 1.223662 1.380339 3.76e-04 4.19e-03 - 6.300000 1.224706 1.420575 1.02e-05 4.30e-04 - 6.400000 1.222895 1.458395 4.58e-04 3.56e-03 - 6.500000 1.219734 1.486790 2.23e-04 1.54e-03 - 6.600000 1.215038 1.516684 4.95e-04 3.69e-03 - 6.700000 1.206372 1.553655 7.70e-04 2.90e-03 - 6.800000 1.196854 1.580760 9.35e-04 1.48e-03 - 6.900000 1.187218 1.602951 6.84e-04 2.80e-03 - 7.000000 1.174139 1.628591 7.03e-04 1.44e-03 + -2.900000 0.717302 1.326933 5.18e-07 6.29e-08 + -2.800000 0.727249 1.290354 1.76e-06 3.00e-07 + -2.700000 0.740248 1.254042 1.77e-06 6.52e-07 + -2.600000 0.756015 1.218401 2.05e-06 1.18e-06 + -2.500000 0.774229 1.183863 1.80e-06 1.67e-06 + -2.400000 0.794548 1.150887 1.78e-06 2.26e-06 + -2.300000 0.816618 1.119956 1.73e-06 2.88e-06 + -2.200000 0.840091 1.091561 2.35e-06 9.16e-07 + -2.100000 0.864627 1.066206 1.41e-06 1.78e-06 + -2.000000 0.889903 1.044369 7.08e-07 1.83e-06 + -1.900000 0.915617 1.026506 8.72e-08 7.10e-06 + -1.800000 0.941487 1.013000 3.27e-07 8.36e-06 + -1.700000 0.967250 1.004167 2.68e-06 8.25e-06 + -1.600000 0.992670 1.000223 3.57e-06 9.84e-06 + -1.500000 1.017527 1.001259 3.97e-06 7.51e-06 + -1.400000 1.041619 1.007259 6.46e-06 9.78e-06 + -1.300000 1.064772 1.018066 5.08e-06 8.29e-06 + -1.200000 1.086813 1.033430 7.23e-06 8.10e-06 + -1.100000 1.107603 1.053000 6.59e-06 8.19e-06 + -1.000000 1.127004 1.076357 5.43e-06 7.25e-06 + -0.900000 1.144897 1.103036 7.08e-06 7.19e-06 + -0.800000 1.161180 1.132545 6.46e-06 6.66e-06 + -0.700000 1.175759 1.164387 5.27e-06 6.15e-06 + -0.600000 1.188551 1.198070 6.33e-06 6.04e-06 + -0.500000 1.199489 1.233121 6.80e-06 5.48e-06 + -0.400000 1.208518 1.269092 5.71e-06 4.92e-06 + -0.300000 1.215588 1.305562 5.38e-06 4.74e-06 + -0.200000 1.220662 1.342141 6.93e-06 4.44e-06 + -0.100000 1.223718 1.378469 6.52e-06 3.81e-06 + 0.000000 1.224739 1.414217 5.45e-06 3.44e-06 + 0.100000 1.223719 1.449083 6.01e-06 3.25e-06 + 0.200000 1.220662 1.482794 6.90e-06 2.72e-06 + 0.300000 1.215588 1.515100 5.89e-06 2.20e-06 + 0.400000 1.208519 1.545776 5.12e-06 1.91e-06 + 0.500000 1.199490 1.574621 6.23e-06 1.56e-06 + 0.600000 1.188551 1.601451 5.98e-06 9.90e-07 + 0.700000 1.175759 1.626106 4.83e-06 5.92e-07 + 0.800000 1.161182 1.648441 4.59e-06 3.18e-07 + 0.900000 1.144899 1.668330 5.22e-06 1.80e-07 + 1.000000 1.127005 1.685666 4.37e-06 6.52e-07 + 1.100000 1.107606 1.700354 3.45e-06 9.25e-07 + 1.200000 1.086817 1.712319 3.52e-06 1.26e-06 + 1.300000 1.064774 1.721497 3.17e-06 1.75e-06 + 1.400000 1.041623 1.727843 2.27e-06 2.05e-06 + 1.500000 1.017529 1.731325 1.62e-06 2.23e-06 + 1.600000 0.992672 1.731925 1.09e-06 2.62e-06 + 1.700000 0.967252 1.729640 2.98e-07 2.96e-06 + 1.800000 0.941488 1.724482 3.06e-07 3.07e-06 + 1.900000 0.915619 1.716476 1.21e-06 3.20e-06 + 2.000000 0.889905 1.705663 2.67e-06 3.54e-06 + 2.100000 0.864629 1.692098 3.20e-06 3.66e-06 + 2.200000 0.840092 1.675853 3.55e-06 3.60e-06 + 2.300000 0.816622 1.657013 5.76e-06 3.73e-06 + 2.400000 0.794553 1.635680 7.17e-06 3.89e-06 + 2.500000 0.774234 1.611974 6.62e-06 3.74e-06 + 2.600000 0.756019 1.586030 6.45e-06 3.52e-06 + 2.700000 0.740253 1.558002 7.30e-06 3.40e-06 + 2.800000 0.727255 1.528064 7.08e-06 3.25e-06 + 2.900000 0.717306 1.496410 4.96e-06 2.49e-06 + 3.000000 0.710640 1.463255 3.65e-06 1.95e-06 + 3.100000 0.707417 1.428837 4.78e-06 1.61e-06 + 3.200000 0.707713 1.393421 3.79e-06 1.41e-06 + 3.300000 0.711524 1.357296 4.13e-06 1.09e-06 + 3.400000 0.718753 1.320779 3.08e-06 9.90e-07 + 3.500000 0.729230 1.284218 3.50e-06 7.02e-07 + 3.600000 0.742714 1.247989 2.37e-06 7.15e-07 + 3.700000 0.758915 1.212502 9.93e-07 1.30e-06 + 3.800000 0.777507 1.178192 2.56e-07 1.98e-06 + 3.900000 0.798144 1.145525 2.27e-07 2.69e-06 + 4.000000 0.820474 1.114984 5.91e-07 3.44e-06 + 4.100000 0.844148 1.087067 8.85e-07 4.17e-06 + 4.200000 0.868831 1.062268 1.12e-06 4.90e-06 + 4.300000 0.894202 1.041068 1.31e-06 5.58e-06 + 4.400000 0.919963 1.023910 1.35e-06 3.31e-06 + 4.500000 0.945833 1.011171 9.17e-07 1.79e-06 + 4.600000 0.971554 1.003150 2.99e-06 5.83e-07 + 4.700000 0.996895 1.000039 2.92e-06 8.52e-07 + 4.800000 1.021636 1.001916 4.52e-06 5.99e-07 + 4.900000 1.045583 1.008738 5.49e-06 2.78e-06 + 5.000000 1.068560 1.020333 4.65e-06 1.94e-06 + 5.100000 1.090401 1.036432 6.80e-06 2.61e-06 + 5.200000 1.110966 1.056670 6.28e-06 3.13e-06 + 5.300000 1.130122 1.080620 5.31e-06 2.82e-06 + 5.400000 1.147750 1.107810 6.97e-06 3.23e-06 + 5.500000 1.163752 1.137746 6.56e-06 3.16e-06 + 5.600000 1.178037 1.169932 5.39e-06 3.04e-06 + 5.700000 1.190522 1.203878 6.25e-06 3.28e-06 + 5.800000 1.201142 1.239115 6.96e-06 3.08e-06 + 5.900000 1.209845 1.275198 5.92e-06 2.78e-06 + 6.000000 1.216582 1.311713 5.43e-06 2.82e-06 + 6.100000 1.221318 1.348275 6.97e-06 2.77e-06 + 6.200000 1.224032 1.384528 6.70e-06 2.33e-06 + 6.300000 1.224710 1.420148 5.59e-06 2.09e-06 + 6.400000 1.223347 1.454839 5.89e-06 2.04e-06 + 6.500000 1.219950 1.488330 6.96e-06 1.68e-06 + 6.600000 1.214538 1.520377 6.02e-06 1.24e-06 + 6.700000 1.207137 1.550759 5.14e-06 1.04e-06 + 6.800000 1.197783 1.579277 6.12e-06 7.99e-07 + 6.900000 1.186528 1.605752 6.04e-06 3.04e-07 + 7.000000 1.173431 1.630027 4.89e-06 4.45e-08 ------------------------------------------------------ Final Solver Statistics: - Internal solver steps = 82 (attempted = 84) - Total number of error test failures = 2 - Total RHS evals: Fe = 507, Fi = 1758 - Total mass matrix setups = 426 - Total mass matrix solves = 673 - Total mass times evals = 1753 - Total number of Jacobian evaluations = 153 - Total linear solver setups = 153 - Total number of Nonlinear iterations = 1671 - Total number of Nonlinear convergence failures = 146 - Errors: u = 0.00176018, v = 0.00238235, total = 0.0020945 + Internal solver steps = 83 (attempted = 83) + Total number of error test failures = 0 + Total RHS evals: Fe = 501, Fi = 1738 + Total mass matrix setups = 418 + Total mass matrix solves = 585 + Total mass times evals = 1735 + Total number of Jacobian evaluations = 145 + Total linear solver setups = 150 + Total number of Nonlinear iterations = 1652 + Total number of Nonlinear convergence failures = 144 + Errors: u = 4.76925e-06, v = 3.83012e-06, total = 4.32525e-06 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_1.out b/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_1.out index e2be8b2242..b27df8ddb3 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_1.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_0_4_1.out @@ -12,117 +12,117 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: t u v uerr verr ------------------------------------------------------ -3.000000 0.710636 1.363407 0.00e+00 0.00e+00 - -2.900000 0.717289 1.326981 1.22e-05 4.87e-05 - -2.800000 0.727288 1.290237 4.09e-05 1.17e-04 - -2.700000 0.740297 1.253927 5.15e-05 1.15e-04 - -2.600000 0.756075 1.218287 6.16e-05 1.13e-04 - -2.500000 0.774294 1.183760 6.63e-05 1.02e-04 - -2.400000 0.794465 1.150991 8.04e-05 1.06e-04 - -2.300000 0.816591 1.119982 2.54e-05 2.88e-05 - -2.200000 0.839974 1.091671 1.15e-04 1.11e-04 - -2.100000 0.864501 1.066305 1.25e-04 1.01e-04 - -2.000000 0.889952 1.044335 4.99e-05 3.23e-05 - -1.900000 0.915478 1.026570 1.40e-04 7.14e-05 - -1.800000 0.941493 1.012996 5.06e-06 4.44e-06 - -1.700000 0.967415 1.004136 1.62e-04 2.32e-05 - -1.600000 0.992703 1.000214 2.93e-05 1.23e-06 - -1.500000 1.017014 1.001151 5.16e-04 1.01e-04 - -1.400000 1.041533 1.007206 9.20e-05 4.25e-05 - -1.300000 1.064795 1.018071 1.80e-05 1.30e-05 - -1.200000 1.086754 1.033357 6.67e-05 6.51e-05 - -1.100000 1.107534 1.052895 7.53e-05 9.68e-05 - -1.000000 1.127009 1.076351 3.43e-07 8.07e-07 - -0.900000 1.144852 1.102926 5.16e-05 1.03e-04 - -0.800000 1.161168 1.132493 1.86e-05 4.54e-05 - -0.700000 1.175722 1.164256 4.22e-05 1.25e-04 - -0.600000 1.188552 1.198047 5.27e-06 1.75e-05 - -0.500000 1.199515 1.233200 1.89e-05 8.43e-05 - -0.400000 1.208522 1.269075 2.42e-06 1.17e-05 - -0.300000 1.215578 1.305441 1.55e-05 1.17e-04 - -0.200000 1.220681 1.342266 1.14e-05 1.29e-04 - -0.100000 1.223722 1.378393 3.13e-06 7.23e-05 - 0.000000 1.224745 1.414086 1.48e-07 1.28e-04 - 0.100000 1.223729 1.448982 4.45e-06 9.83e-05 - 0.200000 1.220673 1.482752 3.61e-06 3.94e-05 - 0.300000 1.215597 1.515075 3.25e-06 2.20e-05 - 0.400000 1.208502 1.545874 2.24e-05 9.94e-05 - 0.500000 1.199516 1.574554 1.92e-05 6.55e-05 - 0.600000 1.188518 1.601549 3.87e-05 9.88e-05 - 0.700000 1.175761 1.626111 2.75e-06 5.57e-06 - 0.800000 1.161205 1.648410 1.86e-05 3.00e-05 - 0.900000 1.144846 1.668405 5.80e-05 7.45e-05 - 1.000000 1.127053 1.685621 4.32e-05 4.52e-05 - 1.100000 1.107589 1.700371 2.04e-05 1.55e-05 - 1.200000 1.086897 1.712271 7.69e-05 4.83e-05 - 1.300000 1.064768 1.721502 8.56e-06 3.00e-06 - 1.400000 1.041562 1.727865 6.34e-05 1.99e-05 - 1.500000 1.016979 1.731422 5.52e-04 9.44e-05 - 1.600000 0.992455 1.731939 2.18e-04 1.18e-05 - 1.700000 0.967255 1.729643 2.52e-06 1.22e-07 - 1.800000 0.941270 1.724450 2.17e-04 3.51e-05 - 1.900000 0.915449 1.716434 1.69e-04 4.49e-05 - 2.000000 0.889997 1.705701 9.49e-05 3.43e-05 - 2.100000 0.864509 1.692044 1.17e-04 5.82e-05 - 2.200000 0.840053 1.675834 3.55e-05 2.29e-05 - 2.300000 0.816625 1.657023 8.96e-06 5.95e-06 - 2.400000 0.794637 1.635769 9.09e-05 8.47e-05 - 2.500000 0.774242 1.611994 1.46e-05 1.59e-05 - 2.600000 0.756072 1.586117 5.87e-05 8.37e-05 - 2.700000 0.740248 1.558009 2.12e-06 3.87e-06 - 2.800000 0.727215 1.527988 3.21e-05 7.88e-05 - 2.900000 0.717284 1.496348 1.74e-05 6.40e-05 - 3.000000 0.710627 1.463197 9.55e-06 5.99e-05 - 3.100000 0.707416 1.428919 3.99e-06 7.98e-05 - 3.200000 0.707704 1.393517 5.54e-06 9.49e-05 - 3.300000 0.711505 1.357381 1.41e-05 8.48e-05 - 3.400000 0.718731 1.320849 1.80e-05 6.91e-05 - 3.500000 0.729200 1.284292 2.71e-05 7.41e-05 - 3.600000 0.742748 1.247913 3.58e-05 7.72e-05 - 3.700000 0.758982 1.212381 6.88e-05 1.22e-04 - 3.800000 0.777446 1.178286 6.03e-05 9.15e-05 - 3.900000 0.798166 1.145500 2.24e-05 2.78e-05 - 4.000000 0.820371 1.115102 1.04e-04 1.14e-04 - 4.100000 0.844171 1.087051 2.16e-05 2.02e-05 - 4.200000 0.868963 1.062173 1.30e-04 1.00e-04 - 4.300000 0.894283 1.041024 7.92e-05 4.92e-05 - 4.400000 0.920076 1.023865 1.12e-04 4.82e-05 - 4.500000 0.945936 1.011146 1.02e-04 2.64e-05 - 4.600000 0.970923 1.003241 6.35e-04 9.12e-05 - 4.700000 0.996888 1.000082 9.99e-06 4.35e-05 - 4.800000 1.022163 1.002075 5.22e-04 1.59e-04 - 4.900000 1.045496 1.008688 9.33e-05 4.76e-05 - 5.000000 1.068614 1.020369 4.90e-05 3.76e-05 - 5.100000 1.090360 1.036381 4.73e-05 4.80e-05 - 5.200000 1.110916 1.056593 5.59e-05 7.42e-05 - 5.300000 1.130183 1.080712 5.58e-05 9.51e-05 - 5.400000 1.147723 1.107737 3.42e-05 6.99e-05 - 5.500000 1.163719 1.137644 3.97e-05 9.93e-05 - 5.600000 1.178039 1.169920 3.34e-06 8.82e-06 - 5.700000 1.190563 1.204006 3.50e-05 1.31e-04 - 5.800000 1.201123 1.238990 2.66e-05 1.22e-04 - 5.900000 1.209871 1.275316 2.03e-05 1.20e-04 - 6.000000 1.216589 1.311725 1.53e-06 1.48e-05 - 6.100000 1.221314 1.348140 1.10e-05 1.33e-04 - 6.200000 1.224040 1.384556 1.20e-06 3.07e-05 - 6.300000 1.224715 1.420276 1.45e-06 1.30e-04 - 6.400000 1.223358 1.454743 4.94e-06 9.31e-05 - 6.500000 1.219962 1.488272 5.90e-06 5.59e-05 - 6.600000 1.214545 1.520364 1.61e-06 1.17e-05 - 6.700000 1.207127 1.550821 1.50e-05 6.31e-05 - 6.800000 1.197802 1.579235 1.25e-05 4.12e-05 - 6.900000 1.186493 1.605851 4.03e-05 9.91e-05 - 7.000000 1.173431 1.630035 4.42e-06 8.62e-06 + -2.900000 0.717301 1.326933 4.49e-10 2.27e-12 + -2.800000 0.727247 1.290353 4.71e-10 2.40e-12 + -2.700000 0.740246 1.254042 4.75e-10 2.42e-12 + -2.600000 0.756013 1.218400 4.81e-10 2.45e-12 + -2.500000 0.774227 1.183861 4.86e-10 2.53e-12 + -2.400000 0.794546 1.150885 4.63e-10 2.35e-12 + -2.300000 0.816616 1.119953 4.77e-10 2.40e-12 + -2.200000 0.840089 1.091560 4.63e-10 2.28e-12 + -2.100000 0.864625 1.066204 4.49e-10 1.91e-12 + -2.000000 0.889903 1.044367 4.35e-10 2.22e-12 + -1.900000 0.915617 1.026499 1.65e-10 5.44e-12 + -1.800000 0.941488 1.012992 2.06e-09 3.81e-11 + -1.700000 0.967253 1.004159 8.28e-10 5.15e-12 + -1.600000 0.992673 1.000213 2.51e-08 1.04e-10 + -1.500000 1.017531 1.001252 7.18e-08 1.15e-09 + -1.400000 1.041625 1.007249 7.22e-10 3.60e-11 + -1.300000 1.064777 1.018058 7.17e-10 3.30e-11 + -1.200000 1.086821 1.033422 6.98e-10 2.85e-11 + -1.100000 1.107609 1.052992 7.02e-10 2.53e-11 + -1.000000 1.127010 1.076350 7.44e-10 2.17e-11 + -0.900000 1.144904 1.103029 7.25e-10 1.91e-11 + -0.800000 1.161186 1.132539 7.50e-10 1.63e-11 + -0.700000 1.175764 1.164381 7.38e-10 1.40e-11 + -0.600000 1.188557 1.198064 7.71e-10 1.19e-11 + -0.500000 1.199496 1.233116 8.00e-10 9.72e-12 + -0.400000 1.208524 1.269087 7.82e-10 8.43e-12 + -0.300000 1.215594 1.305557 7.61e-10 6.91e-12 + -0.200000 1.220669 1.342137 8.22e-10 5.38e-12 + -0.100000 1.223725 1.378465 1.64e-07 8.46e-10 + 0.000000 1.224745 1.414214 7.74e-08 3.69e-10 + 0.100000 1.223724 1.449080 1.98e-07 9.71e-10 + 0.200000 1.220669 1.482791 2.35e-07 1.13e-09 + 0.300000 1.215594 1.515097 2.41e-07 1.12e-09 + 0.400000 1.208524 1.545774 8.88e-10 9.81e-11 + 0.500000 1.199496 1.574619 7.62e-10 8.75e-11 + 0.600000 1.188557 1.601450 8.07e-10 7.72e-11 + 0.700000 1.175764 1.626105 7.70e-10 6.85e-11 + 0.800000 1.161186 1.648441 7.48e-10 6.09e-11 + 0.900000 1.144904 1.668331 7.79e-10 5.39e-11 + 1.000000 1.127010 1.685666 7.17e-10 4.84e-11 + 1.100000 1.107609 1.700355 7.31e-10 4.30e-11 + 1.200000 1.086821 1.712320 6.79e-10 3.86e-11 + 1.300000 1.064777 1.721499 6.92e-10 3.44e-11 + 1.400000 1.041625 1.727845 2.04e-08 6.72e-11 + 1.500000 1.017530 1.731328 1.59e-07 7.12e-10 + 1.600000 0.992673 1.731928 6.88e-08 2.91e-10 + 1.700000 0.967253 1.729643 8.70e-08 3.76e-10 + 1.800000 0.941488 1.724485 5.13e-10 5.69e-11 + 1.900000 0.915617 1.716479 8.67e-10 5.85e-11 + 2.000000 0.889903 1.705666 6.33e-10 5.28e-11 + 2.100000 0.864625 1.692102 6.31e-10 4.83e-11 + 2.200000 0.840089 1.675857 5.82e-10 4.42e-11 + 2.300000 0.816616 1.657017 5.51e-10 4.05e-11 + 2.400000 0.794546 1.635684 5.15e-10 3.71e-11 + 2.500000 0.774227 1.611978 5.14e-10 3.44e-11 + 2.600000 0.756013 1.586033 4.88e-10 3.16e-11 + 2.700000 0.740246 1.558005 4.89e-10 2.93e-11 + 2.800000 0.727247 1.528067 4.90e-10 2.73e-11 + 2.900000 0.717301 1.496412 4.79e-10 2.54e-11 + 3.000000 0.710636 1.463257 4.70e-10 2.36e-11 + 3.100000 0.707412 1.428839 9.20e-08 4.46e-10 + 3.200000 0.707710 1.393422 1.09e-07 5.62e-10 + 3.300000 0.711520 1.357297 5.27e-10 1.53e-11 + 3.400000 0.718750 1.320780 4.47e-10 1.41e-11 + 3.500000 0.729227 1.284218 4.49e-10 1.32e-11 + 3.600000 0.742712 1.247990 4.72e-10 1.26e-11 + 3.700000 0.758914 1.212503 4.83e-10 1.20e-11 + 3.800000 0.777506 1.178194 4.61e-10 1.13e-11 + 3.900000 0.798144 1.145528 4.83e-10 1.07e-11 + 4.000000 0.820474 1.114988 4.63e-10 9.99e-12 + 4.100000 0.844149 1.087071 4.86e-10 9.55e-12 + 4.200000 0.868832 1.062273 4.87e-10 8.65e-12 + 4.300000 0.894204 1.041074 4.18e-10 8.16e-12 + 4.400000 0.919964 1.023913 7.04e-12 4.13e-12 + 4.500000 0.945834 1.011173 1.24e-09 1.30e-11 + 4.600000 0.971557 1.003150 2.19e-08 6.19e-10 + 4.700000 0.996898 1.000038 1.43e-07 2.28e-09 + 4.800000 1.021640 1.001916 1.99e-07 1.27e-09 + 4.900000 1.045589 1.008736 6.84e-10 3.85e-11 + 5.000000 1.068565 1.020331 7.31e-10 3.42e-11 + 5.100000 1.090408 1.036429 7.07e-10 2.95e-11 + 5.200000 1.110972 1.056667 7.11e-10 2.61e-11 + 5.300000 1.130127 1.080617 7.73e-10 2.25e-11 + 5.400000 1.147757 1.107807 7.36e-10 1.98e-11 + 5.500000 1.163759 1.137743 7.37e-10 1.71e-11 + 5.600000 1.178042 1.169929 7.67e-10 1.46e-11 + 5.700000 1.190528 1.203875 8.07e-10 1.21e-11 + 5.800000 1.201149 1.239112 7.52e-10 1.06e-11 + 5.900000 1.209851 1.275195 8.14e-10 8.47e-12 + 6.000000 1.216587 1.311711 7.93e-10 7.30e-12 + 6.100000 1.221325 1.348272 7.60e-10 6.06e-12 + 6.200000 1.224039 1.384525 2.32e-07 1.19e-09 + 6.300000 1.224716 1.420146 1.87e-07 9.24e-10 + 6.400000 1.223353 1.454836 2.45e-07 1.21e-09 + 6.500000 1.219956 1.488328 2.34e-07 1.12e-09 + 6.600000 1.214543 1.520375 2.43e-07 1.12e-09 + 6.700000 1.207142 1.550758 8.17e-10 9.47e-11 + 6.800000 1.197789 1.579276 7.68e-10 8.41e-11 + 6.900000 1.186534 1.605752 8.06e-10 7.42e-11 + 7.000000 1.173436 1.630027 7.70e-10 6.59e-11 ------------------------------------------------------ Final Solver Statistics: Internal solver steps = 2271 (attempted = 3401) Total number of error test failures = 0 - Total RHS evals: Fe = 14917, Fi = 51629 - Total mass matrix setups = 13777 - Total mass matrix solves = 68814 + Total RHS evals: Fe = 13787, Fi = 50499 + Total mass matrix setups = 12646 + Total mass matrix solves = 64284 Total mass times evals = 2271 Total number of Jacobian evaluations = 0 Total linear solver setups = 0 Total number of Nonlinear iterations = 36712 Total number of Nonlinear convergence failures = 1130 - Errors: u = 0.000128202, v = 7.56396e-05, total = 0.000105255 + Errors: u = 7.56688e-08, v = 4.52391e-10, total = 5.35069e-08 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_0_5.out b/examples/arkode/CXX_serial/ark_kpr_Mt_0_5.out index 0e4c7017ec..7f9417757d 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_0_5.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_0_5.out @@ -12,117 +12,117 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: t u v uerr verr ------------------------------------------------------ -3.000000 0.710636 1.363407 0.00e+00 0.00e+00 - -2.900000 0.717388 1.327299 8.73e-05 3.66e-04 - -2.800000 0.728314 1.288641 1.07e-03 1.71e-03 - -2.700000 0.741339 1.252148 1.09e-03 1.89e-03 - -2.600000 0.755772 1.218919 2.41e-04 5.19e-04 - -2.500000 0.775163 1.183340 9.36e-04 5.22e-04 - -2.400000 0.796592 1.149044 2.05e-03 1.84e-03 - -2.300000 0.817654 1.120075 1.04e-03 1.22e-04 - -2.200000 0.843176 1.090371 3.09e-03 1.19e-03 - -2.100000 0.868704 1.064378 4.08e-03 1.83e-03 - -2.000000 0.893196 1.042908 3.29e-03 1.46e-03 - -1.900000 0.916762 1.026017 1.15e-03 4.82e-04 - -1.800000 0.945436 1.012933 3.95e-03 5.90e-05 - -1.700000 0.980666 1.004097 1.34e-02 6.16e-05 - -1.600000 0.998761 1.000587 6.09e-03 3.73e-04 - -1.500000 1.017448 1.000988 8.25e-05 2.63e-04 - -1.400000 1.042940 1.007750 1.32e-03 5.01e-04 - -1.300000 1.071766 1.020789 6.99e-03 2.73e-03 - -1.200000 1.096158 1.037591 9.34e-03 4.17e-03 - -1.100000 1.116122 1.057371 8.51e-03 4.38e-03 - -1.000000 1.133776 1.080322 6.77e-03 3.97e-03 - -0.900000 1.150174 1.106624 5.27e-03 3.59e-03 - -0.800000 1.165496 1.136147 4.31e-03 3.61e-03 - -0.700000 1.179450 1.168433 3.69e-03 4.05e-03 - -0.600000 1.191803 1.202813 3.25e-03 4.75e-03 - -0.500000 1.202130 1.238472 2.63e-03 5.36e-03 - -0.400000 1.210436 1.274789 1.91e-03 5.70e-03 - -0.300000 1.216680 1.310633 1.09e-03 5.08e-03 - -0.200000 1.221032 1.345104 3.63e-04 2.97e-03 - -0.100000 1.223727 1.378032 2.80e-06 4.33e-04 - 0.000000 1.224604 1.412721 1.41e-04 1.49e-03 - 0.100000 1.223128 1.449128 5.97e-04 4.77e-05 - 0.200000 1.219267 1.485113 1.40e-03 2.32e-03 - 0.300000 1.213399 1.519147 2.19e-03 4.05e-03 - 0.400000 1.206050 1.550292 2.47e-03 4.52e-03 - 0.500000 1.197696 1.577986 1.80e-03 3.37e-03 - 0.600000 1.188182 1.602312 3.75e-04 8.61e-04 - 0.700000 1.175839 1.625020 7.53e-05 1.08e-03 - 0.800000 1.159254 1.648147 1.93e-03 2.94e-04 - 0.900000 1.140173 1.669602 4.73e-03 1.27e-03 - 1.000000 1.120421 1.687986 6.59e-03 2.32e-03 - 1.100000 1.101290 1.702694 6.32e-03 2.34e-03 - 1.200000 1.083051 1.713755 3.77e-03 1.43e-03 - 1.300000 1.064474 1.721636 3.03e-04 1.38e-04 - 1.400000 1.041492 1.727466 1.33e-04 3.79e-04 - 1.500000 1.013536 1.731237 3.99e-03 9.08e-05 - 1.600000 0.984457 1.731961 8.22e-03 3.28e-05 - 1.700000 0.957111 1.729388 1.01e-02 2.55e-04 - 1.800000 0.932874 1.723796 8.61e-03 6.88e-04 - 1.900000 0.911325 1.715739 4.29e-03 7.40e-04 - 2.000000 0.890114 1.705753 2.11e-04 8.67e-05 - 2.100000 0.864107 1.692643 5.18e-04 5.41e-04 - 2.200000 0.835391 1.675464 4.70e-03 3.93e-04 - 2.300000 0.808511 1.654919 8.10e-03 2.10e-03 - 2.400000 0.785914 1.632068 8.63e-03 3.62e-03 - 2.500000 0.768154 1.608069 6.07e-03 3.91e-03 - 2.600000 0.754531 1.584376 1.48e-03 1.66e-03 - 2.700000 0.740261 1.559180 1.56e-05 1.18e-03 - 2.800000 0.724434 1.524972 2.81e-03 3.09e-03 - 2.900000 0.715918 1.492839 1.38e-03 3.57e-03 - 3.000000 0.710611 1.463290 2.53e-05 3.29e-05 - 3.100000 0.707311 1.424683 1.01e-04 4.16e-03 - 3.200000 0.708518 1.392506 8.09e-04 9.17e-04 - 3.300000 0.711954 1.355294 4.34e-04 2.00e-03 - 3.400000 0.721526 1.317145 2.78e-03 3.63e-03 - 3.500000 0.729040 1.285553 1.87e-04 1.33e-03 - 3.600000 0.746590 1.243533 3.88e-03 4.46e-03 - 3.700000 0.761014 1.212342 2.10e-03 1.61e-04 - 3.800000 0.779555 1.175901 2.05e-03 2.29e-03 - 3.900000 0.803501 1.142951 5.36e-03 2.58e-03 - 4.000000 0.819925 1.115851 5.49e-04 8.63e-04 - 4.100000 0.850182 1.084064 6.03e-03 3.01e-03 - 4.200000 0.870689 1.062493 1.86e-03 2.20e-04 - 4.300000 0.897346 1.039678 3.14e-03 1.40e-03 - 4.400000 0.925196 1.023112 5.23e-03 8.01e-04 - 4.500000 0.945438 1.011315 3.96e-04 1.43e-04 - 4.600000 0.975016 1.003205 3.46e-03 5.53e-05 - 4.700000 1.000787 1.000237 3.89e-03 1.98e-04 - 4.800000 1.023771 1.002064 2.13e-03 1.48e-04 - 4.900000 1.049731 1.010069 4.14e-03 1.33e-03 - 5.000000 1.069597 1.020192 1.03e-03 1.39e-04 - 5.100000 1.094382 1.038873 3.97e-03 2.44e-03 - 5.200000 1.111245 1.056062 2.73e-04 6.05e-04 - 5.300000 1.133607 1.083908 3.48e-03 3.29e-03 - 5.400000 1.147625 1.106806 1.32e-04 1.00e-03 - 5.500000 1.166537 1.141480 2.78e-03 3.74e-03 - 5.600000 1.177807 1.168831 2.35e-04 1.10e-03 - 5.700000 1.192487 1.207635 1.96e-03 3.76e-03 - 5.800000 1.201013 1.238372 1.36e-04 7.40e-04 - 5.900000 1.211002 1.278614 1.15e-03 3.42e-03 - 6.000000 1.216618 1.311855 3.03e-05 1.45e-04 - 6.100000 1.221705 1.351089 3.80e-04 2.82e-03 - 6.200000 1.224097 1.385673 5.79e-05 1.15e-03 - 6.300000 1.224433 1.422213 2.83e-04 2.07e-03 - 6.400000 1.223202 1.456776 1.51e-04 1.94e-03 - 6.500000 1.219174 1.489612 7.82e-04 1.28e-03 - 6.600000 1.213915 1.522834 6.29e-04 2.46e-03 - 6.700000 1.206078 1.551321 1.06e-03 5.63e-04 - 6.800000 1.196415 1.581959 1.37e-03 2.68e-03 - 6.900000 1.185452 1.605738 1.08e-03 1.44e-05 - 7.000000 1.171096 1.632645 2.34e-03 2.62e-03 + -2.900000 0.717299 1.326933 2.17e-06 2.61e-08 + -2.800000 0.727242 1.290353 5.02e-06 4.87e-08 + -2.700000 0.740244 1.254041 2.34e-06 1.64e-08 + -2.600000 0.756012 1.218400 1.45e-06 5.75e-08 + -2.500000 0.774224 1.183861 3.66e-06 4.59e-08 + -2.400000 0.794544 1.150885 1.97e-06 5.84e-08 + -2.300000 0.816613 1.119953 3.48e-06 1.01e-07 + -2.200000 0.840087 1.091560 2.43e-06 1.14e-09 + -2.100000 0.864618 1.066204 7.08e-06 2.30e-09 + -2.000000 0.889895 1.044367 7.59e-06 3.97e-08 + -1.900000 0.915607 1.026499 1.06e-05 1.44e-07 + -1.800000 0.941492 1.012991 4.02e-06 4.95e-07 + -1.700000 0.967257 1.004158 4.11e-06 4.82e-07 + -1.600000 0.992683 1.000213 9.89e-06 6.54e-07 + -1.500000 1.017558 1.001251 2.75e-05 1.04e-06 + -1.400000 1.041689 1.007247 6.33e-05 1.54e-06 + -1.300000 1.064815 1.018056 3.81e-05 1.54e-06 + -1.200000 1.086836 1.033420 1.52e-05 1.52e-06 + -1.100000 1.107689 1.052990 8.03e-05 2.09e-06 + -1.000000 1.127096 1.076348 8.61e-05 2.22e-06 + -0.900000 1.144923 1.103027 1.91e-05 1.84e-06 + -0.800000 1.161242 1.132537 5.54e-05 2.09e-06 + -0.700000 1.175875 1.164378 1.11e-04 2.44e-06 + -0.600000 1.188617 1.198062 5.95e-05 2.11e-06 + -0.500000 1.199513 1.233114 1.68e-05 1.88e-06 + -0.400000 1.208606 1.269084 8.23e-05 2.98e-06 + -0.300000 1.215709 1.305554 1.16e-04 3.26e-06 + -0.200000 1.220692 1.342134 2.30e-05 2.71e-06 + -0.100000 1.223796 1.378462 7.12e-05 3.08e-06 + 0.000000 1.224877 1.414210 1.32e-04 3.54e-06 + 0.100000 1.223793 1.449077 6.82e-05 3.15e-06 + 0.200000 1.220698 1.482788 2.92e-05 3.17e-06 + 0.300000 1.215709 1.515093 1.16e-04 4.03e-06 + 0.400000 1.208659 1.545770 1.35e-04 4.24e-06 + 0.500000 1.199523 1.574616 2.67e-05 3.55e-06 + 0.600000 1.188625 1.601447 6.77e-05 3.55e-06 + 0.700000 1.175888 1.626102 1.24e-04 3.24e-06 + 0.800000 1.161245 1.648438 5.90e-05 2.46e-06 + 0.900000 1.144927 1.668329 2.33e-05 1.85e-06 + 1.000000 1.127103 1.685665 9.32e-05 1.66e-06 + 1.100000 1.107692 1.700354 8.25e-05 1.18e-06 + 1.200000 1.086835 1.712319 1.40e-05 5.65e-07 + 1.300000 1.064818 1.721499 4.17e-05 2.90e-07 + 1.400000 1.041691 1.727845 6.55e-05 2.56e-09 + 1.500000 1.017558 1.731328 2.73e-05 4.16e-07 + 1.600000 0.992682 1.731928 8.66e-06 7.34e-07 + 1.700000 0.967276 1.729644 2.38e-05 1.04e-06 + 1.800000 0.941500 1.724486 1.27e-05 1.33e-06 + 1.900000 0.915618 1.716480 6.40e-07 1.48e-06 + 2.000000 0.889865 1.705668 3.74e-05 1.97e-06 + 2.100000 0.864463 1.692105 1.63e-04 2.89e-06 + 2.200000 0.839771 1.675861 3.18e-04 3.84e-06 + 2.300000 0.816292 1.657021 3.24e-04 3.84e-06 + 2.400000 0.794423 1.635687 1.23e-04 2.71e-06 + 2.500000 0.774078 1.611980 1.50e-04 2.70e-06 + 2.600000 0.755825 1.586036 1.88e-04 3.00e-06 + 2.700000 0.740043 1.558009 2.03e-04 3.71e-06 + 2.800000 0.727119 1.528070 1.28e-04 3.62e-06 + 2.900000 0.717266 1.496415 3.55e-05 3.11e-06 + 3.000000 0.710497 1.463260 1.40e-04 3.72e-06 + 3.100000 0.707393 1.428842 1.94e-05 3.00e-06 + 3.200000 0.707605 1.393426 1.04e-04 3.48e-06 + 3.300000 0.711478 1.357300 4.12e-05 3.10e-06 + 3.400000 0.718691 1.320783 5.83e-05 3.23e-06 + 3.500000 0.729151 1.284222 7.60e-05 3.36e-06 + 3.600000 0.742697 1.247993 1.45e-05 2.83e-06 + 3.700000 0.758850 1.212506 6.40e-05 2.82e-06 + 3.800000 0.777488 1.178197 1.79e-05 2.37e-06 + 3.900000 0.798113 1.145530 3.15e-05 2.20e-06 + 4.000000 0.820445 1.114990 2.97e-05 1.96e-06 + 4.100000 0.844142 1.087072 7.54e-06 1.64e-06 + 4.200000 0.868812 1.062275 1.99e-05 1.45e-06 + 4.300000 0.894201 1.041075 2.88e-06 1.19e-06 + 4.400000 0.919960 1.023914 3.54e-06 9.65e-07 + 4.500000 0.945847 1.011173 1.29e-05 6.70e-07 + 4.600000 0.971568 1.003150 1.10e-05 4.18e-07 + 4.700000 0.996908 1.000039 9.91e-06 1.68e-07 + 4.800000 1.021690 1.001916 4.99e-05 3.06e-07 + 4.900000 1.045717 1.008735 1.28e-04 9.66e-07 + 5.000000 1.068798 1.020329 2.33e-04 1.82e-06 + 5.100000 1.090687 1.036427 2.79e-04 2.26e-06 + 5.200000 1.111265 1.056665 2.93e-04 2.47e-06 + 5.300000 1.130409 1.080614 2.82e-04 2.48e-06 + 5.400000 1.148027 1.107804 2.70e-04 2.45e-06 + 5.500000 1.164021 1.137741 2.62e-04 2.42e-06 + 5.600000 1.178250 1.169926 2.08e-04 2.55e-06 + 5.700000 1.190798 1.203872 2.71e-04 2.75e-06 + 5.800000 1.201390 1.239109 2.40e-04 2.93e-06 + 5.900000 1.210030 1.275192 1.79e-04 2.93e-06 + 6.000000 1.216691 1.311708 1.03e-04 2.78e-06 + 6.100000 1.221360 1.348269 3.51e-05 2.63e-06 + 6.200000 1.224072 1.384523 3.32e-05 2.86e-06 + 6.300000 1.224817 1.420142 1.01e-04 3.52e-06 + 6.400000 1.223526 1.454832 1.73e-04 4.16e-06 + 6.500000 1.220166 1.488323 2.09e-04 4.52e-06 + 6.600000 1.214751 1.520371 2.07e-04 4.43e-06 + 6.700000 1.207326 1.550753 1.84e-04 4.55e-06 + 6.800000 1.197850 1.579273 6.10e-05 3.22e-06 + 6.900000 1.186555 1.605750 2.16e-05 2.46e-06 + 7.000000 1.173507 1.630024 7.15e-05 2.08e-06 ------------------------------------------------------ Final Solver Statistics: - Internal solver steps = 149 (attempted = 150) - Total number of error test failures = 0 - Total RHS evals: Fe = 1299, Fi = 4690 - Total mass matrix setups = 1249 - Total mass matrix solves = 2644 - Total mass times evals = 3540 - Total number of Jacobian evaluations = 183 - Total linear solver setups = 183 - Total number of Nonlinear iterations = 3391 - Total number of Nonlinear convergence failures = 174 - Errors: u = 0.00385864, v = 0.00235449, total = 0.0031963 + Internal solver steps = 144 (attempted = 146) + Total number of error test failures = 1 + Total RHS evals: Fe = 1265, Fi = 4680 + Total mass matrix setups = 1121 + Total mass matrix solves = 2428 + Total mass times evals = 3559 + Total number of Jacobian evaluations = 204 + Total linear solver setups = 214 + Total number of Nonlinear iterations = 3415 + Total number of Nonlinear convergence failures = 203 + Errors: u = 0.000119634, v = 2.45689e-06, total = 8.46118e-05 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out index b3ee50ac25..f46a56f17b 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out @@ -17,7 +17,7 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: h = 6.250e-02, error = 1.109e-06, order = 2.86 h = 3.125e-02, error = 1.482e-07, order = 2.90 h = 1.562e-02, error = 1.929e-08, order = 2.94 - h = 7.812e-03, error = 2.467e-09, order = 2.97 + h = 7.812e-03, error = 2.466e-09, order = 2.97 h = 3.906e-03, error = 3.121e-10, order = 2.98 ----------------------------------------------------- Order: max = 2.98, avg = 2.89, overall = 2.89 [SUCCESS] diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out index 0dd082d2db..d580da10e9 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out @@ -14,10 +14,10 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: h = 5.000e-01, error = 1.725e-05 h = 2.500e-01, error = 2.900e-06, order = 2.57 h = 1.250e-01, error = 3.630e-07, order = 3.00 - h = 6.250e-02, error = 2.784e-08, order = 3.70 - h = 3.125e-02, error = 1.198e-09, order = 4.54 - h = 1.562e-02, error = 4.518e-11, order = 4.73 - h = 7.812e-03, error = 1.355e-11, order = 1.74 - h = 3.906e-03, error = 1.389e-10, order = -3.36 + h = 6.250e-02, error = 2.783e-08, order = 3.71 + h = 3.125e-02, error = 1.199e-09, order = 4.54 + h = 1.562e-02, error = 4.657e-11, order = 4.69 + h = 7.812e-03, error = 9.513e-12, order = 2.29 + h = 3.906e-03, error = 1.389e-10, order = -3.87 ----------------------------------------------------- - Order: max = 4.73, avg = 2.42, overall = 2.98 [SUCCESS] + Order: max = 4.69, avg = 2.42, overall = 3.01 [SUCCESS] diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out b/examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out index f50c73b72e..d105049908 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out @@ -12,106 +12,106 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: t u v uerr verr ------------------------------------------------------ -3.000000 0.710636 1.363407 0.00e+00 0.00e+00 - -2.900000 0.717208 1.327305 9.30e-05 3.72e-04 - -2.800000 0.727268 1.290371 2.03e-05 1.72e-05 - -2.700000 0.740425 1.253644 1.79e-04 3.98e-04 - -2.600000 0.755801 1.218831 2.12e-04 4.31e-04 - -2.500000 0.774699 1.183143 4.72e-04 7.18e-04 - -2.400000 0.794073 1.151533 4.73e-04 6.47e-04 - -2.300000 0.817175 1.119339 5.59e-04 6.14e-04 - -2.200000 0.839499 1.092138 5.90e-04 5.78e-04 - -2.100000 0.864212 1.066598 4.13e-04 3.94e-04 - -2.000000 0.889032 1.044976 8.71e-04 6.09e-04 - -1.900000 0.914718 1.026973 9.00e-04 4.74e-04 - -1.800000 0.940179 1.013455 1.31e-03 4.63e-04 - -1.700000 0.968083 1.004047 8.31e-04 1.12e-04 - -1.600000 0.993909 1.000388 1.24e-03 1.75e-04 - -1.500000 1.017654 1.001477 1.23e-04 2.25e-04 - -1.400000 1.040934 1.007085 6.92e-04 1.64e-04 - -1.300000 1.063961 1.017604 8.15e-04 4.54e-04 - -1.200000 1.086272 1.033016 5.49e-04 4.06e-04 - -1.100000 1.107659 1.053203 4.94e-05 2.11e-04 - -1.000000 1.127623 1.077435 6.13e-04 1.08e-03 - -0.900000 1.144846 1.102917 5.76e-05 1.13e-04 - -0.800000 1.161002 1.132205 1.85e-04 3.34e-04 - -0.700000 1.176043 1.165234 2.79e-04 8.53e-04 - -0.600000 1.188410 1.197657 1.47e-04 4.07e-04 - -0.500000 1.199588 1.233521 9.12e-05 4.05e-04 - -0.400000 1.208528 1.269280 4.29e-06 1.93e-04 - -0.300000 1.215451 1.304558 1.42e-04 9.99e-04 - -0.200000 1.220755 1.343310 8.63e-05 1.17e-03 - -0.100000 1.223670 1.377830 5.45e-05 6.35e-04 - 0.000000 1.224746 1.413828 1.30e-06 3.86e-04 - 0.100000 1.223656 1.450033 6.83e-05 9.53e-04 - 0.200000 1.220713 1.482092 4.42e-05 6.99e-04 - 0.300000 1.215653 1.514717 5.94e-05 3.81e-04 - 0.400000 1.208303 1.546650 2.21e-04 8.76e-04 - 0.500000 1.199626 1.574073 1.30e-04 5.46e-04 - 0.600000 1.188765 1.600906 2.08e-04 5.44e-04 - 0.700000 1.175362 1.626884 4.02e-04 7.79e-04 - 0.800000 1.160968 1.648722 2.18e-04 2.81e-04 - 0.900000 1.145114 1.667998 2.10e-04 3.33e-04 - 1.000000 1.127514 1.685113 5.04e-04 5.53e-04 - 1.100000 1.108159 1.699899 5.49e-04 4.56e-04 - 1.200000 1.087142 1.712119 3.22e-04 2.01e-04 - 1.300000 1.064531 1.721612 2.45e-04 1.13e-04 - 1.400000 1.040958 1.728047 6.67e-04 2.01e-04 - 1.500000 1.016725 1.731456 8.05e-04 1.29e-04 - 1.600000 0.991983 1.731941 6.91e-04 1.35e-05 - 1.700000 0.966874 1.729586 3.79e-04 5.72e-05 - 1.800000 0.940784 1.724279 7.04e-04 2.06e-04 - 1.900000 0.915877 1.716442 2.59e-04 3.71e-05 - 2.000000 0.890471 1.705877 5.68e-04 2.10e-04 - 2.100000 0.863219 1.691310 1.41e-03 7.92e-04 - 2.200000 0.840201 1.675797 1.12e-04 5.96e-05 - 2.300000 0.816737 1.657004 1.21e-04 1.31e-05 - 2.400000 0.793668 1.634786 8.78e-04 8.98e-04 - 2.500000 0.774939 1.612776 7.11e-04 7.98e-04 - 2.600000 0.755378 1.585094 6.35e-04 9.39e-04 - 2.700000 0.739812 1.557192 4.34e-04 8.13e-04 - 2.800000 0.727481 1.528628 2.34e-04 5.61e-04 - 2.900000 0.717491 1.496927 1.90e-04 5.15e-04 - 3.000000 0.710508 1.462255 1.29e-04 1.00e-03 - 3.100000 0.707466 1.429783 5.39e-05 9.44e-04 - 3.200000 0.707793 1.392653 8.38e-05 7.69e-04 - 3.300000 0.711356 1.358368 1.64e-04 1.07e-03 - 3.400000 0.719043 1.319780 2.93e-04 9.99e-04 - 3.500000 0.728867 1.285263 3.60e-04 1.04e-03 - 3.600000 0.743163 1.247040 4.51e-04 9.50e-04 - 3.700000 0.759125 1.212182 2.12e-04 3.21e-04 - 3.800000 0.777005 1.178985 5.01e-04 7.90e-04 - 3.900000 0.797903 1.145840 2.41e-04 3.12e-04 - 4.000000 0.821085 1.114325 6.11e-04 6.63e-04 - 4.100000 0.844766 1.086520 6.17e-04 5.50e-04 - 4.200000 0.869296 1.061916 4.64e-04 3.57e-04 - 4.300000 0.894280 1.041111 7.58e-05 3.77e-05 - 4.400000 0.919226 1.024310 7.38e-04 3.97e-04 - 4.500000 0.947241 1.010826 1.41e-03 3.47e-04 - 4.600000 0.972517 1.003182 9.60e-04 3.27e-05 - 4.700000 0.996899 1.000222 6.87e-07 1.84e-04 - 4.800000 1.020790 1.001834 8.50e-04 8.23e-05 - 4.900000 1.044488 1.008269 1.10e-03 4.67e-04 - 5.000000 1.067577 1.019650 9.88e-04 6.81e-04 - 5.100000 1.089592 1.035682 8.16e-04 7.47e-04 - 5.200000 1.110689 1.056427 2.83e-04 2.40e-04 - 5.300000 1.130590 1.081510 4.63e-04 8.94e-04 - 5.400000 1.148014 1.108349 2.57e-04 5.43e-04 - 5.500000 1.163471 1.137100 2.88e-04 6.43e-04 - 5.600000 1.178297 1.170732 2.55e-04 8.03e-04 - 5.700000 1.190803 1.204950 2.75e-04 1.08e-03 - 5.800000 1.201254 1.239702 1.04e-04 5.91e-04 - 5.900000 1.209788 1.274961 6.34e-05 2.35e-04 - 6.000000 1.216453 1.310771 1.35e-04 9.40e-04 - 6.100000 1.221238 1.347205 8.70e-05 1.07e-03 - 6.200000 1.224075 1.385740 3.64e-05 1.21e-03 - 6.300000 1.224694 1.421145 2.19e-05 9.99e-04 - 6.400000 1.223290 1.455612 6.29e-05 7.75e-04 - 6.500000 1.219880 1.488778 7.64e-05 4.50e-04 - 6.600000 1.214417 1.521008 1.26e-04 6.32e-04 - 6.700000 1.206981 1.551430 1.61e-04 6.72e-04 - 6.800000 1.197968 1.578698 1.79e-04 5.78e-04 - 6.900000 1.186755 1.605158 2.21e-04 5.94e-04 - 7.000000 1.173344 1.630149 9.14e-05 1.23e-04 + -2.900000 0.717300 1.326933 6.90e-07 4.00e-08 + -2.800000 0.727250 1.290353 2.85e-06 2.04e-07 + -2.700000 0.740246 1.254041 4.65e-07 3.90e-07 + -2.600000 0.756016 1.218399 3.06e-06 5.79e-07 + -2.500000 0.774228 1.183861 8.32e-07 7.57e-07 + -2.400000 0.794548 1.150884 2.53e-06 8.93e-07 + -2.300000 0.816617 1.119952 1.19e-06 1.06e-06 + -2.200000 0.840089 1.091559 5.50e-07 1.12e-06 + -2.100000 0.864626 1.066203 2.50e-07 1.05e-06 + -2.000000 0.889904 1.044366 1.55e-06 1.03e-06 + -1.900000 0.915619 1.026498 1.84e-06 1.01e-06 + -1.800000 0.941487 1.012991 3.20e-07 9.47e-07 + -1.700000 0.967252 1.004158 8.70e-07 8.30e-07 + -1.600000 0.992671 1.000212 2.01e-06 7.03e-07 + -1.500000 1.017529 1.001251 2.00e-06 5.98e-07 + -1.400000 1.041624 1.007248 1.54e-06 6.65e-07 + -1.300000 1.064775 1.018057 1.32e-06 6.28e-07 + -1.200000 1.086819 1.033421 1.50e-06 6.53e-07 + -1.100000 1.107607 1.052992 2.13e-06 7.21e-07 + -1.000000 1.127007 1.076349 2.61e-06 7.67e-07 + -0.900000 1.144902 1.103029 1.59e-06 4.52e-07 + -0.800000 1.161188 1.132538 2.05e-06 7.58e-07 + -0.700000 1.175758 1.164380 6.36e-06 1.01e-06 + -0.600000 1.188555 1.198063 2.28e-06 7.51e-07 + -0.500000 1.199497 1.233116 8.55e-07 4.03e-07 + -0.400000 1.208524 1.269087 2.18e-07 1.52e-08 + -0.300000 1.215590 1.305557 3.40e-06 3.81e-07 + -0.200000 1.220663 1.342136 6.25e-06 5.43e-07 + -0.100000 1.223722 1.378465 2.50e-06 5.70e-07 + 0.000000 1.224746 1.414215 1.59e-06 1.14e-06 + 0.100000 1.223720 1.449082 4.25e-06 2.11e-06 + 0.200000 1.220668 1.482793 1.05e-06 1.99e-06 + 0.300000 1.215593 1.515099 5.06e-07 1.85e-06 + 0.400000 1.208521 1.545776 3.29e-06 1.89e-06 + 0.500000 1.199496 1.574621 7.48e-07 1.78e-06 + 0.600000 1.188557 1.601452 3.26e-07 1.70e-06 + 0.700000 1.175760 1.626107 4.35e-06 1.78e-06 + 0.800000 1.161186 1.648442 5.26e-07 1.68e-06 + 0.900000 1.144902 1.668332 2.31e-06 1.66e-06 + 1.000000 1.127009 1.685668 7.43e-07 1.62e-06 + 1.100000 1.107609 1.700357 2.63e-07 1.56e-06 + 1.200000 1.086820 1.712321 5.20e-07 1.44e-06 + 1.300000 1.064777 1.721500 1.01e-07 1.33e-06 + 1.400000 1.041624 1.727847 1.38e-06 1.26e-06 + 1.500000 1.017531 1.731329 2.37e-07 1.16e-06 + 1.600000 0.992672 1.731929 1.41e-06 1.12e-06 + 1.700000 0.967253 1.729644 7.13e-07 1.05e-06 + 1.800000 0.941487 1.724486 7.08e-07 1.19e-06 + 1.900000 0.915618 1.716480 2.17e-07 1.09e-06 + 2.000000 0.889903 1.705667 3.68e-07 1.00e-06 + 2.100000 0.864628 1.692103 2.94e-06 8.92e-07 + 2.200000 0.840091 1.675858 2.07e-06 8.30e-07 + 2.300000 0.816605 1.657018 1.09e-05 9.67e-07 + 2.400000 0.794549 1.635685 2.66e-06 8.36e-07 + 2.500000 0.774229 1.611978 1.17e-06 7.72e-07 + 2.600000 0.756015 1.586034 2.29e-06 7.56e-07 + 2.700000 0.740247 1.558006 9.29e-07 7.11e-07 + 2.800000 0.727248 1.528067 7.64e-07 6.57e-07 + 2.900000 0.717300 1.496413 8.02e-07 3.69e-07 + 3.000000 0.710637 1.463257 9.13e-07 3.64e-08 + 3.100000 0.707413 1.428839 7.08e-07 1.44e-08 + 3.200000 0.707711 1.393422 1.21e-06 4.66e-08 + 3.300000 0.711519 1.357297 3.86e-07 1.18e-07 + 3.400000 0.718749 1.320780 1.65e-07 1.46e-07 + 3.500000 0.729227 1.284219 9.88e-08 2.27e-07 + 3.600000 0.742713 1.247990 1.15e-06 1.02e-07 + 3.700000 0.758912 1.212503 1.30e-06 1.06e-07 + 3.800000 0.777506 1.178195 6.05e-07 1.87e-07 + 3.900000 0.798144 1.145528 1.62e-07 2.67e-07 + 4.000000 0.820474 1.114988 9.51e-08 1.14e-07 + 4.100000 0.844149 1.087071 3.96e-08 1.31e-07 + 4.200000 0.868833 1.062273 7.67e-07 1.16e-07 + 4.300000 0.894211 1.041073 6.73e-06 1.81e-08 + 4.400000 0.919966 1.023913 2.11e-06 2.69e-09 + 4.500000 0.945834 1.011173 1.70e-07 1.10e-08 + 4.600000 0.971556 1.003150 1.13e-06 5.16e-08 + 4.700000 0.996897 1.000038 1.42e-06 7.91e-08 + 4.800000 1.021639 1.001916 1.19e-06 9.31e-08 + 4.900000 1.045588 1.008735 1.03e-06 1.05e-07 + 5.000000 1.068564 1.020331 8.61e-07 1.62e-07 + 5.100000 1.090406 1.036429 1.29e-06 1.73e-07 + 5.200000 1.110970 1.056667 1.73e-06 2.26e-07 + 5.300000 1.130125 1.080616 2.51e-06 3.16e-07 + 5.400000 1.147755 1.107807 1.99e-06 5.35e-08 + 5.500000 1.163762 1.137744 3.40e-06 5.27e-07 + 5.600000 1.178038 1.169929 4.12e-06 5.47e-07 + 5.700000 1.190529 1.203876 1.31e-06 1.08e-06 + 5.800000 1.201148 1.239113 1.78e-06 1.03e-06 + 5.900000 1.209851 1.275196 3.91e-07 1.02e-06 + 6.000000 1.216587 1.311712 9.50e-07 1.05e-06 + 6.100000 1.221330 1.348274 4.73e-06 2.31e-06 + 6.200000 1.224037 1.384529 2.28e-06 3.47e-06 + 6.300000 1.224714 1.420148 1.85e-06 2.61e-06 + 6.400000 1.223352 1.454838 1.34e-06 2.00e-06 + 6.500000 1.219949 1.488332 7.09e-06 3.63e-06 + 6.600000 1.214542 1.520380 1.21e-06 4.50e-06 + 6.700000 1.207144 1.550762 1.64e-06 3.71e-06 + 6.800000 1.197789 1.579279 2.09e-07 3.17e-06 + 6.900000 1.186534 1.605755 6.36e-07 2.59e-06 + 7.000000 1.173438 1.630029 2.81e-06 2.14e-06 ------------------------------------------------------ Final Solver Statistics: @@ -119,10 +119,10 @@ Final Solver Statistics: Total number of error test failures = 3 Total RHS evals: Fe = 0, Fi = 5808 Total mass matrix setups = 1448 - Total mass matrix solves = 1734 + Total mass matrix solves = 1448 Total mass times evals = 4646 Total number of Jacobian evaluations = 154 Total linear solver setups = 167 Total number of Nonlinear iterations = 4360 Total number of Nonlinear convergence failures = 153 - Errors: u = 0.000511077, v = 0.000617033, total = 0.000566538 + Errors: u = 2.42732e-06, v = 1.3135e-06, total = 1.95156e-06 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_2_4_0_-10_0.out b/examples/arkode/CXX_serial/ark_kpr_Mt_2_4_0_-10_0.out index 0cb940ef35..54a56620ba 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_2_4_0_-10_0.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_2_4_0_-10_0.out @@ -116,8 +116,8 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: Final Solver Statistics: Internal solver steps = 165 (attempted = 168) Total number of error test failures = 3 - Total RHS evals: Fe = 1008, Fi = 0 - Total mass matrix setups = 676 - Total mass matrix solves = 1008 + Total RHS evals: Fe = 840, Fi = 0 + Total mass matrix setups = 672 + Total mass matrix solves = 840 Total mass times evals = 165 Errors: u = 3.7533e-06, v = 2.61601e-07, total = 2.66042e-06 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_2_8_0_-10.out b/examples/arkode/CXX_serial/ark_kpr_Mt_2_8_0_-10.out index 8de30f8bb8..09b1fd9f98 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_2_8_0_-10.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_2_8_0_-10.out @@ -11,113 +11,113 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: t u v uerr verr ------------------------------------------------------ -3.000000 0.710636 1.363407 0.00e+00 0.00e+00 - -2.900000 0.718045 1.326475 7.44e-04 4.58e-04 - -2.800000 0.728085 1.289925 8.38e-04 4.28e-04 - -2.700000 0.741158 1.253650 9.13e-04 3.92e-04 - -2.600000 0.756981 1.218051 9.68e-04 3.49e-04 - -2.500000 0.775232 1.183562 1.00e-03 3.00e-04 - -2.400000 0.795569 1.150641 1.02e-03 2.45e-04 - -2.300000 0.817640 1.119769 1.02e-03 1.84e-04 - -2.200000 0.841097 1.091440 1.01e-03 1.20e-04 - -2.100000 0.865605 1.066152 9.79e-04 5.20e-05 - -2.000000 0.890841 1.044384 9.38e-04 1.73e-05 - -1.900000 0.916505 1.026585 8.87e-04 8.65e-05 - -1.800000 0.942316 1.013145 8.29e-04 1.54e-04 - -1.700000 0.968017 1.004376 7.65e-04 2.17e-04 - -1.600000 0.993371 1.000487 6.98e-04 2.74e-04 - -1.500000 1.018160 1.001576 6.29e-04 3.24e-04 - -1.400000 1.042187 1.007615 5.62e-04 3.66e-04 - -1.300000 1.065272 1.018458 4.95e-04 4.00e-04 - -1.200000 1.087252 1.033847 4.32e-04 4.25e-04 - -1.100000 1.107980 1.053435 3.71e-04 4.43e-04 - -1.000000 1.127323 1.076803 3.13e-04 4.53e-04 - -0.900000 1.145162 1.103486 2.58e-04 4.57e-04 - -0.800000 1.161392 1.132995 2.06e-04 4.56e-04 - -0.700000 1.175919 1.164832 1.55e-04 4.51e-04 - -0.600000 1.188664 1.198507 1.07e-04 4.43e-04 - -0.500000 1.199556 1.233548 5.93e-05 4.32e-04 - -0.400000 1.208537 1.269506 1.25e-05 4.19e-04 - -0.300000 1.215560 1.305961 3.40e-05 4.04e-04 - -0.200000 1.220588 1.342524 8.09e-05 3.87e-04 - -0.100000 1.223596 1.378834 1.28e-04 3.69e-04 - 0.000000 1.224568 1.414564 1.77e-04 3.50e-04 - 0.100000 1.223499 1.449410 2.26e-04 3.30e-04 - 0.200000 1.220392 1.483100 2.77e-04 3.09e-04 - 0.300000 1.215265 1.515385 3.29e-04 2.87e-04 - 0.400000 1.208143 1.546038 3.81e-04 2.64e-04 - 0.500000 1.199061 1.574859 4.35e-04 2.39e-04 - 0.600000 1.188067 1.601664 4.90e-04 2.14e-04 - 0.700000 1.175220 1.626292 5.44e-04 1.87e-04 - 0.800000 1.160588 1.648599 5.98e-04 1.59e-04 - 0.900000 1.144254 1.668459 6.50e-04 1.29e-04 - 1.000000 1.126309 1.685764 7.01e-04 9.76e-05 - 1.100000 1.106861 1.700420 7.49e-04 6.49e-05 - 1.200000 1.086028 1.712351 7.92e-04 3.09e-05 - 1.300000 1.063946 1.721494 8.31e-04 4.52e-06 - 1.400000 1.040763 1.727804 8.63e-04 4.11e-05 - 1.500000 1.016643 1.731249 8.87e-04 7.87e-05 - 1.600000 0.991770 1.731811 9.03e-04 1.17e-04 - 1.700000 0.966344 1.729487 9.09e-04 1.56e-04 - 1.800000 0.940584 1.724289 9.03e-04 1.95e-04 - 1.900000 0.914733 1.716245 8.85e-04 2.34e-04 - 2.000000 0.889050 1.705393 8.52e-04 2.73e-04 - 2.100000 0.863821 1.691792 8.05e-04 3.11e-04 - 2.200000 0.839347 1.675510 7.42e-04 3.47e-04 - 2.300000 0.815954 1.656637 6.62e-04 3.80e-04 - 2.400000 0.793979 1.635273 5.67e-04 4.12e-04 - 2.500000 0.773771 1.611538 4.56e-04 4.40e-04 - 2.600000 0.755681 1.585570 3.32e-04 4.64e-04 - 2.700000 0.740050 1.557522 1.96e-04 4.83e-04 - 2.800000 0.727196 1.527569 5.13e-05 4.97e-04 - 2.900000 0.717399 1.495906 9.79e-05 5.06e-04 - 3.000000 0.710883 1.462748 2.47e-04 5.09e-04 - 3.100000 0.707805 1.428334 3.92e-04 5.05e-04 - 3.200000 0.708238 1.392928 5.29e-04 4.94e-04 - 3.300000 0.712172 1.356819 6.53e-04 4.77e-04 - 3.400000 0.719510 1.320326 7.61e-04 4.53e-04 - 3.500000 0.730078 1.283796 8.52e-04 4.22e-04 - 3.600000 0.743635 1.247605 9.23e-04 3.85e-04 - 3.700000 0.759889 1.212162 9.76e-04 3.41e-04 - 3.800000 0.778515 1.177904 1.01e-03 2.91e-04 - 3.900000 0.799168 1.145293 1.02e-03 2.35e-04 - 4.000000 0.821496 1.114814 1.02e-03 1.74e-04 - 4.100000 0.845154 1.086962 1.00e-03 1.09e-04 - 4.200000 0.869806 1.062233 9.73e-04 4.04e-05 - 4.300000 0.895134 1.041103 9.30e-04 2.90e-05 - 4.400000 0.920842 1.024011 8.78e-04 9.80e-05 - 4.500000 0.946652 1.011337 8.18e-04 1.65e-04 - 4.600000 0.972311 1.003376 7.54e-04 2.27e-04 - 4.700000 0.997584 1.000322 6.86e-04 2.83e-04 - 4.800000 1.022259 1.002248 6.18e-04 3.32e-04 - 4.900000 1.046139 1.009108 5.50e-04 3.73e-04 - 5.000000 1.069050 1.020736 4.85e-04 4.05e-04 - 5.100000 1.090829 1.036858 4.21e-04 4.29e-04 - 5.200000 1.111333 1.057112 3.61e-04 4.45e-04 - 5.300000 1.130431 1.081071 3.04e-04 4.54e-04 - 5.400000 1.148006 1.108264 2.49e-04 4.57e-04 - 5.500000 1.163956 1.138199 1.97e-04 4.56e-04 - 5.600000 1.178189 1.170379 1.47e-04 4.50e-04 - 5.700000 1.190627 1.204316 9.87e-05 4.41e-04 - 5.800000 1.201201 1.239542 5.14e-05 4.30e-04 - 5.900000 1.209856 1.275612 4.71e-06 4.16e-04 - 6.000000 1.216546 1.312111 4.19e-05 4.01e-04 - 6.100000 1.221236 1.348656 8.88e-05 3.84e-04 - 6.200000 1.223902 1.384891 1.36e-04 3.66e-04 - 6.300000 1.224531 1.420493 1.85e-04 3.47e-04 - 6.400000 1.223118 1.455163 2.35e-04 3.27e-04 - 6.500000 1.219671 1.488633 2.85e-04 3.06e-04 - 6.600000 1.214206 1.520659 3.37e-04 2.83e-04 - 6.700000 1.206751 1.551018 3.90e-04 2.60e-04 - 6.800000 1.197345 1.579511 4.44e-04 2.35e-04 - 6.900000 1.186035 1.605962 4.99e-04 2.09e-04 - 7.000000 1.172883 1.630209 5.53e-04 1.82e-04 + -2.900000 0.717301 1.326933 4.07e-08 3.12e-09 + -2.800000 0.727247 1.290353 3.42e-08 2.79e-09 + -2.700000 0.740246 1.254042 2.54e-08 2.29e-09 + -2.600000 0.756013 1.218400 1.63e-08 1.73e-09 + -2.500000 0.774227 1.183861 8.20e-09 1.12e-09 + -2.400000 0.794546 1.150885 1.46e-09 4.54e-10 + -2.300000 0.816616 1.119953 3.85e-09 2.91e-10 + -2.200000 0.840089 1.091560 7.86e-09 1.15e-09 + -2.100000 0.864625 1.066204 1.08e-08 2.15e-09 + -2.000000 0.889903 1.044367 1.29e-08 3.28e-09 + -1.900000 0.915617 1.026499 1.44e-08 4.47e-09 + -1.800000 0.941488 1.012992 1.53e-08 5.61e-09 + -1.700000 0.967253 1.004159 1.58e-08 6.53e-09 + -1.600000 0.992673 1.000213 1.58e-08 7.07e-09 + -1.500000 1.017531 1.001252 1.55e-08 7.11e-09 + -1.400000 1.041625 1.007249 1.48e-08 6.62e-09 + -1.300000 1.064777 1.018058 1.40e-08 5.67e-09 + -1.200000 1.086821 1.033422 1.30e-08 4.42e-09 + -1.100000 1.107609 1.052992 1.21e-08 3.06e-09 + -1.000000 1.127010 1.076350 1.13e-08 1.77e-09 + -0.900000 1.144904 1.103029 1.06e-08 6.58e-10 + -0.800000 1.161186 1.132539 1.00e-08 2.11e-10 + -0.700000 1.175764 1.164381 9.60e-09 8.29e-10 + -0.600000 1.188557 1.198064 9.28e-09 1.22e-09 + -0.500000 1.199496 1.233116 9.06e-09 1.44e-09 + -0.400000 1.208524 1.269087 8.91e-09 1.52e-09 + -0.300000 1.215594 1.305557 8.81e-09 1.51e-09 + -0.200000 1.220669 1.342137 8.75e-09 1.43e-09 + -0.100000 1.223725 1.378465 8.72e-09 1.33e-09 + 0.000000 1.224745 1.414214 8.70e-09 1.21e-09 + 0.100000 1.223725 1.449080 8.70e-09 1.09e-09 + 0.200000 1.220669 1.482791 8.71e-09 9.72e-10 + 0.300000 1.215594 1.515097 8.74e-09 8.62e-10 + 0.400000 1.208524 1.545774 8.78e-09 7.62e-10 + 0.500000 1.199496 1.574619 8.83e-09 6.73e-10 + 0.600000 1.188557 1.601450 8.91e-09 5.94e-10 + 0.700000 1.175764 1.626105 9.01e-09 5.23e-10 + 0.800000 1.161186 1.648441 9.14e-09 4.60e-10 + 0.900000 1.144904 1.668331 9.30e-09 4.04e-10 + 1.000000 1.127010 1.685666 9.50e-09 3.53e-10 + 1.100000 1.107609 1.700355 9.75e-09 3.06e-10 + 1.200000 1.086821 1.712320 1.00e-08 2.63e-10 + 1.300000 1.064777 1.721499 1.04e-08 2.23e-10 + 1.400000 1.041625 1.727845 1.07e-08 1.85e-10 + 1.500000 1.017531 1.731328 1.11e-08 1.52e-10 + 1.600000 0.992673 1.731928 1.14e-08 1.24e-10 + 1.700000 0.967253 1.729643 1.16e-08 1.06e-10 + 1.800000 0.941488 1.724485 1.16e-08 1.01e-10 + 1.900000 0.915617 1.716479 1.13e-08 1.16e-10 + 2.000000 0.889903 1.705666 1.05e-08 1.63e-10 + 2.100000 0.864625 1.692102 8.92e-09 2.52e-10 + 2.200000 0.840089 1.675857 6.33e-09 3.98e-10 + 2.300000 0.816616 1.657017 2.42e-09 6.17e-10 + 2.400000 0.794546 1.635684 3.04e-09 9.19e-10 + 2.500000 0.774227 1.611978 1.02e-08 1.31e-09 + 2.600000 0.756013 1.586033 1.88e-08 1.79e-09 + 2.700000 0.740246 1.558005 2.85e-08 2.31e-09 + 2.800000 0.727247 1.528067 3.83e-08 2.85e-09 + 2.900000 0.717301 1.496412 4.71e-08 3.33e-09 + 3.000000 0.710636 1.463257 5.36e-08 3.70e-09 + 3.100000 0.707413 1.428839 5.66e-08 3.88e-09 + 3.200000 0.707709 1.393422 5.57e-08 3.86e-09 + 3.300000 0.711520 1.357297 5.10e-08 3.64e-09 + 3.400000 0.718750 1.320780 4.34e-08 3.27e-09 + 3.500000 0.729227 1.284218 3.41e-08 2.78e-09 + 3.600000 0.742712 1.247990 2.43e-08 2.23e-09 + 3.700000 0.758914 1.212503 1.50e-08 1.64e-09 + 3.800000 0.777506 1.178194 7.03e-09 1.01e-09 + 3.900000 0.798144 1.145528 4.85e-10 3.38e-10 + 4.000000 0.820474 1.114988 4.60e-09 4.26e-10 + 4.100000 0.844149 1.087071 8.42e-09 1.31e-09 + 4.200000 0.868832 1.062273 1.12e-08 2.33e-09 + 4.300000 0.894204 1.041074 1.32e-08 3.48e-09 + 4.400000 0.919964 1.023913 1.46e-08 4.67e-09 + 4.500000 0.945834 1.011173 1.54e-08 5.78e-09 + 4.600000 0.971557 1.003150 1.58e-08 6.65e-09 + 4.700000 0.996898 1.000038 1.58e-08 7.12e-09 + 4.800000 1.021641 1.001916 1.54e-08 7.06e-09 + 4.900000 1.045589 1.008736 1.47e-08 6.49e-09 + 5.000000 1.068565 1.020331 1.38e-08 5.47e-09 + 5.100000 1.090408 1.036429 1.29e-08 4.19e-09 + 5.200000 1.110972 1.056667 1.20e-08 2.84e-09 + 5.300000 1.130127 1.080617 1.12e-08 1.57e-09 + 5.400000 1.147757 1.107807 1.05e-08 4.94e-10 + 5.500000 1.163759 1.137743 9.95e-09 3.32e-10 + 5.600000 1.178042 1.169929 9.54e-09 9.10e-10 + 5.700000 1.190528 1.203875 9.24e-09 1.27e-09 + 5.800000 1.201149 1.239112 9.03e-09 1.46e-09 + 5.900000 1.209851 1.275195 8.89e-09 1.52e-09 + 6.000000 1.216587 1.311711 8.80e-09 1.50e-09 + 6.100000 1.221325 1.348272 8.75e-09 1.42e-09 + 6.200000 1.224039 1.384525 8.72e-09 1.31e-09 + 6.300000 1.224716 1.420146 8.70e-09 1.19e-09 + 6.400000 1.223353 1.454836 8.70e-09 1.07e-09 + 6.500000 1.219956 1.488328 8.72e-09 9.53e-10 + 6.600000 1.214544 1.520375 8.74e-09 8.44e-10 + 6.700000 1.207142 1.550758 8.78e-09 7.47e-10 + 6.800000 1.197789 1.579276 8.84e-09 6.59e-10 + 6.900000 1.186534 1.605752 8.92e-09 5.81e-10 + 7.000000 1.173436 1.630027 9.03e-09 5.12e-10 ------------------------------------------------------ Final Solver Statistics: Internal solver steps = 103 (attempted = 103) Total number of error test failures = 0 Total RHS evals: Fe = 1742, Fi = 0 - Total mass matrix setups = 1539 - Total mass matrix solves = 1845 + Total mass matrix setups = 1439 + Total mass matrix solves = 1742 Total mass times evals = 103 - Errors: u = 0.000634856, v = 0.000337591, total = 0.000508434 + Errors: u = 1.83418e-08, v = 2.86413e-09, total = 1.31268e-08 diff --git a/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid_--np_2_1_2_--x_print_level_0.out b/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid_--np_2_1_2_--x_print_level_0.out index bd7bba7149..0369a11ff0 100644 --- a/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid_--np_2_1_2_--x_print_level_0.out +++ b/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid_--np_2_1_2_--x_print_level_0.out @@ -51,7 +51,7 @@ Final max integrator statistics: Steps = 1780 Step attempts = 1780 Error test fails = 450 - RHS evals = 14240 + RHS evals = 12460 NLS iters = 5340 NLS fails = 0 LS iters = 30510 diff --git a/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid_--np_2_1_2_--x_print_level_0.out b/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid_--np_2_1_2_--x_print_level_0.out index 4e2d372699..60a0110489 100644 --- a/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid_--np_2_1_2_--x_print_level_0.out +++ b/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid_--np_2_1_2_--x_print_level_0.out @@ -48,7 +48,7 @@ Final max integrator statistics: Steps = 1780 Step attempts = 1780 Error test fails = 450 - RHS evals = 14240 + RHS evals = 12460 NLS iters = 5340 NLS fails = 0 LS iters = 189634 diff --git a/examples/arkode/CXX_xbraid/ark_heat2D_xbraid_--x_print_level_0.out b/examples/arkode/CXX_xbraid/ark_heat2D_xbraid_--x_print_level_0.out index f9de301b00..ecce20579e 100644 --- a/examples/arkode/CXX_xbraid/ark_heat2D_xbraid_--x_print_level_0.out +++ b/examples/arkode/CXX_xbraid/ark_heat2D_xbraid_--x_print_level_0.out @@ -43,7 +43,7 @@ Final max integrator statistics: Steps = 895 Step attempts = 895 Error test fails = 324 - RHS evals = 7160 + RHS evals = 6265 NLS iters = 2685 NLS fails = 0 LS iters = 98385 diff --git a/examples/arkode/C_manyvector/ark_brusselator1D_manyvec.out b/examples/arkode/C_manyvector/ark_brusselator1D_manyvec.out index ab197185fe..6366fd534c 100644 --- a/examples/arkode/C_manyvector/ark_brusselator1D_manyvec.out +++ b/examples/arkode/C_manyvector/ark_brusselator1D_manyvec.out @@ -32,7 +32,7 @@ 2.300000 1.178983 2.282911 1.999977 2.400000 1.156873 2.248486 1.999978 2.500000 1.128176 2.220852 1.999978 - 2.600000 1.094311 2.199774 1.999979 + 2.600000 1.094311 2.199774 1.999978 2.700000 1.056614 2.184957 1.999979 2.800000 1.016284 2.176069 1.999980 2.900000 0.974366 2.172745 1.999981 @@ -64,7 +64,7 @@ 5.500000 0.354771 2.869085 1.999993 5.600000 0.349641 2.900573 1.999993 5.700000 0.345224 2.931786 1.999993 - 5.800000 0.341455 2.962716 1.999994 + 5.800000 0.341455 2.962716 1.999993 5.900000 0.338270 2.993362 1.999994 6.000000 0.335614 3.023721 1.999994 6.100000 0.333434 3.053792 1.999994 @@ -82,9 +82,9 @@ 7.300000 0.331130 3.392178 1.999994 7.400000 0.332202 3.418486 1.999994 7.500000 0.333401 3.444494 1.999994 - 7.600000 0.334721 3.470197 1.999994 - 7.700000 0.336154 3.495592 1.999994 - 7.800000 0.337695 3.520673 1.999994 + 7.600000 0.334721 3.470197 1.999993 + 7.700000 0.336154 3.495592 1.999993 + 7.800000 0.337695 3.520673 1.999993 7.900000 0.339341 3.545436 1.999993 8.000000 0.341088 3.569873 1.999993 8.100000 0.342934 3.593980 1.999993 @@ -100,18 +100,18 @@ 9.100000 0.366830 3.814901 1.999993 9.200000 0.369812 3.834729 1.999993 9.300000 0.372919 3.854085 1.999993 - 9.400000 0.376159 3.872952 1.999993 - 9.500000 0.379540 3.891308 1.999993 - 9.600000 0.383069 3.909132 1.999993 + 9.400000 0.376159 3.872952 1.999992 + 9.500000 0.379540 3.891308 1.999992 + 9.600000 0.383069 3.909132 1.999992 9.700000 0.386758 3.926398 1.999992 - 9.800000 0.390617 3.943079 1.999992 - 9.900000 0.394659 3.959146 1.999992 - 10.000000 0.398900 3.974566 1.999992 + 9.800000 0.390617 3.943079 1.999993 + 9.900000 0.394659 3.959146 1.999993 + 10.000000 0.398900 3.974566 1.999993 ---------------------------------------------- Final Solver Statistics: Internal solver steps = 395 (attempted = 422) - Total RHS evals: Fe = 2535, Fi = 7165 + Total RHS evals: Fe = 2508, Fi = 7138 Total linear solver setups = 0 Total linear iterations = 15143 Total linear convergence failures = 0 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..250b314e47 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 = 30004, Ff = 874976 Fast Newton iters = 504937 Fast Newton conv fails = 0 Fast Jacobian evals = 2308 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..93732f8ea6 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 = 68887, Ff = 880116 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..6bcc4da9c0 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 = 40005, Fsi = 78888, Ff = 1064330 Slow Newton iters = 38883 Slow Newton conv fails = 0 Slow Jacobian evals = 501 diff --git a/examples/arkode/C_serial/ark_brusselator_1D_mri.out b/examples/arkode/C_serial/ark_brusselator_1D_mri.out index 2c61e45ad1..1b0a2d0afe 100644 --- a/examples/arkode/C_serial/ark_brusselator_1D_mri.out +++ b/examples/arkode/C_serial/ark_brusselator_1D_mri.out @@ -112,7 +112,7 @@ Final Solver Statistics: Slow Steps: nsts = 1001 Fast Steps: nstf = 3171 (attempted = 3171) - Total RHS evals: Fs = 3004, Ff = 34684 + Total RHS evals: Fs = 3004, Ff = 31513 Total number of fast error test failures = 0 Total linear solver setups = 3118 Total RHS evals for setting up the linear system = 0 diff --git a/examples/arkode/C_serial/ark_brusselator_mri.out b/examples/arkode/C_serial/ark_brusselator_mri.out index 7cfb07b9cf..6bc1a1be25 100644 --- a/examples/arkode/C_serial/ark_brusselator_mri.out +++ b/examples/arkode/C_serial/ark_brusselator_mri.out @@ -31,4 +31,4 @@ Brusselator ODE test problem: Final Solver Statistics: Steps: nsts = 81, nstf = 2187 - Total RHS evals: Fs = 244, Ff = 8831 + Total RHS evals: Fs = 244, Ff = 6644 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..e0e157c053 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 @@ -65,5 +65,5 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: Final Solver Statistics: Steps: nsts = 2501, nstf = 252601 - u error = 4.670e-09, v error = 5.638e-10, total error = 3.327e-09 + u error = 4.671e-09, v error = 5.638e-10, total error = 3.327e-09 Total RHS evals: Fs = 7504, Ff = 760306 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..d9ce4b4500 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 @@ -23,13 +23,13 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 1.000000 1.127010 1.691839 1.33e-10 6.94e-11 1.100000 1.107609 1.000489 1.23e-10 7.12e-11 1.200000 1.086821 1.677552 1.12e-10 7.21e-11 - 1.300000 1.064777 1.277775 9.90e-11 7.21e-11 + 1.300000 1.064777 1.277775 9.89e-11 7.21e-11 1.400000 1.041625 1.342455 8.49e-11 7.13e-11 1.500000 1.017531 1.642940 6.94e-11 6.96e-11 1.600000 0.992673 1.012112 5.24e-11 6.69e-11 1.700000 0.967253 1.714058 3.37e-11 6.34e-11 1.800000 0.941488 1.183867 1.32e-11 5.89e-11 - 1.900000 0.915617 1.437465 9.12e-12 5.33e-11 + 1.900000 0.915617 1.437465 9.11e-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 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..59ce4983a9 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 @@ -27,7 +27,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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.700000 0.967253 1.714058 7.81e-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 @@ -51,7 +51,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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.100000 0.844149 1.406358 3.43e-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 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..75eb3ff099 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 @@ -25,17 +25,17 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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.500000 1.017531 1.642940 6.96e-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.200000 0.840089 1.730920 9.97e-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.500000 0.774227 1.496993 1.88e-10 9.36e-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 @@ -52,12 +52,12 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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.200000 0.868832 1.600774 6.64e-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.400000 0.919964 1.727533 9.36e-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.700000 0.996898 1.525070 5.03e-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 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..a19331250d 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 @@ -54,8 +54,8 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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.400000 0.919964 1.727533 9.16e-12 2.25e-10 + 4.500000 0.945834 1.126875 1.29e-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 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..7c7e165cf2 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 @@ -11,35 +11,35 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: t u v uerr verr ------------------------------------------------------ 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.100000 1.223725 1.077464 1.63e-11 6.38e-13 0.200000 1.220669 1.551800 1.60e-11 6.83e-13 0.300000 1.215594 1.467737 1.52e-11 9.61e-13 - 0.400000 1.208524 1.154583 1.51e-11 9.21e-13 - 0.500000 1.199496 1.721908 1.60e-11 1.72e-12 + 0.400000 1.208524 1.154583 1.51e-11 9.22e-13 + 0.500000 1.199496 1.721908 1.60e-11 1.73e-12 0.600000 1.188557 1.023517 1.48e-11 3.43e-12 0.700000 1.175764 1.622751 1.36e-11 2.17e-12 0.800000 1.161186 1.374632 1.23e-11 2.77e-12 - 0.900000 1.144904 1.245763 1.13e-11 3.12e-12 - 1.000000 1.127010 1.691839 1.30e-11 2.17e-12 + 0.900000 1.144904 1.245763 1.12e-11 3.13e-12 + 1.000000 1.127010 1.691839 1.31e-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.200000 1.086821 1.677552 9.50e-12 2.46e-12 + 1.300000 1.064777 1.277775 7.58e-12 8.24e-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 + 1.500000 1.017531 1.642940 6.04e-12 2.62e-12 + 1.600000 0.992673 1.012112 3.77e-12 1.37e-12 + 1.700000 0.967253 1.714058 3.32e-12 3.05e-12 + 1.800000 0.941488 1.183867 2.37e-13 3.63e-13 + 1.900000 0.915617 1.437465 3.30e-12 1.16e-12 + 2.000000 0.889903 1.577082 6.57e-12 1.93e-12 + 2.100000 0.864625 1.056467 7.88e-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 + 2.300000 0.816616 1.101047 1.18e-11 1.78e-12 + 2.400000 0.794546 1.525051 1.53e-11 5.68e-13 + 2.500000 0.774227 1.496993 1.85e-11 6.84e-14 + 2.600000 0.756013 1.126857 2.19e-11 2.74e-12 + 2.700000 0.740246 1.727536 2.05e-11 7.32e-13 + 2.800000 0.727247 1.038393 2.46e-11 4.04e-12 + 2.900000 0.717301 1.600759 2.68e-11 9.29e-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 @@ -52,15 +52,15 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 + 4.200000 0.868832 1.600774 3.65e-12 1.13e-11 + 4.300000 0.894204 1.038382 1.64e-12 2.54e-13 + 4.400000 0.919964 1.727533 2.33e-12 1.24e-11 + 4.500000 0.945834 1.126875 2.28e-12 7.52e-13 + 4.600000 0.971557 1.496974 5.15e-12 6.90e-12 + 4.700000 0.996898 1.525070 8.52e-12 6.90e-12 + 4.800000 1.021641 1.101030 8.55e-12 1.57e-12 + 4.900000 1.045589 1.730922 6.11e-12 9.55e-12 + 5.000000 1.068565 1.056480 9.97e-12 3.37e-12 ------------------------------------------------------ Final Solver Statistics: 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..b23cd0c444 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 @@ -11,7 +11,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: t u v uerr verr ------------------------------------------------------ 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.100000 1.223725 1.077464 1.64e-11 6.38e-13 0.200000 1.220669 1.551800 1.61e-11 6.85e-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 @@ -19,53 +19,53 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.600000 1.188557 1.023517 1.50e-11 3.45e-12 0.700000 1.175764 1.622751 1.40e-11 2.20e-12 0.800000 1.161186 1.374632 1.20e-11 2.83e-12 - 0.900000 1.144904 1.245763 1.22e-11 3.18e-12 + 0.900000 1.144904 1.245763 1.23e-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.200000 1.086821 1.677552 9.92e-12 2.55e-12 + 1.300000 1.064777 1.277775 7.66e-12 1.73e-13 + 1.400000 1.041625 1.342455 6.65e-12 7.06e-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.600000 0.992673 1.012112 4.49e-12 1.24e-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 + 1.800000 0.941488 1.183867 5.87e-14 2.22e-13 + 1.900000 0.915617 1.437465 1.88e-12 1.29e-12 + 2.000000 0.889903 1.577082 4.65e-12 2.09e-12 + 2.100000 0.864625 1.056467 6.53e-12 1.44e-12 + 2.200000 0.840089 1.730920 7.39e-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.400000 0.794546 1.525051 1.48e-11 7.30e-13 + 2.500000 0.774227 1.496993 1.92e-11 2.40e-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.700000 0.740246 1.727536 2.11e-11 8.84e-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.400000 0.718750 1.661225 2.61e-11 2.33e-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.600000 0.742712 1.310080 2.16e-11 4.96e-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.200000 0.868832 1.600774 5.04e-12 1.14e-11 + 4.300000 0.894204 1.038382 2.82e-12 3.27e-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 + 4.500000 0.945834 1.126875 1.89e-12 8.42e-13 + 4.600000 0.971557 1.496974 3.73e-12 6.99e-12 + 4.700000 0.996898 1.525070 5.90e-12 7.04e-12 + 4.800000 1.021641 1.101030 7.16e-12 1.43e-12 + 4.900000 1.045589 1.730922 6.81e-12 9.69e-12 + 5.000000 1.068565 1.056480 9.34e-12 3.23e-12 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 1.533e-11, v error = 4.203e-12, total error = 1.124e-11 + u error = 1.533e-11, v error = 4.204e-12, total error = 1.124e-11 Total RHS evals: Fse = 30001, Fsi = 57555, Ff = 2070001 Slow Newton iters = 52554 Slow Newton conv fails = 0 diff --git a/examples/arkode/C_serial/ark_onewaycouple_mri.out b/examples/arkode/C_serial/ark_onewaycouple_mri.out index 99d72a08ca..869d4af60c 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 = 3001, Ff = 37002 diff --git a/examples/arkode/C_serial/ark_reaction_diffusion_mri.out b/examples/arkode/C_serial/ark_reaction_diffusion_mri.out index bb334179a1..7397dbe741 100644 --- a/examples/arkode/C_serial/ark_reaction_diffusion_mri.out +++ b/examples/arkode/C_serial/ark_reaction_diffusion_mri.out @@ -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 = 462156 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_twowaycouple_mri.out b/examples/arkode/C_serial/ark_twowaycouple_mri.out index ef4f3fa787..0407620c51 100644 --- a/examples/arkode/C_serial/ark_twowaycouple_mri.out +++ b/examples/arkode/C_serial/ark_twowaycouple_mri.out @@ -30,4 +30,4 @@ Two way coupling ODE test problem: Final Solver Statistics: Steps: nsts = 2001, nstf = 102051 - Total RHS evals: Fs = 6004, Ff = 410207 + Total RHS evals: Fs = 6004, Ff = 308156 diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.out new file mode 100644 index 0000000000..92d1e73a20 --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.out @@ -0,0 +1,1972 @@ + +Dahlquist ODE test problem: + problem type = Identity + lambda expl = -1 + lambda impl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Hermite + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 36 + expected: 36 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +Test implicit RK methods +======================== + +======================== +Implicit Euler + stages: 1 + order: 1 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +DIRK Table ID 100 + stages: 2 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +DIRK Table ID 101 + stages: 3 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fi RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +DIRK Table ID 102 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +======================== +DIRK Table ID 103 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 104 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 105 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 106 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 107 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 108 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 109 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 110 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 111 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 58 + expected: 58 +-------------------- + +======================== +DIRK Table ID 112 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 113 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 58 + expected: 58 +-------------------- + +======================== +DIRK Table ID 114 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 115 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 116 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 117 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 118 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 119 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 120 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 121 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 122 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 123 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +===================== +Test IMEX ARK methods +===================== + +======================== +IMEX Euler + stages: 2 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fe RHS evals: + actual: 2 + expected: 2 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fe RHS evals: + actual: 5 + expected: 5 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +IMEX Table ID 0 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 1 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 2 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 3 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 4 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 5 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + + +All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.out new file mode 100644 index 0000000000..d4900dcca0 --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.out @@ -0,0 +1,609 @@ + +Dahlquist ODE test problem: + lambda expl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Hermite + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 36 + expected: 36 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + + +All tests passed! From ae0e71c2fb30d26b2e21093b7b37b05a56951959 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 16:04:56 -0700 Subject: [PATCH 29/92] allow stepper to set default interpolation module --- src/arkode/arkode.c | 15 +++++++++------ src/arkode/arkode_sprkstep.c | 12 ++++-------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 9374d9a8bf..25ee044e7c 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -1311,13 +1311,16 @@ int arkInit(ARKodeMem ark_mem, realtype t0, N_Vector y0, } /* Create default Hermite interpolation module */ - ark_mem->interp = arkInterpCreate_Hermite(ark_mem, ARK_INTERP_MAX_DEGREE); - if (ark_mem->interp == NULL) { - arkProcessError(ark_mem, ARK_MEM_FAIL, "ARKODE", "arkInit", - "Unable to allocate interpolation module"); - return(ARK_MEM_FAIL); + if (!(ark_mem->interp)) + { + ark_mem->interp = arkInterpCreate_Hermite(ark_mem, ARK_INTERP_MAX_DEGREE); + if (ark_mem->interp == NULL) { + arkProcessError(ark_mem, ARK_MEM_FAIL, "ARKODE", "arkInit", + "Unable to allocate interpolation module"); + return(ARK_MEM_FAIL); + } + ark_mem->interp_type = ARK_INTERP_HERMITE; } - ark_mem->interp_type = ARK_INTERP_HERMITE; /* All allocations are complete */ ark_mem->MallocDone = SUNTRUE; diff --git a/src/arkode/arkode_sprkstep.c b/src/arkode/arkode_sprkstep.c index 5d6219e98e..9ac63054f5 100644 --- a/src/arkode/arkode_sprkstep.c +++ b/src/arkode/arkode_sprkstep.c @@ -143,6 +143,10 @@ void* SPRKStepCreate(ARKRhsFn f1, ARKRhsFn f2, realtype t0, N_Vector y0, /* Zero yerr for compensated summation */ if (ark_mem->use_compensated_sums) { N_VConst(ZERO, step_mem->yerr); } + /* SPRKStep uses Lagrange interpolation by default, since Hermite is + less compatible with these methods. */ + arkSetInterpolantType(ark_mem, ARK_INTERP_LAGRANGE); + /* Initialize main ARKODE infrastructure */ retval = arkInit(ark_mem, t0, y0, FIRST_INIT); if (retval != ARK_SUCCESS) @@ -153,10 +157,6 @@ void* SPRKStepCreate(ARKRhsFn f1, ARKRhsFn f2, realtype t0, N_Vector y0, return (NULL); } - /* SPRKStep uses Lagrange interpolation by default, since Hermite is - less compatible with these methods. */ - arkSetInterpolantType(ark_mem, ARK_INTERP_LAGRANGE); - return ((void*)ark_mem); } @@ -459,10 +459,6 @@ 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; - return (ARK_SUCCESS); } From 6e8cbb645a5bd1056128e2b9a875e70276b395f5 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 17:13:25 -0700 Subject: [PATCH 30/92] fix return value --- src/arkode/arkode_arkstep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 0ca38becfb..ed5d9ea87c 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -2054,7 +2054,7 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) } else { *nflagPtr = arkStep_ComputeSolutions(ark_mem, dsmPtr); } - if (*nflagPtr < 0) return(retval); + if (*nflagPtr < 0) return(*nflagPtr); if (*nflagPtr > 0) return(TRY_AGAIN); #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG From d79bb1248362240b457fa91e3af723e4e5211886 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 17:17:47 -0700 Subject: [PATCH 31/92] remove some logging --- src/arkode/arkode.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 25ee044e7c..ba197e4532 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -854,22 +854,10 @@ int arkEvolve(ARKodeMem ark_mem, realtype tout, N_Vector yout, >0 => step encountered recoverable failure; reduce step if possible <0 => step encountered unrecoverable failure */ kflag = ark_mem->step((void*) ark_mem, &dsm, &nflag); -#if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_INFO, - "ARKODE::arkEvolve", "step return", - "step = %li, kflag = %d, nflag = %d", - ark_mem->nst, kflag, nflag); -#endif if (kflag < 0) break; /* handle solver convergence failures */ kflag = arkCheckConvergence(ark_mem, &nflag, &ncf); -#if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_INFO, - "ARKODE::arkEvolve", "check convergence return", - "step = %li, kflag = %d, nflag = %d, ncf = %d", - ark_mem->nst, kflag, nflag, ncf); -#endif if (kflag < 0) break; /* Perform relaxation: From 1374ec4496c3988164eb7ee211664711352deab3 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 17:22:44 -0700 Subject: [PATCH 32/92] fix initial step size check --- src/arkode/arkode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index ba197e4532..0811365c75 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -1924,7 +1924,7 @@ int arkInitialSetup(ARKodeMem ark_mem, realtype tout) /* Call fullrhs (used in estimating initial step, explicit steppers, Hermite interpolation module, and possibly (but not always) arkRootCheck1) */ - if (ark_mem->call_fullrhs || ark_mem->hin == ZERO) + if (ark_mem->call_fullrhs || (ark_mem->h0u == ZERO && ark_mem->hin == ZERO)) { if (!ark_mem->step_fullrhs) { From 08d7d4f2ede173a412fd75b4a70d2756457fab89 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 17:38:10 -0700 Subject: [PATCH 33/92] update comments --- src/arkode/arkode.c | 20 ++++++++++---------- src/arkode/arkode_impl.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 0811365c75..6fbaa1d01e 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -140,9 +140,9 @@ 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 */ + /* Indicate that calling the full RHS function is not required, 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 the problem needs to be initialized */ @@ -1357,9 +1357,9 @@ 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 */ + /* Indicate that calling the full RHS function is not required, 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 initialization has not been done before */ @@ -2230,10 +2230,10 @@ int arkHin(ARKodeMem ark_mem, realtype tout) /* call full RHS if needed */ if (!(ark_mem->fn_current)) { - /* NOTE: The step size (h) is used in setting the tolerance in a potential - mass matrix solve when computing the full RHS. Before calling arkHin, h is - set to |tout- tcur| or 1 and so we do not need to guard against h == 0 here - before calling the full RHS. */ + /* NOTE: The step size (h) is used in setting the tolerance in a potential + mass matrix solve when computing the full RHS. Before calling arkHin, h + is set to |tout - tcur| or 1 and so we do not need to guard against + h == 0 here before calling the full RHS. */ retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, ark_mem->fn, ARK_FULLRHS_START); if (retval) { return ARK_RHSFUNC_FAIL; } diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index 33285c3a70..7416529abd 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -412,7 +412,7 @@ 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; /* denotes the full RHS fn will be called */ /* Error handler function and error ouput file */ ARKErrHandlerFn ehfun; /* error messages are handled by ehfun */ From 6453bfd4960fcc08d8d7dc23708c651c0afb1178 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 17:38:29 -0700 Subject: [PATCH 34/92] do not require full rhs from stepper --- src/arkode/arkode.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 6fbaa1d01e..ee83a4ac52 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -1489,8 +1489,7 @@ 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) ) + (ark_mem->step_mem == NULL) ) return(SUNFALSE); return(SUNTRUE); } From a7f1bdb18472b59f0053650ce785d79965b63602 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 17:43:34 -0700 Subject: [PATCH 35/92] add comment --- src/arkode/arkode.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index ee83a4ac52..120ad162b4 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -2444,7 +2444,10 @@ int arkCompleteStep(ARKodeMem ark_mem, realtype dsm) if (retval != 0) return(ARK_POSTPROCESS_STEP_FAIL); } - /* update interpolation structure */ + /* update interpolation structure + + NOTE: This must be called before updating yn towith ycur as the interpolation + module may need to save tn, yn from the start of this step */ if (ark_mem->interp != NULL) { retval = arkInterpUpdate(ark_mem, ark_mem->interp, ark_mem->tcur); if (retval != ARK_SUCCESS) return(retval); From 50ba8f454940bc5ec9a679b170a99314fb2ec7ee Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 18:31:43 -0700 Subject: [PATCH 36/92] update comments --- src/arkode/arkode_arkstep.c | 104 +++++++++++++++++------------------ src/arkode/arkode_erkstep.c | 73 ++++++++++++------------ src/arkode/arkode_impl.h | 10 +++- src/arkode/arkode_mristep.c | 85 ++++++++++++++-------------- src/arkode/arkode_sprkstep.c | 36 ++++++------ 5 files changed, 155 insertions(+), 153 deletions(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index ed5d9ea87c..00cf802a8e 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1306,7 +1306,7 @@ int arkStep_Init(void* arkode_mem, int init_type) } -/*--------------------------------------------------------------- +/*------------------------------------------------------------------------------ arkStep_FullRHS: Rewriting the problem @@ -1317,24 +1317,30 @@ int arkStep_Init(void* arkode_mem, int init_type) f = M^{-1}*[ fe(t,y) + fi(t,y) ] This will be called in one of three 'modes': - ARK_FULLRHS_START -> called at the beginning of a simulation - or after post processing at step - ARK_FULLRHS_END -> called at the end of a successful step - ARK_FULLRHS_OTHER -> called elsewhere (e.g. for dense output) - - If it is called in ARK_FULLRHS_START mode, we store the vectors - fe(t,y) and fi(t,y) in Fe[0] and Fi[0] for possible reuse in the - first stage of the subsequent time step. - - If it is called in ARK_FULLRHS_END mode and the ARK method - coefficients support it, we may just copy vectors Fe[stages] and - Fi[stages] to fill f instead of calling fe() and fi(). - - ARK_FULLRHS_OTHER mode is only called for dense output in-between - steps, or when estimating the initial time step size, so we strive to - store the intermediate parts so that they do not interfere - with the other two modes. - ---------------------------------------------------------------*/ + + ARK_FULLRHS_START -> called at the beginning of a simulation i.e., at + (tn, yn) = (t0, y0) or (tR, yR) + + ARK_FULLRHS_END -> called at the end of a successful step i.e, at + (tcur, ycur) or the start of the subsequent step i.e., + at (tn, yn) = (tcur, ycur) from the end of the last + step + + ARK_FULLRHS_OTHER -> called elsewhere (e.g. for dense output) + + If this function is called in ARK_FULLRHS_START or ARK_FULLRHS_END mode and + evaluating the RHS functions is necessary, we store the vectors fe(t,y) and + fi(t,y) in Fe[0] and Fi[0] for possible reuse in the first stage of the + subsequent time step. + + In ARK_FULLRHS_END mode we check if the method is stiffly accurate and, if + appropriate, copy the vectors Fe[stages - 1] and Fi[stages - 1] to Fe[0] and + Fi[0] for possible reuse in the first stage of the subsequent time step. + + ARK_FULLRHS_OTHER mode is only called for dense output in-between steps, or + when estimating the initial time step size, so we strive to store the + intermediate parts so that they do not interfere with the other two modes. + ----------------------------------------------------------------------------*/ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, int mode) { @@ -1364,15 +1370,12 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, /* perform RHS functions contingent on 'mode' argument */ switch(mode) { - /* ARK_FULLRHS_START: called at the beginning of a simulation - Store the vectors fe(t,y) and fi(t,y) in Fe[0] and Fi[0] for - possible reuse in the first stage of the subsequent time step */ case ARK_FULLRHS_START: - /* call f */ + /* compute the full RHS */ if (!(ark_mem->fn_current)) { - /* call fe if the problem has an explicit component */ + /* compute the explicit component */ if (step_mem->explicit) { retval = step_mem->fe(t, y, step_mem->Fe[0], ark_mem->user_data); @@ -1384,6 +1387,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, return(ARK_RHSFUNC_FAIL); } + /* compute and store M(t)^{-1} fe */ if (step_mem->mass_type == MASS_TIMEDEP) { retval = step_mem->msolve((void *) ark_mem, step_mem->Fe[0], @@ -1397,7 +1401,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* call fi if the problem has an implicit component */ + /* compute the implicit component */ if (step_mem->implicit) { retval = step_mem->fi(t, y, step_mem->Fi[0], ark_mem->user_data); @@ -1409,6 +1413,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, return(ARK_RHSFUNC_FAIL); } + /* compute and store M(t)^{-1} fi */ if (step_mem->mass_type == MASS_TIMEDEP) { retval = step_mem->msolve((void *) ark_mem, step_mem->Fi[0], @@ -1440,6 +1445,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, N_VScale(ONE, step_mem->Fe[0], f); } + /* compute M^{-1} f for output but do not store */ if (step_mem->mass_type == MASS_FIXED) { retval = step_mem->msolve((void *) ark_mem, f, @@ -1464,17 +1470,12 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, break; - - /* ARK_FULLRHS_END: called at the end of a successful step - If the ARK method coefficients support it, we just copy the last stage RHS - vectors to fill f instead of calling fe() and fi(). - Copy the results to Fe[0] and Fi[0] if the ARK coefficients support it. */ case ARK_FULLRHS_END: - /* determine if RHS functions need to be recomputed */ + /* compute the full RHS */ if (!(ark_mem->fn_current)) { - /* determine if explicit/implicit RHS functions need to be recomputed */ + /* determine if RHS functions need to be recomputed */ recomputeRHS = SUNFALSE; if (step_mem->explicit) @@ -1501,13 +1502,13 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* FSAL methods are not FSAL when when relaxation is enabled */ + /* Stiffly Accurate methods are not SA when relaxation is enabled */ if (ark_mem->relax_enabled) { recomputeRHS = SUNTRUE; } - /* base RHS calls on recomputeRHS argument */ + /* recompute RHS functions */ if (recomputeRHS) { - /* call fe if the problem has an explicit component */ + /* compute the explicit component */ if (step_mem->explicit) { retval = step_mem->fe(t, y, step_mem->Fe[0], ark_mem->user_data); @@ -1519,6 +1520,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, return(ARK_RHSFUNC_FAIL); } + /* compute and store M(t)^{-1} fi */ if (step_mem->mass_type == MASS_TIMEDEP) { retval = step_mem->msolve((void *) ark_mem, step_mem->Fe[0], @@ -1532,7 +1534,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* call fi if the problem has an implicit component */ + /* compute the implicit component */ if (step_mem->implicit) { retval = step_mem->fi(t, y, step_mem->Fi[0], ark_mem->user_data); @@ -1544,6 +1546,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, return(ARK_RHSFUNC_FAIL); } + /* compute and store M(t)^{-1} fi */ if (step_mem->mass_type == MASS_TIMEDEP) { retval = step_mem->msolve((void *) ark_mem, step_mem->Fi[0], @@ -1587,6 +1590,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, N_VScale(ONE, step_mem->Fe[0], f); } + /* compute M^{-1} f for output but do not store */ if (step_mem->mass_type == MASS_FIXED) { retval = step_mem->msolve((void *) ark_mem, f, @@ -1611,12 +1615,9 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, break; - /* ARK_FULLRHS_OTHER: called for dense output in-between steps or for - estimation of the initial time step size, store the intermediate - calculations in such a way as to not interfere with the other two modes */ case ARK_FULLRHS_OTHER: - /* call fe if the problem has an explicit component (store in ark_tempv2) */ + /* compute the explicit component and store in ark_tempv2 */ if (step_mem->explicit) { retval = step_mem->fe(t, y, ark_mem->tempv2, ark_mem->user_data); step_mem->nfe++; @@ -1627,7 +1628,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* call fi if the problem has an implicit component (store in sdata) */ + /* compute the implicit component and store in sdata */ if (step_mem->implicit) { retval = step_mem->fi(t, y, step_mem->sdata, ark_mem->user_data); step_mem->nfi++; @@ -1647,7 +1648,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, N_VScale(ONE, ark_mem->tempv2, f); } - /* if M != I, then update f = M^{-1}*f */ + /* compute M^{-1} f for output but do not store */ if (step_mem->mass_type != MASS_IDENTITY) { retval = step_mem->msolve((void *) ark_mem, f, @@ -1764,7 +1765,7 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) N_VScale(ONE, ark_mem->yn, step_mem->z[0]); } - /* check if the method is First Same As Last (FASL) */ + /* check if the method is Stiffly Accurate (SA) */ if (step_mem->explicit) { for (is = 0; is < step_mem->stages; is++) @@ -1787,16 +1788,13 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) } } - /* call full RHS if needed for explicit first stage -- if this is the first - step then we need to evaluate or copy the RHS values at the start of the - step. With subsequent steps we are evaluating the RHS at the end of the - just completed step i.e., the start of this step can may be able to use the - last stage RHS at the end of the last step (FSAL methods) or need a new - function evaluation. - - It the method has an implicit first stage but is stiffly accurate, call the - full RHS to copy fn from the end of the last step when using Hermite - interpolation to save a function evaluation per step. */ + /* Call the full RHS if needed e.g., an explicit first stage. If this is the + first step then we may need to evaluate or copy the RHS values from an + earlier evaluation (e.g., to compute h0). For subsequent steps treat this + RHS evaluation as an evaluation at the end of the just completed step to + potentially reuse (FSAL methods) or save (stiffly accurate methods with an + implicit first stage using Hermite interpolation) RHS evaluations from the + end of the last step. */ if ((!implicit_stage || (stiffly_accurate && ark_mem->interp_type == ARK_INTERP_HERMITE)) && !(ark_mem->fn_current)) diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index 8d7b4ba184..750853943e 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -600,30 +600,35 @@ int erkStep_Init(void* arkode_mem, int init_type) } -/*--------------------------------------------------------------- +/*------------------------------------------------------------------------------ erkStep_FullRHS: - This is just a wrapper to call the user-supplied RHS function, - f(t,y). + This is just a wrapper to call the user-supplied RHS function, f(t,y). This will be called in one of three 'modes': - ARK_FULLRHS_START -> called at the beginning of a simulation - or after post processing at step - ARK_FULLRHS_END -> called at the end of a successful step - ARK_FULLRHS_OTHER -> called elsewhere (e.g. for dense output) - - If it is called in ARK_FULLRHS_START mode, we store the vectors - f(t,y) in F[0] for possible reuse in the first stage of the - subsequent time step. - - If it is called in ARK_FULLRHS_END mode and the method coefficients - support it, we may just copy vectors F[stages] to fill f instead - of calling f(). - - ARK_FULLRHS_OTHER mode is only called for dense output in-between - steps, so we strive to store the intermediate parts so that they - do not interfere with the other two modes. - ---------------------------------------------------------------*/ + + ARK_FULLRHS_START -> called at the beginning of a simulation i.e., at + (tn, yn) = (t0, y0) or (tR, yR) + + ARK_FULLRHS_END -> called at the end of a successful step i.e, at + (tcur, ycur) or the start of the subsequent step i.e., + at (tn, yn) = (tcur, ycur) from the end of the last + step + + ARK_FULLRHS_OTHER -> called elsewhere (e.g. for dense output) + + If this function is called in ARK_FULLRHS_START or ARK_FULLRHS_END mode and + evaluating the RHS functions is necessary, we store the vector f(t,y) in Fe[0] + for reuse in the first stage of the subsequent time step. + + In ARK_FULLRHS_END mode we check if the method is "stiffly accurate" and, if + appropriate, copy the vector F[stages - 1] to F[0] for reuse in the first + stage of the subsequent time step. + + ARK_FULLRHS_OTHER mode is only called for dense output in-between steps, or + when estimating the initial time step size, so we strive to store the + intermediate parts so that they do not interfere with the other two modes. + ----------------------------------------------------------------------------*/ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, int mode) { @@ -640,12 +645,9 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, /* perform RHS functions contingent on 'mode' argument */ switch(mode) { - /* ARK_FULLRHS_START: called at the beginning of a simulation - Store the vectors f(t,y) in F[0] for possible reuse - in the first stage of the subsequent time step */ case ARK_FULLRHS_START: - /* call f */ + /* compute the RHS */ if (!(ark_mem->fn_current)) { retval = step_mem->f(t, y, step_mem->F[0], ark_mem->user_data); @@ -663,14 +665,9 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, break; - - /* ARK_FULLRHS_END: called at the end of a successful step - If the method coefficients support it, we just copy the last stage RHS - vectors to fill f instead of calling f(t,y). - Copy the results to F[0] if the coefficients support it. */ case ARK_FULLRHS_END: - /* determine if explicit RHS function needs to be recomputed */ + /* determine if RHS function needs to be recomputed */ if (!(ark_mem->fn_current)) { recomputeRHS = SUNFALSE; @@ -683,7 +680,7 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* FSAL methods are not FSAL when when relaxation is enabled */ + /* First Same As Last methods are not FSAL when relaxation is enabled */ if (ark_mem->relax_enabled) { recomputeRHS = SUNTRUE; } /* base RHS calls on recomputeRHS argument */ @@ -710,9 +707,6 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, break; - /* ARK_FULLRHS_OTHER: called for dense output in-between steps - store the intermediate calculations in such a way as to not - interfere with the other two modes */ case ARK_FULLRHS_OTHER: /* call f */ @@ -795,11 +789,12 @@ int erkStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) N_VPrintFile(step_mem->F[0], ARK_LOGGER->debug_fp); #endif - /* call full RHS if needed -- if this is the first step then we need to - evaluate or copy the RHS values at the start of the step. With subsequent - steps we are evaluating the RHS at the end of the just completed step i.e., - the start of this step can may be able to use the last stage RHS at the end - of the last step (FSAL methods) or need a new function evaluation. */ + /* Call the full RHS if needed. If this is the first step then we may need to + evaluate or copy the RHS values from an earlier evaluation (e.g., to + compute h0). For subsequent steps treat this RHS evaluation as an + evaluation at the end of the just completed step to potentially reuse + (FSAL methods) RHS evaluations from the end of the last step. */ + if (!(ark_mem->fn_current)) { mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index 7416529abd..a022bd9ad8 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -807,9 +807,17 @@ struct ARKodeMemRec ODE RHS function supplied (e.g. ERK, DIRK, IRK), or it may be the sum of many ODE RHS functions (e.g. ARK, MRI). The 'mode' indicates where this routine is called: + ARK_FULLRHS_START -> called at the beginning of a simulation - ARK_FULLRHS_END -> called at the end of a successful step + i.e., at (tn, yn) = (t0, y0) or (tR, yR) + + ARK_FULLRHS_END -> called at the end of a successful step i.e, + at (tcur, ycur) or the start of the subsequent + step i.e., at (tn, yn) = (tcur, ycur) from + the end of the last step + ARK_FULLRHS_OTHER -> called elsewhere (e.g. for dense output) + It is recommended that the stepper use the mode information to maximize reuse between calls to this function and RHS evaluations inside the stepper itself. diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index 22a1d4b82b..df8c3d900e 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -1214,30 +1214,35 @@ int mriStep_Init(void* arkode_mem, int init_type) } -/*--------------------------------------------------------------- +/*------------------------------------------------------------------------------ mriStep_FullRHS: This is just a wrapper to call the user-supplied RHS functions, f(t,y) = fse(t,y) + fsi(t,y) + ff(t,y). This will be called in one of three 'modes': - ARK_FULLRHS_START -> called at the beginning of a simulation - or after post processing at step - ARK_FULLRHS_END -> called at the end of a successful step - ARK_FULLRHS_OTHER -> called elsewhere (e.g. for dense output) - If it is called in ARK_FULLRHS_START mode, we store the vectors - f(t,y) in F[0] for possible reuse in the first stage of the + ARK_FULLRHS_START -> called at the beginning of a simulation i.e., at + (tn, yn) = (t0, y0) or (tR, yR) + + ARK_FULLRHS_END -> called at the end of a successful step i.e, at + (tcur, ycur) or the start of the subsequent step i.e., + at (tn, yn) = (tcur, ycur) from the end of the last + step + + ARK_FULLRHS_OTHER -> called elsewhere (e.g. for dense output) + + If this function is called in ARK_FULLRHS_START or ARK_FULLRHS_END mode and + evaluating the RHS functions is necessary, we store the vectors fse(t,y) and + fsi(t,y) in Fse[0] and Fsi[0] for possible reuse in the first stage of the subsequent time step. - If it is called in ARK_FULLRHS_END mode, we reevauate f(t,y). At - this time no checks are made to see if the method coefficient - support copying vectors F[stages] to fill f instead of calling f(). + ARK_FULLRHS_OTHER mode is only called for dense output in-between steps, or + when estimating the initial time step size, so we strive to store the + intermediate parts so that they do not interfere with the other two modes. - ARK_FULLRHS_OTHER mode is only called for dense output in-between - steps, so we strive to store the intermediate parts so that they - do not interfere with the other two modes. - ---------------------------------------------------------------*/ + Presently ff(t,y) is always called with ARK_FULLRHS_OTHER mode. + ----------------------------------------------------------------------------*/ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, int mode) { @@ -1253,15 +1258,12 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, /* perform RHS functions contingent on 'mode' argument */ switch(mode) { - /* ARK_FULLRHS_START: called at the beginning of a simulation - Store the vector fs(t,y) in F[0] for possible reuse - in the first stage of the subsequent time step */ case ARK_FULLRHS_START: - /* call f */ + /* compute the full RHS */ if (!(ark_mem->fn_current)) { - /* call fse if the problem has an explicit component */ + /* compute the explicit component */ if (step_mem->explicit_rhs) { retval = step_mem->fse(t, y, step_mem->Fse[0], ark_mem->user_data); @@ -1274,7 +1276,7 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* call fsi if the problem has an implicit component */ + /* compute the implicit component */ if (step_mem->implicit_rhs) { retval = step_mem->fsi(t, y, step_mem->Fsi[0], ark_mem->user_data); @@ -1287,7 +1289,7 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* call ff (force new RHS computation) */ + /* compute the fast component (force new RHS computation) */ retval = mriStepInnerStepper_FullRhs(step_mem->stepper, t, y, f, ARK_FULLRHS_OTHER); if (retval != ARK_SUCCESS) @@ -1318,16 +1320,12 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, break; - - /* ARK_FULLRHS_END: called at the end of a successful step - This always recomputes the full RHS (i.e., this is the - same as case 0). */ case ARK_FULLRHS_END: - /* determine if RHS functions need to be recomputed */ + /* compute the full RHS */ if (!(ark_mem->fn_current)) { - /* call fse if the problem has an explicit component */ + /* compute the explicit component */ if (step_mem->explicit_rhs) { retval = step_mem->fse(t, y, step_mem->Fse[0], ark_mem->user_data); @@ -1340,7 +1338,7 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* call fsi if the problem has an implicit component */ + /* compute the implicit component */ if (step_mem->implicit_rhs) { retval = step_mem->fsi(t, y, step_mem->Fsi[0], ark_mem->user_data); @@ -1353,7 +1351,7 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* call ff (force new RHS computation) */ + /* compute the fast component (force new RHS computation) */ retval = mriStepInnerStepper_FullRhs(step_mem->stepper, t, y, f, ARK_FULLRHS_OTHER); if (retval != ARK_SUCCESS) @@ -1384,12 +1382,9 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, break; - /* ARK_FULLRHS_OTHER: called for dense output in-between steps - store the intermediate calculations in such a way as to not - interfere with the other two modes */ case ARK_FULLRHS_OTHER: - /* call fse if the problem has an explicit component (store in ark_tempv2) */ + /* compute the explicit component and store in ark_tempv2 */ if (step_mem->explicit_rhs) { retval = step_mem->fse(t, y, ark_mem->tempv2, ark_mem->user_data); step_mem->nfse++; @@ -1400,7 +1395,7 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } } - /* call fsi if the problem has an implicit component (store in sdata) */ + /* compute the implicit component and store in sdata */ if (step_mem->implicit_rhs) { retval = step_mem->fsi(t, y, step_mem->sdata, ark_mem->user_data); step_mem->nfsi++; @@ -1412,7 +1407,7 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } - /* call ff (force new RHS computation) */ + /* compute the fast component (force new RHS computation) */ retval = mriStepInnerStepper_FullRhs(step_mem->stepper, t, y, f, ARK_FULLRHS_OTHER); if (retval != ARK_SUCCESS) { @@ -1422,15 +1417,21 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, } /* combine RHS vectors into output */ - if (step_mem->explicit_rhs && step_mem->implicit_rhs) { /* ImEx */ + if (step_mem->explicit_rhs && step_mem->implicit_rhs) + { + /* ImEx */ N_VLinearSum(ONE, ark_mem->tempv2, ONE, f, f); N_VLinearSum(ONE, step_mem->sdata, ONE, f, f); - } else { /* implicit */ - if (step_mem->implicit_rhs) { - N_VLinearSum(ONE, step_mem->sdata, ONE, f, f); - } else { /* explicit */ - N_VLinearSum(ONE, ark_mem->tempv2, ONE, f, f); - } + } + else if (step_mem->implicit_rhs) + { + /* implicit */ + N_VLinearSum(ONE, step_mem->sdata, ONE, f, f); + } + else + { + /* explicit */ + N_VLinearSum(ONE, ark_mem->tempv2, ONE, f, f); } break; diff --git a/src/arkode/arkode_sprkstep.c b/src/arkode/arkode_sprkstep.c index 9ac63054f5..f2968ffef3 100644 --- a/src/arkode/arkode_sprkstep.c +++ b/src/arkode/arkode_sprkstep.c @@ -496,30 +496,27 @@ int sprkStep_f2(ARKodeSPRKStepMem step_mem, sunrealtype tcur, N_Vector ycur, return retval; } -/*--------------------------------------------------------------- +/*------------------------------------------------------------------------------ sprkStep_FullRHS: This is just a wrapper to call the user-supplied RHS, f1(t,y) + f2(t,y). This will be called in one of three 'modes': - ARK_FULLRHS_START -> called at the beginning of a simulation - or after post processing at step - ARK_FULLRHS_END -> called at the end of a successful step - ARK_FULLRHS_OTHER -> called elsewhere (e.g. for dense output) - - If it is called in ARK_FULLRHS_START mode, we store the vectors - f1(t,y) and f2(t,y) in sdata for possible reuse in the first stage - of the subsequent time step. - - If it is called in ARK_FULLRHS_END mode and the method coefficients - support it, we may just copy the stage vectors to fill f instead - of calling f(). - - ARK_FULLRHS_OTHER mode is only called for dense output in-between - steps, so we strive to store the intermediate parts so that they - do not interfere with the other two modes. - ---------------------------------------------------------------*/ + + ARK_FULLRHS_START -> called at the beginning of a simulation i.e., at + (tn, yn) = (t0, y0) or (tR, yR) + + ARK_FULLRHS_END -> called at the end of a successful step i.e, at + (tcur, ycur) or the start of the subsequent step i.e., + at (tn, yn) = (tcur, ycur) from the end of the last + step + + ARK_FULLRHS_OTHER -> called elsewhere (e.g. for dense output) + + Since RHS values are not stored in SPRKStep we evaluate the RHS functions for + all modes. + ----------------------------------------------------------------------------*/ int sprkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, int mode) { @@ -539,6 +536,9 @@ int sprkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_END: case ARK_FULLRHS_OTHER: + /* Since f1 and f2 do not have overlapping outputs and so the f vector is + passed to both RHS functions. */ + retval = sprkStep_f1(step_mem, t, y, f, ark_mem->user_data); if (retval != 0) { From f5de597502777259151bcab026f0997770a0c0e3 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 19:05:32 -0700 Subject: [PATCH 37/92] update ark and erk rhs evals test configs --- test/unit_tests/arkode/CXX_serial/CMakeLists.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/unit_tests/arkode/CXX_serial/CMakeLists.txt b/test/unit_tests/arkode/CXX_serial/CMakeLists.txt index a9466ddf6a..b085ade6fe 100644 --- a/test/unit_tests/arkode/CXX_serial/CMakeLists.txt +++ b/test/unit_tests/arkode/CXX_serial/CMakeLists.txt @@ -18,8 +18,14 @@ set(unit_tests "ark_test_analytic_sys_mri.cpp\;0" "ark_test_analytic_sys_mri.cpp\;1" - "ark_test_dahlquist_ark.cpp\;" - "ark_test_dahlquist_erk.cpp\;" + "ark_test_dahlquist_ark.cpp\;0 0" + "ark_test_dahlquist_ark.cpp\;1 0" + "ark_test_dahlquist_ark.cpp\;2 0" + "ark_test_dahlquist_ark.cpp\;0 1" + "ark_test_dahlquist_ark.cpp\;1 1" + "ark_test_dahlquist_ark.cpp\;2 1" + "ark_test_dahlquist_erk.cpp\;0" + "ark_test_dahlquist_erk.cpp\;1" "ark_test_dahlquist_mri.cpp\;" "ark_test_butcher.cpp\;" "ark_test_getjac.cpp\;" From 849ab0361c03c37ca4a3b1afbacc8a6ee1330ec2 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 19:37:02 -0700 Subject: [PATCH 38/92] remove fullRHS usage in MRIStep TakeStep --- src/arkode/arkode_mristep.c | 43 +++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index df8c3d900e..ea2b38e51c 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -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); } @@ -1255,6 +1251,14 @@ 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)) + { + 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) { @@ -1492,19 +1496,40 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) /* call nonlinear solver setup if it exists */ if (step_mem->NLS) + { if ((step_mem->NLS)->ops->setup) { N_VConst(ZERO, ark_mem->tempv3); /* set guess to 0 for predictor-corrector form */ retval = SUNNonlinSolSetup(step_mem->NLS, ark_mem->tempv3, ark_mem); if (retval < 0) return(ARK_NLS_SETUP_FAIL); if (retval > 0) return(ARK_NLS_SETUP_RECVR); } + } + + /* Call the full RHS if needed. NOTE: We do not use the full RHS function here + (unlike ERKStep and ARKStep) since it does not need to check for FSAL or SA + methods and this avoids potentially unnecessary evaluations of the inner + (fast) RHS function */ if (!(ark_mem->fn_current)) { - mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; - retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, - ark_mem->fn, mode); - if (retval) { return ARK_RHSFUNC_FAIL; } + /* compute the explicit component */ + if (step_mem->explicit_rhs) + { + retval = step_mem->fse(ark_mem->tn, ark_mem->yn, step_mem->Fse[0], + ark_mem->user_data); + step_mem->nfse++; + if (retval) { return ARK_RHSFUNC_FAIL; } + } + + /* compute the implicit component */ + if (step_mem->implicit_rhs) + { + retval = step_mem->fsi(ark_mem->tn, ark_mem->yn, step_mem->Fsi[0], + ark_mem->user_data); + step_mem->nfsi++; + if (retval) { return ARK_RHSFUNC_FAIL; } + } + ark_mem->fn_current = SUNTRUE; } @@ -2771,7 +2796,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; From bb581e4c78be131a63757cabc68a3e1c4291ff11 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 22:08:48 -0700 Subject: [PATCH 39/92] update docs --- CHANGELOG.md | 14 +++++++ doc/arkode/guide/source/Introduction.rst | 15 +++++++ .../Custom_Inner_Stepper/Description.rst | 11 +++-- scripts/updateVersion.sh | 41 ++++++++++++------- 4 files changed, 63 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5129794504..2603837f6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper object. +Fixed a bug in ERKStep where methods with `c[s-1] = 1` but `a[s-1,j] != b[j]` +were incorrectly treated as having the first same as last (FSAL) property. + +ARKStep, ERKStep, MRIStep, and SPRKStep were updated to remove a potentially +unnecessary right-hand side evaluation at the end of an integration, before +reinitializing the integrator, or resizing the integrator when using one-step +mode or when a stop time is set and interpolation at the stop time is disabled. +ARKStep was additionally updated to remove extra right-hand side evaluations +when using an explicit method or an implicit method with an explicit first +stage. + +The `MRIStepInnerStepper` class in MRIStep was updated to make supplying an +`MRIStepInnerFullRhsFn` optional. + ## Changes to SUNDIALS in release 6.6.0 A new time-stepping module, `SPRKStep`, was added to ARKODE. This time-stepper diff --git a/doc/arkode/guide/source/Introduction.rst b/doc/arkode/guide/source/Introduction.rst index b532f9243e..c94567f33f 100644 --- a/doc/arkode/guide/source/Introduction.rst +++ b/doc/arkode/guide/source/Introduction.rst @@ -136,6 +136,21 @@ Changes in vX.X.X Fixed a memory leak when destroying a CUDA, HIP, SYCL, or system SUNMemoryHelper object. +Fixed a bug in ERKStep where methods with :math:`c_s = 1` but +:math:`a_{s,j} \neq b_j` were incorrectly treated as having the first same as +last (FSAL) property. + +ARKStep, ERKStep, MRIStep, and SPRKStep were updated to remove a potentially +unnecessary right-hand side evaluation at the end of an integration, before +reinitializing the integrator, or resizing the integrator when using one-step +mode or when a stop time is set and interpolation at the stop time is disabled. +ARKStep was additionally updated to remove extra right-hand side evaluations +when using an explicit method or an implicit method with an explicit first +stage. + +The :c:type:`MRIStepInnerStepper` class in MRIStep was updated to make supplying +an :c:func:`MRIStepInnerFullRhsFn` optional. + Changes in v5.6.0 ----------------- 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..33fa9edbc7 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 @@ -365,6 +365,11 @@ member functions: **Example codes:** * ``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) @@ -393,11 +398,9 @@ member functions: **Example codes:** * ``examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp`` -Optional Member Functions -""""""""""""""""""""""""" + .. versionchanged:: vX.X.X -An :c:type:`MRIStepInnerStepper` *may* provide implementations of any of the -following member functions: + Supplying a full right-hand side function was made optional. .. c:type:: int (*MRIStepInnerResetFn)(MRIStepInnerStepper stepper, realtype tR, N_Vector vR) diff --git a/scripts/updateVersion.sh b/scripts/updateVersion.sh index 77c6611b92..b6d2f32d4c 100755 --- a/scripts/updateVersion.sh +++ b/scripts/updateVersion.sh @@ -365,24 +365,37 @@ sedi '101s/.*/\ \ note = {v'${idas_ver}'}/' $fn sedi '109s/.*/\ \ year = {'${year}'},/' $fn sedi '110s/.*/\ \ note = {v'${kin_ver}'}/' $fn -# Update CHANGELOG and recent changes +# Update all occurrences of x.x.x and X.X.X to the current version number fn="../CHANGELOG.md" -sedi "s/x.x.x/${sun_ver}/" $fn +sedi "s/x.x.x/${sun_ver}/gI" $fn -fn="../doc/arkode/guide/source/Introduction.rst" -sedi "s/x.x.x/${ark_ver}/" $fn +for fn in $(grep -Iirl "x.x.x" ../doc/arkode/guide/source/*) +do + echo "update: $fn" + sedi "s/x.x.x/${ark_ver}/gI" $fn +done -fn="../doc/cvode/guide/source/Introduction.rst" -sedi "s/x.x.x/${cv_ver}/" $fn +for fn in $(grep -Iirl "x.x.x" ../doc/cvode/guide/source/*) +do + sedi "s/x.x.x/${cv_ver}/gI" $fn +done -fn="../doc/cvodes/guide/source/Introduction.rst" -sedi "s/x.x.x/${cvs_ver}/" $fn +for fn in $(grep -Iirl "x.x.x" ../doc/cvodes/guide/source/*) +do + sedi "s/x.x.x/${cvs_ver}/gI" $fn +done -fn="../doc/ida/guide/source/Introduction.rst" -sedi "s/x.x.x/${ida_ver}/" $fn +for fn in $(grep -Iirl "x.x.x" ../doc/ida/guide/source/*) +do + sedi "s/x.x.x/${ida_ver}/gI" $fn +done -fn="../doc/idas/guide/source/Introduction.rst" -sedi "s/x.x.x/${idas_ver}/" $fn +for fn in $(grep -Iirl "x.x.x" ../doc/idas/guide/source/*) +do + sedi "s/x.x.x/${idas_ver}/gI" $fn +done -fn="../doc/kinsol/guide/source/Introduction.rst" -sedi "s/x.x.x/${kin_ver}/" $fn +for fn in $(grep -Iirl "x.x.x" ../doc/kinsol/guide/source/*) +do + sedi "s/x.x.x/${kin_ver}/gI" $fn +done From 93ceb759d83755dbeaac7b86fbed0b5c84f97ade Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 22:21:02 -0700 Subject: [PATCH 40/92] remove unused variable --- src/arkode/arkode_mristep.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index ea2b38e51c..c37e49c1fb 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -1482,7 +1482,6 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) ARKodeMRIStepMem step_mem; /* outer stepper memory */ int is; /* current stage index */ int retval; /* reusable return flag */ - int mode; /* full RHS evaluation mode */ /* initialize algebraic solver convergence flag to success; error estimate to zero */ From 3f6d1bf149079572dab0b6691d1632800318d41b Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 21 Aug 2023 10:45:24 -0700 Subject: [PATCH 41/92] fix printing explicit MRI coupling tables --- CHANGELOG.md | 3 +++ doc/arkode/guide/source/Introduction.rst | 3 +++ src/arkode/arkode_mri_tables.c | 10 ++++------ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2603837f6d..dbc5a2e83d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ object. Fixed a bug in ERKStep where methods with `c[s-1] = 1` but `a[s-1,j] != b[j]` were incorrectly treated as having the first same as last (FSAL) property. +Fixed a bug in `MRIStepCoupling_Write` where explicit coupling tables were not +written to the output file pointer. + ARKStep, ERKStep, MRIStep, and SPRKStep were updated to remove a potentially unnecessary right-hand side evaluation at the end of an integration, before reinitializing the integrator, or resizing the integrator when using one-step diff --git a/doc/arkode/guide/source/Introduction.rst b/doc/arkode/guide/source/Introduction.rst index c94567f33f..76811c5ef2 100644 --- a/doc/arkode/guide/source/Introduction.rst +++ b/doc/arkode/guide/source/Introduction.rst @@ -140,6 +140,9 @@ Fixed a bug in ERKStep where methods with :math:`c_s = 1` but :math:`a_{s,j} \neq b_j` were incorrectly treated as having the first same as last (FSAL) property. +Fixed a bug in :c:func:`MRIStepCoupling_Write` where explicit coupling tables +were not written to the output file pointer. + ARKStep, ERKStep, MRIStep, and SPRKStep were updated to remove a potentially unnecessary right-hand side evaluation at the end of an integration, before reinitializing the integrator, or resizing the integrator when using one-step diff --git a/src/arkode/arkode_mri_tables.c b/src/arkode/arkode_mri_tables.c index b1fc0723d6..5552ec6cbf 100644 --- a/src/arkode/arkode_mri_tables.c +++ b/src/arkode/arkode_mri_tables.c @@ -62,8 +62,8 @@ MRIStepCoupling MRIStepCoupling_LoadTableByName(const char *method) #undef ARK_MRI_TABLE arkProcessError(NULL, ARK_ILL_INPUT, "ARKODE", - "MRIStepCoupling_LoadTable", - "Unknown coupling table"); + "MRIStepCoupling_LoadTable", + "Unknown coupling table"); return NULL; } @@ -461,7 +461,8 @@ void MRIStepCoupling_Write(MRIStepCoupling MRIC, FILE *outfile) /* check for vaild coupling structure */ if (!MRIC) return; - if (!(MRIC->G)) return; + if (!(MRIC->W) && !(MRIC->G)) return; + if (!(MRIC->c)) return; if (MRIC->W) { for (i = 0; i < MRIC->nmat; i++) { @@ -479,13 +480,10 @@ void MRIStepCoupling_Write(MRIStepCoupling MRIC, FILE *outfile) } } - if (!(MRIC->c)) return; - fprintf(outfile, " nmat = %i\n", MRIC->nmat); fprintf(outfile, " stages = %i\n", MRIC->stages); fprintf(outfile, " method order (q) = %i\n", MRIC->q); fprintf(outfile, " embedding order (p) = %i\n", MRIC->p); - fprintf(outfile, " c = "); for (i = 0; i < MRIC->stages; i++) fprintf(outfile, "%"RSYM" ", MRIC->c[i]); From d8b7f399c147e2ec2966c202d072f76594a09243 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 21 Aug 2023 10:50:09 -0700 Subject: [PATCH 42/92] update change log --- CHANGELOG.md | 9 +++------ doc/arkode/guide/source/Introduction.rst | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dbc5a2e83d..006101bf26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,12 +12,9 @@ Fixed a bug in `MRIStepCoupling_Write` where explicit coupling tables were not written to the output file pointer. ARKStep, ERKStep, MRIStep, and SPRKStep were updated to remove a potentially -unnecessary right-hand side evaluation at the end of an integration, before -reinitializing the integrator, or resizing the integrator when using one-step -mode or when a stop time is set and interpolation at the stop time is disabled. -ARKStep was additionally updated to remove extra right-hand side evaluations -when using an explicit method or an implicit method with an explicit first -stage. +unnecessary right-hand side evaluation at the end of an integration. ARKStep was +additionally updated to remove extra right-hand side evaluations when using an +explicit method or an implicit method with an explicit first stage. The `MRIStepInnerStepper` class in MRIStep was updated to make supplying an `MRIStepInnerFullRhsFn` optional. diff --git a/doc/arkode/guide/source/Introduction.rst b/doc/arkode/guide/source/Introduction.rst index 76811c5ef2..313303939e 100644 --- a/doc/arkode/guide/source/Introduction.rst +++ b/doc/arkode/guide/source/Introduction.rst @@ -144,12 +144,9 @@ Fixed a bug in :c:func:`MRIStepCoupling_Write` where explicit coupling tables were not written to the output file pointer. ARKStep, ERKStep, MRIStep, and SPRKStep were updated to remove a potentially -unnecessary right-hand side evaluation at the end of an integration, before -reinitializing the integrator, or resizing the integrator when using one-step -mode or when a stop time is set and interpolation at the stop time is disabled. -ARKStep was additionally updated to remove extra right-hand side evaluations -when using an explicit method or an implicit method with an explicit first -stage. +unnecessary right-hand side evaluation at the end of an integration. ARKStep was +additionally updated to remove extra right-hand side evaluations when using an +explicit method or an implicit method with an explicit first stage. The :c:type:`MRIStepInnerStepper` class in MRIStep was updated to make supplying an :c:func:`MRIStepInnerFullRhsFn` optional. From 318aa35153b8d9b684941f029b3d834bc5ab7ec0 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 21 Aug 2023 10:50:20 -0700 Subject: [PATCH 43/92] update expected MRI RHS evaluation count --- src/arkode/arkode_mristep.c | 4 +-- .../CXX_serial/ark_test_dahlquist_mri.cpp | 30 +++++++++++++------ 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index c37e49c1fb..fb013fc529 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -1576,8 +1576,8 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_INFO SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_INFO, "ARKODE::mriStep_TakeStep", "start-stage", - "step = %li, stage = %i, h = %"RSYM", tcur = %"RSYM, - ark_mem->nst, is, ark_mem->h, ark_mem->tcur); + "step = %li, stage = %i, stage type = %d, h = %"RSYM", tcur = %"RSYM, + ark_mem->nst, is, step_mem->stagetypes[is], ark_mem->h, ark_mem->tcur); #endif /* Determine current stage type, and call corresponding routine; the diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp index c9a1744de0..e958c047ee 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp @@ -268,9 +268,9 @@ int run_tests(MRISTEP_METHOD_TYPE type, realtype t0, int nsteps, num_methods = 3; methods = new ARKODE_MRITableID[num_methods]; - methods[0] = ARKODE_MRI_GARK_ERK45a; + methods[0] = ARKODE_MIS_KW3; methods[1] = ARKODE_MRI_GARK_ERK33a; - methods[2] = ARKODE_MIS_KW3; + methods[2] = ARKODE_MRI_GARK_ERK45a; } else if (type == MRISTEP_IMPLICIT) { @@ -282,13 +282,13 @@ int run_tests(MRISTEP_METHOD_TYPE type, realtype t0, int nsteps, methods = new ARKODE_MRITableID[num_methods]; stiffly_accurate = new bool[num_methods]; - methods[0] = ARKODE_MRI_GARK_ESDIRK46a; + methods[0] = ARKODE_MRI_GARK_IRK21a; stiffly_accurate[0] = true; methods[1] = ARKODE_MRI_GARK_ESDIRK34a; stiffly_accurate[1] = true; - methods[2] = ARKODE_MRI_GARK_IRK21a; + methods[2] = ARKODE_MRI_GARK_ESDIRK46a; stiffly_accurate[2] = true; } else if (type == MRISTEP_IMEX) @@ -301,13 +301,13 @@ int run_tests(MRISTEP_METHOD_TYPE type, realtype t0, int nsteps, methods = new ARKODE_MRITableID[num_methods]; stiffly_accurate = new bool[num_methods]; - methods[0] = ARKODE_IMEX_MRI_GARK4; + methods[0] = ARKODE_IMEX_MRI_GARK3a; stiffly_accurate[0] = false; methods[1] = ARKODE_IMEX_MRI_GARK3b; stiffly_accurate[1] = false; - methods[2] = ARKODE_IMEX_MRI_GARK3a; + methods[2] = ARKODE_IMEX_MRI_GARK4; stiffly_accurate[2] = false; } else @@ -433,7 +433,7 @@ int run_tests(MRISTEP_METHOD_TYPE type, realtype t0, int nsteps, long int fe_evals = 0; if (type == MRISTEP_EXPLICIT || type == MRISTEP_IMEX) { - fe_evals = mri_nst * nstages_stored + 1; + fe_evals = mri_nst * nstages_stored; } if (mri_nfse != fe_evals) @@ -445,8 +445,20 @@ int run_tests(MRISTEP_METHOD_TYPE type, realtype t0, int nsteps, long int fi_evals = 0; if (type == MRISTEP_IMPLICIT || type == MRISTEP_IMEX) { - fi_evals = mri_nst * nstages_stored + mri_nni; - if (stiffly_accurate && !stiffly_accurate[i]) fi_evals++; + if (stiffly_accurate[i]) + { + // The last stage is implicit so it does not correspond to a column of + // zeros in the coupling matrix and is counted in "nstages_stored" + // however we do not evaluate the RHS functions after the solve since + // the methods is "FSAL" (the index map value and allocated space is + // used in the nonlinear for this stage). The RHS functions will be + // evaluated and stored at the start of the next step. + fi_evals = mri_nst * (nstages_stored - 1) + mri_nni; + } + else + { + fi_evals = mri_nst * nstages_stored + mri_nni; + } } if (mri_nfsi != fi_evals) From 0df4cce22b73c6cd8bb27400601fc4e859842424 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 21 Aug 2023 12:35:56 -0700 Subject: [PATCH 44/92] update output files --- ...sion_reaction_p_--np_2_2_--mri-arkstep.out | 2 +- .../CXX_parallel/ark_heat2D_p_--np_2_2.out | 68 +- .../ark_heat2D_hypre_pfmg_mri_--np_2_2.out | 2 +- examples/arkode/CXX_serial/ark_heat2D.out | 68 +- examples/arkode/CXX_serial/ark_pendulum.out | 2 +- .../ark_brusselator1D_imexmri_0_0.001.out | 2 +- .../ark_brusselator1D_imexmri_2_0.001.out | 2 +- .../ark_brusselator1D_imexmri_3_0.001.out | 2 +- .../ark_brusselator1D_imexmri_4_0.001.out | 2 +- .../ark_brusselator1D_imexmri_5_0.001.out | 2 +- .../ark_brusselator1D_imexmri_6_0.001.out | 2 +- .../ark_brusselator1D_imexmri_7_0.001.out | 2 +- .../C_serial/ark_brusselator_1D_mri.out | 2 +- .../arkode/C_serial/ark_brusselator_mri.out | 2 +- .../ark_damped_harmonic_symplectic.out | 4 +- .../C_serial/ark_harmonic_symplectic.out | 4 +- examples/arkode/C_serial/ark_kepler.out | 4 +- ...kepler_--stepper_ERK_--step-mode_adapt.out | 2 +- ...r_ERK_--step-mode_fixed_--count-orbits.out | 2 +- ...LER_1_1_--tf_50_--check-order_--nout_1.out | 32 +- ...ROG_2_2_--tf_50_--check-order_--nout_1.out | 32 +- ...LAN_2_2_--tf_50_--check-order_--nout_1.out | 32 +- ...LAN_3_3_--tf_50_--check-order_--nout_1.out | 32 +- ...LAN_4_4_--tf_50_--check-order_--nout_1.out | 32 +- ...LAN_5_6_--tf_50_--check-order_--nout_1.out | 32 +- ...ROG_2_2_--tf_50_--check-order_--nout_1.out | 32 +- ...UTH_3_3_--tf_50_--check-order_--nout_1.out | 32 +- ...IDA_6_8_--tf_50_--check-order_--nout_1.out | 32 +- examples/arkode/C_serial/ark_kpr_mri.out | 2 +- .../arkode/C_serial/ark_kpr_mri_0_0.002.out | 2 +- .../arkode/C_serial/ark_kpr_mri_1_0.002.out | 2 +- .../arkode/C_serial/ark_kpr_mri_3_0.01.out | 2 +- .../arkode/C_serial/ark_kpr_mri_4_0.002.out | 2 +- .../arkode/C_serial/ark_kpr_mri_5_0.002.out | 62 +- .../arkode/C_serial/ark_kpr_mri_6_0.005.out | 20 +- .../arkode/C_serial/ark_kpr_mri_7_0.001.out | 2 +- .../ark_kpr_mri_7_0.001_-100_100_0.5_1.out | 2 +- .../arkode/C_serial/ark_kpr_mri_8_0.001.out | 2 +- .../ark_kpr_mri_8_0.001_-100_100_0.5_1.out | 2 +- .../arkode/C_serial/ark_kpr_mri_9_0.001.out | 82 +- .../ark_kpr_mri_9_0.001_-100_100_0.5_1.out | 82 +- .../arkode/C_serial/ark_onewaycouple_mri.out | 2 +- .../C_serial/ark_reaction_diffusion_mri.out | 2 +- .../arkode/C_serial/ark_twowaycouple_mri.out | 2 +- .../CXX_parallel/ark_test_heat2D_mri_0.out | 52 + .../CXX_parallel/ark_test_heat2D_mri_1.out | 52 + .../CXX_serial/ark_test_dahlquist_ark_0_0.out | 1972 +++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_0_1.out | 1972 +++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_1_0.out | 1972 +++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_1_1.out | 1972 +++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_2_0.out | 1972 +++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_2_1.out | 1972 +++++++++++++++++ .../CXX_serial/ark_test_dahlquist_erk_0.out | 609 +++++ .../CXX_serial/ark_test_dahlquist_erk_1.out | 609 +++++ .../CXX_serial/ark_test_dahlquist_mri.out | 319 +-- 55 files changed, 13705 insertions(+), 502 deletions(-) create mode 100644 test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out create mode 100644 test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out create mode 100644 test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out index 25f2be4093..f484e63b47 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out @@ -96,4 +96,4 @@ Fast Integrator: Steps = 472 Step attempts = 472 Error test fails = 0 - RHS reaction = 1947 + RHS reaction = 1834 diff --git a/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out b/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out index 5a9b81eb98..a281c8a168 100644 --- a/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out +++ b/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out @@ -37,45 +37,45 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.632812500000001e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.551986504206954e-01 2.454704268845198e-03 - 1.000000000000000e-01 3.296221522563136e-01 2.894351312350718e-03 - 1.500000000000000e-01 2.894445052045986e-01 2.833234860738609e-03 - 2.000000000000000e-01 2.387097405487202e-01 2.521351471365452e-03 - 2.500000000000000e-01 1.824253004688915e-01 2.077548067353219e-03 - 3.000000000000000e-01 1.261158186733340e-01 1.577622926918210e-03 - 3.500000000000000e-01 7.529892942993587e-02 1.082586631952070e-03 - 4.000000000000000e-01 3.495153500642601e-02 6.466745969102711e-04 - 4.500000000000000e-01 9.023447459645315e-03 3.130355812321628e-04 - 4.999999999999999e-01 5.513862655620992e-05 1.155536642670245e-04 - 5.499999999999999e-01 8.918873554259306e-03 7.364539806451950e-05 - 6.000000000000000e-01 3.475277433850531e-02 1.915331682145610e-04 - 6.500000000000000e-01 7.502605966973638e-02 4.576681070362631e-04 - 7.000000000000001e-01 1.257964113977601e-01 8.457898377413064e-04 - 7.500000000000001e-01 1.820944185535271e-01 1.318767636581897e-03 - 8.000000000000002e-01 2.384087203852070e-01 1.828962145097535e-03 - 8.500000000000002e-01 2.892272171327287e-01 2.327446157641688e-03 - 9.000000000000002e-01 3.295754296203942e-01 2.765080717683888e-03 - 9.500000000000003e-01 3.555038632193712e-01 3.099435546668361e-03 - 1.000000000000000e+00 3.644741937247666e-01 3.297054597400817e-03 + 5.000000000000000e-02 3.551986895896301e-01 2.454809192749874e-03 + 1.000000000000000e-01 3.296218924797935e-01 2.893504575480321e-03 + 1.500000000000000e-01 2.894444839668597e-01 2.832208342478770e-03 + 2.000000000000000e-01 2.387098901092724e-01 2.521692271806208e-03 + 2.500000000000000e-01 1.824251441298110e-01 2.077136177408678e-03 + 3.000000000000000e-01 1.261158170834051e-01 1.577512738791642e-03 + 3.500000000000000e-01 7.529897185173372e-02 1.082631769255271e-03 + 4.000000000000000e-01 3.495158561042949e-02 6.467797520159912e-04 + 4.500000000000000e-01 9.023455972295553e-03 3.130158624281738e-04 + 4.999999999999999e-01 5.516397406232856e-05 1.156062150588009e-04 + 5.499999999999999e-01 8.918869101698226e-03 7.363173064021955e-05 + 6.000000000000000e-01 3.475274021243870e-02 1.914355966323028e-04 + 6.500000000000000e-01 7.502602578332933e-02 4.575663730630175e-04 + 7.000000000000001e-01 1.257964771360131e-01 8.459318369608559e-04 + 7.500000000000001e-01 1.820944124085353e-01 1.318720280925501e-03 + 8.000000000000002e-01 2.384088105492750e-01 1.829169545728648e-03 + 8.500000000000002e-01 2.892274299179443e-01 2.327857203215489e-03 + 9.000000000000002e-01 3.295755856715070e-01 2.765412959527036e-03 + 9.500000000000003e-01 3.555036664911532e-01 3.099463807382241e-03 + 1.000000000000000e+00 3.644740299640661e-01 3.296883675957818e-03 ----------------------------------------------------------------------- Final integrator statistics: - Steps = 201 - Step attempts = 225 - Error test fails = 24 - RHS evals = 1578 - NLS iters = 675 + Steps = 212 + Step attempts = 278 + Error test fails = 66 + RHS evals = 1671 + NLS iters = 834 NLS fails = 0 - LS iters = 13075 - LS fails = 623 - LS setups = 82 - LS RHS evals = 13075 - Jv products = 13075 + LS iters = 16144 + LS fails = 783 + LS setups = 149 + LS RHS evals = 16144 + Jv products = 16144 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 19.370370 + Avg LS iters per NLS iter = 19.357314 - Preconditioner setups = 26 - Preconditioner solves = 13075 + Preconditioner setups = 67 + Preconditioner solves = 16144 - Max error = 3.297054597400817e-03 + Max error = 3.296883675957818e-03 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out index 738af757b8..517ba6ea91 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out @@ -74,7 +74,7 @@ Final fast integrator statistics: Steps = 3003 Step attempts = 3003 Error test fails = 0 - RHS evals = 30854 + RHS evals = 29863 NLS iters = 17842 NLS fails = 0 LS iters = 10048 diff --git a/examples/arkode/CXX_serial/ark_heat2D.out b/examples/arkode/CXX_serial/ark_heat2D.out index 78a569fc79..c5b0a2525e 100644 --- a/examples/arkode/CXX_serial/ark_heat2D.out +++ b/examples/arkode/CXX_serial/ark_heat2D.out @@ -31,45 +31,45 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.632812500000000e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.551986506970737e-01 2.454708334354683e-03 - 1.000000000000000e-01 3.296221524496879e-01 2.894333980192343e-03 - 1.500000000000000e-01 2.894444182004682e-01 2.832987149069655e-03 - 2.000000000000000e-01 2.387098264599945e-01 2.521582136275402e-03 - 2.500000000000000e-01 1.824252212041233e-01 2.077346466104524e-03 - 3.000000000000000e-01 1.261157381228246e-01 1.577424243514536e-03 - 3.500000000000000e-01 7.529904383258686e-02 1.082876471873273e-03 - 4.000000000000000e-01 3.495155701826252e-02 6.467375369675482e-04 - 4.500000000000000e-01 9.023496104529438e-03 3.131515037812990e-04 - 4.999999999999999e-01 5.514776992824374e-05 1.155729556710013e-04 - 5.499999999999999e-01 8.918881510806801e-03 7.366549900058444e-05 - 6.000000000000000e-01 3.475274602119641e-02 1.914543241995081e-04 - 6.500000000000000e-01 7.502608870114677e-02 4.577447220200370e-04 - 7.000000000000001e-01 1.257965457940830e-01 8.461313384890978e-04 - 7.500000000000001e-01 1.820944007923683e-01 1.318710942714962e-03 - 8.000000000000002e-01 2.384087154352889e-01 1.828963073706169e-03 - 8.500000000000002e-01 2.892273973706390e-01 2.327791690218795e-03 - 9.000000000000002e-01 3.295756160298886e-01 2.765521979463892e-03 - 9.500000000000003e-01 3.555038689873394e-01 3.099441273207049e-03 - 1.000000000000000e+00 3.644742066608401e-01 3.297074883238493e-03 + 5.000000000000000e-02 3.551985098542798e-01 2.454186628624844e-03 + 1.000000000000000e-01 3.296220192902475e-01 2.893773472733230e-03 + 1.500000000000000e-01 2.894444030745082e-01 2.832677636714465e-03 + 2.000000000000000e-01 2.387097539034183e-01 2.521359923804090e-03 + 2.500000000000000e-01 1.824252333193799e-01 2.077373198548560e-03 + 3.000000000000000e-01 1.261157686830275e-01 1.577507359157349e-03 + 3.500000000000000e-01 7.529896076825714e-02 1.082671564304138e-03 + 4.000000000000000e-01 3.495143178674121e-02 6.464124900900231e-04 + 4.500000000000000e-01 9.023428737472831e-03 3.129818776226138e-04 + 4.999999999999999e-01 5.513764028489616e-05 1.155516508160836e-04 + 5.499999999999999e-01 8.918883646077789e-03 7.367502288030403e-05 + 6.000000000000000e-01 3.475276474614436e-02 1.915025319679242e-04 + 6.500000000000000e-01 7.502609185709115e-02 4.577462621551120e-04 + 7.000000000000001e-01 1.257965856654374e-01 8.462707750805931e-04 + 7.500000000000001e-01 1.820943276158712e-01 1.318505532336145e-03 + 8.000000000000002e-01 2.384088925045184e-01 1.829516851343471e-03 + 8.500000000000002e-01 2.892274135430374e-01 2.327923868139070e-03 + 9.000000000000002e-01 3.295755998811176e-01 2.765541643157010e-03 + 9.500000000000003e-01 3.555039541806354e-01 3.099904652095753e-03 + 1.000000000000000e+00 3.644741568903656e-01 3.297049110868921e-03 ----------------------------------------------------------------------- Final integrator statistics: - Steps = 198 - Step attempts = 220 - Error test fails = 22 - RHS evals = 1543 - NLS iters = 660 + Steps = 199 + Step attempts = 249 + Error test fails = 50 + RHS evals = 1497 + NLS iters = 747 NLS fails = 0 - LS iters = 12758 - LS fails = 609 - LS setups = 77 - LS RHS evals = 12758 - Jv products = 12758 + LS iters = 14751 + LS fails = 726 + LS setups = 117 + LS RHS evals = 14751 + Jv products = 14751 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 19.330303 + Avg LS iters per NLS iter = 19.746988 - Preconditioner setups = 24 - Preconditioner solves = 12758 + Preconditioner setups = 51 + Preconditioner solves = 14751 - Max error = 3.297074883238493e-03 + Max error = 3.297049110868921e-03 diff --git a/examples/arkode/CXX_serial/ark_pendulum.out b/examples/arkode/CXX_serial/ark_pendulum.out index dca1a58ccb..c8b5d1768b 100644 --- a/examples/arkode/CXX_serial/ark_pendulum.out +++ b/examples/arkode/CXX_serial/ark_pendulum.out @@ -20,7 +20,7 @@ Nonlinear Pendulum problem: Final Solver Statistics: Internal solver steps = 8518 (attempted = 8528) Total number of error test failures = 10 - Total RHS evals: Fe = 0, Fi = 50909 + Total RHS evals: Fe = 0, Fi = 50908 Total number of Newton iterations = 25332 Total number of linear solver convergence failures = 5 Total linear solver setups = 459 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 250b314e47..4267e644f6 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 = 874976 + Total RHS evals: Fs = 30004, Ff = 864984 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..c6304ed58d 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 = 68887, Ff = 390049 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 93732f8ea6..52c08c1354 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 = 880116 + Total RHS evals: Fs = 68887, Ff = 870124 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..ed614c2326 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 = 40005, Fsi = 78888, Ff = 360046 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 6bcc4da9c0..793f178138 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 = 1064330 + Total RHS evals: Fse = 40005, Fsi = 78888, Ff = 1054338 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..4385a97fd5 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 = 60007, Fsi = 118894, Ff = 570067 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..c8dd757582 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 = 60007, Fsi = 118894, Ff = 1936011 Slow Newton iters = 58887 Slow Newton conv fails = 0 Slow Jacobian evals = 501 diff --git a/examples/arkode/C_serial/ark_brusselator_1D_mri.out b/examples/arkode/C_serial/ark_brusselator_1D_mri.out index 1b0a2d0afe..698cd076e1 100644 --- a/examples/arkode/C_serial/ark_brusselator_1D_mri.out +++ b/examples/arkode/C_serial/ark_brusselator_1D_mri.out @@ -112,7 +112,7 @@ Final Solver Statistics: Slow Steps: nsts = 1001 Fast Steps: nstf = 3171 (attempted = 3171) - Total RHS evals: Fs = 3004, Ff = 31513 + Total RHS evals: Fs = 3004, Ff = 30611 Total number of fast error test failures = 0 Total linear solver setups = 3118 Total RHS evals for setting up the linear system = 0 diff --git a/examples/arkode/C_serial/ark_brusselator_mri.out b/examples/arkode/C_serial/ark_brusselator_mri.out index 6bc1a1be25..f25ab5ad6e 100644 --- a/examples/arkode/C_serial/ark_brusselator_mri.out +++ b/examples/arkode/C_serial/ark_brusselator_mri.out @@ -31,4 +31,4 @@ Brusselator ODE test problem: Final Solver Statistics: Steps: nsts = 81, nstf = 2187 - Total RHS evals: Fs = 244, Ff = 6644 + Total RHS evals: Fs = 244, Ff = 6582 diff --git a/examples/arkode/C_serial/ark_damped_harmonic_symplectic.out b/examples/arkode/C_serial/ark_damped_harmonic_symplectic.out index 7ba4c709b1..b3bf488a44 100644 --- a/examples/arkode/C_serial/ark_damped_harmonic_symplectic.out +++ b/examples/arkode/C_serial/ark_damped_harmonic_symplectic.out @@ -22,5 +22,5 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 0.0009908169824406335 Current step size = 0.0009908169824406335 -f1 RHS fn evals = 125665 -f2 RHS fn evals = 125665 +f1 RHS fn evals = 125664 +f2 RHS fn evals = 125664 diff --git a/examples/arkode/C_serial/ark_harmonic_symplectic.out b/examples/arkode/C_serial/ark_harmonic_symplectic.out index 565fed7a5c..b0f3f94e7f 100644 --- a/examples/arkode/C_serial/ark_harmonic_symplectic.out +++ b/examples/arkode/C_serial/ark_harmonic_symplectic.out @@ -22,5 +22,5 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 0.0003981633971861239 Current step size = 0.0003981633971861239 -f1 RHS fn evals = 25153 -f2 RHS fn evals = 25153 +f1 RHS fn evals = 25152 +f2 RHS fn evals = 25152 diff --git a/examples/arkode/C_serial/ark_kepler.out b/examples/arkode/C_serial/ark_kepler.out index f8d30be58c..532bf6c6ab 100644 --- a/examples/arkode/C_serial/ark_kepler.out +++ b/examples/arkode/C_serial/ark_kepler.out @@ -72,5 +72,5 @@ Inequality constraint fails = 0 Initial step size = 0.01 Last step size = 0.009999999998981926 Current step size = 0.009999999998981926 -f1 RHS fn evals = 40001 -f2 RHS fn evals = 40001 +f1 RHS fn evals = 40000 +f2 RHS fn evals = 40000 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_adapt.out b/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_adapt.out index 36873efa02..d5a8a7ec99 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_adapt.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_adapt.out @@ -72,7 +72,7 @@ Inequality constraint fails = 0 Initial step size = 1.836231979046091e-06 Last step size = 0.2400202274108805 Current step size = 0.2400202274108805 -Explicit RHS fn evals = 2564 +Explicit RHS fn evals = 2126 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_fixed_--count-orbits.out b/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_fixed_--count-orbits.out index 32f8333a1e..0073f4b1de 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_fixed_--count-orbits.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_fixed_--count-orbits.out @@ -135,7 +135,7 @@ Initial step size = 0.01 Last step size = 0.009999999998981926 Current step size = 0.009999999998981926 Root fn evals = 10288 -Explicit RHS fn evals = 60001 +Explicit RHS fn evals = 50001 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_EULER_1_1_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_EULER_1_1_--tf_50_--check-order_--nout_1.out index 1564a68045..d3a96e50d0 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_EULER_1_1_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_EULER_1_1_--tf_50_--check-order_--nout_1.out @@ -54,8 +54,8 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 2.582822844487962e-11 -f1 RHS fn evals = 50002 -f2 RHS fn evals = 50002 +f1 RHS fn evals = 50001 +f2 RHS fn evals = 50001 Begin Kepler Problem @@ -82,8 +82,8 @@ Inequality constraint fails = 0 Initial step size = 0.0005 Last step size = 0.0004999999432868658 Current step size = 0.0004999999432868658 -f1 RHS fn evals = 100001 -f2 RHS fn evals = 100001 +f1 RHS fn evals = 100000 +f2 RHS fn evals = 100000 Begin Kepler Problem @@ -110,8 +110,8 @@ Inequality constraint fails = 0 Initial step size = 0.00025 Last step size = 0.0002499998522722533 Current step size = 0.0002499998522722533 -f1 RHS fn evals = 200001 -f2 RHS fn evals = 200001 +f1 RHS fn evals = 200000 +f2 RHS fn evals = 200000 Begin Kepler Problem @@ -138,8 +138,8 @@ Inequality constraint fails = 0 Initial step size = 0.000125 Last step size = 3.183586727573126e-10 Current step size = 3.183586727573126e-10 -f1 RHS fn evals = 400002 -f2 RHS fn evals = 400002 +f1 RHS fn evals = 400001 +f2 RHS fn evals = 400001 Begin Kepler Problem @@ -166,8 +166,8 @@ Inequality constraint fails = 0 Initial step size = 6.25e-05 Last step size = 7.503473398173804e-10 Current step size = 7.503473398173804e-10 -f1 RHS fn evals = 800002 -f2 RHS fn evals = 800002 +f1 RHS fn evals = 800001 +f2 RHS fn evals = 800001 Begin Kepler Problem @@ -194,8 +194,8 @@ Inequality constraint fails = 0 Initial step size = 3.125e-05 Last step size = 9.66345226061093e-10 Current step size = 9.66345226061093e-10 -f1 RHS fn evals = 1600002 -f2 RHS fn evals = 1600002 +f1 RHS fn evals = 1600001 +f2 RHS fn evals = 1600001 Begin Kepler Problem @@ -222,8 +222,8 @@ Inequality constraint fails = 0 Initial step size = 1.5625e-05 Last step size = 1.562198162474714e-05 Current step size = 1.562198162474714e-05 -f1 RHS fn evals = 3200001 -f2 RHS fn evals = 3200001 +f1 RHS fn evals = 3200000 +f2 RHS fn evals = 3200000 Begin Kepler Problem @@ -250,8 +250,8 @@ Inequality constraint fails = 0 Initial step size = 7.8125e-06 Last step size = 7.805897645596353e-06 Current step size = 7.805897645596353e-06 -f1 RHS fn evals = 6400001 -f2 RHS fn evals = 6400001 +f1 RHS fn evals = 6400000 +f2 RHS fn evals = 6400000 Order of accuracy wrt solution: expected = 1, max = 1.6317, avg = 1.0843, overall = 1.0418 Order of accuracy wrt Hamiltonian: expected = 1, max = 0.9999, avg = 0.9979, overall = 0.9983 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out index e94148fd44..198a054a27 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out @@ -54,8 +54,8 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 2.582822844487962e-11 -f1 RHS fn evals = 100003 -f2 RHS fn evals = 100003 +f1 RHS fn evals = 100002 +f2 RHS fn evals = 100002 Begin Kepler Problem @@ -82,8 +82,8 @@ Inequality constraint fails = 0 Initial step size = 0.0005 Last step size = 0.0004999999432868658 Current step size = 0.0004999999432868658 -f1 RHS fn evals = 200001 -f2 RHS fn evals = 200001 +f1 RHS fn evals = 200000 +f2 RHS fn evals = 200000 Begin Kepler Problem @@ -110,8 +110,8 @@ Inequality constraint fails = 0 Initial step size = 0.00025 Last step size = 0.0002499998522722533 Current step size = 0.0002499998522722533 -f1 RHS fn evals = 400001 -f2 RHS fn evals = 400001 +f1 RHS fn evals = 400000 +f2 RHS fn evals = 400000 Begin Kepler Problem @@ -138,8 +138,8 @@ Inequality constraint fails = 0 Initial step size = 0.000125 Last step size = 3.183586727573126e-10 Current step size = 3.183586727573126e-10 -f1 RHS fn evals = 800003 -f2 RHS fn evals = 800003 +f1 RHS fn evals = 800002 +f2 RHS fn evals = 800002 Begin Kepler Problem @@ -166,8 +166,8 @@ Inequality constraint fails = 0 Initial step size = 6.25e-05 Last step size = 7.503473398173804e-10 Current step size = 7.503473398173804e-10 -f1 RHS fn evals = 1600003 -f2 RHS fn evals = 1600003 +f1 RHS fn evals = 1600002 +f2 RHS fn evals = 1600002 Begin Kepler Problem @@ -194,8 +194,8 @@ Inequality constraint fails = 0 Initial step size = 3.125e-05 Last step size = 9.66345226061093e-10 Current step size = 9.66345226061093e-10 -f1 RHS fn evals = 3200003 -f2 RHS fn evals = 3200003 +f1 RHS fn evals = 3200002 +f2 RHS fn evals = 3200002 Begin Kepler Problem @@ -222,8 +222,8 @@ Inequality constraint fails = 0 Initial step size = 1.5625e-05 Last step size = 1.562198162474714e-05 Current step size = 1.562198162474714e-05 -f1 RHS fn evals = 6400001 -f2 RHS fn evals = 6400001 +f1 RHS fn evals = 6400000 +f2 RHS fn evals = 6400000 Begin Kepler Problem @@ -250,8 +250,8 @@ Inequality constraint fails = 0 Initial step size = 7.8125e-06 Last step size = 7.805897645596353e-06 Current step size = 7.805897645596353e-06 -f1 RHS fn evals = 12800001 -f2 RHS fn evals = 12800001 +f1 RHS fn evals = 12800000 +f2 RHS fn evals = 12800000 Order of accuracy wrt solution: expected = 2, max = 2.0097, avg = 1.8616, overall = 1.9108 Order of accuracy wrt Hamiltonian: expected = 2, max = 2.0636, avg = 2.0087, overall = 2.0051 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_2_2_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_2_2_--tf_50_--check-order_--nout_1.out index fdeadbccd4..3ef8daf50a 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_2_2_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_2_2_--tf_50_--check-order_--nout_1.out @@ -54,8 +54,8 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 2.582822844487962e-11 -f1 RHS fn evals = 100003 -f2 RHS fn evals = 100003 +f1 RHS fn evals = 100002 +f2 RHS fn evals = 100002 Begin Kepler Problem @@ -82,8 +82,8 @@ Inequality constraint fails = 0 Initial step size = 0.0005 Last step size = 0.0004999999432868658 Current step size = 0.0004999999432868658 -f1 RHS fn evals = 200001 -f2 RHS fn evals = 200001 +f1 RHS fn evals = 200000 +f2 RHS fn evals = 200000 Begin Kepler Problem @@ -110,8 +110,8 @@ Inequality constraint fails = 0 Initial step size = 0.00025 Last step size = 0.0002499998522722533 Current step size = 0.0002499998522722533 -f1 RHS fn evals = 400001 -f2 RHS fn evals = 400001 +f1 RHS fn evals = 400000 +f2 RHS fn evals = 400000 Begin Kepler Problem @@ -138,8 +138,8 @@ Inequality constraint fails = 0 Initial step size = 0.000125 Last step size = 3.183586727573126e-10 Current step size = 3.183586727573126e-10 -f1 RHS fn evals = 800003 -f2 RHS fn evals = 800003 +f1 RHS fn evals = 800002 +f2 RHS fn evals = 800002 Begin Kepler Problem @@ -166,8 +166,8 @@ Inequality constraint fails = 0 Initial step size = 6.25e-05 Last step size = 7.503473398173804e-10 Current step size = 7.503473398173804e-10 -f1 RHS fn evals = 1600003 -f2 RHS fn evals = 1600003 +f1 RHS fn evals = 1600002 +f2 RHS fn evals = 1600002 Begin Kepler Problem @@ -194,8 +194,8 @@ Inequality constraint fails = 0 Initial step size = 3.125e-05 Last step size = 9.66345226061093e-10 Current step size = 9.66345226061093e-10 -f1 RHS fn evals = 3200003 -f2 RHS fn evals = 3200003 +f1 RHS fn evals = 3200002 +f2 RHS fn evals = 3200002 Begin Kepler Problem @@ -222,8 +222,8 @@ Inequality constraint fails = 0 Initial step size = 1.5625e-05 Last step size = 1.562198162474714e-05 Current step size = 1.562198162474714e-05 -f1 RHS fn evals = 6400001 -f2 RHS fn evals = 6400001 +f1 RHS fn evals = 6400000 +f2 RHS fn evals = 6400000 Begin Kepler Problem @@ -250,8 +250,8 @@ Inequality constraint fails = 0 Initial step size = 7.8125e-06 Last step size = 7.805897645596353e-06 Current step size = 7.805897645596353e-06 -f1 RHS fn evals = 12800001 -f2 RHS fn evals = 12800001 +f1 RHS fn evals = 12800000 +f2 RHS fn evals = 12800000 Order of accuracy wrt solution: expected = 2, max = 2.0069, avg = 1.8941, overall = 1.9322 Order of accuracy wrt Hamiltonian: expected = 2, max = 2.0006, avg = 1.9998, overall = 1.9999 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_3_3_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_3_3_--tf_50_--check-order_--nout_1.out index ef38bc2855..e919b68f31 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_3_3_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_3_3_--tf_50_--check-order_--nout_1.out @@ -54,8 +54,8 @@ Inequality constraint fails = 0 Initial step size = 0.1 Last step size = 0.0999999999995608 Current step size = 0.0999999999995608 -f1 RHS fn evals = 1501 -f2 RHS fn evals = 1501 +f1 RHS fn evals = 1500 +f2 RHS fn evals = 1500 Begin Kepler Problem @@ -82,8 +82,8 @@ Inequality constraint fails = 0 Initial step size = 0.05 Last step size = 0.05 Current step size = 0.05 -f1 RHS fn evals = 3001 -f2 RHS fn evals = 3001 +f1 RHS fn evals = 3000 +f2 RHS fn evals = 3000 Begin Kepler Problem @@ -110,8 +110,8 @@ Inequality constraint fails = 0 Initial step size = 0.025 Last step size = 1.769251412042648e-12 Current step size = 1.769251412042648e-12 -f1 RHS fn evals = 6004 -f2 RHS fn evals = 6004 +f1 RHS fn evals = 6003 +f2 RHS fn evals = 6003 Begin Kepler Problem @@ -138,8 +138,8 @@ Inequality constraint fails = 0 Initial step size = 0.0125 Last step size = 0.01249999999719619 Current step size = 0.01249999999719619 -f1 RHS fn evals = 12001 -f2 RHS fn evals = 12001 +f1 RHS fn evals = 12000 +f2 RHS fn evals = 12000 Begin Kepler Problem @@ -166,8 +166,8 @@ Inequality constraint fails = 0 Initial step size = 0.00625 Last step size = 0.006249999992917305 Current step size = 0.006249999992917305 -f1 RHS fn evals = 24001 -f2 RHS fn evals = 24001 +f1 RHS fn evals = 24000 +f2 RHS fn evals = 24000 Begin Kepler Problem @@ -194,8 +194,8 @@ Inequality constraint fails = 0 Initial step size = 0.003125 Last step size = 1.124078607972478e-11 Current step size = 1.124078607972478e-11 -f1 RHS fn evals = 48004 -f2 RHS fn evals = 48004 +f1 RHS fn evals = 48003 +f2 RHS fn evals = 48003 Begin Kepler Problem @@ -222,8 +222,8 @@ Inequality constraint fails = 0 Initial step size = 0.0015625 Last step size = 2.835776058418557e-11 Current step size = 2.835776058418557e-11 -f1 RHS fn evals = 96004 -f2 RHS fn evals = 96004 +f1 RHS fn evals = 96003 +f2 RHS fn evals = 96003 Begin Kepler Problem @@ -250,8 +250,8 @@ Inequality constraint fails = 0 Initial step size = 0.00078125 Last step size = 0.0007812499550681189 Current step size = 0.0007812499550681189 -f1 RHS fn evals = 192001 -f2 RHS fn evals = 192001 +f1 RHS fn evals = 192000 +f2 RHS fn evals = 192000 Order of accuracy wrt solution: expected = 3, max = 3.9687, avg = 3.7860, overall = 3.8206 Order of accuracy wrt Hamiltonian: expected = 3, max = 3.1635, avg = 3.0431, overall = 3.0566 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_4_4_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_4_4_--tf_50_--check-order_--nout_1.out index cc70a39b92..79a01d1063 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_4_4_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_4_4_--tf_50_--check-order_--nout_1.out @@ -54,8 +54,8 @@ Inequality constraint fails = 0 Initial step size = 0.1 Last step size = 0.0999999999995608 Current step size = 0.0999999999995608 -f1 RHS fn evals = 2001 -f2 RHS fn evals = 2001 +f1 RHS fn evals = 2000 +f2 RHS fn evals = 2000 Begin Kepler Problem @@ -82,8 +82,8 @@ Inequality constraint fails = 0 Initial step size = 0.05 Last step size = 0.05 Current step size = 0.05 -f1 RHS fn evals = 4001 -f2 RHS fn evals = 4001 +f1 RHS fn evals = 4000 +f2 RHS fn evals = 4000 Begin Kepler Problem @@ -110,8 +110,8 @@ Inequality constraint fails = 0 Initial step size = 0.025 Last step size = 1.769251412042648e-12 Current step size = 1.769251412042648e-12 -f1 RHS fn evals = 8005 -f2 RHS fn evals = 8005 +f1 RHS fn evals = 8004 +f2 RHS fn evals = 8004 Begin Kepler Problem @@ -138,8 +138,8 @@ Inequality constraint fails = 0 Initial step size = 0.0125 Last step size = 0.01249999999719619 Current step size = 0.01249999999719619 -f1 RHS fn evals = 16001 -f2 RHS fn evals = 16001 +f1 RHS fn evals = 16000 +f2 RHS fn evals = 16000 Begin Kepler Problem @@ -166,8 +166,8 @@ Inequality constraint fails = 0 Initial step size = 0.00625 Last step size = 0.006249999992917305 Current step size = 0.006249999992917305 -f1 RHS fn evals = 32001 -f2 RHS fn evals = 32001 +f1 RHS fn evals = 32000 +f2 RHS fn evals = 32000 Begin Kepler Problem @@ -194,8 +194,8 @@ Inequality constraint fails = 0 Initial step size = 0.003125 Last step size = 1.124078607972478e-11 Current step size = 1.124078607972478e-11 -f1 RHS fn evals = 64005 -f2 RHS fn evals = 64005 +f1 RHS fn evals = 64004 +f2 RHS fn evals = 64004 Begin Kepler Problem @@ -222,8 +222,8 @@ Inequality constraint fails = 0 Initial step size = 0.0015625 Last step size = 2.835776058418557e-11 Current step size = 2.835776058418557e-11 -f1 RHS fn evals = 128005 -f2 RHS fn evals = 128005 +f1 RHS fn evals = 128004 +f2 RHS fn evals = 128004 Begin Kepler Problem @@ -250,8 +250,8 @@ Inequality constraint fails = 0 Initial step size = 0.00078125 Last step size = 0.0007812499550681189 Current step size = 0.0007812499550681189 -f1 RHS fn evals = 256001 -f2 RHS fn evals = 256001 +f1 RHS fn evals = 256000 +f2 RHS fn evals = 256000 Order of accuracy wrt solution: expected = 4, max = 3.9974, avg = 3.5943, overall = 3.7564 Order of accuracy wrt Hamiltonian: expected = 4, max = 4.2742, avg = 3.8327, overall = 3.8935 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_5_6_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_5_6_--tf_50_--check-order_--nout_1.out index 0a49a39dcc..091bb51907 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_5_6_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_5_6_--tf_50_--check-order_--nout_1.out @@ -54,8 +54,8 @@ Inequality constraint fails = 0 Initial step size = 0.1 Last step size = 0.0999999999995608 Current step size = 0.0999999999995608 -f1 RHS fn evals = 3001 -f2 RHS fn evals = 3001 +f1 RHS fn evals = 3000 +f2 RHS fn evals = 3000 Begin Kepler Problem @@ -82,8 +82,8 @@ Inequality constraint fails = 0 Initial step size = 0.05 Last step size = 0.05 Current step size = 0.05 -f1 RHS fn evals = 6001 -f2 RHS fn evals = 6001 +f1 RHS fn evals = 6000 +f2 RHS fn evals = 6000 Begin Kepler Problem @@ -110,8 +110,8 @@ Inequality constraint fails = 0 Initial step size = 0.025 Last step size = 1.769251412042648e-12 Current step size = 1.769251412042648e-12 -f1 RHS fn evals = 12007 -f2 RHS fn evals = 12007 +f1 RHS fn evals = 12006 +f2 RHS fn evals = 12006 Begin Kepler Problem @@ -138,8 +138,8 @@ Inequality constraint fails = 0 Initial step size = 0.0125 Last step size = 0.01249999999719619 Current step size = 0.01249999999719619 -f1 RHS fn evals = 24001 -f2 RHS fn evals = 24001 +f1 RHS fn evals = 24000 +f2 RHS fn evals = 24000 Begin Kepler Problem @@ -166,8 +166,8 @@ Inequality constraint fails = 0 Initial step size = 0.00625 Last step size = 0.006249999992917305 Current step size = 0.006249999992917305 -f1 RHS fn evals = 48001 -f2 RHS fn evals = 48001 +f1 RHS fn evals = 48000 +f2 RHS fn evals = 48000 Begin Kepler Problem @@ -194,8 +194,8 @@ Inequality constraint fails = 0 Initial step size = 0.003125 Last step size = 1.124078607972478e-11 Current step size = 1.124078607972478e-11 -f1 RHS fn evals = 96007 -f2 RHS fn evals = 96007 +f1 RHS fn evals = 96006 +f2 RHS fn evals = 96006 Begin Kepler Problem @@ -222,8 +222,8 @@ Inequality constraint fails = 0 Initial step size = 0.0015625 Last step size = 2.835776058418557e-11 Current step size = 2.835776058418557e-11 -f1 RHS fn evals = 192007 -f2 RHS fn evals = 192007 +f1 RHS fn evals = 192006 +f2 RHS fn evals = 192006 Begin Kepler Problem @@ -250,8 +250,8 @@ Inequality constraint fails = 0 Initial step size = 0.00078125 Last step size = 0.0007812499550681189 Current step size = 0.0007812499550681189 -f1 RHS fn evals = 384001 -f2 RHS fn evals = 384001 +f1 RHS fn evals = 384000 +f2 RHS fn evals = 384000 Order of accuracy wrt solution: expected = 5, max = 5.9898, avg = 3.4143, overall = 3.7927 Order of accuracy wrt Hamiltonian: expected = 5, max = 5.8607, avg = 3.9728, overall = 4.4560 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_PSEUDO_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_PSEUDO_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out index 7c87a4670d..dcf75b3ac0 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_PSEUDO_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_PSEUDO_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out @@ -54,8 +54,8 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 2.582822844487962e-11 -f1 RHS fn evals = 100003 -f2 RHS fn evals = 100003 +f1 RHS fn evals = 100002 +f2 RHS fn evals = 100002 Begin Kepler Problem @@ -82,8 +82,8 @@ Inequality constraint fails = 0 Initial step size = 0.0005 Last step size = 0.0004999999432868658 Current step size = 0.0004999999432868658 -f1 RHS fn evals = 200001 -f2 RHS fn evals = 200001 +f1 RHS fn evals = 200000 +f2 RHS fn evals = 200000 Begin Kepler Problem @@ -110,8 +110,8 @@ Inequality constraint fails = 0 Initial step size = 0.00025 Last step size = 0.0002499998522722533 Current step size = 0.0002499998522722533 -f1 RHS fn evals = 400001 -f2 RHS fn evals = 400001 +f1 RHS fn evals = 400000 +f2 RHS fn evals = 400000 Begin Kepler Problem @@ -138,8 +138,8 @@ Inequality constraint fails = 0 Initial step size = 0.000125 Last step size = 3.183586727573126e-10 Current step size = 3.183586727573126e-10 -f1 RHS fn evals = 800003 -f2 RHS fn evals = 800003 +f1 RHS fn evals = 800002 +f2 RHS fn evals = 800002 Begin Kepler Problem @@ -166,8 +166,8 @@ Inequality constraint fails = 0 Initial step size = 6.25e-05 Last step size = 7.503473398173804e-10 Current step size = 7.503473398173804e-10 -f1 RHS fn evals = 1600003 -f2 RHS fn evals = 1600003 +f1 RHS fn evals = 1600002 +f2 RHS fn evals = 1600002 Begin Kepler Problem @@ -194,8 +194,8 @@ Inequality constraint fails = 0 Initial step size = 3.125e-05 Last step size = 9.66345226061093e-10 Current step size = 9.66345226061093e-10 -f1 RHS fn evals = 3200003 -f2 RHS fn evals = 3200003 +f1 RHS fn evals = 3200002 +f2 RHS fn evals = 3200002 Begin Kepler Problem @@ -222,8 +222,8 @@ Inequality constraint fails = 0 Initial step size = 1.5625e-05 Last step size = 1.562198162474714e-05 Current step size = 1.562198162474714e-05 -f1 RHS fn evals = 6400001 -f2 RHS fn evals = 6400001 +f1 RHS fn evals = 6400000 +f2 RHS fn evals = 6400000 Begin Kepler Problem @@ -250,8 +250,8 @@ Inequality constraint fails = 0 Initial step size = 7.8125e-06 Last step size = 7.805897645596353e-06 Current step size = 7.805897645596353e-06 -f1 RHS fn evals = 12800001 -f2 RHS fn evals = 12800001 +f1 RHS fn evals = 12800000 +f2 RHS fn evals = 12800000 Order of accuracy wrt solution: expected = 2, max = 2.0019, avg = 1.9630, overall = 1.9766 Order of accuracy wrt Hamiltonian: expected = 2, max = 2.0012, avg = 2.0000, overall = 2.0001 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_RUTH_3_3_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_RUTH_3_3_--tf_50_--check-order_--nout_1.out index f666db3112..08474bd5aa 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_RUTH_3_3_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_RUTH_3_3_--tf_50_--check-order_--nout_1.out @@ -54,8 +54,8 @@ Inequality constraint fails = 0 Initial step size = 0.1 Last step size = 0.0999999999995608 Current step size = 0.0999999999995608 -f1 RHS fn evals = 1501 -f2 RHS fn evals = 1501 +f1 RHS fn evals = 1500 +f2 RHS fn evals = 1500 Begin Kepler Problem @@ -82,8 +82,8 @@ Inequality constraint fails = 0 Initial step size = 0.05 Last step size = 0.05 Current step size = 0.05 -f1 RHS fn evals = 3001 -f2 RHS fn evals = 3001 +f1 RHS fn evals = 3000 +f2 RHS fn evals = 3000 Begin Kepler Problem @@ -110,8 +110,8 @@ Inequality constraint fails = 0 Initial step size = 0.025 Last step size = 1.769251412042648e-12 Current step size = 1.769251412042648e-12 -f1 RHS fn evals = 6004 -f2 RHS fn evals = 6004 +f1 RHS fn evals = 6003 +f2 RHS fn evals = 6003 Begin Kepler Problem @@ -138,8 +138,8 @@ Inequality constraint fails = 0 Initial step size = 0.0125 Last step size = 0.01249999999719619 Current step size = 0.01249999999719619 -f1 RHS fn evals = 12001 -f2 RHS fn evals = 12001 +f1 RHS fn evals = 12000 +f2 RHS fn evals = 12000 Begin Kepler Problem @@ -166,8 +166,8 @@ Inequality constraint fails = 0 Initial step size = 0.00625 Last step size = 0.006249999992917305 Current step size = 0.006249999992917305 -f1 RHS fn evals = 24001 -f2 RHS fn evals = 24001 +f1 RHS fn evals = 24000 +f2 RHS fn evals = 24000 Begin Kepler Problem @@ -194,8 +194,8 @@ Inequality constraint fails = 0 Initial step size = 0.003125 Last step size = 1.124078607972478e-11 Current step size = 1.124078607972478e-11 -f1 RHS fn evals = 48004 -f2 RHS fn evals = 48004 +f1 RHS fn evals = 48003 +f2 RHS fn evals = 48003 Begin Kepler Problem @@ -222,8 +222,8 @@ Inequality constraint fails = 0 Initial step size = 0.0015625 Last step size = 2.835776058418557e-11 Current step size = 2.835776058418557e-11 -f1 RHS fn evals = 96004 -f2 RHS fn evals = 96004 +f1 RHS fn evals = 96003 +f2 RHS fn evals = 96003 Begin Kepler Problem @@ -250,8 +250,8 @@ Inequality constraint fails = 0 Initial step size = 0.00078125 Last step size = 0.0007812499550681189 Current step size = 0.0007812499550681189 -f1 RHS fn evals = 192001 -f2 RHS fn evals = 192001 +f1 RHS fn evals = 192000 +f2 RHS fn evals = 192000 Order of accuracy wrt solution: expected = 3, max = 4.0232, avg = 3.9269, overall = 3.9563 Order of accuracy wrt Hamiltonian: expected = 3, max = 5.1799, avg = 3.3283, overall = 3.1911 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_YOSHIDA_6_8_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_YOSHIDA_6_8_--tf_50_--check-order_--nout_1.out index 4ba8e975f8..2837b84b63 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_YOSHIDA_6_8_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_YOSHIDA_6_8_--tf_50_--check-order_--nout_1.out @@ -54,8 +54,8 @@ Inequality constraint fails = 0 Initial step size = 0.1 Last step size = 0.0999999999995608 Current step size = 0.0999999999995608 -f1 RHS fn evals = 4001 -f2 RHS fn evals = 4001 +f1 RHS fn evals = 4000 +f2 RHS fn evals = 4000 Begin Kepler Problem @@ -82,8 +82,8 @@ Inequality constraint fails = 0 Initial step size = 0.05 Last step size = 0.05 Current step size = 0.05 -f1 RHS fn evals = 8001 -f2 RHS fn evals = 8001 +f1 RHS fn evals = 8000 +f2 RHS fn evals = 8000 Begin Kepler Problem @@ -110,8 +110,8 @@ Inequality constraint fails = 0 Initial step size = 0.025 Last step size = 1.769251412042648e-12 Current step size = 1.769251412042648e-12 -f1 RHS fn evals = 16009 -f2 RHS fn evals = 16009 +f1 RHS fn evals = 16008 +f2 RHS fn evals = 16008 Begin Kepler Problem @@ -138,8 +138,8 @@ Inequality constraint fails = 0 Initial step size = 0.0125 Last step size = 0.01249999999719619 Current step size = 0.01249999999719619 -f1 RHS fn evals = 32001 -f2 RHS fn evals = 32001 +f1 RHS fn evals = 32000 +f2 RHS fn evals = 32000 Begin Kepler Problem @@ -166,8 +166,8 @@ Inequality constraint fails = 0 Initial step size = 0.00625 Last step size = 0.006249999992917305 Current step size = 0.006249999992917305 -f1 RHS fn evals = 64001 -f2 RHS fn evals = 64001 +f1 RHS fn evals = 64000 +f2 RHS fn evals = 64000 Begin Kepler Problem @@ -194,8 +194,8 @@ Inequality constraint fails = 0 Initial step size = 0.003125 Last step size = 1.124078607972478e-11 Current step size = 1.124078607972478e-11 -f1 RHS fn evals = 128009 -f2 RHS fn evals = 128009 +f1 RHS fn evals = 128008 +f2 RHS fn evals = 128008 Begin Kepler Problem @@ -222,8 +222,8 @@ Inequality constraint fails = 0 Initial step size = 0.0015625 Last step size = 2.835776058418557e-11 Current step size = 2.835776058418557e-11 -f1 RHS fn evals = 256009 -f2 RHS fn evals = 256009 +f1 RHS fn evals = 256008 +f2 RHS fn evals = 256008 Begin Kepler Problem @@ -250,8 +250,8 @@ Inequality constraint fails = 0 Initial step size = 0.00078125 Last step size = 0.0007812499550681189 Current step size = 0.0007812499550681189 -f1 RHS fn evals = 512001 -f2 RHS fn evals = 512001 +f1 RHS fn evals = 512000 +f2 RHS fn evals = 512000 Order of accuracy wrt solution: expected = 6, max = 5.9959, avg = 3.9792, overall = 4.5039 Order of accuracy wrt Hamiltonian: expected = 6, max = 6.2667, avg = 4.6429, overall = 4.9135 diff --git a/examples/arkode/C_serial/ark_kpr_mri.out b/examples/arkode/C_serial/ark_kpr_mri.out index 5f8ee0f5d8..30f70cff84 100644 --- a/examples/arkode/C_serial/ark_kpr_mri.out +++ b/examples/arkode/C_serial/ark_kpr_mri.out @@ -66,4 +66,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 + Total RHS evals: Fs = 1504, Ff = 151854 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 e0e157c053..f698501f2f 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 @@ -66,4 +66,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: Final Solver Statistics: Steps: nsts = 2501, nstf = 252601 u error = 4.671e-09, v error = 5.638e-10, total error = 3.327e-09 - Total RHS evals: Fs = 7504, Ff = 760306 + Total RHS evals: Fs = 7504, Ff = 757854 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..5a9ba49b05 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 @@ -66,4 +66,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 5003, Ff = 757854 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..fb1f3ad746 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 @@ -65,4 +65,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 + Total RHS evals: Fs = 1504, Ff = 151854 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..56112143a4 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 + Total RHS evals: Fs = 7143, Ff = 752851 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 d9ce4b4500..63f3fd2e8e 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 @@ -31,39 +31,39 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 1.800000 0.941488 1.183867 1.32e-11 5.89e-11 1.900000 0.915617 1.437465 9.11e-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 + 2.100000 0.864625 1.056467 5.94e-11 3.57e-11 + 2.200000 0.840089 1.730920 8.72e-11 3.22e-11 + 2.300000 0.816616 1.101047 1.16e-10 1.97e-11 + 2.400000 0.794546 1.525051 1.47e-10 7.75e-12 + 2.500000 0.774227 1.496993 1.78e-10 2.45e-12 + 2.600000 0.756013 1.126857 2.08e-10 1.99e-11 + 2.700000 0.740246 1.727536 2.36e-10 2.32e-11 + 2.800000 0.727247 1.038393 2.62e-10 4.19e-11 + 2.900000 0.717301 1.600759 2.83e-10 5.92e-11 + 3.000000 0.710636 1.406380 2.99e-10 6.19e-11 + 3.100000 0.707412 1.214353 3.07e-10 9.20e-11 + 3.200000 0.707709 1.704026 3.08e-10 8.71e-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 + 3.400000 0.718750 1.661225 2.88e-10 1.19e-10 + 3.500000 0.729227 1.310102 2.68e-10 1.13e-10 + 3.600000 0.742712 1.310080 2.43e-10 1.41e-10 + 3.700000 0.758914 1.661237 2.15e-10 1.18e-10 + 3.800000 0.777506 1.004387 1.85e-10 1.38e-10 + 3.900000 0.798144 1.704019 1.54e-10 1.31e-10 + 4.000000 0.820474 1.214374 1.24e-10 1.16e-10 + 4.100000 0.844149 1.406358 9.39e-11 1.38e-10 + 4.200000 0.868832 1.600774 6.55e-11 9.88e-11 + 4.300000 0.894204 1.038382 3.88e-11 1.20e-10 + 4.400000 0.919964 1.727533 1.40e-11 9.58e-11 + 4.500000 0.945834 1.126875 8.93e-12 8.01e-11 + 4.600000 0.971557 1.496974 3.00e-11 9.82e-11 + 4.700000 0.996898 1.525070 4.92e-11 4.94e-11 + 4.800000 1.021641 1.101030 6.67e-11 7.79e-11 + 4.900000 1.045589 1.730922 8.26e-11 3.90e-11 + 5.000000 1.068565 1.056480 9.70e-11 3.19e-11 ------------------------------------------------------ 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 = 1.665e-10, v error = 7.714e-11, total error = 1.297e-10 + Total RHS evals: Fs = 12506, Ff = 1000451 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..3e42c4680b 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 @@ -33,10 +33,10 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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.300000 0.816616 1.101047 5.27e-09 9.00e-10 + 2.400000 0.794546 1.525051 6.65e-09 4.47e-10 + 2.500000 0.774227 1.496993 8.05e-09 3.94e-11 + 2.600000 0.756013 1.126857 9.42e-09 5.73e-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 @@ -44,13 +44,13 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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.400000 0.718750 1.661225 1.31e-08 4.85e-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.600000 0.742712 1.310080 1.11e-08 5.38e-09 + 3.700000 0.758914 1.661237 9.81e-09 5.49e-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.000000 0.820474 1.214374 5.64e-09 5.33e-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 @@ -58,7 +58,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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.800000 1.021641 1.101030 3.02e-09 2.51e-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 ------------------------------------------------------ @@ -66,4 +66,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 + Total RHS evals: Fs = 5006, Ff = 300351 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..e0a184c719 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 + Total RHS evals: Fs = 45313, Ff = 1545050 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 59ce4983a9..d6bfab1485 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 + Total RHS evals: Fs = 35313, Ff = 1545050 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 75eb3ff099..6a7bf70203 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 + Total RHS evals: Fse = 20001, Fsi = 50342, Ff = 1545050 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 a19331250d..50277624d5 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 + Total RHS evals: Fse = 20001, Fsi = 35342, Ff = 1545050 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 7c7e165cf2..08ef222624 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 @@ -21,52 +21,52 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.800000 1.161186 1.374632 1.23e-11 2.77e-12 0.900000 1.144904 1.245763 1.12e-11 3.13e-12 1.000000 1.127010 1.691839 1.31e-11 2.17e-12 - 1.100000 1.107609 1.000489 1.11e-11 1.99e-12 - 1.200000 1.086821 1.677552 9.50e-12 2.46e-12 - 1.300000 1.064777 1.277775 7.58e-12 8.24e-14 - 1.400000 1.041625 1.342455 5.18e-12 6.19e-13 - 1.500000 1.017531 1.642940 6.04e-12 2.62e-12 - 1.600000 0.992673 1.012112 3.77e-12 1.37e-12 - 1.700000 0.967253 1.714058 3.32e-12 3.05e-12 - 1.800000 0.941488 1.183867 2.37e-13 3.63e-13 - 1.900000 0.915617 1.437465 3.30e-12 1.16e-12 - 2.000000 0.889903 1.577082 6.57e-12 1.93e-12 - 2.100000 0.864625 1.056467 7.88e-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.78e-12 - 2.400000 0.794546 1.525051 1.53e-11 5.68e-13 - 2.500000 0.774227 1.496993 1.85e-11 6.84e-14 - 2.600000 0.756013 1.126857 2.19e-11 2.74e-12 - 2.700000 0.740246 1.727536 2.05e-11 7.32e-13 - 2.800000 0.727247 1.038393 2.46e-11 4.04e-12 - 2.900000 0.717301 1.600759 2.68e-11 9.29e-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.65e-12 1.13e-11 - 4.300000 0.894204 1.038382 1.64e-12 2.54e-13 - 4.400000 0.919964 1.727533 2.33e-12 1.24e-11 - 4.500000 0.945834 1.126875 2.28e-12 7.52e-13 - 4.600000 0.971557 1.496974 5.15e-12 6.90e-12 - 4.700000 0.996898 1.525070 8.52e-12 6.90e-12 - 4.800000 1.021641 1.101030 8.55e-12 1.57e-12 - 4.900000 1.045589 1.730922 6.11e-12 9.55e-12 + 1.100000 1.107609 1.000489 1.11e-11 2.12e-12 + 1.200000 1.086821 1.677552 9.50e-12 1.93e-12 + 1.300000 1.064777 1.277775 7.58e-12 1.91e-12 + 1.400000 1.041625 1.342455 5.18e-12 2.57e-12 + 1.500000 1.017531 1.642940 6.04e-12 5.82e-12 + 1.600000 0.992673 1.012112 3.77e-12 3.35e-12 + 1.700000 0.967253 1.714058 3.32e-12 2.74e-12 + 1.800000 0.941488 1.183867 2.38e-13 3.75e-12 + 1.900000 0.915617 1.437465 3.30e-12 5.77e-12 + 2.000000 0.889903 1.577082 6.57e-12 8.88e-12 + 2.100000 0.864625 1.056467 7.88e-12 7.37e-12 + 2.200000 0.840089 1.730920 6.75e-12 4.53e-12 + 2.300000 0.816616 1.101047 1.18e-11 3.00e-12 + 2.400000 0.794546 1.525051 1.53e-11 8.93e-12 + 2.500000 0.774227 1.496993 1.85e-11 1.08e-11 + 2.600000 0.756013 1.126857 2.18e-11 1.35e-11 + 2.700000 0.740246 1.727536 2.05e-11 6.87e-12 + 2.800000 0.727247 1.038393 2.46e-11 7.76e-13 + 2.900000 0.717301 1.600759 2.68e-11 1.11e-11 + 3.000000 0.710636 1.406380 2.78e-11 1.14e-11 + 3.100000 0.707412 1.214353 2.85e-11 2.04e-11 + 3.200000 0.707709 1.704026 2.85e-11 9.74e-12 + 3.300000 0.711520 1.004391 2.77e-11 7.12e-12 + 3.400000 0.718750 1.661225 2.60e-11 1.06e-11 + 3.500000 0.729227 1.310102 2.41e-11 1.14e-11 + 3.600000 0.742712 1.310080 2.08e-11 2.60e-11 + 3.700000 0.758914 1.661237 1.99e-11 1.39e-11 + 3.800000 0.777506 1.004387 1.62e-11 1.43e-11 + 3.900000 0.798144 1.704019 1.39e-11 5.96e-12 + 4.000000 0.820474 1.214374 1.04e-11 1.12e-11 + 4.100000 0.844149 1.406358 6.45e-12 2.95e-11 + 4.200000 0.868832 1.600774 3.65e-12 5.01e-12 + 4.300000 0.894204 1.038382 1.63e-12 9.96e-12 + 4.400000 0.919964 1.727533 2.33e-12 1.06e-11 + 4.500000 0.945834 1.126875 2.28e-12 5.45e-12 + 4.600000 0.971557 1.496974 5.15e-12 1.52e-11 + 4.700000 0.996898 1.525070 8.52e-12 7.66e-13 + 4.800000 1.021641 1.101030 8.55e-12 1.92e-12 + 4.900000 1.045589 1.730922 6.11e-12 8.80e-12 5.000000 1.068565 1.056480 9.97e-12 3.37e-12 ------------------------------------------------------ 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 = 1.532e-11, v error = 9.496e-12, total error = 1.274e-11 + Total RHS evals: Fse = 30001, Fsi = 82555, Ff = 2065050 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 b23cd0c444..6831f819bc 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 @@ -21,52 +21,52 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 0.800000 1.161186 1.374632 1.20e-11 2.83e-12 0.900000 1.144904 1.245763 1.23e-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.92e-12 2.55e-12 - 1.300000 1.064777 1.277775 7.66e-12 1.73e-13 - 1.400000 1.041625 1.342455 6.65e-12 7.06e-13 - 1.500000 1.017531 1.642940 6.42e-12 2.73e-12 - 1.600000 0.992673 1.012112 4.49e-12 1.24e-12 - 1.700000 0.967253 1.714058 3.11e-12 3.19e-12 - 1.800000 0.941488 1.183867 5.87e-14 2.22e-13 - 1.900000 0.915617 1.437465 1.88e-12 1.29e-12 - 2.000000 0.889903 1.577082 4.65e-12 2.09e-12 - 2.100000 0.864625 1.056467 6.53e-12 1.44e-12 - 2.200000 0.840089 1.730920 7.39e-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.30e-13 - 2.500000 0.774227 1.496993 1.92e-11 2.40e-13 - 2.600000 0.756013 1.126857 2.04e-11 2.58e-12 - 2.700000 0.740246 1.727536 2.11e-11 8.84e-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.33e-12 - 3.500000 0.729227 1.310102 2.42e-11 4.77e-12 - 3.600000 0.742712 1.310080 2.16e-11 4.96e-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.04e-12 1.14e-11 - 4.300000 0.894204 1.038382 2.82e-12 3.27e-13 - 4.400000 0.919964 1.727533 1.81e-12 1.24e-11 - 4.500000 0.945834 1.126875 1.89e-12 8.42e-13 - 4.600000 0.971557 1.496974 3.73e-12 6.99e-12 - 4.700000 0.996898 1.525070 5.90e-12 7.04e-12 - 4.800000 1.021641 1.101030 7.16e-12 1.43e-12 - 4.900000 1.045589 1.730922 6.81e-12 9.69e-12 + 1.100000 1.107609 1.000489 1.13e-11 2.05e-12 + 1.200000 1.086821 1.677552 9.92e-12 2.03e-12 + 1.300000 1.064777 1.277775 7.66e-12 2.00e-12 + 1.400000 1.041625 1.342455 6.65e-12 2.48e-12 + 1.500000 1.017531 1.642940 6.42e-12 5.92e-12 + 1.600000 0.992673 1.012112 4.49e-12 3.23e-12 + 1.700000 0.967253 1.714058 3.11e-12 2.87e-12 + 1.800000 0.941488 1.183867 5.85e-14 3.89e-12 + 1.900000 0.915617 1.437465 1.88e-12 5.63e-12 + 2.000000 0.889903 1.577082 4.65e-12 9.04e-12 + 2.100000 0.864625 1.056467 6.53e-12 7.20e-12 + 2.200000 0.840089 1.730920 7.39e-12 4.70e-12 + 2.300000 0.816616 1.101047 1.16e-11 3.16e-12 + 2.400000 0.794546 1.525051 1.48e-11 8.77e-12 + 2.500000 0.774227 1.496993 1.92e-11 1.10e-11 + 2.600000 0.756013 1.126857 2.04e-11 1.34e-11 + 2.700000 0.740246 1.727536 2.11e-11 7.02e-12 + 2.800000 0.727247 1.038393 2.44e-11 6.36e-13 + 2.900000 0.717301 1.600759 2.66e-11 1.09e-11 + 3.000000 0.710636 1.406380 2.78e-11 1.16e-11 + 3.100000 0.707412 1.214353 2.84e-11 2.03e-11 + 3.200000 0.707709 1.704026 2.84e-11 9.85e-12 + 3.300000 0.711520 1.004391 2.77e-11 7.02e-12 + 3.400000 0.718750 1.661225 2.61e-11 1.05e-11 + 3.500000 0.729227 1.310102 2.42e-11 1.14e-11 + 3.600000 0.742712 1.310080 2.16e-11 2.60e-11 + 3.700000 0.758914 1.661237 1.99e-11 1.39e-11 + 3.800000 0.777506 1.004387 1.67e-11 1.43e-11 + 3.900000 0.798144 1.704019 1.39e-11 5.96e-12 + 4.000000 0.820474 1.214374 1.05e-11 1.12e-11 + 4.100000 0.844149 1.406358 7.58e-12 2.96e-11 + 4.200000 0.868832 1.600774 5.04e-12 4.97e-12 + 4.300000 0.894204 1.038382 2.82e-12 1.00e-11 + 4.400000 0.919964 1.727533 1.81e-12 1.06e-11 + 4.500000 0.945834 1.126875 1.89e-12 5.36e-12 + 4.600000 0.971557 1.496974 3.73e-12 1.53e-11 + 4.700000 0.996898 1.525070 5.90e-12 8.98e-13 + 4.800000 1.021641 1.101030 7.16e-12 2.06e-12 + 4.900000 1.045589 1.730922 6.81e-12 8.94e-12 5.000000 1.068565 1.056480 9.34e-12 3.23e-12 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 1.533e-11, v error = 4.204e-12, total error = 1.124e-11 - Total RHS evals: Fse = 30001, Fsi = 57555, Ff = 2070001 + u error = 1.533e-11, v error = 9.500e-12, total error = 1.275e-11 + Total RHS evals: Fse = 30001, Fsi = 57555, Ff = 2065050 Slow Newton iters = 52554 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/C_serial/ark_onewaycouple_mri.out b/examples/arkode/C_serial/ark_onewaycouple_mri.out index 869d4af60c..4989979ad0 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 = 37002 + Total RHS evals: Fs = 3001, Ff = 36011 diff --git a/examples/arkode/C_serial/ark_reaction_diffusion_mri.out b/examples/arkode/C_serial/ark_reaction_diffusion_mri.out index 7397dbe741..6d05534432 100644 --- a/examples/arkode/C_serial/ark_reaction_diffusion_mri.out +++ b/examples/arkode/C_serial/ark_reaction_diffusion_mri.out @@ -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 = 462156 +Explicit RHS fn evals = 459184 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_twowaycouple_mri.out b/examples/arkode/C_serial/ark_twowaycouple_mri.out index 0407620c51..ff0990c0ae 100644 --- a/examples/arkode/C_serial/ark_twowaycouple_mri.out +++ b/examples/arkode/C_serial/ark_twowaycouple_mri.out @@ -30,4 +30,4 @@ Two way coupling ODE test problem: Final Solver Statistics: Steps: nsts = 2001, nstf = 102051 - Total RHS evals: Fs = 6004, Ff = 308156 + Total RHS evals: Fs = 6004, Ff = 306174 diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out new file mode 100644 index 0000000000..04fbbc67ab --- /dev/null +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out @@ -0,0 +1,52 @@ + +2D Heat PDE test problem: + nprocs = 2 + nx = 60 + ny = 120 + kx = 0.5 + ky = 0.75 + rtol = 1e-05 + atol = 1e-10 + nxl (proc 0) = 30 + nyl (proc 0) = 120 + Nonlinear implicit solver + + +ARKStep Solver Statistics: + Internal solver steps = 1000 + Total RHS evals: Fe = 0, Fi = 2769 + Total linear solver setups = 50 + Total linear iterations = 6625 + Total number of Jacobian-vector products = 6625 + Total number of Preconditioner setups = 17 + Total number of Preconditioner solves = 6625 + Total number of linear solver convergence failures = 0 + Total number of Newton iterations = 1768 + Total number of nonlinear solver convergence failures = 0 + +MRIStep Solver Statistics: + Internal solver steps = 1000 + Total RHS evals: Fe = 2769 + Total linear solver setups = 50 + Total linear iterations = 6241 + Total number of Jacobian-vector products = 6241 + Total number of Preconditioner setups = 50 + Total number of Preconditioner solves = 6241 + Total number of linear solver convergence failures = 0 + Total number of Newton iterations = 1768 + Total number of nonlinear solver convergence failures = 0 + +Comparing Solver Statistics: + RHS evals error: 2769 vs 2769 +Failed 1 tests +-------------------------------------------------------------------------- +Primary job terminated normally, but 1 process returned +a non-zero exit code. Per user-direction, the job has been aborted. +-------------------------------------------------------------------------- +-------------------------------------------------------------------------- +mpirun detected that one or more processes exited with non-zero status, thus causing +the job to be terminated. The first process to do so was: + + Process name: [[37302,1],1] + Exit code: 1 +-------------------------------------------------------------------------- diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out new file mode 100644 index 0000000000..84c8f98dce --- /dev/null +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out @@ -0,0 +1,52 @@ + +2D Heat PDE test problem: + nprocs = 4 + nx = 60 + ny = 120 + kx = 0.5 + ky = 0.75 + rtol = 1e-05 + atol = 1e-10 + nxl (proc 0) = 30 + nyl (proc 0) = 60 + Linearly implicit solver + + +ARKStep Solver Statistics: + Internal solver steps = 1000 + Total RHS evals: Fe = 0, Fi = 2001 + Total linear solver setups = 1 + Total linear iterations = 5169 + Total number of Jacobian-vector products = 5169 + Total number of Preconditioner setups = 1 + Total number of Preconditioner solves = 5169 + Total number of linear solver convergence failures = 0 + Total number of Newton iterations = 1000 + Total number of nonlinear solver convergence failures = 0 + +MRIStep Solver Statistics: + Internal solver steps = 1000 + Total RHS evals: Fe = 2001 + Total linear solver setups = 1 + Total linear iterations = 4708 + Total number of Jacobian-vector products = 4708 + Total number of Preconditioner setups = 1 + Total number of Preconditioner solves = 4708 + Total number of linear solver convergence failures = 0 + Total number of Newton iterations = 1000 + Total number of nonlinear solver convergence failures = 0 + +Comparing Solver Statistics: + RHS evals error: 2001 vs 2001 +Failed 1 tests +-------------------------------------------------------------------------- +Primary job terminated normally, but 1 process returned +a non-zero exit code. Per user-direction, the job has been aborted. +-------------------------------------------------------------------------- +-------------------------------------------------------------------------- +mpirun detected that one or more processes exited with non-zero status, thus causing +the job to be terminated. The first process to do so was: + + Process name: [[37327,1],0] + Exit code: 1 +-------------------------------------------------------------------------- diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out new file mode 100644 index 0000000000..92d1e73a20 --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out @@ -0,0 +1,1972 @@ + +Dahlquist ODE test problem: + problem type = Identity + lambda expl = -1 + lambda impl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Hermite + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 36 + expected: 36 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +Test implicit RK methods +======================== + +======================== +Implicit Euler + stages: 1 + order: 1 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +DIRK Table ID 100 + stages: 2 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +DIRK Table ID 101 + stages: 3 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fi RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +DIRK Table ID 102 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +======================== +DIRK Table ID 103 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 104 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 105 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 106 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 107 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 108 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 109 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 110 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 111 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 58 + expected: 58 +-------------------- + +======================== +DIRK Table ID 112 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 113 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 58 + expected: 58 +-------------------- + +======================== +DIRK Table ID 114 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 115 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 116 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 117 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 118 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 119 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 120 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 121 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 122 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 123 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +===================== +Test IMEX ARK methods +===================== + +======================== +IMEX Euler + stages: 2 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fe RHS evals: + actual: 2 + expected: 2 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fe RHS evals: + actual: 5 + expected: 5 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +IMEX Table ID 0 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 1 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 2 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 3 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 4 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 5 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + + +All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out new file mode 100644 index 0000000000..88b11539aa --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out @@ -0,0 +1,1972 @@ + +Dahlquist ODE test problem: + problem type = Identity + lambda expl = -1 + lambda impl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Lagrange + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 52 + expected: 52 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +Test implicit RK methods +======================== + +======================== +Implicit Euler + stages: 1 + order: 1 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fi RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +NLS iters: 2 +Fi RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +NLS iters: 3 +Fi RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fi RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 4 +NLS iters: 4 +Fi RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +DIRK Table ID 100 + stages: 2 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fi RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +DIRK Table ID 101 + stages: 3 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fi RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +DIRK Table ID 102 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +======================== +DIRK Table ID 103 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 104 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 105 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +DIRK Table ID 106 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +DIRK Table ID 107 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +DIRK Table ID 108 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 109 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 110 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 111 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 57 + expected: 57 +-------------------- + +======================== +DIRK Table ID 112 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 113 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 57 + expected: 57 +-------------------- + +======================== +DIRK Table ID 114 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 115 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 116 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 117 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 118 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 119 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 120 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 121 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 122 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 123 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +===================== +Test IMEX ARK methods +===================== + +======================== +IMEX Euler + stages: 2 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fe RHS evals: + actual: 2 + expected: 2 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fe RHS evals: + actual: 5 + expected: 5 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +IMEX Table ID 0 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 1 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 2 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 3 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 4 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 5 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + + +All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out new file mode 100644 index 0000000000..0609b3f32f --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out @@ -0,0 +1,1972 @@ + +Dahlquist ODE test problem: + problem type = Fixed mass matrix + lambda expl = -1 + lambda impl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Hermite + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 36 + expected: 36 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +Test implicit RK methods +======================== + +======================== +Implicit Euler + stages: 1 + order: 1 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +DIRK Table ID 100 + stages: 2 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +DIRK Table ID 101 + stages: 3 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fi RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +DIRK Table ID 102 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +======================== +DIRK Table ID 103 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 104 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 105 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 106 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 107 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 108 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 109 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 110 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 111 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 58 + expected: 58 +-------------------- + +======================== +DIRK Table ID 112 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 113 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 58 + expected: 58 +-------------------- + +======================== +DIRK Table ID 114 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 115 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 116 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 117 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 118 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 119 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 120 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 121 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 122 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 123 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +===================== +Test IMEX ARK methods +===================== + +======================== +IMEX Euler + stages: 2 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fe RHS evals: + actual: 2 + expected: 2 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fe RHS evals: + actual: 5 + expected: 5 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +IMEX Table ID 0 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 1 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 2 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 3 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 4 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 5 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + + +All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out new file mode 100644 index 0000000000..5b259c7b44 --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out @@ -0,0 +1,1972 @@ + +Dahlquist ODE test problem: + problem type = Fixed mass matrix + lambda expl = -1 + lambda impl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Lagrange + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 52 + expected: 52 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +Test implicit RK methods +======================== + +======================== +Implicit Euler + stages: 1 + order: 1 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fi RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +NLS iters: 2 +Fi RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +NLS iters: 3 +Fi RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fi RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 4 +NLS iters: 4 +Fi RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +DIRK Table ID 100 + stages: 2 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fi RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +DIRK Table ID 101 + stages: 3 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fi RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +DIRK Table ID 102 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +======================== +DIRK Table ID 103 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 104 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 105 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +DIRK Table ID 106 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +DIRK Table ID 107 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +DIRK Table ID 108 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 109 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 110 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 111 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 57 + expected: 57 +-------------------- + +======================== +DIRK Table ID 112 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 113 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 57 + expected: 57 +-------------------- + +======================== +DIRK Table ID 114 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 115 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 116 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 117 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 118 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 119 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 120 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 121 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 122 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 123 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +===================== +Test IMEX ARK methods +===================== + +======================== +IMEX Euler + stages: 2 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fe RHS evals: + actual: 2 + expected: 2 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fe RHS evals: + actual: 5 + expected: 5 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +IMEX Table ID 0 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 1 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 2 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 3 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 4 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 5 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + + +All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out new file mode 100644 index 0000000000..ba1984cb43 --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out @@ -0,0 +1,1972 @@ + +Dahlquist ODE test problem: + problem type = Time-dependent mass matrix + lambda expl = -1 + lambda impl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Hermite + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 36 + expected: 36 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +Test implicit RK methods +======================== + +======================== +Implicit Euler + stages: 1 + order: 1 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +DIRK Table ID 100 + stages: 2 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +DIRK Table ID 101 + stages: 3 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fi RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +DIRK Table ID 102 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +======================== +DIRK Table ID 103 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 104 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 105 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 106 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 107 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 108 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 109 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 110 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 111 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 58 + expected: 58 +-------------------- + +======================== +DIRK Table ID 112 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 113 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 58 + expected: 58 +-------------------- + +======================== +DIRK Table ID 114 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 115 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 116 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 117 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 118 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 119 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 120 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 121 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 122 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 38 + expected: 38 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 50 + expected: 50 +-------------------- + +======================== +DIRK Table ID 123 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +===================== +Test IMEX ARK methods +===================== + +======================== +IMEX Euler + stages: 2 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fe RHS evals: + actual: 2 + expected: 2 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fe RHS evals: + actual: 5 + expected: 5 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +IMEX Table ID 0 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 1 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 2 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 3 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 4 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 5 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + + +All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out new file mode 100644 index 0000000000..144a3f818a --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out @@ -0,0 +1,1972 @@ + +Dahlquist ODE test problem: + problem type = Time-dependent mass matrix + lambda expl = -1 + lambda impl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Lagrange + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 52 + expected: 52 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +Test implicit RK methods +======================== + +======================== +Implicit Euler + stages: 1 + order: 1 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fi RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +NLS iters: 2 +Fi RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +NLS iters: 3 +Fi RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fi RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 4 +NLS iters: 4 +Fi RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +DIRK Table ID 100 + stages: 2 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fi RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +DIRK Table ID 101 + stages: 3 + order: 2 + explicit 1st stage: 0 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fi RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +DIRK Table ID 102 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +======================== +DIRK Table ID 103 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 104 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 105 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +DIRK Table ID 106 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +DIRK Table ID 107 + stages: 5 + order: 4 + explicit 1st stage: 0 + stiffly accurate: 1 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fi RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +DIRK Table ID 108 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 109 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 110 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 111 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 57 + expected: 57 +-------------------- + +======================== +DIRK Table ID 112 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 113 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 7 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 2 +NLS iters: 14 +Fi RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 3 +NLS iters: 21 +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Dense Output +Fi RHS evals: + actual: 43 + expected: 43 +-------------------- +Steps: 4 +NLS iters: 28 +Fi RHS evals: + actual: 57 + expected: 57 +-------------------- + +======================== +DIRK Table ID 114 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 3 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +NLS iters: 9 +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fi RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +DIRK Table ID 115 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 116 + stages: 5 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +NLS iters: 16 +Fi RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +DIRK Table ID 117 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 118 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 119 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 5 +Fi RHS evals: + actual: 11 + expected: 11 +-------------------- +Steps: 2 +NLS iters: 10 +Fi RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 3 +NLS iters: 15 +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Dense Output +Fi RHS evals: + actual: 31 + expected: 31 +-------------------- +Steps: 4 +NLS iters: 20 +Fi RHS evals: + actual: 41 + expected: 41 +-------------------- + +======================== +DIRK Table ID 120 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 121 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 122 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +NLS iters: 12 +Fi RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 3 +NLS iters: 18 +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Dense Output +Fi RHS evals: + actual: 37 + expected: 37 +-------------------- +Steps: 4 +NLS iters: 24 +Fi RHS evals: + actual: 49 + expected: 49 +-------------------- + +======================== +DIRK Table ID 123 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +NLS iters: 6 +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fi RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +NLS iters: 8 +Fi RHS evals: + actual: 17 + expected: 17 +-------------------- + +===================== +Test IMEX ARK methods +===================== + +======================== +IMEX Euler + stages: 2 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +NLS iters: 1 +Fe RHS evals: + actual: 2 + expected: 2 +Fi RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 3 +NLS iters: 3 +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +Fi RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +NLS iters: 4 +Fe RHS evals: + actual: 5 + expected: 5 +Fi RHS evals: + actual: 9 + expected: 9 +-------------------- + +======================== +IMEX Table ID 0 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 1 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 2 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 3 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 4 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +IMEX Table ID 5 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +NLS iters: 2 +Fe RHS evals: + actual: 3 + expected: 3 +Fi RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +NLS iters: 4 +Fe RHS evals: + actual: 6 + expected: 6 +Fi RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +NLS iters: 6 +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +Fi RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +NLS iters: 8 +Fe RHS evals: + actual: 12 + expected: 12 +Fi RHS evals: + actual: 20 + expected: 20 +-------------------- + + +All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out new file mode 100644 index 0000000000..d4900dcca0 --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out @@ -0,0 +1,609 @@ + +Dahlquist ODE test problem: + lambda expl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Hermite + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 36 + expected: 36 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 22 + expected: 22 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + + +All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out new file mode 100644 index 0000000000..547abeb1b3 --- /dev/null +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out @@ -0,0 +1,609 @@ + +Dahlquist ODE test problem: + lambda expl = -1 + step size = 0.01 + relative tol = 0.0001 + absolute tol = 1e-06 + interp type = Lagrange + +======================== +Test explicit RK methods +======================== + +======================== +Explicit Euler + stages: 1 + order: 1 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 1 + expected: 1 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Dense Output +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- + +======================== +ERK Table ID 0 + stages: 2 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 2 + expected: 2 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Dense Output +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- + +======================== +ERK Table ID 1 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- + +======================== +ERK Table ID 2 + stages: 4 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 4 + expected: 4 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Dense Output +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- + +======================== +ERK Table ID 3 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Dense Output +Fe RHS evals: + actual: 15 + expected: 15 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- + +======================== +ERK Table ID 4 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 5 + stages: 6 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 6 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 7 + stages: 6 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Dense Output +Fe RHS evals: + actual: 18 + expected: 18 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- + +======================== +ERK Table ID 8 + stages: 7 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Dense Output +Fe RHS evals: + actual: 19 + expected: 19 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- + +======================== +ERK Table ID 9 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 10 + stages: 8 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 11 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 52 + expected: 52 +-------------------- + +======================== +ERK Table ID 12 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 13 + stages: 7 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 7 + expected: 7 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 14 + expected: 14 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Dense Output +Fe RHS evals: + actual: 21 + expected: 21 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 28 + expected: 28 +-------------------- + +======================== +ERK Table ID 14 + stages: 8 + order: 5 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 8 + expected: 8 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Dense Output +Fe RHS evals: + actual: 24 + expected: 24 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- + +======================== +ERK Table ID 15 + stages: 3 + order: 2 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + + +All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.out index ed079b7511..5e7243e3e8 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.out @@ -13,21 +13,49 @@ Test explicit MRI methods ========================= Testing method 0 - Stored stages = 5 + nmat = 1 + stages = 4 + method order (q) = 3 + embedding order (p) = 0 + c = 0 0.3333333333333333 0.75 1 + W[0] = + 0 0 0 0 + 0.3333333333333333 0 0 0 + -0.5208333333333333 0.9375 0 0 + 0.3541666666666666 -0.6375 0.5333333333333333 0 + + Stored stages = 3 MRIStep Statistics: Time = 0.01 y(t) = 0.980199 y_n = 0.980199 - Error = -5.31519e-12 + Error = 1.86014e-09 Steps = 1 - Fe evals = 6 + Fe evals = 3 Fi evals = 0 Comparing Solver Statistics: All checks passed Testing method 1 + nmat = 2 + stages = 4 + method order (q) = 3 + embedding order (p) = 0 + c = 0 0.3333333333333333 0.6666666666666666 1 + W[0] = + 0 0 0 0 + 0.3333333333333333 0 0 0 + -0.3333333333333333 0.6666666666666666 0 0 + 0 -0.6666666666666666 1 0 + + W[1] = + 0 0 0 0 + 0 0 0 0 + 0 0 0 0 + 0.5 0 -0.5 0 + Stored stages = 3 MRIStep Statistics: @@ -36,22 +64,43 @@ MRIStep Statistics: y_n = 0.980199 Error = 1.7757e-09 Steps = 1 - Fe evals = 4 + Fe evals = 3 Fi evals = 0 Comparing Solver Statistics: All checks passed Testing method 2 - Stored stages = 3 + nmat = 2 + stages = 6 + method order (q) = 4 + embedding order (p) = 0 + c = 0 0.2 0.4 0.6 0.8 1 + W[0] = + 0 0 0 0 0 0 + 0.2 0 0 0 0 0 + -3.3125 3.5125 0 0 0 0 + -0.5121234603937985 1.955496920787597 -1.243373460393798 0 0 0 + -0.1068927211587161 -4.656693056981116 3.994968532757531 0.9686172453823019 0 0 + 0.911960843690752 -0.1837327083772207 -1.193926866090864 -2.611983006811319 3.277681737588653 0 + + W[1] = + 0 0 0 0 0 0 + 0 0 0 0 0 0 + 6.2875 -6.2875 0 0 0 0 + -0.0382530792124029 0.6952561584248058 -0.6570030792124029 0 0 0 + 1.87616694642529 3.003768197383342 -3 -1.879935143808632 0 0 + -2.423803191489362 2 1 5 -5.576196808510638 0 + + Stored stages = 5 MRIStep Statistics: Time = 0.01 y(t) = 0.980199 y_n = 0.980199 - Error = 1.86014e-09 + Error = -5.3153e-12 Steps = 1 - Fe evals = 4 + Fe evals = 5 Fi evals = 0 Comparing Solver Statistics: @@ -62,6 +111,70 @@ Test implicit MRI methods ========================= Testing method 0 + nmat = 1 + stages = 3 + method order (q) = 2 + embedding order (p) = 0 + c = 0 1 1 + G[0] = + 0 0 0 + 1 0 0 + -0.5 0 0.5 + + Stored stages = 2 + +MRIStep Statistics: + Time = 0.01 + y(t) = 0.980199 + y_n = 0.980199 + Error = -8.22598e-10 + Steps = 1 + Fe evals = 0 + Fi evals = 2 + NLS iters = 1 + NLS fails = 0 + LS setups = 1 + LS Fi evals = 0 + Ji evals = 1 + +Comparing Solver Statistics: +All checks passed + +Testing method 1 + nmat = 1 + stages = 7 + method order (q) = 3 + embedding order (p) = 0 + c = 0 0.3333333333333333 0.3333333333333333 0.6666666666666666 0.6666666666666666 1 1 + G[0] = + 0 0 0 0 0 0 0 + 0.3333333333333333 0 0 0 0 0 0 + -0.435866521508459 0 0.435866521508459 0 0 0 0 + -0.3045790611944505 0 0.6379123945277838 0 0 0 0 + 0.2116913105640267 0 -0.6475578320724856 0 0.435866521508459 0 0 + 0.4454209388055495 0 0.8813784805616198 0 -0.993466086033836 0 0 + -0.435866521508459 0 0 0 0 0 0.435866521508459 + + Stored stages = 4 + +MRIStep Statistics: + Time = 0.01 + y(t) = 0.980199 + y_n = 0.980199 + Error = 1.40689e-10 + Steps = 1 + Fe evals = 0 + Fi evals = 6 + NLS iters = 3 + NLS fails = 0 + LS setups = 1 + LS Fi evals = 0 + Ji evals = 1 + +Comparing Solver Statistics: +All checks passed + +Testing method 2 nmat = 2 stages = 11 method order (q) = 4 @@ -99,10 +212,10 @@ MRIStep Statistics: Time = 0.01 y(t) = 0.980199 y_n = 0.980199 - Error = 1.36091e-12 + Error = 1.36036e-12 Steps = 1 Fe evals = 0 - Fi evals = 11 + Fi evals = 10 NLS iters = 5 NLS fails = 0 LS setups = 1 @@ -112,30 +225,45 @@ MRIStep Statistics: Comparing Solver Statistics: All checks passed -Testing method 1 +===================== +Test IMEX MRI methods +===================== + +Testing method 0 nmat = 1 - stages = 7 + stages = 8 method order (q) = 3 embedding order (p) = 0 - c = 0 0.3333333333333333 0.3333333333333333 0.6666666666666666 0.6666666666666666 1 1 + c = 0 0.435866521508459 0.435866521508459 0.7179332607542295 0.7179332607542295 1 1 1 + W[0] = + 0 0 0 0 0 0 0 0 + 0.435866521508459 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + -0.5688715801234401 0 0.8509383193692106 0 0 0 0 0 + 0.4542839446436089 0 -0.4542839446436089 0 0 0 0 0 + -0.4271371821005074 0 0.1562747733103381 0 0.5529291480359398 0 0 0 + 0 0 0 0 0 0 0 0 + 0.1058582960718796 0 0.6555675011400702 0 -1.197292318720409 0 0.435866521508459 0 + G[0] = - 0 0 0 0 0 0 0 - 0.3333333333333333 0 0 0 0 0 0 - -0.435866521508459 0 0.435866521508459 0 0 0 0 - -0.3045790611944505 0 0.6379123945277838 0 0 0 0 - 0.2116913105640267 0 -0.6475578320724856 0 0.435866521508459 0 0 - 0.4454209388055495 0 0.8813784805616198 0 -0.993466086033836 0 0 - -0.435866521508459 0 0 0 0 0 0.435866521508459 + 0 0 0 0 0 0 0 0 + 0.435866521508459 0 0 0 0 0 0 0 + -0.435866521508459 0 0.435866521508459 0 0 0 0 0 + -0.4103336962288525 0 0.692400435474623 0 0 0 0 0 + 0.4103336962288525 0 -0.8462002177373115 0 0.435866521508459 0 0 0 + 0.435866521508459 0 0.9264299099302395 0 -1.080229692192928 0 0 0 + -0.435866521508459 0 0 0 0 0 0.435866521508459 0 + 0 0 0 0 0 0 0 0 Stored stages = 4 MRIStep Statistics: Time = 0.01 - y(t) = 0.980199 - y_n = 0.980199 - Error = 1.40689e-10 + y(t) = 0.970446 + y_n = 0.970446 + Error = 2.79396e-10 Steps = 1 - Fe evals = 0 + Fe evals = 4 Fi evals = 7 NLS iters = 3 NLS fails = 0 @@ -146,28 +274,43 @@ MRIStep Statistics: Comparing Solver Statistics: All checks passed -Testing method 2 +Testing method 1 nmat = 1 - stages = 3 - method order (q) = 2 + stages = 8 + method order (q) = 3 embedding order (p) = 0 - c = 0 1 1 + c = 0 0.435866521508459 0.435866521508459 0.7179332607542295 0.7179332607542295 1 1 1 + W[0] = + 0 0 0 0 0 0 0 0 + 0.435866521508459 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + -0.1750145285570468 0 0.4570812678028173 0 0 0 0 0 + 0.06042689307721552 0 -0.06042689307721552 0 0 0 0 0 + 0.1195213959425454 0 -1.843725226689662 0 2.006270569992887 0 0 0 + -0.5466585780430528 0 2 0 -1.453341421956947 0 0 0 + 0.1058582960718796 0 0.6555675011400702 0 -1.197292318720409 0 0.435866521508459 0 + G[0] = - 0 0 0 - 1 0 0 - -0.5 0 0.5 + 0 0 0 0 0 0 0 0 + 0.435866521508459 0 0 0 0 0 0 0 + -0.435866521508459 0 0.435866521508459 0 0 0 0 0 + 0.04142737535644148 0 0.240639363889329 0 0 0 0 0 + -0.04142737535644148 0 -0.3944391461520175 0 0.435866521508459 0 0 0 + 0.1123373143006048 0 1.051807513648115 0 -0.8820780887029493 0 0 0 + -0.1123373143006048 0 -0.1253776037178755 0 -0.1981516034899788 0 0.435866521508459 0 + 0 0 0 0 0 0 0 0 - Stored stages = 2 + Stored stages = 4 MRIStep Statistics: Time = 0.01 - y(t) = 0.980199 - y_n = 0.980199 - Error = -8.22598e-10 + y(t) = 0.970446 + y_n = 0.970446 + Error = -3.9875e-09 Steps = 1 - Fe evals = 0 - Fi evals = 3 - NLS iters = 1 + Fe evals = 4 + Fi evals = 7 + NLS iters = 3 NLS fails = 0 LS setups = 1 LS Fi evals = 0 @@ -176,11 +319,7 @@ MRIStep Statistics: Comparing Solver Statistics: All checks passed -===================== -Test IMEX MRI methods -===================== - -Testing method 0 +Testing method 2 nmat = 2 stages = 12 method order (q) = 4 @@ -248,10 +387,10 @@ MRIStep Statistics: Time = 0.01 y(t) = 0.970446 y_n = 0.970446 - Error = -2.09771e-11 + Error = -2.09769e-11 Steps = 1 - Fe evals = 7 - Fi evals = 12 + Fe evals = 6 + Fi evals = 11 NLS iters = 5 NLS fails = 0 LS setups = 1 @@ -261,95 +400,5 @@ MRIStep Statistics: Comparing Solver Statistics: All checks passed -Testing method 1 - nmat = 1 - stages = 8 - method order (q) = 3 - embedding order (p) = 0 - c = 0 0.435866521508459 0.435866521508459 0.7179332607542295 0.7179332607542295 1 1 1 - W[0] = - 0 0 0 0 0 0 0 0 - 0.435866521508459 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - -0.1750145285570468 0 0.4570812678028173 0 0 0 0 0 - 0.06042689307721552 0 -0.06042689307721552 0 0 0 0 0 - 0.1195213959425454 0 -1.843725226689662 0 2.006270569992887 0 0 0 - -0.5466585780430528 0 2 0 -1.453341421956947 0 0 0 - 0.1058582960718796 0 0.6555675011400702 0 -1.197292318720409 0 0.435866521508459 0 - - G[0] = - 0 0 0 0 0 0 0 0 - 0.435866521508459 0 0 0 0 0 0 0 - -0.435866521508459 0 0.435866521508459 0 0 0 0 0 - 0.04142737535644148 0 0.240639363889329 0 0 0 0 0 - -0.04142737535644148 0 -0.3944391461520175 0 0.435866521508459 0 0 0 - 0.1123373143006048 0 1.051807513648115 0 -0.8820780887029493 0 0 0 - -0.1123373143006048 0 -0.1253776037178755 0 -0.1981516034899788 0 0.435866521508459 0 - 0 0 0 0 0 0 0 0 - - Stored stages = 4 - -MRIStep Statistics: - Time = 0.01 - y(t) = 0.970446 - y_n = 0.970446 - Error = -3.9875e-09 - Steps = 1 - Fe evals = 5 - Fi evals = 8 - NLS iters = 3 - NLS fails = 0 - LS setups = 1 - LS Fi evals = 0 - Ji evals = 1 - -Comparing Solver Statistics: -All checks passed - -Testing method 2 - nmat = 1 - stages = 8 - method order (q) = 3 - embedding order (p) = 0 - c = 0 0.435866521508459 0.435866521508459 0.7179332607542295 0.7179332607542295 1 1 1 - W[0] = - 0 0 0 0 0 0 0 0 - 0.435866521508459 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - -0.5688715801234401 0 0.8509383193692106 0 0 0 0 0 - 0.4542839446436089 0 -0.4542839446436089 0 0 0 0 0 - -0.4271371821005074 0 0.1562747733103381 0 0.5529291480359398 0 0 0 - 0 0 0 0 0 0 0 0 - 0.1058582960718796 0 0.6555675011400702 0 -1.197292318720409 0 0.435866521508459 0 - - G[0] = - 0 0 0 0 0 0 0 0 - 0.435866521508459 0 0 0 0 0 0 0 - -0.435866521508459 0 0.435866521508459 0 0 0 0 0 - -0.4103336962288525 0 0.692400435474623 0 0 0 0 0 - 0.4103336962288525 0 -0.8462002177373115 0 0.435866521508459 0 0 0 - 0.435866521508459 0 0.9264299099302395 0 -1.080229692192928 0 0 0 - -0.435866521508459 0 0 0 0 0 0.435866521508459 0 - 0 0 0 0 0 0 0 0 - - Stored stages = 4 - -MRIStep Statistics: - Time = 0.01 - y(t) = 0.970446 - y_n = 0.970446 - Error = 2.79396e-10 - Steps = 1 - Fe evals = 5 - Fi evals = 8 - NLS iters = 3 - NLS fails = 0 - LS setups = 1 - LS Fi evals = 0 - Ji evals = 1 - -Comparing Solver Statistics: -All checks passed - All tests passed! From fe4acfad6b3a49b3fdb914291a50adba7722866c Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 21 Aug 2023 12:46:17 -0700 Subject: [PATCH 45/92] ensure fn is allocated with rootfinding --- src/arkode/arkode.c | 3 ++- src/arkode/arkode_root.c | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 120ad162b4..b3bb670d85 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -1923,7 +1923,8 @@ int arkInitialSetup(ARKodeMem ark_mem, realtype tout) /* Call fullrhs (used in estimating initial step, explicit steppers, Hermite interpolation module, and possibly (but not always) arkRootCheck1) */ - if (ark_mem->call_fullrhs || (ark_mem->h0u == ZERO && ark_mem->hin == ZERO)) + if (ark_mem->call_fullrhs || (ark_mem->h0u == ZERO && ark_mem->hin == ZERO) + || ark_mem->root_mem) { if (!ark_mem->step_fullrhs) { diff --git a/src/arkode/arkode_root.c b/src/arkode/arkode_root.c index 6e1612c6f0..ff0682ac34 100644 --- a/src/arkode/arkode_root.c +++ b/src/arkode/arkode_root.c @@ -56,6 +56,13 @@ int arkRootInit(ARKodeMem ark_mem, int nrtfn, ARKRootFn g) "arkRootInit", 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); + } } /* If unallocated, allocate rootfinding structure, set defaults, update space */ From c8457dad6cc328b8d8792514acb131bc24b1a221 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 20 Aug 2023 23:43:19 -0700 Subject: [PATCH 46/92] update SPRK docs --- doc/arkode/guide/source/Mathematics.rst | 66 +++++++++++++------------ 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/doc/arkode/guide/source/Mathematics.rst b/doc/arkode/guide/source/Mathematics.rst index 4e146b8375..7b95e526ec 100644 --- a/doc/arkode/guide/source/Mathematics.rst +++ b/doc/arkode/guide/source/Mathematics.rst @@ -465,39 +465,40 @@ than the more general form :eq:`ARKODE_IVP_simple_explicit`. SPRKStep -- Symplectic Partitioned Runge--Kutta methods ======================================================= -The SPRKStep time-stepping module in ARKODE is designed for IVPs of the form +The SPRKStep time-stepping module in ARKODE is designed for problems where the +state vector is partitioned as .. math:: - \dot{p} = f_1(t, q) = \frac{\partial V(t, q)}{\partial q}, \quad - \dot{q} = f_2(t, p) = \frac{\partial T(t, p)}{\partial p}, - \qquad p(t_0) = p_0,\quad q(t_0) = q_0, - :label: ARKODE_IVP_Hamiltonian + y(t) = + \begin{bmatrix} + p(t) \\ + q(t) + \end{bmatrix} -where the system Hamiltonian +and the component partitioned IVP is given by .. math:: - H(t, p, q) = T(t, p) + V(t, q) + \dot{p} &= f_1(t, q), \qquad p(t_0) = p_0 \\ + \dot{q} &= f_2(t, p), \qquad q(t_0) = q_0. -**is separable**. When *H* is autonomous, then *H* is a conserved quantity. -Often this correponds to the conservation of energy (for example, in *n*-body -problems). For non-autonomous *H*, the invariants are no longer directly -obtainable from the Hamiltonian :cite:p:`Struckmeier:02`. +The right-hand side functions :math:`f_1(t,p)` and :math:`f_2(t,q)` typically +arise from the **separable** Hamiltonian system -In solving the IVP :eq:`ARKODE_IVP_Hamiltonian`, we consider the problem in the form +.. math:: + H(t, p, q) = T(t, p) + V(t, q) + +where .. math:: - \dot{y} = - \begin{bmatrix} - f_1(t, q) \\ - f_2(t, p) - \end{bmatrix}, \qquad - y(t_0) = - \begin{bmatrix} - p_0\\ - q_0 - \end{bmatrix}. + f_1(t, q) \equiv \frac{\partial V(t, q)}{\partial q}, \qquad + f_2(t, p) \equiv \frac{\partial T(t, p)}{\partial p}. + +When *H* is autonomous, then *H* is a conserved quantity. Often this corresponds +to the conservation of energy (for example, in *n*-body problems). For +non-autonomous *H*, the invariants are no longer directly obtainable from the +Hamiltonian :cite:p:`Struckmeier:02`. -In practice, the ordering of the variables does not matter and is determined by the user. +In practice, the ordering of the variables does not matter and is determined by the user. SPRKStep utilizes Symplectic Partitioned Runge-Kutta (SPRK) methods represented by the pair of explicit and diagonally implicit Butcher tableaux, @@ -528,17 +529,18 @@ schemes with order of accuracy and conservation equal to the default methods used are given in the section :numref:`Butcher.sprk`. In the default case, the algorithm for a single time-step is as follows -(for autonomous Hamiltonian systems the times provided to :math:`f1` and :math:`f2` +(for autonomous Hamiltonian systems the times provided to :math:`f_1` and +:math:`f_2` can be ignored). -#. Set :math:`P_0 = p_n, Q_1 = q_n` +#. Set :math:`P_0 = p_{n-1}, Q_1 = q_{n-1}` #. For :math:`i = 1,\ldots,s` do: - #. :math:`P_i = P_{i-1} + h_{n+1} \hat{a}_i f_1(t_n + \hat{c}_i h, Q_i)` - #. :math:`Q_{i+1} = Q_i + h_{n+1} a_i f_2(t_n + c_i h, P_i)` + #. :math:`P_i = P_{i-1} + h_n \hat{a}_i f_1(t_{n-1} + \hat{c}_i h_n, Q_i)` + #. :math:`Q_{i+1} = Q_i + h_n a_i f_2(t_{n-1} + c_i h_n, P_i)` -#. Set :math:`p_{n+1} = P_s, q_{n+1} = Q_{s+1}` +#. Set :math:`p_n = P_s, q_n = Q_{s+1}` .. _ARKODE.Mathematics.SPRKStep.Compensated: @@ -553,12 +555,12 @@ form is used to compute a time step: #. For :math:`i = 1,\ldots,s` do: - #. :math:`\Delta P_i = \Delta P_{i-1} + h_{n+1} \hat{a}_i f_1(t_n + \hat{c}_i h, q_n + \Delta Q_i)` - #. :math:`\Delta Q_{i+1} = \Delta Q_i + h_{n+1} a_i f_2(t_n + c_i h, p_n + \Delta P_i)` + #. :math:`\Delta P_i = \Delta P_{i-1} + h_n \hat{a}_i f_1(t_{n-1} + \hat{c}_i h_n, q_{n-1} + \Delta Q_i)` + #. :math:`\Delta Q_{i+1} = \Delta Q_i + h_n a_i f_2(t_{n-1} + c_i h_n, p_{n-1} + \Delta P_i)` -#. Set :math:`\Delta p_{n+1} = \Delta P_s, \Delta q_{n+1} = \Delta Q_{s+1}` +#. Set :math:`\Delta p_n = \Delta P_s, \Delta q_n = \Delta Q_{s+1}` -#. Using compensated summation, set :math:`p_{n+1} = p_n + \Delta p_{n+1}, q_{n+1} = q_n + \Delta Q_{s+1}` +#. Using compensated summation, set :math:`p_n = p_{n-1} + \Delta p_n, q_n = q_{n-1} + \Delta q_n` Since temporal error based adaptive time-stepping is known to ruin the conservation property :cite:p:`HaWa:06`, SPRKStep employs a fixed time-step size. From 8d62a2c86294bde142d7cb4d5739a829f855ec2d Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 21 Aug 2023 16:57:05 -0700 Subject: [PATCH 47/92] update output files, rhs eval checks --- ..._--count-orbits_--use-compensated-sums.out | 4 +- scripts/updateOutFiles.py | 51 ++++++++++++------- .../CXX_parallel/ark_test_heat2D_mri.cpp | 2 +- .../CXX_serial/ark_test_analytic_sys_mri.cpp | 2 +- .../ark_test_analytic_sys_mri_0.out | 2 +- .../ark_test_analytic_sys_mri_1.out | 2 +- 6 files changed, 38 insertions(+), 25 deletions(-) diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--count-orbits_--use-compensated-sums.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--count-orbits_--use-compensated-sums.out index c63591e498..4ac4c1c821 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--count-orbits_--use-compensated-sums.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--count-orbits_--use-compensated-sums.out @@ -135,5 +135,5 @@ Initial step size = 0.01 Last step size = 0.01 Current step size = 0.01 Root fn evals = 10297 -f1 RHS fn evals = 40032 -f2 RHS fn evals = 40032 +f1 RHS fn evals = 40031 +f2 RHS fn evals = 40031 diff --git a/scripts/updateOutFiles.py b/scripts/updateOutFiles.py index dfcca35c3f..93b9d207c6 100755 --- a/scripts/updateOutFiles.py +++ b/scripts/updateOutFiles.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # ----------------------------------------------------------------------------- # Programmer(s): David J. Gardner @ LLNL # ----------------------------------------------------------------------------- @@ -28,13 +28,13 @@ def main(): parser = argparse.ArgumentParser(description='Update output files') - parser.add_argument('build', type=str, - help='Full path to build directory to read from') - parser.add_argument('examples', type=str, - help='Full path to examples directory to write to') + parser.add_argument('source', type=str, + help='Full path of build directory to files read from') + parser.add_argument('destination', type=str, + help='Full path of sundials location to write files to') parser.add_argument('--all','-a', action='store_true', help='Update all output files') - parser.add_argument('--verbose','-v', action='store_true', + parser.add_argument('--verbose','-v', action='count', default=0, help='Enable verbose output') @@ -42,18 +42,18 @@ def main(): args = parser.parse_args() # check inputs - if (not os.path.isdir(args.examples)): - print("Error: could not find {}".format(args.examples)) + if (not os.path.isdir(args.source)): + print(f"Error: could not find {args.source}") return -1 - if (not os.path.isdir(args.build)): - print("Error: could not find {}".format(args.build)) + if (not os.path.isdir(args.destination)): + print(f"Error: could not find {args.destination}") return -1 # check that the output directory exists - output = os.path.join(args.build, "Testing", "output") + output = os.path.join(args.source, "Testing", "output") if (not os.path.isdir(output)): - print("Error: could not find {}".format(output)) + print(f"Error: could not find {output}") return -1 # create a list of all test run or just the failed tests @@ -65,7 +65,7 @@ def main(): if f.endswith(".out"): tests.append(f) else: - failed = os.path.join(args.build, "Testing", "Temporary", "LastTestsFailed.log") + failed = os.path.join(args.source, "Testing", "Temporary", "LastTestsFailed.log") # extract test names from list and append .out with open(failed, 'r') as f: @@ -74,14 +74,27 @@ def main(): # if failed tests were found update the output files if tests: + paths = [os.path.join(args.destination, "examples"), + os.path.join(args.destination, "test", "unit_tests")] for t in tests: + if (args.verbose > 0): + print(f"Searching for {t}") found = False - for root, dirs, files in os.walk(args.examples): - if t in files: - if (args.verbose): - print("Updating: {}".format(t)) - shutil.copy(os.path.join(output, t), os.path.join(root, t)) - found = True + for p in paths: + if (args.verbose == 2): + print(f" Looking in {p}") + for root, dirs, files in os.walk(p): + if (args.verbose == 3): + print(f" Looking in {root}") + if t in files: + if (args.verbose == 1): + print(f" Found file in {root}") + if (args.verbose > 1): + print(" Found file") + shutil.copy(os.path.join(output, t), os.path.join(root, t)) + found = True + break + if found: break if not found: print("Warning: did not find {}".format(t)) diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp index 85ee27e410..b6f6e3c51e 100644 --- a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp @@ -386,7 +386,7 @@ int main(int argc, char* argv[]) { if (outproc) cout << " Internal solver steps error: " << ark_nst << " vs " << mri_nst << "\n"; } - if ((ark_nfi - ark_nst) != mri_nfsi) { + if (ark_nfi != mri_nfsi) { numfails += 1; if (outproc) cout << " RHS evals error: " << ark_nfi << " vs " << mri_nfsi << "\n"; diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp index 4abd91c925..ee828dee4c 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp @@ -311,7 +311,7 @@ int main(int argc, char* argv[]) numfails += 1; cout << " Internal solver steps error: " << ark_nst << " vs " << mri_nst << "\n"; } - if ((ark_nfi - ark_nst) != mri_nfsi) { + if (ark_nfi != mri_nfsi) { numfails += 1; cout << " RHS evals error: " << ark_nfi << " vs " << mri_nfsi << "\n"; } diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_0.out index a5976da941..384859a985 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_0.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_0.out @@ -10,7 +10,7 @@ ARKStep Solver Statistics: Return time = 0.05 Internal final time = 0.05 Internal solver steps = 1000 - Total RHS evals: Fe = 0, Fi = 3001 + Total RHS evals: Fe = 0, Fi = 2001 Total number of nonlinear iterations = 1000 Total number of nonlinear solver convergence failures = 0 Total linear solver setups = 1 diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_1.out index 7ab9908ef6..bd5acb803f 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_1.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_1.out @@ -10,7 +10,7 @@ ARKStep Solver Statistics: Return time = 0.05 Internal final time = 0.05 Internal solver steps = 1000 - Total RHS evals: Fe = 0, Fi = 4946 + Total RHS evals: Fe = 0, Fi = 3946 Total number of nonlinear iterations = 2945 Total number of nonlinear solver convergence failures = 0 From 8c33263ab27f407753daa1f3b72440b48d400a2b Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 22 Aug 2023 08:50:49 -0700 Subject: [PATCH 48/92] update f2003 output files --- .../ark_analytic_complex_f2003.out | 2 +- .../F2003_custom/ark_brusselator1D_f2003.out | 4 +- .../arkode/F2003_serial/ark_kpr_mri_f2003.out | 116 +++++++++--------- .../ark_kpr_mri_f2003_0_0.002.out | 106 ++++++++-------- .../ark_kpr_mri_f2003_1_0.002.out | 106 ++++++++-------- .../F2003_serial/ark_kpr_mri_f2003_3_0.01.out | 106 ++++++++-------- .../ark_kpr_mri_f2003_4_0.002.out | 106 ++++++++-------- .../ark_kpr_mri_f2003_5_0.002.out | 106 ++++++++-------- .../ark_kpr_mri_f2003_6_0.005.out | 106 ++++++++-------- .../ark_kpr_mri_f2003_7_0.001.out | 106 ++++++++-------- .../ark_kpr_mri_f2003_8_0.001.out | 106 ++++++++-------- .../ark_kpr_mri_f2003_9_0.001.out | 106 ++++++++-------- 12 files changed, 538 insertions(+), 538 deletions(-) diff --git a/examples/arkode/F2003_custom/ark_analytic_complex_f2003.out b/examples/arkode/F2003_custom/ark_analytic_complex_f2003.out index 32bd53e57b..a783d31eef 100644 --- a/examples/arkode/F2003_custom/ark_analytic_complex_f2003.out +++ b/examples/arkode/F2003_custom/ark_analytic_complex_f2003.out @@ -20,7 +20,7 @@ Final Solver Statistics: Internal solver steps = 664, (attempted = 664) - Total RHS evals = 3987 + Total RHS evals = 3323 Total number of error test failures = 0 Error: max = 7.87E-04, rms = 4.99E-04 diff --git a/examples/arkode/F2003_custom/ark_brusselator1D_f2003.out b/examples/arkode/F2003_custom/ark_brusselator1D_f2003.out index 11c3e92817..a0a5d2c6e9 100644 --- a/examples/arkode/F2003_custom/ark_brusselator1D_f2003.out +++ b/examples/arkode/F2003_custom/ark_brusselator1D_f2003.out @@ -6,7 +6,7 @@ reltol = 1.0E-06, abstol = 1.0E-10 t ||u||_rms ||v||_rms ||w||_rms ---------------------------------------------- - 0.100000 0.675713 3.378369 1.999987 + 0.100000 0.675713 3.378369 1.999986 0.200000 0.688538 3.357681 1.999986 0.300000 0.702687 3.334519 1.999986 0.400000 0.718330 3.308631 1.999986 @@ -110,7 +110,7 @@ Final Solver Statistics: Internal solver steps = 407, (attempted = 504) - Total RHS evals: Fe = 3027, Fi = 8587 + Total RHS evals: Fe = 2930, Fi = 8490 Total linear solver setups = 269 Total RHS evals for setting up the linear system = 0 Total number of Jacobian evaluations = 30 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003.out index af17291b06..8001a1b701 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003.out @@ -1,66 +1,66 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: time domain: (0.00, 5.00] - hs = 0.0100 - hf = 0.0001 - G = -100.0000 - w = 100.0000 - e = 0.5000 + hs = 0.1000E-01 + hf = 0.1000E-03 + G = -0.1000E+03 + w = 0.1000E+03 + e = 0.5000E+00 solver: exp-3/exp-3 (standard MIS) t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223726 1.077464 0.85E-06 0.88E-08 - 0.200000 1.220670 1.551800 0.84E-06 0.20E-07 - 0.300000 1.215595 1.467737 0.83E-06 0.31E-07 - 0.400000 1.208525 1.154583 0.82E-06 0.40E-07 - 0.500000 1.199497 1.721908 0.80E-06 0.48E-07 - 0.600000 1.188558 1.023517 0.78E-06 0.56E-07 - 0.700000 1.175765 1.622751 0.75E-06 0.62E-07 - 0.800000 1.161187 1.374632 0.72E-06 0.67E-07 - 0.900000 1.144905 1.245763 0.68E-06 0.71E-07 - 1.000000 1.127010 1.691839 0.64E-06 0.74E-07 - 1.100000 1.107610 1.000490 0.59E-06 0.76E-07 - 1.200000 1.086821 1.677552 0.53E-06 0.77E-07 - 1.300000 1.064777 1.277775 0.47E-06 0.78E-07 - 1.400000 1.041626 1.342455 0.41E-06 0.77E-07 - 1.500000 1.017531 1.642940 0.33E-06 0.75E-07 - 1.600000 0.992674 1.012112 0.25E-06 0.73E-07 - 1.700000 0.967253 1.714058 0.16E-06 0.69E-07 - 1.800000 0.941488 1.183867 0.63E-07 0.65E-07 - 1.900000 0.915617 1.437465 0.43E-07 0.59E-07 - 2.000000 0.889902 1.577082 0.16E-06 0.52E-07 - 2.100000 0.864625 1.056467 0.28E-06 0.45E-07 - 2.200000 0.840089 1.730920 0.42E-06 0.36E-07 - 2.300000 0.816616 1.101047 0.56E-06 0.26E-07 - 2.400000 0.794545 1.525051 0.70E-06 0.14E-07 - 2.500000 0.774227 1.496993 0.85E-06 0.21E-08 - 2.600000 0.756012 1.126857 0.99E-06 0.11E-07 - 2.700000 0.740245 1.727536 0.11E-05 0.25E-07 - 2.800000 0.727246 1.038393 0.13E-05 0.40E-07 - 2.900000 0.717300 1.600759 0.14E-05 0.55E-07 - 3.000000 0.710635 1.406379 0.14E-05 0.70E-07 - 3.100000 0.707411 1.214353 0.15E-05 0.85E-07 - 3.200000 0.707708 1.704026 0.15E-05 0.99E-07 - 3.300000 0.711518 1.004391 0.14E-05 0.11E-06 - 3.400000 0.718748 1.661225 0.14E-05 0.12E-06 - 3.500000 0.729225 1.310102 0.13E-05 0.13E-06 - 3.600000 0.742711 1.310080 0.12E-05 0.14E-06 - 3.700000 0.758913 1.661237 0.10E-05 0.14E-06 - 3.800000 0.777505 1.004387 0.88E-06 0.14E-06 - 3.900000 0.798143 1.704018 0.73E-06 0.14E-06 - 4.000000 0.820474 1.214374 0.59E-06 0.14E-06 - 4.100000 0.844149 1.406358 0.45E-06 0.13E-06 - 4.200000 0.868832 1.600774 0.31E-06 0.13E-06 - 4.300000 0.894204 1.038382 0.18E-06 0.12E-06 - 4.400000 0.919964 1.727533 0.66E-07 0.11E-06 - 4.500000 0.945834 1.126875 0.43E-07 0.99E-07 - 4.600000 0.971558 1.496973 0.14E-06 0.89E-07 - 4.700000 0.996898 1.525070 0.23E-06 0.78E-07 - 4.800000 1.021641 1.101030 0.32E-06 0.66E-07 - 4.900000 1.045589 1.730922 0.39E-06 0.55E-07 - 5.000000 1.068565 1.056480 0.46E-06 0.44E-07 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223726 1.077464 0.85E-06 0.88E-08 + 0.200000 1.220670 1.551800 0.84E-06 0.20E-07 + 0.300000 1.215595 1.467737 0.83E-06 0.31E-07 + 0.400000 1.208525 1.154583 0.82E-06 0.40E-07 + 0.500000 1.199497 1.721908 0.80E-06 0.48E-07 + 0.600000 1.188558 1.023517 0.78E-06 0.56E-07 + 0.700000 1.175765 1.622751 0.75E-06 0.62E-07 + 0.800000 1.161187 1.374632 0.72E-06 0.67E-07 + 0.900000 1.144905 1.245763 0.68E-06 0.71E-07 + 1.000000 1.127010 1.691839 0.64E-06 0.74E-07 + 1.100000 1.107610 1.000490 0.59E-06 0.76E-07 + 1.200000 1.086821 1.677552 0.53E-06 0.77E-07 + 1.300000 1.064777 1.277775 0.47E-06 0.78E-07 + 1.400000 1.041626 1.342455 0.41E-06 0.77E-07 + 1.500000 1.017531 1.642940 0.33E-06 0.75E-07 + 1.600000 0.992674 1.012112 0.25E-06 0.73E-07 + 1.700000 0.967253 1.714058 0.16E-06 0.69E-07 + 1.800000 0.941488 1.183867 0.63E-07 0.65E-07 + 1.900000 0.915617 1.437465 0.43E-07 0.59E-07 + 2.000000 0.889902 1.577082 0.16E-06 0.52E-07 + 2.100000 0.864625 1.056467 0.28E-06 0.45E-07 + 2.200000 0.840089 1.730920 0.42E-06 0.36E-07 + 2.300000 0.816616 1.101047 0.56E-06 0.26E-07 + 2.400000 0.794545 1.525051 0.70E-06 0.14E-07 + 2.500000 0.774227 1.496993 0.85E-06 0.21E-08 + 2.600000 0.756012 1.126857 0.99E-06 0.11E-07 + 2.700000 0.740245 1.727536 0.11E-05 0.25E-07 + 2.800000 0.727246 1.038393 0.13E-05 0.40E-07 + 2.900000 0.717300 1.600759 0.14E-05 0.55E-07 + 3.000000 0.710635 1.406379 0.14E-05 0.70E-07 + 3.100000 0.707411 1.214353 0.15E-05 0.85E-07 + 3.200000 0.707708 1.704026 0.15E-05 0.99E-07 + 3.300000 0.711518 1.004391 0.14E-05 0.11E-06 + 3.400000 0.718748 1.661225 0.14E-05 0.12E-06 + 3.500000 0.729225 1.310102 0.13E-05 0.13E-06 + 3.600000 0.742711 1.310080 0.12E-05 0.14E-06 + 3.700000 0.758913 1.661237 0.10E-05 0.14E-06 + 3.800000 0.777505 1.004387 0.88E-06 0.14E-06 + 3.900000 0.798143 1.704018 0.73E-06 0.14E-06 + 4.000000 0.820474 1.214374 0.59E-06 0.14E-06 + 4.100000 0.844149 1.406358 0.45E-06 0.13E-06 + 4.200000 0.868832 1.600774 0.31E-06 0.13E-06 + 4.300000 0.894204 1.038382 0.18E-06 0.12E-06 + 4.400000 0.919964 1.727533 0.66E-07 0.11E-06 + 4.500000 0.945834 1.126875 0.43E-07 0.99E-07 + 4.600000 0.971558 1.496973 0.14E-06 0.89E-07 + 4.700000 0.996898 1.525070 0.23E-06 0.78E-07 + 4.800000 1.021641 1.101030 0.32E-06 0.66E-07 + 4.900000 1.045589 1.730922 0.39E-06 0.55E-07 + 5.000000 1.068565 1.056480 0.46E-06 0.44E-07 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 501, nstf = 50601 - u error = 0.794E-06, v error = 0.825E-07, total error = 0.565E-06 - Total RHS evals: Fs = 1504, Ff = 152306 + u error = 0.794E-06, v error = 0.825E-07, total error = 0.565E-06 + Total RHS evals: Fs = 1504, Ff = 151854 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_0_0.002.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_0_0.002.out index 5f383b5beb..6ffca6b871 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_0_0.002.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_0_0.002.out @@ -8,59 +8,59 @@ solver: exp-3/exp-3 (standard MIS) t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223725 1.077464 0.50E-08 0.63E-10 - 0.200000 1.220669 1.551800 0.50E-08 0.14E-09 - 0.300000 1.215594 1.467737 0.49E-08 0.21E-09 - 0.400000 1.208524 1.154583 0.48E-08 0.28E-09 - 0.500000 1.199496 1.721908 0.47E-08 0.33E-09 - 0.600000 1.188557 1.023517 0.46E-08 0.38E-09 - 0.700000 1.175764 1.622751 0.44E-08 0.42E-09 - 0.800000 1.161186 1.374632 0.42E-08 0.46E-09 - 0.900000 1.144904 1.245763 0.40E-08 0.49E-09 - 1.000000 1.127010 1.691839 0.37E-08 0.51E-09 - 1.100000 1.107609 1.000489 0.34E-08 0.52E-09 - 1.200000 1.086821 1.677552 0.31E-08 0.53E-09 - 1.300000 1.064777 1.277775 0.28E-08 0.53E-09 - 1.400000 1.041625 1.342455 0.24E-08 0.52E-09 - 1.500000 1.017531 1.642940 0.19E-08 0.51E-09 - 1.600000 0.992673 1.012112 0.15E-08 0.49E-09 - 1.700000 0.967253 1.714058 0.93E-09 0.47E-09 - 1.800000 0.941488 1.183867 0.35E-09 0.44E-09 - 1.900000 0.915617 1.437465 0.27E-09 0.40E-09 - 2.000000 0.889903 1.577082 0.96E-09 0.36E-09 - 2.100000 0.864625 1.056467 0.17E-08 0.30E-09 - 2.200000 0.840089 1.730920 0.25E-08 0.24E-09 - 2.300000 0.816616 1.101047 0.33E-08 0.17E-09 - 2.400000 0.794546 1.525051 0.42E-08 0.93E-10 - 2.500000 0.774227 1.496993 0.50E-08 0.88E-11 - 2.600000 0.756013 1.126857 0.59E-08 0.80E-10 - 2.700000 0.740246 1.727536 0.67E-08 0.18E-09 - 2.800000 0.727247 1.038393 0.74E-08 0.28E-09 - 2.900000 0.717301 1.600759 0.80E-08 0.38E-09 - 3.000000 0.710636 1.406380 0.84E-08 0.49E-09 - 3.100000 0.707412 1.214353 0.86E-08 0.58E-09 - 3.200000 0.707709 1.704026 0.86E-08 0.68E-09 - 3.300000 0.711520 1.004391 0.85E-08 0.76E-09 - 3.400000 0.718750 1.661225 0.81E-08 0.83E-09 - 3.500000 0.729227 1.310102 0.75E-08 0.89E-09 - 3.600000 0.742712 1.310080 0.68E-08 0.93E-09 - 3.700000 0.758914 1.661237 0.60E-08 0.96E-09 - 3.800000 0.777506 1.004387 0.52E-08 0.96E-09 - 3.900000 0.798144 1.704019 0.43E-08 0.96E-09 - 4.000000 0.820474 1.214374 0.34E-08 0.93E-09 - 4.100000 0.844149 1.406358 0.26E-08 0.90E-09 - 4.200000 0.868832 1.600774 0.18E-08 0.86E-09 - 4.300000 0.894204 1.038382 0.11E-08 0.80E-09 - 4.400000 0.919964 1.727533 0.37E-09 0.74E-09 - 4.500000 0.945834 1.126875 0.27E-09 0.67E-09 - 4.600000 0.971557 1.496974 0.86E-09 0.60E-09 - 4.700000 0.996898 1.525070 0.14E-08 0.53E-09 - 4.800000 1.021641 1.101030 0.19E-08 0.45E-09 - 4.900000 1.045589 1.730922 0.23E-08 0.37E-09 - 5.000000 1.068565 1.056480 0.27E-08 0.29E-09 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223725 1.077464 0.50E-08 0.63E-10 + 0.200000 1.220669 1.551800 0.50E-08 0.14E-09 + 0.300000 1.215594 1.467737 0.49E-08 0.21E-09 + 0.400000 1.208524 1.154583 0.48E-08 0.28E-09 + 0.500000 1.199496 1.721908 0.47E-08 0.33E-09 + 0.600000 1.188557 1.023517 0.46E-08 0.38E-09 + 0.700000 1.175764 1.622751 0.44E-08 0.42E-09 + 0.800000 1.161186 1.374632 0.42E-08 0.46E-09 + 0.900000 1.144904 1.245763 0.40E-08 0.49E-09 + 1.000000 1.127010 1.691839 0.37E-08 0.51E-09 + 1.100000 1.107609 1.000489 0.34E-08 0.52E-09 + 1.200000 1.086821 1.677552 0.31E-08 0.53E-09 + 1.300000 1.064777 1.277775 0.28E-08 0.53E-09 + 1.400000 1.041625 1.342455 0.24E-08 0.52E-09 + 1.500000 1.017531 1.642940 0.19E-08 0.51E-09 + 1.600000 0.992673 1.012112 0.15E-08 0.49E-09 + 1.700000 0.967253 1.714058 0.93E-09 0.47E-09 + 1.800000 0.941488 1.183867 0.35E-09 0.44E-09 + 1.900000 0.915617 1.437465 0.27E-09 0.40E-09 + 2.000000 0.889903 1.577082 0.96E-09 0.36E-09 + 2.100000 0.864625 1.056467 0.17E-08 0.30E-09 + 2.200000 0.840089 1.730920 0.25E-08 0.24E-09 + 2.300000 0.816616 1.101047 0.33E-08 0.17E-09 + 2.400000 0.794546 1.525051 0.42E-08 0.93E-10 + 2.500000 0.774227 1.496993 0.50E-08 0.88E-11 + 2.600000 0.756013 1.126857 0.59E-08 0.80E-10 + 2.700000 0.740246 1.727536 0.67E-08 0.18E-09 + 2.800000 0.727247 1.038393 0.74E-08 0.28E-09 + 2.900000 0.717301 1.600759 0.80E-08 0.38E-09 + 3.000000 0.710636 1.406380 0.84E-08 0.49E-09 + 3.100000 0.707412 1.214353 0.86E-08 0.58E-09 + 3.200000 0.707709 1.704026 0.86E-08 0.68E-09 + 3.300000 0.711520 1.004391 0.85E-08 0.76E-09 + 3.400000 0.718750 1.661225 0.81E-08 0.83E-09 + 3.500000 0.729227 1.310102 0.75E-08 0.89E-09 + 3.600000 0.742712 1.310080 0.68E-08 0.93E-09 + 3.700000 0.758914 1.661237 0.60E-08 0.96E-09 + 3.800000 0.777506 1.004387 0.52E-08 0.96E-09 + 3.900000 0.798144 1.704019 0.43E-08 0.96E-09 + 4.000000 0.820474 1.214374 0.34E-08 0.93E-09 + 4.100000 0.844149 1.406358 0.26E-08 0.90E-09 + 4.200000 0.868832 1.600774 0.18E-08 0.86E-09 + 4.300000 0.894204 1.038382 0.11E-08 0.80E-09 + 4.400000 0.919964 1.727533 0.37E-09 0.74E-09 + 4.500000 0.945834 1.126875 0.27E-09 0.67E-09 + 4.600000 0.971557 1.496974 0.86E-09 0.60E-09 + 4.700000 0.996898 1.525070 0.14E-08 0.53E-09 + 4.800000 1.021641 1.101030 0.19E-08 0.45E-09 + 4.900000 1.045589 1.730922 0.23E-08 0.37E-09 + 5.000000 1.068565 1.056480 0.27E-08 0.29E-09 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 2501, nstf = 252601 - u error = 0.467E-08, v error = 0.564E-09, total error = 0.333E-08 - Total RHS evals: Fs = 7504, Ff = 760306 + u error = 0.467E-08, v error = 0.564E-09, total error = 0.333E-08 + Total RHS evals: Fs = 7504, Ff = 757854 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_1_0.002.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_1_0.002.out index d0dcc20c8d..02271dbc17 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_1_0.002.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_1_0.002.out @@ -8,59 +8,59 @@ solver: none/exp-3 (no slow, explicit fast) t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223725 1.077464 0.51E-12 0.19E-12 - 0.200000 1.220669 1.551800 0.36E-12 0.49E-13 - 0.300000 1.215594 1.467737 0.20E-12 0.25E-12 - 0.400000 1.208524 1.154583 0.95E-13 0.56E-12 - 0.500000 1.199496 1.721908 0.21E-12 0.43E-13 - 0.600000 1.188557 1.023517 0.47E-12 0.61E-12 - 0.700000 1.175764 1.622751 0.36E-12 0.32E-13 - 0.800000 1.161186 1.374632 0.31E-12 0.22E-12 - 0.900000 1.144904 1.245763 0.20E-12 0.37E-12 - 1.000000 1.127010 1.691839 0.13E-12 0.13E-12 - 1.100000 1.107609 1.000489 0.35E-12 0.31E-11 - 1.200000 1.086821 1.677552 0.37E-12 0.73E-13 - 1.300000 1.064777 1.277775 0.38E-12 0.16E-11 - 1.400000 1.041625 1.342455 0.29E-12 0.12E-11 - 1.500000 1.017531 1.642940 0.59E-13 0.24E-12 - 1.600000 0.992673 1.012112 0.20E-12 0.25E-11 - 1.700000 0.967253 1.714058 0.34E-12 0.72E-12 - 1.800000 0.941488 1.183867 0.45E-12 0.16E-11 - 1.900000 0.915617 1.437465 0.34E-12 0.38E-12 - 2.000000 0.889903 1.577082 0.35E-13 0.32E-12 - 2.100000 0.864625 1.056467 0.95E-13 0.36E-11 - 2.200000 0.840089 1.730920 0.28E-12 0.98E-12 - 2.300000 0.816616 1.101047 0.53E-12 0.31E-11 - 2.400000 0.794546 1.525051 0.35E-12 0.14E-12 - 2.500000 0.774227 1.496993 0.17E-12 0.15E-12 - 2.600000 0.756013 1.126857 0.56E-13 0.28E-11 - 2.700000 0.740246 1.727536 0.23E-12 0.16E-11 - 2.800000 0.727247 1.038393 0.49E-12 0.33E-11 - 2.900000 0.717301 1.600759 0.38E-12 0.90E-12 - 3.000000 0.710636 1.406380 0.27E-12 0.37E-12 - 3.100000 0.707412 1.214353 0.18E-12 0.19E-11 - 3.200000 0.707709 1.704026 0.17E-12 0.19E-11 - 3.300000 0.711520 1.004391 0.40E-12 0.36E-11 - 3.400000 0.718750 1.661225 0.39E-12 0.17E-11 - 3.500000 0.729227 1.310102 0.36E-12 0.82E-12 - 3.600000 0.742712 1.310080 0.28E-12 0.92E-12 - 3.700000 0.758914 1.661237 0.98E-13 0.20E-11 - 3.800000 0.777506 1.004387 0.26E-12 0.38E-11 - 3.900000 0.798144 1.704019 0.37E-12 0.23E-11 - 4.000000 0.820474 1.214374 0.44E-12 0.15E-11 - 4.100000 0.844149 1.406358 0.34E-12 0.18E-13 - 4.200000 0.868832 1.600774 0.67E-15 0.17E-11 - 4.300000 0.894204 1.038382 0.11E-12 0.36E-11 - 4.400000 0.919964 1.727533 0.33E-12 0.28E-11 - 4.500000 0.945834 1.126875 0.50E-12 0.24E-11 - 4.600000 0.971557 1.496974 0.38E-12 0.91E-12 - 4.700000 0.996898 1.525070 0.11E-12 0.13E-11 - 4.800000 1.021641 1.101030 0.31E-13 0.30E-11 - 4.900000 1.045589 1.730922 0.28E-12 0.30E-11 - 5.000000 1.068565 1.056480 0.50E-12 0.34E-11 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223725 1.077464 0.51E-12 0.19E-12 + 0.200000 1.220669 1.551800 0.36E-12 0.49E-13 + 0.300000 1.215594 1.467737 0.20E-12 0.25E-12 + 0.400000 1.208524 1.154583 0.95E-13 0.56E-12 + 0.500000 1.199496 1.721908 0.21E-12 0.43E-13 + 0.600000 1.188557 1.023517 0.47E-12 0.61E-12 + 0.700000 1.175764 1.622751 0.36E-12 0.32E-13 + 0.800000 1.161186 1.374632 0.31E-12 0.22E-12 + 0.900000 1.144904 1.245763 0.20E-12 0.37E-12 + 1.000000 1.127010 1.691839 0.13E-12 0.13E-12 + 1.100000 1.107609 1.000489 0.35E-12 0.31E-11 + 1.200000 1.086821 1.677552 0.37E-12 0.73E-13 + 1.300000 1.064777 1.277775 0.38E-12 0.16E-11 + 1.400000 1.041625 1.342455 0.29E-12 0.12E-11 + 1.500000 1.017531 1.642940 0.59E-13 0.24E-12 + 1.600000 0.992673 1.012112 0.20E-12 0.25E-11 + 1.700000 0.967253 1.714058 0.34E-12 0.72E-12 + 1.800000 0.941488 1.183867 0.45E-12 0.16E-11 + 1.900000 0.915617 1.437465 0.34E-12 0.38E-12 + 2.000000 0.889903 1.577082 0.35E-13 0.32E-12 + 2.100000 0.864625 1.056467 0.95E-13 0.36E-11 + 2.200000 0.840089 1.730920 0.28E-12 0.98E-12 + 2.300000 0.816616 1.101047 0.53E-12 0.31E-11 + 2.400000 0.794546 1.525051 0.35E-12 0.14E-12 + 2.500000 0.774227 1.496993 0.17E-12 0.15E-12 + 2.600000 0.756013 1.126857 0.56E-13 0.28E-11 + 2.700000 0.740246 1.727536 0.23E-12 0.16E-11 + 2.800000 0.727247 1.038393 0.49E-12 0.33E-11 + 2.900000 0.717301 1.600759 0.38E-12 0.90E-12 + 3.000000 0.710636 1.406380 0.27E-12 0.37E-12 + 3.100000 0.707412 1.214353 0.18E-12 0.19E-11 + 3.200000 0.707709 1.704026 0.17E-12 0.19E-11 + 3.300000 0.711520 1.004391 0.40E-12 0.36E-11 + 3.400000 0.718750 1.661225 0.39E-12 0.17E-11 + 3.500000 0.729227 1.310102 0.36E-12 0.82E-12 + 3.600000 0.742712 1.310080 0.28E-12 0.92E-12 + 3.700000 0.758914 1.661237 0.98E-13 0.20E-11 + 3.800000 0.777506 1.004387 0.26E-12 0.38E-11 + 3.900000 0.798144 1.704019 0.37E-12 0.23E-11 + 4.000000 0.820474 1.214374 0.44E-12 0.15E-11 + 4.100000 0.844149 1.406358 0.34E-12 0.18E-13 + 4.200000 0.868832 1.600774 0.67E-15 0.17E-11 + 4.300000 0.894204 1.038382 0.11E-12 0.36E-11 + 4.400000 0.919964 1.727533 0.33E-12 0.28E-11 + 4.500000 0.945834 1.126875 0.50E-12 0.24E-11 + 4.600000 0.971557 1.496974 0.38E-12 0.91E-12 + 4.700000 0.996898 1.525070 0.11E-12 0.13E-11 + 4.800000 1.021641 1.101030 0.31E-13 0.30E-11 + 4.900000 1.045589 1.730922 0.28E-12 0.30E-11 + 5.000000 1.068565 1.056480 0.50E-12 0.34E-11 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 2501, nstf = 252601 - u error = 0.316E-12, v error = 0.191E-11, total error = 0.137E-11 - Total RHS evals: Fs = 5003, Ff = 760306 + u error = 0.316E-12, v error = 0.191E-11, total error = 0.137E-11 + Total RHS evals: Fs = 5003, Ff = 757854 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_3_0.01.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_3_0.01.out index c77af2546d..efec1c548a 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_3_0.01.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_3_0.01.out @@ -8,59 +8,59 @@ solver: exp-3/none (explicit slow, no fast) t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223763 1.078830 0.38E-04 0.14E-02 - 0.200000 1.220621 1.551459 0.48E-04 0.34E-03 - 0.300000 1.215670 1.468283 0.77E-04 0.55E-03 - 0.400000 1.208470 1.153553 0.54E-04 0.10E-02 - 0.500000 1.199503 1.721912 0.72E-05 0.45E-05 - 0.600000 1.188562 1.024685 0.52E-05 0.12E-02 - 0.700000 1.175722 1.622394 0.42E-04 0.36E-03 - 0.800000 1.161273 1.375492 0.87E-04 0.86E-03 - 0.900000 1.144848 1.244851 0.56E-04 0.91E-03 - 1.000000 1.127033 1.692049 0.23E-04 0.21E-03 - 1.100000 1.107588 1.000787 0.21E-04 0.30E-03 - 1.200000 1.086786 1.677292 0.34E-04 0.26E-03 - 1.300000 1.064866 1.278796 0.89E-04 0.10E-02 - 1.400000 1.041569 1.341623 0.57E-04 0.83E-03 - 1.500000 1.017571 1.643329 0.41E-04 0.39E-03 - 1.600000 0.992634 1.011394 0.39E-04 0.72E-03 - 1.700000 0.967229 1.714025 0.24E-04 0.33E-04 - 1.800000 0.941564 1.184983 0.76E-04 0.11E-02 - 1.900000 0.915563 1.436882 0.55E-04 0.58E-03 - 2.000000 0.889959 1.577469 0.57E-04 0.39E-03 - 2.100000 0.864576 1.055284 0.50E-04 0.12E-02 - 2.200000 0.840077 1.730958 0.12E-04 0.37E-04 - 2.300000 0.816664 1.102379 0.48E-04 0.13E-02 - 2.400000 0.794495 1.524701 0.51E-04 0.35E-03 - 2.500000 0.774298 1.497468 0.71E-04 0.47E-03 - 2.600000 0.755958 1.125772 0.55E-04 0.11E-02 - 2.700000 0.740246 1.727533 0.49E-06 0.36E-05 - 2.800000 0.727261 1.039718 0.14E-04 0.13E-02 - 2.900000 0.717255 1.600423 0.46E-04 0.34E-03 - 3.000000 0.710718 1.407151 0.82E-04 0.77E-03 - 3.100000 0.707355 1.213428 0.58E-04 0.92E-03 - 3.200000 0.707725 1.704161 0.15E-04 0.13E-03 - 3.300000 0.711504 1.005042 0.15E-04 0.65E-03 - 3.400000 0.718710 1.660915 0.39E-04 0.31E-03 - 3.500000 0.729315 1.311097 0.88E-04 0.10E-02 - 3.600000 0.742653 1.309213 0.59E-04 0.87E-03 - 3.700000 0.758947 1.661594 0.33E-04 0.36E-03 - 3.800000 0.777471 1.003977 0.35E-04 0.41E-03 - 3.900000 0.798115 1.703919 0.29E-04 0.10E-03 - 4.000000 0.820556 1.215451 0.82E-04 0.11E-02 - 4.100000 0.844093 1.405680 0.57E-04 0.68E-03 - 4.200000 0.868883 1.601174 0.51E-04 0.40E-03 - 4.300000 0.894157 1.037277 0.47E-04 0.11E-02 - 4.400000 0.919948 1.727576 0.16E-04 0.42E-04 - 4.500000 0.945893 1.128134 0.59E-04 0.13E-02 - 4.600000 0.971505 1.496571 0.52E-04 0.40E-03 - 4.700000 0.996965 1.525489 0.67E-04 0.42E-03 - 4.800000 1.021588 1.099882 0.52E-04 0.11E-02 - 4.900000 1.045586 1.730924 0.28E-05 0.26E-05 - 5.000000 1.068592 1.057870 0.27E-04 0.14E-02 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223763 1.078830 0.38E-04 0.14E-02 + 0.200000 1.220621 1.551459 0.48E-04 0.34E-03 + 0.300000 1.215670 1.468283 0.77E-04 0.55E-03 + 0.400000 1.208470 1.153553 0.54E-04 0.10E-02 + 0.500000 1.199503 1.721912 0.72E-05 0.45E-05 + 0.600000 1.188562 1.024685 0.52E-05 0.12E-02 + 0.700000 1.175722 1.622394 0.42E-04 0.36E-03 + 0.800000 1.161273 1.375492 0.87E-04 0.86E-03 + 0.900000 1.144848 1.244851 0.56E-04 0.91E-03 + 1.000000 1.127033 1.692049 0.23E-04 0.21E-03 + 1.100000 1.107588 1.000787 0.21E-04 0.30E-03 + 1.200000 1.086786 1.677292 0.34E-04 0.26E-03 + 1.300000 1.064866 1.278796 0.89E-04 0.10E-02 + 1.400000 1.041569 1.341623 0.57E-04 0.83E-03 + 1.500000 1.017571 1.643329 0.41E-04 0.39E-03 + 1.600000 0.992634 1.011394 0.39E-04 0.72E-03 + 1.700000 0.967229 1.714025 0.24E-04 0.33E-04 + 1.800000 0.941564 1.184983 0.76E-04 0.11E-02 + 1.900000 0.915563 1.436882 0.55E-04 0.58E-03 + 2.000000 0.889959 1.577469 0.57E-04 0.39E-03 + 2.100000 0.864576 1.055284 0.50E-04 0.12E-02 + 2.200000 0.840077 1.730958 0.12E-04 0.37E-04 + 2.300000 0.816664 1.102379 0.48E-04 0.13E-02 + 2.400000 0.794495 1.524701 0.51E-04 0.35E-03 + 2.500000 0.774298 1.497468 0.71E-04 0.47E-03 + 2.600000 0.755958 1.125772 0.55E-04 0.11E-02 + 2.700000 0.740246 1.727533 0.49E-06 0.36E-05 + 2.800000 0.727261 1.039718 0.14E-04 0.13E-02 + 2.900000 0.717255 1.600423 0.46E-04 0.34E-03 + 3.000000 0.710718 1.407151 0.82E-04 0.77E-03 + 3.100000 0.707355 1.213428 0.58E-04 0.92E-03 + 3.200000 0.707725 1.704161 0.15E-04 0.13E-03 + 3.300000 0.711504 1.005042 0.15E-04 0.65E-03 + 3.400000 0.718710 1.660915 0.39E-04 0.31E-03 + 3.500000 0.729315 1.311097 0.88E-04 0.10E-02 + 3.600000 0.742653 1.309213 0.59E-04 0.87E-03 + 3.700000 0.758947 1.661594 0.33E-04 0.36E-03 + 3.800000 0.777471 1.003977 0.35E-04 0.41E-03 + 3.900000 0.798115 1.703919 0.29E-04 0.10E-03 + 4.000000 0.820556 1.215451 0.82E-04 0.11E-02 + 4.100000 0.844093 1.405680 0.57E-04 0.68E-03 + 4.200000 0.868883 1.601174 0.51E-04 0.40E-03 + 4.300000 0.894157 1.037277 0.47E-04 0.11E-02 + 4.400000 0.919948 1.727576 0.16E-04 0.42E-04 + 4.500000 0.945893 1.128134 0.59E-04 0.13E-02 + 4.600000 0.971505 1.496571 0.52E-04 0.40E-03 + 4.700000 0.996965 1.525489 0.67E-04 0.42E-03 + 4.800000 1.021588 1.099882 0.52E-04 0.11E-02 + 4.900000 1.045586 1.730924 0.28E-05 0.26E-05 + 5.000000 1.068592 1.057870 0.27E-04 0.14E-02 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 501, nstf = 50601 - u error = 0.505E-04, v error = 0.768E-03, total error = 0.545E-03 - Total RHS evals: Fs = 1504, Ff = 152306 + u error = 0.505E-04, v error = 0.768E-03, total error = 0.545E-03 + Total RHS evals: Fs = 1504, Ff = 151854 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_4_0.002.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_4_0.002.out index 973afbc8c9..0fa85a2c8c 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_4_0.002.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_4_0.002.out @@ -9,62 +9,62 @@ reltol: 0.4000E-05 abstol: 0.1000E-10 t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223734 1.079428 0.94E-05 0.20E-02 - 0.200000 1.220669 1.551975 0.32E-06 0.17E-03 - 0.300000 1.215599 1.468008 0.55E-05 0.27E-03 - 0.400000 1.208526 1.155919 0.22E-05 0.13E-02 - 0.500000 1.199497 1.721561 0.88E-06 0.35E-03 - 0.600000 1.188564 1.025537 0.74E-05 0.20E-02 - 0.700000 1.175763 1.622485 0.12E-05 0.27E-03 - 0.800000 1.161186 1.374900 0.25E-06 0.27E-03 - 0.900000 1.144904 1.246450 0.11E-06 0.69E-03 - 1.000000 1.127010 1.691322 0.54E-06 0.52E-03 - 1.100000 1.107615 1.002500 0.54E-05 0.20E-02 - 1.200000 1.086818 1.677003 0.21E-05 0.55E-03 - 1.300000 1.064782 1.278198 0.55E-05 0.42E-03 - 1.400000 1.041624 1.342655 0.14E-05 0.20E-03 - 1.500000 1.017531 1.642375 0.74E-06 0.56E-03 - 1.600000 0.992677 1.013911 0.34E-05 0.18E-02 - 1.700000 0.967249 1.713353 0.35E-05 0.71E-03 - 1.800000 0.941493 1.184579 0.54E-05 0.71E-03 - 1.900000 0.915615 1.437305 0.24E-05 0.16E-03 - 2.000000 0.889904 1.576564 0.13E-05 0.52E-03 - 2.100000 0.864627 1.057868 0.15E-05 0.14E-02 - 2.200000 0.840087 1.730117 0.24E-05 0.80E-03 - 2.300000 0.816622 1.102136 0.58E-05 0.11E-02 - 2.400000 0.794543 1.524625 0.31E-05 0.43E-03 - 2.500000 0.774230 1.496597 0.22E-05 0.40E-03 - 2.600000 0.756013 1.127800 0.77E-07 0.94E-03 - 2.700000 0.740244 1.726696 0.18E-05 0.84E-03 - 2.800000 0.727253 1.039861 0.53E-05 0.15E-02 - 2.900000 0.717298 1.600138 0.32E-05 0.62E-03 - 3.000000 0.710633 1.406200 0.30E-05 0.18E-03 - 3.100000 0.707411 1.214845 0.12E-05 0.49E-03 - 3.200000 0.707708 1.703196 0.12E-05 0.83E-03 - 3.300000 0.711524 1.006102 0.44E-05 0.17E-02 - 3.400000 0.718746 1.660466 0.34E-05 0.76E-03 - 3.500000 0.729231 1.310194 0.41E-05 0.93E-04 - 3.600000 0.742710 1.310190 0.22E-05 0.11E-03 - 3.700000 0.758913 1.660462 0.47E-06 0.77E-03 - 3.800000 0.777509 1.006087 0.31E-05 0.17E-02 - 3.900000 0.798140 1.703188 0.39E-05 0.83E-03 - 4.000000 0.820479 1.214819 0.46E-05 0.45E-03 - 4.100000 0.844147 1.406163 0.28E-05 0.20E-03 - 4.200000 0.868833 1.600102 0.42E-06 0.67E-03 - 4.300000 0.894205 1.039813 0.15E-05 0.14E-02 - 4.400000 0.919961 1.726651 0.28E-05 0.88E-03 - 4.500000 0.945839 1.127737 0.53E-05 0.86E-03 - 4.600000 0.971554 1.496541 0.33E-05 0.43E-03 - 4.700000 0.996899 1.524547 0.14E-05 0.52E-03 - 4.800000 1.021641 1.102066 0.86E-07 0.10E-02 - 4.900000 1.045587 1.730025 0.20E-05 0.90E-03 - 5.000000 1.068570 1.057773 0.53E-05 0.13E-02 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223734 1.079428 0.94E-05 0.20E-02 + 0.200000 1.220669 1.551975 0.32E-06 0.17E-03 + 0.300000 1.215599 1.468008 0.55E-05 0.27E-03 + 0.400000 1.208526 1.155919 0.22E-05 0.13E-02 + 0.500000 1.199497 1.721561 0.88E-06 0.35E-03 + 0.600000 1.188564 1.025537 0.74E-05 0.20E-02 + 0.700000 1.175763 1.622485 0.12E-05 0.27E-03 + 0.800000 1.161186 1.374900 0.25E-06 0.27E-03 + 0.900000 1.144904 1.246450 0.11E-06 0.69E-03 + 1.000000 1.127010 1.691322 0.54E-06 0.52E-03 + 1.100000 1.107615 1.002500 0.54E-05 0.20E-02 + 1.200000 1.086818 1.677003 0.21E-05 0.55E-03 + 1.300000 1.064782 1.278198 0.55E-05 0.42E-03 + 1.400000 1.041624 1.342655 0.14E-05 0.20E-03 + 1.500000 1.017531 1.642375 0.74E-06 0.56E-03 + 1.600000 0.992677 1.013911 0.34E-05 0.18E-02 + 1.700000 0.967249 1.713353 0.35E-05 0.71E-03 + 1.800000 0.941493 1.184579 0.54E-05 0.71E-03 + 1.900000 0.915615 1.437305 0.24E-05 0.16E-03 + 2.000000 0.889904 1.576564 0.13E-05 0.52E-03 + 2.100000 0.864627 1.057868 0.15E-05 0.14E-02 + 2.200000 0.840087 1.730117 0.24E-05 0.80E-03 + 2.300000 0.816622 1.102136 0.58E-05 0.11E-02 + 2.400000 0.794543 1.524625 0.31E-05 0.43E-03 + 2.500000 0.774230 1.496597 0.22E-05 0.40E-03 + 2.600000 0.756013 1.127800 0.77E-07 0.94E-03 + 2.700000 0.740244 1.726696 0.18E-05 0.84E-03 + 2.800000 0.727253 1.039861 0.53E-05 0.15E-02 + 2.900000 0.717298 1.600138 0.32E-05 0.62E-03 + 3.000000 0.710633 1.406200 0.30E-05 0.18E-03 + 3.100000 0.707411 1.214845 0.12E-05 0.49E-03 + 3.200000 0.707708 1.703196 0.12E-05 0.83E-03 + 3.300000 0.711524 1.006102 0.44E-05 0.17E-02 + 3.400000 0.718746 1.660466 0.34E-05 0.76E-03 + 3.500000 0.729231 1.310194 0.41E-05 0.93E-04 + 3.600000 0.742710 1.310190 0.22E-05 0.11E-03 + 3.700000 0.758913 1.660462 0.47E-06 0.77E-03 + 3.800000 0.777509 1.006087 0.31E-05 0.17E-02 + 3.900000 0.798140 1.703188 0.39E-05 0.83E-03 + 4.000000 0.820479 1.214819 0.46E-05 0.45E-03 + 4.100000 0.844147 1.406163 0.28E-05 0.20E-03 + 4.200000 0.868833 1.600102 0.42E-06 0.67E-03 + 4.300000 0.894205 1.039813 0.15E-05 0.14E-02 + 4.400000 0.919961 1.726651 0.28E-05 0.88E-03 + 4.500000 0.945839 1.127737 0.53E-05 0.86E-03 + 4.600000 0.971554 1.496541 0.33E-05 0.43E-03 + 4.700000 0.996899 1.524547 0.14E-05 0.52E-03 + 4.800000 1.021641 1.102066 0.86E-07 0.10E-02 + 4.900000 1.045587 1.730025 0.20E-05 0.90E-03 + 5.000000 1.068570 1.057773 0.53E-05 0.13E-02 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 2501, nstf = 250100 - u error = 0.348E-05, v error = 0.953E-03, total error = 0.674E-03 - Total RHS evals: Fs = 7143, Ff = 755303 + u error = 0.348E-05, v error = 0.953E-03, total error = 0.674E-03 + Total RHS evals: Fs = 7143, Ff = 752851 Slow Newton iters = 4641 Slow Newton conv fails = 0 Slow Jacobian evals = 126 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_5_0.002.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_5_0.002.out index 8cac37fa66..e03d47aaf4 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_5_0.002.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_5_0.002.out @@ -8,59 +8,59 @@ solver: exp-4/exp-4 (MRI-GARK-ERK45a / ERK-4-4) t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223725 1.077464 0.18E-09 0.11E-10 - 0.200000 1.220669 1.551800 0.18E-09 0.21E-10 - 0.300000 1.215594 1.467737 0.17E-09 0.31E-10 - 0.400000 1.208524 1.154583 0.17E-09 0.39E-10 - 0.500000 1.199496 1.721908 0.17E-09 0.47E-10 - 0.600000 1.188557 1.023517 0.16E-09 0.53E-10 - 0.700000 1.175764 1.622751 0.16E-09 0.59E-10 - 0.800000 1.161186 1.374632 0.15E-09 0.63E-10 - 0.900000 1.144904 1.245763 0.14E-09 0.66E-10 - 1.000000 1.127010 1.691839 0.13E-09 0.69E-10 - 1.100000 1.107609 1.000489 0.12E-09 0.71E-10 - 1.200000 1.086821 1.677552 0.11E-09 0.72E-10 - 1.300000 1.064777 1.277775 0.99E-10 0.72E-10 - 1.400000 1.041625 1.342455 0.85E-10 0.71E-10 - 1.500000 1.017531 1.642940 0.69E-10 0.70E-10 - 1.600000 0.992673 1.012112 0.52E-10 0.67E-10 - 1.700000 0.967253 1.714058 0.34E-10 0.63E-10 - 1.800000 0.941488 1.183867 0.13E-10 0.59E-10 - 1.900000 0.915617 1.437465 0.91E-11 0.53E-10 - 2.000000 0.889903 1.577082 0.33E-10 0.47E-10 - 2.100000 0.864625 1.056467 0.59E-10 0.36E-10 - 2.200000 0.840089 1.730920 0.87E-10 0.32E-10 - 2.300000 0.816616 1.101047 0.12E-09 0.19E-10 - 2.400000 0.794546 1.525051 0.15E-09 0.11E-10 - 2.500000 0.774227 1.496993 0.18E-09 0.12E-11 - 2.600000 0.756013 1.126857 0.21E-09 0.16E-10 - 2.700000 0.740246 1.727536 0.24E-09 0.25E-10 - 2.800000 0.727247 1.038393 0.26E-09 0.44E-10 - 2.900000 0.717301 1.600759 0.28E-09 0.54E-10 - 3.000000 0.710636 1.406380 0.30E-09 0.69E-10 - 3.100000 0.707412 1.214353 0.31E-09 0.84E-10 - 3.200000 0.707709 1.704026 0.31E-09 0.93E-10 - 3.300000 0.711520 1.004391 0.30E-09 0.11E-09 - 3.400000 0.718750 1.661225 0.29E-09 0.11E-09 - 3.500000 0.729227 1.310102 0.27E-09 0.12E-09 - 3.600000 0.742712 1.310080 0.24E-09 0.13E-09 - 3.700000 0.758914 1.661237 0.22E-09 0.13E-09 - 3.800000 0.777506 1.004387 0.19E-09 0.13E-09 - 3.900000 0.798144 1.704019 0.15E-09 0.13E-09 - 4.000000 0.820474 1.214374 0.12E-09 0.13E-09 - 4.100000 0.844149 1.406358 0.94E-10 0.12E-09 - 4.200000 0.868832 1.600774 0.65E-10 0.11E-09 - 4.300000 0.894204 1.038382 0.39E-10 0.11E-09 - 4.400000 0.919964 1.727533 0.14E-10 0.97E-10 - 4.500000 0.945834 1.126875 0.89E-11 0.91E-10 - 4.600000 0.971557 1.496974 0.30E-10 0.79E-10 - 4.700000 0.996898 1.525070 0.49E-10 0.69E-10 - 4.800000 1.021641 1.101030 0.67E-10 0.61E-10 - 4.900000 1.045589 1.730922 0.83E-10 0.47E-10 - 5.000000 1.068565 1.056480 0.97E-10 0.40E-10 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223725 1.077464 0.18E-09 0.11E-10 + 0.200000 1.220669 1.551800 0.18E-09 0.21E-10 + 0.300000 1.215594 1.467737 0.17E-09 0.31E-10 + 0.400000 1.208524 1.154583 0.17E-09 0.39E-10 + 0.500000 1.199496 1.721908 0.17E-09 0.47E-10 + 0.600000 1.188557 1.023517 0.16E-09 0.53E-10 + 0.700000 1.175764 1.622751 0.16E-09 0.59E-10 + 0.800000 1.161186 1.374632 0.15E-09 0.63E-10 + 0.900000 1.144904 1.245763 0.14E-09 0.66E-10 + 1.000000 1.127010 1.691839 0.13E-09 0.69E-10 + 1.100000 1.107609 1.000489 0.12E-09 0.71E-10 + 1.200000 1.086821 1.677552 0.11E-09 0.72E-10 + 1.300000 1.064777 1.277775 0.99E-10 0.72E-10 + 1.400000 1.041625 1.342455 0.85E-10 0.71E-10 + 1.500000 1.017531 1.642940 0.69E-10 0.70E-10 + 1.600000 0.992673 1.012112 0.52E-10 0.67E-10 + 1.700000 0.967253 1.714058 0.34E-10 0.63E-10 + 1.800000 0.941488 1.183867 0.13E-10 0.59E-10 + 1.900000 0.915617 1.437465 0.91E-11 0.53E-10 + 2.000000 0.889903 1.577082 0.33E-10 0.47E-10 + 2.100000 0.864625 1.056467 0.59E-10 0.36E-10 + 2.200000 0.840089 1.730920 0.87E-10 0.32E-10 + 2.300000 0.816616 1.101047 0.12E-09 0.20E-10 + 2.400000 0.794546 1.525051 0.15E-09 0.78E-11 + 2.500000 0.774227 1.496993 0.18E-09 0.25E-11 + 2.600000 0.756013 1.126857 0.21E-09 0.20E-10 + 2.700000 0.740246 1.727536 0.24E-09 0.23E-10 + 2.800000 0.727247 1.038393 0.26E-09 0.42E-10 + 2.900000 0.717301 1.600759 0.28E-09 0.59E-10 + 3.000000 0.710636 1.406380 0.30E-09 0.62E-10 + 3.100000 0.707412 1.214353 0.31E-09 0.92E-10 + 3.200000 0.707709 1.704026 0.31E-09 0.87E-10 + 3.300000 0.711520 1.004391 0.30E-09 0.11E-09 + 3.400000 0.718750 1.661225 0.29E-09 0.12E-09 + 3.500000 0.729227 1.310102 0.27E-09 0.11E-09 + 3.600000 0.742712 1.310080 0.24E-09 0.14E-09 + 3.700000 0.758914 1.661237 0.22E-09 0.12E-09 + 3.800000 0.777506 1.004387 0.19E-09 0.14E-09 + 3.900000 0.798144 1.704019 0.15E-09 0.13E-09 + 4.000000 0.820474 1.214374 0.12E-09 0.12E-09 + 4.100000 0.844149 1.406358 0.94E-10 0.14E-09 + 4.200000 0.868832 1.600774 0.65E-10 0.99E-10 + 4.300000 0.894204 1.038382 0.39E-10 0.12E-09 + 4.400000 0.919964 1.727533 0.14E-10 0.96E-10 + 4.500000 0.945834 1.126875 0.89E-11 0.80E-10 + 4.600000 0.971557 1.496974 0.30E-10 0.98E-10 + 4.700000 0.996898 1.525070 0.49E-10 0.49E-10 + 4.800000 1.021641 1.101030 0.67E-10 0.78E-10 + 4.900000 1.045589 1.730922 0.83E-10 0.39E-10 + 5.000000 1.068565 1.056480 0.97E-10 0.32E-10 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 2501, nstf = 250100 - u error = 0.166E-09, v error = 0.768E-10, total error = 0.130E-09 - Total RHS evals: Fs = 12506, Ff = 1002903 + u error = 0.166E-09, v error = 0.771E-10, total error = 0.130E-09 + Total RHS evals: Fs = 12506, Ff = 1000451 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_6_0.005.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_6_0.005.out index 865cfee2de..58f4564d9a 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_6_0.005.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_6_0.005.out @@ -8,59 +8,59 @@ solver: exp-4/exp-3 (MRI-GARK-ERK45a / ERK-3-3) t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223725 1.077464 0.81E-08 0.46E-09 - 0.200000 1.220669 1.551800 0.80E-08 0.90E-09 - 0.300000 1.215594 1.467737 0.79E-08 0.13E-08 - 0.400000 1.208524 1.154583 0.78E-08 0.17E-08 - 0.500000 1.199496 1.721908 0.76E-08 0.20E-08 - 0.600000 1.188557 1.023517 0.74E-08 0.22E-08 - 0.700000 1.175764 1.622751 0.71E-08 0.25E-08 - 0.800000 1.161186 1.374632 0.68E-08 0.27E-08 - 0.900000 1.144904 1.245763 0.65E-08 0.28E-08 - 1.000000 1.127010 1.691839 0.61E-08 0.29E-08 - 1.100000 1.107609 1.000489 0.56E-08 0.30E-08 - 1.200000 1.086821 1.677552 0.51E-08 0.30E-08 - 1.300000 1.064777 1.277775 0.45E-08 0.30E-08 - 1.400000 1.041625 1.342455 0.39E-08 0.30E-08 - 1.500000 1.017531 1.642940 0.32E-08 0.29E-08 - 1.600000 0.992673 1.012112 0.24E-08 0.28E-08 - 1.700000 0.967253 1.714058 0.15E-08 0.27E-08 - 1.800000 0.941488 1.183867 0.61E-09 0.25E-08 - 1.900000 0.915617 1.437465 0.40E-09 0.23E-08 - 2.000000 0.889903 1.577082 0.15E-08 0.20E-08 - 2.100000 0.864625 1.056467 0.27E-08 0.17E-08 - 2.200000 0.840089 1.730920 0.39E-08 0.13E-08 - 2.300000 0.816616 1.101047 0.53E-08 0.90E-09 - 2.400000 0.794546 1.525051 0.67E-08 0.45E-09 - 2.500000 0.774227 1.496993 0.80E-08 0.42E-10 - 2.600000 0.756013 1.126857 0.94E-08 0.57E-09 - 2.700000 0.740246 1.727536 0.11E-07 0.11E-08 - 2.800000 0.727247 1.038393 0.12E-07 0.17E-08 - 2.900000 0.717301 1.600759 0.13E-07 0.23E-08 - 3.000000 0.710636 1.406380 0.14E-07 0.29E-08 - 3.100000 0.707412 1.214353 0.14E-07 0.35E-08 - 3.200000 0.707709 1.704026 0.14E-07 0.40E-08 - 3.300000 0.711520 1.004391 0.14E-07 0.44E-08 - 3.400000 0.718750 1.661225 0.13E-07 0.48E-08 - 3.500000 0.729227 1.310102 0.12E-07 0.52E-08 - 3.600000 0.742712 1.310080 0.11E-07 0.54E-08 - 3.700000 0.758914 1.661237 0.98E-08 0.55E-08 - 3.800000 0.777506 1.004387 0.84E-08 0.55E-08 - 3.900000 0.798144 1.704019 0.70E-08 0.55E-08 - 4.000000 0.820474 1.214374 0.56E-08 0.53E-08 - 4.100000 0.844149 1.406358 0.43E-08 0.51E-08 - 4.200000 0.868832 1.600774 0.30E-08 0.49E-08 - 4.300000 0.894204 1.038382 0.18E-08 0.45E-08 - 4.400000 0.919964 1.727533 0.65E-09 0.42E-08 - 4.500000 0.945834 1.126875 0.39E-09 0.38E-08 - 4.600000 0.971557 1.496974 0.14E-08 0.34E-08 - 4.700000 0.996898 1.525070 0.22E-08 0.29E-08 - 4.800000 1.021641 1.101030 0.30E-08 0.25E-08 - 4.900000 1.045589 1.730922 0.37E-08 0.21E-08 - 5.000000 1.068565 1.056480 0.44E-08 0.16E-08 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223725 1.077464 0.81E-08 0.46E-09 + 0.200000 1.220669 1.551800 0.80E-08 0.90E-09 + 0.300000 1.215594 1.467737 0.79E-08 0.13E-08 + 0.400000 1.208524 1.154583 0.78E-08 0.17E-08 + 0.500000 1.199496 1.721908 0.76E-08 0.20E-08 + 0.600000 1.188557 1.023517 0.74E-08 0.22E-08 + 0.700000 1.175764 1.622751 0.71E-08 0.25E-08 + 0.800000 1.161186 1.374632 0.68E-08 0.27E-08 + 0.900000 1.144904 1.245763 0.65E-08 0.28E-08 + 1.000000 1.127010 1.691839 0.61E-08 0.29E-08 + 1.100000 1.107609 1.000489 0.56E-08 0.30E-08 + 1.200000 1.086821 1.677552 0.51E-08 0.30E-08 + 1.300000 1.064777 1.277775 0.45E-08 0.30E-08 + 1.400000 1.041625 1.342455 0.39E-08 0.30E-08 + 1.500000 1.017531 1.642940 0.32E-08 0.29E-08 + 1.600000 0.992673 1.012112 0.24E-08 0.28E-08 + 1.700000 0.967253 1.714058 0.15E-08 0.27E-08 + 1.800000 0.941488 1.183867 0.61E-09 0.25E-08 + 1.900000 0.915617 1.437465 0.40E-09 0.23E-08 + 2.000000 0.889903 1.577082 0.15E-08 0.20E-08 + 2.100000 0.864625 1.056467 0.27E-08 0.17E-08 + 2.200000 0.840089 1.730920 0.39E-08 0.13E-08 + 2.300000 0.816616 1.101047 0.53E-08 0.90E-09 + 2.400000 0.794546 1.525051 0.67E-08 0.45E-09 + 2.500000 0.774227 1.496993 0.80E-08 0.39E-10 + 2.600000 0.756013 1.126857 0.94E-08 0.57E-09 + 2.700000 0.740246 1.727536 0.11E-07 0.11E-08 + 2.800000 0.727247 1.038393 0.12E-07 0.17E-08 + 2.900000 0.717301 1.600759 0.13E-07 0.23E-08 + 3.000000 0.710636 1.406380 0.14E-07 0.29E-08 + 3.100000 0.707412 1.214353 0.14E-07 0.35E-08 + 3.200000 0.707709 1.704026 0.14E-07 0.40E-08 + 3.300000 0.711520 1.004391 0.14E-07 0.44E-08 + 3.400000 0.718750 1.661225 0.13E-07 0.48E-08 + 3.500000 0.729227 1.310102 0.12E-07 0.52E-08 + 3.600000 0.742712 1.310080 0.11E-07 0.54E-08 + 3.700000 0.758914 1.661237 0.98E-08 0.55E-08 + 3.800000 0.777506 1.004387 0.84E-08 0.55E-08 + 3.900000 0.798144 1.704019 0.70E-08 0.55E-08 + 4.000000 0.820474 1.214374 0.56E-08 0.53E-08 + 4.100000 0.844149 1.406358 0.43E-08 0.51E-08 + 4.200000 0.868832 1.600774 0.30E-08 0.49E-08 + 4.300000 0.894204 1.038382 0.18E-08 0.45E-08 + 4.400000 0.919964 1.727533 0.65E-09 0.42E-08 + 4.500000 0.945834 1.126875 0.39E-09 0.38E-08 + 4.600000 0.971557 1.496974 0.14E-08 0.34E-08 + 4.700000 0.996898 1.525070 0.22E-08 0.29E-08 + 4.800000 1.021641 1.101030 0.30E-08 0.25E-08 + 4.900000 1.045589 1.730922 0.37E-08 0.21E-08 + 5.000000 1.068565 1.056480 0.44E-08 0.16E-08 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 1001, nstf = 100100 - u error = 0.757E-08, v error = 0.324E-08, total error = 0.582E-08 - Total RHS evals: Fs = 5006, Ff = 301303 + u error = 0.757E-08, v error = 0.324E-08, total error = 0.582E-08 + Total RHS evals: Fs = 5006, Ff = 300351 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_7_0.001.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_7_0.001.out index 003c14af6c..9b949d1af8 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_7_0.001.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_7_0.001.out @@ -9,62 +9,62 @@ reltol: 0.1000E-08 abstol: 0.1000E-10 t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223725 1.077464 0.40E-09 0.57E-10 - 0.200000 1.220669 1.551800 0.41E-09 0.11E-09 - 0.300000 1.215594 1.467737 0.39E-09 0.16E-09 - 0.400000 1.208524 1.154583 0.39E-09 0.20E-09 - 0.500000 1.199496 1.721908 0.38E-09 0.24E-09 - 0.600000 1.188557 1.023517 0.38E-09 0.27E-09 - 0.700000 1.175764 1.622751 0.35E-09 0.30E-09 - 0.800000 1.161186 1.374632 0.34E-09 0.32E-09 - 0.900000 1.144904 1.245763 0.32E-09 0.34E-09 - 1.000000 1.127010 1.691839 0.30E-09 0.36E-09 - 1.100000 1.107609 1.000489 0.28E-09 0.37E-09 - 1.200000 1.086821 1.677552 0.25E-09 0.37E-09 - 1.300000 1.064777 1.277775 0.23E-09 0.37E-09 - 1.400000 1.041625 1.342455 0.20E-09 0.36E-09 - 1.500000 1.017531 1.642940 0.16E-09 0.35E-09 - 1.600000 0.992673 1.012112 0.12E-09 0.34E-09 - 1.700000 0.967253 1.714058 0.78E-10 0.32E-09 - 1.800000 0.941488 1.183867 0.35E-10 0.30E-09 - 1.900000 0.915617 1.437465 0.17E-10 0.27E-09 - 2.000000 0.889903 1.577082 0.70E-10 0.23E-09 - 2.100000 0.864625 1.056467 0.13E-09 0.20E-09 - 2.200000 0.840089 1.730920 0.20E-09 0.15E-09 - 2.300000 0.816616 1.101047 0.26E-09 0.10E-09 - 2.400000 0.794546 1.525051 0.33E-09 0.45E-10 - 2.500000 0.774227 1.496993 0.40E-09 0.20E-10 - 2.600000 0.756013 1.126857 0.47E-09 0.82E-10 - 2.700000 0.740246 1.727536 0.54E-09 0.15E-09 - 2.800000 0.727247 1.038393 0.59E-09 0.22E-09 - 2.900000 0.717301 1.600759 0.75E-09 0.30E-09 - 3.000000 0.710636 1.406380 0.67E-09 0.37E-09 - 3.100000 0.707412 1.214353 0.69E-09 0.43E-09 - 3.200000 0.707709 1.704026 0.70E-09 0.50E-09 - 3.300000 0.711520 1.004391 0.68E-09 0.55E-09 - 3.400000 0.718750 1.661225 0.65E-09 0.60E-09 - 3.500000 0.729227 1.310102 0.60E-09 0.63E-09 - 3.600000 0.742712 1.310080 0.55E-09 0.65E-09 - 3.700000 0.758914 1.661237 0.50E-09 0.68E-09 - 3.800000 0.777506 1.004387 0.42E-09 0.67E-09 - 3.900000 0.798144 1.704019 0.35E-09 0.67E-09 - 4.000000 0.820474 1.214374 0.29E-09 0.65E-09 - 4.100000 0.844149 1.406358 0.26E-09 0.62E-09 - 4.200000 0.868832 1.600774 0.15E-09 0.58E-09 - 4.300000 0.894204 1.038382 0.92E-10 0.56E-09 - 4.400000 0.919964 1.727533 0.36E-10 0.49E-09 - 4.500000 0.945834 1.126875 0.14E-10 0.47E-09 - 4.600000 0.971557 1.496974 0.63E-10 0.40E-09 - 4.700000 0.996898 1.525070 0.10E-09 0.35E-09 - 4.800000 1.021641 1.101030 0.15E-09 0.31E-09 - 4.900000 1.045589 1.730922 0.19E-09 0.23E-09 - 5.000000 1.068565 1.056480 0.39E-10 0.21E-09 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223725 1.077464 0.40E-09 0.57E-10 + 0.200000 1.220669 1.551800 0.41E-09 0.11E-09 + 0.300000 1.215594 1.467737 0.39E-09 0.16E-09 + 0.400000 1.208524 1.154583 0.39E-09 0.20E-09 + 0.500000 1.199496 1.721908 0.38E-09 0.24E-09 + 0.600000 1.188557 1.023517 0.38E-09 0.27E-09 + 0.700000 1.175764 1.622751 0.35E-09 0.30E-09 + 0.800000 1.161186 1.374632 0.34E-09 0.32E-09 + 0.900000 1.144904 1.245763 0.32E-09 0.34E-09 + 1.000000 1.127010 1.691839 0.30E-09 0.36E-09 + 1.100000 1.107609 1.000489 0.28E-09 0.37E-09 + 1.200000 1.086821 1.677552 0.25E-09 0.37E-09 + 1.300000 1.064777 1.277775 0.23E-09 0.37E-09 + 1.400000 1.041625 1.342455 0.20E-09 0.36E-09 + 1.500000 1.017531 1.642940 0.16E-09 0.35E-09 + 1.600000 0.992673 1.012112 0.12E-09 0.34E-09 + 1.700000 0.967253 1.714058 0.78E-10 0.32E-09 + 1.800000 0.941488 1.183867 0.35E-10 0.30E-09 + 1.900000 0.915617 1.437465 0.17E-10 0.27E-09 + 2.000000 0.889903 1.577082 0.70E-10 0.23E-09 + 2.100000 0.864625 1.056467 0.13E-09 0.20E-09 + 2.200000 0.840089 1.730920 0.20E-09 0.15E-09 + 2.300000 0.816616 1.101047 0.26E-09 0.10E-09 + 2.400000 0.794546 1.525051 0.33E-09 0.45E-10 + 2.500000 0.774227 1.496993 0.40E-09 0.20E-10 + 2.600000 0.756013 1.126857 0.47E-09 0.82E-10 + 2.700000 0.740246 1.727536 0.54E-09 0.15E-09 + 2.800000 0.727247 1.038393 0.59E-09 0.22E-09 + 2.900000 0.717301 1.600759 0.75E-09 0.30E-09 + 3.000000 0.710636 1.406380 0.67E-09 0.37E-09 + 3.100000 0.707412 1.214353 0.69E-09 0.43E-09 + 3.200000 0.707709 1.704026 0.70E-09 0.50E-09 + 3.300000 0.711520 1.004391 0.68E-09 0.55E-09 + 3.400000 0.718750 1.661225 0.65E-09 0.60E-09 + 3.500000 0.729227 1.310102 0.60E-09 0.63E-09 + 3.600000 0.742712 1.310080 0.55E-09 0.65E-09 + 3.700000 0.758914 1.661237 0.50E-09 0.68E-09 + 3.800000 0.777506 1.004387 0.42E-09 0.67E-09 + 3.900000 0.798144 1.704019 0.35E-09 0.67E-09 + 4.000000 0.820474 1.214374 0.29E-09 0.65E-09 + 4.100000 0.844149 1.406358 0.26E-09 0.62E-09 + 4.200000 0.868832 1.600774 0.15E-09 0.58E-09 + 4.300000 0.894204 1.038382 0.92E-10 0.56E-09 + 4.400000 0.919964 1.727533 0.36E-10 0.49E-09 + 4.500000 0.945834 1.126875 0.14E-10 0.47E-09 + 4.600000 0.971557 1.496974 0.63E-10 0.40E-09 + 4.700000 0.996898 1.525070 0.10E-09 0.35E-09 + 4.800000 1.021641 1.101030 0.15E-09 0.31E-09 + 4.900000 1.045589 1.730922 0.19E-09 0.23E-09 + 5.000000 1.068565 1.056480 0.39E-10 0.21E-09 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 0.380E-09, v error = 0.394E-09, total error = 0.387E-09 - Total RHS evals: Fs = 45313, Ff = 1550001 + u error = 0.380E-09, v error = 0.394E-09, total error = 0.387E-09 + Total RHS evals: Fs = 45313, Ff = 1545050 Slow Newton iters = 30312 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_8_0.001.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_8_0.001.out index f008ab179f..a5990c9cf3 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_8_0.001.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_8_0.001.out @@ -9,62 +9,62 @@ reltol: 0.1000E-08 abstol: 0.1000E-10 t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223725 1.077464 0.28E-09 0.26E-10 - 0.200000 1.220669 1.551800 0.18E-09 0.48E-10 - 0.300000 1.215594 1.467737 0.19E-09 0.69E-10 - 0.400000 1.208524 1.154583 0.18E-09 0.88E-10 - 0.500000 1.199496 1.721908 0.18E-09 0.10E-09 - 0.600000 1.188557 1.023517 0.17E-09 0.12E-09 - 0.700000 1.175764 1.622751 0.17E-09 0.13E-09 - 0.800000 1.161186 1.374632 0.16E-09 0.14E-09 - 0.900000 1.144904 1.245763 0.15E-09 0.15E-09 - 1.000000 1.127010 1.691839 0.14E-09 0.15E-09 - 1.100000 1.107609 1.000489 0.13E-09 0.15E-09 - 1.200000 1.086821 1.677552 0.12E-09 0.16E-09 - 1.300000 1.064777 1.277775 0.11E-09 0.15E-09 - 1.400000 1.041625 1.342455 0.91E-10 0.15E-09 - 1.500000 1.017531 1.642940 0.70E-10 0.15E-09 - 1.600000 0.992673 1.012112 0.53E-10 0.14E-09 - 1.700000 0.967253 1.714058 0.32E-10 0.14E-09 - 1.800000 0.941488 1.183867 0.16E-10 0.12E-09 - 1.900000 0.915617 1.437465 0.11E-10 0.11E-09 - 2.000000 0.889903 1.577082 0.36E-10 0.99E-10 - 2.100000 0.864625 1.056467 0.66E-10 0.79E-10 - 2.200000 0.840089 1.730920 0.10E-09 0.64E-10 - 2.300000 0.816616 1.101047 0.13E-09 0.38E-10 - 2.400000 0.794546 1.525051 0.16E-09 0.17E-10 - 2.500000 0.774227 1.496993 0.19E-09 0.94E-11 - 2.600000 0.756013 1.126857 0.22E-09 0.40E-10 - 2.700000 0.740246 1.727536 0.26E-09 0.65E-10 - 2.800000 0.727247 1.038393 0.28E-09 0.10E-09 - 2.900000 0.717301 1.600759 0.30E-09 0.13E-09 - 3.000000 0.710636 1.406380 0.32E-09 0.16E-09 - 3.100000 0.707412 1.214353 0.33E-09 0.19E-09 - 3.200000 0.707709 1.704026 0.33E-09 0.21E-09 - 3.300000 0.711520 1.004391 0.32E-09 0.24E-09 - 3.400000 0.718750 1.661225 0.30E-09 0.25E-09 - 3.500000 0.729227 1.310102 0.29E-09 0.27E-09 - 3.600000 0.742712 1.310080 0.26E-09 0.28E-09 - 3.700000 0.758914 1.661237 0.22E-09 0.28E-09 - 3.800000 0.777506 1.004387 0.19E-09 0.29E-09 - 3.900000 0.798144 1.704019 0.16E-09 0.28E-09 - 4.000000 0.820474 1.214374 0.13E-09 0.27E-09 - 4.100000 0.844149 1.406358 0.97E-10 0.27E-09 - 4.200000 0.868832 1.600774 0.66E-10 0.26E-09 - 4.300000 0.894204 1.038382 0.38E-10 0.22E-09 - 4.400000 0.919964 1.727533 0.94E-11 0.23E-09 - 4.500000 0.945834 1.126875 0.10E-10 0.18E-09 - 4.600000 0.971557 1.496974 0.33E-10 0.17E-09 - 4.700000 0.996898 1.525070 0.50E-10 0.15E-09 - 4.800000 1.021641 1.101030 0.72E-10 0.11E-09 - 4.900000 1.045589 1.730922 0.93E-10 0.11E-09 - 5.000000 1.068565 1.056480 0.11E-09 0.64E-10 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223725 1.077464 0.28E-09 0.26E-10 + 0.200000 1.220669 1.551800 0.18E-09 0.48E-10 + 0.300000 1.215594 1.467737 0.19E-09 0.69E-10 + 0.400000 1.208524 1.154583 0.18E-09 0.88E-10 + 0.500000 1.199496 1.721908 0.18E-09 0.10E-09 + 0.600000 1.188557 1.023517 0.17E-09 0.12E-09 + 0.700000 1.175764 1.622751 0.17E-09 0.13E-09 + 0.800000 1.161186 1.374632 0.16E-09 0.14E-09 + 0.900000 1.144904 1.245763 0.15E-09 0.15E-09 + 1.000000 1.127010 1.691839 0.14E-09 0.15E-09 + 1.100000 1.107609 1.000489 0.13E-09 0.15E-09 + 1.200000 1.086821 1.677552 0.12E-09 0.16E-09 + 1.300000 1.064777 1.277775 0.11E-09 0.15E-09 + 1.400000 1.041625 1.342455 0.91E-10 0.15E-09 + 1.500000 1.017531 1.642940 0.70E-10 0.15E-09 + 1.600000 0.992673 1.012112 0.53E-10 0.14E-09 + 1.700000 0.967253 1.714058 0.32E-10 0.14E-09 + 1.800000 0.941488 1.183867 0.16E-10 0.12E-09 + 1.900000 0.915617 1.437465 0.11E-10 0.11E-09 + 2.000000 0.889903 1.577082 0.36E-10 0.99E-10 + 2.100000 0.864625 1.056467 0.66E-10 0.79E-10 + 2.200000 0.840089 1.730920 0.10E-09 0.64E-10 + 2.300000 0.816616 1.101047 0.13E-09 0.38E-10 + 2.400000 0.794546 1.525051 0.16E-09 0.17E-10 + 2.500000 0.774227 1.496993 0.19E-09 0.94E-11 + 2.600000 0.756013 1.126857 0.22E-09 0.40E-10 + 2.700000 0.740246 1.727536 0.26E-09 0.65E-10 + 2.800000 0.727247 1.038393 0.28E-09 0.10E-09 + 2.900000 0.717301 1.600759 0.30E-09 0.13E-09 + 3.000000 0.710636 1.406380 0.32E-09 0.16E-09 + 3.100000 0.707412 1.214353 0.33E-09 0.19E-09 + 3.200000 0.707709 1.704026 0.33E-09 0.21E-09 + 3.300000 0.711520 1.004391 0.32E-09 0.24E-09 + 3.400000 0.718750 1.661225 0.30E-09 0.25E-09 + 3.500000 0.729227 1.310102 0.29E-09 0.27E-09 + 3.600000 0.742712 1.310080 0.26E-09 0.28E-09 + 3.700000 0.758914 1.661237 0.22E-09 0.28E-09 + 3.800000 0.777506 1.004387 0.19E-09 0.29E-09 + 3.900000 0.798144 1.704019 0.16E-09 0.28E-09 + 4.000000 0.820474 1.214374 0.13E-09 0.27E-09 + 4.100000 0.844149 1.406358 0.97E-10 0.27E-09 + 4.200000 0.868832 1.600774 0.66E-10 0.26E-09 + 4.300000 0.894204 1.038382 0.38E-10 0.22E-09 + 4.400000 0.919964 1.727533 0.94E-11 0.23E-09 + 4.500000 0.945834 1.126875 0.10E-10 0.18E-09 + 4.600000 0.971557 1.496974 0.34E-10 0.17E-09 + 4.700000 0.996898 1.525070 0.50E-10 0.15E-09 + 4.800000 1.021641 1.101030 0.72E-10 0.11E-09 + 4.900000 1.045589 1.730922 0.93E-10 0.11E-09 + 5.000000 1.068565 1.056480 0.11E-09 0.64E-10 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 0.179E-09, v error = 0.168E-09, total error = 0.174E-09 - Total RHS evals: Fse = 20001, Fsi = 50342, Ff = 1550001 + u error = 0.179E-09, v error = 0.168E-09, total error = 0.174E-09 + Total RHS evals: Fse = 20001, Fsi = 50342, Ff = 1545050 Slow Newton iters = 30341 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_9_0.001.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_9_0.001.out index 0c898eea9d..47d8192ac2 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_9_0.001.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_9_0.001.out @@ -9,62 +9,62 @@ reltol: 0.1000E-11 abstol: 0.1000E-13 t u v uerr verr ------------------------------------------------------ - 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 - 0.100000 1.223725 1.077464 0.16E-10 0.64E-12 - 0.200000 1.220669 1.551800 0.16E-10 0.68E-12 - 0.300000 1.215594 1.467737 0.15E-10 0.96E-12 - 0.400000 1.208524 1.154583 0.15E-10 0.92E-12 - 0.500000 1.199496 1.721908 0.16E-10 0.17E-11 - 0.600000 1.188557 1.023517 0.15E-10 0.34E-11 - 0.700000 1.175764 1.622751 0.14E-10 0.22E-11 - 0.800000 1.161186 1.374632 0.12E-10 0.28E-11 - 0.900000 1.144904 1.245763 0.11E-10 0.31E-11 - 1.000000 1.127010 1.691839 0.13E-10 0.22E-11 - 1.100000 1.107609 1.000489 0.11E-10 0.20E-11 - 1.200000 1.086821 1.677552 0.95E-11 0.25E-11 - 1.300000 1.064777 1.277775 0.76E-11 0.81E-13 - 1.400000 1.041625 1.342455 0.52E-11 0.62E-12 - 1.500000 1.017531 1.642940 0.60E-11 0.26E-11 - 1.600000 0.992673 1.012112 0.38E-11 0.14E-11 - 1.700000 0.967253 1.714058 0.33E-11 0.30E-11 - 1.800000 0.941488 1.183867 0.23E-12 0.36E-12 - 1.900000 0.915617 1.437465 0.33E-11 0.12E-11 - 2.000000 0.889903 1.577082 0.66E-11 0.19E-11 - 2.100000 0.864625 1.056467 0.79E-11 0.16E-11 - 2.200000 0.840089 1.730920 0.67E-11 0.25E-11 - 2.300000 0.816616 1.101047 0.12E-10 0.18E-11 - 2.400000 0.794546 1.525051 0.15E-10 0.57E-12 - 2.500000 0.774227 1.496993 0.18E-10 0.67E-13 - 2.600000 0.756013 1.126857 0.22E-10 0.27E-11 - 2.700000 0.740246 1.727536 0.20E-10 0.73E-12 - 2.800000 0.727247 1.038393 0.25E-10 0.40E-11 - 2.900000 0.717301 1.600759 0.27E-10 0.93E-12 - 3.000000 0.710636 1.406380 0.28E-10 0.26E-11 - 3.100000 0.707412 1.214353 0.29E-10 0.42E-11 - 3.200000 0.707709 1.704026 0.28E-10 0.15E-11 - 3.300000 0.711520 1.004391 0.28E-10 0.63E-11 - 3.400000 0.718750 1.661225 0.26E-10 0.24E-11 - 3.500000 0.729227 1.310102 0.24E-10 0.48E-11 - 3.600000 0.742712 1.310080 0.21E-10 0.50E-11 - 3.700000 0.758914 1.661237 0.20E-10 0.28E-11 - 3.800000 0.777506 1.004387 0.16E-10 0.70E-11 - 3.900000 0.798144 1.704019 0.14E-10 0.25E-11 - 4.000000 0.820474 1.214374 0.10E-10 0.54E-11 - 4.100000 0.844149 1.406358 0.65E-11 0.83E-11 - 4.200000 0.868832 1.600774 0.36E-11 0.11E-10 - 4.300000 0.894204 1.038382 0.16E-11 0.25E-12 - 4.400000 0.919964 1.727533 0.23E-11 0.12E-10 - 4.500000 0.945834 1.126875 0.23E-11 0.75E-12 - 4.600000 0.971557 1.496974 0.52E-11 0.69E-11 - 4.700000 0.996898 1.525070 0.85E-11 0.69E-11 - 4.800000 1.021641 1.101030 0.85E-11 0.16E-11 - 4.900000 1.045589 1.730922 0.61E-11 0.95E-11 - 5.000000 1.068565 1.056480 0.10E-10 0.34E-11 + 0.000000 1.224745 1.732051 0.00E+00 0.00E+00 + 0.100000 1.223725 1.077464 0.16E-10 0.64E-12 + 0.200000 1.220669 1.551800 0.16E-10 0.68E-12 + 0.300000 1.215594 1.467737 0.15E-10 0.96E-12 + 0.400000 1.208524 1.154583 0.15E-10 0.92E-12 + 0.500000 1.199496 1.721908 0.16E-10 0.17E-11 + 0.600000 1.188557 1.023517 0.15E-10 0.34E-11 + 0.700000 1.175764 1.622751 0.14E-10 0.22E-11 + 0.800000 1.161186 1.374632 0.12E-10 0.28E-11 + 0.900000 1.144904 1.245763 0.11E-10 0.31E-11 + 1.000000 1.127010 1.691839 0.13E-10 0.22E-11 + 1.100000 1.107609 1.000489 0.11E-10 0.21E-11 + 1.200000 1.086821 1.677552 0.95E-11 0.19E-11 + 1.300000 1.064777 1.277775 0.76E-11 0.19E-11 + 1.400000 1.041625 1.342455 0.52E-11 0.26E-11 + 1.500000 1.017531 1.642940 0.60E-11 0.58E-11 + 1.600000 0.992673 1.012112 0.38E-11 0.34E-11 + 1.700000 0.967253 1.714058 0.33E-11 0.27E-11 + 1.800000 0.941488 1.183867 0.24E-12 0.38E-11 + 1.900000 0.915617 1.437465 0.33E-11 0.58E-11 + 2.000000 0.889903 1.577082 0.66E-11 0.89E-11 + 2.100000 0.864625 1.056467 0.79E-11 0.74E-11 + 2.200000 0.840089 1.730920 0.67E-11 0.45E-11 + 2.300000 0.816616 1.101047 0.12E-10 0.30E-11 + 2.400000 0.794546 1.525051 0.15E-10 0.89E-11 + 2.500000 0.774227 1.496993 0.18E-10 0.11E-10 + 2.600000 0.756013 1.126857 0.22E-10 0.14E-10 + 2.700000 0.740246 1.727536 0.20E-10 0.69E-11 + 2.800000 0.727247 1.038393 0.25E-10 0.78E-12 + 2.900000 0.717301 1.600759 0.27E-10 0.11E-10 + 3.000000 0.710636 1.406380 0.28E-10 0.11E-10 + 3.100000 0.707412 1.214353 0.29E-10 0.20E-10 + 3.200000 0.707709 1.704026 0.28E-10 0.97E-11 + 3.300000 0.711520 1.004391 0.28E-10 0.71E-11 + 3.400000 0.718750 1.661225 0.26E-10 0.11E-10 + 3.500000 0.729227 1.310102 0.24E-10 0.11E-10 + 3.600000 0.742712 1.310080 0.21E-10 0.26E-10 + 3.700000 0.758914 1.661237 0.20E-10 0.14E-10 + 3.800000 0.777506 1.004387 0.16E-10 0.14E-10 + 3.900000 0.798144 1.704019 0.14E-10 0.60E-11 + 4.000000 0.820474 1.214374 0.10E-10 0.11E-10 + 4.100000 0.844149 1.406358 0.65E-11 0.30E-10 + 4.200000 0.868832 1.600774 0.36E-11 0.50E-11 + 4.300000 0.894204 1.038382 0.16E-11 0.10E-10 + 4.400000 0.919964 1.727533 0.23E-11 0.11E-10 + 4.500000 0.945834 1.126875 0.23E-11 0.55E-11 + 4.600000 0.971557 1.496974 0.52E-11 0.15E-10 + 4.700000 0.996898 1.525070 0.85E-11 0.77E-12 + 4.800000 1.021641 1.101030 0.85E-11 0.19E-11 + 4.900000 1.045589 1.730922 0.61E-11 0.88E-11 + 5.000000 1.068565 1.056480 0.10E-10 0.34E-11 ------------------------------------------------------ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 - u error = 0.153E-10, v error = 0.419E-11, total error = 0.112E-10 - Total RHS evals: Fse = 30001, Fsi = 82555, Ff = 2070001 + u error = 0.153E-10, v error = 0.950E-11, total error = 0.127E-10 + Total RHS evals: Fse = 30001, Fsi = 82555, Ff = 2065050 Slow Newton iters = 52554 Slow Newton conv fails = 0 Slow Jacobian evals = 250 From 28fb47ecc637dddfabb1a7f4b39168a0a3813fd8 Mon Sep 17 00:00:00 2001 From: "Daniel R. Reynolds" Date: Tue, 22 Aug 2023 11:53:06 -0500 Subject: [PATCH 49/92] Fixed dangling reference --- doc/arkode/guide/source/Mathematics.rst | 1 + .../guide/source/Usage/SPRKStep_c_interface/index.rst | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/arkode/guide/source/Mathematics.rst b/doc/arkode/guide/source/Mathematics.rst index 7b95e526ec..428317b9f7 100644 --- a/doc/arkode/guide/source/Mathematics.rst +++ b/doc/arkode/guide/source/Mathematics.rst @@ -480,6 +480,7 @@ and the component partitioned IVP is given by .. math:: \dot{p} &= f_1(t, q), \qquad p(t_0) = p_0 \\ \dot{q} &= f_2(t, p), \qquad q(t_0) = q_0. + :label: ARKODE_IVP_SPRK The right-hand side functions :math:`f_1(t,p)` and :math:`f_2(t,q)` typically arise from the **separable** Hamiltonian system diff --git a/doc/arkode/guide/source/Usage/SPRKStep_c_interface/index.rst b/doc/arkode/guide/source/Usage/SPRKStep_c_interface/index.rst index dc35fb2030..ed65b70324 100644 --- a/doc/arkode/guide/source/Usage/SPRKStep_c_interface/index.rst +++ b/doc/arkode/guide/source/Usage/SPRKStep_c_interface/index.rst @@ -17,19 +17,19 @@ Using the SPRKStep time-stepping module ========================================== This chapter is concerned with the use of the SPRKStep time-stepping module for -the solution of Hamiltonian initial value problems (IVPs) of the form -:eq:`ARKODE_IVP_Hamiltonian` in a C or C++ language setting. The following sections +the solution of initial value problems (IVPs) of the form +:eq:`ARKODE_IVP_SPRK` in a C or C++ language setting. The following sections discuss the header files and the layout of the user's main program, and provide descriptions of the SPRKStep user-callable functions and user-supplied functions. -The example programs located in the source code ``examples/arkode`` folder, may +The example programs located in the source code ``examples/arkode`` folder, may be helpful as templates for new codes. In particular, * ``examples/arkode/C_serial/ark_harmonic_symplectic.c`` * ``examples/arkode/C_serial/ark_damped_harmonic_symplectic.c``, and * ``examples/arkode/C_serial/ark_kepler.c`` -demonstrate ``SPRKStep`` usage. +demonstrate ``SPRKStep`` usage. SPRKStep uses the input and output constants from the shared ARKODE infrastructure. These are defined as needed in this chapter, but for convenience the full list is From b074839002574744ae831d83c6a9a3fe2f3df044 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 22 Aug 2023 10:55:26 -0700 Subject: [PATCH 50/92] add README noting documentation build requirements --- doc/README.md | 10 ++++++++++ .../source/style_guide/Documentation.rst | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 doc/README.md diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000000..3fe743f033 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,10 @@ +# SUNDIALS Documentation + +The SUNDIALS documentation is written using reStructuredText and +[Sphinx](https://www.sphinx-doc.org/). + +To build the documentation with Sphinx you will need Python 3.9+. Sphinx and the +necessary extensions can be installed using the requirements file i.e., +`pip install -r requirements.txt`. Additionally, building the developer +documentation requires [Graphviz](https://graphviz.org/) for generating +flowcharts. diff --git a/doc/sundials_developers/source/style_guide/Documentation.rst b/doc/sundials_developers/source/style_guide/Documentation.rst index 9aae3bfdc7..2041405fb6 100644 --- a/doc/sundials_developers/source/style_guide/Documentation.rst +++ b/doc/sundials_developers/source/style_guide/Documentation.rst @@ -18,7 +18,7 @@ Documentation Style ******************* -Style guide for RestructuredText with Sphinx. For the most part, we attempt +Style guide for reStructuredText with Sphinx. For the most part, we attempt to follow the Python developer's guide commentary on documentation (where relevant): https://devguide.python.org/documenting/#style-guide. From 90545de5824211e06aae179025941c4ff80294ec Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 22 Aug 2023 12:15:58 -0700 Subject: [PATCH 51/92] fix output files, diff CXX_parallel test outputs --- test/unit_tests/arkode/CXX_parallel/CMakeLists.txt | 8 +++++++- .../arkode/CXX_parallel/ark_test_heat2D_mri_0.out | 14 +------------- .../arkode/CXX_parallel/ark_test_heat2D_mri_1.out | 14 +------------- 3 files changed, 9 insertions(+), 27 deletions(-) diff --git a/test/unit_tests/arkode/CXX_parallel/CMakeLists.txt b/test/unit_tests/arkode/CXX_parallel/CMakeLists.txt index bf238501f6..af68c24609 100644 --- a/test/unit_tests/arkode/CXX_parallel/CMakeLists.txt +++ b/test/unit_tests/arkode/CXX_parallel/CMakeLists.txt @@ -78,11 +78,17 @@ foreach(test_tuple ${ARKODE_unit_tests}) string(REGEX REPLACE " " "_" test_name ${test}_${test_args}) endif() + if(SUNDIALS_PRECISION MATCHES "DOUBLE") + set(diff_output "") + else() + set(diff_output "NODIFF") + endif() + # add test to regression tests sundials_add_test(${test_name} ${test} TEST_ARGS ${test_args} MPI_NPROCS ${number_of_tasks} - NODIFF) + ${diff_output}) endforeach() message(STATUS "Added ARKODE CXX parallel unit tests") diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out index 04fbbc67ab..4c6f56c4d7 100644 --- a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out @@ -37,16 +37,4 @@ MRIStep Solver Statistics: Total number of nonlinear solver convergence failures = 0 Comparing Solver Statistics: - RHS evals error: 2769 vs 2769 -Failed 1 tests --------------------------------------------------------------------------- -Primary job terminated normally, but 1 process returned -a non-zero exit code. Per user-direction, the job has been aborted. --------------------------------------------------------------------------- --------------------------------------------------------------------------- -mpirun detected that one or more processes exited with non-zero status, thus causing -the job to be terminated. The first process to do so was: - - Process name: [[37302,1],1] - Exit code: 1 --------------------------------------------------------------------------- +All tests pass! diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out index 84c8f98dce..518b8e6ce0 100644 --- a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out @@ -37,16 +37,4 @@ MRIStep Solver Statistics: Total number of nonlinear solver convergence failures = 0 Comparing Solver Statistics: - RHS evals error: 2001 vs 2001 -Failed 1 tests --------------------------------------------------------------------------- -Primary job terminated normally, but 1 process returned -a non-zero exit code. Per user-direction, the job has been aborted. --------------------------------------------------------------------------- --------------------------------------------------------------------------- -mpirun detected that one or more processes exited with non-zero status, thus causing -the job to be terminated. The first process to do so was: - - Process name: [[37327,1],0] - Exit code: 1 --------------------------------------------------------------------------- +All tests pass! From 5003f791b23aff8e80da49a8204ff6651fe17c89 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 22 Aug 2023 12:17:02 -0700 Subject: [PATCH 52/92] remove old comment --- test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp index fecde23e24..00ff65c14d 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -16,8 +16,6 @@ * 1) y' = lambda_e * y + lambda_i * y * 2) M y' = M (lambda_e * y + lambda_i * y) * 3) M(t) y' = M(t) (lambda_e * y + lambda_i * y) - * - * >>>> WHY do FE and BE fail currently? <<<<<< * ---------------------------------------------------------------------------*/ // Header files From f7576326e90964a953355d24008c5bb2828c60d6 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 22 Aug 2023 14:08:21 -0700 Subject: [PATCH 53/92] add unit_test subdirectories to tarscript --- scripts/arkode | 23 +---------------------- scripts/cvode | 20 +------------------- scripts/cvodes | 20 +------------------- scripts/ida | 17 +---------------- scripts/idas | 16 +--------------- scripts/kinsol | 7 +------ scripts/shared | 13 +------------ 7 files changed, 7 insertions(+), 109 deletions(-) diff --git a/scripts/arkode b/scripts/arkode index bb216f7248..6df8c34b75 100755 --- a/scripts/arkode +++ b/scripts/arkode @@ -387,25 +387,4 @@ $tar $tarfile $distrobase/examples/arkode/F2003_serial/test_ark_butcher_f2003.f9 echo " --- Add arkode unit tests to $tarfile" -$tar $tarfile $distrobase/test/unit_tests/arkode/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/arkode/C_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/arkode/C_serial/ark_test_arkstepsetforcing.c -$tar $tarfile $distrobase/test/unit_tests/arkode/C_serial/ark_test_getuserdata.c -$tar $tarfile $distrobase/test/unit_tests/arkode/C_serial/ark_test_interp.c -$tar $tarfile $distrobase/test/unit_tests/arkode/C_serial/ark_test_reset.c -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_0.out -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri_1.out -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_butcher.cpp -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_butcher.out -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.out -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_getjac.cpp -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_getjac.out -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_getjac_mri.cpp -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_serial/ark_test_getjac_mri.out -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_parallel/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp -$tar $tarfile $distrobase/test/unit_tests/arkode/F2003_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/arkode/F2003_serial/ark_test_table_f2003.f90 +$tar $tarfile $distrobase/test/unit_tests/arkode diff --git a/scripts/cvode b/scripts/cvode index af97c77f74..2f83eb3ebf 100755 --- a/scripts/cvode +++ b/scripts/cvode @@ -272,22 +272,4 @@ $tar $tarfile $distrobase/examples/cvode/CXX_sycl/cvAdvDiff_kry_sycl.out echo " --- Add cvode unit tests to $tarfile" -$tar $tarfile $distrobase/test/unit_tests/cvode/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/cvode/C_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/cvode/C_serial/cv_test_getuserdata.c -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_getjac.cpp -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_getjac.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr.cpp -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr.hpp -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--dgmax_jbad_1.0.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--dgmax_lsetup_0.0.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_cf_0.5.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_max_ef_0.1_--small_nef_1.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_max_fs_2.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_ef_0.5.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_es_2_--small_nst_5.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_fx_1.0_--eta_max_fx_2.0.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_fx_1.0_--eta_min_0.5.out -$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_gs_2.out +$tar $tarfile $distrobase/test/unit_tests/cvode diff --git a/scripts/cvodes b/scripts/cvodes index ae262ac1d0..cab37658ee 100755 --- a/scripts/cvodes +++ b/scripts/cvodes @@ -190,22 +190,4 @@ $tar $tarfile $distrobase/examples/cvodes/F2003_serial/cvsAdvDiff_FSA_non_f2003_ echo " --- Add cvodes unit tests to $tarfile" -$tar $tarfile $distrobase/test/unit_tests/cvodes/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/cvodes/C_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/cvodes/C_serial/cvs_test_getuserdata.c -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_getjac.cpp -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_getjac.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr.cpp -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr.hpp -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--dgmax_jbad_1.0.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--dgmax_lsetup_0.0.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--eta_cf_0.5.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--eta_max_ef_0.1_--small_nef_1.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--eta_max_fs_2.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--eta_min_ef_0.5.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--eta_min_es_2_--small_nst_5.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--eta_min_fx_1.0_--eta_max_fx_2.0.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--eta_min_fx_1.0_--eta_min_0.5.out -$tar $tarfile $distrobase/test/unit_tests/cvodes/CXX_serial/cvs_test_kpr_--eta_min_gs_2.out +$tar $tarfile $distrobase/test/unit_tests/cvodes diff --git a/scripts/ida b/scripts/ida index e616bf7a19..cc320c286b 100755 --- a/scripts/ida +++ b/scripts/ida @@ -162,19 +162,4 @@ $tar $tarfile $distrobase/examples/ida/F2003_serial/idaRoberts_dns_f2003.out echo " --- Add ida unit tests to $tarfile" -$tar $tarfile $distrobase/test/unit_tests/ida/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/ida/C_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/ida/C_serial/ida_test_getuserdata.c -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_getjac.cpp -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_getjac.out -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr.cpp -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr.hpp -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr.out -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr_--dcj_0.9.out -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr_--eta_cf_0.5.out -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr_--eta_max_fs_2.out -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr_--eta_min_2.out -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr_--eta_min_ef_0.5.out -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr_--eta_min_fx_1.0_--eta_max_fx_2.0.out -$tar $tarfile $distrobase/test/unit_tests/ida/CXX_serial/ida_test_kpr_--eta_min_fx_1.0_--eta_min_0.5.out +$tar $tarfile $distrobase/test/unit_tests/ida diff --git a/scripts/idas b/scripts/idas index a373b1eeda..7604bb5983 100755 --- a/scripts/idas +++ b/scripts/idas @@ -151,18 +151,4 @@ $tar $tarfile $distrobase/examples/idas/F2003_serial/idasHeat2D_kry_f2003.out echo " --- Add idas unit tests to $tarfile" -$tar $tarfile $distrobase/test/unit_tests/idas/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/idas/C_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/idas/C_serial/idas_test_getuserdata.c -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_getjac.cpp -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_getjac.out -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_kpr.cpp -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_kpr.hpp -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_kpr.out -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_kpr_--dcj_0.9.out -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_kpr_--eta_cf_0.5.out -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_kpr_--eta_min_2.out -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_kpr_--eta_min_ef_0.5.out -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_kpr_--eta_min_fx_1.0_--eta_max_fx_2.0.out -$tar $tarfile $distrobase/test/unit_tests/idas/CXX_serial/idas_test_kpr_--eta_min_fx_1.0_--eta_min_0.5.out +$tar $tarfile $distrobase/test/unit_tests/idas diff --git a/scripts/kinsol b/scripts/kinsol index cc081f8c2d..c7bf7dc752 100755 --- a/scripts/kinsol +++ b/scripts/kinsol @@ -145,9 +145,4 @@ $tar $tarfile $distrobase/examples/kinsol/F2003_serial/kinLaplace_picard_kry_f20 echo " --- Add kinsol unit tests to $tarfile" -$tar $tarfile $distrobase/test/unit_tests/kinsol/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/kinsol/C_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/kinsol/C_serial/kin_test_getuserdata.c -$tar $tarfile $distrobase/test/unit_tests/kinsol/CXX_serial/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/kinsol/CXX_serial/kin_test_getjac.cpp -$tar $tarfile $distrobase/test/unit_tests/kinsol/CXX_serial/kin_test_getjac.out +$tar $tarfile $distrobase/test/unit_tests/kinsol diff --git a/scripts/shared b/scripts/shared index 2a9cef1731..9e42969552 100755 --- a/scripts/shared +++ b/scripts/shared @@ -835,15 +835,4 @@ echo " --- Add unit tests files to $tarfile" $tar $tarfile $distrobase/test/unit_tests/CMakeLists.txt $tar $tarfile $distrobase/test/unit_tests/reductions -$tar $tarfile $distrobase/test/unit_tests/reductions/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/reductions/test_reduction_operators.cpp -$tar $tarfile $distrobase/test/unit_tests/sunmemory/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/sunmemory/sys -$tar $tarfile $distrobase/test/unit_tests/sunmemory/sys/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/sunmemory/sys/test_sunmemory_sys.cpp -$tar $tarfile $distrobase/test/unit_tests/sunmemory/cuda/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/sunmemory/cuda/test_sunmemory_cuda.cu -$tar $tarfile $distrobase/test/unit_tests/sunmemory/hip/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/sunmemory/hip/test_sunmemory_hip.cpp -$tar $tarfile $distrobase/test/unit_tests/sunmemory/sycl/CMakeLists.txt -$tar $tarfile $distrobase/test/unit_tests/sunmemory/sycl/test_sunmemory_sycl.cpp +$tar $tarfile $distrobase/test/unit_tests/sunmemory From 47d986ef3f45435dd7d609af7a122fe370fb4372 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Tue, 22 Aug 2023 15:59:58 -0700 Subject: [PATCH 54/92] update CMake for CXX_parallel unit test --- .../arkode/CXX_parallel/CMakeLists.txt | 55 ++++++++----------- 1 file changed, 22 insertions(+), 33 deletions(-) diff --git a/test/unit_tests/arkode/CXX_parallel/CMakeLists.txt b/test/unit_tests/arkode/CXX_parallel/CMakeLists.txt index af68c24609..d86cd29f31 100644 --- a/test/unit_tests/arkode/CXX_parallel/CMakeLists.txt +++ b/test/unit_tests/arkode/CXX_parallel/CMakeLists.txt @@ -16,66 +16,52 @@ # List of test tuples of the form "name\;tasks\;args" if (NOT SUNDIALS_PRECISION MATCHES "SINGLE") - set(ARKODE_unit_tests - "ark_test_heat2D_mri\;2\;0" - "ark_test_heat2D_mri\;4\;1" + set(unit_tests + "ark_test_heat2D_mri.cpp\;2\;0" + "ark_test_heat2D_mri.cpp\;4\;1" ) endif() -if(MPI_CXX_COMPILER) - # use MPI wrapper as the compiler - set(CMAKE_CXX_COMPILER ${MPI_CXX_COMPILER}) - - # disable C++ extensions (for known wrappers) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX -DLAM_BUILDING") -else() - # add MPI_INCLUDE_PATH to include directories - include_directories(${MPI_INCLUDE_PATH}) -endif() - -set(ARKODE_LIB sundials_arkode) -set(NVECP_LIB sundials_nvecparallel) - -# Set-up linker flags and link libraries -set(SUNDIALS_LIBS ${ARKODE_LIB} ${NVECP_LIB} ${EXE_EXTRA_LINK_LIBS}) - # Add the build and install targets for each test -foreach(test_tuple ${ARKODE_unit_tests}) +foreach(test_tuple ${unit_tests}) # parse the test tuple list(GET test_tuple 0 test) list(GET test_tuple 1 number_of_tasks) list(GET test_tuple 2 test_args) + # Extract the file name without extension + get_filename_component(test_target ${test} NAME_WE) + # check if this test has already been added, only need to add # test source files once for testing with different inputs - if(NOT TARGET ${test}) + if(NOT TARGET ${test_target}) # test source files - add_executable(${test} ${test}.cpp) + add_executable(${test_target} ${test}) - set_target_properties(${test} PROPERTIES FOLDER "unit_tests") + set_target_properties(${test_target} PROPERTIES FOLDER "unit_tests") # include location of public and private header files - target_include_directories(${test} PRIVATE + target_include_directories(${test_target} PRIVATE $ ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src) # libraries to link against - target_link_libraries(${test} ${SUNDIALS_LIBS}) - - if(NOT MPI_CXX_COMPILER) - target_link_libraries(${test} ${MPI_LIBRARY} ${MPI_EXTRA_LIBRARIES}) - endif() + target_link_libraries(${test_target} + MPI::MPI_CXX + sundials_arkode + sundials_nvecparallel + ${EXE_EXTRA_LINK_LIBS}) endif() # check if test args are provided and set the test name if("${test_args}" STREQUAL "") - set(test_name ${test}) + set(test_name ${test_target}) else() - string(REGEX REPLACE " " "_" test_name ${test}_${test_args}) + string(REGEX REPLACE " " "_" test_name "${test_target}_${test_args}") endif() if(SUNDIALS_PRECISION MATCHES "DOUBLE") @@ -85,10 +71,13 @@ foreach(test_tuple ${ARKODE_unit_tests}) endif() # add test to regression tests - sundials_add_test(${test_name} ${test} + sundials_add_test(${test_name} ${test_target} TEST_ARGS ${test_args} + ANSWER_DIR ${CMAKE_CURRENT_SOURCE_DIR} + ANSWER_FILE ${test_name}.out MPI_NPROCS ${number_of_tasks} ${diff_output}) + endforeach() message(STATUS "Added ARKODE CXX parallel unit tests") From 7704f03adf569b2f8f236ff324a89747555bc35d Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Wed, 23 Aug 2023 18:55:35 -0700 Subject: [PATCH 55/92] Update output files post merge --- ...k_diffusion_reaction_p_--np_2_2_--imex.out | 4 ++-- ...sion_reaction_p_--np_2_2_--mri-arkstep.out | 4 ++-- ...reaction_p_--np_2_2_--mri-cvode-global.out | 2 +- ..._reaction_p_--np_2_2_--mri-cvode-local.out | 2 +- .../ark_heat2D_hypre_pfmg_imex_--np_2_2.out | 20 ++++++++-------- .../ark_heat2D_hypre_pfmg_mri_--np_2_2.out | 24 +++++++++---------- .../ark_advection_diffusion_reaction.out | 4 ++-- .../ark_brusselator1D_imexmri_0_0.001.out | 2 +- .../ark_brusselator1D_imexmri_2_0.001.out | 2 +- .../ark_brusselator1D_imexmri_3_0.001.out | 2 +- .../ark_brusselator1D_imexmri_4_0.001.out | 2 +- .../ark_brusselator1D_imexmri_5_0.001.out | 2 +- .../ark_brusselator1D_imexmri_6_0.001.out | 2 +- .../arkode/C_serial/ark_brusselator_mri.out | 2 +- ...kepler_--stepper_ERK_--step-mode_adapt.out | 2 +- ...r_ERK_--step-mode_fixed_--count-orbits.out | 2 +- ...LER_1_1_--tf_50_--check-order_--nout_1.out | 2 +- ...ROG_2_2_--tf_50_--check-order_--nout_1.out | 2 +- ...LAN_2_2_--tf_50_--check-order_--nout_1.out | 2 +- ...LAN_3_3_--tf_50_--check-order_--nout_1.out | 2 +- ...LAN_4_4_--tf_50_--check-order_--nout_1.out | 2 +- ...LAN_5_6_--tf_50_--check-order_--nout_1.out | 2 +- ...ROG_2_2_--tf_50_--check-order_--nout_1.out | 2 +- ...UTH_3_3_--tf_50_--check-order_--nout_1.out | 2 +- ...IDA_6_8_--tf_50_--check-order_--nout_1.out | 2 +- examples/arkode/C_serial/ark_kpr_mri.out | 2 +- .../arkode/C_serial/ark_kpr_mri_0_0.002.out | 2 +- .../arkode/C_serial/ark_kpr_mri_1_0.002.out | 2 +- .../arkode/C_serial/ark_kpr_mri_3_0.01.out | 2 +- .../arkode/C_serial/ark_kpr_mri_4_0.002.out | 2 +- .../arkode/C_serial/ark_kpr_mri_5_0.002.out | 2 +- .../arkode/C_serial/ark_kpr_mri_6_0.005.out | 2 +- .../arkode/C_serial/ark_kpr_mri_7_0.001.out | 2 +- .../ark_kpr_mri_7_0.001_-100_100_0.5_1.out | 2 +- .../arkode/C_serial/ark_kpr_mri_8_0.001.out | 2 +- .../ark_kpr_mri_8_0.001_-100_100_0.5_1.out | 2 +- .../arkode/C_serial/ark_kpr_mri_9_0.001.out | 2 +- .../ark_kpr_mri_9_0.001_-100_100_0.5_1.out | 2 +- .../arkode/C_serial/ark_onewaycouple_mri.out | 2 +- .../C_serial/ark_reaction_diffusion_mri.out | 2 +- .../arkode/C_serial/ark_twowaycouple_mri.out | 2 +- 41 files changed, 64 insertions(+), 64 deletions(-) diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out index c5297a95e5..e2cfe25a3e 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out @@ -74,8 +74,8 @@ Final integrator statistics: Steps = 105 Step attempts = 111 Error test fails = 6 - RHS reaction = 441 - RHS diffusion = 774 + RHS reaction = 440 + RHS diffusion = 773 NLS iters = 333 NLS fails = 0 LS iters = 1638 diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out index f484e63b47..6be62053ad 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out @@ -77,7 +77,7 @@ Final integrator statistics: Slow Integrator: Steps = 132 - RHS diffusion = 793 + RHS diffusion = 792 NLS iters = 396 NLS fails = 0 LS iters = 1958 @@ -96,4 +96,4 @@ Fast Integrator: Steps = 472 Step attempts = 472 Error test fails = 0 - RHS reaction = 1834 + RHS reaction = 1833 diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-global.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-global.out index 7db0c6bb47..03c9f8ce99 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-global.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-global.out @@ -77,7 +77,7 @@ Final integrator statistics: Slow Integrator: Steps = 132 - RHS diffusion = 793 + RHS diffusion = 792 NLS iters = 396 NLS fails = 0 LS iters = 1958 diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-local.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-local.out index f2aee774c9..7d1d37d829 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-local.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-local.out @@ -77,7 +77,7 @@ Final integrator statistics: Slow Integrator: Steps = 132 - RHS diffusion = 793 + RHS diffusion = 792 NLS iters = 396 NLS fails = 0 LS iters = 1965 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out index 370707799c..66fc95aae1 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out @@ -40,15 +40,15 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 - 1.000000000000000e-01 5.162013648736323e-02 - 2.000000000000000e-01 7.426103375907699e-03 - 3.000000000000000e-01 1.067221964126028e-03 - 4.000000000000000e-01 1.533639279173463e-04 - 5.000000000000000e-01 2.203893657177772e-05 - 6.000000000000000e-01 3.167052399497521e-06 - 7.000000000000000e-01 4.550960415372650e-07 - 7.999999999999999e-01 6.537285820788082e-08 - 8.999999999999999e-01 9.413914309992992e-09 + 1.000000000000000e-01 5.162013561953564e-02 + 2.000000000000000e-01 7.426103216931702e-03 + 3.000000000000000e-01 1.067221955570474e-03 + 4.000000000000000e-01 1.533639242649863e-04 + 5.000000000000000e-01 2.203893152743892e-05 + 6.000000000000000e-01 3.167052161936452e-06 + 7.000000000000000e-01 4.550959197622963e-07 + 7.999999999999999e-01 6.537253782319481e-08 + 8.999999999999999e-01 9.573763963251624e-09 1.000000000000000e+00 1.326291426916513e-09 ---------------------------------------------- @@ -56,7 +56,7 @@ Final fast integrator statistics: Steps = 722 Step attempts = 722 Error test fails = 0 - RHS evals = 5445 + RHS evals = 5444 NLS iters = 2554 NLS fails = 0 LS iters = 8545 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out index 07b99e3972..7bd0d31b5c 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out @@ -42,21 +42,21 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 - 1.000000000000000e-01 5.162012484063394e-02 - 2.000000000000000e-01 7.426100623733855e-03 - 3.000000000000000e-01 1.067221389928324e-03 - 4.000000000000000e-01 1.533638122100311e-04 - 5.000000000000000e-01 2.203890106093356e-05 - 6.000000000000000e-01 3.167064486065304e-06 - 7.000000000000000e-01 4.551179117995729e-07 - 7.999999999999999e-01 6.540200053027528e-08 - 8.999999999999999e-01 9.398526428504205e-09 - 1.000000000000000e+00 1.350608973293624e-09 + 1.000000000000000e-01 5.162012484065175e-02 + 2.000000000000000e-01 7.426100623747953e-03 + 3.000000000000000e-01 1.067221389930970e-03 + 4.000000000000000e-01 1.533638122104530e-04 + 5.000000000000000e-01 2.203890106096816e-05 + 6.000000000000000e-01 3.167064486069615e-06 + 7.000000000000000e-01 4.551179118001787e-07 + 7.999999999999999e-01 6.540200053036262e-08 + 8.999999999999999e-01 9.398526428516744e-09 + 1.000000000000000e+00 1.350608973295426e-09 ---------------------------------------------- Final slow integrator statistics: Steps = 1000 - RHS evals = 7356 + RHS evals = 7355 NLS iters = 3355 NLS fails = 0 LS iters = 10603 @@ -74,7 +74,7 @@ Final fast integrator statistics: Steps = 3003 Step attempts = 3003 Error test fails = 0 - RHS evals = 29863 + RHS evals = 29862 NLS iters = 17842 NLS fails = 0 LS iters = 10048 diff --git a/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.out b/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.out index a87d092125..ea8c1ea7d6 100644 --- a/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.out +++ b/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.out @@ -47,8 +47,8 @@ Final integrator statistics: Steps = 23 Step attempts = 24 Error test fails = 0 - Explicit RHS evals = 95 - Implicit RHS evals = 287 + Explicit RHS evals = 94 + Implicit RHS evals = 286 NLS iters = 192 NLS fails = 7 LS setups = 16 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 4267e644f6..cadd7e5310 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 = 864984 + Total RHS evals: Fs = 30004, Ff = 864983 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 c6304ed58d..d8f1801e46 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 = 390049 + Total RHS evals: Fs = 68887, Ff = 360046 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 52c08c1354..0e3c13961a 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 = 870124 + Total RHS evals: Fs = 68887, Ff = 840121 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 ed614c2326..7059273d48 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 = 360046 + Total RHS evals: Fse = 40005, Fsi = 78888, Ff = 330043 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 793f178138..827c560b02 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 = 1054338 + Total RHS evals: Fse = 40005, Fsi = 78888, Ff = 1024335 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 4385a97fd5..79287bd749 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 = 570067 + Total RHS evals: Fse = 60007, Fsi = 118894, Ff = 520062 Slow Newton iters = 58887 Slow Newton conv fails = 0 Slow Jacobian evals = 501 diff --git a/examples/arkode/C_serial/ark_brusselator_mri.out b/examples/arkode/C_serial/ark_brusselator_mri.out index f25ab5ad6e..602c2e4177 100644 --- a/examples/arkode/C_serial/ark_brusselator_mri.out +++ b/examples/arkode/C_serial/ark_brusselator_mri.out @@ -31,4 +31,4 @@ Brusselator ODE test problem: Final Solver Statistics: Steps: nsts = 81, nstf = 2187 - Total RHS evals: Fs = 244, Ff = 6582 + Total RHS evals: Fs = 244, Ff = 6581 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_adapt.out b/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_adapt.out index d5a8a7ec99..845e6dbb9b 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_adapt.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_adapt.out @@ -72,7 +72,7 @@ Inequality constraint fails = 0 Initial step size = 1.836231979046091e-06 Last step size = 0.2400202274108805 Current step size = 0.2400202274108805 -Explicit RHS fn evals = 2126 +Explicit RHS fn evals = 2125 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_fixed_--count-orbits.out b/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_fixed_--count-orbits.out index 268044de60..a53c7f1542 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_fixed_--count-orbits.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_ERK_--step-mode_fixed_--count-orbits.out @@ -135,7 +135,7 @@ Initial step size = 0.01 Last step size = 0.009999999998981926 Current step size = 0.01 Root fn evals = 10288 -Explicit RHS fn evals = 50001 +Explicit RHS fn evals = 50000 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_EULER_1_1_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_EULER_1_1_--tf_50_--check-order_--nout_1.out index a0dbddcc7b..d32b06fb11 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_EULER_1_1_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_EULER_1_1_--tf_50_--check-order_--nout_1.out @@ -23,7 +23,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 0.001 -Explicit RHS fn evals = 400009 +Explicit RHS fn evals = 400008 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out index 61b27c3dfa..f6270cd29f 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out @@ -23,7 +23,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 0.001 -Explicit RHS fn evals = 400009 +Explicit RHS fn evals = 400008 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_2_2_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_2_2_--tf_50_--check-order_--nout_1.out index f3765ea044..588a1cd511 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_2_2_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_2_2_--tf_50_--check-order_--nout_1.out @@ -23,7 +23,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 0.001 -Explicit RHS fn evals = 400009 +Explicit RHS fn evals = 400008 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_3_3_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_3_3_--tf_50_--check-order_--nout_1.out index 9dfe5bf961..defe328ece 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_3_3_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_3_3_--tf_50_--check-order_--nout_1.out @@ -23,7 +23,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 0.001 -Explicit RHS fn evals = 400009 +Explicit RHS fn evals = 400008 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_4_4_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_4_4_--tf_50_--check-order_--nout_1.out index 6564429430..f87244403c 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_4_4_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_4_4_--tf_50_--check-order_--nout_1.out @@ -23,7 +23,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 0.001 -Explicit RHS fn evals = 400009 +Explicit RHS fn evals = 400008 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_5_6_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_5_6_--tf_50_--check-order_--nout_1.out index d81d1c24ae..78f14dd179 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_5_6_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_MCLACHLAN_5_6_--tf_50_--check-order_--nout_1.out @@ -23,7 +23,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 0.001 -Explicit RHS fn evals = 400009 +Explicit RHS fn evals = 400008 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_PSEUDO_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_PSEUDO_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out index c05cba4bb6..1289fd72b9 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_PSEUDO_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_PSEUDO_LEAPFROG_2_2_--tf_50_--check-order_--nout_1.out @@ -23,7 +23,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 0.001 -Explicit RHS fn evals = 400009 +Explicit RHS fn evals = 400008 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_RUTH_3_3_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_RUTH_3_3_--tf_50_--check-order_--nout_1.out index 2a1b46d65b..eca72a0654 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_RUTH_3_3_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_RUTH_3_3_--tf_50_--check-order_--nout_1.out @@ -23,7 +23,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 0.001 -Explicit RHS fn evals = 400009 +Explicit RHS fn evals = 400008 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_YOSHIDA_6_8_--tf_50_--check-order_--nout_1.out b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_YOSHIDA_6_8_--tf_50_--check-order_--nout_1.out index c72e065ba5..f2651ffd39 100644 --- a/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_YOSHIDA_6_8_--tf_50_--check-order_--nout_1.out +++ b/examples/arkode/C_serial/ark_kepler_--stepper_SPRK_--step-mode_fixed_--method_ARKODE_SPRK_YOSHIDA_6_8_--tf_50_--check-order_--nout_1.out @@ -23,7 +23,7 @@ Inequality constraint fails = 0 Initial step size = 0.001 Last step size = 2.582822844487962e-11 Current step size = 0.001 -Explicit RHS fn evals = 400009 +Explicit RHS fn evals = 400008 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_kpr_mri.out b/examples/arkode/C_serial/ark_kpr_mri.out index 30f70cff84..e551c2cee3 100644 --- a/examples/arkode/C_serial/ark_kpr_mri.out +++ b/examples/arkode/C_serial/ark_kpr_mri.out @@ -66,4 +66,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 151854 + Total RHS evals: Fs = 1504, Ff = 151853 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 f698501f2f..ef1ab12278 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 @@ -66,4 +66,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: Final Solver Statistics: Steps: nsts = 2501, nstf = 252601 u error = 4.671e-09, v error = 5.638e-10, total error = 3.327e-09 - Total RHS evals: Fs = 7504, Ff = 757854 + Total RHS evals: Fs = 7504, Ff = 757853 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 5a9ba49b05..2cb8b8d4ff 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 @@ -66,4 +66,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 757854 + Total RHS evals: Fs = 5003, Ff = 757853 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 fb1f3ad746..9504b4c524 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 @@ -65,4 +65,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 151854 + Total RHS evals: Fs = 1504, Ff = 151853 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 56112143a4..9f53b0e3b4 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 752851 + Total RHS evals: Fs = 7143, Ff = 750350 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 63f3fd2e8e..1a38aa16e6 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 @@ -66,4 +66,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: Final Solver Statistics: Steps: nsts = 2501, nstf = 250100 u error = 1.665e-10, v error = 7.714e-11, total error = 1.297e-10 - Total RHS evals: Fs = 12506, Ff = 1000451 + Total RHS evals: Fs = 12506, Ff = 1000450 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 3e42c4680b..7929d73e39 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 @@ -66,4 +66,4 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 300351 + Total RHS evals: Fs = 5006, Ff = 300350 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 e0a184c719..460bf53318 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 1545050 + Total RHS evals: Fs = 45313, Ff = 1530050 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 d6bfab1485..38dc23acf1 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 1545050 + Total RHS evals: Fs = 35313, Ff = 1530050 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 6a7bf70203..f96e203514 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 1545050 + Total RHS evals: Fse = 20001, Fsi = 50342, Ff = 1530050 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 50277624d5..f9d68539de 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: 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 = 1545050 + Total RHS evals: Fse = 20001, Fsi = 35342, Ff = 1530050 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 08ef222624..8da07cba27 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 u error = 1.532e-11, v error = 9.496e-12, total error = 1.274e-11 - Total RHS evals: Fse = 30001, Fsi = 82555, Ff = 2065050 + Total RHS evals: Fse = 30001, Fsi = 82555, Ff = 2040050 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 6831f819bc..a227a0db6a 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 @@ -66,7 +66,7 @@ Multirate nonlinear Kvaerno-Prothero-Robinson test problem: Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 u error = 1.533e-11, v error = 9.500e-12, total error = 1.275e-11 - Total RHS evals: Fse = 30001, Fsi = 57555, Ff = 2065050 + Total RHS evals: Fse = 30001, Fsi = 57555, Ff = 2040050 Slow Newton iters = 52554 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/C_serial/ark_onewaycouple_mri.out b/examples/arkode/C_serial/ark_onewaycouple_mri.out index 4989979ad0..3769f0e775 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 = 36011 + Total RHS evals: Fs = 3001, Ff = 36010 diff --git a/examples/arkode/C_serial/ark_reaction_diffusion_mri.out b/examples/arkode/C_serial/ark_reaction_diffusion_mri.out index 1582ed728f..f8cd47dfdc 100644 --- a/examples/arkode/C_serial/ark_reaction_diffusion_mri.out +++ b/examples/arkode/C_serial/ark_reaction_diffusion_mri.out @@ -68,7 +68,7 @@ Inequality constraint fails = 0 Initial step size = 2e-05 Last step size = 9.999999998289147e-06 Current step size = 2e-05 -Explicit RHS fn evals = 459184 +Explicit RHS fn evals = 459183 Implicit RHS fn evals = 0 NLS iters = 0 NLS fails = 0 diff --git a/examples/arkode/C_serial/ark_twowaycouple_mri.out b/examples/arkode/C_serial/ark_twowaycouple_mri.out index ff0990c0ae..8aee3f02b7 100644 --- a/examples/arkode/C_serial/ark_twowaycouple_mri.out +++ b/examples/arkode/C_serial/ark_twowaycouple_mri.out @@ -30,4 +30,4 @@ Two way coupling ODE test problem: Final Solver Statistics: Steps: nsts = 2001, nstf = 102051 - Total RHS evals: Fs = 6004, Ff = 306174 + Total RHS evals: Fs = 6004, Ff = 306173 From 37e0354830679aae849488e55420e7ed57397de7 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Wed, 23 Aug 2023 21:17:09 -0700 Subject: [PATCH 56/92] update f2003 output files after merge --- examples/arkode/F2003_serial/ark_kpr_mri_f2003.out | 2 +- examples/arkode/F2003_serial/ark_kpr_mri_f2003_0_0.002.out | 2 +- examples/arkode/F2003_serial/ark_kpr_mri_f2003_1_0.002.out | 2 +- examples/arkode/F2003_serial/ark_kpr_mri_f2003_3_0.01.out | 2 +- examples/arkode/F2003_serial/ark_kpr_mri_f2003_4_0.002.out | 2 +- examples/arkode/F2003_serial/ark_kpr_mri_f2003_5_0.002.out | 2 +- examples/arkode/F2003_serial/ark_kpr_mri_f2003_6_0.005.out | 2 +- examples/arkode/F2003_serial/ark_kpr_mri_f2003_7_0.001.out | 2 +- examples/arkode/F2003_serial/ark_kpr_mri_f2003_8_0.001.out | 2 +- examples/arkode/F2003_serial/ark_kpr_mri_f2003_9_0.001.out | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003.out index 8001a1b701..9bdbea5dcb 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003.out @@ -63,4 +63,4 @@ Final Solver Statistics: Steps: nsts = 501, nstf = 50601 u error = 0.794E-06, v error = 0.825E-07, total error = 0.565E-06 - Total RHS evals: Fs = 1504, Ff = 151854 + Total RHS evals: Fs = 1504, Ff = 151853 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_0_0.002.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_0_0.002.out index 6ffca6b871..c5001c9ed2 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_0_0.002.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_0_0.002.out @@ -63,4 +63,4 @@ Final Solver Statistics: Steps: nsts = 2501, nstf = 252601 u error = 0.467E-08, v error = 0.564E-09, total error = 0.333E-08 - Total RHS evals: Fs = 7504, Ff = 757854 + Total RHS evals: Fs = 7504, Ff = 757853 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_1_0.002.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_1_0.002.out index 02271dbc17..c84e3cde4b 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_1_0.002.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_1_0.002.out @@ -63,4 +63,4 @@ Final Solver Statistics: Steps: nsts = 2501, nstf = 252601 u error = 0.316E-12, v error = 0.191E-11, total error = 0.137E-11 - Total RHS evals: Fs = 5003, Ff = 757854 + Total RHS evals: Fs = 5003, Ff = 757853 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_3_0.01.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_3_0.01.out index efec1c548a..fb98664760 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_3_0.01.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_3_0.01.out @@ -63,4 +63,4 @@ Final Solver Statistics: Steps: nsts = 501, nstf = 50601 u error = 0.505E-04, v error = 0.768E-03, total error = 0.545E-03 - Total RHS evals: Fs = 1504, Ff = 151854 + Total RHS evals: Fs = 1504, Ff = 151853 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_4_0.002.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_4_0.002.out index 0fa85a2c8c..22fca6299a 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_4_0.002.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_4_0.002.out @@ -64,7 +64,7 @@ Final Solver Statistics: Steps: nsts = 2501, nstf = 250100 u error = 0.348E-05, v error = 0.953E-03, total error = 0.674E-03 - Total RHS evals: Fs = 7143, Ff = 752851 + Total RHS evals: Fs = 7143, Ff = 750350 Slow Newton iters = 4641 Slow Newton conv fails = 0 Slow Jacobian evals = 126 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_5_0.002.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_5_0.002.out index e03d47aaf4..48dd3ab5e5 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_5_0.002.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_5_0.002.out @@ -63,4 +63,4 @@ Final Solver Statistics: Steps: nsts = 2501, nstf = 250100 u error = 0.166E-09, v error = 0.771E-10, total error = 0.130E-09 - Total RHS evals: Fs = 12506, Ff = 1000451 + Total RHS evals: Fs = 12506, Ff = 1000450 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_6_0.005.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_6_0.005.out index 58f4564d9a..fa764c5633 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_6_0.005.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_6_0.005.out @@ -63,4 +63,4 @@ Final Solver Statistics: Steps: nsts = 1001, nstf = 100100 u error = 0.757E-08, v error = 0.324E-08, total error = 0.582E-08 - Total RHS evals: Fs = 5006, Ff = 300351 + Total RHS evals: Fs = 5006, Ff = 300350 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_7_0.001.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_7_0.001.out index 9b949d1af8..925d9c3474 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_7_0.001.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_7_0.001.out @@ -64,7 +64,7 @@ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 u error = 0.380E-09, v error = 0.394E-09, total error = 0.387E-09 - Total RHS evals: Fs = 45313, Ff = 1545050 + Total RHS evals: Fs = 45313, Ff = 1530050 Slow Newton iters = 30312 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_8_0.001.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_8_0.001.out index a5990c9cf3..bd101638aa 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_8_0.001.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_8_0.001.out @@ -64,7 +64,7 @@ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 u error = 0.179E-09, v error = 0.168E-09, total error = 0.174E-09 - Total RHS evals: Fse = 20001, Fsi = 50342, Ff = 1545050 + Total RHS evals: Fse = 20001, Fsi = 50342, Ff = 1530050 Slow Newton iters = 30341 Slow Newton conv fails = 0 Slow Jacobian evals = 250 diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_9_0.001.out b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_9_0.001.out index 47d8192ac2..6e504b619b 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003_9_0.001.out +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003_9_0.001.out @@ -64,7 +64,7 @@ Final Solver Statistics: Steps: nsts = 5000, nstf = 510000 u error = 0.153E-10, v error = 0.950E-11, total error = 0.127E-10 - Total RHS evals: Fse = 30001, Fsi = 82555, Ff = 2065050 + Total RHS evals: Fse = 30001, Fsi = 82555, Ff = 2040050 Slow Newton iters = 52554 Slow Newton conv fails = 0 Slow Jacobian evals = 250 From 05c0b3d4e0b5fd30286e26a0492b15dd18267259 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Wed, 20 Sep 2023 15:07:24 -0700 Subject: [PATCH 57/92] update MRI full RHS comment --- src/arkode/arkode_mristep.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index fb013fc529..1002f0d42a 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -1504,10 +1504,10 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) } } - /* Call the full RHS if needed. NOTE: We do not use the full RHS function here - (unlike ERKStep and ARKStep) since it does not need to check for FSAL or SA - methods and this avoids potentially unnecessary evaluations of the inner - (fast) RHS function */ + /* Evaluate the slow RHS functions if needed. NOTE: We do not use the full RHS + function here (unlike ERKStep and ARKStep) since it does not need to check + for FSAL or SA methods and thus avoids potentially unnecessary evaluations + of the inner (fast) RHS function */ if (!(ark_mem->fn_current)) { From ed682238d3663779781ec7e54351ec4fb591cb9f Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Wed, 4 Oct 2023 19:11:19 -0700 Subject: [PATCH 58/92] update ApplyForcing --- ...sion_reaction_p_--np_2_2_--mri-arkstep.out | 52 ++--- .../ark_heat2D_hypre_pfmg_mri_--np_2_2.out | 20 +- src/arkode/arkode_arkstep.c | 199 ++++++++++-------- src/arkode/arkode_arkstep_impl.h | 6 +- .../CXX_parallel/ark_test_heat2D_mri_0.out | 6 +- .../CXX_parallel/ark_test_heat2D_mri_1.out | 6 +- 6 files changed, 155 insertions(+), 134 deletions(-) diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out index 6be62053ad..4edb64b140 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out @@ -51,26 +51,26 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.172144385112383e+00 - 5.000000000000000e-01 3.136741760565112e+00 - 1.000000000000000e+00 3.125063288044017e+00 - 1.500000000000000e+00 3.152612112450619e+00 - 2.000000000000000e+00 3.252043983418060e+00 - 2.500000000000000e+00 3.404765989603421e+00 - 3.000000000000000e+00 3.570190973270146e+00 - 3.500000000000000e+00 3.699967498112868e+00 - 4.000000000000000e+00 3.694660650362031e+00 - 4.500000000000000e+00 3.628195423135894e+00 - 5.000000000000000e+00 3.475226557220142e+00 - 5.500000000000000e+00 3.343940437806177e+00 - 6.000000000000000e+00 3.234074877204449e+00 - 6.500000000000000e+00 3.082487398091975e+00 - 7.000000000000000e+00 2.890772981241159e+00 - 7.500000000000000e+00 2.837358027670640e+00 - 8.000000000000000e+00 2.898182312219831e+00 - 8.500000000000000e+00 3.139958281273060e+00 - 9.000000000000000e+00 3.442131791691251e+00 - 9.500000000000000e+00 3.740310837117296e+00 - 1.000000000000000e+01 4.014395612342793e+00 + 5.000000000000000e-01 3.136741760482618e+00 + 1.000000000000000e+00 3.125063288424227e+00 + 1.500000000000000e+00 3.152612176629299e+00 + 2.000000000000000e+00 3.252044079453045e+00 + 2.500000000000000e+00 3.404766178896478e+00 + 3.000000000000000e+00 3.570191917030535e+00 + 3.500000000000000e+00 3.699971165654502e+00 + 4.000000000000000e+00 3.694662537921265e+00 + 4.500000000000000e+00 3.628189018300024e+00 + 5.000000000000000e+00 3.475208310606769e+00 + 5.500000000000000e+00 3.343918144987400e+00 + 6.000000000000000e+00 3.234050095887160e+00 + 6.500000000000000e+00 3.082472723584817e+00 + 7.000000000000000e+00 2.890777340892890e+00 + 7.500000000000000e+00 2.837371912220970e+00 + 8.000000000000000e+00 2.898199506147806e+00 + 8.500000000000000e+00 3.139974447562073e+00 + 9.000000000000000e+00 3.442146067816335e+00 + 9.500000000000000e+00 3.740323990247354e+00 + 1.000000000000000e+01 4.014407795965944e+00 ---------------------------------------------- Final integrator statistics: @@ -80,17 +80,17 @@ Slow Integrator: RHS diffusion = 792 NLS iters = 396 NLS fails = 0 - LS iters = 1958 - LS fails = 360 + LS iters = 1954 + LS fails = 328 LS setups = 0 - LS RHS evals = 1958 - Jv products = 1958 + LS RHS evals = 1954 + Jv products = 1954 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 4.944444 + Avg LS iters per NLS iter = 4.934343 Preconditioner setups = 0 - Preconditioner solves = 1958 + Preconditioner solves = 1954 Fast Integrator: Steps = 472 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out index 7bd0d31b5c..312cb0f122 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out @@ -42,16 +42,16 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 - 1.000000000000000e-01 5.162012484065175e-02 - 2.000000000000000e-01 7.426100623747953e-03 - 3.000000000000000e-01 1.067221389930970e-03 - 4.000000000000000e-01 1.533638122104530e-04 - 5.000000000000000e-01 2.203890106096816e-05 - 6.000000000000000e-01 3.167064486069615e-06 - 7.000000000000000e-01 4.551179118001787e-07 - 7.999999999999999e-01 6.540200053036262e-08 - 8.999999999999999e-01 9.398526428516744e-09 - 1.000000000000000e+00 1.350608973295426e-09 + 1.000000000000000e-01 5.162012484063519e-02 + 2.000000000000000e-01 7.426100623746804e-03 + 3.000000000000000e-01 1.067221389930346e-03 + 4.000000000000000e-01 1.533638122105192e-04 + 5.000000000000000e-01 2.203890106099257e-05 + 6.000000000000000e-01 3.167064486072479e-06 + 7.000000000000000e-01 4.551179118006582e-07 + 7.999999999999999e-01 6.540200053043108e-08 + 8.999999999999999e-01 9.398526428526612e-09 + 1.000000000000000e+00 1.350608973296844e-09 ---------------------------------------------- Final slow integrator statistics: diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 00cf802a8e..a1dc2e9476 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -713,6 +713,21 @@ void ARKStepFree(void **arkode_mem) } step_mem->nfusedopvecs = 0; + /* free work arrays for MRI forcing */ + if (step_mem->stage_times) + { + free(step_mem->stage_times); + step_mem->stage_times = NULL; + ark_mem->lrw -= step_mem->stages; + } + + if (step_mem->stage_coefs) + { + free(step_mem->stage_coefs); + step_mem->stage_coefs = NULL; + ark_mem->lrw -= step_mem->stages; + } + /* free the time stepper module itself */ free(ark_mem->step_mem); ark_mem->step_mem = NULL; @@ -1208,6 +1223,27 @@ int arkStep_Init(void* arkode_mem, int init_type) ark_mem->liw += step_mem->nfusedopvecs; /* pointers */ } + /* Allocate workspace for MRI forcing -- need to allocate here as the + number of stages may not bet set before this point and we assume + SetInnerForcing has been called before the first step i.e., methods + start with a fast integration */ + if (step_mem->expforcing || step_mem->impforcing) + { + if (!(step_mem->stage_times)) + { + step_mem->stage_times = (realtype*) calloc(step_mem->stages, + sizeof(realtype)); + ark_mem->lrw += step_mem->stages; + } + + if (!(step_mem->stage_coefs)) + { + step_mem->stage_coefs = (realtype*) calloc(step_mem->stages, + sizeof(realtype)); + ark_mem->lrw += step_mem->stages; + } + } + /* Limit max interpolant degree (negative input only overwrites the current interpolant degree if it is greater than abs(input). */ if (ark_mem->interp != NULL) @@ -1350,6 +1386,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, booleantype recomputeRHS; realtype* cvals; N_Vector* Xvecs; + realtype stage_coefs = ONE; /* access ARKodeARKStepMem structure */ retval = arkStep_AccessStepMem(arkode_mem, "arkStep_FullRHS", @@ -1464,7 +1501,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, cvals[0] = ONE; Xvecs[0] = f; nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); + arkStep_ApplyForcing(step_mem, &t, &stage_coefs, 1, &nvec); N_VLinearCombination(nvec, cvals, Xvecs, f); } @@ -1609,7 +1646,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, cvals[0] = ONE; Xvecs[0] = f; nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); + arkStep_ApplyForcing(step_mem, &t, &stage_coefs, 1, &nvec); N_VLinearCombination(nvec, cvals, Xvecs, f); } @@ -1667,7 +1704,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, cvals[0] = ONE; Xvecs[0] = f; nvec = 1; - arkStep_ApplyForcing(step_mem, t, ONE, &nvec); + arkStep_ApplyForcing(step_mem, &t, &stage_coefs, 1, &nvec); N_VLinearCombination(nvec, cvals, Xvecs, f); } @@ -2681,8 +2718,7 @@ int arkStep_StageSetup(ARKodeMem ark_mem, booleantype implicit) { /* local data */ ARKodeARKStepMem step_mem; - int retval, i, j, k, jmax, nvec; - sunrealtype tj, tau, taui; + int retval, i, j, jmax, nvec; sunrealtype* cj; sunrealtype** Aij; realtype* cvals; @@ -2719,7 +2755,12 @@ int arkStep_StageSetup(ARKodeMem ark_mem, booleantype implicit) /* apply external polynomial forcing (updates nvec, cvals, Xvecs) */ if (step_mem->impforcing) { nvec = 0; - arkStep_ApplyForcing(step_mem, ark_mem->tcur, step_mem->gamma, &nvec); + + step_mem->stage_times[0] = ark_mem->tcur; + step_mem->stage_coefs[0] = step_mem->gamma; + + arkStep_ApplyForcing(step_mem, step_mem->stage_times, + step_mem->stage_coefs, 1, &nvec); retval = N_VLinearCombination(nvec, cvals, Xvecs, step_mem->sdata); if (retval != 0) return(ARK_VECTOROP_ERR); } else { @@ -2778,30 +2819,14 @@ int arkStep_StageSetup(ARKodeMem ark_mem, booleantype implicit) cj = step_mem->Bi->c; } - for (k = 0; k < step_mem->nforcing; k++) - { - cvals[nvec + k] = ZERO; - } - for (j = 0; j < jmax; j++) { - tj = ark_mem->tn + cj[j] * ark_mem->h; - tau = (tj - step_mem->tshift) / (step_mem->tscale); - taui = ONE; - - for (k = 0; k < step_mem->nforcing; k++) - { - cvals[nvec + k] += Aij[i][j] * taui; - taui *= tau; - } + step_mem->stage_times[j] = ark_mem->tn + cj[j] * ark_mem->h; + step_mem->stage_coefs[j] = ark_mem->h * Aij[i][j]; } - for (k = 0; k < step_mem->nforcing; k++) - { - cvals[nvec + k] *= ark_mem->h; - Xvecs[nvec + k] = step_mem->forcing[k]; - } - nvec += step_mem->nforcing; + arkStep_ApplyForcing(step_mem, step_mem->stage_times, step_mem->stage_coefs, + jmax, &nvec); } /* call fused vector operation to do the work */ @@ -2830,9 +2855,8 @@ int arkStep_StageSetup(ARKodeMem ark_mem, booleantype implicit) int arkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsmPtr) { /* local data */ - int retval, j, k, nvec; + int retval, j, nvec; N_Vector y, yerr; - sunrealtype tj, tau, taui; sunrealtype* cj; sunrealtype* bj; sunrealtype* dj; @@ -2891,31 +2915,14 @@ int arkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsmPtr) bj = step_mem->Bi->b; } - - for (k = 0; k < step_mem->nforcing; k++) - { - cvals[nvec + k] = ZERO; - } - for (j = 0; j < step_mem->stages; j++) { - tj = ark_mem->tn + cj[j] * ark_mem->h; - tau = (tj - step_mem->tshift) / (step_mem->tscale); - taui = ONE; - - for (k = 0; k < step_mem->nforcing; k++) - { - cvals[nvec + k] += bj[j] * taui; - taui *= tau; - } + step_mem->stage_times[j] = ark_mem->tn + cj[j] * ark_mem->h; + step_mem->stage_coefs[j] = ark_mem->h * bj[j]; } - for (k = 0; k < step_mem->nforcing; k++) - { - cvals[nvec + k] *= ark_mem->h; - Xvecs[nvec + k] = step_mem->forcing[k]; - } - nvec += step_mem->nforcing; + arkStep_ApplyForcing(step_mem, step_mem->stage_times, step_mem->stage_coefs, + step_mem->stages, &nvec); } /* call fused vector operation to do the work */ @@ -2956,30 +2963,14 @@ int arkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsmPtr) dj = step_mem->Bi->d; } - for (k = 0; k < step_mem->nforcing; k++) - { - cvals[nvec + k] = ZERO; - } - for (j = 0; j < step_mem->stages; j++) { - tj = ark_mem->tn + cj[j] * ark_mem->h; - tau = (tj - step_mem->tshift) / (step_mem->tscale); - taui = ONE; - - for (k = 0; k < step_mem->nforcing; k++) - { - cvals[nvec + k] += (bj[j] - dj[j]) * taui; - taui *= tau; - } + step_mem->stage_times[j] = ark_mem->tn + cj[j] * ark_mem->h; + step_mem->stage_coefs[j] = ark_mem->h * (bj[j] - dj[j]); } - for (k = 0; k < step_mem->nforcing; k++) - { - cvals[nvec + k] *= ark_mem->h; - Xvecs[nvec + k] = step_mem->forcing[k]; - } - nvec += step_mem->nforcing; + arkStep_ApplyForcing(step_mem, step_mem->stage_times, + step_mem->stage_coefs, step_mem->stages, &nvec); } /* call fused vector operation to do the work */ @@ -3248,34 +3239,62 @@ int arkStep_MRIStepInnerReset(MRIStepInnerStepper stepper, realtype tR, /*------------------------------------------------------------------------------ arkStep_ApplyForcing - Determines the linear combination coefficients and vectors to apply forcing - at a given value of the independent variable (t). This occurs through - appending coefficients and N_Vector pointers to the underlying cvals and Xvecs - arrays in the step_mem structure. The dereferenced input *nvec should indicate - the next available entry in the cvals/Xvecs arrays. The input 's' is a - scaling factor that should be applied to each of these coefficients. + Determines the scaling values and vectors necessary for the MRI polynomial + forcing terms. This occurs through appending scaling values and N_Vector + pointers to the underlying cvals and Xvecs arrays in the step_mem structure. + + stage_times -- The times at which to evaluate the forcing. + + stage_coefs -- Scaling factors (method A, b, or b - d coefficients) applied to + forcing vectors. + + jmax -- the number of values in stage_times and stage_coefs (the stage index + for explicit methods or the index + 1 for implicit methods). + + nvec -- On input, nvec is the next available entry in the cvals/Xvecs arrays. + This value is incremented for each value/vector appended to the cvals/Xvecs + arrays so on return it is the total number of values/vectors in the linear + combination. ----------------------------------------------------------------------------*/ -void arkStep_ApplyForcing(ARKodeARKStepMem step_mem, realtype t, - realtype s, int *nvec) +void arkStep_ApplyForcing(ARKodeARKStepMem step_mem, realtype* stage_times, + realtype* stage_coefs, int jmax, int* nvec) { realtype tau, taui; - int i; + int j, k; + + /* Shortcuts to step_mem data */ + realtype* vals = step_mem->cvals; + N_Vector* vecs = step_mem->Xvecs; + realtype tshift = step_mem->tshift; + realtype tscale = step_mem->tscale; + int nforcing = step_mem->nforcing; + N_Vector* forcing = step_mem->forcing; + + /* Offset into vals and vecs arrays */ + int offset = *nvec; - /* always append the constant forcing term */ - step_mem->cvals[*nvec] = s; - step_mem->Xvecs[*nvec] = step_mem->forcing[0]; - (*nvec) += 1; + /* Initialize scaling values, set vectors */ + for (k = 0; k < nforcing; k++) + { + vals[offset + k] = ZERO; + vecs[offset + k] = forcing[k]; + } + + for (j = 0; j < jmax; j++) + { + tau = (stage_times[j] - tshift) / tscale; + taui = ONE; - /* compute normalized time tau and initialize tau^i */ - tau = (t - step_mem->tshift) / (step_mem->tscale); - taui = tau; - for (i=1; inforcing; i++) { - step_mem->cvals[*nvec] = s*taui; - step_mem->Xvecs[*nvec] = step_mem->forcing[i]; - taui *= tau; - (*nvec) += 1; + for (k = 0; k < nforcing; k++) + { + vals[offset + k] += stage_coefs[j] * taui; + taui *= tau; + } } + + /* Update vector count for linear combination */ + *nvec += nforcing; } /*------------------------------------------------------------------------------ diff --git a/src/arkode/arkode_arkstep_impl.h b/src/arkode/arkode_arkstep_impl.h index 91ff0e6489..18d2095d73 100644 --- a/src/arkode/arkode_arkstep_impl.h +++ b/src/arkode/arkode_arkstep_impl.h @@ -156,6 +156,8 @@ typedef struct ARKodeARKStepMemRec { realtype tscale; /* time normalization scaling */ N_Vector* forcing; /* array of forcing vectors */ int nforcing; /* number of forcing vectors */ + realtype* stage_times; /* workspace for applying forcing */ + realtype* stage_coefs; /* workspace for applying forcing */ } *ARKodeARKStepMem; @@ -205,8 +207,8 @@ int arkStep_NlsInit(ARKodeMem ark_mem); int arkStep_Nls(ARKodeMem ark_mem, int nflag); int arkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsm); int arkStep_ComputeSolutions_MassFixed(ARKodeMem ark_mem, realtype *dsm); -void arkStep_ApplyForcing(ARKodeARKStepMem step_mem, realtype t, - realtype s, int *nvec); +void arkStep_ApplyForcing(ARKodeARKStepMem step_mem, realtype* stage_times, + realtype* stage_coefs, int jmax, int *nvec); /* private functions passed to nonlinear solver */ int arkStep_NlsResidual_MassIdent(N_Vector zcor, N_Vector r, void* arkode_mem); diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out index 4c6f56c4d7..daa7673410 100644 --- a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out @@ -28,10 +28,10 @@ MRIStep Solver Statistics: Internal solver steps = 1000 Total RHS evals: Fe = 2769 Total linear solver setups = 50 - Total linear iterations = 6241 - Total number of Jacobian-vector products = 6241 + Total linear iterations = 6250 + Total number of Jacobian-vector products = 6250 Total number of Preconditioner setups = 50 - Total number of Preconditioner solves = 6241 + Total number of Preconditioner solves = 6250 Total number of linear solver convergence failures = 0 Total number of Newton iterations = 1768 Total number of nonlinear solver convergence failures = 0 diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out index 518b8e6ce0..054398c5ed 100644 --- a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out @@ -28,10 +28,10 @@ MRIStep Solver Statistics: Internal solver steps = 1000 Total RHS evals: Fe = 2001 Total linear solver setups = 1 - Total linear iterations = 4708 - Total number of Jacobian-vector products = 4708 + Total linear iterations = 4731 + Total number of Jacobian-vector products = 4731 Total number of Preconditioner setups = 1 - Total number of Preconditioner solves = 4708 + Total number of Preconditioner solves = 4731 Total number of linear solver convergence failures = 0 Total number of Newton iterations = 1000 Total number of nonlinear solver convergence failures = 0 From 3c4897860fb96e70f8a5d44868e7a4d1172bc087 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 5 Oct 2023 21:00:55 -0700 Subject: [PATCH 59/92] fix typos --- scripts/updateOutFiles.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/updateOutFiles.py b/scripts/updateOutFiles.py index 93b9d207c6..561387c265 100755 --- a/scripts/updateOutFiles.py +++ b/scripts/updateOutFiles.py @@ -15,7 +15,7 @@ # Script to update example output files for failed tests # # Example usage: -# $ ./updateOutFiles.py sundials/build sundials/examples +# $ ./updateOutFiles.py ../build ../. # ----------------------------------------------------------------------------- # ----------------------------------------------------------------------------- @@ -29,7 +29,7 @@ def main(): parser = argparse.ArgumentParser(description='Update output files') parser.add_argument('source', type=str, - help='Full path of build directory to files read from') + help='Full path of build directory to read files from') parser.add_argument('destination', type=str, help='Full path of sundials location to write files to') parser.add_argument('--all','-a', action='store_true', From 023dd9440dc0cc78cef0a7406bf445b8e87745f0 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 5 Oct 2023 21:14:01 -0700 Subject: [PATCH 60/92] update comments --- src/arkode/arkode.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 094acbf559..354ef17a0e 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -1930,8 +1930,9 @@ int arkInitialSetup(ARKodeMem ark_mem, realtype tout) if (retval != 0) return(retval); } - /* Call fullrhs (used in estimating initial step, explicit steppers, Hermite - interpolation module, and possibly (but not always) arkRootCheck1) */ + /* If fullrhs will be called (to estimate initial step, explicit steppers, Hermite + interpolation module, and possibly (but not always) arkRootCheck1), then + ensure that it is provided, and space is allocated for fn. */ if (ark_mem->call_fullrhs || (ark_mem->h0u == ZERO && ark_mem->hin == ZERO) || ark_mem->root_mem) { @@ -2467,7 +2468,7 @@ int arkCompleteStep(ARKodeMem ark_mem, realtype dsm) /* update interpolation structure - NOTE: This must be called before updating yn towith ycur as the interpolation + NOTE: This must be called before updating yn with ycur as the interpolation module may need to save tn, yn from the start of this step */ if (ark_mem->interp != NULL) { retval = arkInterpUpdate(ark_mem, ark_mem->interp, ark_mem->tcur); From 3d194a6cdca0ff2519fe887b82522d93ba4073cc Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 5 Oct 2023 21:33:01 -0700 Subject: [PATCH 61/92] change fn_current to fn_is_current --- .../source/packages/ARKODE.rst | 18 +++++++-------- src/arkode/arkode.c | 14 ++++++------ src/arkode/arkode_arkstep.c | 8 +++---- src/arkode/arkode_erkstep.c | 8 +++---- src/arkode/arkode_impl.h | 22 +++++++++---------- src/arkode/arkode_interp.c | 8 +++---- src/arkode/arkode_mristep.c | 8 +++---- 7 files changed, 43 insertions(+), 43 deletions(-) diff --git a/doc/sundials_developers/source/packages/ARKODE.rst b/doc/sundials_developers/source/packages/ARKODE.rst index cfd129c30e..7f51198df8 100644 --- a/doc/sundials_developers/source/packages/ARKODE.rst +++ b/doc/sundials_developers/source/packages/ARKODE.rst @@ -27,11 +27,11 @@ ERKStep Full RHS // ----------------- init [label="Initialize integrator\lCopy t0, y0 to tn, yn\l"] - f0cur [label="Set fn_current to False", style=filled, fillcolor=tomato1] + f0cur [label="Set fn_is_current to False", style=filled, fillcolor=tomato1] h0 [label="Is h0 provided?", target="_top"] f0_q1 [label="Has f(tn, yn) been computed?"] eval1 [label="Evaluate f(tn, yn)\lStore in F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=lightskyblue] - fcur1 [label="Set fn_current to True", style=filled, fillcolor=lightgreen] + fcur1 [label="Set fn_is_current to True", style=filled, fillcolor=lightgreen] h0_comp [label="Compute h0"] start [label="Start Step"] @@ -54,7 +54,7 @@ ERKStep Full RHS fsal [label="Is the method FSAL?", style=filled, fillcolor=slateblue1] eval3 [label="Evaluate f(tn, yn)\lStore in F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=slateblue1] copy1 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=slateblue1] - fcur2 [label="Set fn_current to True", style=filled, fillcolor=lightgreen] + fcur2 [label="Set fn_is_current to True", style=filled, fillcolor=lightgreen] stages1 [label="Compute Stages"] complete [label="Complete Step"] @@ -78,7 +78,7 @@ ERKStep Full RHS interp_type1 [label="Using Hermite interpolation?"] f0q3 [label="Has f(tn, yn) been computed?"] update_yn [label="Copy tcur, ycur to tn, yn"] - fcur3 [label="Set fn_current to False", style=filled, fillcolor=tomato1] + fcur3 [label="Set fn_is_current to False", style=filled, fillcolor=tomato1] complete -> interp_update interp_update -> update_yn [taillabel="No", labeldistance=2, labelangle=45] @@ -98,7 +98,7 @@ ERKStep Full RHS fsal1 [label="Is the method FSAL?", style=filled, fillcolor=slateblue1] eval4 [label="Evaluate f(tn, yn)\lStore in F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=slateblue1] copy2 [label="Copy F[s-1] to F[0]\lCopy F[0] to fn\l", style=filled, fillcolor=slateblue1] - fcur4 [label="Set fn_current to True", style=filled, fillcolor=lightgreen] + fcur4 [label="Set fn_is_current to True", style=filled, fillcolor=lightgreen] interp_yout [label="Compute yout"] step2 [label="Start Next Step"] @@ -136,7 +136,7 @@ ARKStep Full RHS mass_c [label="Solve M(t) u = Fe[0], M(t) v = Fi[0]\lStore u, v in Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to f\l"] mass_d [label="Copy Fe[0] + Fi[0] to f\lSolve M x = f\lCopy x to f\l"] copy [label="Copy Fe[0] + Fi[0] to f"] - return [label="Set fn_current to True", style=filled, fillcolor=lightgreen] + return [label="Set fn_is_current to True", style=filled, fillcolor=lightgreen] fcur -> copy [taillabel="Yes", labeldistance=2, labelangle=45] fcur -> eval [taillabel="No", labeldistance=2, labelangle=45] @@ -172,7 +172,7 @@ ARKStep Full RHS mass_d2 [label="Copy Fe[0] + Fi[0] to fn\lSolve M x = fn\lCopy x to fn\l"] copy_1 [label="Copy Fe[0] + Fi[0] to fn"] copy_2 [label="Copy Fe[s-1], Fi[s-1] to Fe[0], Fi[0]\lCopy Fe[0] + Fi[0] to fn\l"] - return [label="Set fn_current to True", style=filled, fillcolor=lightgreen] + return [label="Set fn_is_current to True", style=filled, fillcolor=lightgreen] fcur -> copy_1 [taillabel="Yes", labeldistance=2, labelangle=45] fcur -> sa [taillabel="No", labeldistance=2, labelangle=45] @@ -204,7 +204,7 @@ ARKStep Full RHS // ----------------- init [label="Initialize integrator\lCopy t0, y0 to tn, yn\l"] - f0cur [label="Set fn_current to False", style=filled, fillcolor=tomato1] + f0cur [label="Set fn_is_current to False", style=filled, fillcolor=tomato1] h0 [label="Is h0 provided?"] f0_q [label="Has f(tn, yn) been computed?"] rhs_1 [label="Call Full RHS Start", style=filled, fillcolor=lightskyblue] @@ -251,7 +251,7 @@ ARKStep Full RHS f0q3 [label="Has f(tn, yn) been computed?"] rhs3 [label="Call Full RHS Start", style=filled, fillcolor=lightskyblue] update_yn [label="Copy tcur, ycur to tn, yn"] - fcur1 [label="Set fn_current to False", style=filled, fillcolor=tomato1] + fcur1 [label="Set fn_is_current to False", style=filled, fillcolor=tomato1] complete -> interp_update interp_update -> update_yn [taillabel="No", labeldistance=2, labelangle=45] diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 354ef17a0e..905d88ace4 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -287,7 +287,7 @@ int arkResize(ARKodeMem ark_mem, N_Vector y0, realtype hscale, /* Copy y0 into ark_yn to set the current solution */ N_VScale(ONE, y0, ark_mem->yn); - ark_mem->fn_current = SUNFALSE; + ark_mem->fn_is_current = SUNFALSE; /* Disable constraints */ ark_mem->constraintsSet = SUNFALSE; @@ -1332,7 +1332,7 @@ int arkInit(ARKodeMem ark_mem, realtype t0, N_Vector y0, /* Initialize yn */ N_VScale(ONE, y0, ark_mem->yn); - ark_mem->fn_current = SUNFALSE; + ark_mem->fn_is_current = SUNFALSE; /* Clear any previous 'tstop' */ ark_mem->tstopset = SUNFALSE; @@ -2069,7 +2069,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->fn_current) && irfndp != 0) { + if (!(ark_mem->fn_is_current) && irfndp != 0) { retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, ark_mem->fn, ARK_FULLRHS_END); if (retval != 0) { @@ -2078,7 +2078,7 @@ int arkStopTests(ARKodeMem ark_mem, realtype tout, N_Vector yout, *ier = ARK_RHSFUNC_FAIL; return(1); } - ark_mem->fn_current = SUNTRUE; + ark_mem->fn_is_current = SUNTRUE; } retval = arkRootCheck2((void*) ark_mem); @@ -2249,7 +2249,7 @@ int arkHin(ARKodeMem ark_mem, realtype tout) if (tdist < TWO*tround) return(ARK_TOO_CLOSE); /* call full RHS if needed */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { /* NOTE: The step size (h) is used in setting the tolerance in a potential mass matrix solve when computing the full RHS. Before calling arkHin, h @@ -2258,7 +2258,7 @@ int arkHin(ARKodeMem ark_mem, realtype tout) retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, ark_mem->fn, ARK_FULLRHS_START); if (retval) { return ARK_RHSFUNC_FAIL; } - ark_mem->fn_current = SUNTRUE; + ark_mem->fn_is_current = SUNTRUE; } /* Set lower and upper bounds on h0, and take geometric mean @@ -2477,7 +2477,7 @@ int arkCompleteStep(ARKodeMem ark_mem, realtype dsm) /* update yn to current solution */ N_VScale(ONE, ark_mem->ycur, ark_mem->yn); - ark_mem->fn_current = SUNFALSE; + ark_mem->fn_is_current = SUNFALSE; /* Update step size and error history arrays */ ark_mem->hadapt_mem->ehist[1] = ark_mem->hadapt_mem->ehist[0]; diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index a1dc2e9476..22c9097893 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1410,7 +1410,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_START: /* compute the full RHS */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { /* compute the explicit component */ if (step_mem->explicit) @@ -1510,7 +1510,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_END: /* compute the full RHS */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { /* determine if RHS functions need to be recomputed */ recomputeRHS = SUNFALSE; @@ -1834,13 +1834,13 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) end of the last step. */ if ((!implicit_stage || (stiffly_accurate && ark_mem->interp_type == ARK_INTERP_HERMITE)) - && !(ark_mem->fn_current)) + && !(ark_mem->fn_is_current)) { mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, ark_mem->fn, mode); if (retval) { return ARK_RHSFUNC_FAIL; } - ark_mem->fn_current = SUNTRUE; + ark_mem->fn_is_current = SUNTRUE; } #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_INFO diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index 750853943e..a9d23074d5 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -648,7 +648,7 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_START: /* compute the RHS */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { retval = step_mem->f(t, y, step_mem->F[0], ark_mem->user_data); step_mem->nfe++; @@ -668,7 +668,7 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_END: /* determine if RHS function needs to be recomputed */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { recomputeRHS = SUNFALSE; s = step_mem->B->stages; @@ -795,13 +795,13 @@ int erkStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) evaluation at the end of the just completed step to potentially reuse (FSAL methods) RHS evaluations from the end of the last step. */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { mode = (ark_mem->initsetup) ? ARK_FULLRHS_START : ARK_FULLRHS_END; retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, ark_mem->fn, mode); if (retval) { return ARK_RHSFUNC_FAIL; } - ark_mem->fn_current = SUNTRUE; + ark_mem->fn_is_current = SUNTRUE; } /* Loop over internal stages to the step; since the method is explicit diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index a022bd9ad8..752b888a0d 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -330,17 +330,17 @@ struct ARKodeMemRec void *step_mem; /* N_Vector storage */ - N_Vector ewt; /* error weight vector */ - N_Vector rwt; /* residual weight vector */ - booleantype rwt_is_ewt; /* SUNTRUE if rwt is a pointer to ewt */ - N_Vector ycur; /* pointer to user-provided solution memory; used - as evolving solution by the time stepper - modules */ - N_Vector yn; /* solution from the last successful step */ - N_Vector fn; /* full IVP right-hand side from last step */ - sunbooleantype fn_current; /* SUNTRUE if fn has been evaluated at yn */ - N_Vector tempv1; /* temporary storage vectors (for local use and */ - N_Vector tempv2; /* by time-stepping modules) */ + N_Vector ewt; /* error weight vector */ + N_Vector rwt; /* residual weight vector */ + booleantype rwt_is_ewt; /* SUNTRUE if rwt is a pointer to ewt */ + N_Vector ycur; /* pointer to user-provided solution memory; + used as evolving solution by the time stepper + modules */ + N_Vector yn; /* solution from the last successful step */ + N_Vector fn; /* full IVP right-hand side from last step */ + sunbooleantype fn_is_current; /* SUNTRUE if fn has been evaluated at yn */ + N_Vector tempv1; /* temporary storage vectors (for local use */ + N_Vector tempv2; /* and by time-stepping modules) */ N_Vector tempv3; N_Vector tempv4; diff --git a/src/arkode/arkode_interp.c b/src/arkode/arkode_interp.c index 6896cfe5dc..9854194c3f 100644 --- a/src/arkode/arkode_interp.c +++ b/src/arkode/arkode_interp.c @@ -415,12 +415,12 @@ int arkInterpUpdate_Hermite(void* arkode_mem, ARKInterp interp, realtype tnew) /* call full RHS if needed -- called just BEFORE the end of a step, so yn has NOT been updated to ycur yet */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, ark_mem->fn, ARK_FULLRHS_START); if (retval) { return ARK_RHSFUNC_FAIL; } - ark_mem->fn_current = SUNTRUE; + ark_mem->fn_is_current = SUNTRUE; } /* copy ynew and fnew into yold and fold, respectively */ @@ -505,12 +505,12 @@ int arkInterpEvaluate_Hermite(void* arkode_mem, ARKInterp interp, /* call full RHS if needed -- called just AFTER the end of a step, so yn has been updated to ycur */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { retval = ark_mem->step_fullrhs(ark_mem, ark_mem->tn, ark_mem->yn, ark_mem->fn, ARK_FULLRHS_END); if (retval) { return ARK_RHSFUNC_FAIL; } - ark_mem->fn_current = SUNTRUE; + ark_mem->fn_is_current = SUNTRUE; } /* error on illegal d */ diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index 1002f0d42a..f6af65c193 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -1265,7 +1265,7 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_START: /* compute the full RHS */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { /* compute the explicit component */ if (step_mem->explicit_rhs) @@ -1327,7 +1327,7 @@ int mriStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_END: /* compute the full RHS */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { /* compute the explicit component */ if (step_mem->explicit_rhs) @@ -1509,7 +1509,7 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) for FSAL or SA methods and thus avoids potentially unnecessary evaluations of the inner (fast) RHS function */ - if (!(ark_mem->fn_current)) + if (!(ark_mem->fn_is_current)) { /* compute the explicit component */ if (step_mem->explicit_rhs) @@ -1529,7 +1529,7 @@ int mriStep_TakeStep(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) if (retval) { return ARK_RHSFUNC_FAIL; } } - ark_mem->fn_current = SUNTRUE; + ark_mem->fn_is_current = SUNTRUE; } #ifdef SUNDIALS_DEBUG From 1b85835775b2a18ed9025bf9f034cadc3ee56f63 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 9 Oct 2023 11:52:28 -0700 Subject: [PATCH 62/92] add inner stepper test and return error on interpolation failure --- src/arkode/arkode.c | 23 ++- src/arkode/arkode_impl.h | 1 + .../unit_tests/arkode/C_serial/CMakeLists.txt | 1 + .../arkode/C_serial/ark_test_innerstepper.c | 155 ++++++++++++++++++ 4 files changed, 176 insertions(+), 4 deletions(-) create mode 100644 test/unit_tests/arkode/C_serial/ark_test_innerstepper.c diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 905d88ace4..d86cf7021c 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -981,7 +981,14 @@ int arkEvolve(ARKodeMem ark_mem, realtype tout, N_Vector yout, SUNRabs(tout - ark_mem->tstop) <= troundoff) { if (ark_mem->tstopinterp) { - (void) arkGetDky(ark_mem, ark_mem->tstop, 0, yout); + retval = arkGetDky(ark_mem, ark_mem->tstop, 0, yout); + if (retval != ARK_SUCCESS) + { + arkProcessError(ark_mem, retval, "ARKODE", "arkEvolve", + MSG_ARK_INTERPOLATION_FAIL, ark_mem->tstop); + istate = retval; + break; + } } else { N_VScale(ONE, ark_mem->yn, yout); } @@ -1002,11 +1009,19 @@ int arkEvolve(ARKodeMem ark_mem, realtype tout, N_Vector yout, /* In NORMAL mode, check if tout reached */ if ( (itask == ARK_NORMAL) && - (ark_mem->tcur-tout)*ark_mem->h >= ZERO ) { - istate = ARK_SUCCESS; + (ark_mem->tcur-tout)*ark_mem->h >= ZERO ) + { + retval = arkGetDky(ark_mem, tout, 0, yout); + if (retval != ARK_SUCCESS) + { + arkProcessError(ark_mem, retval, "ARKODE", "arkEvolve", + MSG_ARK_INTERPOLATION_FAIL, tout); + istate = retval; + break; + } ark_mem->tretlast = *tret = tout; - (void) arkGetDky(ark_mem, tout, 0, yout); ark_mem->next_h = ark_mem->hprime; + istate = ARK_SUCCESS; break; } diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index 752b888a0d..e4285b6120 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -1174,6 +1174,7 @@ int arkGetLastKFlag(void *arkode_mem, int *last_kflag); #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)." +#define MSG_ARK_INTERPOLATION_FAIL "At " MSG_TIME ", interpolating the solution failed." #ifdef __cplusplus } diff --git a/test/unit_tests/arkode/C_serial/CMakeLists.txt b/test/unit_tests/arkode/C_serial/CMakeLists.txt index 2c4daa7d74..558eb8c7fb 100644 --- a/test/unit_tests/arkode/C_serial/CMakeLists.txt +++ b/test/unit_tests/arkode/C_serial/CMakeLists.txt @@ -26,6 +26,7 @@ set(ARKODE_unit_tests "ark_test_arkstepsetforcing\;1 3 2.0 10.0 2.0 8.0" "ark_test_arkstepsetforcing\;1 3 2.0 10.0 1.0 5.0" "ark_test_getuserdata\;" + "ark_test_innerstepper\;" "ark_test_interp\;-100" "ark_test_interp\;-10000" "ark_test_interp\;-1000000" diff --git a/test/unit_tests/arkode/C_serial/ark_test_innerstepper.c b/test/unit_tests/arkode/C_serial/ark_test_innerstepper.c new file mode 100644 index 0000000000..330a2ed817 --- /dev/null +++ b/test/unit_tests/arkode/C_serial/ark_test_innerstepper.c @@ -0,0 +1,155 @@ +/* ----------------------------------------------------------------------------- + * Programmer(s): David J. Gardner @ LLNL + * ----------------------------------------------------------------------------- + * SUNDIALS Copyright Start + * Copyright (c) 2002-2023, Lawrence Livermore National Security + * and Southern Methodist University. + * All rights reserved. + * + * See the top-level LICENSE and NOTICE files for details. + * + * SPDX-License-Identifier: BSD-3-Clause + * SUNDIALS Copyright End + * ----------------------------------------------------------------------------- + * Unit test for creating a minimal MRIStepInnerStepper using the multirate + * Dahlquist problem problem y' = lambda_s y + lambda_f y and a custom explicit + * Euler inner stepper. + * ---------------------------------------------------------------------------*/ + +#include +#include + +#include "arkode/arkode.h" +#include "nvector/nvector_serial.h" +#include "arkode/arkode_mristep.h" + +#if defined(SUNDIALS_EXTENDED_PRECISION) +#define GSYM "Lg" +#else +#define GSYM "g" +#endif + +#define ZERO SUN_RCONST(0.0) +#define ONE SUN_RCONST(1.0) + +int ode_slow_rhs(sunrealtype t, N_Vector y, N_Vector ydot, void *user_data) +{ + sunrealtype* y_data = N_VGetArrayPointer(ydot); + sunrealtype* ydot_data = N_VGetArrayPointer(ydot); + ydot_data[0] = -ONE * y_data[0]; + return 0; +} + +int fast_evolve(MRIStepInnerStepper fast_mem, sunrealtype t0, sunrealtype tf, + N_Vector y) +{ + int i = 0; + sunrealtype h_fast = (t0 - tf) / SUN_RCONST(10.0); + sunrealtype* y_data = N_VGetArrayPointer(y); + + for (i = 0; i < 10; i++) + { + y_data[0] += (h_fast * -ONE * y_data[0]); + } + + return 0; +} + +int main(int argc, char *argv[]) +{ + SUNContext sunctx = NULL; + N_Vector y = NULL; + void* arkode_mem = NULL; + MRIStepInnerStepper fast_mem = NULL; + + int flag = 0; + int arkode_flag = 0; + sunrealtype tout = SUN_RCONST(0.10); + sunrealtype tret = ZERO; + + /* -------------- + * Create context + * -------------- */ + + flag = SUNContext_Create(NULL, &sunctx); + if (flag) { return 1; } + + /* ----------------------- + * Setup initial condition + * ----------------------- */ + + y = N_VNew_Serial(1, sunctx); + if (!y) { return 1; } + N_VConst(ONE, y); + + /* --------------------- + * Setup fast integrator + * --------------------- */ + + flag = MRIStepInnerStepper_Create(sunctx, &fast_mem); + if (flag) { return 1; } + + flag = MRIStepInnerStepper_SetEvolveFn(fast_mem, fast_evolve); + if (flag) { return 1; } + + /* --------------------- + * Setup slow integrator + * --------------------- */ + + arkode_mem = MRIStepCreate(ode_slow_rhs, NULL, ZERO, y, fast_mem, sunctx); + if (!arkode_mem) { return 1; } + + flag = MRIStepSetFixedStep(arkode_mem, SUN_RCONST(0.01)); + if (flag) { return 1; } + + flag = MRIStepSetInterpolantType(arkode_mem, ARK_INTERP_HERMITE); + if (flag) { return 1; } + + /* --------------- + * Advance in time + * --------------- */ + + /* Evolve should return a failure when using Hermite interpolation */ + arkode_flag = MRIStepEvolve(arkode_mem, tout, y, &tret, ARK_NORMAL); + printf("MRIStepEvolve returned %i\n", arkode_flag); + if (arkode_flag != ARK_RHSFUNC_FAIL) { return 1; } + + /* ----------------------- + * Reinitialize integrator + * ----------------------- */ + + N_VConst(ONE, y); + + flag = MRIStepReInit(arkode_mem, ode_slow_rhs, NULL, ZERO, y); + if (flag) { return 1; } + + flag = MRIStepSetInterpolantType(arkode_mem, ARK_INTERP_LAGRANGE); + if (flag) { return 1; } + + /* --------------- + * Advance in time + * --------------- */ + + /* Evolve should succeed when using Lagrange interpolation */ + arkode_flag = MRIStepEvolve(arkode_mem, tout, y, &tret, ARK_NORMAL); + printf("MRIStepEvolve returned %i\n", arkode_flag); + if (arkode_flag != ARK_SUCCESS) { return 1; } + + /* -------- + * Clean up + * -------- */ + + MRIStepInnerStepper_Free(&fast_mem); + MRIStepFree(&arkode_mem); + N_VDestroy(y); + SUNContext_Free(&sunctx); + + if (!flag) + { + printf("SUCCESS\n"); + } + + return flag; +} + +/*---- end of file ----*/ From dfa86337d456ca5ed5fe7d43f0aefda083a0aa92 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 9 Oct 2023 15:12:01 -0700 Subject: [PATCH 63/92] add IsStifflyAccurate Butcher table function --- .../guide/source/ARKodeButcherTable.rst | 69 +++++++++++-------- include/arkode/arkode_butcher.h | 1 + src/arkode/arkode_arkstep.c | 37 ++++------ src/arkode/arkode_butcher.c | 14 ++++ src/arkode/arkode_erkstep.c | 11 +-- .../CXX_serial/ark_test_dahlquist_ark.cpp | 15 ++-- .../CXX_serial/ark_test_dahlquist_erk.cpp | 10 +-- 7 files changed, 79 insertions(+), 78 deletions(-) diff --git a/doc/arkode/guide/source/ARKodeButcherTable.rst b/doc/arkode/guide/source/ARKodeButcherTable.rst index 8e6ea6acbc..86a13a15e4 100644 --- a/doc/arkode/guide/source/ARKodeButcherTable.rst +++ b/doc/arkode/guide/source/ARKodeButcherTable.rst @@ -76,33 +76,35 @@ ARKodeButcherTable functions .. _ARKodeButcherTable.FunctionsTable: .. table:: ARKodeButcherTable functions - +----------------------------------------------+------------------------------------------------------------+ - | **Function name** | **Description** | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_LoadERK()` | Retrieve a given explicit Butcher table by its unique ID | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_LoadERKByName()` | Retrieve a given explicit Butcher table by its unique name | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_LoadDIRK()` | Retrieve a given implicit Butcher table by its unique ID | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_LoadDIRKByName()`| Retrieve a given implicit Butcher table by its unique name | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_Alloc()` | Allocate an empty Butcher table | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_Create()` | Create a new Butcher table | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_Copy()` | Create a copy of a Butcher table | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_Space()` | Get the Butcher table real and integer workspace size | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_Free()` | Deallocate a Butcher table | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_Write()` | Write the Butcher table to an output file | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_CheckOrder()` | Check the order of a Butcher table | - +----------------------------------------------+------------------------------------------------------------+ - | :c:func:`ARKodeButcherTable_CheckARKOrder()` | Check the order of an ARK pair of Butcher tables | - +----------------------------------------------+------------------------------------------------------------+ + +--------------------------------------------------+------------------------------------------------------------+ + | **Function name** | **Description** | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_LoadERK()` | Retrieve a given explicit Butcher table by its unique ID | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_LoadERKByName()` | Retrieve a given explicit Butcher table by its unique name | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_LoadDIRK()` | Retrieve a given implicit Butcher table by its unique ID | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_LoadDIRKByName()` | Retrieve a given implicit Butcher table by its unique name | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_Alloc()` | Allocate an empty Butcher table | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_Create()` | Create a new Butcher table | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_Copy()` | Create a copy of a Butcher table | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_Space()` | Get the Butcher table real and integer workspace size | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_Free()` | Deallocate a Butcher table | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_Write()` | Write the Butcher table to an output file | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_IsStifflyAccurate()` | Determine if ``A[stages - 1][i] == b[i]`` | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_CheckOrder()` | Check the order of a Butcher table | + +--------------------------------------------------+------------------------------------------------------------+ + | :c:func:`ARKodeButcherTable_CheckARKOrder()` | Check the order of an ARK pair of Butcher tables | + +--------------------------------------------------+------------------------------------------------------------+ .. c:function:: ARKodeButcherTable ARKodeButcherTable_LoadERK(ARKODE_ERKTableID emethod) @@ -252,6 +254,19 @@ ARKodeButcherTable functions The *outfile* argument can be ``stdout`` or ``stderr``, or it may point to a specific file created using ``fopen``. +.. c:function:: void ARKodeButcherTable_IsStifflyAccurate(ARKodeButcherTable B) + + Determine if the table satisfies ``A[stages - 1][i] == b[i]`` + + **Arguments:** + * *B* -- the Butcher table. + + **Returns** + * ``SUNTRUE`` if the method is "stiffly accurate", otherwise returns + ``SUNFALSE`` + + .. versionadded:: vX.X.X + .. c:function:: int ARKodeButcherTable_CheckOrder(ARKodeButcherTable B, int* q, int* p, FILE* outfile) Determine the analytic order of accuracy for the specified Butcher diff --git a/include/arkode/arkode_butcher.h b/include/arkode/arkode_butcher.h index 1c842ebd40..6f3f5ae8ba 100644 --- a/include/arkode/arkode_butcher.h +++ b/include/arkode/arkode_butcher.h @@ -60,6 +60,7 @@ SUNDIALS_EXPORT void ARKodeButcherTable_Space(ARKodeButcherTable B, SUNDIALS_EXPORT void ARKodeButcherTable_Free(ARKodeButcherTable B); SUNDIALS_EXPORT void ARKodeButcherTable_Write(ARKodeButcherTable B, FILE *outfile); +SUNDIALS_EXPORT sunbooleantype ARKodeButcherTable_IsStifflyAccurate(ARKodeButcherTable B); SUNDIALS_EXPORT int ARKodeButcherTable_CheckOrder(ARKodeButcherTable B, int *q, int *p, FILE *outfile); SUNDIALS_EXPORT int ARKodeButcherTable_CheckARKOrder(ARKodeButcherTable B1, diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 22c9097893..79ca670145 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -19,6 +19,7 @@ #include #include +#include "arkode/arkode_butcher.h" #include "arkode_impl.h" #include "arkode_arkstep_impl.h" #include "arkode_interp_impl.h" @@ -1517,25 +1518,17 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, if (step_mem->explicit) { - s = step_mem->Be->stages; - for (i = 0; i < s; i++) + if (!ARKodeButcherTable_IsStifflyAccurate(step_mem->Be)) { - if (SUNRabs(step_mem->Be->b[i] - step_mem->Be->A[s-1][i]) > TINY) - { - recomputeRHS = SUNTRUE; - } + recomputeRHS = SUNTRUE; } } if (step_mem->implicit) { - s = step_mem->Bi->stages; - for (i = 0; i < s; i++) + if (!ARKodeButcherTable_IsStifflyAccurate(step_mem->Bi)) { - if (SUNRabs(step_mem->Bi->b[i] - step_mem->Bi->A[s-1][i]) > TINY) - { - recomputeRHS = SUNTRUE; - } + recomputeRHS = SUNTRUE; } } @@ -1752,8 +1745,8 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) int retval, is, is_start, mode; booleantype implicit_stage; booleantype deduce_stage; - booleantype save_stages = SUNFALSE; - booleantype stiffly_accurate = SUNTRUE; + booleantype save_stages; + booleantype stiffly_accurate; ARKodeMem ark_mem; ARKodeARKStepMem step_mem; N_Vector zcor0; @@ -1778,6 +1771,7 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) } /* check if we need to store stage values */ + save_stages = SUNFALSE; if (ark_mem->relax_enabled && (step_mem->implicit || step_mem->mass_type == MASS_FIXED)) { @@ -1803,25 +1797,20 @@ int arkStep_TakeStep_Z(void* arkode_mem, realtype *dsmPtr, int *nflagPtr) } /* check if the method is Stiffly Accurate (SA) */ + stiffly_accurate = SUNTRUE; if (step_mem->explicit) { - for (is = 0; is < step_mem->stages; is++) + if (!ARKodeButcherTable_IsStifflyAccurate(step_mem->Be)) { - if (SUNRabs(step_mem->Be->b[is] - step_mem->Be->A[step_mem->stages - 1][is]) > TINY) - { - stiffly_accurate = SUNFALSE; - } + stiffly_accurate = SUNFALSE; } } if (step_mem->implicit) { - for (is = 0; is < step_mem->stages; is++) + if (!ARKodeButcherTable_IsStifflyAccurate(step_mem->Bi)) { - if (SUNRabs(step_mem->Bi->b[is] - step_mem->Bi->A[step_mem->stages - 1][is]) > TINY) - { - stiffly_accurate = SUNFALSE; - } + stiffly_accurate = SUNFALSE; } } diff --git a/src/arkode/arkode_butcher.c b/src/arkode/arkode_butcher.c index e16191fcb5..61a7cb342f 100644 --- a/src/arkode/arkode_butcher.c +++ b/src/arkode/arkode_butcher.c @@ -304,6 +304,20 @@ void ARKodeButcherTable_Write(ARKodeButcherTable B, FILE *outfile) } +sunbooleantype ARKodeButcherTable_IsStifflyAccurate(ARKodeButcherTable B) +{ + int i; + for (i = 0; i < B->stages; i++) + { + if (SUNRabs(B->b[i] - B->A[B->stages - 1][i]) > 100 * SUN_UNIT_ROUNDOFF) + { + return SUNFALSE; + } + } + return SUNTRUE; +} + + /*--------------------------------------------------------------- Routine to determine the analytical order of accuracy for a specified Butcher table. We check the analytical [necessary] diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index a9d23074d5..a9d1d84205 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -19,6 +19,7 @@ #include #include +#include "arkode/arkode_butcher.h" #include "arkode_impl.h" #include "arkode_erkstep_impl.h" #include "arkode_interp_impl.h" @@ -670,15 +671,7 @@ int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, /* determine if RHS function needs to be recomputed */ if (!(ark_mem->fn_is_current)) { - recomputeRHS = SUNFALSE; - s = step_mem->B->stages; - for (i = 0; i < s; i++) - { - if (SUNRabs(step_mem->B->b[i] - step_mem->B->A[s-1][i]) > TINY) - { - recomputeRHS = SUNTRUE; - } - } + recomputeRHS = !ARKodeButcherTable_IsStifflyAccurate(step_mem->B); /* First Same As Last methods are not FSAL when relaxation is enabled */ if (ark_mem->relax_enabled) { recomputeRHS = SUNTRUE; } diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp index 00ff65c14d..6cc8f27c24 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -29,6 +29,7 @@ #include #include #include +#include "arkode/arkode_butcher.h" #if defined(SUNDIALS_EXTENDED_PRECISION) #define GSYM "Lg" @@ -705,22 +706,16 @@ int get_method_properties(ARKodeButcherTable Be, ARKodeButcherTable Bi, stiffly_accurate = true; if (Bi) { - for (int i = 0; i < stages; i++) + if (!ARKodeButcherTable_IsStifflyAccurate(Bi)) { - if (std::abs(Bi->b[i] - Bi->A[stages - 1][i]) > ZERO) - { - stiffly_accurate = false; - } + stiffly_accurate = false; } } if (Be) { - for (int i = 0; i < stages; i++) + if (!ARKodeButcherTable_IsStifflyAccurate(Be)) { - if (std::abs(Be->b[i] - Be->A[stages - 1][i]) > ZERO) - { - stiffly_accurate = false; - } + stiffly_accurate = false; } } diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp index 90b9cdbcb6..ec10883eeb 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp @@ -25,6 +25,7 @@ #include #include +#include "arkode/arkode_butcher.h" #if defined(SUNDIALS_EXTENDED_PRECISION) #define GSYM "Lg" @@ -404,14 +405,7 @@ int get_method_properties(ARKodeButcherTable Be, int& stages, int& order, if (std::abs(Be->A[0][0]) > ZERO) { explicit_first_stage = false; } // Check for stiffly accurate method - stiffly_accurate = true; - for (int i = 0; i < stages; i++) - { - if (std::abs(Be->b[i] - Be->A[stages - 1][i]) > ZERO) - { - stiffly_accurate = false; - } - } + stiffly_accurate = ARKodeButcherTable_IsStifflyAccurate(Be); // Check for first same as last (FSAL) property fsal = explicit_first_stage && stiffly_accurate; From 6a593b71b5711dc4ef8063d506315cb4e1c01950 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 9 Oct 2023 16:06:28 -0700 Subject: [PATCH 64/92] fix warnings with apple-clang 15.0.0 --- examples/nvector/test_nvector.c | 2 +- src/arkode/arkode_arkstep.c | 2 +- src/arkode/arkode_erkstep.c | 2 +- src/sundials/sundials_context.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/nvector/test_nvector.c b/examples/nvector/test_nvector.c index ea25cd569a..76cf153945 100644 --- a/examples/nvector/test_nvector.c +++ b/examples/nvector/test_nvector.c @@ -378,7 +378,7 @@ int Test_N_VGetArrayPointer(N_Vector W, sunindextype local_length, int myid) start_time = get_time(); Wdata = N_VGetArrayPointer(W); stop_time = get_time(); - Wdata++; Wdata=NULL; /* Do something with pointer to surpress warning */ + Wdata[0] = ONE; /* Do something with pointer to surpress warning */ /* check vector data */ if (!has_data(W)) { diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 79ca670145..f24ef678e6 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1383,7 +1383,7 @@ int arkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, { ARKodeMem ark_mem; ARKodeARKStepMem step_mem; - int i, s, nvec, retval; + int nvec, retval; booleantype recomputeRHS; realtype* cvals; N_Vector* Xvecs; diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index a9d1d84205..ee26640e02 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -633,7 +633,7 @@ int erkStep_Init(void* arkode_mem, int init_type) int erkStep_FullRHS(void* arkode_mem, realtype t, N_Vector y, N_Vector f, int mode) { - int i, s, retval; + int retval; ARKodeMem ark_mem; ARKodeERKStepMem step_mem; booleantype recomputeRHS; diff --git a/src/sundials/sundials_context.c b/src/sundials/sundials_context.c index 94f90301b8..9ff4204da7 100644 --- a/src/sundials/sundials_context.c +++ b/src/sundials/sundials_context.c @@ -339,4 +339,4 @@ void sunAdiakCollectMetadata() { #endif } -#endif \ No newline at end of file +#endif From e11f19b94d5bc3634cb0ae60bad4176aade30905 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 19 Oct 2023 12:35:02 -0700 Subject: [PATCH 65/92] update max lin iters in diffusion examples --- examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp | 2 +- examples/arkode/CXX_parallel/ark_heat2D_p.cpp | 2 +- examples/arkode/CXX_serial/ark_heat2D.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp index 15fac77098..1a5c98eeab 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp @@ -307,7 +307,7 @@ struct UserData bool pcg = true; // use PCG (true) or GMRES (false) bool prec = true; // preconditioner on/off bool lsinfo = false; // output residual history - int liniters = 5; // number of linear iterations + int liniters = 10; // number of linear iterations int msbp = 0; // preconditioner setup frequency (0 = default) realtype epslin = ZERO; // linear solver tolerance factor (ZERO = default) N_Vector diag = NULL; // inverse of Jacobian diagonal diff --git a/examples/arkode/CXX_parallel/ark_heat2D_p.cpp b/examples/arkode/CXX_parallel/ark_heat2D_p.cpp index 32623f530c..485c1115ff 100644 --- a/examples/arkode/CXX_parallel/ark_heat2D_p.cpp +++ b/examples/arkode/CXX_parallel/ark_heat2D_p.cpp @@ -1347,7 +1347,7 @@ static int InitUserData(UserData *udata) udata->pcg = true; // use PCG (true) or GMRES (false) udata->prec = true; // enable preconditioning udata->lsinfo = false; // output residual history - udata->liniters = 20; // max linear iterations + udata->liniters = 40; // max linear iterations udata->msbp = 0; // use default (20 steps) udata->epslin = ZERO; // use default (0.05) diff --git a/examples/arkode/CXX_serial/ark_heat2D.cpp b/examples/arkode/CXX_serial/ark_heat2D.cpp index 3a78042a25..ae654ff5d0 100644 --- a/examples/arkode/CXX_serial/ark_heat2D.cpp +++ b/examples/arkode/CXX_serial/ark_heat2D.cpp @@ -691,7 +691,7 @@ static int InitUserData(UserData *udata) udata->pcg = true; // use PCG (true) or GMRES (false) udata->prec = true; // enable preconditioning udata->lsinfo = false; // output residual history - udata->liniters = 20; // max linear iterations + udata->liniters = 40; // max linear iterations udata->msbp = 0; // use default (20 steps) udata->epslin = ZERO; // use default (0.05) From 81bce91755cefff95029e2d83866ddc6c21e6897 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 19 Oct 2023 12:35:24 -0700 Subject: [PATCH 66/92] tighten nonlinear solver tolerance in KPR convergence test --- examples/arkode/CXX_serial/ark_kpr_Mt.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt.cpp b/examples/arkode/CXX_serial/ark_kpr_Mt.cpp index 53a6e56ec5..83e549c031 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt.cpp +++ b/examples/arkode/CXX_serial/ark_kpr_Mt.cpp @@ -631,6 +631,8 @@ static int check_order(void *arkode_mem, N_Vector y, realtype T0, if (check_retval(&retval, "ARKStepSetLSetupFrequency", 1)) return 1; retval = ARKStepSetMaxNonlinIters(arkode_mem, 20); if (check_retval(&retval, "ARKStepSetMaxNonlinIters", 1)) return 1; + retval = ARKStepSetNonlinConvCoef(arkode_mem, SUN_RCONST(0.01)); + if (check_retval(&retval, "ARKStepSetNonlinConvCoef", 1)) return 1; } // Set array of fixed step sizes to use, storage for corresponding errors/orders From af60f72541d1bead43d75ac1695dbdc514146877 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 19 Oct 2023 15:09:33 -0700 Subject: [PATCH 67/92] update output files --- ...k_diffusion_reaction_p_--np_2_2_--imex.out | 64 ++++++++--------- ...sion_reaction_p_--np_2_2_--mri-arkstep.out | 58 +++++++-------- ...reaction_p_--np_2_2_--mri-cvode-global.out | 58 +++++++-------- ..._reaction_p_--np_2_2_--mri-cvode-local.out | 54 +++++++------- .../CXX_parallel/ark_heat2D_p_--np_2_2.out | 70 +++++++++---------- examples/arkode/CXX_serial/ark_heat2D.out | 70 +++++++++---------- .../arkode/CXX_serial/ark_kpr_Mt_0_-4.out | 8 +-- .../CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out | 2 +- .../arkode/CXX_serial/ark_kpr_Mt_1_-5.out | 14 ++-- 9 files changed, 199 insertions(+), 199 deletions(-) diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out index e2cfe25a3e..06735a9ae5 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--imex.out @@ -37,7 +37,7 @@ linear = 1 --------------------------------- linear solver = PCG - lin iters = 5 + lin iters = 10 eps lin = 0 prec = 1 msbp = 0 @@ -48,45 +48,45 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.172144385112383e+00 - 5.000000000000000e-01 3.136697755289245e+00 - 1.000000000000000e+00 3.125045363662519e+00 - 1.500000000000000e+00 3.152621144482752e+00 - 2.000000000000000e+00 3.252103105111211e+00 - 2.500000000000000e+00 3.404836380445778e+00 - 3.000000000000000e+00 3.570289124032259e+00 - 3.500000000000000e+00 3.700390110599262e+00 - 4.000000000000000e+00 3.695069067461584e+00 - 4.500000000000000e+00 3.628501948241147e+00 - 5.000000000000000e+00 3.475486870968288e+00 - 5.500000000000000e+00 3.344048556646717e+00 - 6.000000000000000e+00 3.234016955415836e+00 - 6.500000000000000e+00 3.082257265934162e+00 - 7.000000000000000e+00 2.890412267831545e+00 - 7.500000000000000e+00 2.837091002264438e+00 - 8.000000000000000e+00 2.898066439117228e+00 - 8.500000000000000e+00 3.139960237168968e+00 - 9.000000000000000e+00 3.442188896137627e+00 - 9.500000000000000e+00 3.740379679871287e+00 - 1.000000000000000e+01 4.014473424455050e+00 + 5.000000000000000e-01 3.136697189650961e+00 + 1.000000000000000e+00 3.125045556354785e+00 + 1.500000000000000e+00 3.152624763885952e+00 + 2.000000000000000e+00 3.252110216645144e+00 + 2.500000000000000e+00 3.404844617318184e+00 + 3.000000000000000e+00 3.570312084328844e+00 + 3.500000000000000e+00 3.700253327108766e+00 + 4.000000000000000e+00 3.694878484122721e+00 + 4.500000000000000e+00 3.628319195038670e+00 + 5.000000000000000e+00 3.475278388464473e+00 + 5.500000000000000e+00 3.343897893358916e+00 + 6.000000000000000e+00 3.233978972947007e+00 + 6.500000000000000e+00 3.082324512637206e+00 + 7.000000000000000e+00 2.890530860599866e+00 + 7.500000000000000e+00 2.837258314564151e+00 + 8.000000000000000e+00 2.898203339016268e+00 + 8.500000000000000e+00 3.140063067933301e+00 + 9.000000000000000e+00 3.442273509340489e+00 + 9.500000000000000e+00 3.740451074463314e+00 + 1.000000000000000e+01 4.014529388100347e+00 ---------------------------------------------- Final integrator statistics: Steps = 105 - Step attempts = 111 - Error test fails = 6 - RHS reaction = 440 - RHS diffusion = 773 - NLS iters = 333 + Step attempts = 112 + Error test fails = 7 + RHS reaction = 443 + RHS diffusion = 779 + NLS iters = 336 NLS fails = 0 - LS iters = 1638 - LS fails = 300 + LS iters = 2697 + LS fails = 87 LS setups = 0 - LS RHS evals = 1638 - Jv products = 1638 + LS RHS evals = 2697 + Jv products = 2697 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 4.918919 + Avg LS iters per NLS iter = 8.026786 Preconditioner setups = 0 - Preconditioner solves = 1638 + Preconditioner solves = 2697 diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out index 4edb64b140..d62f51b72f 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out @@ -40,7 +40,7 @@ linear = 1 --------------------------------- linear solver = PCG - lin iters = 5 + lin iters = 10 eps lin = 0 prec = 1 msbp = 0 @@ -52,25 +52,25 @@ ---------------------------------------------- 0.000000000000000e+00 3.172144385112383e+00 5.000000000000000e-01 3.136741760482618e+00 - 1.000000000000000e+00 3.125063288424227e+00 - 1.500000000000000e+00 3.152612176629299e+00 - 2.000000000000000e+00 3.252044079453045e+00 - 2.500000000000000e+00 3.404766178896478e+00 - 3.000000000000000e+00 3.570191917030535e+00 - 3.500000000000000e+00 3.699971165654502e+00 - 4.000000000000000e+00 3.694662537921265e+00 - 4.500000000000000e+00 3.628189018300024e+00 - 5.000000000000000e+00 3.475208310606769e+00 - 5.500000000000000e+00 3.343918144987400e+00 - 6.000000000000000e+00 3.234050095887160e+00 - 6.500000000000000e+00 3.082472723584817e+00 - 7.000000000000000e+00 2.890777340892890e+00 - 7.500000000000000e+00 2.837371912220970e+00 - 8.000000000000000e+00 2.898199506147806e+00 - 8.500000000000000e+00 3.139974447562073e+00 - 9.000000000000000e+00 3.442146067816335e+00 - 9.500000000000000e+00 3.740323990247354e+00 - 1.000000000000000e+01 4.014407795965944e+00 + 1.000000000000000e+00 3.125063175363783e+00 + 1.500000000000000e+00 3.152612863986941e+00 + 2.000000000000000e+00 3.252046433219017e+00 + 2.500000000000000e+00 3.404770329494351e+00 + 3.000000000000000e+00 3.570197852205681e+00 + 3.500000000000000e+00 3.699979314427705e+00 + 4.000000000000000e+00 3.694673751772928e+00 + 4.500000000000000e+00 3.628192785115424e+00 + 5.000000000000000e+00 3.475181822861138e+00 + 5.500000000000000e+00 3.343883454412250e+00 + 6.000000000000000e+00 3.234020089000460e+00 + 6.500000000000000e+00 3.082396890292331e+00 + 7.000000000000000e+00 2.890645316156054e+00 + 7.500000000000000e+00 2.837264106216743e+00 + 8.000000000000000e+00 2.898204458277535e+00 + 8.500000000000000e+00 3.140043918283985e+00 + 9.000000000000000e+00 3.442234957111755e+00 + 9.500000000000000e+00 3.740410490147616e+00 + 1.000000000000000e+01 4.014486595474152e+00 ---------------------------------------------- Final integrator statistics: @@ -80,20 +80,20 @@ Slow Integrator: RHS diffusion = 792 NLS iters = 396 NLS fails = 0 - LS iters = 1954 - LS fails = 328 + LS iters = 2638 + LS fails = 0 LS setups = 0 - LS RHS evals = 1954 - Jv products = 1954 + LS RHS evals = 2638 + Jv products = 2638 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 4.934343 + Avg LS iters per NLS iter = 6.661616 Preconditioner setups = 0 - Preconditioner solves = 1954 + Preconditioner solves = 2638 Fast Integrator: - Steps = 472 - Step attempts = 472 + Steps = 470 + Step attempts = 470 Error test fails = 0 - RHS reaction = 1833 + RHS reaction = 1827 diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-global.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-global.out index 03c9f8ce99..eb6c3b2f7a 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-global.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-global.out @@ -40,7 +40,7 @@ linear = 1 --------------------------------- linear solver = PCG - lin iters = 5 + lin iters = 10 eps lin = 0 prec = 1 msbp = 0 @@ -52,25 +52,25 @@ ---------------------------------------------- 0.000000000000000e+00 3.172144385112383e+00 5.000000000000000e-01 3.136722629465066e+00 - 1.000000000000000e+00 3.125057666159531e+00 - 1.500000000000000e+00 3.152636290021100e+00 - 2.000000000000000e+00 3.252083347119256e+00 - 2.500000000000000e+00 3.404787326260405e+00 - 3.000000000000000e+00 3.570169612064414e+00 - 3.500000000000000e+00 3.699861041719807e+00 - 4.000000000000000e+00 3.694342711292659e+00 - 4.500000000000000e+00 3.627870941932435e+00 - 5.000000000000000e+00 3.474902190560723e+00 - 5.500000000000000e+00 3.343695434939634e+00 - 6.000000000000000e+00 3.233894498163541e+00 - 6.500000000000000e+00 3.082341713678574e+00 - 7.000000000000000e+00 2.890723917928596e+00 - 7.500000000000000e+00 2.837417967150272e+00 - 8.000000000000000e+00 2.898409418371463e+00 - 8.500000000000000e+00 3.140209829663979e+00 - 9.000000000000000e+00 3.442357276093309e+00 - 9.500000000000000e+00 3.740503273636440e+00 - 1.000000000000000e+01 4.014544572497562e+00 + 1.000000000000000e+00 3.125057552024107e+00 + 1.500000000000000e+00 3.152636979017849e+00 + 2.000000000000000e+00 3.252085784090209e+00 + 2.500000000000000e+00 3.404791619294692e+00 + 3.000000000000000e+00 3.570175845435155e+00 + 3.500000000000000e+00 3.699871659893790e+00 + 4.000000000000000e+00 3.694354186527817e+00 + 4.500000000000000e+00 3.627867393042675e+00 + 5.000000000000000e+00 3.474857085470333e+00 + 5.500000000000000e+00 3.343640002216232e+00 + 6.000000000000000e+00 3.233844046127571e+00 + 6.500000000000000e+00 3.082251062694838e+00 + 7.000000000000000e+00 2.890585369424622e+00 + 7.500000000000000e+00 2.837315452756236e+00 + 8.000000000000000e+00 2.898424893363213e+00 + 8.500000000000000e+00 3.140291028418725e+00 + 9.000000000000000e+00 3.442457327275146e+00 + 9.500000000000000e+00 3.740600281636448e+00 + 1.000000000000000e+01 4.014633157708740e+00 ---------------------------------------------- Final integrator statistics: @@ -80,22 +80,22 @@ Slow Integrator: RHS diffusion = 792 NLS iters = 396 NLS fails = 0 - LS iters = 1958 - LS fails = 361 + LS iters = 2640 + LS fails = 0 LS setups = 0 - LS RHS evals = 1958 - Jv products = 1958 + LS RHS evals = 2640 + Jv products = 2640 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 4.944444 + Avg LS iters per NLS iter = 6.666667 Preconditioner setups = 0 - Preconditioner solves = 1958 + Preconditioner solves = 2640 Fast Integrator: - Steps = 2058 + Steps = 2057 Error test fails = 392 - RHS reaction = 4992 - NLS iters = 3804 + RHS reaction = 4991 + NLS iters = 3803 NLS fails = 0 diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-local.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-local.out index 7d1d37d829..2069d3daf0 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-local.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-cvode-local.out @@ -40,7 +40,7 @@ linear = 1 --------------------------------- linear solver = PCG - lin iters = 5 + lin iters = 10 eps lin = 0 prec = 1 msbp = 0 @@ -51,26 +51,26 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.172144385112383e+00 - 5.000000000000000e-01 3.136728159494494e+00 - 1.000000000000000e+00 3.125054277650959e+00 - 1.500000000000000e+00 3.152604392883360e+00 - 2.000000000000000e+00 3.252018267648228e+00 - 2.500000000000000e+00 3.404688232954761e+00 - 3.000000000000000e+00 3.570039091260456e+00 - 3.500000000000000e+00 3.699700617638115e+00 - 4.000000000000000e+00 3.694127992765750e+00 - 4.500000000000000e+00 3.627693732995581e+00 - 5.000000000000000e+00 3.474745808958595e+00 - 5.500000000000000e+00 3.343638848927724e+00 - 6.000000000000000e+00 3.233956510132078e+00 - 6.500000000000000e+00 3.082497090887950e+00 - 7.000000000000000e+00 2.890880779320601e+00 - 7.500000000000000e+00 2.837548720834195e+00 - 8.000000000000000e+00 2.898444607824460e+00 - 8.500000000000000e+00 3.140194708467158e+00 - 9.000000000000000e+00 3.442324814047467e+00 - 9.500000000000000e+00 3.740458273532059e+00 - 1.000000000000000e+01 4.014484356709024e+00 + 5.000000000000000e-01 3.136728141568442e+00 + 1.000000000000000e+00 3.125054078969537e+00 + 1.500000000000000e+00 3.152605475501787e+00 + 2.000000000000000e+00 3.252022913428429e+00 + 2.500000000000000e+00 3.404698680378851e+00 + 3.000000000000000e+00 3.570053730764652e+00 + 3.500000000000000e+00 3.699720763396807e+00 + 4.000000000000000e+00 3.694157931241854e+00 + 4.500000000000000e+00 3.627712125668464e+00 + 5.000000000000000e+00 3.474734466021550e+00 + 5.500000000000000e+00 3.343606933034505e+00 + 6.000000000000000e+00 3.233915506336244e+00 + 6.500000000000000e+00 3.082406527906669e+00 + 7.000000000000000e+00 2.890736516064352e+00 + 7.500000000000000e+00 2.837432528460552e+00 + 8.000000000000000e+00 2.898441248594821e+00 + 8.500000000000000e+00 3.140256919387213e+00 + 9.000000000000000e+00 3.442407086783334e+00 + 9.500000000000000e+00 3.740539247790086e+00 + 1.000000000000000e+01 4.014559182532612e+00 ---------------------------------------------- Final integrator statistics: @@ -80,17 +80,17 @@ Slow Integrator: RHS diffusion = 792 NLS iters = 396 NLS fails = 0 - LS iters = 1965 - LS fails = 358 + LS iters = 2630 + LS fails = 0 LS setups = 0 - LS RHS evals = 1965 - Jv products = 1965 + LS RHS evals = 2630 + Jv products = 2630 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 4.962121 + Avg LS iters per NLS iter = 6.641414 Preconditioner setups = 0 - Preconditioner solves = 1965 + Preconditioner solves = 2630 Fast Integrator: Steps = 2002 diff --git a/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out b/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out index a281c8a168..22ceca7901 100644 --- a/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out +++ b/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out @@ -26,7 +26,7 @@ linear = 1 --------------------------------- linear solver = PCG - lin iters = 20 + lin iters = 40 eps lin = 0 prec = 1 msbp = 0 @@ -37,45 +37,45 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.632812500000001e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.551986895896301e-01 2.454809192749874e-03 - 1.000000000000000e-01 3.296218924797935e-01 2.893504575480321e-03 - 1.500000000000000e-01 2.894444839668597e-01 2.832208342478770e-03 - 2.000000000000000e-01 2.387098901092724e-01 2.521692271806208e-03 - 2.500000000000000e-01 1.824251441298110e-01 2.077136177408678e-03 - 3.000000000000000e-01 1.261158170834051e-01 1.577512738791642e-03 - 3.500000000000000e-01 7.529897185173372e-02 1.082631769255271e-03 - 4.000000000000000e-01 3.495158561042949e-02 6.467797520159912e-04 - 4.500000000000000e-01 9.023455972295553e-03 3.130158624281738e-04 - 4.999999999999999e-01 5.516397406232856e-05 1.156062150588009e-04 - 5.499999999999999e-01 8.918869101698226e-03 7.363173064021955e-05 - 6.000000000000000e-01 3.475274021243870e-02 1.914355966323028e-04 - 6.500000000000000e-01 7.502602578332933e-02 4.575663730630175e-04 - 7.000000000000001e-01 1.257964771360131e-01 8.459318369608559e-04 - 7.500000000000001e-01 1.820944124085353e-01 1.318720280925501e-03 - 8.000000000000002e-01 2.384088105492750e-01 1.829169545728648e-03 - 8.500000000000002e-01 2.892274299179443e-01 2.327857203215489e-03 - 9.000000000000002e-01 3.295755856715070e-01 2.765412959527036e-03 - 9.500000000000003e-01 3.555036664911532e-01 3.099463807382241e-03 - 1.000000000000000e+00 3.644740299640661e-01 3.296883675957818e-03 + 5.000000000000000e-02 3.551988423210773e-01 2.455482120815589e-03 + 1.000000000000000e-01 3.296234296573138e-01 2.897897073513955e-03 + 1.500000000000000e-01 2.894441904138305e-01 2.832302527497887e-03 + 2.000000000000000e-01 2.387114755959542e-01 2.525795107893525e-03 + 2.500000000000000e-01 1.824256470866840e-01 2.078267208446394e-03 + 3.000000000000000e-01 1.261168089372778e-01 1.580110971926563e-03 + 3.500000000000000e-01 7.529981316682129e-02 1.084791446543720e-03 + 4.000000000000000e-01 3.495180884859733e-02 6.472678270688648e-04 + 4.500000000000000e-01 9.023693981846130e-03 3.135811045401164e-04 + 4.999999999999999e-01 5.528701660572343e-05 1.158664446240334e-04 + 5.499999999999999e-01 8.918915915762276e-03 7.372605991916303e-05 + 6.000000000000000e-01 3.475275190982390e-02 1.914158143558886e-04 + 6.500000000000000e-01 7.502609255922740e-02 4.577117946851506e-04 + 7.000000000000001e-01 1.257965750948526e-01 8.461652738148140e-04 + 7.500000000000001e-01 1.820941861195771e-01 1.318095240728456e-03 + 8.000000000000002e-01 2.384093995819983e-01 1.830603331435809e-03 + 8.500000000000002e-01 2.892274535841603e-01 2.327914367739603e-03 + 9.000000000000002e-01 3.295751198182689e-01 2.764242172780151e-03 + 9.500000000000003e-01 3.555039204325286e-01 3.099493020647270e-03 + 1.000000000000000e+00 3.644737419741893e-01 3.296010439042152e-03 ----------------------------------------------------------------------- Final integrator statistics: - Steps = 212 - Step attempts = 278 - Error test fails = 66 - RHS evals = 1671 - NLS iters = 834 + Steps = 124 + Step attempts = 125 + Error test fails = 1 + RHS evals = 753 + NLS iters = 375 NLS fails = 0 - LS iters = 16144 - LS fails = 783 - LS setups = 149 - LS RHS evals = 16144 - Jv products = 16144 + LS iters = 12943 + LS fails = 36 + LS setups = 56 + LS RHS evals = 12943 + Jv products = 12943 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 19.357314 + Avg LS iters per NLS iter = 34.514667 - Preconditioner setups = 67 - Preconditioner solves = 16144 + Preconditioner setups = 4 + Preconditioner solves = 12943 - Max error = 3.296883675957818e-03 + Max error = 3.296010439042152e-03 diff --git a/examples/arkode/CXX_serial/ark_heat2D.out b/examples/arkode/CXX_serial/ark_heat2D.out index c5b0a2525e..61921595f5 100644 --- a/examples/arkode/CXX_serial/ark_heat2D.out +++ b/examples/arkode/CXX_serial/ark_heat2D.out @@ -20,7 +20,7 @@ linear = 1 --------------------------------- linear solver = PCG - lin iters = 20 + lin iters = 40 eps lin = 0 prec = 1 msbp = 0 @@ -31,45 +31,45 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.632812500000000e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.551985098542798e-01 2.454186628624844e-03 - 1.000000000000000e-01 3.296220192902475e-01 2.893773472733230e-03 - 1.500000000000000e-01 2.894444030745082e-01 2.832677636714465e-03 - 2.000000000000000e-01 2.387097539034183e-01 2.521359923804090e-03 - 2.500000000000000e-01 1.824252333193799e-01 2.077373198548560e-03 - 3.000000000000000e-01 1.261157686830275e-01 1.577507359157349e-03 - 3.500000000000000e-01 7.529896076825714e-02 1.082671564304138e-03 - 4.000000000000000e-01 3.495143178674121e-02 6.464124900900231e-04 - 4.500000000000000e-01 9.023428737472831e-03 3.129818776226138e-04 - 4.999999999999999e-01 5.513764028489616e-05 1.155516508160836e-04 - 5.499999999999999e-01 8.918883646077789e-03 7.367502288030403e-05 - 6.000000000000000e-01 3.475276474614436e-02 1.915025319679242e-04 - 6.500000000000000e-01 7.502609185709115e-02 4.577462621551120e-04 - 7.000000000000001e-01 1.257965856654374e-01 8.462707750805931e-04 - 7.500000000000001e-01 1.820943276158712e-01 1.318505532336145e-03 - 8.000000000000002e-01 2.384088925045184e-01 1.829516851343471e-03 - 8.500000000000002e-01 2.892274135430374e-01 2.327923868139070e-03 - 9.000000000000002e-01 3.295755998811176e-01 2.765541643157010e-03 - 9.500000000000003e-01 3.555039541806354e-01 3.099904652095753e-03 - 1.000000000000000e+00 3.644741568903656e-01 3.297049110868921e-03 + 5.000000000000000e-02 3.551988423225977e-01 2.455482142558529e-03 + 1.000000000000000e-01 3.296234296731421e-01 2.897897083898759e-03 + 1.500000000000000e-01 2.894441903938073e-01 2.832302514028218e-03 + 2.000000000000000e-01 2.387114755216789e-01 2.525794784800972e-03 + 2.500000000000000e-01 1.824256470664105e-01 2.078267131840561e-03 + 3.000000000000000e-01 1.261168089173533e-01 1.580110898853460e-03 + 3.500000000000000e-01 7.529981314828814e-02 1.084791391229467e-03 + 4.000000000000000e-01 3.495180885901539e-02 6.472678566764728e-04 + 4.500000000000000e-01 9.023693981822302e-03 3.135811043245493e-04 + 4.999999999999999e-01 5.528701630648521e-05 1.158664439714102e-04 + 5.499999999999999e-01 8.918915915553700e-03 7.372606022660808e-05 + 6.000000000000000e-01 3.475275190931830e-02 1.914158144245698e-04 + 6.500000000000000e-01 7.502609255736004e-02 4.577117907992034e-04 + 7.000000000000001e-01 1.257965750974924e-01 8.461652828621880e-04 + 7.500000000000001e-01 1.820941861251605e-01 1.318095241004014e-03 + 8.000000000000002e-01 2.384093995943868e-01 1.830603310640888e-03 + 8.500000000000002e-01 2.892274535564041e-01 2.327914286174293e-03 + 9.000000000000002e-01 3.295751197219703e-01 2.764241935276468e-03 + 9.500000000000003e-01 3.555039205013979e-01 3.099493195011460e-03 + 1.000000000000000e+00 3.644737419740317e-01 3.296010437027208e-03 ----------------------------------------------------------------------- Final integrator statistics: - Steps = 199 - Step attempts = 249 - Error test fails = 50 - RHS evals = 1497 - NLS iters = 747 + Steps = 124 + Step attempts = 125 + Error test fails = 1 + RHS evals = 753 + NLS iters = 375 NLS fails = 0 - LS iters = 14751 - LS fails = 726 - LS setups = 117 - LS RHS evals = 14751 - Jv products = 14751 + LS iters = 12945 + LS fails = 37 + LS setups = 56 + LS RHS evals = 12945 + Jv products = 12945 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 19.746988 + Avg LS iters per NLS iter = 34.520000 - Preconditioner setups = 51 - Preconditioner solves = 14751 + Preconditioner setups = 4 + Preconditioner solves = 12945 - Max error = 3.297049110868921e-03 + Max error = 3.296010437027208e-03 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_0_-4.out b/examples/arkode/CXX_serial/ark_kpr_Mt_0_-4.out index 28232c62c7..8a2bebd177 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_0_-4.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_0_-4.out @@ -16,8 +16,8 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: h = 1.250e-01, error = 1.367e-05, order = 1.54 h = 6.250e-02, error = 3.085e-06, order = 2.15 h = 3.125e-02, error = 4.714e-07, order = 2.71 - h = 1.562e-02, error = 5.336e-08, order = 3.14 - h = 7.812e-03, error = 4.819e-09, order = 3.47 - h = 3.906e-03, error = 3.726e-10, order = 3.69 + h = 1.562e-02, error = 5.337e-08, order = 3.14 + h = 7.812e-03, error = 4.828e-09, order = 3.47 + h = 3.906e-03, error = 3.726e-10, order = 3.70 ----------------------------------------------------- - Order: max = 3.69, avg = 2.53, overall = 2.57 [SUCCESS] + Order: max = 3.70, avg = 2.53, overall = 2.57 [SUCCESS] diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out index f46a56f17b..b3ee50ac25 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out @@ -17,7 +17,7 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: h = 6.250e-02, error = 1.109e-06, order = 2.86 h = 3.125e-02, error = 1.482e-07, order = 2.90 h = 1.562e-02, error = 1.929e-08, order = 2.94 - h = 7.812e-03, error = 2.466e-09, order = 2.97 + h = 7.812e-03, error = 2.467e-09, order = 2.97 h = 3.906e-03, error = 3.121e-10, order = 2.98 ----------------------------------------------------- Order: max = 2.98, avg = 2.89, overall = 2.89 [SUCCESS] diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out index d580da10e9..acf5c40569 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out @@ -13,11 +13,11 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: ----------------------------------------------------- h = 5.000e-01, error = 1.725e-05 h = 2.500e-01, error = 2.900e-06, order = 2.57 - h = 1.250e-01, error = 3.630e-07, order = 3.00 - h = 6.250e-02, error = 2.783e-08, order = 3.71 - h = 3.125e-02, error = 1.199e-09, order = 4.54 - h = 1.562e-02, error = 4.657e-11, order = 4.69 - h = 7.812e-03, error = 9.513e-12, order = 2.29 - h = 3.906e-03, error = 1.389e-10, order = -3.87 + h = 1.250e-01, error = 3.629e-07, order = 3.00 + h = 6.250e-02, error = 2.782e-08, order = 3.71 + h = 3.125e-02, error = 1.203e-09, order = 4.53 + h = 1.562e-02, error = 3.681e-11, order = 5.03 + h = 7.812e-03, error = 1.638e-12, order = 4.49 + h = 3.906e-03, error = 5.994e-13, order = 1.45 ----------------------------------------------------- - Order: max = 4.69, avg = 2.42, overall = 3.01 [SUCCESS] + Order: max = 5.03, avg = 3.54, overall = 3.83 [SUCCESS] From 503de0cec4e894f1d5414ff4160c3fb191b68a4b Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 19 Oct 2023 17:11:11 -0700 Subject: [PATCH 68/92] relaxation: remove delta y fn, loosen res tol --- examples/arkode/CXX_serial/ark_pendulum.cpp | 3 ++ src/arkode/arkode_arkstep.c | 58 --------------------- src/arkode/arkode_arkstep_impl.h | 1 - src/arkode/arkode_arkstep_io.c | 4 +- src/arkode/arkode_erkstep.c | 40 -------------- src/arkode/arkode_erkstep_impl.h | 1 - src/arkode/arkode_erkstep_io.c | 4 +- src/arkode/arkode_relaxation.c | 25 ++++++--- src/arkode/arkode_relaxation_impl.h | 15 ++---- 9 files changed, 30 insertions(+), 121 deletions(-) diff --git a/examples/arkode/CXX_serial/ark_pendulum.cpp b/examples/arkode/CXX_serial/ark_pendulum.cpp index d56ee752b8..a0a0cf3090 100644 --- a/examples/arkode/CXX_serial/ark_pendulum.cpp +++ b/examples/arkode/CXX_serial/ark_pendulum.cpp @@ -209,6 +209,9 @@ int main(int argc, char* argv[]) if (check_flag(flag, "ARKStepSetFixedStep")) return 1; } + flag = ARKStepSetNonlinConvCoef(arkode_mem, SUN_RCONST(0.01)); + if (check_flag(flag, "ARKStepSetNonlinConvCoef")) return 1; + /* --------------- * * Advance in Time * * --------------- */ diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index f24ef678e6..3eeada4d54 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -3380,64 +3380,6 @@ int arkStep_SetInnerForcing(void* arkode_mem, realtype tshift, realtype tscale, return(0); } -/* ----------------------------------------------------------------------------- - * arkStep_RelaxDeltaY - * - * Computes the RK update to yn for use in relaxation methods - * ---------------------------------------------------------------------------*/ - -int arkStep_RelaxDeltaY(ARKodeMem ark_mem, N_Vector delta_y) -{ - int i, nvec, retval; - realtype* cvals; - N_Vector* Xvecs; - ARKodeARKStepMem step_mem; - - /* Access the stepper memory structure */ - if (!(ark_mem->step_mem)) - { - arkProcessError(ark_mem, ARK_MEM_NULL, "ARKODE::ARKStep", - "arkStep_RelaxDeltaY", MSG_ARKSTEP_NO_MEM); - return ARK_MEM_NULL; - } - step_mem = (ARKodeARKStepMem)(ark_mem->step_mem); - - /* Set arrays for fused vector operation */ - cvals = step_mem->cvals; - Xvecs = step_mem->Xvecs; - - nvec = 0; - for (i = 0; i < step_mem->stages; i++) - { - /* Explicit pieces */ - if (step_mem->explicit) - { - cvals[nvec] = ark_mem->h * step_mem->Be->b[i]; - Xvecs[nvec] = step_mem->Fe[i]; - nvec++; - } - /* Implicit pieces */ - if (step_mem->implicit) - { - cvals[nvec] = ark_mem->h * step_mem->Bi->b[i]; - Xvecs[nvec] = step_mem->Fi[i]; - nvec++; - } - } - - /* Compute time step update (delta_y) */ - retval = N_VLinearCombination(nvec, cvals, Xvecs, delta_y); - if (retval) return ARK_VECTOROP_ERR; - - if (step_mem->mass_type == MASS_FIXED) - { - /* Solve to compute update M^{-1} h * sum_j Ae[i,j] Fe[j] + Ai[i,j] Fi[j] */ - retval = step_mem->msolve((void *) ark_mem, delta_y, step_mem->nlscoef); - if (retval) { return ARK_MASSSOLVE_FAIL; } - } - - return ARK_SUCCESS; -} /* ----------------------------------------------------------------------------- * arkStep_RelaxDeltaE diff --git a/src/arkode/arkode_arkstep_impl.h b/src/arkode/arkode_arkstep_impl.h index 18d2095d73..9121140da1 100644 --- a/src/arkode/arkode_arkstep_impl.h +++ b/src/arkode/arkode_arkstep_impl.h @@ -233,7 +233,6 @@ int arkStep_MRIStepInnerReset(MRIStepInnerStepper stepper, realtype tR, N_Vector yR); /* private functions for relaxation */ -int arkStep_RelaxDeltaY(ARKodeMem ark_mem, N_Vector delta_y); int arkStep_RelaxDeltaE(ARKodeMem ark_mem, ARKRelaxJacFn relax_jac_fn, long int* relax_jac_fn_evals, sunrealtype* delta_e_out); int arkStep_GetOrder(ARKodeMem ark_mem); diff --git a/src/arkode/arkode_arkstep_io.c b/src/arkode/arkode_arkstep_io.c index fc2df26f98..1151afd1bc 100644 --- a/src/arkode/arkode_arkstep_io.c +++ b/src/arkode/arkode_arkstep_io.c @@ -268,8 +268,8 @@ char *ARKStepGetLinReturnFlagName(long int flag) { int ARKStepSetRelaxFn(void* arkode_mem, ARKRelaxFn rfn, ARKRelaxJacFn rjac) { - return arkRelaxCreate(arkode_mem, rfn, rjac, arkStep_RelaxDeltaY, - arkStep_RelaxDeltaE, arkStep_GetOrder); + return arkRelaxCreate(arkode_mem, rfn, rjac, arkStep_RelaxDeltaE, + arkStep_GetOrder); } int ARKStepSetRelaxEtaFail(void* arkode_mem, sunrealtype eta_rf) diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index ee26640e02..303f0b1b81 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -1189,46 +1189,6 @@ int erkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsmPtr) return(ARK_SUCCESS); } -/* ----------------------------------------------------------------------------- - * erkStep_RelaxDeltaY - * - * Computes the RK update to yn for use in relaxation methods - * ---------------------------------------------------------------------------*/ - -int erkStep_RelaxDeltaY(ARKodeMem ark_mem, N_Vector delta_y) -{ - int i, nvec, retval; - realtype* cvals; - N_Vector* Xvecs; - ARKodeERKStepMem step_mem; - - /* Access the stepper memory structure */ - if (!(ark_mem->step_mem)) - { - arkProcessError(ark_mem, ARK_MEM_NULL, "ARKODE::ERKStep", - "erkStep_RelaxDeltaY", MSG_ERKSTEP_NO_MEM); - return ARK_MEM_NULL; - } - step_mem = (ARKodeERKStepMem)(ark_mem->step_mem); - - /* Set arrays for fused vector operation */ - cvals = step_mem->cvals; - Xvecs = step_mem->Xvecs; - - nvec = 0; - for (i = 0; i < step_mem->stages; i++) - { - cvals[nvec] = ark_mem->h * step_mem->B->b[i]; - Xvecs[nvec] = step_mem->F[i]; - nvec++; - } - - /* Compute time step update (delta_y) */ - retval = N_VLinearCombination(nvec, cvals, Xvecs, delta_y); - if (retval) return ARK_VECTOROP_ERR; - - return ARK_SUCCESS; -} /* ----------------------------------------------------------------------------- * erkStep_RelaxDeltaE diff --git a/src/arkode/arkode_erkstep_impl.h b/src/arkode/arkode_erkstep_impl.h index f3684d9d39..236e1779ac 100644 --- a/src/arkode/arkode_erkstep_impl.h +++ b/src/arkode/arkode_erkstep_impl.h @@ -84,7 +84,6 @@ int erkStep_CheckButcherTable(ARKodeMem ark_mem); int erkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsm); /* private functions for relaxation */ -int erkStep_RelaxDeltaY(ARKodeMem ark_mem, N_Vector delta_y); int erkStep_RelaxDeltaE(ARKodeMem ark_mem, ARKRelaxJacFn relax_jac_fn, long int* relax_jac_fn_evals, sunrealtype* delta_e_out); int erkStep_GetOrder(ARKodeMem ark_mem); diff --git a/src/arkode/arkode_erkstep_io.c b/src/arkode/arkode_erkstep_io.c index 34bb7d46c2..15845101cc 100644 --- a/src/arkode/arkode_erkstep_io.c +++ b/src/arkode/arkode_erkstep_io.c @@ -159,8 +159,8 @@ char *ERKStepGetReturnFlagName(long int flag) { int ERKStepSetRelaxFn(void* arkode_mem, ARKRelaxFn rfn, ARKRelaxJacFn rjac) { - return arkRelaxCreate(arkode_mem, rfn, rjac, erkStep_RelaxDeltaY, - erkStep_RelaxDeltaE, erkStep_GetOrder); + return arkRelaxCreate(arkode_mem, rfn, rjac, erkStep_RelaxDeltaE, + erkStep_GetOrder); } int ERKStepSetRelaxEtaFail(void* arkode_mem, sunrealtype eta_rf) diff --git a/src/arkode/arkode_relaxation.c b/src/arkode/arkode_relaxation.c index 0c6ebfba26..4badc7cb70 100644 --- a/src/arkode/arkode_relaxation.c +++ b/src/arkode/arkode_relaxation.c @@ -122,6 +122,13 @@ static int arkRelaxNewtonSolve(ARKodeMem ark_mem) ark_mem); if (retval) return retval; +#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkRelaxNewtonSolve", "residual", + "iter = %i, relax_param = %"RSYM", residual = %"RSYM, + i, relax_mem->relax_param, relax_mem->res); +#endif + /* Check for convergence */ if (SUNRabs(relax_mem->res) < relax_mem->res_tol) { return ARK_SUCCESS; } @@ -346,13 +353,12 @@ int arkRelaxSolve(ARKodeMem ark_mem, ARKodeRelaxMem relax_mem, #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::arkRelaxSolve", "compute delta E", + "ARKODE::arkRelaxSolve", "compute delta e", "delta_e = %"RSYM, relax_mem->delta_e); #endif /* Get the change in state (delta_y = tempv2) */ - retval = relax_mem->delta_y_fn(ark_mem, ark_mem->tempv2); - if (retval) return retval; + N_VLinearSum(ONE, ark_mem->ycur, -ONE, ark_mem->yn, ark_mem->tempv2); #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, @@ -368,6 +374,12 @@ int arkRelaxSolve(ARKodeMem ark_mem, ARKodeRelaxMem relax_mem, if (retval < 0) { return ARK_RELAX_FUNC_FAIL; } if (retval > 0) { return ARK_RELAX_FUNC_RECV; } +#ifdef SUNDIALS_LOGGING_EXTRA_DEBUG + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::arkRelaxSolve", "compute old e", + "e_old = %"RSYM, relax_mem->e_old); +#endif + /* Initial guess for relaxation parameter */ relax_mem->relax_param = relax_mem->relax_param_prev; @@ -696,8 +708,8 @@ int arkRelaxPrintAllStats(void* arkode_mem, FILE* outfile, SUNOutputFormat fmt) /* Constructor called by stepper */ int arkRelaxCreate(void* arkode_mem, ARKRelaxFn relax_fn, - ARKRelaxJacFn relax_jac_fn, ARKRelaxDeltaYFn delta_y_fn, - ARKRelaxDeltaEFn delta_e_fn, ARKRelaxGetOrderFn get_order_fn) + ARKRelaxJacFn relax_jac_fn, ARKRelaxDeltaEFn delta_e_fn, + ARKRelaxGetOrderFn get_order_fn) { ARKodeMem ark_mem; @@ -733,7 +745,7 @@ int arkRelaxCreate(void* arkode_mem, ARKRelaxFn relax_fn, } /* Ensure stepper supplied inputs are provided */ - if (!delta_y_fn || !delta_e_fn || !get_order_fn) + if (!delta_e_fn || !get_order_fn) { arkProcessError(ark_mem, ARK_ILL_INPUT, "ARKODE", "arkRelaxCreate", "The Delta y, Delta e, or get order function is NULL."); @@ -769,7 +781,6 @@ int arkRelaxCreate(void* arkode_mem, ARKRelaxFn relax_fn, /* Set function pointers */ ark_mem->relax_mem->relax_fn = relax_fn; ark_mem->relax_mem->relax_jac_fn = relax_jac_fn; - ark_mem->relax_mem->delta_y_fn = delta_y_fn; ark_mem->relax_mem->delta_e_fn = delta_e_fn; ark_mem->relax_mem->get_order_fn = get_order_fn; diff --git a/src/arkode/arkode_relaxation_impl.h b/src/arkode/arkode_relaxation_impl.h index 9a6e5b4c38..1b62416d50 100644 --- a/src/arkode/arkode_relaxation_impl.h +++ b/src/arkode/arkode_relaxation_impl.h @@ -30,7 +30,7 @@ * ---------------------------------------------------------------------------*/ #define ARK_RELAX_DEFAULT_MAX_FAILS 10 -#define ARK_RELAX_DEFAULT_RES_TOL (4 * SUN_UNIT_ROUNDOFF) +#define ARK_RELAX_DEFAULT_RES_TOL (10 * SUN_UNIT_ROUNDOFF) #define ARK_RELAX_DEFAULT_REL_TOL (4 * SUN_UNIT_ROUNDOFF) #define ARK_RELAX_DEFAULT_ABS_TOL SUN_RCONST(1.0e-14) #define ARK_RELAX_DEFAULT_MAX_ITERS 10 @@ -42,17 +42,14 @@ * Relaxation Private Return Values (see arkode/arkode.h for public values) * ---------------------------------------------------------------------------*/ -#define ARK_RELAX_FUNC_RECV 1; -#define ARK_RELAX_JAC_RECV 2; -#define ARK_RELAX_SOLVE_RECV 3; +#define ARK_RELAX_FUNC_RECV 1 +#define ARK_RELAX_JAC_RECV 2 +#define ARK_RELAX_SOLVE_RECV 3 /* ----------------------------------------------------------------------------- * Stepper Supplied Relaxation Functions * ---------------------------------------------------------------------------*/ -/* Compute the change in state for the current step y_new = y_old + delta_y */ -typedef int (*ARKRelaxDeltaYFn)(ARKodeMem ark_mem, N_Vector delta_y); - /* Compute the estimated change in entropy for this step delta_e */ typedef int (*ARKRelaxDeltaEFn)(ARKodeMem ark_mem, ARKRelaxJacFn relax_jac_fn, long int* evals_out, sunrealtype* delta_e_out); @@ -69,7 +66,6 @@ struct ARKodeRelaxMemRec /* user-supplied and stepper supplied functions */ ARKRelaxFn relax_fn; /* user relaxation function ("entropy") */ ARKRelaxJacFn relax_jac_fn; /* user relaxation Jacobian */ - ARKRelaxDeltaYFn delta_y_fn; /* get delta y from stepper */ ARKRelaxDeltaEFn delta_e_fn; /* get delta entropy from stepper */ ARKRelaxGetOrderFn get_order_fn; /* get the method order */ @@ -105,8 +101,7 @@ struct ARKodeRelaxMemRec /* Driver and Stepper Functions */ int arkRelaxCreate(void* arkode_mem, ARKRelaxFn relax_fn, - ARKRelaxJacFn relax_jac_fn, ARKRelaxDeltaYFn delta_y_fn, - ARKRelaxDeltaEFn delta_e_fn, + ARKRelaxJacFn relax_jac_fn, ARKRelaxDeltaEFn delta_e_fn, ARKRelaxGetOrderFn get_order_fn); int arkRelaxDestroy(ARKodeRelaxMem relax_mem); int arkRelax(ARKodeMem ark_mem, int* relax_fails, sunrealtype* dsm_inout, From 3a91e6fba2cde32b888119fd2b2828d687006fec Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 19 Oct 2023 20:05:34 -0700 Subject: [PATCH 69/92] update output files --- examples/arkode/CXX_serial/ark_pendulum.out | 34 ++++----- .../ark_conserved_exp_entropy_ark_1_0.out | 18 ++--- .../ark_conserved_exp_entropy_ark_1_1.out | 71 +++++++++---------- .../ark_conserved_exp_entropy_erk_1.out | 18 ++--- .../ark_dissipated_exp_entropy_1_0.out | 6 +- .../ark_dissipated_exp_entropy_1_1.out | 38 +++++----- 6 files changed, 90 insertions(+), 95 deletions(-) diff --git a/examples/arkode/CXX_serial/ark_pendulum.out b/examples/arkode/CXX_serial/ark_pendulum.out index c8b5d1768b..94c4259cfd 100644 --- a/examples/arkode/CXX_serial/ark_pendulum.out +++ b/examples/arkode/CXX_serial/ark_pendulum.out @@ -7,29 +7,29 @@ Nonlinear Pendulum problem: step t u v e e err --------------------------------------------------------------------------------------------------------------------------- 0 0.000000000000000e+00 1.500000000000000e+00 1.000000000000000e+00 5.846976941318602e-01 0.000000000000000e+00 - 1000 1.226511879534299e+00 3.458488320982976e-01 2.123384535074106e+00 5.846976941318555e-01 -4.773959005888173e-15 - 2000 2.398784336118560e+00 -6.416442371616857e-01 1.959343228667432e+00 5.846976941318377e-01 -2.253752739989068e-14 - 3000 3.618483293504332e+00 -1.718124366999066e+00 4.706406225355917e-01 5.846976941318435e-01 -1.676436767183986e-14 - 4000 4.580865391430372e+00 -1.411700239944070e+00 -1.146421559917496e+00 5.846976941318369e-01 -2.331468351712829e-14 - 5000 5.877850661141863e+00 -2.026377125271683e-01 -2.170219947005763e+00 5.846976941318408e-01 -1.942890293094024e-14 - 6000 7.079795692175875e+00 8.320973704310155e-01 -1.811622127832077e+00 5.846976941318234e-01 -3.685940441755520e-14 - 7000 8.313428698722841e+00 1.777791699609239e+00 -9.412012907795819e-02 5.846976941318288e-01 -3.141931159689193e-14 - 8000 9.289846347799413e+00 1.192220279192671e+00 1.444463648145965e+00 5.846976941318289e-01 -3.130828929442941e-14 + 1000 1.225851562364904e+00 3.464109129286753e-01 2.123155979647627e+00 5.846976941318590e-01 -1.221245327087672e-15 + 2000 2.418923205034655e+00 -6.603311992497419e-01 1.946233242793910e+00 5.846976941317269e-01 -1.333377852574813e-13 + 3000 3.660149066899992e+00 -1.735668411457896e+00 3.986787133040775e-01 5.846976941317225e-01 -1.377786773559819e-13 + 4000 4.623294832907320e+00 -1.372538839057398e+00 -1.205491805789652e+00 5.846976941317235e-01 -1.367794766338193e-13 + 5000 5.934005658137125e+00 -1.564401075076330e-01 -2.180300444219520e+00 5.846976941317296e-01 -1.306732499983809e-13 + 6000 7.123567932980419e+00 8.747899699484564e-01 -1.774266316025390e+00 5.846976941316223e-01 -2.379207941771710e-13 + 7000 8.350624078669346e+00 1.780060261145096e+00 -2.794469129917746e-02 5.846976941316284e-01 -2.318145675417327e-13 + 8000 9.285790680382140e+00 1.196242389800009e+00 1.439620221946003e+00 5.846976941316235e-01 -2.366995488500834e-13 --------------------------------------------------------------------------------------------------------------------------- Final Solver Statistics: - Internal solver steps = 8518 (attempted = 8528) + Internal solver steps = 8552 (attempted = 8562) Total number of error test failures = 10 - Total RHS evals: Fe = 0, Fi = 50908 - Total number of Newton iterations = 25332 - Total number of linear solver convergence failures = 5 - Total linear solver setups = 459 - Total number of Jacobian evaluations = 146 + Total RHS evals: Fe = 0, Fi = 52696 + Total number of Newton iterations = 27018 + Total number of linear solver convergence failures = 11 + Total linear solver setups = 471 + Total number of Jacobian evaluations = 150 Total RHS evals for setting up the linear system = 0 - Total Relaxation Fn evals = 25494 - Total Relaxation Jac evals = 25494 + Total Relaxation Fn evals = 25424 + Total Relaxation Jac evals = 25424 Total Relaxation fails = 0 Total Relaxation bound fails = 0 Total Relaxation NLS fails = 0 - Total Relaxation NLS iters = 8438 + Total Relaxation NLS iters = 8300 diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_0.out b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_0.out index b42c3a1564..76cfdd2a7e 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_0.out +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_0.out @@ -8,18 +8,18 @@ Conserved Exponential Entropy problem: step t u v e delta e ------------------------------------------------------------------------------- 0 0.000000e+00 1.000000e+00 5.000000e-01 4.367003e+00 0.000000e+00 - 40 6.911091e-01 -1.121528e+00 1.396547e+00 4.367003e+00 -1.776357e-15 - 80 1.946408e+00 -6.526227e+00 1.473742e+00 4.367003e+00 4.440892e-15 + 40 7.671134e-01 -1.432143e+00 1.417843e+00 4.367003e+00 5.329071e-15 + 80 2.733674e+00 -9.963899e+00 1.474066e+00 4.367003e+00 8.881784e-15 ------------------------------------------------------------------------------- Final Solver Statistics: - Internal solver steps = 99 (attempted = 124) + Internal solver steps = 86 (attempted = 86) Total number of error test failures = 0 - Total RHS evals: Fe = 597, Fi = 0 - Total Relaxation Fn evals = 622 - Total Relaxation Jac evals = 1019 - Total Relaxation fails = 25 + Total RHS evals: Fe = 432, Fi = 0 + Total Relaxation Fn evals = 266 + Total Relaxation Jac evals = 524 + Total Relaxation fails = 0 Total Relaxation bound fails = 0 - Total Relaxation NLS fails = 25 - Total Relaxation NLS iters = 399 + Total Relaxation NLS fails = 0 + Total Relaxation NLS iters = 94 diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out index 411da8877d..f39ee226bb 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out @@ -8,46 +8,41 @@ Conserved Exponential Entropy problem: step t u v e delta e ------------------------------------------------------------------------------- 0 0.000000e+00 1.000000e+00 5.000000e-01 4.367003e+00 0.000000e+00 - 40 4.754706e-02 9.164641e-01 6.241023e-01 4.367003e+00 8.881784e-16 - 80 8.098591e-02 8.514226e-01 7.050883e-01 4.367003e+00 0.000000e+00 - 120 1.285350e-01 7.498036e-01 8.111164e-01 4.367003e+00 1.776357e-15 - 160 1.711613e-01 6.495637e-01 8.970255e-01 4.367003e+00 8.881784e-16 - 200 2.117650e-01 5.461535e-01 9.709320e-01 4.367003e+00 5.329071e-15 - 240 2.453290e-01 4.549914e-01 1.026344e+00 4.367003e+00 0.000000e+00 - 280 2.845614e-01 3.421715e-01 1.084852e+00 4.367003e+00 1.776357e-15 - 320 3.187813e-01 2.385199e-01 1.130639e+00 4.367003e+00 1.776357e-15 - 360 3.470183e-01 1.495118e-01 1.164942e+00 4.367003e+00 4.440892e-15 - 400 3.679487e-01 8.161060e-02 1.188444e+00 4.367003e+00 1.776357e-15 - 440 3.849834e-01 2.519301e-02 1.206417e+00 4.367003e+00 7.105427e-15 - 480 3.919101e-01 1.965927e-03 1.213438e+00 4.367003e+00 3.552714e-15 - 520 3.949458e-01 -8.265002e-03 1.216465e+00 4.367003e+00 2.664535e-15 - 560 4.054406e-01 -4.387006e-02 1.226690e+00 4.367003e+00 -1.776357e-15 - 600 4.224627e-01 -1.023806e-01 1.242516e+00 4.367003e+00 0.000000e+00 - 640 4.483804e-01 -1.931947e-01 1.264884e+00 4.367003e+00 -1.776357e-15 - 680 4.858087e-01 -3.277677e-01 1.293760e+00 4.367003e+00 1.776357e-15 - 720 5.292378e-01 -4.885049e-01 1.322678e+00 4.367003e+00 -4.440892e-15 - 760 5.861685e-01 -7.057075e-01 1.354092e+00 4.367003e+00 -6.217249e-15 - 800 6.559300e-01 -9.802131e-01 1.384235e+00 4.367003e+00 -2.664535e-15 - 840 7.351394e-01 -1.300674e+00 1.409682e+00 4.367003e+00 8.881784e-16 - 880 8.653344e-01 -1.841818e+00 1.437100e+00 4.367003e+00 -8.881784e-16 - 920 1.014019e+00 -2.473635e+00 1.454590e+00 4.367003e+00 8.881784e-16 - 960 1.342023e+00 -3.891227e+00 1.469390e+00 4.367003e+00 3.552714e-15 - 1000 2.028294e+00 -6.883726e+00 1.473842e+00 4.367003e+00 5.329071e-15 + 40 4.818398e-02 9.152743e-01 6.256939e-01 4.367003e+00 -3.552714e-15 + 80 9.766869e-02 8.169953e-01 7.435148e-01 4.367003e+00 1.776357e-15 + 120 1.471839e-01 7.070085e-01 8.497609e-01 4.367003e+00 7.105427e-15 + 160 1.966461e-01 5.855502e-01 9.443043e-01 4.367003e+00 8.881784e-15 + 200 2.459550e-01 4.532434e-01 1.027330e+00 4.367003e+00 7.105427e-15 + 240 2.950239e-01 3.109860e-01 1.099356e+00 4.367003e+00 3.552714e-15 + 280 3.391589e-01 1.745914e-01 1.155699e+00 4.367003e+00 1.243450e-14 + 320 3.716855e-01 6.932170e-02 1.192474e+00 4.367003e+00 1.243450e-14 + 360 3.897686e-01 9.164457e-03 1.211285e+00 4.367003e+00 1.509903e-14 + 400 3.941763e-01 -5.668726e-03 1.215701e+00 4.367003e+00 2.486900e-14 + 440 4.046793e-01 -4.127520e-02 1.225961e+00 4.367003e+00 2.486900e-14 + 480 4.248240e-01 -1.105695e-01 1.244638e+00 4.367003e+00 2.930989e-14 + 520 4.569215e-01 -2.235586e-01 1.271819e+00 4.367003e+00 2.842171e-14 + 560 5.017667e-01 -3.862877e-01 1.304929e+00 4.367003e+00 2.486900e-14 + 600 5.628643e-01 -6.159775e-01 1.342053e+00 4.367003e+00 2.753353e-14 + 640 6.460919e-01 -9.410149e-01 1.380470e+00 4.367003e+00 3.641532e-14 + 680 7.631310e-01 -1.415711e+00 1.416884e+00 4.367003e+00 3.641532e-14 + 720 9.370563e-01 -2.145218e+00 1.446910e+00 4.367003e+00 4.796163e-14 + 760 1.230365e+00 -3.406553e+00 1.466456e+00 4.367003e+00 7.283063e-14 + 800 2.394160e+00 -8.481276e+00 1.474030e+00 4.367003e+00 7.549517e-14 ------------------------------------------------------------------------------- Final Solver Statistics: - Internal solver steps = 1024 (attempted = 1376) - Total number of error test failures = 86 - Total RHS evals: Fe = 0, Fi = 9581 - Total number of Newton iterations = 5803 - Total number of linear solver convergence failures = 37 - Total linear solver setups = 844 - Total number of Jacobian evaluations = 304 + Internal solver steps = 813 (attempted = 831) + Total number of error test failures = 3 + Total RHS evals: Fe = 0, Fi = 6431 + Total number of Newton iterations = 3954 + Total number of linear solver convergence failures = 78 + Total linear solver setups = 160 + Total number of Jacobian evaluations = 98 Total RHS evals for setting up the linear system = 0 - Total Relaxation Fn evals = 7023 - Total Relaxation Jac evals = 8651 - Total Relaxation fails = 266 - Total Relaxation bound fails = 14 - Total Relaxation NLS fails = 252 - Total Relaxation NLS iters = 4523 + Total Relaxation Fn evals = 2621 + Total Relaxation Jac evals = 3452 + Total Relaxation fails = 15 + Total Relaxation bound fails = 15 + Total Relaxation NLS fails = 0 + Total Relaxation NLS iters = 959 diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_erk_1.out b/examples/arkode/C_serial/ark_conserved_exp_entropy_erk_1.out index d8fd4b691f..e39d0b1160 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_erk_1.out +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_erk_1.out @@ -8,18 +8,18 @@ Conserved Exponential Entropy problem: step t u v e delta e ------------------------------------------------------------------------------- 0 0.000000e+00 1.000000e+00 5.000000e-01 4.367003e+00 0.000000e+00 - 40 6.759227e-01 -1.060311e+00 1.391445e+00 4.367003e+00 -1.776357e-15 - 80 1.694830e+00 -5.428257e+00 1.473071e+00 4.367003e+00 -8.881784e-16 + 40 6.829631e-01 -1.088653e+00 1.393849e+00 4.367003e+00 7.993606e-15 + 80 3.316326e+00 -1.250833e+01 1.474076e+00 4.367003e+00 1.332268e-14 ------------------------------------------------------------------------------- Final Solver Statistics: - Internal solver steps = 95 (attempted = 121) + Internal solver steps = 83 (attempted = 85) Total number of error test failures = 2 - Total RHS evals = 581 - Total Relaxation Fn evals = 608 - Total Relaxation Jac evals = 995 - Total Relaxation fails = 24 + Total RHS evals = 425 + Total Relaxation Fn evals = 267 + Total Relaxation Jac evals = 522 + Total Relaxation fails = 0 Total Relaxation bound fails = 0 - Total Relaxation NLS fails = 24 - Total Relaxation NLS iters = 390 + Total Relaxation NLS fails = 0 + Total Relaxation NLS iters = 97 diff --git a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_0.out b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_0.out index 16e1aa7a33..35872dff8b 100644 --- a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_0.out +++ b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_0.out @@ -17,10 +17,10 @@ Final Solver Statistics: Internal solver steps = 130 (attempted = 130) Total number of error test failures = 0 Total RHS evals: Fe = 652, Fi = 0 - Total Relaxation Fn evals = 392 - Total Relaxation Jac evals = 782 + Total Relaxation Fn evals = 391 + Total Relaxation Jac evals = 781 Total Relaxation fails = 0 Total Relaxation bound fails = 0 Total Relaxation NLS fails = 0 - Total Relaxation NLS iters = 132 + Total Relaxation NLS iters = 131 diff --git a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out index bc834dbbda..38f493109a 100644 --- a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out +++ b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out @@ -20,25 +20,25 @@ Dissipated Exponential Entropy problem: 400 5.805889e-01 5.290718e-02 1.054332e+00 -1.186227e-01 -1.663950e+00 440 6.131438e-01 1.915938e-02 1.019344e+00 -1.794246e-01 -1.698938e+00 480 6.301872e-01 1.935497e-03 1.001937e+00 -2.105255e-01 -1.716344e+00 - 520 6.350100e-01 -2.884950e-03 9.971192e-01 -2.192380e-01 -1.721163e+00 + 520 6.350100e-01 -2.884948e-03 9.971192e-01 -2.192380e-01 -1.721163e+00 560 6.468882e-01 -1.465940e-02 9.854475e-01 -2.405343e-01 -1.732834e+00 - 600 6.693569e-01 -3.655950e-02 9.641007e-01 -2.802015e-01 -1.754181e+00 - 640 7.021244e-01 -6.766195e-02 9.345763e-01 -3.366619e-01 -1.783705e+00 - 680 7.450858e-01 -1.070275e-01 8.985009e-01 -4.083288e-01 -1.819781e+00 - 720 8.015384e-01 -1.565058e-01 8.551265e-01 -4.987252e-01 -1.863155e+00 - 760 8.754911e-01 -2.178256e-01 8.042657e-01 -6.112329e-01 -1.914016e+00 - 800 9.627556e-01 -2.856560e-01 7.515211e-01 -7.362769e-01 -1.966761e+00 - 840 1.068726e+00 -3.622828e-01 6.960855e-01 -8.782493e-01 -2.022196e+00 + 600 6.693569e-01 -3.655949e-02 9.641007e-01 -2.802015e-01 -1.754181e+00 + 640 7.021244e-01 -6.766194e-02 9.345764e-01 -3.366619e-01 -1.783705e+00 + 680 7.450857e-01 -1.070275e-01 8.985010e-01 -4.083287e-01 -1.819781e+00 + 720 8.015384e-01 -1.565058e-01 8.551266e-01 -4.987251e-01 -1.863155e+00 + 760 8.754911e-01 -2.178256e-01 8.042657e-01 -6.112328e-01 -1.914016e+00 + 800 9.627555e-01 -2.856560e-01 7.515211e-01 -7.362769e-01 -1.966761e+00 + 840 1.068726e+00 -3.622828e-01 6.960855e-01 -8.782492e-01 -2.022196e+00 880 1.205356e+00 -4.531342e-01 6.356328e-01 -1.047503e+00 -2.082649e+00 - 920 1.360691e+00 -5.472947e-01 5.785127e-01 -1.223917e+00 -2.139769e+00 - 960 1.555080e+00 -6.538651e-01 5.200319e-01 -1.424719e+00 -2.198250e+00 - 1000 1.799105e+00 -7.733362e-01 4.614709e-01 -1.651150e+00 -2.256811e+00 - 1040 2.083363e+00 -8.965948e-01 4.079565e-01 -1.886097e+00 -2.310325e+00 - 1080 2.428941e+00 -1.028483e+00 3.575490e-01 -2.138850e+00 -2.360733e+00 - 1120 2.880022e+00 -1.178008e+00 3.078913e-01 -2.426922e+00 -2.410391e+00 + 920 1.360691e+00 -5.472947e-01 5.785128e-01 -1.223917e+00 -2.139769e+00 + 960 1.555080e+00 -6.538650e-01 5.200320e-01 -1.424719e+00 -2.198250e+00 + 1000 1.799105e+00 -7.733362e-01 4.614710e-01 -1.651150e+00 -2.256811e+00 + 1040 2.083363e+00 -8.965947e-01 4.079565e-01 -1.886096e+00 -2.310325e+00 + 1080 2.428941e+00 -1.028483e+00 3.575491e-01 -2.138849e+00 -2.360733e+00 + 1120 2.880021e+00 -1.178008e+00 3.078913e-01 -2.426922e+00 -2.410390e+00 1160 3.423853e+00 -1.332822e+00 2.637319e-01 -2.726684e+00 -2.454550e+00 - 1200 4.082008e+00 -1.492878e+00 2.247249e-01 -3.037999e+00 -2.493557e+00 - 1240 4.890808e+00 -1.659881e+00 1.901617e-01 -3.364145e+00 -2.528120e+00 + 1200 4.082008e+00 -1.492878e+00 2.247250e-01 -3.037999e+00 -2.493557e+00 + 1240 4.890807e+00 -1.659880e+00 1.901617e-01 -3.364144e+00 -2.528120e+00 ------------------------------------------------------------------------------- Final Solver Statistics: @@ -50,10 +50,10 @@ Final Solver Statistics: Total linear solver setups = 149 Total number of Jacobian evaluations = 93 Total RHS evals for setting up the linear system = 0 - Total Relaxation Fn evals = 3773 - Total Relaxation Jac evals = 5019 + Total Relaxation Fn evals = 3738 + Total Relaxation Jac evals = 4984 Total Relaxation fails = 0 Total Relaxation bound fails = 0 Total Relaxation NLS fails = 0 - Total Relaxation NLS iters = 1281 + Total Relaxation NLS iters = 1246 From aacfd870dd3035c608ba887c6143e39b0228866d Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Mon, 23 Oct 2023 12:02:37 -0700 Subject: [PATCH 70/92] update example nls tolerances --- .../arkode/C_parallel/ark_diurnal_kry_bbd_p.c | 4 + .../C_parallel/ark_diurnal_kry_bbd_p.out | 126 +++++++++--------- .../arkode/C_parallel/ark_diurnal_kry_p.c | 4 + .../arkode/C_parallel/ark_diurnal_kry_p.out | 62 ++++----- .../F2003_serial/ark_analytic_f2003.f90 | 6 + .../F2003_serial/ark_analytic_f2003.out | 20 +-- 6 files changed, 118 insertions(+), 104 deletions(-) diff --git a/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.c b/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.c index 7c8bba1278..8143a128c0 100644 --- a/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.c +++ b/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.c @@ -246,6 +246,10 @@ int main(int argc, char *argv[]) mukeep, mlkeep, ZERO, flocal, NULL); if(check_flag(&flag, "ARKBBDPrecInit", 1, my_pe)) MPI_Abort(comm, 1); + /* Tighten nonlinear solver tolerance */ + flag = ARKStepSetNonlinConvCoef(arkode_mem, SUN_RCONST(0.01)); + if(check_flag(&flag, "ARKStepSetNonlinConvCoef", 1, my_pe)) MPI_Abort(comm, 1); + /* Print heading */ if (my_pe == 0) PrintIntro(npes, mudq, mldq, mukeep, mlkeep); diff --git a/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.out b/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.out index 5d53186f79..af598df8f8 100644 --- a/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.out +++ b/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.out @@ -7,68 +7,68 @@ Preconditioner type is: jpre = SUN_PREC_LEFT -t = 7.20e+03 no. steps = 979 stepsize = 3.07e+00 +t = 7.20e+03 no. steps = 981 stepsize = 3.07e+00 At bottom left: c1, c2 = 1.047e+04 2.527e+11 At top right: c1, c2 = 1.119e+04 2.700e+11 -t = 1.44e+04 no. steps = 2738 stepsize = 6.94e+00 +t = 1.44e+04 no. steps = 2731 stepsize = 6.90e+00 At bottom left: c1, c2 = 6.659e+06 2.582e+11 At top right: c1, c2 = 7.301e+06 2.833e+11 -t = 2.16e+04 no. steps = 3535 stepsize = 1.05e+01 +t = 2.16e+04 no. steps = 3534 stepsize = 1.04e+01 At bottom left: c1, c2 = 2.665e+07 2.993e+11 At top right: c1, c2 = 2.931e+07 3.313e+11 -t = 2.88e+04 no. steps = 4683 stepsize = 4.46e+00 +t = 2.88e+04 no. steps = 4683 stepsize = 5.21e+00 At bottom left: c1, c2 = 8.702e+06 3.380e+11 At top right: c1, c2 = 9.650e+06 3.751e+11 -t = 3.60e+04 no. steps = 5959 stepsize = 2.55e+00 +t = 3.60e+04 no. steps = 6169 stepsize = 2.56e+00 At bottom left: c1, c2 = 1.404e+04 3.387e+11 At top right: c1, c2 = 1.561e+04 3.765e+11 -t = 4.32e+04 no. steps = 7152 stepsize = 3.93e+02 -At bottom left: c1, c2 = -1.202e-09 3.382e+11 -At top right: c1, c2 = 1.624e-07 3.804e+11 +t = 4.32e+04 no. steps = 7356 stepsize = 4.24e+02 +At bottom left: c1, c2 = -1.476e-08 3.382e+11 +At top right: c1, c2 = 2.475e-07 3.804e+11 -t = 5.04e+04 no. steps = 7171 stepsize = 3.76e+02 -At bottom left: c1, c2 = 5.092e-08 3.358e+11 -At top right: c1, c2 = -4.835e-07 3.864e+11 +t = 5.04e+04 no. steps = 7373 stepsize = 3.97e+02 +At bottom left: c1, c2 = 2.483e-07 3.358e+11 +At top right: c1, c2 = -1.768e-06 3.864e+11 -t = 5.76e+04 no. steps = 7188 stepsize = 2.94e+02 -At bottom left: c1, c2 = -3.248e-10 3.320e+11 -At top right: c1, c2 = 7.269e-08 3.909e+11 +t = 5.76e+04 no. steps = 7391 stepsize = 3.62e+02 +At bottom left: c1, c2 = -2.799e-07 3.320e+11 +At top right: c1, c2 = -4.820e-08 3.909e+11 -t = 6.48e+04 no. steps = 7212 stepsize = 5.52e+02 -At bottom left: c1, c2 = -1.079e-09 3.313e+11 -At top right: c1, c2 = -2.660e-07 3.963e+11 +t = 6.48e+04 no. steps = 7406 stepsize = 5.57e+02 +At bottom left: c1, c2 = 7.180e-08 3.313e+11 +At top right: c1, c2 = -6.171e-07 3.963e+11 -t = 7.20e+04 no. steps = 7225 stepsize = 5.52e+02 -At bottom left: c1, c2 = 4.318e-08 3.330e+11 -At top right: c1, c2 = -4.973e-07 4.039e+11 +t = 7.20e+04 no. steps = 7419 stepsize = 5.57e+02 +At bottom left: c1, c2 = 5.344e-09 3.330e+11 +At top right: c1, c2 = 1.101e-07 4.039e+11 -t = 7.92e+04 no. steps = 7238 stepsize = 5.52e+02 -At bottom left: c1, c2 = -1.398e-08 3.334e+11 -At top right: c1, c2 = 7.657e-08 4.120e+11 +t = 7.92e+04 no. steps = 7431 stepsize = 5.57e+02 +At bottom left: c1, c2 = -3.201e-08 3.334e+11 +At top right: c1, c2 = -5.416e-07 4.120e+11 -t = 8.64e+04 no. steps = 7252 stepsize = 5.52e+02 -At bottom left: c1, c2 = 1.764e-07 3.352e+11 -At top right: c1, c2 = -4.190e-08 4.163e+11 +t = 8.64e+04 no. steps = 7444 stepsize = 5.57e+02 +At bottom left: c1, c2 = -4.221e-07 3.352e+11 +At top right: c1, c2 = 8.480e-15 4.163e+11 Final Statistics: lenrw = 3901 leniw = 267 lenrwls = 2455 leniwls = 126 -nst = 7252 nfe = 0 -nfe = 76109 nfels = 82856 -nni = 39711 nli = 82856 -nsetups = 437 netf = 27 -npe = 121 nps = 120385 +nst = 7444 nfe = 0 +nfe = 78871 nfels = 105365 +nni = 41518 nli = 105365 +nsetups = 447 netf = 26 +npe = 125 nps = 143828 ncfn = 0 ncfl = 0 In ARKBBDPRE: real/integer local work space sizes = 1300, 192 - no. flocal evals. = 2662 + no. flocal evals. = 2750 ------------------------------------------------------------------- @@ -84,57 +84,57 @@ t = 1.44e+04 no. steps = 2731 stepsize = 6.90e+00 At bottom left: c1, c2 = 6.659e+06 2.582e+11 At top right: c1, c2 = 7.301e+06 2.833e+11 -t = 2.16e+04 no. steps = 3533 stepsize = 1.04e+01 +t = 2.16e+04 no. steps = 3534 stepsize = 1.04e+01 At bottom left: c1, c2 = 2.665e+07 2.993e+11 At top right: c1, c2 = 2.931e+07 3.313e+11 -t = 2.88e+04 no. steps = 4692 stepsize = 3.80e+00 +t = 2.88e+04 no. steps = 4691 stepsize = 5.22e+00 At bottom left: c1, c2 = 8.702e+06 3.380e+11 At top right: c1, c2 = 9.650e+06 3.751e+11 -t = 3.60e+04 no. steps = 6087 stepsize = 2.55e+00 +t = 3.60e+04 no. steps = 6174 stepsize = 2.56e+00 At bottom left: c1, c2 = 1.404e+04 3.387e+11 At top right: c1, c2 = 1.561e+04 3.765e+11 -t = 4.32e+04 no. steps = 7275 stepsize = 4.76e+02 -At bottom left: c1, c2 = 1.722e-10 3.382e+11 -At top right: c1, c2 = 1.593e-09 3.804e+11 +t = 4.32e+04 no. steps = 7361 stepsize = 4.34e+02 +At bottom left: c1, c2 = 4.699e-11 3.382e+11 +At top right: c1, c2 = 4.238e-10 3.804e+11 -t = 5.04e+04 no. steps = 7291 stepsize = 3.75e+02 -At bottom left: c1, c2 = 1.309e-09 3.358e+11 -At top right: c1, c2 = -1.367e-09 3.864e+11 +t = 5.04e+04 no. steps = 7377 stepsize = 4.34e+02 +At bottom left: c1, c2 = -1.972e-12 3.358e+11 +At top right: c1, c2 = -1.128e-11 3.864e+11 -t = 5.76e+04 no. steps = 7308 stepsize = 2.92e+02 -At bottom left: c1, c2 = -2.110e-07 3.320e+11 -At top right: c1, c2 = -3.069e-07 3.909e+11 +t = 5.76e+04 no. steps = 7395 stepsize = 3.07e+02 +At bottom left: c1, c2 = -5.328e-16 3.320e+11 +At top right: c1, c2 = -5.281e-12 3.909e+11 -t = 6.48e+04 no. steps = 7323 stepsize = 4.87e+02 -At bottom left: c1, c2 = 2.224e-07 3.313e+11 -At top right: c1, c2 = 2.684e-07 3.963e+11 +t = 6.48e+04 no. steps = 7409 stepsize = 6.89e+02 +At bottom left: c1, c2 = 1.218e-13 3.313e+11 +At top right: c1, c2 = -8.200e-07 3.963e+11 -t = 7.20e+04 no. steps = 7338 stepsize = 4.87e+02 -At bottom left: c1, c2 = 6.820e-08 3.330e+11 -At top right: c1, c2 = -2.132e-06 4.039e+11 +t = 7.20e+04 no. steps = 7419 stepsize = 6.89e+02 +At bottom left: c1, c2 = -5.406e-15 3.330e+11 +At top right: c1, c2 = 6.679e-07 4.039e+11 -t = 7.92e+04 no. steps = 7353 stepsize = 4.87e+02 -At bottom left: c1, c2 = 1.134e-09 3.334e+11 -At top right: c1, c2 = -2.341e-07 4.120e+11 +t = 7.92e+04 no. steps = 7430 stepsize = 6.89e+02 +At bottom left: c1, c2 = -1.418e-14 3.334e+11 +At top right: c1, c2 = -1.336e-06 4.120e+11 -t = 8.64e+04 no. steps = 7364 stepsize = 7.33e+02 -At bottom left: c1, c2 = 4.331e-07 3.352e+11 -At top right: c1, c2 = -6.607e-08 4.163e+11 +t = 8.64e+04 no. steps = 7440 stepsize = 6.89e+02 +At bottom left: c1, c2 = -1.510e-14 3.352e+11 +At top right: c1, c2 = -3.390e-07 4.163e+11 Final Statistics: lenrw = 3901 leniw = 272 lenrwls = 2455 leniwls = 126 -nst = 7364 nfe = 0 -nfe = 77457 nfels = 101131 -nni = 40469 nli = 101131 -nsetups = 457 netf = 33 -npe = 124 nps = 138172 -ncfn = 0 ncfl = 0 +nst = 7440 nfe = 0 +nfe = 78947 nfels = 111620 +nni = 41594 nli = 111620 +nsetups = 454 netf = 30 +npe = 125 nps = 149487 +ncfn = 0 ncfl = 43 In ARKBBDPRE: real/integer local work space sizes = 1300, 192 - no. flocal evals. = 2728 + no. flocal evals. = 2750 diff --git a/examples/arkode/C_parallel/ark_diurnal_kry_p.c b/examples/arkode/C_parallel/ark_diurnal_kry_p.c index 1946966c76..b17ed5f283 100644 --- a/examples/arkode/C_parallel/ark_diurnal_kry_p.c +++ b/examples/arkode/C_parallel/ark_diurnal_kry_p.c @@ -262,6 +262,10 @@ int main(int argc, char *argv[]) flag = ARKStepSetPreconditioner(arkode_mem, Precond, PSolve); if (check_flag(&flag, "ARKStepSetPreconditioner", 1, my_pe)) MPI_Abort(comm, 1); + /* Tighten nonlinear solver tolerance */ + flag = ARKStepSetNonlinConvCoef(arkode_mem, SUN_RCONST(0.01)); + if(check_flag(&flag, "ARKStepSetNonlinConvCoef", 1, my_pe)) MPI_Abort(comm, 1); + /* Print heading */ if (my_pe == 0) printf("\n2-species diurnal advection-diffusion problem\n\n"); diff --git a/examples/arkode/C_parallel/ark_diurnal_kry_p.out b/examples/arkode/C_parallel/ark_diurnal_kry_p.out index 97f07c3221..26f890aaf7 100644 --- a/examples/arkode/C_parallel/ark_diurnal_kry_p.out +++ b/examples/arkode/C_parallel/ark_diurnal_kry_p.out @@ -1,11 +1,11 @@ 2-species diurnal advection-diffusion problem -t = 7.20e+03 no. steps = 979 stepsize = 3.07e+00 +t = 7.20e+03 no. steps = 980 stepsize = 3.07e+00 At bottom left: c1, c2 = 1.047e+04 2.527e+11 At top right: c1, c2 = 1.119e+04 2.700e+11 -t = 1.44e+04 no. steps = 2733 stepsize = 6.92e+00 +t = 1.44e+04 no. steps = 2730 stepsize = 6.90e+00 At bottom left: c1, c2 = 6.659e+06 2.582e+11 At top right: c1, c2 = 7.301e+06 2.833e+11 @@ -13,51 +13,51 @@ t = 2.16e+04 no. steps = 3533 stepsize = 1.04e+01 At bottom left: c1, c2 = 2.665e+07 2.993e+11 At top right: c1, c2 = 2.931e+07 3.313e+11 -t = 2.88e+04 no. steps = 4559 stepsize = 4.56e+00 +t = 2.88e+04 no. steps = 4685 stepsize = 5.21e+00 At bottom left: c1, c2 = 8.702e+06 3.380e+11 At top right: c1, c2 = 9.650e+06 3.751e+11 -t = 3.60e+04 no. steps = 5822 stepsize = 2.55e+00 +t = 3.60e+04 no. steps = 6169 stepsize = 2.56e+00 At bottom left: c1, c2 = 1.404e+04 3.387e+11 At top right: c1, c2 = 1.561e+04 3.765e+11 -t = 4.32e+04 no. steps = 7012 stepsize = 4.38e+02 -At bottom left: c1, c2 = -2.534e-08 3.382e+11 -At top right: c1, c2 = 2.458e-08 3.804e+11 +t = 4.32e+04 no. steps = 7356 stepsize = 4.29e+02 +At bottom left: c1, c2 = 5.207e-10 3.382e+11 +At top right: c1, c2 = -1.692e-09 3.804e+11 -t = 5.04e+04 no. steps = 7031 stepsize = 3.01e+02 -At bottom left: c1, c2 = 6.320e-07 3.358e+11 -At top right: c1, c2 = -7.802e-07 3.864e+11 +t = 5.04e+04 no. steps = 7374 stepsize = 4.03e+02 +At bottom left: c1, c2 = -5.150e-07 3.358e+11 +At top right: c1, c2 = 7.350e-07 3.864e+11 -t = 5.76e+04 no. steps = 7052 stepsize = 2.39e+02 -At bottom left: c1, c2 = -2.953e-15 3.320e+11 -At top right: c1, c2 = -6.467e-15 3.909e+11 +t = 5.76e+04 no. steps = 7388 stepsize = 1.86e+02 +At bottom left: c1, c2 = 1.854e-09 3.320e+11 +At top right: c1, c2 = -4.478e-09 3.909e+11 -t = 6.48e+04 no. steps = 7067 stepsize = 6.00e+02 -At bottom left: c1, c2 = -2.940e-18 3.313e+11 -At top right: c1, c2 = -9.232e-17 3.963e+11 +t = 6.48e+04 no. steps = 7403 stepsize = 5.44e+02 +At bottom left: c1, c2 = -5.633e-20 3.313e+11 +At top right: c1, c2 = -7.054e-19 3.963e+11 -t = 7.20e+04 no. steps = 7079 stepsize = 6.00e+02 -At bottom left: c1, c2 = 2.299e-17 3.330e+11 -At top right: c1, c2 = -1.240e-16 4.039e+11 +t = 7.20e+04 no. steps = 7416 stepsize = 5.44e+02 +At bottom left: c1, c2 = 8.179e-20 3.330e+11 +At top right: c1, c2 = -1.697e-18 4.039e+11 -t = 7.92e+04 no. steps = 7091 stepsize = 6.00e+02 -At bottom left: c1, c2 = 2.598e-17 3.334e+11 -At top right: c1, c2 = -6.124e-17 4.120e+11 +t = 7.92e+04 no. steps = 7429 stepsize = 5.44e+02 +At bottom left: c1, c2 = 9.578e-20 3.334e+11 +At top right: c1, c2 = -6.361e-19 4.120e+11 -t = 8.64e+04 no. steps = 7103 stepsize = 6.00e+02 -At bottom left: c1, c2 = 1.059e-27 3.352e+11 -At top right: c1, c2 = 1.567e-26 4.163e+11 +t = 8.64e+04 no. steps = 7443 stepsize = 5.44e+02 +At bottom left: c1, c2 = 2.418e-20 3.352e+11 +At top right: c1, c2 = -6.470e-20 4.163e+11 Final Statistics: lenrw = 3301 leniw = 243 lenrwls = 2455 leniwls = 126 -nst = 7103 nfe = 0 -nfi = 74602 nfels = 87206 -nni = 38944 nli = 87206 -nsetups = 431 netf = 28 -npe = 120 nps = 123894 -ncfn = 0 ncfl = 0 +nst = 7443 nfe = 0 +nfi = 78979 nfels = 108407 +nni = 41601 nli = 108407 +nsetups = 453 netf = 32 +npe = 125 nps = 146880 +ncfn = 0 ncfl = 71 diff --git a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 index 9de6e47616..d8603bb118 100644 --- a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 @@ -192,6 +192,12 @@ program main stop 1 end if + ierr = FARKStepSetNonlinConvCoef(arkode_mem, 0.01d0) + if (ierr /= 0) then + write(*,*) 'Error in FARKStepSetNonlinConvCoef, ierr = ', ierr, '; halting' + stop 1 + end if + ! Start time stepping print *, ' ' print *, 'Finished initialization, starting time steps' diff --git a/examples/arkode/F2003_serial/ark_analytic_f2003.out b/examples/arkode/F2003_serial/ark_analytic_f2003.out index fa22d69806..7c3d78894f 100644 --- a/examples/arkode/F2003_serial/ark_analytic_f2003.out +++ b/examples/arkode/F2003_serial/ark_analytic_f2003.out @@ -16,15 +16,15 @@ 1.00000E+01 1.47113E+00 General Solver Stats: - Total internal steps taken = 412 - Total internal steps attempts = 416 - Total rhs function calls = 4944 - Num lin solver setup calls = 38 - Num error test failures = 4 + Total internal steps taken = 415 + Total internal steps attempts = 422 + Total rhs function calls = 5002 + Num lin solver setup calls = 46 + Num error test failures = 7 First internal step size = 6.10352E-12 - Last internal step size = 7.85712E-02 - Next internal step size = 7.85712E-02 - Current internal time = 1.00544E+01 - Num nonlinear solver iters = 2861 - Num nonlinear solver fails = 3 + Last internal step size = 7.92971E-02 + Next internal step size = 7.92971E-02 + Current internal time = 1.00714E+01 + Num nonlinear solver iters = 2889 + Num nonlinear solver fails = 4 From 6d47159f268edba02d52192bf8fcc1cc265007e5 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Fri, 27 Oct 2023 21:09:00 -0700 Subject: [PATCH 71/92] update output files --- .../CXX_serial/ark_test_dahlquist_ark_0_0.out | 35 +++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_0_1.out | 35 +++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_1_0.out | 35 +++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_1_1.out | 35 +++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_2_0.out | 35 +++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_2_1.out | 35 +++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_erk_0.out | 35 +++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_erk_1.out | 35 +++++++++++++++++++ 8 files changed, 280 insertions(+) diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out index 92d1e73a20..e0ea02d598 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out @@ -607,6 +607,41 @@ Fe RHS evals: expected: 12 -------------------- +======================== +ERK Table ID 16 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out index 88b11539aa..3ccf76770b 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out @@ -607,6 +607,41 @@ Fe RHS evals: expected: 12 -------------------- +======================== +ERK Table ID 16 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out index 0609b3f32f..8a16fd9bb7 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out @@ -607,6 +607,41 @@ Fe RHS evals: expected: 12 -------------------- +======================== +ERK Table ID 16 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out index 5b259c7b44..74585a94bd 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out @@ -607,6 +607,41 @@ Fe RHS evals: expected: 12 -------------------- +======================== +ERK Table ID 16 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out index ba1984cb43..b042449cdb 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out @@ -607,6 +607,41 @@ Fe RHS evals: expected: 12 -------------------- +======================== +ERK Table ID 16 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out index 144a3f818a..3986aa2756 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out @@ -607,6 +607,41 @@ Fe RHS evals: expected: 12 -------------------- +======================== +ERK Table ID 16 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out index d4900dcca0..bafdac02b1 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out @@ -605,5 +605,40 @@ Fe RHS evals: expected: 12 -------------------- +======================== +ERK Table ID 16 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- + All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out index 547abeb1b3..346bb60e78 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out @@ -605,5 +605,40 @@ Fe RHS evals: expected: 12 -------------------- +======================== +ERK Table ID 16 + stages: 5 + order: 4 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 5 + expected: 5 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Dense Output +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- + All tests passed! From cb9ac86dcee3c915070a95529eec3237b9a50e2f Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 29 Oct 2023 10:28:56 -0700 Subject: [PATCH 72/92] update output files --- .../CXX_serial/ark_test_dahlquist_ark_0_0.out | 175 ++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_0_1.out | 175 ++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_1_0.out | 175 ++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_1_1.out | 175 ++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_2_0.out | 175 ++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_ark_2_1.out | 175 ++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_erk_0.out | 175 ++++++++++++++++++ .../CXX_serial/ark_test_dahlquist_erk_1.out | 175 ++++++++++++++++++ 8 files changed, 1400 insertions(+) diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out index e0ea02d598..beedca56db 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_0.out @@ -642,6 +642,181 @@ Fe RHS evals: expected: 17 -------------------- +======================== +ERK Table ID 17 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 18 + stages: 9 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 37 + expected: 37 +-------------------- + +======================== +ERK Table ID 19 + stages: 10 + order: 7 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fe RHS evals: + actual: 35 + expected: 35 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- + +======================== +ERK Table ID 20 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 21 + stages: 16 + order: 9 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Dense Output +Fe RHS evals: + actual: 53 + expected: 53 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 68 + expected: 68 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out index 3ccf76770b..215d59d55e 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_0_1.out @@ -642,6 +642,181 @@ Fe RHS evals: expected: 17 -------------------- +======================== +ERK Table ID 17 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 18 + stages: 9 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 19 + stages: 10 + order: 7 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +ERK Table ID 20 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 52 + expected: 52 +-------------------- + +======================== +ERK Table ID 21 + stages: 16 + order: 9 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Dense Output +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 64 + expected: 64 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out index 8a16fd9bb7..b2d194bc1e 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_0.out @@ -642,6 +642,181 @@ Fe RHS evals: expected: 17 -------------------- +======================== +ERK Table ID 17 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 18 + stages: 9 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 37 + expected: 37 +-------------------- + +======================== +ERK Table ID 19 + stages: 10 + order: 7 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fe RHS evals: + actual: 35 + expected: 35 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- + +======================== +ERK Table ID 20 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 21 + stages: 16 + order: 9 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Dense Output +Fe RHS evals: + actual: 53 + expected: 53 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 68 + expected: 68 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out index 74585a94bd..0f7bb5584a 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_1_1.out @@ -642,6 +642,181 @@ Fe RHS evals: expected: 17 -------------------- +======================== +ERK Table ID 17 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 18 + stages: 9 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 19 + stages: 10 + order: 7 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +ERK Table ID 20 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 52 + expected: 52 +-------------------- + +======================== +ERK Table ID 21 + stages: 16 + order: 9 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Dense Output +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 64 + expected: 64 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out index b042449cdb..0d00667042 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_0.out @@ -642,6 +642,181 @@ Fe RHS evals: expected: 17 -------------------- +======================== +ERK Table ID 17 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 18 + stages: 9 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 37 + expected: 37 +-------------------- + +======================== +ERK Table ID 19 + stages: 10 + order: 7 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fe RHS evals: + actual: 35 + expected: 35 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- + +======================== +ERK Table ID 20 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 21 + stages: 16 + order: 9 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Dense Output +Fe RHS evals: + actual: 53 + expected: 53 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 68 + expected: 68 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out index 3986aa2756..b48ee0df1d 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark_2_1.out @@ -642,6 +642,181 @@ Fe RHS evals: expected: 17 -------------------- +======================== +ERK Table ID 17 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 18 + stages: 9 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 19 + stages: 10 + order: 7 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +ERK Table ID 20 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 52 + expected: 52 +-------------------- + +======================== +ERK Table ID 21 + stages: 16 + order: 9 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Dense Output +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 64 + expected: 64 +-------------------- + ======================== Test implicit RK methods ======================== diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out index bafdac02b1..7e2256037c 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_0.out @@ -640,5 +640,180 @@ Fe RHS evals: expected: 17 -------------------- +======================== +ERK Table ID 17 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 18 + stages: 9 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fe RHS evals: + actual: 29 + expected: 29 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 37 + expected: 37 +-------------------- + +======================== +ERK Table ID 19 + stages: 10 + order: 7 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fe RHS evals: + actual: 35 + expected: 35 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- + +======================== +ERK Table ID 20 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 44 + expected: 44 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 56 + expected: 56 +-------------------- + +======================== +ERK Table ID 21 + stages: 16 + order: 9 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Dense Output +Fe RHS evals: + actual: 53 + expected: 53 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 68 + expected: 68 +-------------------- + All tests passed! diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out index 346bb60e78..74bc1b6a8d 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk_1.out @@ -640,5 +640,180 @@ Fe RHS evals: expected: 17 -------------------- +======================== +ERK Table ID 17 + stages: 3 + order: 3 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 3 + expected: 3 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 6 + expected: 6 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Dense Output +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 12 + expected: 12 +-------------------- + +======================== +ERK Table ID 18 + stages: 9 + order: 6 + explicit 1st stage: 1 + stiffly accurate: 1 + first same as last: 1 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 9 + expected: 9 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 17 + expected: 17 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Dense Output +Fe RHS evals: + actual: 25 + expected: 25 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 33 + expected: 33 +-------------------- + +======================== +ERK Table ID 19 + stages: 10 + order: 7 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 10 + expected: 10 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 20 + expected: 20 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Dense Output +Fe RHS evals: + actual: 30 + expected: 30 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 40 + expected: 40 +-------------------- + +======================== +ERK Table ID 20 + stages: 13 + order: 8 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 13 + expected: 13 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 26 + expected: 26 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Dense Output +Fe RHS evals: + actual: 39 + expected: 39 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 52 + expected: 52 +-------------------- + +======================== +ERK Table ID 21 + stages: 16 + order: 9 + explicit 1st stage: 1 + stiffly accurate: 0 + first same as last: 0 +======================== +-------------------- +Steps: 1 +Fe RHS evals: + actual: 16 + expected: 16 +-------------------- +Steps: 2 +Fe RHS evals: + actual: 32 + expected: 32 +-------------------- +Steps: 3 +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Dense Output +Fe RHS evals: + actual: 48 + expected: 48 +-------------------- +Steps: 4 +Fe RHS evals: + actual: 64 + expected: 64 +-------------------- + All tests passed! From 4c52251375bc76426b44ee92749322f038b71ad3 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 19 Oct 2023 20:26:27 -0700 Subject: [PATCH 73/92] use y_new = z[s-1] for stiffly accurate methods --- src/arkode/arkode_arkstep.c | 163 +++++++++++++++++++++++------------- 1 file changed, 106 insertions(+), 57 deletions(-) diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 7ac5cfc306..a3d22e2dee 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -2854,6 +2854,7 @@ int arkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsmPtr) sunrealtype* cj; sunrealtype* bj; sunrealtype* dj; + booleantype stiffly_accurate; realtype* cvals; N_Vector* Xvecs; ARKodeARKStepMem step_mem; @@ -2877,52 +2878,76 @@ int arkStep_ComputeSolutions(ARKodeMem ark_mem, realtype *dsmPtr) /* initialize output */ *dsmPtr = ZERO; - /* Compute time step solution */ - /* set arrays for fused vector operation */ - cvals[0] = ONE; - Xvecs[0] = ark_mem->yn; - nvec = 1; - for (j=0; jstages; j++) { - if (step_mem->explicit) { /* Explicit pieces */ - cvals[nvec] = ark_mem->h * step_mem->Be->b[j]; - Xvecs[nvec] = step_mem->Fe[j]; - nvec += 1; - } - if (step_mem->implicit) { /* Implicit pieces */ - cvals[nvec] = ark_mem->h * step_mem->Bi->b[j]; - Xvecs[nvec] = step_mem->Fi[j]; - nvec += 1; + /* check if the method is stiffly accurate */ + stiffly_accurate = SUNTRUE; + + if (step_mem->explicit) + { + if (!ARKodeButcherTable_IsStifflyAccurate(step_mem->Be)) + { + stiffly_accurate = SUNFALSE; } } - /* apply external polynomial (MRI) forcing (M = I required) */ - if (step_mem->expforcing || step_mem->impforcing) + if (step_mem->implicit) { - if (step_mem->expforcing) + if (!ARKodeButcherTable_IsStifflyAccurate(step_mem->Bi)) { - cj = step_mem->Be->c; - bj = step_mem->Be->b; + stiffly_accurate = SUNFALSE; } - else - { - cj = step_mem->Bi->c; - bj = step_mem->Bi->b; + } + + /* If the method is stiffly accurate, ycur is already the new solution */ + + if (!stiffly_accurate) + { + /* Compute time step solution (if necessary) */ + /* set arrays for fused vector operation */ + cvals[0] = ONE; + Xvecs[0] = ark_mem->yn; + nvec = 1; + for (j=0; jstages; j++) { + if (step_mem->explicit) { /* Explicit pieces */ + cvals[nvec] = ark_mem->h * step_mem->Be->b[j]; + Xvecs[nvec] = step_mem->Fe[j]; + nvec += 1; + } + if (step_mem->implicit) { /* Implicit pieces */ + cvals[nvec] = ark_mem->h * step_mem->Bi->b[j]; + Xvecs[nvec] = step_mem->Fi[j]; + nvec += 1; + } } - for (j = 0; j < step_mem->stages; j++) + /* apply external polynomial (MRI) forcing (M = I required) */ + if (step_mem->expforcing || step_mem->impforcing) { - step_mem->stage_times[j] = ark_mem->tn + cj[j] * ark_mem->h; - step_mem->stage_coefs[j] = ark_mem->h * bj[j]; + if (step_mem->expforcing) + { + cj = step_mem->Be->c; + bj = step_mem->Be->b; + } + else + { + cj = step_mem->Bi->c; + bj = step_mem->Bi->b; + } + + for (j = 0; j < step_mem->stages; j++) + { + step_mem->stage_times[j] = ark_mem->tn + cj[j] * ark_mem->h; + step_mem->stage_coefs[j] = ark_mem->h * bj[j]; + } + + arkStep_ApplyForcing(step_mem, step_mem->stage_times, step_mem->stage_coefs, + step_mem->stages, &nvec); } - arkStep_ApplyForcing(step_mem, step_mem->stage_times, step_mem->stage_coefs, - step_mem->stages, &nvec); + /* call fused vector operation to do the work */ + retval = N_VLinearCombination(nvec, cvals, Xvecs, y); + if (retval != 0) return(ARK_VECTOROP_ERR); } - /* call fused vector operation to do the work */ - retval = N_VLinearCombination(nvec, cvals, Xvecs, y); - if (retval != 0) return(ARK_VECTOROP_ERR); - /* Compute yerr (if step adaptivity enabled) */ if (!ark_mem->fixedstep) { @@ -2997,6 +3022,7 @@ int arkStep_ComputeSolutions_MassFixed(ARKodeMem ark_mem, realtype *dsmPtr) /* local data */ int retval, j, nvec; N_Vector y, yerr; + booleantype stiffly_accurate; realtype* cvals; N_Vector* Xvecs; ARKodeARKStepMem step_mem; @@ -3020,37 +3046,60 @@ int arkStep_ComputeSolutions_MassFixed(ARKodeMem ark_mem, realtype *dsmPtr) /* initialize output */ *dsmPtr = ZERO; - /* compute y RHS (store in y) */ - /* set arrays for fused vector operation */ - nvec = 0; - for (j=0; jstages; j++) { - if (step_mem->explicit) { /* Explicit pieces */ - cvals[nvec] = ark_mem->h * step_mem->Be->b[j]; - Xvecs[nvec] = step_mem->Fe[j]; - nvec += 1; + /* check if the method is stiffly accurate */ + stiffly_accurate = SUNTRUE; + + if (step_mem->explicit) + { + if (!ARKodeButcherTable_IsStifflyAccurate(step_mem->Be)) + { + stiffly_accurate = SUNFALSE; } - if (step_mem->implicit) { /* Implicit pieces */ - cvals[nvec] = ark_mem->h * step_mem->Bi->b[j]; - Xvecs[nvec] = step_mem->Fi[j]; - nvec += 1; + } + + if (step_mem->implicit) + { + if (!ARKodeButcherTable_IsStifflyAccurate(step_mem->Bi)) + { + stiffly_accurate = SUNFALSE; } } - /* call fused vector operation to compute RHS */ - retval = N_VLinearCombination(nvec, cvals, Xvecs, y); - if (retval != 0) return(ARK_VECTOROP_ERR); + /* If the method is stiffly accurate, ycur is already the new solution */ - /* solve for y update (stored in y) */ - retval = step_mem->msolve((void *) ark_mem, y, step_mem->nlscoef); - if (retval < 0) { - *dsmPtr = RCONST(2.0); /* indicate too much error, step with smaller step */ - N_VScale(ONE, ark_mem->yn, y); /* place old solution into y */ - return(CONV_FAIL); - } + if (!stiffly_accurate) + { + /* compute y RHS (store in y) */ + /* set arrays for fused vector operation */ + nvec = 0; + for (j=0; jstages; j++) { + if (step_mem->explicit) { /* Explicit pieces */ + cvals[nvec] = ark_mem->h * step_mem->Be->b[j]; + Xvecs[nvec] = step_mem->Fe[j]; + nvec += 1; + } + if (step_mem->implicit) { /* Implicit pieces */ + cvals[nvec] = ark_mem->h * step_mem->Bi->b[j]; + Xvecs[nvec] = step_mem->Fi[j]; + nvec += 1; + } + } - /* compute y = yn + update */ - N_VLinearSum(ONE, ark_mem->yn, ONE, y, y); + /* call fused vector operation to compute RHS */ + retval = N_VLinearCombination(nvec, cvals, Xvecs, y); + if (retval != 0) return(ARK_VECTOROP_ERR); + + /* solve for y update (stored in y) */ + retval = step_mem->msolve((void *) ark_mem, y, step_mem->nlscoef); + if (retval < 0) { + *dsmPtr = RCONST(2.0); /* indicate too much error, step with smaller step */ + N_VScale(ONE, ark_mem->yn, y); /* place old solution into y */ + return(CONV_FAIL); + } + /* compute y = yn + update */ + N_VLinearSum(ONE, ark_mem->yn, ONE, y, y); + } /* compute yerr (if step adaptivity enabled) */ if (!ark_mem->fixedstep) { From 69ff9271cd0e9ed650e5b4e2f060a6b023caccf0 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 19 Oct 2023 20:26:48 -0700 Subject: [PATCH 74/92] relax LS stat comparisons in MRI vs DIRK test --- .../arkode/CXX_parallel/ark_test_heat2D_mri.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp index b6f6e3c51e..479524e8e4 100644 --- a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp @@ -103,6 +103,8 @@ static int SetupDecomp(UserData *udata); static int Exchange(N_Vector y, UserData *udata); // frees memory allocated within UserData static int FreeUserData(UserData *udata); +// check if relative difference is within tolerance +static bool Compare(long int a, long int b, sunrealtype tol); // Main Program int main(int argc, char* argv[]) { @@ -396,17 +398,17 @@ int main(int argc, char* argv[]) { if (outproc) cout << " Linear solver setups error: " << ark_nsetups << " vs " << mri_nsetups << "\n"; } - if (ark_nli < mri_nli) { + if (!Compare(ark_nli, mri_nli, ONE)) { numfails += 1; if (outproc) cout << " Linear iterations error: " << ark_nli << " vs " << mri_nli << "\n"; } - if (ark_nJv < mri_nJv) { + if (!Compare(ark_nJv, mri_nJv, ONE)) { numfails += 1; if (outproc) cout << " Jacobian-vector products error: " << ark_nJv << " vs " << mri_nJv << "\n"; } - if (ark_nps < mri_nps) { + if (!Compare(ark_nps, mri_nps, ONE)) { numfails += 1; if (outproc) cout << " Preconditioner solves error: " << ark_nps << " vs " << mri_nps << "\n"; @@ -943,5 +945,13 @@ static int FreeUserData(UserData *udata) return 0; // return with success flag } +// Check if relative difference of a and b is less than tolerance +static bool Compare(long int a, long int b, sunrealtype tol) +{ + sunrealtype rel_diff = SUN_RCONST(100.0) * + abs(static_cast(a - b) / static_cast(a)); + + return (rel_diff > tol) ? false : true; +} //---- end of file ---- From a993c552b1b54be20b129a1ba874f082f60e0689 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Fri, 27 Oct 2023 17:58:00 -0700 Subject: [PATCH 75/92] update relaxation examples --- .../C_serial/ark_conserved_exp_entropy_ark.c | 4 + .../ark_conserved_exp_entropy_ark_1_1.out | 58 ++++++------- .../C_serial/ark_dissipated_exp_entropy.c | 4 + .../ark_dissipated_exp_entropy_1_1.out | 82 +++++++++---------- 4 files changed, 78 insertions(+), 70 deletions(-) diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark.c b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark.c index 9064c56987..359f458f17 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark.c +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark.c @@ -264,6 +264,10 @@ int main(int argc, char* argv[]) flag = ARKStepSetTableName(arkode_mem, "ARKODE_ARK2_DIRK_3_1_2", "ARKODE_ERK_NONE"); if (check_flag(flag, "ARKStepSetTableName")) return 1; + + /* Tighten nonlinear solver tolerance */ + flag = ARKStepSetNonlinConvCoef(arkode_mem, SUN_RCONST(0.01)); + if (check_flag(flag, "ARKStepSetNonlinConvCoef")) return 1; } if (fixed_h > SUN_RCONST(0.0)) diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out index f39ee226bb..4586fd2945 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out @@ -8,41 +8,41 @@ Conserved Exponential Entropy problem: step t u v e delta e ------------------------------------------------------------------------------- 0 0.000000e+00 1.000000e+00 5.000000e-01 4.367003e+00 0.000000e+00 - 40 4.818398e-02 9.152743e-01 6.256939e-01 4.367003e+00 -3.552714e-15 - 80 9.766869e-02 8.169953e-01 7.435148e-01 4.367003e+00 1.776357e-15 - 120 1.471839e-01 7.070085e-01 8.497609e-01 4.367003e+00 7.105427e-15 - 160 1.966461e-01 5.855502e-01 9.443043e-01 4.367003e+00 8.881784e-15 - 200 2.459550e-01 4.532434e-01 1.027330e+00 4.367003e+00 7.105427e-15 - 240 2.950239e-01 3.109860e-01 1.099356e+00 4.367003e+00 3.552714e-15 - 280 3.391589e-01 1.745914e-01 1.155699e+00 4.367003e+00 1.243450e-14 - 320 3.716855e-01 6.932170e-02 1.192474e+00 4.367003e+00 1.243450e-14 - 360 3.897686e-01 9.164457e-03 1.211285e+00 4.367003e+00 1.509903e-14 - 400 3.941763e-01 -5.668726e-03 1.215701e+00 4.367003e+00 2.486900e-14 - 440 4.046793e-01 -4.127520e-02 1.225961e+00 4.367003e+00 2.486900e-14 - 480 4.248240e-01 -1.105695e-01 1.244638e+00 4.367003e+00 2.930989e-14 - 520 4.569215e-01 -2.235586e-01 1.271819e+00 4.367003e+00 2.842171e-14 - 560 5.017667e-01 -3.862877e-01 1.304929e+00 4.367003e+00 2.486900e-14 - 600 5.628643e-01 -6.159775e-01 1.342053e+00 4.367003e+00 2.753353e-14 - 640 6.460919e-01 -9.410149e-01 1.380470e+00 4.367003e+00 3.641532e-14 - 680 7.631310e-01 -1.415711e+00 1.416884e+00 4.367003e+00 3.641532e-14 - 720 9.370563e-01 -2.145218e+00 1.446910e+00 4.367003e+00 4.796163e-14 - 760 1.230365e+00 -3.406553e+00 1.466456e+00 4.367003e+00 7.283063e-14 - 800 2.394160e+00 -8.481276e+00 1.474030e+00 4.367003e+00 7.549517e-14 + 40 4.817852e-02 9.152845e-01 6.256803e-01 4.367003e+00 3.552714e-15 + 80 9.764003e-02 8.170556e-01 7.434499e-01 4.367003e+00 7.105427e-15 + 120 1.471282e-01 7.071386e-01 8.496481e-01 4.367003e+00 8.881784e-15 + 160 1.965497e-01 5.857982e-01 9.441311e-01 4.367003e+00 8.881784e-15 + 200 2.457811e-01 4.537292e-01 1.027056e+00 4.367003e+00 2.753353e-14 + 240 2.947183e-01 3.119036e-01 1.098939e+00 4.367003e+00 4.440892e-14 + 280 3.389142e-01 1.753685e-01 1.155408e+00 4.367003e+00 4.973799e-14 + 320 3.715233e-01 6.985629e-02 1.192300e+00 4.367003e+00 4.618528e-14 + 360 3.897050e-01 9.378019e-03 1.211221e+00 4.367003e+00 4.973799e-14 + 400 3.941218e-01 -5.484616e-03 1.215646e+00 4.367003e+00 6.306067e-14 + 440 4.041300e-01 -3.940365e-02 1.225433e+00 4.367003e+00 5.861978e-14 + 480 4.249355e-01 -1.109566e-01 1.244738e+00 4.367003e+00 6.394885e-14 + 520 4.567105e-01 -2.228060e-01 1.271650e+00 4.367003e+00 7.283063e-14 + 560 5.018939e-01 -3.867565e-01 1.305016e+00 4.367003e+00 8.082424e-14 + 600 5.637002e-01 -6.191770e-01 1.342503e+00 4.367003e+00 8.526513e-14 + 640 6.475411e-01 -9.467796e-01 1.381034e+00 4.367003e+00 9.148238e-14 + 680 7.633005e-01 -1.416410e+00 1.416925e+00 4.367003e+00 9.769963e-14 + 720 9.297484e-01 -2.114173e+00 1.446041e+00 4.367003e+00 1.039169e-13 + 760 1.217690e+00 -3.351631e+00 1.466024e+00 4.367003e+00 1.145750e-13 + 800 2.256864e+00 -7.881740e+00 1.473991e+00 4.367003e+00 1.207923e-13 ------------------------------------------------------------------------------- Final Solver Statistics: - Internal solver steps = 813 (attempted = 831) + Internal solver steps = 814 (attempted = 832) Total number of error test failures = 3 - Total RHS evals: Fe = 0, Fi = 6431 - Total number of Newton iterations = 3954 - Total number of linear solver convergence failures = 78 - Total linear solver setups = 160 - Total number of Jacobian evaluations = 98 + Total RHS evals: Fe = 0, Fi = 6827 + Total number of Newton iterations = 4347 + Total number of linear solver convergence failures = 117 + Total linear solver setups = 195 + Total number of Jacobian evaluations = 136 Total RHS evals for setting up the linear system = 0 - Total Relaxation Fn evals = 2621 - Total Relaxation Jac evals = 3452 + Total Relaxation Fn evals = 2689 + Total Relaxation Jac evals = 3521 Total Relaxation fails = 15 Total Relaxation bound fails = 15 Total Relaxation NLS fails = 0 - Total Relaxation NLS iters = 959 + Total Relaxation NLS iters = 1025 diff --git a/examples/arkode/C_serial/ark_dissipated_exp_entropy.c b/examples/arkode/C_serial/ark_dissipated_exp_entropy.c index 76da27a0c1..dbb62ec83e 100644 --- a/examples/arkode/C_serial/ark_dissipated_exp_entropy.c +++ b/examples/arkode/C_serial/ark_dissipated_exp_entropy.c @@ -244,6 +244,10 @@ int main(int argc, char* argv[]) flag = ARKStepSetTableName(arkode_mem, "ARKODE_ARK2_DIRK_3_1_2", "ARKODE_ERK_NONE"); if (check_flag(flag, "ARKStepSetTableName")) return 1; + + /* Tighten nonlinear solver tolerance */ + flag = ARKStepSetNonlinConvCoef(arkode_mem, SUN_RCONST(0.01)); + if (check_flag(flag, "ARKStepSetNonlinConvCoef")) return 1; } if (fixed_h > SUN_RCONST(0.0)) diff --git a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out index 38f493109a..156d049205 100644 --- a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out +++ b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out @@ -8,52 +8,52 @@ Dissipated Exponential Entropy problem: step t u e u_err delta e ------------------------------------------------------------------------------- 0 0.000000e+00 1.000000e+00 2.718282e+00 0.000000e+00 0.000000e+00 - 40 5.532834e-02 8.598921e-01 2.362906e+00 1.272595e+00 -3.553760e-01 - 80 1.097061e-01 7.390122e-01 2.093866e+00 1.072757e+00 -6.244157e-01 - 120 1.621192e-01 6.348810e-01 1.886798e+00 8.980007e-01 -8.314842e-01 - 160 2.128767e-01 5.434247e-01 1.721894e+00 7.425986e-01 -9.963881e-01 - 200 2.816359e-01 4.315291e-01 1.539610e+00 5.501251e-01 -1.178672e+00 - 240 3.484648e-01 3.335947e-01 1.395977e+00 3.796434e-01 -1.322305e+00 - 280 4.133160e-01 2.469303e-01 1.280090e+00 2.272780e-01 -1.438192e+00 - 320 4.764552e-01 1.692067e-01 1.184365e+00 8.948479e-02 -1.533917e+00 - 360 5.342836e-01 1.029604e-01 1.108447e+00 -2.878187e-02 -1.609834e+00 - 400 5.805889e-01 5.290718e-02 1.054332e+00 -1.186227e-01 -1.663950e+00 - 440 6.131438e-01 1.915938e-02 1.019344e+00 -1.794246e-01 -1.698938e+00 - 480 6.301872e-01 1.935497e-03 1.001937e+00 -2.105255e-01 -1.716344e+00 - 520 6.350100e-01 -2.884948e-03 9.971192e-01 -2.192380e-01 -1.721163e+00 - 560 6.468882e-01 -1.465940e-02 9.854475e-01 -2.405343e-01 -1.732834e+00 - 600 6.693569e-01 -3.655949e-02 9.641007e-01 -2.802015e-01 -1.754181e+00 - 640 7.021244e-01 -6.766194e-02 9.345764e-01 -3.366619e-01 -1.783705e+00 - 680 7.450857e-01 -1.070275e-01 8.985010e-01 -4.083287e-01 -1.819781e+00 - 720 8.015384e-01 -1.565058e-01 8.551266e-01 -4.987251e-01 -1.863155e+00 - 760 8.754911e-01 -2.178256e-01 8.042657e-01 -6.112328e-01 -1.914016e+00 - 800 9.627555e-01 -2.856560e-01 7.515211e-01 -7.362769e-01 -1.966761e+00 - 840 1.068726e+00 -3.622828e-01 6.960855e-01 -8.782492e-01 -2.022196e+00 - 880 1.205356e+00 -4.531342e-01 6.356328e-01 -1.047503e+00 -2.082649e+00 - 920 1.360691e+00 -5.472947e-01 5.785128e-01 -1.223917e+00 -2.139769e+00 - 960 1.555080e+00 -6.538650e-01 5.200320e-01 -1.424719e+00 -2.198250e+00 - 1000 1.799105e+00 -7.733362e-01 4.614710e-01 -1.651150e+00 -2.256811e+00 - 1040 2.083363e+00 -8.965947e-01 4.079565e-01 -1.886096e+00 -2.310325e+00 - 1080 2.428941e+00 -1.028483e+00 3.575491e-01 -2.138849e+00 -2.360733e+00 - 1120 2.880021e+00 -1.178008e+00 3.078913e-01 -2.426922e+00 -2.410390e+00 - 1160 3.423853e+00 -1.332822e+00 2.637319e-01 -2.726684e+00 -2.454550e+00 - 1200 4.082008e+00 -1.492878e+00 2.247250e-01 -3.037999e+00 -2.493557e+00 - 1240 4.890807e+00 -1.659880e+00 1.901617e-01 -3.364144e+00 -2.528120e+00 + 40 5.537896e-02 8.597725e-01 2.362623e+00 1.272399e+00 -3.556587e-01 + 80 1.099922e-01 7.384132e-01 2.092612e+00 1.071758e+00 -6.256694e-01 + 120 1.627168e-01 6.337541e-01 1.884673e+00 8.960967e-01 -8.336092e-01 + 160 2.138163e-01 5.418080e-01 1.719112e+00 7.398360e-01 -9.991696e-01 + 200 2.785993e-01 4.362152e-01 1.546842e+00 5.582361e-01 -1.171440e+00 + 240 3.461651e-01 3.368102e-01 1.400473e+00 3.852698e-01 -1.317809e+00 + 280 4.117847e-01 2.488924e-01 1.282604e+00 2.307427e-01 -1.435678e+00 + 320 4.756921e-01 1.701108e-01 1.185436e+00 9.109375e-02 -1.532846e+00 + 360 5.336712e-01 1.036393e-01 1.109200e+00 -2.756595e-02 -1.609081e+00 + 400 5.801378e-01 5.338279e-02 1.054833e+00 -1.177670e-01 -1.663448e+00 + 440 6.128657e-01 1.944281e-02 1.019633e+00 -1.789132e-01 -1.698649e+00 + 480 6.300899e-01 2.032891e-03 1.002035e+00 -2.103494e-01 -1.716247e+00 + 520 6.349961e-01 -2.871232e-03 9.971329e-01 -2.192131e-01 -1.721149e+00 + 560 6.468398e-01 -1.461180e-02 9.854944e-01 -2.404481e-01 -1.732787e+00 + 600 6.694857e-01 -3.668376e-02 9.639809e-01 -2.804267e-01 -1.754301e+00 + 640 7.021782e-01 -6.771235e-02 9.345293e-01 -3.367534e-01 -1.783753e+00 + 680 7.458296e-01 -1.076957e-01 8.979008e-01 -4.095471e-01 -1.820381e+00 + 720 8.007409e-01 -1.558236e-01 8.557101e-01 -4.974764e-01 -1.862572e+00 + 760 8.752295e-01 -2.176153e-01 8.044349e-01 -6.108460e-01 -1.913847e+00 + 800 9.636774e-01 -2.863486e-01 7.510007e-01 -7.375568e-01 -1.967281e+00 + 840 1.066491e+00 -3.607260e-01 6.971700e-01 -8.753575e-01 -2.021112e+00 + 880 1.204472e+00 -4.525718e-01 6.359904e-01 -1.046452e+00 -2.082291e+00 + 920 1.362583e+00 -5.483883e-01 5.778804e-01 -1.225972e+00 -2.140401e+00 + 960 1.551610e+00 -6.520589e-01 5.209720e-01 -1.421306e+00 -2.197310e+00 + 1000 1.797284e+00 -7.724956e-01 4.618590e-01 -1.649553e+00 -2.256423e+00 + 1040 2.083087e+00 -8.964821e-01 4.080024e-01 -1.885881e+00 -2.310279e+00 + 1080 2.422755e+00 -1.026269e+00 3.583415e-01 -2.134596e+00 -2.359940e+00 + 1120 2.874633e+00 -1.176348e+00 3.084029e-01 -2.423715e+00 -2.409879e+00 + 1160 3.418118e+00 -1.331309e+00 2.641313e-01 -2.723747e+00 -2.454151e+00 + 1200 4.078701e+00 -1.492135e+00 2.248921e-01 -3.036550e+00 -2.493390e+00 + 1240 4.884676e+00 -1.658714e+00 1.903836e-01 -3.361862e+00 -2.527898e+00 ------------------------------------------------------------------------------- Final Solver Statistics: - Internal solver steps = 1244 (attempted = 1246) - Total number of error test failures = 2 - Total RHS evals: Fe = 0, Fi = 9630 - Total number of Newton iterations = 5892 - Total number of linear solver convergence failures = 81 - Total linear solver setups = 149 - Total number of Jacobian evaluations = 93 + Internal solver steps = 1245 (attempted = 1246) + Total number of error test failures = 1 + Total RHS evals: Fe = 0, Fi = 10907 + Total number of Newton iterations = 7168 + Total number of linear solver convergence failures = 111 + Total linear solver setups = 179 + Total number of Jacobian evaluations = 125 Total RHS evals for setting up the linear system = 0 - Total Relaxation Fn evals = 3738 - Total Relaxation Jac evals = 4984 + Total Relaxation Fn evals = 4403 + Total Relaxation Jac evals = 5649 Total Relaxation fails = 0 Total Relaxation bound fails = 0 Total Relaxation NLS fails = 0 - Total Relaxation NLS iters = 1246 + Total Relaxation NLS iters = 1911 From 1dcdf4da9f47b592412f3267b36b017acc77e4e1 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Fri, 27 Oct 2023 17:57:08 -0700 Subject: [PATCH 76/92] update output files --- ...sion_reaction_p_--np_2_2_--mri-arkstep.out | 52 +-- .../CXX_parallel/ark_heat2D_p_--np_2_2.out | 52 +-- .../ark_heat2D_hypre_ls_--np_2_2.out | 42 +-- .../ark_heat2D_hypre_pfmg_--np_2_2.out | 42 +-- .../ark_heat2D_hypre_pfmg_mri_--np_2_2.out | 20 +- examples/arkode/CXX_serial/ark_heat2D.out | 52 +-- .../CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out | 2 +- .../arkode/CXX_serial/ark_kpr_Mt_1_-5.out | 10 +- examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out | 220 ++++++------ .../ark_brusselator1D_FEM_sludist.out | 116 +++---- ...mg_xbraid_--np_2_1_2_--x_print_level_0.out | 2 +- ..._p_xbraid_--np_2_1_2_--x_print_level_0.out | 12 +- .../ark_heat2D_xbraid_--x_print_level_0.out | 12 +- .../arkode/C_openmp/ark_brusselator1D_omp.out | 88 ++--- .../C_parallel/ark_diurnal_kry_bbd_p.out | 128 +++---- .../arkode/C_parallel/ark_diurnal_kry_p.out | 58 ++-- .../arkode/C_parhyp/ark_diurnal_kry_ph.out | 60 ++-- .../arkode/C_serial/ark_KrylovDemo_prec.out | 322 ++++++++--------- .../arkode/C_serial/ark_KrylovDemo_prec_1.out | 326 ++++++++--------- .../arkode/C_serial/ark_KrylovDemo_prec_2.out | 328 +++++++++--------- .../arkode/C_serial/ark_brusselator1D.out | 88 ++--- .../C_serial/ark_brusselator1D_FEM_slu.out | 116 +++---- .../arkode/C_serial/ark_brusselator1D_klu.out | 10 +- .../C_serial/ark_brusselator_1D_mri.out | 56 +-- .../ark_conserved_exp_entropy_ark_1_1.out | 1 - .../ark_dissipated_exp_entropy_1_1.out | 1 - examples/arkode/C_serial/ark_heat1D.out | 10 +- examples/arkode/C_serial/ark_heat1D_adapt.out | 277 +++++++-------- examples/arkode/C_serial/ark_robertson.out | 228 ++++++------ .../C_serial/ark_robertson_constraints.out | 218 ++++++------ .../arkode/C_serial/ark_robertson_root.out | 38 +- .../F2003_serial/ark_analytic_f2003.out | 18 +- .../CXX_parallel/ark_test_heat2D_mri_0.out | 6 +- .../CXX_parallel/ark_test_heat2D_mri_1.out | 6 +- 34 files changed, 1498 insertions(+), 1519 deletions(-) diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out index d62f51b72f..ae206aafd4 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p_--np_2_2_--mri-arkstep.out @@ -51,26 +51,26 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.172144385112383e+00 - 5.000000000000000e-01 3.136741760482618e+00 - 1.000000000000000e+00 3.125063175363783e+00 - 1.500000000000000e+00 3.152612863986941e+00 - 2.000000000000000e+00 3.252046433219017e+00 - 2.500000000000000e+00 3.404770329494351e+00 - 3.000000000000000e+00 3.570197852205681e+00 - 3.500000000000000e+00 3.699979314427705e+00 - 4.000000000000000e+00 3.694673751772928e+00 - 4.500000000000000e+00 3.628192785115424e+00 - 5.000000000000000e+00 3.475181822861138e+00 - 5.500000000000000e+00 3.343883454412250e+00 - 6.000000000000000e+00 3.234020089000460e+00 - 6.500000000000000e+00 3.082396890292331e+00 - 7.000000000000000e+00 2.890645316156054e+00 - 7.500000000000000e+00 2.837264106216743e+00 - 8.000000000000000e+00 2.898204458277535e+00 - 8.500000000000000e+00 3.140043918283985e+00 - 9.000000000000000e+00 3.442234957111755e+00 - 9.500000000000000e+00 3.740410490147616e+00 - 1.000000000000000e+01 4.014486595474152e+00 + 5.000000000000000e-01 3.136741760652088e+00 + 1.000000000000000e+00 3.125063175301122e+00 + 1.500000000000000e+00 3.152612863029649e+00 + 2.000000000000000e+00 3.252046438757223e+00 + 2.500000000000000e+00 3.404770336275880e+00 + 3.000000000000000e+00 3.570197843463192e+00 + 3.500000000000000e+00 3.699979298705992e+00 + 4.000000000000000e+00 3.694673743577147e+00 + 4.500000000000000e+00 3.628192807357139e+00 + 5.000000000000000e+00 3.475181871691853e+00 + 5.500000000000000e+00 3.343883541753708e+00 + 6.000000000000000e+00 3.234020189727759e+00 + 6.500000000000000e+00 3.082396969215168e+00 + 7.000000000000000e+00 2.890645348225157e+00 + 7.500000000000000e+00 2.837264086636537e+00 + 8.000000000000000e+00 2.898204389104409e+00 + 8.500000000000000e+00 3.140043837970826e+00 + 9.000000000000000e+00 3.442234882231944e+00 + 9.500000000000000e+00 3.740410418605710e+00 + 1.000000000000000e+01 4.014486526389547e+00 ---------------------------------------------- Final integrator statistics: @@ -80,17 +80,17 @@ Slow Integrator: RHS diffusion = 792 NLS iters = 396 NLS fails = 0 - LS iters = 2638 - LS fails = 0 + LS iters = 2633 + LS fails = 1 LS setups = 0 - LS RHS evals = 2638 - Jv products = 2638 + LS RHS evals = 2633 + Jv products = 2633 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 6.661616 + Avg LS iters per NLS iter = 6.648990 Preconditioner setups = 0 - Preconditioner solves = 2638 + Preconditioner solves = 2633 Fast Integrator: Steps = 470 diff --git a/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out b/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out index 22ceca7901..7ab208a80b 100644 --- a/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out +++ b/examples/arkode/CXX_parallel/ark_heat2D_p_--np_2_2.out @@ -37,26 +37,26 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.632812500000001e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.551988423210773e-01 2.455482120815589e-03 - 1.000000000000000e-01 3.296234296573138e-01 2.897897073513955e-03 - 1.500000000000000e-01 2.894441904138305e-01 2.832302527497887e-03 - 2.000000000000000e-01 2.387114755959542e-01 2.525795107893525e-03 - 2.500000000000000e-01 1.824256470866840e-01 2.078267208446394e-03 - 3.000000000000000e-01 1.261168089372778e-01 1.580110971926563e-03 - 3.500000000000000e-01 7.529981316682129e-02 1.084791446543720e-03 - 4.000000000000000e-01 3.495180884859733e-02 6.472678270688648e-04 - 4.500000000000000e-01 9.023693981846130e-03 3.135811045401164e-04 - 4.999999999999999e-01 5.528701660572343e-05 1.158664446240334e-04 - 5.499999999999999e-01 8.918915915762276e-03 7.372605991916303e-05 - 6.000000000000000e-01 3.475275190982390e-02 1.914158143558886e-04 - 6.500000000000000e-01 7.502609255922740e-02 4.577117946851506e-04 - 7.000000000000001e-01 1.257965750948526e-01 8.461652738148140e-04 - 7.500000000000001e-01 1.820941861195771e-01 1.318095240728456e-03 - 8.000000000000002e-01 2.384093995819983e-01 1.830603331435809e-03 - 8.500000000000002e-01 2.892274535841603e-01 2.327914367739603e-03 - 9.000000000000002e-01 3.295751198182689e-01 2.764242172780151e-03 - 9.500000000000003e-01 3.555039204325286e-01 3.099493020647270e-03 - 1.000000000000000e+00 3.644737419741893e-01 3.296010439042152e-03 + 5.000000000000000e-02 3.551988422773351e-01 2.455482033533629e-03 + 1.000000000000000e-01 3.296234292363186e-01 2.897896070159778e-03 + 1.500000000000000e-01 2.894441908882201e-01 2.832303715537221e-03 + 2.000000000000000e-01 2.387114782162635e-01 2.525801964766261e-03 + 2.500000000000000e-01 1.824256478587985e-01 2.078269197756610e-03 + 3.000000000000000e-01 1.261168083661019e-01 1.580109403207297e-03 + 3.500000000000000e-01 7.529981277589509e-02 1.084790395311314e-03 + 4.000000000000000e-01 3.495180900127044e-02 6.472682226835030e-04 + 4.500000000000000e-01 9.023693954928847e-03 3.135810291332412e-04 + 4.999999999999999e-01 5.528701553701492e-05 1.158664422041093e-04 + 5.499999999999999e-01 8.918915917846342e-03 7.372606743541107e-05 + 6.000000000000000e-01 3.475275192986246e-02 1.914158585883952e-04 + 6.500000000000000e-01 7.502609251530372e-02 4.577116765183409e-04 + 7.000000000000001e-01 1.257965751119296e-01 8.461653253856172e-04 + 7.500000000000001e-01 1.820941861384917e-01 1.318095298729283e-03 + 8.000000000000002e-01 2.384093995726680e-01 1.830603288722976e-03 + 8.500000000000002e-01 2.892274536259308e-01 2.327914434912759e-03 + 9.000000000000002e-01 3.295751200296289e-01 2.764242715472154e-03 + 9.500000000000003e-01 3.555039203503529e-01 3.099492697821171e-03 + 1.000000000000000e+00 3.644737419510748e-01 3.296010382116465e-03 ----------------------------------------------------------------------- Final integrator statistics: @@ -66,16 +66,16 @@ Final integrator statistics: RHS evals = 753 NLS iters = 375 NLS fails = 0 - LS iters = 12943 + LS iters = 12925 LS fails = 36 LS setups = 56 - LS RHS evals = 12943 - Jv products = 12943 + LS RHS evals = 12925 + Jv products = 12925 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 34.514667 + Avg LS iters per NLS iter = 34.466667 Preconditioner setups = 4 - Preconditioner solves = 12943 + Preconditioner solves = 12925 - Max error = 3.296010439042152e-03 + Max error = 3.296010382116465e-03 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls_--np_2_2.out index d62dcc437b..caced8662d 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls_--np_2_2.out @@ -39,26 +39,26 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.603048616822545e-01 5.947581714760286e-04 - 1.000000000000000e-01 3.341442212785615e-01 7.029488409013851e-04 - 1.500000000000000e-01 2.933129364275077e-01 6.872104685722302e-04 - 2.000000000000000e-01 2.418371828080387e-01 6.138967946408558e-04 - 2.500000000000000e-01 1.847632280583572e-01 5.043531478602370e-04 - 3.000000000000000e-01 1.276840002100012e-01 3.835930452203429e-04 - 3.500000000000000e-01 7.618719032579514e-02 2.636045144156773e-04 - 4.000000000000000e-01 3.531419592855609e-02 1.573064584402817e-04 - 4.500000000000000e-01 9.066519338739386e-03 7.648428870138738e-05 - 4.999999999999999e-01 1.366001182694566e-05 2.823151529496145e-05 - 5.499999999999999e-01 9.040623249651518e-03 1.797011214870609e-05 - 6.000000000000000e-01 3.526521493569591e-02 4.668318270634186e-05 - 6.500000000000000e-01 7.611978800136085e-02 1.113065263843305e-04 - 7.000000000000001e-01 1.276052139782833e-01 2.055077698996932e-04 - 7.500000000000001e-01 1.846816872939459e-01 3.198180155253305e-04 - 8.000000000000002e-01 2.417622665916507e-01 4.436012737950579e-04 - 8.500000000000002e-01 2.932595626771289e-01 5.646812075739138e-04 - 9.000000000000002e-01 3.341325736192596e-01 6.709855232923667e-04 - 9.500000000000003e-01 3.603805168236139e-01 7.524532347086277e-04 - 1.000000000000000e+00 3.694333172787351e-01 7.994041733336843e-04 + 5.000000000000000e-02 3.603048616826305e-01 5.947581725728179e-04 + 1.000000000000000e-01 3.341442212752840e-01 7.029488321168564e-04 + 1.500000000000000e-01 2.933129364265377e-01 6.872104657476008e-04 + 2.000000000000000e-01 2.418371828053933e-01 6.138967875570778e-04 + 2.500000000000000e-01 1.847632280574957e-01 5.043531454586581e-04 + 3.000000000000000e-01 1.276840002086280e-01 3.835930415112543e-04 + 3.500000000000000e-01 7.618719032747635e-02 2.636045188839364e-04 + 4.000000000000000e-01 3.531419592900913e-02 1.573064596348678e-04 + 4.500000000000000e-01 9.066519339379787e-03 7.648429036438351e-05 + 4.999999999999999e-01 1.366001182955177e-05 2.823151525618881e-05 + 5.499999999999999e-01 9.040623249804479e-03 1.797011257123962e-05 + 6.000000000000000e-01 3.526521493542883e-02 4.668318201425659e-05 + 6.500000000000000e-01 7.611978800168785e-02 1.113065272947134e-04 + 7.000000000000001e-01 1.276052139795591e-01 2.055077733625899e-04 + 7.500000000000001e-01 1.846816872915430e-01 3.198180091384950e-04 + 8.000000000000002e-01 2.417622665897318e-01 4.436012686822588e-04 + 8.500000000000002e-01 2.932595626759321e-01 5.646812043804683e-04 + 9.000000000000002e-01 3.341325736187308e-01 6.709855218931526e-04 + 9.500000000000003e-01 3.603805168237891e-01 7.524532351810276e-04 + 1.000000000000000e+00 3.694333172786589e-01 7.994041731159696e-04 ----------------------------------------------------------------------- Final integrator statistics: @@ -76,4 +76,4 @@ Final integrator statistics: Avg NLS iters per step attempt = 3.000000 Avg LS iters per NLS iter = 7.222222 - Max error = 7.994041733336843e-04 + Max error = 7.994041731159696e-04 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_--np_2_2.out index f2b48883ca..3aa6089418 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_--np_2_2.out @@ -40,26 +40,26 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.603048619662594e-01 5.947589771124751e-04 - 1.000000000000000e-01 3.341442196174839e-01 7.029444121012807e-04 - 1.500000000000000e-01 2.933129358750161e-01 6.872089117678781e-04 - 2.000000000000000e-01 2.418371814148556e-01 6.138930842621848e-04 - 2.500000000000000e-01 1.847632276336554e-01 5.043519800296270e-04 - 3.000000000000000e-01 1.276839995651514e-01 3.835913188042217e-04 - 3.500000000000000e-01 7.618719103623366e-02 2.636064234229352e-04 - 4.000000000000000e-01 3.531419609294345e-02 1.573069046419823e-04 - 4.500000000000000e-01 9.066519518111988e-03 7.648477672918610e-05 - 4.999999999999999e-01 1.366000896373604e-05 2.823150862393431e-05 - 5.499999999999999e-01 9.040623277437885e-03 1.797018734061087e-05 - 6.000000000000000e-01 3.526521486679048e-02 4.668299420636235e-05 - 6.500000000000000e-01 7.611978809919251e-02 1.113067842546667e-04 - 7.000000000000001e-01 1.276052144727296e-01 2.055090932608361e-04 - 7.500000000000001e-01 1.846816861396953e-01 3.198149617728019e-04 - 8.000000000000002e-01 2.417622654058103e-01 4.435981137953515e-04 - 8.500000000000002e-01 2.932595616787877e-01 5.646785202919613e-04 - 9.000000000000002e-01 3.341325729864703e-01 6.709838211867991e-04 - 9.500000000000003e-01 3.603805171569960e-01 7.524541115215833e-04 - 1.000000000000000e+00 3.694333171827900e-01 7.994038755922972e-04 + 5.000000000000000e-02 3.603048619753333e-01 5.947590016540660e-04 + 1.000000000000000e-01 3.341442195764323e-01 7.029443280297532e-04 + 1.500000000000000e-01 2.933129358633914e-01 6.872088817982958e-04 + 2.000000000000000e-01 2.418371813857269e-01 6.138930097124851e-04 + 2.500000000000000e-01 1.847632276239268e-01 5.043519623673109e-04 + 3.000000000000000e-01 1.276839995499893e-01 3.835912864304514e-04 + 3.500000000000000e-01 7.618719105489918e-02 2.636064591631515e-04 + 4.000000000000000e-01 3.531419609803035e-02 1.573069173000513e-04 + 4.500000000000000e-01 9.066519524079126e-03 7.648478735214695e-05 + 4.999999999999999e-01 1.366000892977262e-05 2.823150845772370e-05 + 5.499999999999999e-01 9.040623278407151e-03 1.797019017690110e-05 + 6.000000000000000e-01 3.526521486057654e-02 4.668298068317978e-05 + 6.500000000000000e-01 7.611978811031622e-02 1.113068150605245e-04 + 7.000000000000001e-01 1.276052145445968e-01 2.055092828922023e-04 + 7.500000000000001e-01 1.846816859443554e-01 3.198144283996229e-04 + 8.000000000000002e-01 2.417622651778854e-01 4.435975267760295e-04 + 8.500000000000002e-01 2.932595614654954e-01 5.646779628073473e-04 + 9.000000000000002e-01 3.341325728392148e-01 6.709834145076643e-04 + 9.500000000000003e-01 3.603805172400869e-01 7.524543311739906e-04 + 1.000000000000000e+00 3.694333171606730e-01 7.994038031826634e-04 ----------------------------------------------------------------------- Final integrator statistics: @@ -82,4 +82,4 @@ Final integrator statistics: Preconditioner solves = 2482 PFMG iters = 2482 - Max error = 7.994038755922972e-04 + Max error = 7.994038031826634e-04 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out index 312cb0f122..5c1a518ea8 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out @@ -42,16 +42,16 @@ t ||u||_rms ---------------------------------------------- 0.000000000000000e+00 3.691406249999997e-01 - 1.000000000000000e-01 5.162012484063519e-02 - 2.000000000000000e-01 7.426100623746804e-03 - 3.000000000000000e-01 1.067221389930346e-03 - 4.000000000000000e-01 1.533638122105192e-04 - 5.000000000000000e-01 2.203890106099257e-05 - 6.000000000000000e-01 3.167064486072479e-06 - 7.000000000000000e-01 4.551179118006582e-07 - 7.999999999999999e-01 6.540200053043108e-08 - 8.999999999999999e-01 9.398526428526612e-09 - 1.000000000000000e+00 1.350608973296844e-09 + 1.000000000000000e-01 5.162014241947240e-02 + 2.000000000000000e-01 7.426100187263422e-03 + 3.000000000000000e-01 1.067221316468460e-03 + 4.000000000000000e-01 1.533638016722887e-04 + 5.000000000000000e-01 2.203889954704845e-05 + 6.000000000000000e-01 3.167064268518253e-06 + 7.000000000000000e-01 4.551178805373316e-07 + 7.999999999999999e-01 6.540199603778498e-08 + 8.999999999999999e-01 9.398525782915539e-09 + 1.000000000000000e+00 1.350608880519736e-09 ---------------------------------------------- Final slow integrator statistics: diff --git a/examples/arkode/CXX_serial/ark_heat2D.out b/examples/arkode/CXX_serial/ark_heat2D.out index 61921595f5..07fbd3c159 100644 --- a/examples/arkode/CXX_serial/ark_heat2D.out +++ b/examples/arkode/CXX_serial/ark_heat2D.out @@ -31,26 +31,26 @@ t ||u||_rms max error ----------------------------------------------------------------------- 0.000000000000000e+00 3.632812500000000e-01 0.000000000000000e+00 - 5.000000000000000e-02 3.551988423225977e-01 2.455482142558529e-03 - 1.000000000000000e-01 3.296234296731421e-01 2.897897083898759e-03 - 1.500000000000000e-01 2.894441903938073e-01 2.832302514028218e-03 - 2.000000000000000e-01 2.387114755216789e-01 2.525794784800972e-03 - 2.500000000000000e-01 1.824256470664105e-01 2.078267131840561e-03 - 3.000000000000000e-01 1.261168089173533e-01 1.580110898853460e-03 - 3.500000000000000e-01 7.529981314828814e-02 1.084791391229467e-03 - 4.000000000000000e-01 3.495180885901539e-02 6.472678566764728e-04 - 4.500000000000000e-01 9.023693981822302e-03 3.135811043245493e-04 - 4.999999999999999e-01 5.528701630648521e-05 1.158664439714102e-04 - 5.499999999999999e-01 8.918915915553700e-03 7.372606022660808e-05 - 6.000000000000000e-01 3.475275190931830e-02 1.914158144245698e-04 - 6.500000000000000e-01 7.502609255736004e-02 4.577117907992034e-04 - 7.000000000000001e-01 1.257965750974924e-01 8.461652828621880e-04 - 7.500000000000001e-01 1.820941861251605e-01 1.318095241004014e-03 - 8.000000000000002e-01 2.384093995943868e-01 1.830603310640888e-03 - 8.500000000000002e-01 2.892274535564041e-01 2.327914286174293e-03 - 9.000000000000002e-01 3.295751197219703e-01 2.764241935276468e-03 - 9.500000000000003e-01 3.555039205013979e-01 3.099493195011460e-03 - 1.000000000000000e+00 3.644737419740317e-01 3.296010437027208e-03 + 5.000000000000000e-02 3.551988422792973e-01 2.455482048598578e-03 + 1.000000000000000e-01 3.296234292110422e-01 2.897895995286115e-03 + 1.500000000000000e-01 2.894441909302122e-01 2.832303854545248e-03 + 2.000000000000000e-01 2.387114783517686e-01 2.525802321085235e-03 + 2.500000000000000e-01 1.824256479734333e-01 2.078269488693274e-03 + 3.000000000000000e-01 1.261168083293890e-01 1.580109287144749e-03 + 3.500000000000000e-01 7.529981275357446e-02 1.084790334542951e-03 + 4.000000000000000e-01 3.495180902992235e-02 6.472683008614116e-04 + 4.500000000000000e-01 9.023693952669724e-03 3.135810223303982e-04 + 4.999999999999999e-01 5.528701552159280e-05 1.158664421454541e-04 + 5.499999999999999e-01 8.918915918112386e-03 7.372606746483198e-05 + 6.000000000000000e-01 3.475275193284167e-02 1.914158675670324e-04 + 6.500000000000000e-01 7.502609250656343e-02 4.577116535290637e-04 + 7.000000000000001e-01 1.257965751177328e-01 8.461653470575592e-04 + 7.500000000000001e-01 1.820941861469086e-01 1.318095315867573e-03 + 8.000000000000002e-01 2.384093995809592e-01 1.830603315116197e-03 + 8.500000000000002e-01 2.892274536079913e-01 2.327914393411401e-03 + 9.000000000000002e-01 3.295751199857850e-01 2.764242599605837e-03 + 9.500000000000003e-01 3.555039203642584e-01 3.099492771073020e-03 + 1.000000000000000e+00 3.644737419562301e-01 3.296010393803339e-03 ----------------------------------------------------------------------- Final integrator statistics: @@ -60,16 +60,16 @@ Final integrator statistics: RHS evals = 753 NLS iters = 375 NLS fails = 0 - LS iters = 12945 + LS iters = 12926 LS fails = 37 LS setups = 56 - LS RHS evals = 12945 - Jv products = 12945 + LS RHS evals = 12926 + Jv products = 12926 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 34.520000 + Avg LS iters per NLS iter = 34.469333 Preconditioner setups = 4 - Preconditioner solves = 12945 + Preconditioner solves = 12926 - Max error = 3.296010437027208e-03 + Max error = 3.296010393803339e-03 diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out index b3ee50ac25..848d98ebc4 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-3_0_-10_0.out @@ -18,6 +18,6 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: h = 3.125e-02, error = 1.482e-07, order = 2.90 h = 1.562e-02, error = 1.929e-08, order = 2.94 h = 7.812e-03, error = 2.467e-09, order = 2.97 - h = 3.906e-03, error = 3.121e-10, order = 2.98 + h = 3.906e-03, error = 3.124e-10, order = 2.98 ----------------------------------------------------- Order: max = 2.98, avg = 2.89, overall = 2.89 [SUCCESS] diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out index acf5c40569..5c1b0cbb31 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_1_-5.out @@ -15,9 +15,9 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: h = 2.500e-01, error = 2.900e-06, order = 2.57 h = 1.250e-01, error = 3.629e-07, order = 3.00 h = 6.250e-02, error = 2.782e-08, order = 3.71 - h = 3.125e-02, error = 1.203e-09, order = 4.53 - h = 1.562e-02, error = 3.681e-11, order = 5.03 - h = 7.812e-03, error = 1.638e-12, order = 4.49 - h = 3.906e-03, error = 5.994e-13, order = 1.45 + h = 3.125e-02, error = 1.209e-09, order = 4.52 + h = 1.562e-02, error = 3.841e-11, order = 4.98 + h = 7.812e-03, error = 5.907e-11, order = -0.62 + h = 3.906e-03, error = 5.812e-10, order = -3.30 ----------------------------------------------------- - Order: max = 5.03, avg = 3.54, overall = 3.83 [SUCCESS] + Order: max = 4.98, avg = 2.12, overall = 2.69 [SUCCESS] diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out b/examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out index d105049908..8f2cfc2057 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_1_4.out @@ -12,117 +12,117 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: t u v uerr verr ------------------------------------------------------ -3.000000 0.710636 1.363407 0.00e+00 0.00e+00 - -2.900000 0.717300 1.326933 6.90e-07 4.00e-08 - -2.800000 0.727250 1.290353 2.85e-06 2.04e-07 - -2.700000 0.740246 1.254041 4.65e-07 3.90e-07 - -2.600000 0.756016 1.218399 3.06e-06 5.79e-07 - -2.500000 0.774228 1.183861 8.32e-07 7.57e-07 - -2.400000 0.794548 1.150884 2.53e-06 8.93e-07 - -2.300000 0.816617 1.119952 1.19e-06 1.06e-06 - -2.200000 0.840089 1.091559 5.50e-07 1.12e-06 - -2.100000 0.864626 1.066203 2.50e-07 1.05e-06 - -2.000000 0.889904 1.044366 1.55e-06 1.03e-06 - -1.900000 0.915619 1.026498 1.84e-06 1.01e-06 - -1.800000 0.941487 1.012991 3.20e-07 9.47e-07 - -1.700000 0.967252 1.004158 8.70e-07 8.30e-07 - -1.600000 0.992671 1.000212 2.01e-06 7.03e-07 - -1.500000 1.017529 1.001251 2.00e-06 5.98e-07 - -1.400000 1.041624 1.007248 1.54e-06 6.65e-07 - -1.300000 1.064775 1.018057 1.32e-06 6.28e-07 - -1.200000 1.086819 1.033421 1.50e-06 6.53e-07 - -1.100000 1.107607 1.052992 2.13e-06 7.21e-07 - -1.000000 1.127007 1.076349 2.61e-06 7.67e-07 - -0.900000 1.144902 1.103029 1.59e-06 4.52e-07 - -0.800000 1.161188 1.132538 2.05e-06 7.58e-07 - -0.700000 1.175758 1.164380 6.36e-06 1.01e-06 - -0.600000 1.188555 1.198063 2.28e-06 7.51e-07 - -0.500000 1.199497 1.233116 8.55e-07 4.03e-07 - -0.400000 1.208524 1.269087 2.18e-07 1.52e-08 - -0.300000 1.215590 1.305557 3.40e-06 3.81e-07 - -0.200000 1.220663 1.342136 6.25e-06 5.43e-07 - -0.100000 1.223722 1.378465 2.50e-06 5.70e-07 - 0.000000 1.224746 1.414215 1.59e-06 1.14e-06 - 0.100000 1.223720 1.449082 4.25e-06 2.11e-06 - 0.200000 1.220668 1.482793 1.05e-06 1.99e-06 - 0.300000 1.215593 1.515099 5.06e-07 1.85e-06 - 0.400000 1.208521 1.545776 3.29e-06 1.89e-06 - 0.500000 1.199496 1.574621 7.48e-07 1.78e-06 - 0.600000 1.188557 1.601452 3.26e-07 1.70e-06 - 0.700000 1.175760 1.626107 4.35e-06 1.78e-06 - 0.800000 1.161186 1.648442 5.26e-07 1.68e-06 - 0.900000 1.144902 1.668332 2.31e-06 1.66e-06 - 1.000000 1.127009 1.685668 7.43e-07 1.62e-06 - 1.100000 1.107609 1.700357 2.63e-07 1.56e-06 - 1.200000 1.086820 1.712321 5.20e-07 1.44e-06 - 1.300000 1.064777 1.721500 1.01e-07 1.33e-06 - 1.400000 1.041624 1.727847 1.38e-06 1.26e-06 - 1.500000 1.017531 1.731329 2.37e-07 1.16e-06 - 1.600000 0.992672 1.731929 1.41e-06 1.12e-06 - 1.700000 0.967253 1.729644 7.13e-07 1.05e-06 - 1.800000 0.941487 1.724486 7.08e-07 1.19e-06 - 1.900000 0.915618 1.716480 2.17e-07 1.09e-06 - 2.000000 0.889903 1.705667 3.68e-07 1.00e-06 - 2.100000 0.864628 1.692103 2.94e-06 8.92e-07 - 2.200000 0.840091 1.675858 2.07e-06 8.30e-07 - 2.300000 0.816605 1.657018 1.09e-05 9.67e-07 - 2.400000 0.794549 1.635685 2.66e-06 8.36e-07 - 2.500000 0.774229 1.611978 1.17e-06 7.72e-07 - 2.600000 0.756015 1.586034 2.29e-06 7.56e-07 - 2.700000 0.740247 1.558006 9.29e-07 7.11e-07 - 2.800000 0.727248 1.528067 7.64e-07 6.57e-07 - 2.900000 0.717300 1.496413 8.02e-07 3.69e-07 - 3.000000 0.710637 1.463257 9.13e-07 3.64e-08 - 3.100000 0.707413 1.428839 7.08e-07 1.44e-08 - 3.200000 0.707711 1.393422 1.21e-06 4.66e-08 - 3.300000 0.711519 1.357297 3.86e-07 1.18e-07 - 3.400000 0.718749 1.320780 1.65e-07 1.46e-07 - 3.500000 0.729227 1.284219 9.88e-08 2.27e-07 - 3.600000 0.742713 1.247990 1.15e-06 1.02e-07 - 3.700000 0.758912 1.212503 1.30e-06 1.06e-07 - 3.800000 0.777506 1.178195 6.05e-07 1.87e-07 - 3.900000 0.798144 1.145528 1.62e-07 2.67e-07 - 4.000000 0.820474 1.114988 9.51e-08 1.14e-07 - 4.100000 0.844149 1.087071 3.96e-08 1.31e-07 - 4.200000 0.868833 1.062273 7.67e-07 1.16e-07 - 4.300000 0.894211 1.041073 6.73e-06 1.81e-08 - 4.400000 0.919966 1.023913 2.11e-06 2.69e-09 - 4.500000 0.945834 1.011173 1.70e-07 1.10e-08 - 4.600000 0.971556 1.003150 1.13e-06 5.16e-08 - 4.700000 0.996897 1.000038 1.42e-06 7.91e-08 - 4.800000 1.021639 1.001916 1.19e-06 9.31e-08 - 4.900000 1.045588 1.008735 1.03e-06 1.05e-07 - 5.000000 1.068564 1.020331 8.61e-07 1.62e-07 - 5.100000 1.090406 1.036429 1.29e-06 1.73e-07 - 5.200000 1.110970 1.056667 1.73e-06 2.26e-07 - 5.300000 1.130125 1.080616 2.51e-06 3.16e-07 - 5.400000 1.147755 1.107807 1.99e-06 5.35e-08 - 5.500000 1.163762 1.137744 3.40e-06 5.27e-07 - 5.600000 1.178038 1.169929 4.12e-06 5.47e-07 - 5.700000 1.190529 1.203876 1.31e-06 1.08e-06 - 5.800000 1.201148 1.239113 1.78e-06 1.03e-06 - 5.900000 1.209851 1.275196 3.91e-07 1.02e-06 - 6.000000 1.216587 1.311712 9.50e-07 1.05e-06 - 6.100000 1.221330 1.348274 4.73e-06 2.31e-06 - 6.200000 1.224037 1.384529 2.28e-06 3.47e-06 - 6.300000 1.224714 1.420148 1.85e-06 2.61e-06 - 6.400000 1.223352 1.454838 1.34e-06 2.00e-06 - 6.500000 1.219949 1.488332 7.09e-06 3.63e-06 - 6.600000 1.214542 1.520380 1.21e-06 4.50e-06 - 6.700000 1.207144 1.550762 1.64e-06 3.71e-06 - 6.800000 1.197789 1.579279 2.09e-07 3.17e-06 - 6.900000 1.186534 1.605755 6.36e-07 2.59e-06 - 7.000000 1.173438 1.630029 2.81e-06 2.14e-06 + -2.900000 0.717303 1.326933 1.41e-06 9.00e-08 + -2.800000 0.727250 1.290353 3.05e-06 3.67e-07 + -2.700000 0.740247 1.254042 1.58e-06 3.07e-07 + -2.600000 0.756016 1.218400 3.34e-06 3.18e-07 + -2.500000 0.774229 1.183863 1.87e-06 1.42e-06 + -2.400000 0.794549 1.150887 2.92e-06 1.67e-06 + -2.300000 0.816618 1.119956 2.05e-06 3.01e-06 + -2.200000 0.840090 1.091564 8.04e-07 3.49e-06 + -2.100000 0.864626 1.066208 5.07e-07 4.62e-06 + -2.000000 0.889905 1.044373 2.49e-06 5.91e-06 + -1.900000 0.915619 1.026506 1.67e-06 6.92e-06 + -1.800000 0.941488 1.013000 1.28e-07 8.31e-06 + -1.700000 0.967252 1.004167 7.11e-07 7.62e-06 + -1.600000 0.992671 1.000220 1.97e-06 6.97e-06 + -1.500000 1.017528 1.001258 2.21e-06 6.34e-06 + -1.400000 1.041624 1.007259 1.57e-06 1.01e-05 + -1.300000 1.064775 1.018068 1.63e-06 1.00e-05 + -1.200000 1.086819 1.033433 1.64e-06 1.08e-05 + -1.100000 1.107607 1.053004 1.91e-06 1.16e-05 + -1.000000 1.127008 1.076363 2.23e-06 1.36e-05 + -0.900000 1.144902 1.103043 1.90e-06 1.35e-05 + -0.800000 1.161180 1.132551 6.58e-06 1.21e-05 + -0.700000 1.175761 1.164391 2.88e-06 1.06e-05 + -0.600000 1.188555 1.198075 1.66e-06 1.09e-05 + -0.500000 1.199494 1.233127 2.39e-06 1.14e-05 + -0.400000 1.208523 1.269100 1.54e-06 1.29e-05 + -0.300000 1.215593 1.305570 2.94e-07 1.28e-05 + -0.200000 1.220668 1.342149 8.50e-07 1.20e-05 + -0.100000 1.223723 1.378476 2.01e-06 1.09e-05 + 0.000000 1.224741 1.414224 3.73e-06 1.05e-05 + 0.100000 1.223723 1.449092 1.20e-06 1.21e-05 + 0.200000 1.220668 1.482803 1.21e-06 1.17e-05 + 0.300000 1.215591 1.515108 2.74e-06 1.08e-05 + 0.400000 1.208522 1.545785 1.90e-06 1.03e-05 + 0.500000 1.199492 1.574629 3.97e-06 1.02e-05 + 0.600000 1.188555 1.601458 1.74e-06 8.35e-06 + 0.700000 1.175761 1.626112 2.87e-06 7.30e-06 + 0.800000 1.161184 1.648447 2.00e-06 6.59e-06 + 0.900000 1.144903 1.668335 8.98e-07 4.56e-06 + 1.000000 1.127005 1.685670 5.32e-06 4.04e-06 + 1.100000 1.107608 1.700357 8.68e-07 2.08e-06 + 1.200000 1.086818 1.712321 2.45e-06 1.14e-06 + 1.300000 1.064776 1.721498 4.33e-07 5.31e-07 + 1.400000 1.041624 1.727843 1.76e-06 1.91e-06 + 1.500000 1.017530 1.731324 3.22e-07 3.31e-06 + 1.600000 0.992672 1.731923 7.91e-07 5.08e-06 + 1.700000 0.967252 1.729637 7.00e-07 6.26e-06 + 1.800000 0.941487 1.724472 2.93e-07 1.28e-05 + 1.900000 0.915617 1.716467 4.48e-08 1.16e-05 + 2.000000 0.889904 1.705655 1.90e-06 1.08e-05 + 2.100000 0.864611 1.692092 1.40e-05 9.99e-06 + 2.200000 0.840090 1.675847 1.09e-06 9.68e-06 + 2.300000 0.816618 1.657006 2.22e-06 1.06e-05 + 2.400000 0.794547 1.635674 1.39e-06 1.03e-05 + 2.500000 0.774228 1.611967 3.25e-07 1.09e-05 + 2.600000 0.756014 1.586021 1.04e-06 1.22e-05 + 2.700000 0.740245 1.557992 7.23e-07 1.32e-05 + 2.800000 0.727249 1.528053 1.66e-06 1.38e-05 + 2.900000 0.717302 1.496399 8.11e-07 1.32e-05 + 3.000000 0.710637 1.463243 6.86e-07 1.39e-05 + 3.100000 0.707415 1.428826 2.59e-06 1.25e-05 + 3.200000 0.707710 1.393410 6.94e-07 1.21e-05 + 3.300000 0.711521 1.357285 1.53e-06 1.14e-05 + 3.400000 0.718751 1.320770 1.60e-06 1.01e-05 + 3.500000 0.729226 1.284209 5.55e-07 9.40e-06 + 3.600000 0.742716 1.247982 3.92e-06 8.60e-06 + 3.700000 0.758914 1.212497 4.97e-07 5.99e-06 + 3.800000 0.777505 1.178189 1.74e-06 5.18e-06 + 3.900000 0.798150 1.145523 5.73e-06 4.63e-06 + 4.000000 0.820475 1.114985 1.79e-07 2.61e-06 + 4.100000 0.844150 1.087070 2.82e-07 1.21e-06 + 4.200000 0.868833 1.062273 5.41e-07 1.95e-07 + 4.300000 0.894211 1.041074 7.05e-06 7.71e-07 + 4.400000 0.919971 1.023914 6.81e-06 1.43e-06 + 4.500000 0.945834 1.011175 5.80e-08 2.53e-06 + 4.600000 0.971556 1.003152 1.08e-06 2.89e-06 + 4.700000 0.996895 1.000042 2.64e-06 3.95e-06 + 4.800000 1.021638 1.001920 2.63e-06 4.28e-06 + 4.900000 1.045585 1.008740 3.46e-06 4.07e-06 + 5.000000 1.068562 1.020337 3.07e-06 5.68e-06 + 5.100000 1.090405 1.036435 2.52e-06 6.24e-06 + 5.200000 1.110969 1.056675 2.42e-06 7.46e-06 + 5.300000 1.130132 1.080627 4.44e-06 1.01e-05 + 5.400000 1.147758 1.107819 5.47e-07 1.21e-05 + 5.500000 1.163763 1.137757 3.73e-06 1.39e-05 + 5.600000 1.178041 1.169944 1.24e-06 1.55e-05 + 5.700000 1.190526 1.203890 2.00e-06 1.57e-05 + 5.800000 1.201147 1.239128 1.86e-06 1.64e-05 + 5.900000 1.209851 1.275211 1.54e-07 1.56e-05 + 6.000000 1.216587 1.311725 4.24e-07 1.49e-05 + 6.100000 1.221324 1.348286 9.63e-07 1.37e-05 + 6.200000 1.224037 1.384538 2.29e-06 1.25e-05 + 6.300000 1.224713 1.420159 3.01e-06 1.36e-05 + 6.400000 1.223352 1.454851 1.10e-06 1.45e-05 + 6.500000 1.219953 1.488343 3.87e-06 1.52e-05 + 6.600000 1.214543 1.520390 4.21e-07 1.50e-05 + 6.700000 1.207142 1.550771 1.08e-07 1.28e-05 + 6.800000 1.197791 1.579287 1.50e-06 1.09e-05 + 6.900000 1.186533 1.605761 3.49e-07 9.24e-06 + 7.000000 1.173440 1.630034 3.90e-06 7.57e-06 ------------------------------------------------------ Final Solver Statistics: - Internal solver steps = 286 (attempted = 289) + Internal solver steps = 284 (attempted = 287) Total number of error test failures = 3 - Total RHS evals: Fe = 0, Fi = 5808 - Total mass matrix setups = 1448 - Total mass matrix solves = 1448 - Total mass times evals = 4646 - Total number of Jacobian evaluations = 154 - Total linear solver setups = 167 - Total number of Nonlinear iterations = 4360 - Total number of Nonlinear convergence failures = 153 - Errors: u = 2.42732e-06, v = 1.3135e-06, total = 1.95156e-06 + Total RHS evals: Fe = 0, Fi = 5758 + Total mass matrix setups = 1438 + Total mass matrix solves = 1438 + Total mass times evals = 4604 + Total number of Jacobian evaluations = 152 + Total linear solver setups = 166 + Total number of Nonlinear iterations = 4320 + Total number of Nonlinear convergence failures = 151 + Errors: u = 2.75875e-06, v = 9.68052e-06, total = 7.1177e-06 diff --git a/examples/arkode/CXX_superludist/ark_brusselator1D_FEM_sludist.out b/examples/arkode/CXX_superludist/ark_brusselator1D_FEM_sludist.out index 1cf56e4da4..61563dca16 100644 --- a/examples/arkode/CXX_superludist/ark_brusselator1D_FEM_sludist.out +++ b/examples/arkode/CXX_superludist/ark_brusselator1D_FEM_sludist.out @@ -12,68 +12,68 @@ 0.300000 0.648532 3.334867 1.999989 0.400000 0.654362 3.323350 1.999989 0.500000 0.660542 3.311172 1.999988 - 0.600000 0.667093 3.298310 1.999988 - 0.700000 0.674031 3.284739 1.999988 + 0.600000 0.667093 3.298309 1.999988 + 0.700000 0.674031 3.284739 1.999989 0.800000 0.681370 3.270442 1.999988 0.900000 0.689121 3.255404 1.999988 - 1.000000 0.697285 3.239620 1.999988 - 1.100000 0.705854 3.223093 1.999987 + 1.000000 0.697284 3.239620 1.999988 + 1.100000 0.705853 3.223093 1.999987 1.200000 0.714805 3.205842 1.999987 - 1.300000 0.724099 3.187902 1.999987 - 1.400000 0.733671 3.169332 1.999987 - 1.500000 0.743429 3.150211 1.999987 - 1.600000 0.753249 3.130653 1.999987 - 1.700000 0.762974 3.110800 1.999986 - 1.800000 0.772412 3.090827 1.999986 - 1.900000 0.781337 3.070944 1.999986 - 2.000000 0.789501 3.051388 1.999986 - 2.100000 0.796639 3.032420 1.999986 - 2.200000 0.802490 3.014317 1.999986 - 2.300000 0.806810 2.997358 1.999986 - 2.400000 0.809386 2.981818 1.999986 - 2.500000 0.810060 2.967949 1.999986 - 2.600000 0.808729 2.955977 1.999986 - 2.700000 0.805360 2.946085 1.999986 - 2.800000 0.799989 2.938410 1.999986 - 2.900000 0.792711 2.933039 1.999986 - 3.000000 0.783680 2.930010 1.999986 - 3.100000 0.773095 2.929307 1.999986 - 3.200000 0.761187 2.930873 1.999986 - 3.300000 0.748207 2.934612 1.999987 - 3.400000 0.734416 2.940393 1.999987 - 3.500000 0.720073 2.948062 1.999987 + 1.300000 0.724098 3.187903 1.999987 + 1.400000 0.733670 3.169332 1.999987 + 1.500000 0.743428 3.150212 1.999987 + 1.600000 0.753248 3.130655 1.999987 + 1.700000 0.762974 3.110801 1.999986 + 1.800000 0.772411 3.090829 1.999986 + 1.900000 0.781336 3.070946 1.999986 + 2.000000 0.789499 3.051390 1.999986 + 2.100000 0.796638 3.032422 1.999986 + 2.200000 0.802489 3.014319 1.999986 + 2.300000 0.806808 2.997360 1.999986 + 2.400000 0.809386 2.981819 1.999986 + 2.500000 0.810059 2.967951 1.999986 + 2.600000 0.808728 2.955979 1.999986 + 2.700000 0.805361 2.946086 1.999986 + 2.800000 0.799988 2.938411 1.999986 + 2.900000 0.792711 2.933041 1.999986 + 3.000000 0.783681 2.930010 1.999986 + 3.100000 0.773096 2.929307 1.999986 + 3.200000 0.761187 2.930874 1.999986 + 3.300000 0.748207 2.934613 1.999987 + 3.400000 0.734416 2.940394 1.999987 + 3.500000 0.720074 2.948062 1.999987 3.600000 0.705429 2.957444 1.999987 - 3.700000 0.690714 2.968354 1.999988 + 3.700000 0.690715 2.968354 1.999988 3.800000 0.676141 2.980600 1.999988 - 3.900000 0.661891 2.993989 1.999988 - 4.000000 0.648122 3.008331 1.999989 - 4.100000 0.634961 3.023445 1.999989 + 3.900000 0.661892 2.993989 1.999988 + 4.000000 0.648123 3.008331 1.999989 + 4.100000 0.634962 3.023445 1.999989 4.200000 0.622506 3.039157 1.999989 4.300000 0.610828 3.055308 1.999989 - 4.400000 0.599972 3.071752 1.999989 + 4.400000 0.599972 3.071751 1.999989 4.500000 0.589962 3.088356 1.999990 4.600000 0.580801 3.105007 1.999990 - 4.700000 0.572477 3.121603 1.999990 - 4.800000 0.564964 3.138059 1.999990 + 4.700000 0.572477 3.121602 1.999990 + 4.800000 0.564964 3.138058 1.999990 4.900000 0.558227 3.154303 1.999990 - 5.000000 0.552224 3.170278 1.999990 + 5.000000 0.552224 3.170277 1.999990 5.100000 0.546907 3.185935 1.999991 - 5.200000 0.542228 3.201239 1.999991 - 5.300000 0.538137 3.216162 1.999991 - 5.400000 0.534585 3.230683 1.999991 + 5.200000 0.542229 3.201239 1.999991 + 5.300000 0.538138 3.216162 1.999991 + 5.400000 0.534586 3.230682 1.999991 5.500000 0.531525 3.244788 1.999991 - 5.600000 0.528910 3.258469 1.999991 - 5.700000 0.526699 3.271720 1.999991 + 5.600000 0.528910 3.258468 1.999991 + 5.700000 0.526699 3.271719 1.999991 5.800000 0.524852 3.284539 1.999991 5.900000 0.523334 3.296928 1.999991 - 6.000000 0.522111 3.308889 1.999991 - 6.100000 0.521154 3.320427 1.999991 + 6.000000 0.522112 3.308889 1.999991 + 6.100000 0.521154 3.320426 1.999991 6.200000 0.520436 3.331545 1.999991 - 6.300000 0.519932 3.342251 1.999991 + 6.300000 0.519932 3.342250 1.999991 6.400000 0.519621 3.352549 1.999991 - 6.500000 0.519484 3.362447 1.999991 - 6.600000 0.519503 3.371950 1.999991 - 6.700000 0.519664 3.381065 1.999991 + 6.500000 0.519484 3.362446 1.999991 + 6.600000 0.519503 3.371949 1.999991 + 6.700000 0.519664 3.381064 1.999991 6.800000 0.519953 3.389797 1.999991 6.900000 0.520358 3.398153 1.999991 7.000000 0.520869 3.406139 1.999991 @@ -86,37 +86,37 @@ 7.700000 0.526775 3.452091 1.999991 7.800000 0.527887 3.457288 1.999991 7.900000 0.529055 3.462154 1.999991 - 8.000000 0.530276 3.466693 1.999991 - 8.100000 0.531549 3.470907 1.999991 + 8.000000 0.530276 3.466692 1.999991 + 8.100000 0.531549 3.470906 1.999991 8.200000 0.532872 3.474798 1.999991 8.300000 0.534244 3.478370 1.999991 8.400000 0.535665 3.481625 1.999991 - 8.500000 0.537133 3.484563 1.999991 + 8.500000 0.537133 3.484564 1.999991 8.600000 0.538649 3.487188 1.999991 8.700000 0.540213 3.489499 1.999991 - 8.800000 0.541825 3.491497 1.999991 - 8.900000 0.543486 3.493184 1.999991 + 8.800000 0.541825 3.491498 1.999991 + 8.900000 0.543486 3.493185 1.999991 9.000000 0.545196 3.494560 1.999991 9.100000 0.546957 3.495624 1.999991 9.200000 0.548771 3.496375 1.999991 9.300000 0.550638 3.496814 1.999990 - 9.400000 0.552562 3.496938 1.999990 + 9.400000 0.552561 3.496938 1.999990 9.500000 0.554543 3.496746 1.999990 - 9.600000 0.556585 3.496235 1.999990 + 9.600000 0.556585 3.496236 1.999990 9.700000 0.558691 3.495404 1.999990 - 9.800000 0.560864 3.494247 1.999990 + 9.800000 0.560864 3.494248 1.999990 9.900000 0.563108 3.492763 1.999990 10.000000 0.565426 3.490945 1.999990 ---------------------------------------------- Final Solver Statistics: Internal solver steps = 95 (attempted = 95) - Total RHS evals: Fe = 0, Fi = 1605 + Total RHS evals: Fe = 0, Fi = 1596 Total mass matrix setups = 1 - Total mass matrix solves = 288 - Total mass times evals = 1697 + Total mass matrix solves = 193 + Total mass times evals = 1688 Total linear solver setups = 31 Total number of Jacobian evaluations = 11 - Total number of Newton iterations = 1127 + Total number of Newton iterations = 1118 Total number of nonlinear solver convergence failures = 10 Total number of error test failures = 0 diff --git a/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid_--np_2_1_2_--x_print_level_0.out b/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid_--np_2_1_2_--x_print_level_0.out index 0369a11ff0..978c7d9928 100644 --- a/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid_--np_2_1_2_--x_print_level_0.out +++ b/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid_--np_2_1_2_--x_print_level_0.out @@ -45,7 +45,7 @@ output = 1 --------------------------------- - Max error = 3.297223456216303e-03 + Max error = 3.297223495382084e-03 Final max integrator statistics: Steps = 1780 diff --git a/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid_--np_2_1_2_--x_print_level_0.out b/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid_--np_2_1_2_--x_print_level_0.out index 60a0110489..744747849a 100644 --- a/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid_--np_2_1_2_--x_print_level_0.out +++ b/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid_--np_2_1_2_--x_print_level_0.out @@ -42,7 +42,7 @@ output = 1 --------------------------------- - Max error = 3.297223517807257e-03 + Max error = 3.297223330406052e-03 Final max integrator statistics: Steps = 1780 @@ -51,15 +51,15 @@ Final max integrator statistics: RHS evals = 12460 NLS iters = 5340 NLS fails = 0 - LS iters = 189634 + LS iters = 188622 LS fails = 0 LS setups = 1780 - LS RHS evals = 189634 - Jv products = 189634 + LS RHS evals = 188622 + Jv products = 188622 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 35.511985 + Avg LS iters per NLS iter = 35.322472 Preconditioner setups = 1780 - Preconditioner solves = 189634 + Preconditioner solves = 188622 diff --git a/examples/arkode/CXX_xbraid/ark_heat2D_xbraid_--x_print_level_0.out b/examples/arkode/CXX_xbraid/ark_heat2D_xbraid_--x_print_level_0.out index ecce20579e..90b4dedf7a 100644 --- a/examples/arkode/CXX_xbraid/ark_heat2D_xbraid_--x_print_level_0.out +++ b/examples/arkode/CXX_xbraid/ark_heat2D_xbraid_--x_print_level_0.out @@ -37,7 +37,7 @@ output = 1 --------------------------------- - Max error = 3.297223770518998e-03 + Max error = 3.297223425028251e-03 Final max integrator statistics: Steps = 895 @@ -46,15 +46,15 @@ Final max integrator statistics: RHS evals = 6265 NLS iters = 2685 NLS fails = 0 - LS iters = 98385 + LS iters = 97779 LS fails = 0 LS setups = 895 - LS RHS evals = 98385 - Jv products = 98385 + LS RHS evals = 97779 + Jv products = 97779 Avg NLS iters per step attempt = 3.000000 - Avg LS iters per NLS iter = 36.642458 + Avg LS iters per NLS iter = 36.416760 Preconditioner setups = 895 - Preconditioner solves = 98385 + Preconditioner solves = 97779 diff --git a/examples/arkode/C_openmp/ark_brusselator1D_omp.out b/examples/arkode/C_openmp/ark_brusselator1D_omp.out index 1c209cc20f..9d254eaac0 100644 --- a/examples/arkode/C_openmp/ark_brusselator1D_omp.out +++ b/examples/arkode/C_openmp/ark_brusselator1D_omp.out @@ -9,102 +9,102 @@ 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.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 + 0.900000 0.775302 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.500000 0.878514 2.957207 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.000000 0.960034 2.757430 1.999981 + 2.100000 0.971577 2.719961 1.999981 + 2.200000 0.980476 2.684622 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 + 2.400000 0.988853 2.622559 1.999981 + 2.500000 0.987816 2.596818 1.999981 + 2.600000 0.983141 2.575127 1.999981 + 2.700000 0.974859 2.557765 1.999981 + 2.800000 0.963115 2.544902 1.999981 + 2.900000 0.948155 2.536610 1.999981 + 3.000000 0.930300 2.532867 1.999982 + 3.100000 0.909931 2.533566 1.999982 + 3.200000 0.887464 2.538528 1.999983 + 3.300000 0.863335 2.547514 1.999983 + 3.400000 0.837978 2.560240 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.700000 0.758658 2.617586 1.999985 + 3.800000 0.732363 2.641921 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.100000 0.658011 2.725670 1.999987 4.200000 0.635435 2.756075 1.999987 - 4.300000 0.614205 2.787228 1.999988 + 4.300000 0.614204 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.600000 0.559254 2.882710 1.999989 4.700000 0.543909 2.914529 1.999989 4.800000 0.530011 2.946071 1.999990 - 4.900000 0.517506 2.977209 1.999990 + 4.900000 0.517506 2.977210 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.100000 0.496393 3.037889 1.999990 + 5.200000 0.487625 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 + 5.500000 0.467445 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.900000 0.451799 3.252035 1.999991 6.000000 0.449425 3.275283 1.999991 - 6.100000 0.447546 3.297744 1.999991 + 6.100000 0.447546 3.297745 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.500000 0.444079 3.379890 1.999991 + 6.300000 0.445085 3.340341 1.999991 + 6.400000 0.444419 3.360492 1.999991 + 6.500000 0.444079 3.379891 1.999991 6.600000 0.444034 3.398547 1.999991 6.700000 0.444257 3.416470 1.999991 6.800000 0.444722 3.433669 1.999991 6.900000 0.445409 3.450154 1.999991 - 7.000000 0.446297 3.465934 1.999991 + 7.000000 0.446297 3.465935 1.999991 7.100000 0.447370 3.481018 1.999991 - 7.200000 0.448614 3.495414 1.999991 + 7.200000 0.448614 3.495415 1.999991 7.300000 0.450016 3.509131 1.999991 7.400000 0.451564 3.522176 1.999991 7.500000 0.453249 3.534557 1.999991 7.600000 0.455064 3.546280 1.999991 7.700000 0.457000 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 + 7.900000 0.461215 3.577572 1.999991 + 8.000000 0.463486 3.586729 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.400000 0.473582 3.617116 1.999991 - 8.500000 0.476352 3.623171 1.999991 + 8.500000 0.476352 3.623172 1.999991 8.600000 0.479220 3.628616 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 - 9.600000 0.513632 3.649521 1.999990 - 9.700000 0.517722 3.648209 1.999990 + 9.000000 0.491684 3.644312 1.999990 + 9.100000 0.495058 3.646716 1.999990 + 9.200000 0.498539 3.648510 1.999990 + 9.300000 0.502133 3.649691 1.999990 + 9.400000 0.505843 3.650257 1.999990 + 9.500000 0.509674 3.650202 1.999990 + 9.600000 0.513632 3.649522 1.999990 + 9.700000 0.517722 3.648210 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 diff --git a/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.out b/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.out index af598df8f8..280069d4a3 100644 --- a/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.out +++ b/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.out @@ -7,68 +7,68 @@ Preconditioner type is: jpre = SUN_PREC_LEFT -t = 7.20e+03 no. steps = 981 stepsize = 3.07e+00 +t = 7.20e+03 no. steps = 980 stepsize = 3.07e+00 At bottom left: c1, c2 = 1.047e+04 2.527e+11 At top right: c1, c2 = 1.119e+04 2.700e+11 -t = 1.44e+04 no. steps = 2731 stepsize = 6.90e+00 +t = 1.44e+04 no. steps = 2730 stepsize = 6.90e+00 At bottom left: c1, c2 = 6.659e+06 2.582e+11 At top right: c1, c2 = 7.301e+06 2.833e+11 -t = 2.16e+04 no. steps = 3534 stepsize = 1.04e+01 +t = 2.16e+04 no. steps = 3533 stepsize = 1.04e+01 At bottom left: c1, c2 = 2.665e+07 2.993e+11 At top right: c1, c2 = 2.931e+07 3.313e+11 -t = 2.88e+04 no. steps = 4683 stepsize = 5.21e+00 +t = 2.88e+04 no. steps = 4681 stepsize = 4.32e+00 At bottom left: c1, c2 = 8.702e+06 3.380e+11 At top right: c1, c2 = 9.650e+06 3.751e+11 -t = 3.60e+04 no. steps = 6169 stepsize = 2.56e+00 +t = 3.60e+04 no. steps = 5975 stepsize = 2.55e+00 At bottom left: c1, c2 = 1.404e+04 3.387e+11 At top right: c1, c2 = 1.561e+04 3.765e+11 -t = 4.32e+04 no. steps = 7356 stepsize = 4.24e+02 -At bottom left: c1, c2 = -1.476e-08 3.382e+11 -At top right: c1, c2 = 2.475e-07 3.804e+11 +t = 4.32e+04 no. steps = 7163 stepsize = 4.64e+02 +At bottom left: c1, c2 = 2.125e-08 3.382e+11 +At top right: c1, c2 = 4.245e-08 3.804e+11 -t = 5.04e+04 no. steps = 7373 stepsize = 3.97e+02 -At bottom left: c1, c2 = 2.483e-07 3.358e+11 -At top right: c1, c2 = -1.768e-06 3.864e+11 +t = 5.04e+04 no. steps = 7179 stepsize = 4.64e+02 +At bottom left: c1, c2 = -4.072e-07 3.358e+11 +At top right: c1, c2 = 4.005e-11 3.864e+11 -t = 5.76e+04 no. steps = 7391 stepsize = 3.62e+02 -At bottom left: c1, c2 = -2.799e-07 3.320e+11 -At top right: c1, c2 = -4.820e-08 3.909e+11 +t = 5.76e+04 no. steps = 7195 stepsize = 3.44e+02 +At bottom left: c1, c2 = 3.487e-08 3.320e+11 +At top right: c1, c2 = 3.658e-18 3.909e+11 -t = 6.48e+04 no. steps = 7406 stepsize = 5.57e+02 -At bottom left: c1, c2 = 7.180e-08 3.313e+11 -At top right: c1, c2 = -6.171e-07 3.963e+11 +t = 6.48e+04 no. steps = 7210 stepsize = 5.15e+02 +At bottom left: c1, c2 = 2.253e-07 3.313e+11 +At top right: c1, c2 = -2.680e-19 3.963e+11 -t = 7.20e+04 no. steps = 7419 stepsize = 5.57e+02 -At bottom left: c1, c2 = 5.344e-09 3.330e+11 -At top right: c1, c2 = 1.101e-07 4.039e+11 +t = 7.20e+04 no. steps = 7224 stepsize = 5.15e+02 +At bottom left: c1, c2 = 8.966e-08 3.330e+11 +At top right: c1, c2 = -1.036e-18 4.039e+11 -t = 7.92e+04 no. steps = 7431 stepsize = 5.57e+02 -At bottom left: c1, c2 = -3.201e-08 3.334e+11 -At top right: c1, c2 = -5.416e-07 4.120e+11 +t = 7.92e+04 no. steps = 7238 stepsize = 5.15e+02 +At bottom left: c1, c2 = 2.038e-08 3.334e+11 +At top right: c1, c2 = -2.330e-18 4.120e+11 -t = 8.64e+04 no. steps = 7444 stepsize = 5.57e+02 -At bottom left: c1, c2 = -4.221e-07 3.352e+11 -At top right: c1, c2 = 8.480e-15 4.163e+11 +t = 8.64e+04 no. steps = 7252 stepsize = 5.15e+02 +At bottom left: c1, c2 = -3.746e-21 3.352e+11 +At top right: c1, c2 = -2.537e-27 4.163e+11 Final Statistics: lenrw = 3901 leniw = 267 lenrwls = 2455 leniwls = 126 -nst = 7444 nfe = 0 -nfe = 78871 nfels = 105365 -nni = 41518 nli = 105365 -nsetups = 447 netf = 26 -npe = 125 nps = 143828 +nst = 7252 nfe = 0 +nfe = 76929 nfels = 102816 +nni = 40521 nli = 102816 +nsetups = 439 netf = 29 +npe = 122 nps = 140398 ncfn = 0 ncfl = 0 In ARKBBDPRE: real/integer local work space sizes = 1300, 192 - no. flocal evals. = 2750 + no. flocal evals. = 2684 ------------------------------------------------------------------- @@ -76,65 +76,65 @@ In ARKBBDPRE: real/integer local work space sizes = 1300, 192 Preconditioner type is: jpre = SUN_PREC_RIGHT -t = 7.20e+03 no. steps = 981 stepsize = 3.07e+00 +t = 7.20e+03 no. steps = 980 stepsize = 3.07e+00 At bottom left: c1, c2 = 1.047e+04 2.527e+11 At top right: c1, c2 = 1.119e+04 2.700e+11 -t = 1.44e+04 no. steps = 2731 stepsize = 6.90e+00 +t = 1.44e+04 no. steps = 2730 stepsize = 6.90e+00 At bottom left: c1, c2 = 6.659e+06 2.582e+11 At top right: c1, c2 = 7.301e+06 2.833e+11 -t = 2.16e+04 no. steps = 3534 stepsize = 1.04e+01 +t = 2.16e+04 no. steps = 3533 stepsize = 1.04e+01 At bottom left: c1, c2 = 2.665e+07 2.993e+11 At top right: c1, c2 = 2.931e+07 3.313e+11 -t = 2.88e+04 no. steps = 4691 stepsize = 5.22e+00 +t = 2.88e+04 no. steps = 4705 stepsize = 3.57e+00 At bottom left: c1, c2 = 8.702e+06 3.380e+11 At top right: c1, c2 = 9.650e+06 3.751e+11 -t = 3.60e+04 no. steps = 6174 stepsize = 2.56e+00 +t = 3.60e+04 no. steps = 6160 stepsize = 2.56e+00 At bottom left: c1, c2 = 1.404e+04 3.387e+11 At top right: c1, c2 = 1.561e+04 3.765e+11 -t = 4.32e+04 no. steps = 7361 stepsize = 4.34e+02 -At bottom left: c1, c2 = 4.699e-11 3.382e+11 -At top right: c1, c2 = 4.238e-10 3.804e+11 +t = 4.32e+04 no. steps = 7347 stepsize = 4.30e+02 +At bottom left: c1, c2 = 4.255e-12 3.382e+11 +At top right: c1, c2 = -2.358e-07 3.804e+11 -t = 5.04e+04 no. steps = 7377 stepsize = 4.34e+02 -At bottom left: c1, c2 = -1.972e-12 3.358e+11 -At top right: c1, c2 = -1.128e-11 3.864e+11 +t = 5.04e+04 no. steps = 7364 stepsize = 4.81e+02 +At bottom left: c1, c2 = -1.312e-17 3.358e+11 +At top right: c1, c2 = 2.130e-11 3.864e+11 -t = 5.76e+04 no. steps = 7395 stepsize = 3.07e+02 -At bottom left: c1, c2 = -5.328e-16 3.320e+11 -At top right: c1, c2 = -5.281e-12 3.909e+11 +t = 5.76e+04 no. steps = 7380 stepsize = 2.39e+02 +At bottom left: c1, c2 = -6.762e-21 3.320e+11 +At top right: c1, c2 = -4.330e-12 3.909e+11 -t = 6.48e+04 no. steps = 7409 stepsize = 6.89e+02 -At bottom left: c1, c2 = 1.218e-13 3.313e+11 -At top right: c1, c2 = -8.200e-07 3.963e+11 +t = 6.48e+04 no. steps = 7393 stepsize = 6.42e+02 +At bottom left: c1, c2 = -3.898e-25 3.313e+11 +At top right: c1, c2 = -4.918e-07 3.963e+11 -t = 7.20e+04 no. steps = 7419 stepsize = 6.89e+02 -At bottom left: c1, c2 = -5.406e-15 3.330e+11 -At top right: c1, c2 = 6.679e-07 4.039e+11 +t = 7.20e+04 no. steps = 7405 stepsize = 6.42e+02 +At bottom left: c1, c2 = 5.173e-25 3.330e+11 +At top right: c1, c2 = -1.031e-06 4.039e+11 -t = 7.92e+04 no. steps = 7430 stepsize = 6.89e+02 -At bottom left: c1, c2 = -1.418e-14 3.334e+11 -At top right: c1, c2 = -1.336e-06 4.120e+11 +t = 7.92e+04 no. steps = 7416 stepsize = 6.42e+02 +At bottom left: c1, c2 = 5.441e-26 3.334e+11 +At top right: c1, c2 = -1.290e-06 4.120e+11 -t = 8.64e+04 no. steps = 7440 stepsize = 6.89e+02 -At bottom left: c1, c2 = -1.510e-14 3.352e+11 -At top right: c1, c2 = -3.390e-07 4.163e+11 +t = 8.64e+04 no. steps = 7427 stepsize = 6.42e+02 +At bottom left: c1, c2 = 1.538e-27 3.352e+11 +At top right: c1, c2 = -5.134e-07 4.163e+11 Final Statistics: lenrw = 3901 leniw = 272 lenrwls = 2455 leniwls = 126 -nst = 7440 nfe = 0 -nfe = 78947 nfels = 111620 -nni = 41594 nli = 111620 -nsetups = 454 netf = 30 -npe = 125 nps = 149487 -ncfn = 0 ncfl = 43 +nst = 7427 nfe = 0 +nfe = 78794 nfels = 111450 +nni = 41511 nli = 111450 +nsetups = 453 netf = 29 +npe = 125 nps = 149218 +ncfn = 0 ncfl = 38 In ARKBBDPRE: real/integer local work space sizes = 1300, 192 no. flocal evals. = 2750 diff --git a/examples/arkode/C_parallel/ark_diurnal_kry_p.out b/examples/arkode/C_parallel/ark_diurnal_kry_p.out index 26f890aaf7..3e509d403e 100644 --- a/examples/arkode/C_parallel/ark_diurnal_kry_p.out +++ b/examples/arkode/C_parallel/ark_diurnal_kry_p.out @@ -13,51 +13,51 @@ t = 2.16e+04 no. steps = 3533 stepsize = 1.04e+01 At bottom left: c1, c2 = 2.665e+07 2.993e+11 At top right: c1, c2 = 2.931e+07 3.313e+11 -t = 2.88e+04 no. steps = 4685 stepsize = 5.21e+00 +t = 2.88e+04 no. steps = 4695 stepsize = 3.50e+00 At bottom left: c1, c2 = 8.702e+06 3.380e+11 At top right: c1, c2 = 9.650e+06 3.751e+11 -t = 3.60e+04 no. steps = 6169 stepsize = 2.56e+00 +t = 3.60e+04 no. steps = 6172 stepsize = 2.55e+00 At bottom left: c1, c2 = 1.404e+04 3.387e+11 At top right: c1, c2 = 1.561e+04 3.765e+11 -t = 4.32e+04 no. steps = 7356 stepsize = 4.29e+02 -At bottom left: c1, c2 = 5.207e-10 3.382e+11 -At top right: c1, c2 = -1.692e-09 3.804e+11 +t = 4.32e+04 no. steps = 7361 stepsize = 5.00e+02 +At bottom left: c1, c2 = 3.855e-13 3.382e+11 +At top right: c1, c2 = -1.439e-12 3.804e+11 -t = 5.04e+04 no. steps = 7374 stepsize = 4.03e+02 -At bottom left: c1, c2 = -5.150e-07 3.358e+11 -At top right: c1, c2 = 7.350e-07 3.864e+11 +t = 5.04e+04 no. steps = 7379 stepsize = 3.71e+02 +At bottom left: c1, c2 = -4.407e-14 3.358e+11 +At top right: c1, c2 = 1.551e-13 3.864e+11 -t = 5.76e+04 no. steps = 7388 stepsize = 1.86e+02 -At bottom left: c1, c2 = 1.854e-09 3.320e+11 -At top right: c1, c2 = -4.478e-09 3.909e+11 +t = 5.76e+04 no. steps = 7394 stepsize = 1.90e+02 +At bottom left: c1, c2 = 2.370e-12 3.320e+11 +At top right: c1, c2 = -4.013e-12 3.909e+11 -t = 6.48e+04 no. steps = 7403 stepsize = 5.44e+02 -At bottom left: c1, c2 = -5.633e-20 3.313e+11 -At top right: c1, c2 = -7.054e-19 3.963e+11 +t = 6.48e+04 no. steps = 7409 stepsize = 5.59e+02 +At bottom left: c1, c2 = 1.301e-12 3.313e+11 +At top right: c1, c2 = -4.849e-12 3.963e+11 -t = 7.20e+04 no. steps = 7416 stepsize = 5.44e+02 -At bottom left: c1, c2 = 8.179e-20 3.330e+11 -At top right: c1, c2 = -1.697e-18 4.039e+11 +t = 7.20e+04 no. steps = 7421 stepsize = 5.59e+02 +At bottom left: c1, c2 = -1.797e-23 3.330e+11 +At top right: c1, c2 = -3.890e-22 4.039e+11 -t = 7.92e+04 no. steps = 7429 stepsize = 5.44e+02 -At bottom left: c1, c2 = 9.578e-20 3.334e+11 -At top right: c1, c2 = -6.361e-19 4.120e+11 +t = 7.92e+04 no. steps = 7434 stepsize = 5.59e+02 +At bottom left: c1, c2 = -2.819e-27 3.334e+11 +At top right: c1, c2 = -1.209e-25 4.120e+11 -t = 8.64e+04 no. steps = 7443 stepsize = 5.44e+02 -At bottom left: c1, c2 = 2.418e-20 3.352e+11 -At top right: c1, c2 = -6.470e-20 4.163e+11 +t = 8.64e+04 no. steps = 7447 stepsize = 5.59e+02 +At bottom left: c1, c2 = -2.334e-27 3.352e+11 +At top right: c1, c2 = -8.983e-26 4.163e+11 Final Statistics: lenrw = 3301 leniw = 243 lenrwls = 2455 leniwls = 126 -nst = 7443 nfe = 0 -nfi = 78979 nfels = 108407 -nni = 41601 nli = 108407 -nsetups = 453 netf = 32 -npe = 125 nps = 146880 -ncfn = 0 ncfl = 71 +nst = 7447 nfe = 0 +nfi = 79041 nfels = 108536 +nni = 41643 nli = 108536 +nsetups = 456 netf = 32 +npe = 125 nps = 147035 +ncfn = 0 ncfl = 83 diff --git a/examples/arkode/C_parhyp/ark_diurnal_kry_ph.out b/examples/arkode/C_parhyp/ark_diurnal_kry_ph.out index 411f0a09fc..2d806c7252 100644 --- a/examples/arkode/C_parhyp/ark_diurnal_kry_ph.out +++ b/examples/arkode/C_parhyp/ark_diurnal_kry_ph.out @@ -5,59 +5,59 @@ t = 7.20e+03 no. steps = 979 stepsize = 3.07e+00 At bottom left: c1, c2 = 1.047e+04 2.527e+11 At top right: c1, c2 = 1.119e+04 2.700e+11 -t = 1.44e+04 no. steps = 2733 stepsize = 6.92e+00 +t = 1.44e+04 no. steps = 2733 stepsize = 6.93e+00 At bottom left: c1, c2 = 6.659e+06 2.582e+11 At top right: c1, c2 = 7.301e+06 2.833e+11 -t = 2.16e+04 no. steps = 3533 stepsize = 1.04e+01 +t = 2.16e+04 no. steps = 3532 stepsize = 1.04e+01 At bottom left: c1, c2 = 2.665e+07 2.993e+11 At top right: c1, c2 = 2.931e+07 3.313e+11 -t = 2.88e+04 no. steps = 4558 stepsize = 3.77e+00 +t = 2.88e+04 no. steps = 4588 stepsize = 4.86e+00 At bottom left: c1, c2 = 8.702e+06 3.380e+11 At top right: c1, c2 = 9.650e+06 3.751e+11 -t = 3.60e+04 no. steps = 5961 stepsize = 2.55e+00 +t = 3.60e+04 no. steps = 5824 stepsize = 2.55e+00 At bottom left: c1, c2 = 1.404e+04 3.387e+11 At top right: c1, c2 = 1.561e+04 3.765e+11 -t = 4.32e+04 no. steps = 7161 stepsize = 5.16e+02 -At bottom left: c1, c2 = 4.611e-12 3.382e+11 -At top right: c1, c2 = -1.475e-11 3.804e+11 +t = 4.32e+04 no. steps = 7026 stepsize = 5.12e+02 +At bottom left: c1, c2 = 1.334e-12 3.382e+11 +At top right: c1, c2 = -4.825e-12 3.804e+11 -t = 5.04e+04 no. steps = 7175 stepsize = 5.05e+02 -At bottom left: c1, c2 = 1.182e-11 3.358e+11 -At top right: c1, c2 = -2.617e-11 3.864e+11 +t = 5.04e+04 no. steps = 7041 stepsize = 5.36e+02 +At bottom left: c1, c2 = 1.415e-13 3.358e+11 +At top right: c1, c2 = -1.712e-12 3.864e+11 -t = 5.76e+04 no. steps = 7190 stepsize = 2.44e+02 -At bottom left: c1, c2 = -1.051e-11 3.320e+11 -At top right: c1, c2 = -9.200e-11 3.909e+11 +t = 5.76e+04 no. steps = 7055 stepsize = 2.34e+02 +At bottom left: c1, c2 = -2.533e-12 3.320e+11 +At top right: c1, c2 = -5.401e-12 3.909e+11 -t = 6.48e+04 no. steps = 7203 stepsize = 6.40e+02 -At bottom left: c1, c2 = 1.286e-10 3.313e+11 -At top right: c1, c2 = -4.357e-10 3.963e+11 +t = 6.48e+04 no. steps = 7068 stepsize = 6.40e+02 +At bottom left: c1, c2 = -4.169e-12 3.313e+11 +At top right: c1, c2 = 1.665e-11 3.963e+11 -t = 7.20e+04 no. steps = 7215 stepsize = 6.40e+02 -At bottom left: c1, c2 = -1.814e-11 3.330e+11 -At top right: c1, c2 = -9.120e-11 4.039e+11 +t = 7.20e+04 no. steps = 7080 stepsize = 6.40e+02 +At bottom left: c1, c2 = -3.839e-12 3.330e+11 +At top right: c1, c2 = -3.434e-11 4.039e+11 -t = 7.92e+04 no. steps = 7226 stepsize = 6.40e+02 -At bottom left: c1, c2 = -1.291e-21 3.334e+11 -At top right: c1, c2 = -1.937e-20 4.120e+11 +t = 7.92e+04 no. steps = 7091 stepsize = 6.40e+02 +At bottom left: c1, c2 = 2.289e-26 3.334e+11 +At top right: c1, c2 = 4.220e-25 4.120e+11 -t = 8.64e+04 no. steps = 7237 stepsize = 6.40e+02 -At bottom left: c1, c2 = -3.534e-21 3.352e+11 -At top right: c1, c2 = -4.442e-20 4.163e+11 +t = 8.64e+04 no. steps = 7102 stepsize = 6.40e+02 +At bottom left: c1, c2 = -5.225e-26 3.352e+11 +At top right: c1, c2 = -5.452e-25 4.163e+11 Final Statistics: lenrw = 3301 leniw = 243 lenrwls = 2455 leniwls = 126 -nst = 7237 nfe = 0 -nfi = 75881 nfels = 88695 -nni = 39568 nli = 88695 -nsetups = 431 netf = 25 -npe = 121 nps = 126028 +nst = 7102 nfe = 0 +nfi = 74579 nfels = 87090 +nni = 38921 nli = 87090 +nsetups = 429 netf = 29 +npe = 119 nps = 123765 ncfn = 0 ncfl = 0 diff --git a/examples/arkode/C_serial/ark_KrylovDemo_prec.out b/examples/arkode/C_serial/ark_KrylovDemo_prec.out index 3a63a46785..a3f589f739 100644 --- a/examples/arkode/C_serial/ark_KrylovDemo_prec.out +++ b/examples/arkode/C_serial/ark_KrylovDemo_prec.out @@ -190,18 +190,18 @@ Species 6 297691 307208 319252 319264 307245 297749 297229 297691 298276 298276 297692 297231 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.46e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.43e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2024 nni = 1386 hu = 1.28e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.25e-02 -t = 1.00e+00 nst = 154 nfe = 0 nfi = 2489 nni = 1716 hu = 6.84e-02 +t = 1.00e+00 nst = 153 nfe = 0 nfi = 2474 nni = 1706 hu = 6.52e-02 c values at t = 1: Species 1 -1.58851 1.59924 1.62152 1.64764 1.67036 1.68149 +1.58851 1.59924 1.62152 1.64765 1.67036 1.68149 1.58533 1.59503 1.61548 1.63952 1.66033 1.67036 -1.57757 1.58547 1.60239 1.62235 1.63952 1.64764 +1.57757 1.58547 1.60239 1.62235 1.63952 1.64765 1.5682 1.57412 1.58706 1.60239 1.61548 1.62152 1.56048 1.56463 1.57412 1.58547 1.59503 1.59924 1.55733 1.56048 1.5682 1.57757 1.58533 1.58851 @@ -210,7 +210,7 @@ Species 2 1.59067 1.60141 1.62371 1.64987 1.67261 1.68375 1.58748 1.5972 1.61766 1.64173 1.66257 1.67261 1.57971 1.58763 1.60457 1.62454 1.64173 1.64987 -1.57034 1.57626 1.58921 1.60457 1.61766 1.62371 +1.57034 1.57626 1.58922 1.60457 1.61766 1.62371 1.56261 1.56676 1.57626 1.58763 1.5972 1.60141 1.55945 1.56261 1.57034 1.57971 1.58748 1.59067 @@ -223,34 +223,34 @@ Species 3 1.56146 1.56462 1.57236 1.58174 1.58951 1.5927 Species 4 -47718.3 48040.3 48709 49493.5 50175.5 50509.4 +47718.4 48040.3 48709 49493.5 50175.5 50509.4 47622.8 47914 48527.8 49249.6 49874.4 50175.5 -47389.7 47627 48134.9 48734.2 49249.6 49493.5 -47108.5 47286 47674.6 48134.9 48527.8 48709 -46876.6 47001.2 47286 47627 47914 48040.3 -46781.9 46876.6 47108.5 47389.7 47622.8 47718.3 +47389.7 47627 48135 48734.2 49249.6 49493.5 +47108.5 47286.1 47674.6 48135 48527.8 48709 +46876.6 47001.1 47286.1 47627 47914 48040.3 +46781.9 46876.6 47108.5 47389.7 47622.8 47718.4 Species 5 -47718.3 48040.3 48709 49493.5 50175.5 50509.4 +47718.4 48040.3 48709 49493.5 50175.5 50509.4 47622.8 47914 48527.8 49249.6 49874.4 50175.5 -47389.7 47627 48134.9 48734.2 49249.6 49493.5 -47108.5 47286 47674.6 48134.9 48527.8 48709 -46876.6 47001.2 47286 47627 47914 48040.3 -46781.9 46876.6 47108.5 47389.7 47622.8 47718.3 +47389.7 47627 48135 48734.2 49249.6 49493.5 +47108.5 47286.1 47674.6 48135 48527.8 48709 +46876.6 47001.1 47286.1 47627 47914 48040.3 +46781.9 46876.6 47108.5 47389.7 47622.8 47718.4 Species 6 -47718.3 48040.3 48709 49493.5 50175.5 50509.4 +47718.4 48040.3 48709 49493.5 50175.5 50509.4 47622.8 47914 48527.8 49249.6 49874.4 50175.5 -47389.7 47627 48134.9 48734.2 49249.6 49493.5 -47108.5 47286 47674.6 48134.9 48527.8 48709 -46876.6 47001.2 47286 47627 47914 48040.3 -46781.9 46876.6 47108.5 47389.7 47622.8 47718.3 +47389.7 47627 48135 48734.2 49249.6 49493.5 +47108.5 47286.1 47674.6 48135 48527.8 48709 +46876.6 47001.1 47286.1 47627 47914 48040.3 +46781.9 46876.6 47108.5 47389.7 47622.8 47718.4 -t = 2.00e+00 nst = 165 nfe = 0 nfi = 2661 nni = 1833 hu = 4.14e-02 +t = 2.00e+00 nst = 164 nfe = 0 nfi = 2647 nni = 1824 hu = 1.58e-01 -t = 3.00e+00 nst = 177 nfe = 0 nfi = 2848 nni = 1960 hu = 1.08e-01 +t = 3.00e+00 nst = 170 nfe = 0 nfi = 2737 nni = 1884 hu = 1.58e-01 -t = 4.00e+00 nst = 187 nfe = 0 nfi = 3013 nni = 2073 hu = 1.23e-01 +t = 4.00e+00 nst = 176 nfe = 0 nfi = 2843 nni = 1955 hu = 1.85e-01 c values at t = 4: @@ -280,33 +280,33 @@ Species 3 Species 4 35860.6 36110.2 36632.4 37246.4 37779.5 38038.7 -35784.2 36010.4 36490.4 37056.3 37545.3 37779.5 +35784.2 36010.4 36490.4 37056.3 37545.4 37779.5 35597.2 35782 36180.5 36651.6 37056.3 37246.4 -35371.4 35510.4 35816.7 36180.5 36490.4 36632.4 -35185.4 35283.8 35510.4 35782 36010.4 36110.2 -35109.7 35185.4 35371.4 35597.2 35784.2 35860.6 +35371.4 35510.3 35816.7 36180.5 36490.4 36632.4 +35185.4 35283.8 35510.3 35782 36010.4 36110.2 +35109.8 35185.4 35371.4 35597.2 35784.2 35860.6 Species 5 35860.6 36110.2 36632.4 37246.4 37779.5 38038.7 -35784.2 36010.4 36490.4 37056.3 37545.3 37779.5 +35784.2 36010.4 36490.4 37056.3 37545.4 37779.5 35597.2 35782 36180.5 36651.6 37056.3 37246.4 -35371.4 35510.4 35816.7 36180.5 36490.4 36632.4 -35185.4 35283.8 35510.4 35782 36010.4 36110.2 -35109.7 35185.4 35371.4 35597.2 35784.2 35860.6 +35371.4 35510.3 35816.7 36180.5 36490.4 36632.4 +35185.4 35283.8 35510.3 35782 36010.4 36110.2 +35109.8 35185.4 35371.4 35597.2 35784.2 35860.6 Species 6 35860.6 36110.2 36632.4 37246.4 37779.5 38038.7 -35784.2 36010.4 36490.4 37056.3 37545.3 37779.5 +35784.2 36010.4 36490.4 37056.3 37545.4 37779.5 35597.2 35782 36180.5 36651.6 37056.3 37246.4 -35371.4 35510.4 35816.7 36180.5 36490.4 36632.4 -35185.4 35283.8 35510.4 35782 36010.4 36110.2 -35109.7 35185.4 35371.4 35597.2 35784.2 35860.6 +35371.4 35510.3 35816.7 36180.5 36490.4 36632.4 +35185.4 35283.8 35510.3 35782 36010.4 36110.2 +35109.8 35185.4 35371.4 35597.2 35784.2 35860.6 -t = 5.00e+00 nst = 198 nfe = 0 nfi = 3179 nni = 2182 hu = 9.99e-02 +t = 5.00e+00 nst = 181 nfe = 0 nfi = 2911 nni = 1998 hu = 2.46e-01 -t = 6.00e+00 nst = 207 nfe = 0 nfi = 3336 nni = 2284 hu = 9.66e-02 +t = 6.00e+00 nst = 184 nfe = 0 nfi = 2950 nni = 2022 hu = 3.05e-01 -t = 7.00e+00 nst = 216 nfe = 0 nfi = 3477 nni = 2375 hu = 1.51e-01 +t = 7.00e+00 nst = 186 nfe = 0 nfi = 2975 nni = 2037 hu = 4.87e-01 c values at t = 7: @@ -335,34 +335,34 @@ Species 3 1.16363 1.16614 1.17231 1.1798 1.18601 1.18854 Species 4 -35656.3 35903.1 36424.2 37033.8 37564.6 37822.3 -35578.4 35804.9 36281.3 36845.5 37330.9 37564.6 -35393.9 35575.9 35974.4 36441.4 36845.5 37033.8 -35167.5 35307.4 35610.6 35974.4 36281.3 36424.2 -34984.3 35080.2 35307.4 35575.9 35804.9 35903.1 -34907.5 34984.3 35167.5 35393.9 35578.4 35656.3 +35655.3 35903.6 36423.2 37034.1 37564.4 37822.3 +35579.3 35804.3 36281.9 36844.9 37331.5 37564.4 +35393.1 35577 35973.5 36442.3 36844.9 37034.1 +35168.4 35306.6 35611.5 35973.5 36281.9 36423.2 +34983.3 35081.1 35306.6 35577 35804.3 35903.6 +34907.9 34983.3 35168.4 35393.1 35579.3 35655.3 Species 5 -35656.3 35903.1 36424.2 37033.8 37564.6 37822.3 -35578.4 35804.9 36281.3 36845.5 37330.9 37564.6 -35393.9 35575.9 35974.4 36441.4 36845.5 37033.8 -35167.5 35307.4 35610.6 35974.4 36281.3 36424.2 -34984.3 35080.2 35307.4 35575.9 35804.9 35903.1 -34907.5 34984.3 35167.5 35393.9 35578.4 35656.3 +35655.3 35903.6 36423.2 37034.1 37564.4 37822.3 +35579.3 35804.3 36281.9 36844.9 37331.5 37564.4 +35393.1 35577 35973.5 36442.3 36844.9 37034.1 +35168.4 35306.6 35611.5 35973.5 36281.9 36423.2 +34983.3 35081.1 35306.6 35577 35804.3 35903.6 +34907.9 34983.3 35168.4 35393.1 35579.3 35655.3 Species 6 -35656.3 35903.1 36424.2 37033.8 37564.6 37822.3 -35578.4 35804.9 36281.3 36845.5 37330.9 37564.6 -35393.9 35575.9 35974.4 36441.4 36845.5 37033.8 -35167.5 35307.4 35610.6 35974.4 36281.3 36424.2 -34984.3 35080.2 35307.4 35575.9 35804.9 35903.1 -34907.5 34984.3 35167.5 35393.9 35578.4 35656.3 +35655.3 35903.6 36423.2 37034.1 37564.4 37822.3 +35579.3 35804.3 36281.9 36844.9 37331.5 37564.4 +35393.1 35577 35973.5 36442.3 36844.9 37034.1 +35168.4 35306.6 35611.5 35973.5 36281.9 36423.2 +34983.3 35081.1 35306.6 35577 35804.3 35903.6 +34907.9 34983.3 35168.4 35393.1 35579.3 35655.3 -t = 8.00e+00 nst = 232 nfe = 0 nfi = 3780 nni = 2567 hu = 1.06e-01 +t = 8.00e+00 nst = 188 nfe = 0 nfi = 3003 nni = 2055 hu = 7.64e-01 -t = 9.00e+00 nst = 249 nfe = 0 nfi = 4075 nni = 2742 hu = 8.61e-02 +t = 9.00e+00 nst = 189 nfe = 0 nfi = 3015 nni = 2062 hu = 7.64e-01 -t = 1.00e+01 nst = 266 nfe = 0 nfi = 4394 nni = 2941 hu = 8.37e-02 +t = 1.00e+01 nst = 190 nfe = 0 nfi = 3030 nni = 2072 hu = 1.57e+00 c values at t = 10: @@ -391,27 +391,27 @@ Species 3 1.16347 1.16598 1.17215 1.17964 1.18585 1.18838 Species 4 -35650.6 35898.8 36418.4 37029.2 37559.5 37817.3 +35650.6 35898.8 36418.3 37029.2 37559.5 37817.3 35574.5 35799.5 36277.1 36840 37326.6 37559.5 -35388.4 35572.3 35968.8 36437.5 36840 37029.2 -35163.7 35302 35606.7 35968.8 36277.1 36418.4 -34978.6 35076.5 35302 35572.3 35799.5 35898.8 +35388.4 35572.3 35968.7 36437.4 36840 37029.2 +35163.7 35301.9 35606.7 35968.7 36277.1 36418.3 +34978.6 35076.5 35301.9 35572.3 35799.5 35898.8 34903.3 34978.6 35163.7 35388.4 35574.5 35650.6 Species 5 -35650.6 35898.8 36418.4 37029.2 37559.5 37817.3 +35650.6 35898.8 36418.3 37029.2 37559.5 37817.3 35574.5 35799.5 36277.1 36840 37326.6 37559.5 -35388.4 35572.3 35968.8 36437.5 36840 37029.2 -35163.7 35302 35606.7 35968.8 36277.1 36418.4 -34978.6 35076.5 35302 35572.3 35799.5 35898.8 +35388.4 35572.3 35968.7 36437.4 36840 37029.2 +35163.7 35301.9 35606.7 35968.7 36277.1 36418.3 +34978.6 35076.5 35301.9 35572.3 35799.5 35898.8 34903.3 34978.6 35163.7 35388.4 35574.5 35650.6 Species 6 -35650.6 35898.8 36418.4 37029.2 37559.5 37817.3 +35650.6 35898.8 36418.3 37029.2 37559.5 37817.3 35574.5 35799.5 36277.1 36840 37326.6 37559.5 -35388.4 35572.3 35968.8 36437.5 36840 37029.2 -35163.7 35302 35606.7 35968.8 36277.1 36418.4 -34978.6 35076.5 35302 35572.3 35799.5 35898.8 +35388.4 35572.3 35968.7 36437.4 36840 37029.2 +35163.7 35301.9 35606.7 35968.7 36277.1 36418.3 +34978.6 35076.5 35301.9 35572.3 35799.5 35898.8 34903.3 34978.6 35163.7 35388.4 35574.5 35650.6 @@ -422,20 +422,20 @@ Species 6 ARKStep integer workspace length = 131 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 266 + Number of steps = 190 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 4394 - Number of f-s (SPGMR) = 8980 - Number of f-s (TOTAL) = 8980 - Number of setups = 121 - Number of nonlinear iterations = 2941 - Number of linear iterations = 8980 - Number of preconditioner evaluations = 121 - Number of preconditioner solves = 11819 - Number of error test failures = 23 - Number of nonlinear conv. failures = 17 - Number of linear convergence failures = 509 - Average Krylov subspace dimension = 3.053 + Number of f-s (implicit) = 3030 + Number of f-s (SPGMR) = 6097 + Number of f-s (TOTAL) = 6097 + Number of setups = 38 + Number of nonlinear iterations = 2072 + Number of linear iterations = 6097 + Number of preconditioner evaluations = 38 + Number of preconditioner solves = 8080 + Number of error test failures = 1 + Number of nonlinear conv. failures = 0 + Number of linear convergence failures = 182 + Average Krylov subspace dimension = 2.943 ---------------------------------------------------------------------------- @@ -459,29 +459,29 @@ t = 1.00e-04 nst = 106 nfe = 0 nfi = 1688 nni = 1155 hu = 1.70e-05 t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.51e-03 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.46e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.43e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2024 nni = 1386 hu = 1.28e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.25e-02 -t = 1.00e+00 nst = 154 nfe = 0 nfi = 2491 nni = 1718 hu = 7.60e-02 +t = 1.00e+00 nst = 153 nfe = 0 nfi = 2474 nni = 1706 hu = 6.52e-02 -t = 2.00e+00 nst = 169 nfe = 0 nfi = 2746 nni = 1896 hu = 8.04e-02 +t = 2.00e+00 nst = 164 nfe = 0 nfi = 2647 nni = 1824 hu = 1.58e-01 -t = 3.00e+00 nst = 181 nfe = 0 nfi = 2950 nni = 2036 hu = 1.01e-01 +t = 3.00e+00 nst = 170 nfe = 0 nfi = 2737 nni = 1884 hu = 1.58e-01 -t = 4.00e+00 nst = 189 nfe = 0 nfi = 3073 nni = 2119 hu = 1.33e-01 +t = 4.00e+00 nst = 176 nfe = 0 nfi = 2843 nni = 1955 hu = 1.85e-01 -t = 5.00e+00 nst = 199 nfe = 0 nfi = 3242 nni = 2227 hu = 9.38e-02 +t = 5.00e+00 nst = 181 nfe = 0 nfi = 2911 nni = 1998 hu = 2.46e-01 -t = 6.00e+00 nst = 211 nfe = 0 nfi = 3442 nni = 2352 hu = 1.13e-01 +t = 6.00e+00 nst = 184 nfe = 0 nfi = 2950 nni = 2022 hu = 3.05e-01 -t = 7.00e+00 nst = 220 nfe = 0 nfi = 3612 nni = 2457 hu = 1.07e-01 +t = 7.00e+00 nst = 186 nfe = 0 nfi = 2975 nni = 2037 hu = 4.86e-01 -t = 8.00e+00 nst = 229 nfe = 0 nfi = 3747 nni = 2537 hu = 1.33e-01 +t = 8.00e+00 nst = 188 nfe = 0 nfi = 3003 nni = 2055 hu = 7.64e-01 -t = 9.00e+00 nst = 239 nfe = 0 nfi = 3897 nni = 2622 hu = 8.98e-02 +t = 9.00e+00 nst = 189 nfe = 0 nfi = 3015 nni = 2062 hu = 7.64e-01 -t = 1.00e+01 nst = 251 nfe = 0 nfi = 4101 nni = 2746 hu = 7.09e-02 +t = 1.00e+01 nst = 190 nfe = 0 nfi = 3030 nni = 2072 hu = 1.57e+00 @@ -491,20 +491,20 @@ t = 1.00e+01 nst = 251 nfe = 0 nfi = 4101 nni = 2746 hu = 7.09e-02 ARKStep integer workspace length = 136 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 251 + Number of steps = 190 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 4101 - Number of f-s (SPGMR) = 8880 - Number of f-s (TOTAL) = 8880 - Number of setups = 91 - Number of nonlinear iterations = 2746 - Number of linear iterations = 8880 - Number of preconditioner evaluations = 91 - Number of preconditioner solves = 11537 - Number of error test failures = 18 - Number of nonlinear conv. failures = 13 - Number of linear convergence failures = 597 - Average Krylov subspace dimension = 3.234 + Number of f-s (implicit) = 3030 + Number of f-s (SPGMR) = 6096 + Number of f-s (TOTAL) = 6096 + Number of setups = 38 + Number of nonlinear iterations = 2072 + Number of linear iterations = 6096 + Number of preconditioner evaluations = 38 + Number of preconditioner solves = 8079 + Number of error test failures = 1 + Number of nonlinear conv. failures = 0 + Number of linear convergence failures = 182 + Average Krylov subspace dimension = 2.942 ---------------------------------------------------------------------------- @@ -526,31 +526,31 @@ t = 1.00e-05 nst = 27 nfe = 0 nfi = 407 nni = 269 hu = 4.79e-07 t = 1.00e-04 nst = 106 nfe = 0 nfi = 1688 nni = 1155 hu = 1.70e-05 -t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.50e-03 +t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.49e-03 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.42e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1799 nni = 1231 hu = 3.79e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.23e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2028 nni = 1390 hu = 1.32e-02 -t = 1.00e+00 nst = 166 nfe = 0 nfi = 2714 nni = 1875 hu = 2.40e-02 +t = 1.00e+00 nst = 164 nfe = 0 nfi = 2669 nni = 1844 hu = 4.98e-02 -t = 2.00e+00 nst = 214 nfe = 0 nfi = 3550 nni = 2460 hu = 2.34e-02 +t = 2.00e+00 nst = 213 nfe = 0 nfi = 3526 nni = 2444 hu = 2.37e-02 -t = 3.00e+00 nst = 249 nfe = 0 nfi = 4111 nni = 2846 hu = 3.57e-02 +t = 3.00e+00 nst = 248 nfe = 0 nfi = 4087 nni = 2830 hu = 3.53e-02 -t = 4.00e+00 nst = 272 nfe = 0 nfi = 4472 nni = 3092 hu = 5.08e-02 +t = 4.00e+00 nst = 272 nfe = 0 nfi = 4465 nni = 3088 hu = 3.22e-02 -t = 5.00e+00 nst = 297 nfe = 0 nfi = 4851 nni = 3346 hu = 5.14e-02 +t = 5.00e+00 nst = 299 nfe = 0 nfi = 4876 nni = 3363 hu = 3.94e-02 -t = 6.00e+00 nst = 315 nfe = 0 nfi = 5117 nni = 3522 hu = 6.88e-02 +t = 6.00e+00 nst = 316 nfe = 0 nfi = 5130 nni = 3532 hu = 6.86e-02 -t = 7.00e+00 nst = 328 nfe = 0 nfi = 5302 nni = 3642 hu = 8.22e-02 +t = 7.00e+00 nst = 329 nfe = 0 nfi = 5315 nni = 3652 hu = 8.22e-02 -t = 8.00e+00 nst = 338 nfe = 0 nfi = 5441 nni = 3731 hu = 8.52e-02 +t = 8.00e+00 nst = 339 nfe = 0 nfi = 5455 nni = 3742 hu = 1.18e-01 -t = 9.00e+00 nst = 349 nfe = 0 nfi = 5592 nni = 3827 hu = 1.11e-01 +t = 9.00e+00 nst = 345 nfe = 0 nfi = 5536 nni = 3793 hu = 2.11e-01 -t = 1.00e+01 nst = 359 nfe = 0 nfi = 5722 nni = 3907 hu = 1.35e-01 +t = 1.00e+01 nst = 349 nfe = 0 nfi = 5589 nni = 3826 hu = 2.80e-01 @@ -560,20 +560,20 @@ t = 1.00e+01 nst = 359 nfe = 0 nfi = 5722 nni = 3907 hu = 1.35e-01 ARKStep integer workspace length = 141 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 359 + Number of steps = 349 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 5722 - Number of f-s (SPGMR) = 12904 - Number of f-s (TOTAL) = 12904 - Number of setups = 253 - Number of nonlinear iterations = 3907 - Number of linear iterations = 12904 - Number of preconditioner evaluations = 253 - Number of preconditioner solves = 16594 + Number of f-s (implicit) = 5589 + Number of f-s (SPGMR) = 12378 + Number of f-s (TOTAL) = 12378 + Number of setups = 244 + Number of nonlinear iterations = 3826 + Number of linear iterations = 12378 + Number of preconditioner evaluations = 244 + Number of preconditioner solves = 15957 Number of error test failures = 0 - Number of nonlinear conv. failures = 117 - Number of linear convergence failures = 1072 - Average Krylov subspace dimension = 3.303 + Number of nonlinear conv. failures = 113 + Number of linear convergence failures = 977 + Average Krylov subspace dimension = 3.235 ---------------------------------------------------------------------------- @@ -595,54 +595,54 @@ t = 1.00e-05 nst = 27 nfe = 0 nfi = 407 nni = 269 hu = 4.79e-07 t = 1.00e-04 nst = 106 nfe = 0 nfi = 1688 nni = 1155 hu = 1.70e-05 -t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.50e-03 +t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.49e-03 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.42e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1799 nni = 1231 hu = 3.79e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.23e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2028 nni = 1390 hu = 1.32e-02 -t = 1.00e+00 nst = 166 nfe = 0 nfi = 2714 nni = 1875 hu = 2.40e-02 +t = 1.00e+00 nst = 164 nfe = 0 nfi = 2669 nni = 1844 hu = 4.98e-02 -t = 2.00e+00 nst = 214 nfe = 0 nfi = 3556 nni = 2465 hu = 2.34e-02 +t = 2.00e+00 nst = 213 nfe = 0 nfi = 3526 nni = 2444 hu = 2.37e-02 -t = 3.00e+00 nst = 249 nfe = 0 nfi = 4117 nni = 2851 hu = 3.57e-02 +t = 3.00e+00 nst = 248 nfe = 0 nfi = 4087 nni = 2830 hu = 3.53e-02 -t = 4.00e+00 nst = 272 nfe = 0 nfi = 4478 nni = 3097 hu = 5.08e-02 +t = 4.00e+00 nst = 272 nfe = 0 nfi = 4465 nni = 3088 hu = 3.22e-02 -t = 5.00e+00 nst = 297 nfe = 0 nfi = 4857 nni = 3351 hu = 5.14e-02 +t = 5.00e+00 nst = 299 nfe = 0 nfi = 4876 nni = 3363 hu = 3.94e-02 -t = 6.00e+00 nst = 315 nfe = 0 nfi = 5123 nni = 3527 hu = 6.89e-02 +t = 6.00e+00 nst = 316 nfe = 0 nfi = 5130 nni = 3532 hu = 6.86e-02 -t = 7.00e+00 nst = 328 nfe = 0 nfi = 5308 nni = 3647 hu = 9.31e-02 +t = 7.00e+00 nst = 329 nfe = 0 nfi = 5315 nni = 3652 hu = 8.22e-02 -t = 8.00e+00 nst = 339 nfe = 0 nfi = 5464 nni = 3748 hu = 9.70e-02 +t = 8.00e+00 nst = 339 nfe = 0 nfi = 5455 nni = 3742 hu = 1.19e-01 -t = 9.00e+00 nst = 349 nfe = 0 nfi = 5598 nni = 3832 hu = 1.12e-01 +t = 9.00e+00 nst = 345 nfe = 0 nfi = 5536 nni = 3793 hu = 2.11e-01 -t = 1.00e+01 nst = 359 nfe = 0 nfi = 5728 nni = 3912 hu = 1.31e-01 +t = 1.00e+01 nst = 349 nfe = 0 nfi = 5589 nni = 3826 hu = 2.80e-01 Final statistics for this run: ARKStep real workspace length = 3557 - ARKStep integer workspace length = 146 + ARKStep integer workspace length = 146 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 359 + Number of steps = 349 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 5728 - Number of f-s (SPGMR) = 12934 - Number of f-s (TOTAL) = 12934 - Number of setups = 254 - Number of nonlinear iterations = 3912 - Number of linear iterations = 12934 - Number of preconditioner evaluations = 254 - Number of preconditioner solves = 16627 + Number of f-s (implicit) = 5589 + Number of f-s (SPGMR) = 12378 + Number of f-s (TOTAL) = 12378 + Number of setups = 244 + Number of nonlinear iterations = 3826 + Number of linear iterations = 12378 + Number of preconditioner evaluations = 244 + Number of preconditioner solves = 15957 Number of error test failures = 0 - Number of nonlinear conv. failures = 118 - Number of linear convergence failures = 1076 - Average Krylov subspace dimension = 3.306 + Number of nonlinear conv. failures = 113 + Number of linear convergence failures = 976 + Average Krylov subspace dimension = 3.235 ---------------------------------------------------------------------------- diff --git a/examples/arkode/C_serial/ark_KrylovDemo_prec_1.out b/examples/arkode/C_serial/ark_KrylovDemo_prec_1.out index 58b34e703d..a3f589f739 100644 --- a/examples/arkode/C_serial/ark_KrylovDemo_prec_1.out +++ b/examples/arkode/C_serial/ark_KrylovDemo_prec_1.out @@ -190,18 +190,18 @@ Species 6 297691 307208 319252 319264 307245 297749 297229 297691 298276 298276 297692 297231 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.46e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.43e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2024 nni = 1386 hu = 1.28e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.25e-02 -t = 1.00e+00 nst = 154 nfe = 0 nfi = 2489 nni = 1716 hu = 6.84e-02 +t = 1.00e+00 nst = 153 nfe = 0 nfi = 2474 nni = 1706 hu = 6.52e-02 c values at t = 1: Species 1 -1.58851 1.59924 1.62152 1.64764 1.67036 1.68149 +1.58851 1.59924 1.62152 1.64765 1.67036 1.68149 1.58533 1.59503 1.61548 1.63952 1.66033 1.67036 -1.57757 1.58547 1.60239 1.62235 1.63952 1.64764 +1.57757 1.58547 1.60239 1.62235 1.63952 1.64765 1.5682 1.57412 1.58706 1.60239 1.61548 1.62152 1.56048 1.56463 1.57412 1.58547 1.59503 1.59924 1.55733 1.56048 1.5682 1.57757 1.58533 1.58851 @@ -210,7 +210,7 @@ Species 2 1.59067 1.60141 1.62371 1.64987 1.67261 1.68375 1.58748 1.5972 1.61766 1.64173 1.66257 1.67261 1.57971 1.58763 1.60457 1.62454 1.64173 1.64987 -1.57034 1.57626 1.58921 1.60457 1.61766 1.62371 +1.57034 1.57626 1.58922 1.60457 1.61766 1.62371 1.56261 1.56676 1.57626 1.58763 1.5972 1.60141 1.55945 1.56261 1.57034 1.57971 1.58748 1.59067 @@ -223,34 +223,34 @@ Species 3 1.56146 1.56462 1.57236 1.58174 1.58951 1.5927 Species 4 -47718.3 48040.3 48709 49493.5 50175.5 50509.4 +47718.4 48040.3 48709 49493.5 50175.5 50509.4 47622.8 47914 48527.8 49249.6 49874.4 50175.5 -47389.7 47627 48134.9 48734.2 49249.6 49493.5 -47108.5 47286 47674.6 48134.9 48527.8 48709 -46876.6 47001.2 47286 47627 47914 48040.3 -46781.9 46876.6 47108.5 47389.7 47622.8 47718.3 +47389.7 47627 48135 48734.2 49249.6 49493.5 +47108.5 47286.1 47674.6 48135 48527.8 48709 +46876.6 47001.1 47286.1 47627 47914 48040.3 +46781.9 46876.6 47108.5 47389.7 47622.8 47718.4 Species 5 -47718.3 48040.3 48709 49493.5 50175.5 50509.4 +47718.4 48040.3 48709 49493.5 50175.5 50509.4 47622.8 47914 48527.8 49249.6 49874.4 50175.5 -47389.7 47627 48134.9 48734.2 49249.6 49493.5 -47108.5 47286 47674.6 48134.9 48527.8 48709 -46876.6 47001.2 47286 47627 47914 48040.3 -46781.9 46876.6 47108.5 47389.7 47622.8 47718.3 +47389.7 47627 48135 48734.2 49249.6 49493.5 +47108.5 47286.1 47674.6 48135 48527.8 48709 +46876.6 47001.1 47286.1 47627 47914 48040.3 +46781.9 46876.6 47108.5 47389.7 47622.8 47718.4 Species 6 -47718.3 48040.3 48709 49493.5 50175.5 50509.4 +47718.4 48040.3 48709 49493.5 50175.5 50509.4 47622.8 47914 48527.8 49249.6 49874.4 50175.5 -47389.7 47627 48134.9 48734.2 49249.6 49493.5 -47108.5 47286 47674.6 48134.9 48527.8 48709 -46876.6 47001.2 47286 47627 47914 48040.3 -46781.9 46876.6 47108.5 47389.7 47622.8 47718.3 +47389.7 47627 48135 48734.2 49249.6 49493.5 +47108.5 47286.1 47674.6 48135 48527.8 48709 +46876.6 47001.1 47286.1 47627 47914 48040.3 +46781.9 46876.6 47108.5 47389.7 47622.8 47718.4 -t = 2.00e+00 nst = 165 nfe = 0 nfi = 2661 nni = 1833 hu = 4.14e-02 +t = 2.00e+00 nst = 164 nfe = 0 nfi = 2647 nni = 1824 hu = 1.58e-01 -t = 3.00e+00 nst = 177 nfe = 0 nfi = 2848 nni = 1960 hu = 1.08e-01 +t = 3.00e+00 nst = 170 nfe = 0 nfi = 2737 nni = 1884 hu = 1.58e-01 -t = 4.00e+00 nst = 187 nfe = 0 nfi = 3013 nni = 2073 hu = 1.23e-01 +t = 4.00e+00 nst = 176 nfe = 0 nfi = 2843 nni = 1955 hu = 1.85e-01 c values at t = 4: @@ -280,33 +280,33 @@ Species 3 Species 4 35860.6 36110.2 36632.4 37246.4 37779.5 38038.7 -35784.2 36010.4 36490.4 37056.3 37545.3 37779.5 +35784.2 36010.4 36490.4 37056.3 37545.4 37779.5 35597.2 35782 36180.5 36651.6 37056.3 37246.4 -35371.4 35510.4 35816.7 36180.5 36490.4 36632.4 -35185.4 35283.8 35510.4 35782 36010.4 36110.2 -35109.7 35185.4 35371.4 35597.2 35784.2 35860.6 +35371.4 35510.3 35816.7 36180.5 36490.4 36632.4 +35185.4 35283.8 35510.3 35782 36010.4 36110.2 +35109.8 35185.4 35371.4 35597.2 35784.2 35860.6 Species 5 35860.6 36110.2 36632.4 37246.4 37779.5 38038.7 -35784.2 36010.4 36490.4 37056.3 37545.3 37779.5 +35784.2 36010.4 36490.4 37056.3 37545.4 37779.5 35597.2 35782 36180.5 36651.6 37056.3 37246.4 -35371.4 35510.4 35816.7 36180.5 36490.4 36632.4 -35185.4 35283.8 35510.4 35782 36010.4 36110.2 -35109.7 35185.4 35371.4 35597.2 35784.2 35860.6 +35371.4 35510.3 35816.7 36180.5 36490.4 36632.4 +35185.4 35283.8 35510.3 35782 36010.4 36110.2 +35109.8 35185.4 35371.4 35597.2 35784.2 35860.6 Species 6 35860.6 36110.2 36632.4 37246.4 37779.5 38038.7 -35784.2 36010.4 36490.4 37056.3 37545.3 37779.5 +35784.2 36010.4 36490.4 37056.3 37545.4 37779.5 35597.2 35782 36180.5 36651.6 37056.3 37246.4 -35371.4 35510.4 35816.7 36180.5 36490.4 36632.4 -35185.4 35283.8 35510.4 35782 36010.4 36110.2 -35109.7 35185.4 35371.4 35597.2 35784.2 35860.6 +35371.4 35510.3 35816.7 36180.5 36490.4 36632.4 +35185.4 35283.8 35510.3 35782 36010.4 36110.2 +35109.8 35185.4 35371.4 35597.2 35784.2 35860.6 -t = 5.00e+00 nst = 198 nfe = 0 nfi = 3179 nni = 2182 hu = 9.99e-02 +t = 5.00e+00 nst = 181 nfe = 0 nfi = 2911 nni = 1998 hu = 2.46e-01 -t = 6.00e+00 nst = 207 nfe = 0 nfi = 3336 nni = 2284 hu = 9.66e-02 +t = 6.00e+00 nst = 184 nfe = 0 nfi = 2950 nni = 2022 hu = 3.05e-01 -t = 7.00e+00 nst = 216 nfe = 0 nfi = 3477 nni = 2375 hu = 1.51e-01 +t = 7.00e+00 nst = 186 nfe = 0 nfi = 2975 nni = 2037 hu = 4.87e-01 c values at t = 7: @@ -335,34 +335,34 @@ Species 3 1.16363 1.16614 1.17231 1.1798 1.18601 1.18854 Species 4 -35656.3 35903.1 36424.2 37033.8 37564.6 37822.3 -35578.4 35804.9 36281.3 36845.5 37330.9 37564.6 -35393.9 35575.9 35974.4 36441.4 36845.5 37033.8 -35167.5 35307.4 35610.6 35974.4 36281.3 36424.2 -34984.3 35080.2 35307.4 35575.9 35804.9 35903.1 -34907.5 34984.3 35167.5 35393.9 35578.4 35656.3 +35655.3 35903.6 36423.2 37034.1 37564.4 37822.3 +35579.3 35804.3 36281.9 36844.9 37331.5 37564.4 +35393.1 35577 35973.5 36442.3 36844.9 37034.1 +35168.4 35306.6 35611.5 35973.5 36281.9 36423.2 +34983.3 35081.1 35306.6 35577 35804.3 35903.6 +34907.9 34983.3 35168.4 35393.1 35579.3 35655.3 Species 5 -35656.3 35903.1 36424.2 37033.8 37564.6 37822.3 -35578.4 35804.9 36281.3 36845.5 37330.9 37564.6 -35393.9 35575.9 35974.4 36441.4 36845.5 37033.8 -35167.5 35307.4 35610.6 35974.4 36281.3 36424.2 -34984.3 35080.2 35307.4 35575.9 35804.9 35903.1 -34907.5 34984.3 35167.5 35393.9 35578.4 35656.3 +35655.3 35903.6 36423.2 37034.1 37564.4 37822.3 +35579.3 35804.3 36281.9 36844.9 37331.5 37564.4 +35393.1 35577 35973.5 36442.3 36844.9 37034.1 +35168.4 35306.6 35611.5 35973.5 36281.9 36423.2 +34983.3 35081.1 35306.6 35577 35804.3 35903.6 +34907.9 34983.3 35168.4 35393.1 35579.3 35655.3 Species 6 -35656.3 35903.1 36424.2 37033.8 37564.6 37822.3 -35578.4 35804.9 36281.3 36845.5 37330.9 37564.6 -35393.9 35575.9 35974.4 36441.4 36845.5 37033.8 -35167.5 35307.4 35610.6 35974.4 36281.3 36424.2 -34984.3 35080.2 35307.4 35575.9 35804.9 35903.1 -34907.5 34984.3 35167.5 35393.9 35578.4 35656.3 +35655.3 35903.6 36423.2 37034.1 37564.4 37822.3 +35579.3 35804.3 36281.9 36844.9 37331.5 37564.4 +35393.1 35577 35973.5 36442.3 36844.9 37034.1 +35168.4 35306.6 35611.5 35973.5 36281.9 36423.2 +34983.3 35081.1 35306.6 35577 35804.3 35903.6 +34907.9 34983.3 35168.4 35393.1 35579.3 35655.3 -t = 8.00e+00 nst = 232 nfe = 0 nfi = 3780 nni = 2567 hu = 1.06e-01 +t = 8.00e+00 nst = 188 nfe = 0 nfi = 3003 nni = 2055 hu = 7.64e-01 -t = 9.00e+00 nst = 249 nfe = 0 nfi = 4075 nni = 2742 hu = 8.61e-02 +t = 9.00e+00 nst = 189 nfe = 0 nfi = 3015 nni = 2062 hu = 7.64e-01 -t = 1.00e+01 nst = 266 nfe = 0 nfi = 4394 nni = 2941 hu = 8.37e-02 +t = 1.00e+01 nst = 190 nfe = 0 nfi = 3030 nni = 2072 hu = 1.57e+00 c values at t = 10: @@ -391,27 +391,27 @@ Species 3 1.16347 1.16598 1.17215 1.17964 1.18585 1.18838 Species 4 -35650.6 35898.8 36418.4 37029.2 37559.5 37817.3 +35650.6 35898.8 36418.3 37029.2 37559.5 37817.3 35574.5 35799.5 36277.1 36840 37326.6 37559.5 -35388.4 35572.3 35968.8 36437.5 36840 37029.2 -35163.7 35302 35606.7 35968.8 36277.1 36418.4 -34978.6 35076.5 35302 35572.3 35799.5 35898.8 +35388.4 35572.3 35968.7 36437.4 36840 37029.2 +35163.7 35301.9 35606.7 35968.7 36277.1 36418.3 +34978.6 35076.5 35301.9 35572.3 35799.5 35898.8 34903.3 34978.6 35163.7 35388.4 35574.5 35650.6 Species 5 -35650.6 35898.8 36418.4 37029.2 37559.5 37817.3 +35650.6 35898.8 36418.3 37029.2 37559.5 37817.3 35574.5 35799.5 36277.1 36840 37326.6 37559.5 -35388.4 35572.3 35968.8 36437.5 36840 37029.2 -35163.7 35302 35606.7 35968.8 36277.1 36418.4 -34978.6 35076.5 35302 35572.3 35799.5 35898.8 +35388.4 35572.3 35968.7 36437.4 36840 37029.2 +35163.7 35301.9 35606.7 35968.7 36277.1 36418.3 +34978.6 35076.5 35301.9 35572.3 35799.5 35898.8 34903.3 34978.6 35163.7 35388.4 35574.5 35650.6 Species 6 -35650.6 35898.8 36418.4 37029.2 37559.5 37817.3 +35650.6 35898.8 36418.3 37029.2 37559.5 37817.3 35574.5 35799.5 36277.1 36840 37326.6 37559.5 -35388.4 35572.3 35968.8 36437.5 36840 37029.2 -35163.7 35302 35606.7 35968.8 36277.1 36418.4 -34978.6 35076.5 35302 35572.3 35799.5 35898.8 +35388.4 35572.3 35968.7 36437.4 36840 37029.2 +35163.7 35301.9 35606.7 35968.7 36277.1 36418.3 +34978.6 35076.5 35301.9 35572.3 35799.5 35898.8 34903.3 34978.6 35163.7 35388.4 35574.5 35650.6 @@ -422,20 +422,20 @@ Species 6 ARKStep integer workspace length = 131 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 266 + Number of steps = 190 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 4394 - Number of f-s (SPGMR) = 8980 - Number of f-s (TOTAL) = 8980 - Number of setups = 121 - Number of nonlinear iterations = 2941 - Number of linear iterations = 8980 - Number of preconditioner evaluations = 121 - Number of preconditioner solves = 11819 - Number of error test failures = 23 - Number of nonlinear conv. failures = 17 - Number of linear convergence failures = 509 - Average Krylov subspace dimension = 3.053 + Number of f-s (implicit) = 3030 + Number of f-s (SPGMR) = 6097 + Number of f-s (TOTAL) = 6097 + Number of setups = 38 + Number of nonlinear iterations = 2072 + Number of linear iterations = 6097 + Number of preconditioner evaluations = 38 + Number of preconditioner solves = 8080 + Number of error test failures = 1 + Number of nonlinear conv. failures = 0 + Number of linear convergence failures = 182 + Average Krylov subspace dimension = 2.943 ---------------------------------------------------------------------------- @@ -459,52 +459,52 @@ t = 1.00e-04 nst = 106 nfe = 0 nfi = 1688 nni = 1155 hu = 1.70e-05 t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.51e-03 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.46e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.43e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2024 nni = 1386 hu = 1.28e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.25e-02 -t = 1.00e+00 nst = 154 nfe = 0 nfi = 2491 nni = 1718 hu = 7.60e-02 +t = 1.00e+00 nst = 153 nfe = 0 nfi = 2474 nni = 1706 hu = 6.52e-02 -t = 2.00e+00 nst = 169 nfe = 0 nfi = 2746 nni = 1896 hu = 8.04e-02 +t = 2.00e+00 nst = 164 nfe = 0 nfi = 2647 nni = 1824 hu = 1.58e-01 -t = 3.00e+00 nst = 181 nfe = 0 nfi = 2950 nni = 2036 hu = 1.01e-01 +t = 3.00e+00 nst = 170 nfe = 0 nfi = 2737 nni = 1884 hu = 1.58e-01 -t = 4.00e+00 nst = 189 nfe = 0 nfi = 3073 nni = 2119 hu = 1.33e-01 +t = 4.00e+00 nst = 176 nfe = 0 nfi = 2843 nni = 1955 hu = 1.85e-01 -t = 5.00e+00 nst = 199 nfe = 0 nfi = 3242 nni = 2227 hu = 9.38e-02 +t = 5.00e+00 nst = 181 nfe = 0 nfi = 2911 nni = 1998 hu = 2.46e-01 -t = 6.00e+00 nst = 211 nfe = 0 nfi = 3442 nni = 2352 hu = 1.13e-01 +t = 6.00e+00 nst = 184 nfe = 0 nfi = 2950 nni = 2022 hu = 3.05e-01 -t = 7.00e+00 nst = 220 nfe = 0 nfi = 3612 nni = 2457 hu = 1.07e-01 +t = 7.00e+00 nst = 186 nfe = 0 nfi = 2975 nni = 2037 hu = 4.86e-01 -t = 8.00e+00 nst = 229 nfe = 0 nfi = 3747 nni = 2537 hu = 1.33e-01 +t = 8.00e+00 nst = 188 nfe = 0 nfi = 3003 nni = 2055 hu = 7.64e-01 -t = 9.00e+00 nst = 239 nfe = 0 nfi = 3897 nni = 2622 hu = 8.98e-02 +t = 9.00e+00 nst = 189 nfe = 0 nfi = 3015 nni = 2062 hu = 7.64e-01 -t = 1.00e+01 nst = 251 nfe = 0 nfi = 4101 nni = 2746 hu = 7.09e-02 +t = 1.00e+01 nst = 190 nfe = 0 nfi = 3030 nni = 2072 hu = 1.57e+00 Final statistics for this run: ARKStep real workspace length = 3557 - ARKStep integer workspace length = 136 + ARKStep integer workspace length = 136 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 251 + Number of steps = 190 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 4101 - Number of f-s (SPGMR) = 8880 - Number of f-s (TOTAL) = 8880 - Number of setups = 91 - Number of nonlinear iterations = 2746 - Number of linear iterations = 8880 - Number of preconditioner evaluations = 91 - Number of preconditioner solves = 11537 - Number of error test failures = 18 - Number of nonlinear conv. failures = 13 - Number of linear convergence failures = 597 - Average Krylov subspace dimension = 3.234 + Number of f-s (implicit) = 3030 + Number of f-s (SPGMR) = 6096 + Number of f-s (TOTAL) = 6096 + Number of setups = 38 + Number of nonlinear iterations = 2072 + Number of linear iterations = 6096 + Number of preconditioner evaluations = 38 + Number of preconditioner solves = 8079 + Number of error test failures = 1 + Number of nonlinear conv. failures = 0 + Number of linear convergence failures = 182 + Average Krylov subspace dimension = 2.942 ---------------------------------------------------------------------------- @@ -526,54 +526,54 @@ t = 1.00e-05 nst = 27 nfe = 0 nfi = 407 nni = 269 hu = 4.79e-07 t = 1.00e-04 nst = 106 nfe = 0 nfi = 1688 nni = 1155 hu = 1.70e-05 -t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.50e-03 +t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.49e-03 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.42e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1799 nni = 1231 hu = 3.79e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.23e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2028 nni = 1390 hu = 1.32e-02 -t = 1.00e+00 nst = 166 nfe = 0 nfi = 2714 nni = 1875 hu = 2.40e-02 +t = 1.00e+00 nst = 164 nfe = 0 nfi = 2669 nni = 1844 hu = 4.98e-02 -t = 2.00e+00 nst = 214 nfe = 0 nfi = 3550 nni = 2460 hu = 2.34e-02 +t = 2.00e+00 nst = 213 nfe = 0 nfi = 3526 nni = 2444 hu = 2.37e-02 -t = 3.00e+00 nst = 249 nfe = 0 nfi = 4111 nni = 2846 hu = 3.57e-02 +t = 3.00e+00 nst = 248 nfe = 0 nfi = 4087 nni = 2830 hu = 3.53e-02 -t = 4.00e+00 nst = 272 nfe = 0 nfi = 4472 nni = 3092 hu = 5.08e-02 +t = 4.00e+00 nst = 272 nfe = 0 nfi = 4465 nni = 3088 hu = 3.22e-02 -t = 5.00e+00 nst = 297 nfe = 0 nfi = 4851 nni = 3346 hu = 5.14e-02 +t = 5.00e+00 nst = 299 nfe = 0 nfi = 4876 nni = 3363 hu = 3.94e-02 -t = 6.00e+00 nst = 315 nfe = 0 nfi = 5117 nni = 3522 hu = 6.88e-02 +t = 6.00e+00 nst = 316 nfe = 0 nfi = 5130 nni = 3532 hu = 6.86e-02 -t = 7.00e+00 nst = 328 nfe = 0 nfi = 5302 nni = 3642 hu = 8.22e-02 +t = 7.00e+00 nst = 329 nfe = 0 nfi = 5315 nni = 3652 hu = 8.22e-02 -t = 8.00e+00 nst = 338 nfe = 0 nfi = 5441 nni = 3731 hu = 8.52e-02 +t = 8.00e+00 nst = 339 nfe = 0 nfi = 5455 nni = 3742 hu = 1.18e-01 -t = 9.00e+00 nst = 349 nfe = 0 nfi = 5592 nni = 3827 hu = 1.11e-01 +t = 9.00e+00 nst = 345 nfe = 0 nfi = 5536 nni = 3793 hu = 2.11e-01 -t = 1.00e+01 nst = 359 nfe = 0 nfi = 5722 nni = 3907 hu = 1.35e-01 +t = 1.00e+01 nst = 349 nfe = 0 nfi = 5589 nni = 3826 hu = 2.80e-01 Final statistics for this run: ARKStep real workspace length = 3557 - ARKStep integer workspace length = 141 + ARKStep integer workspace length = 141 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 359 + Number of steps = 349 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 5722 - Number of f-s (SPGMR) = 12904 - Number of f-s (TOTAL) = 12904 - Number of setups = 253 - Number of nonlinear iterations = 3907 - Number of linear iterations = 12904 - Number of preconditioner evaluations = 253 - Number of preconditioner solves = 16594 + Number of f-s (implicit) = 5589 + Number of f-s (SPGMR) = 12378 + Number of f-s (TOTAL) = 12378 + Number of setups = 244 + Number of nonlinear iterations = 3826 + Number of linear iterations = 12378 + Number of preconditioner evaluations = 244 + Number of preconditioner solves = 15957 Number of error test failures = 0 - Number of nonlinear conv. failures = 117 - Number of linear convergence failures = 1072 - Average Krylov subspace dimension = 3.303 + Number of nonlinear conv. failures = 113 + Number of linear convergence failures = 977 + Average Krylov subspace dimension = 3.235 ---------------------------------------------------------------------------- @@ -595,54 +595,54 @@ t = 1.00e-05 nst = 27 nfe = 0 nfi = 407 nni = 269 hu = 4.79e-07 t = 1.00e-04 nst = 106 nfe = 0 nfi = 1688 nni = 1155 hu = 1.70e-05 -t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.50e-03 +t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.49e-03 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.42e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1799 nni = 1231 hu = 3.79e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.23e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2028 nni = 1390 hu = 1.32e-02 -t = 1.00e+00 nst = 166 nfe = 0 nfi = 2714 nni = 1875 hu = 2.40e-02 +t = 1.00e+00 nst = 164 nfe = 0 nfi = 2669 nni = 1844 hu = 4.98e-02 -t = 2.00e+00 nst = 214 nfe = 0 nfi = 3556 nni = 2465 hu = 2.34e-02 +t = 2.00e+00 nst = 213 nfe = 0 nfi = 3526 nni = 2444 hu = 2.37e-02 -t = 3.00e+00 nst = 249 nfe = 0 nfi = 4117 nni = 2851 hu = 3.57e-02 +t = 3.00e+00 nst = 248 nfe = 0 nfi = 4087 nni = 2830 hu = 3.53e-02 -t = 4.00e+00 nst = 272 nfe = 0 nfi = 4478 nni = 3097 hu = 5.08e-02 +t = 4.00e+00 nst = 272 nfe = 0 nfi = 4465 nni = 3088 hu = 3.22e-02 -t = 5.00e+00 nst = 297 nfe = 0 nfi = 4857 nni = 3351 hu = 5.14e-02 +t = 5.00e+00 nst = 299 nfe = 0 nfi = 4876 nni = 3363 hu = 3.94e-02 -t = 6.00e+00 nst = 315 nfe = 0 nfi = 5123 nni = 3527 hu = 6.89e-02 +t = 6.00e+00 nst = 316 nfe = 0 nfi = 5130 nni = 3532 hu = 6.86e-02 -t = 7.00e+00 nst = 328 nfe = 0 nfi = 5308 nni = 3647 hu = 9.31e-02 +t = 7.00e+00 nst = 329 nfe = 0 nfi = 5315 nni = 3652 hu = 8.22e-02 -t = 8.00e+00 nst = 339 nfe = 0 nfi = 5464 nni = 3748 hu = 9.70e-02 +t = 8.00e+00 nst = 339 nfe = 0 nfi = 5455 nni = 3742 hu = 1.19e-01 -t = 9.00e+00 nst = 349 nfe = 0 nfi = 5598 nni = 3832 hu = 1.12e-01 +t = 9.00e+00 nst = 345 nfe = 0 nfi = 5536 nni = 3793 hu = 2.11e-01 -t = 1.00e+01 nst = 359 nfe = 0 nfi = 5728 nni = 3912 hu = 1.31e-01 +t = 1.00e+01 nst = 349 nfe = 0 nfi = 5589 nni = 3826 hu = 2.80e-01 Final statistics for this run: ARKStep real workspace length = 3557 - ARKStep integer workspace length = 146 + ARKStep integer workspace length = 146 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 359 + Number of steps = 349 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 5728 - Number of f-s (SPGMR) = 12934 - Number of f-s (TOTAL) = 12934 - Number of setups = 254 - Number of nonlinear iterations = 3912 - Number of linear iterations = 12934 - Number of preconditioner evaluations = 254 - Number of preconditioner solves = 16627 + Number of f-s (implicit) = 5589 + Number of f-s (SPGMR) = 12378 + Number of f-s (TOTAL) = 12378 + Number of setups = 244 + Number of nonlinear iterations = 3826 + Number of linear iterations = 12378 + Number of preconditioner evaluations = 244 + Number of preconditioner solves = 15957 Number of error test failures = 0 - Number of nonlinear conv. failures = 118 - Number of linear convergence failures = 1076 - Average Krylov subspace dimension = 3.306 + Number of nonlinear conv. failures = 113 + Number of linear convergence failures = 976 + Average Krylov subspace dimension = 3.235 ---------------------------------------------------------------------------- diff --git a/examples/arkode/C_serial/ark_KrylovDemo_prec_2.out b/examples/arkode/C_serial/ark_KrylovDemo_prec_2.out index 1af6fb8046..a3f589f739 100644 --- a/examples/arkode/C_serial/ark_KrylovDemo_prec_2.out +++ b/examples/arkode/C_serial/ark_KrylovDemo_prec_2.out @@ -190,18 +190,18 @@ Species 6 297691 307208 319252 319264 307245 297749 297229 297691 298276 298276 297692 297231 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.46e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.43e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2024 nni = 1386 hu = 1.28e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.25e-02 -t = 1.00e+00 nst = 154 nfe = 0 nfi = 2489 nni = 1716 hu = 6.84e-02 +t = 1.00e+00 nst = 153 nfe = 0 nfi = 2474 nni = 1706 hu = 6.52e-02 c values at t = 1: Species 1 -1.58851 1.59924 1.62152 1.64764 1.67036 1.68149 +1.58851 1.59924 1.62152 1.64765 1.67036 1.68149 1.58533 1.59503 1.61548 1.63952 1.66033 1.67036 -1.57757 1.58547 1.60239 1.62235 1.63952 1.64764 +1.57757 1.58547 1.60239 1.62235 1.63952 1.64765 1.5682 1.57412 1.58706 1.60239 1.61548 1.62152 1.56048 1.56463 1.57412 1.58547 1.59503 1.59924 1.55733 1.56048 1.5682 1.57757 1.58533 1.58851 @@ -210,7 +210,7 @@ Species 2 1.59067 1.60141 1.62371 1.64987 1.67261 1.68375 1.58748 1.5972 1.61766 1.64173 1.66257 1.67261 1.57971 1.58763 1.60457 1.62454 1.64173 1.64987 -1.57034 1.57626 1.58921 1.60457 1.61766 1.62371 +1.57034 1.57626 1.58922 1.60457 1.61766 1.62371 1.56261 1.56676 1.57626 1.58763 1.5972 1.60141 1.55945 1.56261 1.57034 1.57971 1.58748 1.59067 @@ -223,34 +223,34 @@ Species 3 1.56146 1.56462 1.57236 1.58174 1.58951 1.5927 Species 4 -47718.3 48040.3 48709 49493.5 50175.5 50509.4 +47718.4 48040.3 48709 49493.5 50175.5 50509.4 47622.8 47914 48527.8 49249.6 49874.4 50175.5 -47389.7 47627 48134.9 48734.2 49249.6 49493.5 -47108.5 47286 47674.6 48134.9 48527.8 48709 -46876.6 47001.2 47286 47627 47914 48040.3 -46781.9 46876.6 47108.5 47389.7 47622.8 47718.3 +47389.7 47627 48135 48734.2 49249.6 49493.5 +47108.5 47286.1 47674.6 48135 48527.8 48709 +46876.6 47001.1 47286.1 47627 47914 48040.3 +46781.9 46876.6 47108.5 47389.7 47622.8 47718.4 Species 5 -47718.3 48040.3 48709 49493.5 50175.5 50509.4 +47718.4 48040.3 48709 49493.5 50175.5 50509.4 47622.8 47914 48527.8 49249.6 49874.4 50175.5 -47389.7 47627 48134.9 48734.2 49249.6 49493.5 -47108.5 47286 47674.6 48134.9 48527.8 48709 -46876.6 47001.2 47286 47627 47914 48040.3 -46781.9 46876.6 47108.5 47389.7 47622.8 47718.3 +47389.7 47627 48135 48734.2 49249.6 49493.5 +47108.5 47286.1 47674.6 48135 48527.8 48709 +46876.6 47001.1 47286.1 47627 47914 48040.3 +46781.9 46876.6 47108.5 47389.7 47622.8 47718.4 Species 6 -47718.3 48040.3 48709 49493.5 50175.5 50509.4 +47718.4 48040.3 48709 49493.5 50175.5 50509.4 47622.8 47914 48527.8 49249.6 49874.4 50175.5 -47389.7 47627 48134.9 48734.2 49249.6 49493.5 -47108.5 47286 47674.6 48134.9 48527.8 48709 -46876.6 47001.2 47286 47627 47914 48040.3 -46781.9 46876.6 47108.5 47389.7 47622.8 47718.3 +47389.7 47627 48135 48734.2 49249.6 49493.5 +47108.5 47286.1 47674.6 48135 48527.8 48709 +46876.6 47001.1 47286.1 47627 47914 48040.3 +46781.9 46876.6 47108.5 47389.7 47622.8 47718.4 -t = 2.00e+00 nst = 165 nfe = 0 nfi = 2661 nni = 1833 hu = 4.14e-02 +t = 2.00e+00 nst = 164 nfe = 0 nfi = 2647 nni = 1824 hu = 1.58e-01 -t = 3.00e+00 nst = 177 nfe = 0 nfi = 2848 nni = 1960 hu = 1.08e-01 +t = 3.00e+00 nst = 170 nfe = 0 nfi = 2737 nni = 1884 hu = 1.58e-01 -t = 4.00e+00 nst = 187 nfe = 0 nfi = 3013 nni = 2073 hu = 1.23e-01 +t = 4.00e+00 nst = 176 nfe = 0 nfi = 2843 nni = 1955 hu = 1.85e-01 c values at t = 4: @@ -280,33 +280,33 @@ Species 3 Species 4 35860.6 36110.2 36632.4 37246.4 37779.5 38038.7 -35784.2 36010.4 36490.4 37056.3 37545.3 37779.5 +35784.2 36010.4 36490.4 37056.3 37545.4 37779.5 35597.2 35782 36180.5 36651.6 37056.3 37246.4 -35371.4 35510.4 35816.7 36180.5 36490.4 36632.4 -35185.4 35283.8 35510.4 35782 36010.4 36110.2 -35109.7 35185.4 35371.4 35597.2 35784.2 35860.6 +35371.4 35510.3 35816.7 36180.5 36490.4 36632.4 +35185.4 35283.8 35510.3 35782 36010.4 36110.2 +35109.8 35185.4 35371.4 35597.2 35784.2 35860.6 Species 5 35860.6 36110.2 36632.4 37246.4 37779.5 38038.7 -35784.2 36010.4 36490.4 37056.3 37545.3 37779.5 +35784.2 36010.4 36490.4 37056.3 37545.4 37779.5 35597.2 35782 36180.5 36651.6 37056.3 37246.4 -35371.4 35510.4 35816.7 36180.5 36490.4 36632.4 -35185.4 35283.8 35510.4 35782 36010.4 36110.2 -35109.7 35185.4 35371.4 35597.2 35784.2 35860.6 +35371.4 35510.3 35816.7 36180.5 36490.4 36632.4 +35185.4 35283.8 35510.3 35782 36010.4 36110.2 +35109.8 35185.4 35371.4 35597.2 35784.2 35860.6 Species 6 35860.6 36110.2 36632.4 37246.4 37779.5 38038.7 -35784.2 36010.4 36490.4 37056.3 37545.3 37779.5 +35784.2 36010.4 36490.4 37056.3 37545.4 37779.5 35597.2 35782 36180.5 36651.6 37056.3 37246.4 -35371.4 35510.4 35816.7 36180.5 36490.4 36632.4 -35185.4 35283.8 35510.4 35782 36010.4 36110.2 -35109.7 35185.4 35371.4 35597.2 35784.2 35860.6 +35371.4 35510.3 35816.7 36180.5 36490.4 36632.4 +35185.4 35283.8 35510.3 35782 36010.4 36110.2 +35109.8 35185.4 35371.4 35597.2 35784.2 35860.6 -t = 5.00e+00 nst = 198 nfe = 0 nfi = 3179 nni = 2182 hu = 9.99e-02 +t = 5.00e+00 nst = 181 nfe = 0 nfi = 2911 nni = 1998 hu = 2.46e-01 -t = 6.00e+00 nst = 207 nfe = 0 nfi = 3336 nni = 2284 hu = 9.66e-02 +t = 6.00e+00 nst = 184 nfe = 0 nfi = 2950 nni = 2022 hu = 3.05e-01 -t = 7.00e+00 nst = 216 nfe = 0 nfi = 3477 nni = 2375 hu = 1.51e-01 +t = 7.00e+00 nst = 186 nfe = 0 nfi = 2975 nni = 2037 hu = 4.87e-01 c values at t = 7: @@ -335,34 +335,34 @@ Species 3 1.16363 1.16614 1.17231 1.1798 1.18601 1.18854 Species 4 -35656.3 35903.1 36424.2 37033.8 37564.6 37822.3 -35578.4 35804.9 36281.3 36845.5 37330.9 37564.6 -35393.9 35575.9 35974.4 36441.4 36845.5 37033.8 -35167.5 35307.4 35610.6 35974.4 36281.3 36424.2 -34984.3 35080.2 35307.4 35575.9 35804.9 35903.1 -34907.5 34984.3 35167.5 35393.9 35578.4 35656.3 +35655.3 35903.6 36423.2 37034.1 37564.4 37822.3 +35579.3 35804.3 36281.9 36844.9 37331.5 37564.4 +35393.1 35577 35973.5 36442.3 36844.9 37034.1 +35168.4 35306.6 35611.5 35973.5 36281.9 36423.2 +34983.3 35081.1 35306.6 35577 35804.3 35903.6 +34907.9 34983.3 35168.4 35393.1 35579.3 35655.3 Species 5 -35656.3 35903.1 36424.2 37033.8 37564.6 37822.3 -35578.4 35804.9 36281.3 36845.5 37330.9 37564.6 -35393.9 35575.9 35974.4 36441.4 36845.5 37033.8 -35167.5 35307.4 35610.6 35974.4 36281.3 36424.2 -34984.3 35080.2 35307.4 35575.9 35804.9 35903.1 -34907.5 34984.3 35167.5 35393.9 35578.4 35656.3 +35655.3 35903.6 36423.2 37034.1 37564.4 37822.3 +35579.3 35804.3 36281.9 36844.9 37331.5 37564.4 +35393.1 35577 35973.5 36442.3 36844.9 37034.1 +35168.4 35306.6 35611.5 35973.5 36281.9 36423.2 +34983.3 35081.1 35306.6 35577 35804.3 35903.6 +34907.9 34983.3 35168.4 35393.1 35579.3 35655.3 Species 6 -35656.3 35903.1 36424.2 37033.8 37564.6 37822.3 -35578.4 35804.9 36281.3 36845.5 37330.9 37564.6 -35393.9 35575.9 35974.4 36441.4 36845.5 37033.8 -35167.5 35307.4 35610.6 35974.4 36281.3 36424.2 -34984.3 35080.2 35307.4 35575.9 35804.9 35903.1 -34907.5 34984.3 35167.5 35393.9 35578.4 35656.3 +35655.3 35903.6 36423.2 37034.1 37564.4 37822.3 +35579.3 35804.3 36281.9 36844.9 37331.5 37564.4 +35393.1 35577 35973.5 36442.3 36844.9 37034.1 +35168.4 35306.6 35611.5 35973.5 36281.9 36423.2 +34983.3 35081.1 35306.6 35577 35804.3 35903.6 +34907.9 34983.3 35168.4 35393.1 35579.3 35655.3 -t = 8.00e+00 nst = 232 nfe = 0 nfi = 3780 nni = 2567 hu = 1.06e-01 +t = 8.00e+00 nst = 188 nfe = 0 nfi = 3003 nni = 2055 hu = 7.64e-01 -t = 9.00e+00 nst = 249 nfe = 0 nfi = 4075 nni = 2742 hu = 8.61e-02 +t = 9.00e+00 nst = 189 nfe = 0 nfi = 3015 nni = 2062 hu = 7.64e-01 -t = 1.00e+01 nst = 266 nfe = 0 nfi = 4394 nni = 2941 hu = 8.37e-02 +t = 1.00e+01 nst = 190 nfe = 0 nfi = 3030 nni = 2072 hu = 1.57e+00 c values at t = 10: @@ -391,27 +391,27 @@ Species 3 1.16347 1.16598 1.17215 1.17964 1.18585 1.18838 Species 4 -35650.6 35898.8 36418.4 37029.2 37559.5 37817.3 +35650.6 35898.8 36418.3 37029.2 37559.5 37817.3 35574.5 35799.5 36277.1 36840 37326.6 37559.5 -35388.4 35572.3 35968.8 36437.5 36840 37029.2 -35163.7 35302 35606.7 35968.8 36277.1 36418.4 -34978.6 35076.5 35302 35572.3 35799.5 35898.8 +35388.4 35572.3 35968.7 36437.4 36840 37029.2 +35163.7 35301.9 35606.7 35968.7 36277.1 36418.3 +34978.6 35076.5 35301.9 35572.3 35799.5 35898.8 34903.3 34978.6 35163.7 35388.4 35574.5 35650.6 Species 5 -35650.6 35898.8 36418.4 37029.2 37559.5 37817.3 +35650.6 35898.8 36418.3 37029.2 37559.5 37817.3 35574.5 35799.5 36277.1 36840 37326.6 37559.5 -35388.4 35572.3 35968.8 36437.5 36840 37029.2 -35163.7 35302 35606.7 35968.8 36277.1 36418.4 -34978.6 35076.5 35302 35572.3 35799.5 35898.8 +35388.4 35572.3 35968.7 36437.4 36840 37029.2 +35163.7 35301.9 35606.7 35968.7 36277.1 36418.3 +34978.6 35076.5 35301.9 35572.3 35799.5 35898.8 34903.3 34978.6 35163.7 35388.4 35574.5 35650.6 Species 6 -35650.6 35898.8 36418.4 37029.2 37559.5 37817.3 +35650.6 35898.8 36418.3 37029.2 37559.5 37817.3 35574.5 35799.5 36277.1 36840 37326.6 37559.5 -35388.4 35572.3 35968.8 36437.5 36840 37029.2 -35163.7 35302 35606.7 35968.8 36277.1 36418.4 -34978.6 35076.5 35302 35572.3 35799.5 35898.8 +35388.4 35572.3 35968.7 36437.4 36840 37029.2 +35163.7 35301.9 35606.7 35968.7 36277.1 36418.3 +34978.6 35076.5 35301.9 35572.3 35799.5 35898.8 34903.3 34978.6 35163.7 35388.4 35574.5 35650.6 @@ -419,23 +419,23 @@ Species 6 Final statistics for this run: ARKStep real workspace length = 3557 - ARKStep integer workspace length = 131 + ARKStep integer workspace length = 131 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 266 + Number of steps = 190 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 4394 - Number of f-s (SPGMR) = 8980 - Number of f-s (TOTAL) = 8980 - Number of setups = 121 - Number of nonlinear iterations = 2941 - Number of linear iterations = 8980 - Number of preconditioner evaluations = 121 - Number of preconditioner solves = 11819 - Number of error test failures = 23 - Number of nonlinear conv. failures = 17 - Number of linear convergence failures = 509 - Average Krylov subspace dimension = 3.053 + Number of f-s (implicit) = 3030 + Number of f-s (SPGMR) = 6097 + Number of f-s (TOTAL) = 6097 + Number of setups = 38 + Number of nonlinear iterations = 2072 + Number of linear iterations = 6097 + Number of preconditioner evaluations = 38 + Number of preconditioner solves = 8080 + Number of error test failures = 1 + Number of nonlinear conv. failures = 0 + Number of linear convergence failures = 182 + Average Krylov subspace dimension = 2.943 ---------------------------------------------------------------------------- @@ -459,52 +459,52 @@ t = 1.00e-04 nst = 106 nfe = 0 nfi = 1688 nni = 1155 hu = 1.70e-05 t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.51e-03 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.46e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.43e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2024 nni = 1386 hu = 1.28e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.25e-02 -t = 1.00e+00 nst = 154 nfe = 0 nfi = 2491 nni = 1718 hu = 7.60e-02 +t = 1.00e+00 nst = 153 nfe = 0 nfi = 2474 nni = 1706 hu = 6.52e-02 -t = 2.00e+00 nst = 169 nfe = 0 nfi = 2746 nni = 1896 hu = 8.04e-02 +t = 2.00e+00 nst = 164 nfe = 0 nfi = 2647 nni = 1824 hu = 1.58e-01 -t = 3.00e+00 nst = 181 nfe = 0 nfi = 2950 nni = 2036 hu = 1.01e-01 +t = 3.00e+00 nst = 170 nfe = 0 nfi = 2737 nni = 1884 hu = 1.58e-01 -t = 4.00e+00 nst = 189 nfe = 0 nfi = 3073 nni = 2119 hu = 1.33e-01 +t = 4.00e+00 nst = 176 nfe = 0 nfi = 2843 nni = 1955 hu = 1.85e-01 -t = 5.00e+00 nst = 199 nfe = 0 nfi = 3242 nni = 2227 hu = 9.38e-02 +t = 5.00e+00 nst = 181 nfe = 0 nfi = 2911 nni = 1998 hu = 2.46e-01 -t = 6.00e+00 nst = 211 nfe = 0 nfi = 3442 nni = 2352 hu = 1.13e-01 +t = 6.00e+00 nst = 184 nfe = 0 nfi = 2950 nni = 2022 hu = 3.05e-01 -t = 7.00e+00 nst = 220 nfe = 0 nfi = 3612 nni = 2457 hu = 1.07e-01 +t = 7.00e+00 nst = 186 nfe = 0 nfi = 2975 nni = 2037 hu = 4.86e-01 -t = 8.00e+00 nst = 229 nfe = 0 nfi = 3747 nni = 2537 hu = 1.33e-01 +t = 8.00e+00 nst = 188 nfe = 0 nfi = 3003 nni = 2055 hu = 7.64e-01 -t = 9.00e+00 nst = 239 nfe = 0 nfi = 3897 nni = 2622 hu = 8.98e-02 +t = 9.00e+00 nst = 189 nfe = 0 nfi = 3015 nni = 2062 hu = 7.64e-01 -t = 1.00e+01 nst = 251 nfe = 0 nfi = 4101 nni = 2746 hu = 7.09e-02 +t = 1.00e+01 nst = 190 nfe = 0 nfi = 3030 nni = 2072 hu = 1.57e+00 Final statistics for this run: ARKStep real workspace length = 3557 - ARKStep integer workspace length = 136 + ARKStep integer workspace length = 136 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 251 + Number of steps = 190 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 4101 - Number of f-s (SPGMR) = 8880 - Number of f-s (TOTAL) = 8880 - Number of setups = 91 - Number of nonlinear iterations = 2746 - Number of linear iterations = 8880 - Number of preconditioner evaluations = 91 - Number of preconditioner solves = 11537 - Number of error test failures = 18 - Number of nonlinear conv. failures = 13 - Number of linear convergence failures = 597 - Average Krylov subspace dimension = 3.234 + Number of f-s (implicit) = 3030 + Number of f-s (SPGMR) = 6096 + Number of f-s (TOTAL) = 6096 + Number of setups = 38 + Number of nonlinear iterations = 2072 + Number of linear iterations = 6096 + Number of preconditioner evaluations = 38 + Number of preconditioner solves = 8079 + Number of error test failures = 1 + Number of nonlinear conv. failures = 0 + Number of linear convergence failures = 182 + Average Krylov subspace dimension = 2.942 ---------------------------------------------------------------------------- @@ -526,54 +526,54 @@ t = 1.00e-05 nst = 27 nfe = 0 nfi = 407 nni = 269 hu = 4.79e-07 t = 1.00e-04 nst = 106 nfe = 0 nfi = 1688 nni = 1155 hu = 1.70e-05 -t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.50e-03 +t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.49e-03 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.42e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1799 nni = 1231 hu = 3.79e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.23e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2028 nni = 1390 hu = 1.32e-02 -t = 1.00e+00 nst = 166 nfe = 0 nfi = 2714 nni = 1875 hu = 2.40e-02 +t = 1.00e+00 nst = 164 nfe = 0 nfi = 2669 nni = 1844 hu = 4.98e-02 -t = 2.00e+00 nst = 214 nfe = 0 nfi = 3550 nni = 2460 hu = 2.34e-02 +t = 2.00e+00 nst = 213 nfe = 0 nfi = 3526 nni = 2444 hu = 2.37e-02 -t = 3.00e+00 nst = 249 nfe = 0 nfi = 4111 nni = 2846 hu = 3.57e-02 +t = 3.00e+00 nst = 248 nfe = 0 nfi = 4087 nni = 2830 hu = 3.53e-02 -t = 4.00e+00 nst = 272 nfe = 0 nfi = 4472 nni = 3092 hu = 5.08e-02 +t = 4.00e+00 nst = 272 nfe = 0 nfi = 4465 nni = 3088 hu = 3.22e-02 -t = 5.00e+00 nst = 297 nfe = 0 nfi = 4851 nni = 3346 hu = 5.14e-02 +t = 5.00e+00 nst = 299 nfe = 0 nfi = 4876 nni = 3363 hu = 3.94e-02 -t = 6.00e+00 nst = 315 nfe = 0 nfi = 5117 nni = 3522 hu = 6.88e-02 +t = 6.00e+00 nst = 316 nfe = 0 nfi = 5130 nni = 3532 hu = 6.86e-02 -t = 7.00e+00 nst = 328 nfe = 0 nfi = 5302 nni = 3642 hu = 8.22e-02 +t = 7.00e+00 nst = 329 nfe = 0 nfi = 5315 nni = 3652 hu = 8.22e-02 -t = 8.00e+00 nst = 338 nfe = 0 nfi = 5441 nni = 3731 hu = 8.52e-02 +t = 8.00e+00 nst = 339 nfe = 0 nfi = 5455 nni = 3742 hu = 1.18e-01 -t = 9.00e+00 nst = 349 nfe = 0 nfi = 5592 nni = 3827 hu = 1.11e-01 +t = 9.00e+00 nst = 345 nfe = 0 nfi = 5536 nni = 3793 hu = 2.11e-01 -t = 1.00e+01 nst = 359 nfe = 0 nfi = 5722 nni = 3907 hu = 1.35e-01 +t = 1.00e+01 nst = 349 nfe = 0 nfi = 5589 nni = 3826 hu = 2.80e-01 Final statistics for this run: ARKStep real workspace length = 3557 - ARKStep integer workspace length = 141 + ARKStep integer workspace length = 141 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 359 + Number of steps = 349 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 5722 - Number of f-s (SPGMR) = 12904 - Number of f-s (TOTAL) = 12904 - Number of setups = 253 - Number of nonlinear iterations = 3907 - Number of linear iterations = 12904 - Number of preconditioner evaluations = 253 - Number of preconditioner solves = 16594 + Number of f-s (implicit) = 5589 + Number of f-s (SPGMR) = 12378 + Number of f-s (TOTAL) = 12378 + Number of setups = 244 + Number of nonlinear iterations = 3826 + Number of linear iterations = 12378 + Number of preconditioner evaluations = 244 + Number of preconditioner solves = 15957 Number of error test failures = 0 - Number of nonlinear conv. failures = 117 - Number of linear convergence failures = 1072 - Average Krylov subspace dimension = 3.303 + Number of nonlinear conv. failures = 113 + Number of linear convergence failures = 977 + Average Krylov subspace dimension = 3.235 ---------------------------------------------------------------------------- @@ -595,54 +595,54 @@ t = 1.00e-05 nst = 27 nfe = 0 nfi = 407 nni = 269 hu = 4.79e-07 t = 1.00e-04 nst = 106 nfe = 0 nfi = 1688 nni = 1155 hu = 1.70e-05 -t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.50e-03 +t = 1.00e-03 nst = 110 nfe = 0 nfi = 1750 nni = 1197 hu = 1.49e-03 -t = 1.00e-02 nst = 113 nfe = 0 nfi = 1797 nni = 1229 hu = 3.42e-03 +t = 1.00e-02 nst = 113 nfe = 0 nfi = 1799 nni = 1231 hu = 3.79e-03 -t = 1.00e-01 nst = 127 nfe = 0 nfi = 2023 nni = 1385 hu = 1.23e-02 +t = 1.00e-01 nst = 127 nfe = 0 nfi = 2028 nni = 1390 hu = 1.32e-02 -t = 1.00e+00 nst = 166 nfe = 0 nfi = 2714 nni = 1875 hu = 2.40e-02 +t = 1.00e+00 nst = 164 nfe = 0 nfi = 2669 nni = 1844 hu = 4.98e-02 -t = 2.00e+00 nst = 214 nfe = 0 nfi = 3556 nni = 2465 hu = 2.34e-02 +t = 2.00e+00 nst = 213 nfe = 0 nfi = 3526 nni = 2444 hu = 2.37e-02 -t = 3.00e+00 nst = 249 nfe = 0 nfi = 4117 nni = 2851 hu = 3.57e-02 +t = 3.00e+00 nst = 248 nfe = 0 nfi = 4087 nni = 2830 hu = 3.53e-02 -t = 4.00e+00 nst = 272 nfe = 0 nfi = 4478 nni = 3097 hu = 5.08e-02 +t = 4.00e+00 nst = 272 nfe = 0 nfi = 4465 nni = 3088 hu = 3.22e-02 -t = 5.00e+00 nst = 297 nfe = 0 nfi = 4857 nni = 3351 hu = 5.14e-02 +t = 5.00e+00 nst = 299 nfe = 0 nfi = 4876 nni = 3363 hu = 3.94e-02 -t = 6.00e+00 nst = 315 nfe = 0 nfi = 5123 nni = 3527 hu = 6.89e-02 +t = 6.00e+00 nst = 316 nfe = 0 nfi = 5130 nni = 3532 hu = 6.86e-02 -t = 7.00e+00 nst = 328 nfe = 0 nfi = 5308 nni = 3647 hu = 9.31e-02 +t = 7.00e+00 nst = 329 nfe = 0 nfi = 5315 nni = 3652 hu = 8.22e-02 -t = 8.00e+00 nst = 339 nfe = 0 nfi = 5464 nni = 3748 hu = 9.70e-02 +t = 8.00e+00 nst = 339 nfe = 0 nfi = 5455 nni = 3742 hu = 1.19e-01 -t = 9.00e+00 nst = 349 nfe = 0 nfi = 5598 nni = 3832 hu = 1.12e-01 +t = 9.00e+00 nst = 345 nfe = 0 nfi = 5536 nni = 3793 hu = 2.11e-01 -t = 1.00e+01 nst = 359 nfe = 0 nfi = 5728 nni = 3912 hu = 1.31e-01 +t = 1.00e+01 nst = 349 nfe = 0 nfi = 5589 nni = 3826 hu = 2.80e-01 Final statistics for this run: ARKStep real workspace length = 3557 - ARKStep integer workspace length = 146 + ARKStep integer workspace length = 146 ARKLS real workspace length = 2647 ARKLS integer workspace length = 42 - Number of steps = 359 + Number of steps = 349 Number of f-s (explicit) = 0 - Number of f-s (implicit) = 5728 - Number of f-s (SPGMR) = 12934 - Number of f-s (TOTAL) = 12934 - Number of setups = 254 - Number of nonlinear iterations = 3912 - Number of linear iterations = 12934 - Number of preconditioner evaluations = 254 - Number of preconditioner solves = 16627 + Number of f-s (implicit) = 5589 + Number of f-s (SPGMR) = 12378 + Number of f-s (TOTAL) = 12378 + Number of setups = 244 + Number of nonlinear iterations = 3826 + Number of linear iterations = 12378 + Number of preconditioner evaluations = 244 + Number of preconditioner solves = 15957 Number of error test failures = 0 - Number of nonlinear conv. failures = 118 - Number of linear convergence failures = 1076 - Average Krylov subspace dimension = 3.306 + Number of nonlinear conv. failures = 113 + Number of linear convergence failures = 976 + Average Krylov subspace dimension = 3.235 ---------------------------------------------------------------------------- diff --git a/examples/arkode/C_serial/ark_brusselator1D.out b/examples/arkode/C_serial/ark_brusselator1D.out index abe61d1f47..fed3032856 100644 --- a/examples/arkode/C_serial/ark_brusselator1D.out +++ b/examples/arkode/C_serial/ark_brusselator1D.out @@ -8,102 +8,102 @@ 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.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 + 0.900000 0.775302 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.500000 0.878514 2.957207 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.000000 0.960034 2.757430 1.999981 + 2.100000 0.971577 2.719961 1.999981 + 2.200000 0.980476 2.684622 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 + 2.400000 0.988853 2.622559 1.999981 + 2.500000 0.987816 2.596818 1.999981 + 2.600000 0.983141 2.575127 1.999981 + 2.700000 0.974859 2.557765 1.999981 + 2.800000 0.963115 2.544902 1.999981 + 2.900000 0.948155 2.536610 1.999981 + 3.000000 0.930300 2.532867 1.999982 + 3.100000 0.909931 2.533566 1.999982 + 3.200000 0.887464 2.538528 1.999983 + 3.300000 0.863335 2.547514 1.999983 + 3.400000 0.837978 2.560240 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.700000 0.758658 2.617586 1.999985 + 3.800000 0.732363 2.641921 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.100000 0.658011 2.725670 1.999987 4.200000 0.635435 2.756075 1.999987 - 4.300000 0.614205 2.787228 1.999988 + 4.300000 0.614204 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.600000 0.559254 2.882710 1.999989 4.700000 0.543909 2.914529 1.999989 4.800000 0.530011 2.946071 1.999990 - 4.900000 0.517506 2.977209 1.999990 + 4.900000 0.517506 2.977210 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.100000 0.496393 3.037889 1.999990 + 5.200000 0.487625 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 + 5.500000 0.467445 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.900000 0.451799 3.252035 1.999991 6.000000 0.449425 3.275283 1.999991 - 6.100000 0.447546 3.297744 1.999991 + 6.100000 0.447546 3.297745 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.500000 0.444079 3.379890 1.999991 + 6.300000 0.445085 3.340341 1.999991 + 6.400000 0.444419 3.360492 1.999991 + 6.500000 0.444079 3.379891 1.999991 6.600000 0.444034 3.398547 1.999991 6.700000 0.444257 3.416470 1.999991 6.800000 0.444722 3.433669 1.999991 6.900000 0.445409 3.450154 1.999991 - 7.000000 0.446297 3.465934 1.999991 + 7.000000 0.446297 3.465935 1.999991 7.100000 0.447370 3.481018 1.999991 - 7.200000 0.448614 3.495414 1.999991 + 7.200000 0.448614 3.495415 1.999991 7.300000 0.450016 3.509131 1.999991 7.400000 0.451564 3.522176 1.999991 7.500000 0.453249 3.534557 1.999991 7.600000 0.455064 3.546280 1.999991 7.700000 0.457000 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 + 7.900000 0.461215 3.577572 1.999991 + 8.000000 0.463486 3.586729 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.400000 0.473582 3.617116 1.999991 - 8.500000 0.476352 3.623171 1.999991 + 8.500000 0.476352 3.623172 1.999991 8.600000 0.479220 3.628616 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 - 9.600000 0.513632 3.649521 1.999990 - 9.700000 0.517722 3.648209 1.999990 + 9.000000 0.491684 3.644312 1.999990 + 9.100000 0.495058 3.646716 1.999990 + 9.200000 0.498539 3.648510 1.999990 + 9.300000 0.502133 3.649691 1.999990 + 9.400000 0.505843 3.650257 1.999990 + 9.500000 0.509674 3.650202 1.999990 + 9.600000 0.513632 3.649522 1.999990 + 9.700000 0.517722 3.648210 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 diff --git a/examples/arkode/C_serial/ark_brusselator1D_FEM_slu.out b/examples/arkode/C_serial/ark_brusselator1D_FEM_slu.out index 28851a7ed1..863032a717 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_FEM_slu.out +++ b/examples/arkode/C_serial/ark_brusselator1D_FEM_slu.out @@ -13,68 +13,68 @@ 0.300000 0.648532 3.334867 1.999989 0.400000 0.654362 3.323350 1.999989 0.500000 0.660542 3.311172 1.999988 - 0.600000 0.667093 3.298310 1.999988 - 0.700000 0.674031 3.284739 1.999988 + 0.600000 0.667093 3.298309 1.999988 + 0.700000 0.674031 3.284739 1.999989 0.800000 0.681370 3.270442 1.999988 0.900000 0.689121 3.255404 1.999988 - 1.000000 0.697285 3.239620 1.999988 - 1.100000 0.705854 3.223093 1.999987 + 1.000000 0.697284 3.239620 1.999988 + 1.100000 0.705853 3.223093 1.999987 1.200000 0.714805 3.205842 1.999987 - 1.300000 0.724099 3.187902 1.999987 - 1.400000 0.733671 3.169332 1.999987 - 1.500000 0.743429 3.150211 1.999987 - 1.600000 0.753249 3.130653 1.999987 - 1.700000 0.762974 3.110800 1.999986 - 1.800000 0.772412 3.090827 1.999986 - 1.900000 0.781337 3.070944 1.999986 - 2.000000 0.789501 3.051388 1.999986 - 2.100000 0.796639 3.032420 1.999986 - 2.200000 0.802490 3.014317 1.999986 - 2.300000 0.806810 2.997358 1.999986 - 2.400000 0.809386 2.981818 1.999986 - 2.500000 0.810060 2.967949 1.999986 - 2.600000 0.808729 2.955977 1.999986 - 2.700000 0.805360 2.946085 1.999986 - 2.800000 0.799989 2.938410 1.999986 - 2.900000 0.792711 2.933039 1.999986 - 3.000000 0.783680 2.930010 1.999986 - 3.100000 0.773095 2.929307 1.999986 - 3.200000 0.761187 2.930873 1.999986 - 3.300000 0.748207 2.934612 1.999987 - 3.400000 0.734416 2.940393 1.999987 - 3.500000 0.720073 2.948062 1.999987 + 1.300000 0.724098 3.187903 1.999987 + 1.400000 0.733670 3.169332 1.999987 + 1.500000 0.743428 3.150212 1.999987 + 1.600000 0.753248 3.130655 1.999987 + 1.700000 0.762974 3.110801 1.999986 + 1.800000 0.772411 3.090829 1.999986 + 1.900000 0.781336 3.070946 1.999986 + 2.000000 0.789499 3.051390 1.999986 + 2.100000 0.796638 3.032422 1.999986 + 2.200000 0.802489 3.014319 1.999986 + 2.300000 0.806808 2.997360 1.999986 + 2.400000 0.809386 2.981819 1.999986 + 2.500000 0.810059 2.967951 1.999986 + 2.600000 0.808728 2.955979 1.999986 + 2.700000 0.805361 2.946086 1.999986 + 2.800000 0.799988 2.938411 1.999986 + 2.900000 0.792711 2.933041 1.999986 + 3.000000 0.783681 2.930010 1.999986 + 3.100000 0.773096 2.929307 1.999986 + 3.200000 0.761187 2.930874 1.999986 + 3.300000 0.748207 2.934613 1.999987 + 3.400000 0.734416 2.940394 1.999987 + 3.500000 0.720074 2.948062 1.999987 3.600000 0.705429 2.957444 1.999987 - 3.700000 0.690714 2.968354 1.999988 + 3.700000 0.690715 2.968354 1.999988 3.800000 0.676141 2.980600 1.999988 - 3.900000 0.661891 2.993989 1.999988 - 4.000000 0.648122 3.008331 1.999989 - 4.100000 0.634961 3.023445 1.999989 + 3.900000 0.661892 2.993989 1.999988 + 4.000000 0.648123 3.008331 1.999989 + 4.100000 0.634962 3.023445 1.999989 4.200000 0.622506 3.039157 1.999989 4.300000 0.610828 3.055308 1.999989 - 4.400000 0.599972 3.071752 1.999989 + 4.400000 0.599972 3.071751 1.999989 4.500000 0.589962 3.088356 1.999990 4.600000 0.580801 3.105007 1.999990 - 4.700000 0.572477 3.121603 1.999990 - 4.800000 0.564964 3.138059 1.999990 + 4.700000 0.572477 3.121602 1.999990 + 4.800000 0.564964 3.138058 1.999990 4.900000 0.558227 3.154303 1.999990 - 5.000000 0.552224 3.170278 1.999990 + 5.000000 0.552224 3.170277 1.999990 5.100000 0.546907 3.185935 1.999991 - 5.200000 0.542228 3.201239 1.999991 - 5.300000 0.538137 3.216162 1.999991 - 5.400000 0.534585 3.230683 1.999991 + 5.200000 0.542229 3.201239 1.999991 + 5.300000 0.538138 3.216162 1.999991 + 5.400000 0.534586 3.230682 1.999991 5.500000 0.531525 3.244788 1.999991 - 5.600000 0.528910 3.258469 1.999991 - 5.700000 0.526699 3.271720 1.999991 + 5.600000 0.528910 3.258468 1.999991 + 5.700000 0.526699 3.271719 1.999991 5.800000 0.524852 3.284539 1.999991 5.900000 0.523334 3.296928 1.999991 - 6.000000 0.522111 3.308889 1.999991 - 6.100000 0.521154 3.320427 1.999991 + 6.000000 0.522112 3.308889 1.999991 + 6.100000 0.521154 3.320426 1.999991 6.200000 0.520436 3.331545 1.999991 - 6.300000 0.519932 3.342251 1.999991 + 6.300000 0.519932 3.342250 1.999991 6.400000 0.519621 3.352549 1.999991 - 6.500000 0.519484 3.362447 1.999991 - 6.600000 0.519503 3.371950 1.999991 - 6.700000 0.519664 3.381065 1.999991 + 6.500000 0.519484 3.362446 1.999991 + 6.600000 0.519503 3.371949 1.999991 + 6.700000 0.519664 3.381064 1.999991 6.800000 0.519953 3.389797 1.999991 6.900000 0.520358 3.398153 1.999991 7.000000 0.520869 3.406139 1.999991 @@ -87,37 +87,37 @@ 7.700000 0.526775 3.452091 1.999991 7.800000 0.527887 3.457288 1.999991 7.900000 0.529055 3.462154 1.999991 - 8.000000 0.530276 3.466693 1.999991 - 8.100000 0.531549 3.470907 1.999991 + 8.000000 0.530276 3.466692 1.999991 + 8.100000 0.531549 3.470906 1.999991 8.200000 0.532872 3.474798 1.999991 8.300000 0.534244 3.478370 1.999991 8.400000 0.535665 3.481625 1.999991 - 8.500000 0.537133 3.484563 1.999991 + 8.500000 0.537133 3.484564 1.999991 8.600000 0.538649 3.487188 1.999991 8.700000 0.540213 3.489499 1.999991 - 8.800000 0.541825 3.491497 1.999991 - 8.900000 0.543486 3.493184 1.999991 + 8.800000 0.541825 3.491498 1.999991 + 8.900000 0.543486 3.493185 1.999991 9.000000 0.545196 3.494560 1.999991 9.100000 0.546957 3.495624 1.999991 9.200000 0.548771 3.496375 1.999991 9.300000 0.550638 3.496814 1.999990 - 9.400000 0.552562 3.496938 1.999990 + 9.400000 0.552561 3.496938 1.999990 9.500000 0.554543 3.496746 1.999990 - 9.600000 0.556585 3.496235 1.999990 + 9.600000 0.556585 3.496236 1.999990 9.700000 0.558691 3.495404 1.999990 - 9.800000 0.560864 3.494247 1.999990 + 9.800000 0.560864 3.494248 1.999990 9.900000 0.563108 3.492763 1.999990 10.000000 0.565426 3.490945 1.999990 ---------------------------------------------- Final Solver Statistics: Internal solver steps = 95 (attempted = 95) - Total RHS evals: Fe = 0, Fi = 1605 + Total RHS evals: Fe = 0, Fi = 1596 Total mass matrix setups = 1 - Total mass matrix solves = 288 - Total mass times evals = 1697 + Total mass matrix solves = 193 + Total mass times evals = 1688 Total linear solver setups = 31 Total number of Jacobian evaluations = 11 - Total number of Newton iterations = 1127 + Total number of Newton iterations = 1118 Total number of nonlinear solver convergence failures = 10 Total number of error test failures = 0 diff --git a/examples/arkode/C_serial/ark_brusselator1D_klu.out b/examples/arkode/C_serial/ark_brusselator1D_klu.out index 7e6bc33063..453cd212f8 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_klu.out +++ b/examples/arkode/C_serial/ark_brusselator1D_klu.out @@ -8,14 +8,14 @@ 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 + 2.000000 0.960034 2.757430 1.999981 + 3.000000 0.930300 2.532867 1.999982 4.000000 0.681809 2.696300 1.999986 5.000000 0.506326 3.007843 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 + 7.000000 0.446297 3.465935 1.999991 + 8.000000 0.463486 3.586729 1.999991 + 9.000000 0.491684 3.644312 1.999990 10.000000 0.530857 3.640396 1.999990 ---------------------------------------------- diff --git a/examples/arkode/C_serial/ark_brusselator_1D_mri.out b/examples/arkode/C_serial/ark_brusselator_1D_mri.out index 698cd076e1..b1968f6e9d 100644 --- a/examples/arkode/C_serial/ark_brusselator_1D_mri.out +++ b/examples/arkode/C_serial/ark_brusselator_1D_mri.out @@ -16,18 +16,18 @@ 0.700000 1.351462 3.164033 3.499995 0.800000 1.423123 3.067751 3.499995 0.900000 1.497639 2.964524 3.499995 - 1.000000 1.568626 2.859012 3.499995 + 1.000000 1.568626 2.859013 3.499995 1.100000 1.628547 2.756573 3.499994 1.200000 1.671110 2.661914 3.499994 - 1.300000 1.693135 2.578240 3.499994 + 1.300000 1.693135 2.578241 3.499994 1.400000 1.694728 2.507261 3.499994 - 1.500000 1.678186 2.449677 3.499994 + 1.500000 1.678185 2.449678 3.499994 1.600000 1.646706 2.405676 3.499994 1.700000 1.603527 2.375228 3.499994 1.800000 1.551521 2.358213 3.499995 1.900000 1.493097 2.354426 3.499995 2.000000 1.430225 2.363536 3.499995 - 2.100000 1.364513 2.385031 3.499995 + 2.100000 1.364513 2.385032 3.499995 2.200000 1.297276 2.418172 3.499995 2.300000 1.229586 2.461974 3.499996 2.400000 1.162306 2.515228 3.499996 @@ -37,14 +37,14 @@ 2.800000 0.908402 2.794764 3.499997 2.900000 0.850317 2.874565 3.499997 3.000000 0.794740 2.956151 3.499997 - 3.100000 0.741797 3.038762 3.499998 + 3.100000 0.741798 3.038762 3.499998 3.200000 0.691633 3.121815 3.499998 3.300000 0.644408 3.204867 3.499998 3.400000 0.600305 3.287588 3.499998 3.500000 0.559517 3.369729 3.499998 3.600000 0.522228 3.451100 3.499998 3.700000 0.488593 3.531554 3.499998 - 3.800000 0.458712 3.610979 3.499998 + 3.800000 0.458713 3.610979 3.499998 3.900000 0.432611 3.689292 3.499999 4.000000 0.410222 3.766440 3.499999 4.100000 0.391383 3.842396 3.499999 @@ -60,7 +60,7 @@ 5.100000 0.331684 4.544600 3.499999 5.200000 0.332605 4.610297 3.499999 5.300000 0.334109 4.675326 3.499999 - 5.400000 0.336121 4.739695 3.499999 + 5.400000 0.336121 4.739694 3.499999 5.500000 0.338588 4.803402 3.499999 5.600000 0.341472 4.866439 3.499999 5.700000 0.344747 4.928787 3.499999 @@ -86,27 +86,27 @@ 7.700000 0.571996 5.870367 3.499998 7.800000 0.615233 5.869891 3.499998 7.900000 0.674190 5.850430 3.499998 - 8.000000 0.760486 5.800612 3.499997 - 8.100000 0.900806 5.696886 3.499997 - 8.200000 1.168701 5.483555 3.499996 - 8.300000 1.788983 5.030862 3.499994 - 8.400000 2.907583 4.325491 3.499991 - 8.500000 3.613526 3.702356 3.499989 - 8.600000 3.894341 3.130135 3.499987 - 8.700000 4.022608 2.516756 3.499987 - 8.800000 4.111043 1.781192 3.499986 - 8.900000 4.178068 1.047217 3.499985 - 9.000000 3.999350 0.887627 3.499986 - 9.100000 3.670986 0.942791 3.499987 - 9.200000 3.345964 1.020200 3.499988 - 9.300000 3.043896 1.105109 3.499990 - 9.400000 2.764752 1.196143 3.499990 - 9.500000 2.506590 1.293161 3.499991 - 9.600000 2.267456 1.396103 3.499992 - 9.700000 2.045656 1.504786 3.499993 - 9.800000 1.839810 1.618829 3.499994 - 9.900000 1.648872 1.737602 3.499994 - 10.000000 1.472127 1.860205 3.499995 + 8.000000 0.760485 5.800612 3.499997 + 8.100000 0.900804 5.696888 3.499997 + 8.200000 1.168696 5.483559 3.499996 + 8.300000 1.788966 5.030873 3.499994 + 8.400000 2.907564 4.325501 3.499991 + 8.500000 3.613521 3.702362 3.499989 + 8.600000 3.894340 3.130139 3.499987 + 8.700000 4.022609 2.516760 3.499987 + 8.800000 4.111045 1.781195 3.499986 + 8.900000 4.178071 1.047218 3.499985 + 9.000000 3.999353 0.887627 3.499986 + 9.100000 3.670989 0.942790 3.499987 + 9.200000 3.345967 1.020198 3.499988 + 9.300000 3.043900 1.105107 3.499990 + 9.400000 2.764755 1.196140 3.499990 + 9.500000 2.506593 1.293158 3.499991 + 9.600000 2.267459 1.396100 3.499992 + 9.700000 2.045658 1.504783 3.499993 + 9.800000 1.839812 1.618826 3.499994 + 9.900000 1.648874 1.737600 3.499994 + 10.000000 1.472129 1.860203 3.499995 ---------------------------------------------- Final Solver Statistics: diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out index 4586fd2945..8ab099ceb4 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark_1_1.out @@ -45,4 +45,3 @@ Final Solver Statistics: Total Relaxation bound fails = 15 Total Relaxation NLS fails = 0 Total Relaxation NLS iters = 1025 - diff --git a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out index 156d049205..176dffd2b8 100644 --- a/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out +++ b/examples/arkode/C_serial/ark_dissipated_exp_entropy_1_1.out @@ -56,4 +56,3 @@ Final Solver Statistics: Total Relaxation bound fails = 0 Total Relaxation NLS fails = 0 Total Relaxation NLS iters = 1911 - diff --git a/examples/arkode/C_serial/ark_heat1D.out b/examples/arkode/C_serial/ark_heat1D.out index 2f33b506c3..4b1068888c 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 = 17826 + Total number of Jacobian-vector products = 17826 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.out b/examples/arkode/C_serial/ark_heat1D_adapt.out index 4eb02c8a18..8135e3df32 100644 --- a/examples/arkode/C_serial/ark_heat1D_adapt.out +++ b/examples/arkode/C_serial/ark_heat1D_adapt.out @@ -6,154 +6,135 @@ ---------------------------------------------------------------------------------------- 0 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 21 0 0 1 3.629021901461023e-12 7.505751048377368e-09 2.979166031180459e-12 21 5 5 - 2 7.505751048377368e-09 1.501150209675474e-07 6.164657920191316e-09 21 5 5 - 3 1.501150209675474e-07 3.002300419350948e-06 1.293969127944767e-07 21 5 10 - 4 3.002300419350948e-06 6.004600838701896e-05 2.593514282990854e-06 21 5 10 - 5 6.004600838701896e-05 2.853823712852094e-04 5.166758334560010e-05 21 5 20 - 6 2.853823712852094e-04 2.575255578901065e-04 2.798555766932917e-04 21 5 25 - 7 2.575255578901065e-04 4.094541218029253e-04 4.794249606742115e-04 21 5 25 - 8 4.094541218029253e-04 4.094541218029253e-04 7.863858593533243e-04 21 5 29 - 9 4.094541218029253e-04 6.522910582302937e-04 1.082809153607867e-03 21 5 29 - 10 6.522910582302937e-04 5.699097250687579e-04 1.606859000290955e-03 23 5 40 - 11 5.699097250687579e-04 1.007836408495680e-03 2.005669608336064e-03 23 5 35 - 12 1.007836408495680e-03 1.007836408495680e-03 2.683041089905320e-03 23 5 40 - 13 1.007836408495680e-03 8.453991987969423e-04 3.678394954727681e-03 25 5 40 - 14 8.453991987969423e-04 1.990429430223850e-03 4.265068071685453e-03 25 5 34 - 15 1.990429430223850e-03 1.990429430223850e-03 5.574933877447707e-03 25 5 41 - 16 1.990429430223850e-03 3.606540539819520e-03 6.798364735960519e-03 25 5 35 - 17 4.980839747684550e-04 4.980839747684550e-04 6.927003506629248e-03 27 15 180 - 18 4.980839747684550e-04 4.980839747684550e-04 7.441563625964739e-03 29 5 30 - 19 4.980839747684550e-04 1.668131272315291e-03 7.722574952892512e-03 29 5 29 - 20 1.668131272315291e-03 3.659992327983156e-03 8.637136102347247e-03 29 5 44 - 21 3.659992327983156e-03 7.226886812998415e-03 1.050785838365518e-02 29 5 65 - 22 2.276503454413033e-04 2.223970105833804e-04 1.033577924663066e-02 32 20 250 - 23 2.223970105833804e-04 4.397896042992326e-04 1.092271235598801e-02 34 5 24 - 24 4.397896042992326e-04 1.023105619938674e-03 1.113382898409555e-02 34 5 33 - 25 1.023105619938674e-03 1.023105619938674e-03 1.161589583401345e-02 34 5 36 - 26 1.023105619938674e-03 3.930141141574615e-03 1.208588377404162e-02 34 5 38 - 27 3.930141141574615e-03 3.871064201787735e-03 1.378515153788083e-02 34 5 84 - 28 3.871064201787735e-03 1.255329001281564e-02 1.530995222029954e-02 34 5 59 - 29 1.601537140384145e-03 1.457835824294224e-03 1.581392684966786e-02 36 15 234 - 30 1.457835824294224e-03 3.743501735515000e-03 1.633976217518591e-02 36 5 29 - 31 2.870420514795557e-03 2.465672685089582e-03 1.732506340515539e-02 38 10 143 - 32 5.515562262925350e-04 5.470070369949626e-04 1.714361637592621e-02 40 15 253 - 33 5.470070369949626e-04 9.932912795468831e-04 1.731823052548390e-02 40 5 43 - 34 9.932912795468831e-04 2.851877222558192e-03 1.763020341932926e-02 40 5 47 - 35 2.851877222558192e-03 8.592060762682407e-03 1.849017614042958e-02 40 5 96 - 36 1.753358828184278e-03 1.753358828184278e-03 1.899364054123662e-02 40 15 259 - 37 1.753358828184278e-03 8.066441335477586e-03 1.947884133485359e-02 40 5 60 - 38 6.367831766622205e-04 6.367831766622205e-04 1.897985914604649e-02 44 15 269 - 39 6.367831766622205e-04 1.262468320666752e-03 1.914535124132059e-02 44 5 47 - 40 1.262468320666752e-03 3.587735441717919e-03 1.946692075971101e-02 44 5 62 - 41 2.843421467160759e-03 2.408215671837289e-03 1.976846530535780e-02 46 10 199 - 42 2.408215671837289e-03 4.077980222533944e-03 2.031687522001488e-02 46 5 72 - 43 4.077980222533944e-03 1.071890797618786e-02 2.118660808690947e-02 46 5 88 - 44 1.071890797618786e-02 1.071890797618786e-02 2.316134512731487e-02 46 5 105 - 45 2.694639841378283e-03 2.650454280532623e-03 2.346008222533597e-02 48 10 208 - 46 5.834157269803085e-04 5.834157269803085e-04 2.328708620673918e-02 50 15 268 - 47 5.834157269803085e-04 1.193846932419712e-03 2.337621483760628e-02 50 5 55 - 48 1.193846932419712e-03 3.258366515093616e-03 2.355525946951272e-02 50 5 66 - 49 3.258366515093616e-03 6.418173913904015e-03 2.402308335632452e-02 50 5 104 - 50 3.844477373368192e-03 3.844477373368192e-03 2.453874392666302e-02 50 10 210 - 51 3.844477373368192e-03 1.778266602162782e-02 2.501810350379247e-02 50 5 91 - 52 4.165560835571891e-03 4.165560835571891e-03 2.549975323954108e-02 50 10 209 - 53 4.165560835571891e-03 4.165560835571891e-03 2.594523957554863e-02 50 5 105 - 54 4.165560835571891e-03 1.187099370779400e-02 2.635751897001287e-02 50 5 103 - 55 7.990286205672150e-03 7.990286205672150e-03 2.706496621836213e-02 50 10 210 - 56 7.990286205672150e-03 7.366258582155646e-03 2.767656709536814e-02 50 5 105 - 57 3.192957423660317e-03 2.690992361017143e-03 2.898705700684332e-02 54 10 210 - 58 2.690992361017143e-03 4.595411828908103e-03 2.916901398660043e-02 54 5 103 - 59 4.595411828908103e-03 1.148959244582437e-02 2.946060998170889e-02 54 5 105 - 60 3.392951963605576e-03 3.392951963605576e-03 2.934282134054850e-02 56 10 210 - 61 3.392951963605576e-03 1.266181052388950e-02 2.953044118771774e-02 56 5 75 - 62 1.266181052388950e-02 2.070977380726893e-02 3.014157400043279e-02 56 5 105 - 63 4.582873894130091e-03 4.582873894130091e-03 2.988631128376999e-02 58 10 210 - 64 4.582873894130091e-03 9.607054797980071e-03 2.957561272951538e-02 60 5 105 - 65 9.607054797980071e-03 1.949020745582244e-02 2.989673188100094e-02 60 5 105 - 66 1.054807485438376e-02 1.054807485438376e-02 3.019699587646915e-02 60 10 210 - 67 2.168783293816825e-03 2.168783293816825e-03 3.025284168346583e-02 60 10 210 - 68 2.168783293816825e-03 2.168783293816825e-03 3.030686555035694e-02 60 5 104 - 69 2.168783293816825e-03 9.519769922039302e-03 3.035913346641964e-02 60 5 79 - 70 9.519769922039302e-03 3.689745921797256e-02 3.056948236696047e-02 60 5 105 - 71 5.027376845883330e-03 5.027376845883330e-03 3.066924792565106e-02 60 10 210 - 72 5.027376845883330e-03 1.680323823916145e-02 3.076207689001887e-02 60 5 84 - 73 1.190695511366464e-02 1.190695511366464e-02 3.095765596831891e-02 60 10 210 - 74 8.824020991017463e-03 8.824020991017463e-03 3.108370439289872e-02 60 10 210 - 75 8.824020991017463e-03 7.492138529693538e-03 3.119630288799381e-02 60 5 105 - 76 7.492138529693538e-03 1.126027020832041e-02 3.128267383642943e-02 60 5 105 - 77 7.641572371714925e-03 7.641572371714925e-03 3.136324481005783e-02 60 10 210 - 78 7.641572371714925e-03 1.384651466179487e-02 3.143706333937704e-02 60 5 105 - 79 1.384651466179487e-02 1.168352852310369e-02 3.155622058156962e-02 60 5 105 - 80 7.186697995423493e-03 6.679717823882544e-03 3.161160219834706e-02 60 10 210 - 81 6.679717823882544e-03 6.679717823882544e-03 3.165979180134944e-02 60 5 105 - 82 6.679717823882544e-03 1.036597822978498e-02 3.170495968309999e-02 60 5 105 - 83 1.036597822978498e-02 2.078683878676566e-02 3.176988825989206e-02 60 5 105 - 84 9.416934538800317e-03 9.416934538800317e-03 3.182402943647551e-02 60 10 210 - 85 9.416934538800317e-03 2.931003455946657e-02 3.187416014076831e-02 60 5 105 - 86 2.931003455946657e-02 2.522099385522949e-02 3.200899311332644e-02 60 5 105 - 87 9.855600599572635e-04 8.688271778628972e-04 3.201326296052575e-02 60 20 384 - 88 8.688271778628972e-04 1.468146563475753e-03 3.201682378904077e-02 60 5 52 - 89 1.468146563475753e-03 4.343969048002700e-03 3.202279095225564e-02 60 5 74 - 90 4.343969048002700e-03 1.055819789459882e-02 3.204011973102326e-02 60 5 105 - 91 1.055819789459882e-02 2.209065533222391e-02 3.208023614326307e-02 60 5 105 - 92 2.386319631553004e-03 2.386319631553004e-03 3.208893412153121e-02 60 10 201 - 93 2.386319631553004e-03 1.364130552312118e-02 3.209750202157599e-02 60 5 55 - 94 1.364130552312118e-02 3.804643259996037e-02 3.214413129385055e-02 60 5 105 - 95 1.350012470133744e-02 1.350012470133744e-02 3.218665147855618e-02 60 10 210 - 96 9.639737373424729e-03 9.639737373424729e-03 3.221511600193919e-02 60 10 210 - 97 9.639737373424729e-03 1.590630674910340e-02 3.224203283811158e-02 60 5 105 - 98 9.367414453891131e-03 9.367414453891131e-03 3.226685525508665e-02 60 10 210 - 99 9.367414453891131e-03 9.367414453891131e-03 3.229047473304966e-02 60 5 105 - 100 9.367414453891131e-03 9.367414453891131e-03 3.231292205847536e-02 60 5 105 - 101 9.367414453891131e-03 9.367414453891131e-03 3.233430846708617e-02 60 5 105 - 102 9.367414453891131e-03 1.668718345780916e-02 3.235467947113296e-02 60 5 105 - 103 5.906021531128903e-03 5.906021531128903e-03 3.236703325098769e-02 60 10 210 - 104 5.906021531128903e-03 2.471346837871190e-02 3.237901834705667e-02 60 5 96 - 105 2.471346837871190e-02 2.201998950790008e-02 3.242549498508623e-02 60 5 105 - 106 3.894024974675171e-04 3.761680700537104e-04 3.242617044596968e-02 60 20 349 - 107 3.761680700537104e-04 7.748843143493643e-04 3.242683007682674e-02 60 5 46 - 108 7.748843143493643e-04 1.939359550616336e-03 3.242818962548284e-02 60 5 48 - 109 1.939359550616336e-03 3.113184611872983e-03 3.243157178567092e-02 60 5 97 - 110 3.113184611872983e-03 1.134238283346586e-02 3.243693386177211e-02 60 5 56 - 111 1.134238283346586e-02 1.796931919942777e-02 3.245578846135799e-02 60 5 105 - 112 1.796931919942777e-02 1.796931919942777e-02 3.248360322275518e-02 60 5 105 - 113 8.830774846120172e-03 8.830774846120172e-03 3.249636376759852e-02 60 10 210 - 114 8.830774846120172e-03 1.498507899698427e-02 3.250861147195047e-02 60 5 105 - 115 1.498507899698427e-02 2.400192116112091e-02 3.252822783037751e-02 60 5 105 - 116 1.834491808739763e-02 1.623377394364994e-02 3.255035322145888e-02 60 10 210 - 117 3.788212246854621e-03 3.773941147494160e-03 3.255469746916730e-02 60 15 315 - 118 3.773941147494160e-03 7.682030983754903e-03 3.255893334479040e-02 60 5 102 - 119 7.682030983754903e-03 2.180723185927965e-02 3.256732024800101e-02 60 5 105 - 120 2.180723185927965e-02 2.180723185927965e-02 3.258952126393384e-02 60 5 105 - 121 7.835737782770146e-03 7.835737782770146e-03 3.259691115681246e-02 60 10 210 - 122 7.835737782770146e-03 7.835737782770146e-03 3.260403532591830e-02 60 5 105 - 123 7.835737782770146e-03 1.521701267403009e-02 3.261090627152081e-02 60 5 105 - 124 1.521701267403009e-02 1.453434366415250e-02 3.262350907909189e-02 60 5 105 - 125 8.703052343239644e-03 8.703052343239644e-03 3.263033111822743e-02 60 10 210 - 126 8.703052343239644e-03 1.579670548089376e-02 3.263681960135667e-02 60 5 105 - 127 1.579670548089376e-02 1.579670548089376e-02 3.264798736584679e-02 60 5 105 - 128 1.579670548089376e-02 1.579670548089376e-02 3.265832267481519e-02 60 5 105 - 129 1.579670548089376e-02 1.579670548089376e-02 3.266783834117996e-02 60 5 105 - 130 1.579670548089376e-02 1.579670548089376e-02 3.267678702878758e-02 60 5 105 - 131 1.579670548089376e-02 1.579670548089376e-02 3.268496551666714e-02 60 5 105 - 132 1.579670548089376e-02 1.579670548089376e-02 3.269259030998119e-02 60 5 105 - 133 1.579670548089376e-02 1.579670548089376e-02 3.269967993118440e-02 60 5 105 - 134 9.442981671750042e-03 9.442981671750042e-03 3.270354813120258e-02 60 10 210 - 135 9.442981671750042e-03 1.498194099824085e-02 3.270736206011246e-02 60 5 105 - 136 1.498194099824085e-02 1.498194099824085e-02 3.271299843859180e-02 60 5 105 - 137 1.498194099824085e-02 1.498194099824085e-02 3.271824887923226e-02 60 5 105 - 138 1.498194099824085e-02 1.498194099824085e-02 3.272312899128821e-02 60 5 105 - 139 1.498194099824085e-02 1.498194099824085e-02 3.272766675941034e-02 60 5 105 - 140 1.498194099824085e-02 2.323511524381186e-02 3.273188003348305e-02 60 5 105 - 141 2.323511524381186e-02 2.323511524381186e-02 3.273782698896385e-02 60 5 105 - 142 2.323511524381186e-02 2.323511524381186e-02 3.274312637533745e-02 60 5 105 - 143 2.323511524381186e-02 2.042949136658555e-02 3.274788476870443e-02 60 5 105 - 144 2.042949136658555e-02 2.042949136658555e-02 3.275161072878752e-02 60 5 105 - 145 2.042949136658555e-02 1.314912365010589e-02 3.275500884737036e-02 60 5 105 - 146 1.314912365010589e-02 1.314912365010589e-02 3.275701308437982e-02 60 5 105 + 2 7.505751048377368e-09 1.501150209675474e-07 6.164657920190889e-09 21 5 5 + 3 1.501150209675474e-07 3.002300419350948e-06 1.293969127943737e-07 21 5 10 + 4 3.002300419350948e-06 6.004600838701896e-05 2.593514282988711e-06 21 5 10 + 5 6.004600838701896e-05 2.853823679832573e-04 5.166758334555005e-05 21 5 20 + 6 2.853823679832573e-04 2.575255434332890e-04 2.798555740976005e-04 21 5 25 + 7 2.575255434332890e-04 4.094541134469988e-04 4.794249470975060e-04 21 5 25 + 8 4.094541134469988e-04 4.094541134469988e-04 7.863858401326194e-04 21 5 29 + 9 4.094541134469988e-04 6.522908622655267e-04 1.082809129037782e-03 21 5 29 + 10 6.522908622655267e-04 5.699096897079724e-04 1.606858836596097e-03 23 5 40 + 11 5.699096897079724e-04 1.007836116841849e-03 2.005669425160000e-03 23 5 35 + 12 1.007836116841849e-03 1.007836116841849e-03 2.683040723903781e-03 23 5 40 + 13 1.007836116841849e-03 8.453991367856834e-04 3.678394364905319e-03 25 5 40 + 14 8.453991367856834e-04 1.990429632970147e-03 4.265067457277110e-03 25 5 34 + 15 1.990429632970147e-03 1.990429632970147e-03 5.574933430469675e-03 25 5 41 + 16 1.990429632970147e-03 3.606542084539227e-03 6.798364394830465e-03 25 5 35 + 17 4.980841065373463e-04 4.980841065373463e-04 6.927003185856736e-03 27 15 180 + 18 4.980841065373463e-04 4.980841065373463e-04 7.441563969778088e-03 29 5 30 + 19 4.980841065373463e-04 1.669338950987901e-03 7.722575172690612e-03 29 5 29 + 20 1.669338950987901e-03 3.660363409600048e-03 8.637783681073969e-03 29 5 44 + 21 3.660363409600048e-03 7.228866504893484e-03 1.050862732430420e-02 29 5 66 + 22 2.277066494413550e-04 2.223939246469188e-04 1.033655098852881e-02 32 20 250 + 23 2.223939246469188e-04 4.398048897676356e-04 1.092351423512213e-02 34 5 24 + 24 4.398048897676356e-04 1.023058876200847e-03 1.113462885573467e-02 34 5 33 + 25 1.023058876200847e-03 1.023058876200847e-03 1.161665279683433e-02 34 5 36 + 26 1.023058876200847e-03 3.919845082560766e-03 1.208659994169145e-02 34 5 38 + 27 3.919845082560766e-03 3.863020439217562e-03 1.378155752244160e-02 34 5 81 + 28 3.863020439217562e-03 1.257825200903444e-02 1.530364032030464e-02 34 5 59 + 29 1.533031872906549e-03 1.436302440195315e-03 1.578270750227194e-02 36 15 221 + 30 1.436302440195315e-03 3.755629101798260e-03 1.630186567569052e-02 36 5 31 + 31 2.870300468364886e-03 2.460481648357659e-03 1.728893354958566e-02 38 10 144 + 32 5.484132002743671e-04 5.448534872232822e-04 1.710787102567137e-02 40 15 251 + 33 5.448534872232822e-04 9.911472786863407e-04 1.728222131772621e-02 40 5 43 + 34 9.911472786863407e-04 2.853828564040550e-03 1.759429056441933e-02 40 5 47 + 35 2.853828564040550e-03 8.346188420319504e-03 1.845696364866320e-02 40 5 98 + 36 4.184969207140296e-03 4.184969207140296e-03 1.963139612674647e-02 40 10 209 + 37 7.891664187375526e-04 7.780072216640708e-04 1.916618790361855e-02 44 15 270 + 38 7.780072216640708e-04 1.432006588296146e-03 1.936507264204106e-02 44 5 51 + 39 1.432006588296146e-03 1.432006588296146e-03 1.933721559864914e-02 46 5 63 + 40 1.432006588296146e-03 2.920150155413109e-03 1.967900635018854e-02 46 5 59 + 41 2.920150155413109e-03 8.021410496618760e-03 2.034576732622878e-02 46 5 91 + 42 8.021410496618760e-03 8.021410496618760e-03 2.198707476731612e-02 46 5 105 + 43 8.021410496618760e-03 8.021410496618760e-03 2.338592734070328e-02 46 5 105 + 44 7.749248836531081e-04 7.712524403928612e-04 2.311665583789623e-02 50 15 273 + 45 7.712524403928612e-04 1.454207673515780e-03 2.323643927854141e-02 50 5 59 + 46 1.454207673515780e-03 3.893553595468784e-03 2.345743682946040e-02 50 5 75 + 47 3.893553595468784e-03 8.577785831996225e-03 2.401981148625224e-02 50 5 105 + 48 3.583582798475919e-03 3.583582798475919e-03 2.450182832136591e-02 50 10 210 + 49 3.583582798475919e-03 1.225842385200837e-02 2.495216274153317e-02 50 5 88 + 50 4.962462241849634e-03 4.962462241849634e-03 2.552759545114530e-02 50 10 208 + 51 4.962462241849634e-03 1.668087632819629e-02 2.605197291673569e-02 50 5 95 + 52 4.505316812294505e-03 4.505316812294505e-03 2.648793970156092e-02 50 10 201 + 53 4.505316812294505e-03 2.222468245231715e-02 2.688916611820219e-02 50 5 101 + 54 4.746858164506530e-03 4.746858164506530e-03 2.727761588174917e-02 50 15 298 + 55 4.746858164506530e-03 4.349218756600245e-03 2.848305395101498e-02 52 5 105 + 56 4.349218756600245e-03 4.349218756600245e-03 2.902306824658978e-02 54 5 105 + 57 4.349218756600245e-03 1.066724741463221e-02 2.931026262297523e-02 54 5 105 + 58 6.268748418325634e-03 6.268748418325634e-03 2.936878001655390e-02 56 10 210 + 59 6.268748418325634e-03 1.161381148923531e-02 2.970425918866458e-02 56 5 105 + 60 1.161381148923531e-02 1.028179098818762e-02 2.979356337650783e-02 58 5 105 + 61 1.028179098818762e-02 1.028179098818762e-02 2.969467522937706e-02 60 5 105 + 62 1.028179098818762e-02 3.106655738625877e-02 3.001826469123505e-02 60 5 105 + 63 1.471496945828350e-02 1.469024921725142e-02 3.039908149974539e-02 60 10 210 + 64 1.085599032570171e-02 1.085599032570171e-02 3.063067318046183e-02 60 10 210 + 65 1.085599032570171e-02 1.085599032570171e-02 3.082863809383847e-02 60 5 105 + 66 1.085599032570171e-02 1.085599032570171e-02 3.099902977389579e-02 60 5 105 + 67 7.618142079252098e-03 7.618142079252098e-03 3.110458948722743e-02 60 10 210 + 68 7.618142079252098e-03 3.289115457484437e-02 3.120052296435948e-02 60 5 105 + 69 3.289115457484437e-02 2.984967095026484e-02 3.153119483133013e-02 60 5 105 + 70 7.462417737566209e-03 7.462417737566209e-03 3.159027055714576e-02 60 6 126 + 71 7.462417737566209e-03 1.532601802900749e-02 3.164512521044466e-02 60 5 105 + 72 5.317294174445867e-03 5.317294174445867e-03 3.168191671045904e-02 60 10 210 + 73 5.317294174445867e-03 1.637705260014558e-02 3.171694897858042e-02 60 5 105 + 74 1.637705260014558e-02 5.597209894014091e-02 3.181506419526589e-02 60 5 105 + 75 9.763057448204533e-03 9.763057448204533e-03 3.186752063019930e-02 60 10 210 + 76 9.763057448204533e-03 3.404927513904092e-02 3.191613054349100e-02 60 5 105 + 77 3.404927513904092e-02 2.968548341756130e-02 3.206067821894520e-02 60 5 105 + 78 1.178500969634106e-02 1.178500969634106e-02 3.210368406300197e-02 60 10 210 + 79 1.178500969634106e-02 2.585117047072884e-02 3.214367493868805e-02 60 5 105 + 80 1.411007380226322e-02 1.411007380226322e-02 3.218801588316333e-02 60 10 210 + 81 1.411007380226322e-02 1.411007380226322e-02 3.222893682105193e-02 60 5 105 + 82 1.411007380226322e-02 1.401864440990195e-02 3.226656117886238e-02 60 5 105 + 83 1.401864440990195e-02 1.401864440990195e-02 3.230147951662023e-02 60 5 105 + 84 1.401864440990195e-02 1.303768352877046e-02 3.233369732860109e-02 60 5 105 + 85 7.810676399949200e-03 7.810676399949200e-03 3.235074731143681e-02 60 10 210 + 86 7.810676399949200e-03 7.810676399949200e-03 3.236714343315446e-02 60 5 105 + 87 7.810676399949200e-03 1.411979073878545e-02 3.238290227600748e-02 60 5 105 + 88 1.411979073878545e-02 3.418255178001077e-02 3.240986169975903e-02 60 5 105 + 89 1.683729734872759e-02 1.683729734872759e-02 3.243961052649499e-02 60 10 210 + 90 5.293743003823701e-03 5.293743003823701e-03 3.244847429329385e-02 60 10 210 + 91 5.293743003823701e-03 8.291768498653825e-03 3.245709535299850e-02 60 5 105 + 92 8.291768498653825e-03 1.880612123267676e-02 3.247017621575291e-02 60 5 105 + 93 1.173402792581162e-02 1.173402792581162e-02 3.248779528914644e-02 60 10 209 + 94 1.173402792581162e-02 1.173402792581162e-02 3.250442716997714e-02 60 5 105 + 95 1.173402792581162e-02 3.281754406804230e-02 3.252013886269631e-02 60 5 105 + 96 6.424707662957514e-03 6.424707662957514e-03 3.252836644102348e-02 60 10 197 + 97 6.424707662957514e-03 4.714988041054190e-02 3.253634036181408e-02 60 5 72 + 98 4.714988041054191e-03 4.714988041054191e-03 3.254203651909890e-02 60 10 171 + 99 4.714988041054191e-03 4.282144720721703e-02 3.254760362002126e-02 60 5 56 + 100 4.282144720721703e-02 3.592705003681280e-02 3.259281046463217e-02 60 5 105 + 101 7.349314806790228e-03 7.349314806790228e-03 3.259965013816767e-02 60 15 315 + 102 7.349314806790228e-03 3.112322123785429e-02 3.260625388050781e-02 60 5 96 + 103 3.112322123785429e-02 3.112322123785429e-02 3.263174602069833e-02 60 5 105 + 104 6.839739280813347e-03 6.839739280813347e-03 3.263685222363544e-02 60 15 315 + 105 6.839739280813347e-03 3.638819250655535e-02 3.264179137178386e-02 60 5 77 + 106 3.638819250655535e-02 3.638819250655535e-02 3.266544357612065e-02 60 5 105 + 107 1.812430795718352e-02 1.812430795718352e-02 3.267571852602801e-02 60 10 210 + 108 3.325944651421952e-03 3.325944651421952e-03 3.267751436841327e-02 60 15 315 + 109 3.325944651421952e-03 1.705033487710399e-02 3.267928353707002e-02 60 5 79 + 110 4.262583719275997e-03 4.262583719275997e-03 3.268151038658581e-02 60 6 118 + 111 4.262583719275997e-03 1.551192985487607e-02 3.268369082817933e-02 60 5 87 + 112 1.551192985487607e-02 2.477145186640316e-02 3.269122491441458e-02 60 5 105 + 113 1.660178108793211e-02 1.660178108793211e-02 3.269867454817608e-02 60 10 210 + 114 1.660178108793211e-02 1.660178108793211e-02 3.270557188991038e-02 60 5 105 + 115 1.660178108793211e-02 1.660178108793211e-02 3.271192363723516e-02 60 5 105 + 116 1.660178108793211e-02 3.371605679577483e-02 3.271779428194488e-02 60 5 105 + 117 1.522144924734310e-02 1.522144924734310e-02 3.272271516928414e-02 60 10 210 + 118 1.522144924734310e-02 1.396058321278275e-02 3.272735805276025e-02 60 5 105 + 119 1.396058321278275e-02 2.708386296373138e-02 3.273131056482627e-02 60 5 105 + 120 1.784278714797101e-02 1.559390397930733e-02 3.273593683845105e-02 60 10 210 + 121 1.108547745869386e-02 1.108547745869386e-02 3.273862071549129e-02 60 10 210 + 122 1.108547745869386e-02 3.935975276857615e-02 3.274118608200519e-02 60 5 105 + 123 9.839938192144036e-03 9.839938192144036e-03 3.274329592751463e-02 60 6 126 + 124 9.839938192144036e-03 3.408840272553354e-02 3.274535508616430e-02 60 5 105 + 125 2.571312978993083e-02 2.384800532128622e-02 3.274985374478378e-02 60 10 210 + 126 2.384800532128622e-02 1.550804686753758e-02 3.275393582150888e-02 60 5 105 + 127 1.550804686753758e-02 1.550804686753758e-02 3.275635661747035e-02 60 5 105 ---------------------------------------------------------------------------------------- Final solver statistics: - Total number of time steps = 146 - Total nonlinear iterations = 980 - Total linear iterations = 17015 + Total number of time steps = 127 + Total nonlinear iterations = 868 + Total linear iterations = 15028 diff --git a/examples/arkode/C_serial/ark_robertson.out b/examples/arkode/C_serial/ark_robertson.out index 1aea595ee5..f4774b096c 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.08319e-06 8.28673e-12 9.99998e-01 + 2.000e+09 1.04165e-06 4.16315e-12 9.99999e-01 + 3.000e+09 6.94436e-07 2.79812e-12 9.99999e-01 + 4.000e+09 5.20822e-07 2.09671e-12 9.99999e-01 + 5.000e+09 4.16653e-07 1.65358e-12 1.00000e+00 + 6.000e+09 3.47215e-07 1.38790e-12 1.00000e+00 + 7.000e+09 2.97617e-07 1.19569e-12 1.00000e+00 + 8.000e+09 2.60418e-07 1.03823e-12 1.00000e+00 + 9.000e+09 2.31478e-07 9.17074e-13 1.00000e+00 + 1.000e+10 2.08331e-07 8.40189e-13 1.00000e+00 + 1.100e+10 1.89393e-07 7.61696e-13 1.00000e+00 + 1.200e+10 1.73605e-07 6.83245e-13 1.00000e+00 + 1.300e+10 1.60257e-07 6.52283e-13 1.00000e+00 + 1.400e+10 1.48808e-07 6.03096e-13 1.00000e+00 + 1.500e+10 1.38890e-07 5.53757e-13 1.00000e+00 + 1.600e+10 1.30208e-07 5.02107e-13 1.00000e+00 + 1.700e+10 1.22550e-07 5.05848e-13 1.00000e+00 + 1.800e+10 1.15741e-07 4.81445e-13 1.00000e+00 + 1.900e+10 1.09650e-07 4.30685e-13 1.00000e+00 + 2.000e+10 1.04164e-07 4.00365e-13 1.00000e+00 + 2.100e+10 9.92051e-08 3.87356e-13 1.00000e+00 + 2.200e+10 9.46982e-08 3.79643e-13 1.00000e+00 + 2.300e+10 9.05793e-08 3.59181e-13 1.00000e+00 + 2.400e+10 8.68052e-08 3.35291e-13 1.00000e+00 + 2.500e+10 8.33344e-08 3.30550e-13 1.00000e+00 + 2.600e+10 8.01274e-08 3.33613e-13 1.00000e+00 + 2.700e+10 7.71569e-08 3.13668e-13 1.00000e+00 + 2.800e+10 7.44011e-08 2.86383e-13 1.00000e+00 + 2.900e+10 7.18380e-08 2.67839e-13 1.00000e+00 + 3.000e+10 6.94456e-08 2.74115e-13 1.00000e+00 + 3.100e+10 6.72046e-08 2.89954e-13 1.00000e+00 + 3.200e+10 6.51032e-08 2.82625e-13 1.00000e+00 + 3.300e+10 6.31303e-08 2.63498e-13 1.00000e+00 + 3.400e+10 6.12746e-08 2.44356e-13 1.00000e+00 + 3.500e+10 5.95249e-08 2.36979e-13 1.00000e+00 + 3.600e+10 5.78710e-08 2.38699e-13 1.00000e+00 + 3.700e+10 5.63063e-08 2.34238e-13 1.00000e+00 + 3.800e+10 5.48245e-08 2.25989e-13 1.00000e+00 + 3.900e+10 5.34192e-08 2.16535e-13 1.00000e+00 + 4.000e+10 5.20842e-08 2.08459e-13 1.00000e+00 + 4.100e+10 5.08134e-08 2.01687e-13 1.00000e+00 + 4.200e+10 4.96024e-08 1.93815e-13 1.00000e+00 + 4.300e+10 4.84479e-08 1.85739e-13 1.00000e+00 + 4.400e+10 4.73465e-08 1.78395e-13 1.00000e+00 + 4.500e+10 4.62947e-08 1.72720e-13 1.00000e+00 + 4.600e+10 4.52893e-08 1.69648e-13 1.00000e+00 + 4.700e+10 4.43267e-08 1.70114e-13 1.00000e+00 + 4.800e+10 4.34036e-08 1.74964e-13 1.00000e+00 + 4.900e+10 4.25175e-08 1.78828e-13 1.00000e+00 + 5.000e+10 4.16666e-08 1.78796e-13 1.00000e+00 + 5.100e+10 4.08492e-08 1.75793e-13 1.00000e+00 + 5.200e+10 4.00636e-08 1.70743e-13 1.00000e+00 + 5.300e+10 3.93079e-08 1.64571e-13 1.00000e+00 + 5.400e+10 3.85805e-08 1.58202e-13 1.00000e+00 + 5.500e+10 3.78794e-08 1.52559e-13 1.00000e+00 + 5.600e+10 3.72031e-08 1.48433e-13 1.00000e+00 + 5.700e+10 3.65504e-08 1.45182e-13 1.00000e+00 + 5.800e+10 3.59202e-08 1.42852e-13 1.00000e+00 + 5.900e+10 3.53114e-08 1.42011e-13 1.00000e+00 + 6.000e+10 3.47228e-08 1.43770e-13 1.00000e+00 + 6.100e+10 3.41536e-08 1.42505e-13 1.00000e+00 + 6.200e+10 3.36028e-08 1.31615e-13 1.00000e+00 + 6.300e+10 3.30693e-08 1.21361e-13 1.00000e+00 + 6.400e+10 3.25524e-08 1.16679e-13 1.00000e+00 + 6.500e+10 3.20514e-08 1.16007e-13 1.00000e+00 + 6.600e+10 3.15658e-08 1.17783e-13 1.00000e+00 + 6.700e+10 3.10947e-08 1.20445e-13 1.00000e+00 + 6.800e+10 3.06376e-08 1.22430e-13 1.00000e+00 + 6.900e+10 3.01937e-08 1.22179e-13 1.00000e+00 + 7.000e+10 2.97624e-08 1.18554e-13 1.00000e+00 + 7.100e+10 2.93432e-08 1.19564e-13 1.00000e+00 + 7.200e+10 2.89357e-08 1.20819e-13 1.00000e+00 + 7.300e+10 2.85393e-08 1.12238e-13 1.00000e+00 + 7.400e+10 2.81536e-08 1.08409e-13 1.00000e+00 + 7.500e+10 2.77782e-08 1.11242e-13 1.00000e+00 + 7.600e+10 2.74127e-08 1.08952e-13 1.00000e+00 + 7.700e+10 2.70567e-08 1.02106e-13 1.00000e+00 + 7.800e+10 2.67098e-08 1.03189e-13 1.00000e+00 + 7.900e+10 2.63717e-08 1.10597e-13 1.00000e+00 + 8.000e+10 2.60421e-08 1.05448e-13 1.00000e+00 + 8.100e+10 2.57206e-08 1.03702e-13 1.00000e+00 + 8.200e+10 2.54069e-08 1.04168e-13 1.00000e+00 + 8.300e+10 2.51008e-08 1.00603e-13 1.00000e+00 + 8.400e+10 2.48020e-08 9.77251e-14 1.00000e+00 + 8.500e+10 2.45102e-08 9.82338e-14 1.00000e+00 + 8.600e+10 2.42252e-08 9.64282e-14 1.00000e+00 + 8.700e+10 2.39467e-08 9.59624e-14 1.00000e+00 + 8.800e+10 2.36746e-08 9.45243e-14 1.00000e+00 + 8.900e+10 2.34086e-08 9.10474e-14 1.00000e+00 + 9.000e+10 2.31485e-08 9.02954e-14 1.00000e+00 + 9.100e+10 2.28941e-08 9.57143e-14 1.00000e+00 + 9.200e+10 2.26452e-08 1.00341e-13 1.00000e+00 + 9.300e+10 2.24017e-08 1.03006e-13 1.00000e+00 + 9.400e+10 2.21634e-08 1.03573e-13 1.00000e+00 + 9.500e+10 2.19301e-08 1.01905e-13 1.00000e+00 + 9.600e+10 2.17016e-08 9.78643e-14 1.00000e+00 + 9.700e+10 2.14779e-08 9.13138e-14 1.00000e+00 + 9.800e+10 2.12588e-08 8.23720e-14 1.00000e+00 + 9.900e+10 2.10440e-08 7.45584e-14 1.00000e+00 + 1.000e+11 2.08334e-08 6.88517e-14 1.00000e+00 -------------------------------------------------- Final Statistics: -Current time = 100509725868.0247 -Steps = 990 -Step attempts = 1170 +Current time = 115949571244.6344 +Steps = 740 +Step attempts = 784 Stability limited steps = 0 -Accuracy limited steps = 1167 -Error test fails = 177 -NLS step fails = 3 +Accuracy limited steps = 779 +Error test fails = 39 +NLS step fails = 5 Inequality constraint fails = 0 Initial step size = 1e-08 -Last step size = 4072648616.470474 -Current step size = 4072648616.470474 +Last step size = 18264803707.2694 +Current step size = 18264803707.2694 Explicit RHS fn evals = 0 -Implicit RHS fn evals = 33161 -NLS iters = 27313 +Implicit RHS fn evals = 25084 +NLS iters = 21171 NLS fails = 46 -NLS iters per step = 27.58888888888889 -LS setups = 517 -Jac fn evals = 56 +NLS iters per step = 28.60945945945946 +LS setups = 208 +Jac fn evals = 52 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.002456190071323981 Prec evals per NLS iter = 0 diff --git a/examples/arkode/C_serial/ark_robertson_constraints.out b/examples/arkode/C_serial/ark_robertson_constraints.out index e28ffe18c9..a5abcd3dfd 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.08372e-06 1.28623e-11 9.99998e-01 + 2.000e+09 1.04177e-06 4.17962e-12 9.99999e-01 + 3.000e+09 6.94491e-07 1.08662e-12 9.99999e-01 + 4.000e+09 5.20859e-07 2.11202e-12 9.99999e-01 + 5.000e+09 4.16681e-07 2.67597e-12 1.00000e+00 + 6.000e+09 3.47234e-07 1.32035e-12 1.00000e+00 + 7.000e+09 2.97625e-07 9.17289e-13 1.00000e+00 + 8.000e+09 2.60423e-07 1.34317e-12 1.00000e+00 + 9.000e+09 2.31483e-07 1.77831e-13 1.00000e+00 + 1.000e+10 2.08336e-07 8.66411e-14 1.00000e+00 + 1.100e+10 1.89400e-07 -1.20076e-12 1.00000e+00 + 1.200e+10 1.73615e-07 6.95917e-13 1.00000e+00 + 1.300e+10 1.60260e-07 6.35488e-13 1.00000e+00 + 1.400e+10 1.48812e-07 6.62922e-13 1.00000e+00 + 1.500e+10 1.38889e-07 9.89014e-13 1.00000e+00 + 1.600e+10 1.30210e-07 4.44922e-13 1.00000e+00 + 1.700e+10 1.22549e-07 1.72526e-12 1.00000e+00 + 1.800e+10 1.15739e-07 3.90984e-12 1.00000e+00 + 1.900e+10 1.09651e-07 4.44476e-13 1.00000e+00 + 2.000e+10 1.04167e-07 1.31808e-12 1.00000e+00 + 2.100e+10 9.92075e-08 7.65928e-13 1.00000e+00 + 2.200e+10 9.46989e-08 -1.16031e-13 1.00000e+00 + 2.300e+10 9.05834e-08 -2.00950e-12 1.00000e+00 + 2.400e+10 8.68068e-08 3.52748e-13 1.00000e+00 + 2.500e+10 8.33341e-08 4.86598e-13 1.00000e+00 + 2.600e+10 8.01289e-08 5.62896e-13 1.00000e+00 + 2.700e+10 7.71612e-08 6.08319e-13 1.00000e+00 + 2.800e+10 7.44056e-08 4.14818e-13 1.00000e+00 + 2.900e+10 7.18402e-08 6.98424e-14 1.00000e+00 + 3.000e+10 6.94449e-08 6.23385e-13 1.00000e+00 + 3.100e+10 6.72051e-08 2.68162e-13 1.00000e+00 + 3.200e+10 6.51049e-08 2.53517e-13 1.00000e+00 + 3.300e+10 6.31320e-08 2.53703e-13 1.00000e+00 + 3.400e+10 6.12751e-08 2.53682e-13 1.00000e+00 + 3.500e+10 5.95243e-08 2.90151e-13 1.00000e+00 + 3.600e+10 5.78709e-08 2.74982e-13 1.00000e+00 + 3.700e+10 5.63068e-08 2.31075e-13 1.00000e+00 + 3.800e+10 5.48248e-08 4.05480e-13 1.00000e+00 + 3.900e+10 5.34193e-08 2.94098e-13 1.00000e+00 + 4.000e+10 5.20839e-08 1.94391e-13 1.00000e+00 + 4.100e+10 5.08135e-08 2.15900e-13 1.00000e+00 + 4.200e+10 4.96037e-08 1.41126e-13 1.00000e+00 + 4.300e+10 4.84501e-08 1.79785e-13 1.00000e+00 + 4.400e+10 4.73464e-08 2.69369e-12 1.00000e+00 + 4.500e+10 4.62850e-08 1.18598e-11 1.00000e+00 + 4.600e+10 4.52825e-08 7.90431e-12 1.00000e+00 + 4.700e+10 4.43266e-08 1.76122e-13 1.00000e+00 + 4.800e+10 4.34029e-08 2.26422e-13 1.00000e+00 + 4.900e+10 4.25172e-08 1.84214e-13 1.00000e+00 + 5.000e+10 4.16669e-08 1.23287e-13 1.00000e+00 + 5.100e+10 4.08543e-08 -4.28961e-12 1.00000e+00 + 5.200e+10 4.00729e-08 -8.50417e-12 1.00000e+00 + 5.300e+10 3.93110e-08 -2.57802e-12 1.00000e+00 + 5.400e+10 3.85804e-08 1.47943e-13 1.00000e+00 + 5.500e+10 3.78772e-08 1.86930e-12 1.00000e+00 + 5.600e+10 3.72025e-08 1.31732e-13 1.00000e+00 + 5.700e+10 3.65494e-08 5.66584e-13 1.00000e+00 + 5.800e+10 3.59196e-08 1.78679e-13 1.00000e+00 + 5.900e+10 3.53112e-08 -1.92694e-13 1.00000e+00 + 6.000e+10 3.47222e-08 2.42813e-13 1.00000e+00 + 6.100e+10 3.41531e-08 1.50415e-13 1.00000e+00 + 6.200e+10 3.36022e-08 1.34708e-13 1.00000e+00 + 6.300e+10 3.30690e-08 -7.92804e-16 1.00000e+00 + 6.400e+10 3.25522e-08 1.27438e-13 1.00000e+00 + 6.500e+10 3.20515e-08 3.49793e-14 1.00000e+00 + 6.600e+10 3.15669e-08 -1.02211e-12 1.00000e+00 + 6.700e+10 3.10946e-08 1.41439e-13 1.00000e+00 + 6.800e+10 3.06374e-08 7.27249e-14 1.00000e+00 + 6.900e+10 3.01894e-08 4.00333e-12 1.00000e+00 + 7.000e+10 2.97602e-08 1.87205e-12 1.00000e+00 + 7.100e+10 2.93428e-08 1.30225e-13 1.00000e+00 + 7.200e+10 2.89354e-08 1.31656e-14 1.00000e+00 + 7.300e+10 2.85437e-08 -4.70269e-12 1.00000e+00 + 7.400e+10 2.81625e-08 -9.20849e-12 1.00000e+00 + 7.500e+10 2.77780e-08 -5.78693e-14 1.00000e+00 + 7.600e+10 2.74119e-08 5.68095e-13 1.00000e+00 + 7.700e+10 2.70563e-08 1.53510e-13 1.00000e+00 + 7.800e+10 2.67092e-08 3.61374e-13 1.00000e+00 + 7.900e+10 2.63714e-08 9.53870e-14 1.00000e+00 + 8.000e+10 2.60417e-08 1.04868e-13 1.00000e+00 + 8.100e+10 2.57202e-08 9.19696e-14 1.00000e+00 + 8.200e+10 2.54065e-08 1.04617e-13 1.00000e+00 + 8.300e+10 2.51004e-08 1.17459e-13 1.00000e+00 + 8.400e+10 2.48017e-08 4.24962e-14 1.00000e+00 + 8.500e+10 2.45107e-08 -7.68506e-13 1.00000e+00 + 8.600e+10 2.42268e-08 -1.88041e-12 1.00000e+00 + 8.700e+10 2.39489e-08 -2.44492e-12 1.00000e+00 + 8.800e+10 2.36760e-08 -1.61373e-12 1.00000e+00 + 8.900e+10 2.34086e-08 -2.03789e-13 1.00000e+00 + 9.000e+10 2.31474e-08 8.50587e-13 1.00000e+00 + 9.100e+10 2.28938e-08 1.36755e-13 1.00000e+00 + 9.200e+10 2.26451e-08 -2.32772e-14 1.00000e+00 + 9.300e+10 2.24015e-08 8.00906e-14 1.00000e+00 + 9.400e+10 2.21631e-08 8.59755e-14 1.00000e+00 + 9.500e+10 2.19305e-08 -5.14361e-13 1.00000e+00 + 9.600e+10 2.17023e-08 -7.48165e-13 1.00000e+00 + 9.700e+10 2.14796e-08 -1.80243e-12 1.00000e+00 + 9.800e+10 2.12586e-08 5.56097e-14 1.00000e+00 + 9.900e+10 2.10438e-08 1.05420e-13 1.00000e+00 + 1.000e+11 2.08333e-08 9.66856e-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 = 353 (attempted = 519) + Total RHS evals: Fe = 0, Fi = 13780 + Total linear solver setups = 545 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 = 366 + Total number of Newton iterations = 11842 + Total number of nonlinear solver convergence failures = 363 + Total number of error test failures = 0 + Total number of constraint test failures = 2 + Total number of failed steps from solver failure = 164 diff --git a/examples/arkode/C_serial/ark_robertson_root.out b/examples/arkode/C_serial/ark_robertson_root.out index 236a53d64b..f67f8d34a9 100644 --- a/examples/arkode/C_serial/ark_robertson_root.out +++ b/examples/arkode/C_serial/ark_robertson_root.out @@ -7,27 +7,27 @@ Robertson ODE test problem (with rootfinding): 2.64019e-01 9.89965e-01 3.47058e-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.18550e-06 2.84164e-01 + 4.00000e+02 4.50519e-01 3.22290e-06 5.49478e-01 + 4.00000e+03 1.83202e-01 8.94213e-07 8.16797e-01 + 4.00000e+04 3.89834e-02 1.62170e-07 9.61016e-01 + 4.00000e+05 4.93828e-03 1.98505e-08 9.95062e-01 + 4.00000e+06 5.16811e-04 2.06833e-09 9.99483e-01 + 2.07956e+07 1.00000e-04 4.00054e-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.20672e-06 2.05159e-11 9.99995e-01 + 4.00000e+09 5.20802e-07 1.54856e-12 9.99999e-01 + 4.00000e+10 5.20846e-08 2.09189e-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 = 748 (attempted = 813) + Total RHS evals: Fe = 0, Fi = 25698 + Total linear solver setups = 263 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 = 65 + Total number of Newton iterations = 21684 + Total root-function g evals = 776 + Total number of nonlinear solver convergence failures = 59 + Total number of error test failures = 47 + Total number of failed steps from solver failure = 18 diff --git a/examples/arkode/F2003_serial/ark_analytic_f2003.out b/examples/arkode/F2003_serial/ark_analytic_f2003.out index 7c3d78894f..6bd9ca6971 100644 --- a/examples/arkode/F2003_serial/ark_analytic_f2003.out +++ b/examples/arkode/F2003_serial/ark_analytic_f2003.out @@ -16,15 +16,15 @@ 1.00000E+01 1.47113E+00 General Solver Stats: - Total internal steps taken = 415 - Total internal steps attempts = 422 - Total rhs function calls = 5002 - Num lin solver setup calls = 46 - Num error test failures = 7 + Total internal steps taken = 413 + Total internal steps attempts = 419 + Total rhs function calls = 4983 + Num lin solver setup calls = 43 + Num error test failures = 6 First internal step size = 6.10352E-12 - Last internal step size = 7.92971E-02 - Next internal step size = 7.92971E-02 - Current internal time = 1.00714E+01 - Num nonlinear solver iters = 2889 + Last internal step size = 5.69650E-02 + Next internal step size = 5.69650E-02 + Current internal time = 1.00344E+01 + Num nonlinear solver iters = 2885 Num nonlinear solver fails = 4 diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out index daa7673410..a78e16c9fd 100644 --- a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_0.out @@ -16,10 +16,10 @@ ARKStep Solver Statistics: Internal solver steps = 1000 Total RHS evals: Fe = 0, Fi = 2769 Total linear solver setups = 50 - Total linear iterations = 6625 - Total number of Jacobian-vector products = 6625 + Total linear iterations = 6231 + Total number of Jacobian-vector products = 6231 Total number of Preconditioner setups = 17 - Total number of Preconditioner solves = 6625 + Total number of Preconditioner solves = 6231 Total number of linear solver convergence failures = 0 Total number of Newton iterations = 1768 Total number of nonlinear solver convergence failures = 0 diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out index 054398c5ed..bbf3267c89 100644 --- a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri_1.out @@ -16,10 +16,10 @@ ARKStep Solver Statistics: Internal solver steps = 1000 Total RHS evals: Fe = 0, Fi = 2001 Total linear solver setups = 1 - Total linear iterations = 5169 - Total number of Jacobian-vector products = 5169 + Total linear iterations = 4711 + Total number of Jacobian-vector products = 4711 Total number of Preconditioner setups = 1 - Total number of Preconditioner solves = 5169 + Total number of Preconditioner solves = 4711 Total number of linear solver convergence failures = 0 Total number of Newton iterations = 1000 Total number of nonlinear solver convergence failures = 0 From 1b16b93570f5ab74e426aa3867ec2ec53f21d644 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 2 Nov 2023 14:47:39 -0600 Subject: [PATCH 77/92] search for output files in destination path --- scripts/updateOutFiles.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/updateOutFiles.py b/scripts/updateOutFiles.py index 561387c265..1cb995ce64 100755 --- a/scripts/updateOutFiles.py +++ b/scripts/updateOutFiles.py @@ -75,7 +75,8 @@ def main(): # if failed tests were found update the output files if tests: paths = [os.path.join(args.destination, "examples"), - os.path.join(args.destination, "test", "unit_tests")] + os.path.join(args.destination, "test", "unit_tests"), + args.destination] for t in tests: if (args.verbose > 0): print(f"Searching for {t}") From d3c8cd98b561ac18917dd1adff6415ef6d49b388 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Thu, 2 Nov 2023 14:48:13 -0600 Subject: [PATCH 78/92] update answers commit --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 37f4e6b5b6..809bffa94a 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 37f4e6b5b68e407ea302facba92883126dd39bf7 +Subproject commit 809bffa94ae3da5ea39480daf19fed862123d02f From 0ea851e7cc9ca7889502a5fe9ad75bfa3228927a Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Fri, 3 Nov 2023 10:39:15 -0600 Subject: [PATCH 79/92] update answers commit --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 809bffa94a..8860b3ab00 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 809bffa94ae3da5ea39480daf19fed862123d02f +Subproject commit 8860b3ab002b290fb8daf010b133ea4281faa7b3 From 53b041de09dae82e1142f9a061816d870307f4fb Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Fri, 3 Nov 2023 12:15:25 -0600 Subject: [PATCH 80/92] include LastTestsFailed.log in artifacts --- .github/workflows/double-precision.yml | 1 + .github/workflows/extended-precision.yml | 1 + .github/workflows/single-precision.yml | 1 + .github/workflows/spack-develop.yml | 1 + 4 files changed, 4 insertions(+) diff --git a/.github/workflows/double-precision.yml b/.github/workflows/double-precision.yml index 9303af7523..1f3fa380b6 100644 --- a/.github/workflows/double-precision.yml +++ b/.github/workflows/double-precision.yml @@ -40,3 +40,4 @@ jobs: name: output_files path: | ${{ github.workspace }}/test/build_*/Testing/output + ${{ github.workspace }}/test/build_*/Testing/Temporary/LastTestsFailed.log diff --git a/.github/workflows/extended-precision.yml b/.github/workflows/extended-precision.yml index dc6f32e726..6414a2adcc 100644 --- a/.github/workflows/extended-precision.yml +++ b/.github/workflows/extended-precision.yml @@ -39,3 +39,4 @@ jobs: name: output_files path: | ${{ github.workspace }}/test/build_*/Testing/output + ${{ github.workspace }}/test/build_*/Testing/Temporary/LastTestsFailed.log diff --git a/.github/workflows/single-precision.yml b/.github/workflows/single-precision.yml index 304ae4e3bc..f1263d7fbf 100644 --- a/.github/workflows/single-precision.yml +++ b/.github/workflows/single-precision.yml @@ -39,3 +39,4 @@ jobs: name: output_files path: | ${{ github.workspace }}/test/build_*/Testing/output + ${{ github.workspace }}/test/build_*/Testing/Temporary/LastTestsFailed.log diff --git a/.github/workflows/spack-develop.yml b/.github/workflows/spack-develop.yml index 07dce581c2..1f4dbd4028 100644 --- a/.github/workflows/spack-develop.yml +++ b/.github/workflows/spack-develop.yml @@ -42,3 +42,4 @@ jobs: name: output_files path: | ${{ github.workspace }}/test/build_*/Testing/output + ${{ github.workspace }}/test/build_*/Testing/Temporary/LastTestsFailed.log From bc0df929e4e7cf241f4ece6f04c3ab52ed83ef68 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Fri, 3 Nov 2023 12:22:22 -0600 Subject: [PATCH 81/92] update answers commmit --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 8860b3ab00..092dcb7058 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 8860b3ab002b290fb8daf010b133ea4281faa7b3 +Subproject commit 092dcb7058d1b7f5d31613a0b0f50f5705da517e From 4cded1d380a5a9c9e283f90cce82ebbe2c6fcbf0 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 4 Nov 2023 19:06:33 -0700 Subject: [PATCH 82/92] update to upload-artifact@v3 for multipath support --- .github/workflows/double-precision.yml | 4 ++-- .github/workflows/extended-precision.yml | 4 ++-- .github/workflows/single-precision.yml | 4 ++-- .github/workflows/spack-develop.yml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/double-precision.yml b/.github/workflows/double-precision.yml index 1f3fa380b6..525957ca55 100644 --- a/.github/workflows/double-precision.yml +++ b/.github/workflows/double-precision.yml @@ -26,7 +26,7 @@ jobs: indexsize: ${{ matrix.indexsize }} precision: ${{ matrix.precision }} - name: Archive build files from failed build - uses: actions/upload-artifact@v2.2.4 + uses: actions/upload-artifact@v3 if: failure() with: name: build_files @@ -34,7 +34,7 @@ jobs: ${{ github.workspace }}/test/build_* !${{ github.workspace }}/test/build_*/Testing/output - name: Archive output files from failed build - uses: actions/upload-artifact@v2.2.4 + uses: actions/upload-artifact@v3 if: failure() with: name: output_files diff --git a/.github/workflows/extended-precision.yml b/.github/workflows/extended-precision.yml index 6414a2adcc..508eb81ae0 100644 --- a/.github/workflows/extended-precision.yml +++ b/.github/workflows/extended-precision.yml @@ -25,7 +25,7 @@ jobs: indexsize: ${{ matrix.indexsize }} precision: ${{ matrix.precision }} - name: Archive build files from failed build - uses: actions/upload-artifact@v2.2.4 + uses: actions/upload-artifact@v3 if: failure() with: name: build_files @@ -33,7 +33,7 @@ jobs: ${{ github.workspace }}/test/build_* !${{ github.workspace }}/test/build_*/Testing/output - name: Archive output files from failed build - uses: actions/upload-artifact@v2.2.4 + uses: actions/upload-artifact@v3 if: failure() with: name: output_files diff --git a/.github/workflows/single-precision.yml b/.github/workflows/single-precision.yml index f1263d7fbf..e52d65a6cd 100644 --- a/.github/workflows/single-precision.yml +++ b/.github/workflows/single-precision.yml @@ -25,7 +25,7 @@ jobs: indexsize: ${{ matrix.indexsize }} precision: ${{ matrix.precision }} - name: Archive build files from failed build - uses: actions/upload-artifact@v2.2.4 + uses: actions/upload-artifact@v3 if: failure() with: name: build_files @@ -33,7 +33,7 @@ jobs: ${{ github.workspace }}/test/build_* !${{ github.workspace }}/test/build_*/Testing/output - name: Archive output files from failed build - uses: actions/upload-artifact@v2.2.4 + uses: actions/upload-artifact@v3 if: failure() with: name: output_files diff --git a/.github/workflows/spack-develop.yml b/.github/workflows/spack-develop.yml index 1f4dbd4028..5c02477584 100644 --- a/.github/workflows/spack-develop.yml +++ b/.github/workflows/spack-develop.yml @@ -28,7 +28,7 @@ jobs: indexsize: ${{ matrix.indexsize }} precision: ${{ matrix.precision }} - name: Archive build files from failed build - uses: actions/upload-artifact@v2.2.4 + uses: actions/upload-artifact@v3 if: failure() with: name: build_files @@ -36,7 +36,7 @@ jobs: ${{ github.workspace }}/test/build_* !${{ github.workspace }}/test/build_*/Testing/output - name: Archive output files from failed build - uses: actions/upload-artifact@v2.2.4 + uses: actions/upload-artifact@v3 if: failure() with: name: output_files From 9dfec068889ddf285ff7f46640dce938007c172a Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 4 Nov 2023 20:11:00 -0700 Subject: [PATCH 83/92] cancel existing workflow on new push --- .github/workflows/double-precision.yml | 4 ++++ .github/workflows/extended-precision.yml | 4 ++++ .github/workflows/macos-latest.yml | 4 ++++ .github/workflows/single-precision.yml | 4 ++++ .github/workflows/spack-develop.yml | 4 ++++ .github/workflows/ubuntu-clang-latest.yml | 4 ++++ .github/workflows/windows-latest-mingw.yml | 4 ++++ .github/workflows/windows-latest.yml | 4 ++++ 8 files changed, 32 insertions(+) diff --git a/.github/workflows/double-precision.yml b/.github/workflows/double-precision.yml index 525957ca55..3ee4c9b063 100644 --- a/.github/workflows/double-precision.yml +++ b/.github/workflows/double-precision.yml @@ -5,6 +5,10 @@ on: push: pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: build_and_test: runs-on: ubuntu-latest diff --git a/.github/workflows/extended-precision.yml b/.github/workflows/extended-precision.yml index 508eb81ae0..83b6847c54 100644 --- a/.github/workflows/extended-precision.yml +++ b/.github/workflows/extended-precision.yml @@ -4,6 +4,10 @@ name: extended precision build and test with GCC+TPLs (no GPUs) on: pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: build_and_test: runs-on: ubuntu-latest diff --git a/.github/workflows/macos-latest.yml b/.github/workflows/macos-latest.yml index 9efb20d976..6d7f4348f0 100644 --- a/.github/workflows/macos-latest.yml +++ b/.github/workflows/macos-latest.yml @@ -3,6 +3,10 @@ name: MacOS short test on: pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release diff --git a/.github/workflows/single-precision.yml b/.github/workflows/single-precision.yml index e52d65a6cd..2cb3927ac6 100644 --- a/.github/workflows/single-precision.yml +++ b/.github/workflows/single-precision.yml @@ -4,6 +4,10 @@ name: single precision build and test with GCC+TPLs (no GPUs) on: pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: build_and_test: runs-on: ubuntu-latest diff --git a/.github/workflows/spack-develop.yml b/.github/workflows/spack-develop.yml index 5c02477584..23abebca25 100644 --- a/.github/workflows/spack-develop.yml +++ b/.github/workflows/spack-develop.yml @@ -7,6 +7,10 @@ on: schedule: - cron: '00 22 * * *' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: build_and_test: runs-on: ubuntu-latest diff --git a/.github/workflows/ubuntu-clang-latest.yml b/.github/workflows/ubuntu-clang-latest.yml index 29da08a417..9ffa9d6b59 100644 --- a/.github/workflows/ubuntu-clang-latest.yml +++ b/.github/workflows/ubuntu-clang-latest.yml @@ -3,6 +3,10 @@ name: Ubuntu (clang) short test on: pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release diff --git a/.github/workflows/windows-latest-mingw.yml b/.github/workflows/windows-latest-mingw.yml index ab20ea721a..6aec0b789b 100644 --- a/.github/workflows/windows-latest-mingw.yml +++ b/.github/workflows/windows-latest-mingw.yml @@ -3,6 +3,10 @@ name: Windows (mingw) short test on: pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release diff --git a/.github/workflows/windows-latest.yml b/.github/workflows/windows-latest.yml index d640eb6bd2..8bc3bd3bcc 100644 --- a/.github/workflows/windows-latest.yml +++ b/.github/workflows/windows-latest.yml @@ -3,6 +3,10 @@ name: Windows short test on: pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release From 7ab39117aaf4b15a4f5ad5bce86da99b146e7abc Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 4 Nov 2023 20:24:09 -0700 Subject: [PATCH 84/92] upload full Testing directory --- .github/workflows/double-precision.yml | 3 +-- .github/workflows/extended-precision.yml | 3 +-- .github/workflows/single-precision.yml | 3 +-- .github/workflows/spack-develop.yml | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/double-precision.yml b/.github/workflows/double-precision.yml index 3ee4c9b063..c90a9d1dda 100644 --- a/.github/workflows/double-precision.yml +++ b/.github/workflows/double-precision.yml @@ -43,5 +43,4 @@ jobs: with: name: output_files path: | - ${{ github.workspace }}/test/build_*/Testing/output - ${{ github.workspace }}/test/build_*/Testing/Temporary/LastTestsFailed.log + ${{ github.workspace }}/test/build_*/Testing/ diff --git a/.github/workflows/extended-precision.yml b/.github/workflows/extended-precision.yml index 83b6847c54..e547a22d0f 100644 --- a/.github/workflows/extended-precision.yml +++ b/.github/workflows/extended-precision.yml @@ -42,5 +42,4 @@ jobs: with: name: output_files path: | - ${{ github.workspace }}/test/build_*/Testing/output - ${{ github.workspace }}/test/build_*/Testing/Temporary/LastTestsFailed.log + ${{ github.workspace }}/test/build_*/Testing/ diff --git a/.github/workflows/single-precision.yml b/.github/workflows/single-precision.yml index 2cb3927ac6..71b2f43ba6 100644 --- a/.github/workflows/single-precision.yml +++ b/.github/workflows/single-precision.yml @@ -42,5 +42,4 @@ jobs: with: name: output_files path: | - ${{ github.workspace }}/test/build_*/Testing/output - ${{ github.workspace }}/test/build_*/Testing/Temporary/LastTestsFailed.log + ${{ github.workspace }}/test/build_*/Testing/ diff --git a/.github/workflows/spack-develop.yml b/.github/workflows/spack-develop.yml index 23abebca25..73bb3f73d8 100644 --- a/.github/workflows/spack-develop.yml +++ b/.github/workflows/spack-develop.yml @@ -45,5 +45,4 @@ jobs: with: name: output_files path: | - ${{ github.workspace }}/test/build_*/Testing/output - ${{ github.workspace }}/test/build_*/Testing/Temporary/LastTestsFailed.log + ${{ github.workspace }}/test/build_*/Testing/ From 2da559f7e2fdf178f408bb52cf039c6f9ade1a1c Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 4 Nov 2023 21:14:02 -0700 Subject: [PATCH 85/92] add copy option to output update script --- scripts/updateOutFiles.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/updateOutFiles.py b/scripts/updateOutFiles.py index 1cb995ce64..fd09a4edaf 100755 --- a/scripts/updateOutFiles.py +++ b/scripts/updateOutFiles.py @@ -34,6 +34,8 @@ def main(): help='Full path of sundials location to write files to') parser.add_argument('--all','-a', action='store_true', help='Update all output files') + parser.add_argument('--copy','-c', action='store_true', + help='Copy file to destination if not found') parser.add_argument('--verbose','-v', action='count', default=0, help='Enable verbose output') @@ -98,7 +100,11 @@ def main(): if found: break if not found: - print("Warning: did not find {}".format(t)) + if args.copy: + print(f"Warning: did not find {t}, copying to {args.destination}") + shutil.copy(os.path.join(output, t), os.path.join(args.destination, t)) + else: + print(f"Warning: did not find {t}") # ----------------------------------------------------------------------------- # run the main routine From dd83c27351bf881c630dd2a87e1396ed709b0db4 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 4 Nov 2023 21:14:40 -0700 Subject: [PATCH 86/92] update answers submodule --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 092dcb7058..9e6d92f9cc 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 092dcb7058d1b7f5d31613a0b0f50f5705da517e +Subproject commit 9e6d92f9cc90e1b3621cdfa95c31666c6d6949da From 396fcff383cb6b0325323109e1abe0f5f8327969 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 4 Nov 2023 21:52:05 -0700 Subject: [PATCH 87/92] update stat comparison to use tolerance --- .../CXX_serial/ark_test_analytic_sys_mri.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp index c7160ed6e8..ecb951f6c0 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp @@ -62,6 +62,9 @@ static int dense_MM(SUNMatrix A, SUNMatrix B, SUNMatrix C); // Private function to check function return values static int check_flag(void *flagvalue, const string funcname, int opt); +// check if relative difference is within tolerance +static bool Compare(long int a, long int b, sunrealtype tol); + // SUNContext for the simulation static SUNContext sunctx = NULL; @@ -312,11 +315,11 @@ int main(int argc, char* argv[]) numfails += 1; cout << " Internal solver steps error: " << ark_nst << " vs " << mri_nst << "\n"; } - if (ark_nfi != mri_nfsi) { + if (!Compare(ark_nfi, mri_nfsi, ONE)) { numfails += 1; cout << " RHS evals error: " << ark_nfi << " vs " << mri_nfsi << "\n"; } - if (ark_nni != mri_nni) { + if (!Compare(ark_nni, mri_nni, ONE)) { numfails += 1; cout << " Nonlinear iterations error: " << ark_nni << " vs " << mri_nni << "\n"; } @@ -535,6 +538,13 @@ static int check_flag(void *flagvalue, const string funcname, int opt) return 0; } +// Check if relative difference of a and b is less than tolerance +static bool Compare(long int a, long int b, sunrealtype tol) +{ + sunrealtype rel_diff = SUN_RCONST(100.0) * + abs(static_cast(a - b) / static_cast(a)); + return (rel_diff > tol) ? false : true; +} //---- end of file ---- From b0bf1eb9fad80f52613b8f2437ed3a7a37ca84d6 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 4 Nov 2023 21:52:33 -0700 Subject: [PATCH 88/92] update answers commit --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 9e6d92f9cc..22a726700b 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 9e6d92f9cc90e1b3621cdfa95c31666c6d6949da +Subproject commit 22a726700be106638652e4087d811578505a4088 From ab98021d1518347533d3e1287130438074ae3085 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sat, 4 Nov 2023 22:44:42 -0700 Subject: [PATCH 89/92] reset answers back to main --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 22a726700b..37f4e6b5b6 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 22a726700be106638652e4087d811578505a4088 +Subproject commit 37f4e6b5b68e407ea302facba92883126dd39bf7 From 21f62143cce7a6cbb56f95e8bd71edd82cad5cf6 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 5 Nov 2023 09:15:54 -0800 Subject: [PATCH 90/92] update answers submodule --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index 37f4e6b5b6..fe166019d8 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 37f4e6b5b68e407ea302facba92883126dd39bf7 +Subproject commit fe166019d8c0942a4aa468785463447bf8c02987 From 409858d47ccbf85a3c79aae6086288276bfbc9d4 Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 5 Nov 2023 10:23:27 -0800 Subject: [PATCH 91/92] update answers submodule --- test/answers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/answers b/test/answers index fe166019d8..a63bd8022c 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit fe166019d8c0942a4aa468785463447bf8c02987 +Subproject commit a63bd8022ca4e772744769d7b6d5a371d5fb6429 From a443d4935013821fd2655409c416c08477ba4ecd Mon Sep 17 00:00:00 2001 From: "David J. Gardner" Date: Sun, 5 Nov 2023 11:13:39 -0800 Subject: [PATCH 92/92] add workflow_dispatch to other tests --- .github/workflows/double-precision.yml | 1 + .github/workflows/extended-precision.yml | 1 + .github/workflows/macos-latest.yml | 1 + .github/workflows/single-precision.yml | 1 + .github/workflows/ubuntu-clang-latest.yml | 1 + .github/workflows/windows-latest-mingw.yml | 1 + .github/workflows/windows-latest.yml | 1 + 7 files changed, 7 insertions(+) diff --git a/.github/workflows/double-precision.yml b/.github/workflows/double-precision.yml index c90a9d1dda..83ff21a31a 100644 --- a/.github/workflows/double-precision.yml +++ b/.github/workflows/double-precision.yml @@ -4,6 +4,7 @@ name: double precision build and test with GCC+TPLs (no GPUs) on: push: pull_request: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/extended-precision.yml b/.github/workflows/extended-precision.yml index e547a22d0f..3d3750fecc 100644 --- a/.github/workflows/extended-precision.yml +++ b/.github/workflows/extended-precision.yml @@ -3,6 +3,7 @@ name: extended precision build and test with GCC+TPLs (no GPUs) on: pull_request: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/macos-latest.yml b/.github/workflows/macos-latest.yml index 6d7f4348f0..f9d7b95635 100644 --- a/.github/workflows/macos-latest.yml +++ b/.github/workflows/macos-latest.yml @@ -2,6 +2,7 @@ name: MacOS short test on: pull_request: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/single-precision.yml b/.github/workflows/single-precision.yml index 71b2f43ba6..4fe166916b 100644 --- a/.github/workflows/single-precision.yml +++ b/.github/workflows/single-precision.yml @@ -3,6 +3,7 @@ name: single precision build and test with GCC+TPLs (no GPUs) on: pull_request: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/ubuntu-clang-latest.yml b/.github/workflows/ubuntu-clang-latest.yml index 9ffa9d6b59..1004888800 100644 --- a/.github/workflows/ubuntu-clang-latest.yml +++ b/.github/workflows/ubuntu-clang-latest.yml @@ -2,6 +2,7 @@ name: Ubuntu (clang) short test on: pull_request: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/windows-latest-mingw.yml b/.github/workflows/windows-latest-mingw.yml index 6aec0b789b..d6801c85ac 100644 --- a/.github/workflows/windows-latest-mingw.yml +++ b/.github/workflows/windows-latest-mingw.yml @@ -2,6 +2,7 @@ name: Windows (mingw) short test on: pull_request: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/windows-latest.yml b/.github/workflows/windows-latest.yml index 8bc3bd3bcc..bc14214813 100644 --- a/.github/workflows/windows-latest.yml +++ b/.github/workflows/windows-latest.yml @@ -2,6 +2,7 @@ name: Windows short test on: pull_request: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }}