diff --git a/doc/arkode/guide/source/Constants.rst b/doc/arkode/guide/source/Constants.rst index a739dbade7..d7e13d8adc 100644 --- a/doc/arkode/guide/source/Constants.rst +++ b/doc/arkode/guide/source/Constants.rst @@ -470,9 +470,9 @@ contains the ARKODE output constants. Commented-out table rows: +-------------------------------------+------+------------------------------------------------------------+ - | :index:`ARK_POSTPROCESS_STEP_FAIL` | -37 | An error occurred when calling the user-provided | + | :index:`ARK_POSTPROCESS_STEP_FAIL` | -37 | An error occurred when calling a user-provided. | | | | step-based :c:func:`ARKPostProcessFn` routine. | +-------------------------------------+------+------------------------------------------------------------+ - | :index:`ARK_POSTPROCESS_STAGE_FAIL` | -38 | An error occurred when calling the user-provided | + | :index:`ARK_POSTPROCESS_STAGE_FAIL` | -38 | An error occurred when calling a user-provided | | | | stage-based :c:func:`ARKPostProcessFn` routine. | +-------------------------------------+------+------------------------------------------------------------+ diff --git a/include/arkode/arkode.h b/include/arkode/arkode.h index 78ad5edb9a..5ee781b7f8 100644 --- a/include/arkode/arkode.h +++ b/include/arkode/arkode.h @@ -124,7 +124,8 @@ extern "C" { #define ARK_INNERTOOUTER_FAIL -36 /* ARK_POSTPROCESS_FAIL equals ARK_POSTPROCESS_STEP_FAIL - for backwards compatibility */ + for backwards compatibility. Note that we use these + same constants for step and stage preprocessing errors */ #define ARK_POSTPROCESS_FAIL -37 #define ARK_POSTPROCESS_STEP_FAIL -37 #define ARK_POSTPROCESS_STAGE_FAIL -38 @@ -275,8 +276,14 @@ SUNDIALS_EXPORT int ARKodeClearStopTime(void* arkode_mem); SUNDIALS_EXPORT int ARKodeSetFixedStep(void* arkode_mem, sunrealtype hfixed); SUNDIALS_EXPORT int ARKodeSetStepDirection(void* arkode_mem, sunrealtype stepdir); SUNDIALS_EXPORT int ARKodeSetUserData(void* arkode_mem, void* user_data); +SUNDIALS_EXPORT int ARKodeSetPreprocessStepFn(void* arkode_mem, + ARKPostProcessFn ProcessStep); SUNDIALS_EXPORT int ARKodeSetPostprocessStepFn(void* arkode_mem, ARKPostProcessFn ProcessStep); +SUNDIALS_EXPORT int ARKodeSetPostprocessStepFailFn(void* arkode_mem, + ARKPostProcessFn ProcessStep); +SUNDIALS_EXPORT int ARKodeSetPreprocessRHSFn(void* arkode_mem, + ARKPostProcessFn ProcessRHS); SUNDIALS_EXPORT int ARKodeSetPostprocessStageFn(void* arkode_mem, ARKPostProcessFn ProcessStage); diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 8e44a139c7..cb985d63c5 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -903,6 +903,14 @@ int ARKodeEvolve(void* arkode_mem, sunrealtype tout, N_Vector yout, "step = %li, tn = " SUN_FORMAT_G ", h = " SUN_FORMAT_G, ark_mem->nst + 1, ark_mem->tn, ark_mem->h); + /* call the user-supplied step preprocessing function (if it exists) */ + if (ark_mem->PreProcessStep != NULL) + { + retval = ark_mem->PreProcessStep(ark_mem->tcur, ark_mem->ycur, + ark_mem->ps_data); + if (retval != 0) { return (ARK_POSTPROCESS_STEP_FAIL); } + } + /* Call time stepper module to attempt a step: 0 => step completed successfully >0 => step encountered recoverable failure; reduce step if possible @@ -1000,6 +1008,14 @@ int ARKodeEvolve(void* arkode_mem, sunrealtype tout, N_Vector yout, ark_mem->h *= ark_mem->eta; ark_mem->next_h = ark_mem->hprime = ark_mem->h; + /* since the previous step attempt failed, call the user-supplied step failure postprocessing function (if it exists) */ + if (ark_mem->PostProcessStepFail != NULL) + { + retval = ark_mem->PostProcessStepFail(ark_mem->tcur, ark_mem->ycur, + ark_mem->ps_data); + if (retval != 0) { return (ARK_POSTPROCESS_STEP_FAIL); } + } + } /* end looping for step attempts */ /* If step attempt loop succeeded, complete step (update current time, solution, @@ -1586,12 +1602,15 @@ ARKodeMem arkCreate(SUNContext sunctx) ark_mem->VRabstolMallocDone = SUNFALSE; ark_mem->MallocDone = SUNFALSE; - /* No user-supplied step postprocessing function yet */ - ark_mem->ProcessStep = NULL; - ark_mem->ps_data = NULL; + /* No user-supplied step pre- or post-processing functions yet */ + ark_mem->PreProcessStep = NULL; + ark_mem->PostProcessStep = NULL; + ark_mem->PostProcessStepFail = NULL; + ark_mem->ps_data = NULL; - /* No user-supplied stage postprocessing function yet */ - ark_mem->ProcessStage = NULL; + /* No user-supplied stage pre- or post-processing functions yet */ + ark_mem->PreProcessRHS = NULL; + ark_mem->PostProcessStage = NULL; /* No user_data pointer yet */ ark_mem->user_data = NULL; @@ -2726,9 +2745,10 @@ int arkCompleteStep(ARKodeMem ark_mem, sunrealtype dsm) } /* apply user-supplied step postprocessing function (if supplied) */ - if (ark_mem->ProcessStep != NULL) + if (ark_mem->PostProcessStep != NULL) { - retval = ark_mem->ProcessStep(ark_mem->tcur, ark_mem->ycur, ark_mem->ps_data); + retval = ark_mem->PostProcessStep(ark_mem->tcur, ark_mem->ycur, + ark_mem->ps_data); if (retval != 0) { return (ARK_POSTPROCESS_STEP_FAIL); } } diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index fe1d386b72..e7e1438a1f 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -1330,11 +1330,18 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, /* compute the full RHS */ if (!(ark_mem->fn_is_current)) { - /* compute the explicit component */ - if (step_mem->explicit) + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) { - retval = step_mem->fe(t, y, step_mem->Fe[0], ark_mem->user_data); - step_mem->nfe++; + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } + + /* compute the 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, __LINE__, __func__, @@ -1342,10 +1349,10 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, return (ARK_RHSFUNC_FAIL); } - /* compute and store M(t)^{-1} fe */ + /* 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], + retval = step_mem->msolve((void*)ark_mem, step_mem->Fi[0], step_mem->nlscoef / ark_mem->h); if (retval) { @@ -1356,11 +1363,11 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, } } - /* compute the implicit component */ - if (step_mem->implicit) + /* compute the explicit component */ + if (step_mem->explicit) { - retval = step_mem->fi(t, y, step_mem->Fi[0], ark_mem->user_data); - step_mem->nfi++; + 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, __LINE__, __func__, @@ -1368,10 +1375,10 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, return (ARK_RHSFUNC_FAIL); } - /* compute and store M(t)^{-1} fi */ + /* compute and store M(t)^{-1} fe */ if (step_mem->mass_type == MASS_TIMEDEP) { - retval = step_mem->msolve((void*)ark_mem, step_mem->Fi[0], + retval = step_mem->msolve((void*)ark_mem, step_mem->Fe[0], step_mem->nlscoef / ark_mem->h); if (retval) { @@ -1455,11 +1462,18 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, /* recompute RHS functions */ if (recomputeRHS) { - /* compute the explicit component */ - if (step_mem->explicit) + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) { - retval = step_mem->fe(t, y, step_mem->Fe[0], ark_mem->user_data); - step_mem->nfe++; + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } + + /* compute the 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, __LINE__, __func__, @@ -1470,7 +1484,7 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, /* 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], + retval = step_mem->msolve((void*)ark_mem, step_mem->Fi[0], step_mem->nlscoef / ark_mem->h); if (retval) { @@ -1481,11 +1495,11 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, } } - /* compute the implicit component */ - if (step_mem->implicit) + /* compute the explicit component */ + if (step_mem->explicit) { - retval = step_mem->fi(t, y, step_mem->Fi[0], ark_mem->user_data); - step_mem->nfi++; + 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, __LINE__, __func__, @@ -1496,7 +1510,7 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, /* 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], + retval = step_mem->msolve((void*)ark_mem, step_mem->Fe[0], step_mem->nlscoef / ark_mem->h); if (retval) { @@ -1564,11 +1578,18 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_OTHER: - /* compute the explicit component and store in ark_tempv2 */ - if (step_mem->explicit) + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) { - retval = step_mem->fe(t, y, ark_mem->tempv2, ark_mem->user_data); - step_mem->nfe++; + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } + + /* 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++; if (retval != 0) { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, __LINE__, __func__, __FILE__, @@ -1577,11 +1598,11 @@ int arkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, } } - /* compute the implicit component and store in sdata */ - if (step_mem->implicit) + /* compute the explicit component and store in ark_tempv2 */ + if (step_mem->explicit) { - retval = step_mem->fi(t, y, step_mem->sdata, ark_mem->user_data); - step_mem->nfi++; + retval = step_mem->fe(t, y, ark_mem->tempv2, ark_mem->user_data); + step_mem->nfe++; if (retval != 0) { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, __LINE__, __func__, __FILE__, @@ -1845,6 +1866,13 @@ int arkStep_TakeStep_Z(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } else { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn, ark_mem->yn, + ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } retval = step_mem->fi(ark_mem->tn, ark_mem->yn, step_mem->Fi[0], ark_mem->user_data); step_mem->nfi++; @@ -2015,10 +2043,10 @@ int arkStep_TakeStep_Z(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) /* apply user-supplied stage postprocessing function (if supplied) */ /* NOTE: with internally inconsistent IMEX methods (c_i^E != c_i^I) the value of tcur corresponds to the stage time from the implicit table (c_i^I). */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -2068,6 +2096,21 @@ int arkStep_TakeStep_Z(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } } + /* apply user-supplied stage preprocessing function (if supplied) */ + /* NOTE: with internally inconsistent IMEX methods (c_i^E != c_i^I) the value + of tcur corresponds to the stage time from the implicit table (c_i^I). */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return (ARK_POSTPROCESS_STAGE_FAIL); + } + } + /* store implicit RHS (value in Fi[is] is from preceding nonlinear iteration) */ if (step_mem->implicit) { diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index c4282fe150..452f32c3db 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -614,6 +614,14 @@ int erkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, /* compute the RHS if needed */ if (!(ark_mem->fn_is_current)) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } + + /* call f */ retval = step_mem->f(t, y, step_mem->F[0], ark_mem->user_data); step_mem->nfe++; if (retval != 0) @@ -652,6 +660,13 @@ int erkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, /* base RHS call on recomputeRHS argument */ if (recomputeRHS) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } + /* call f */ retval = step_mem->f(t, y, step_mem->F[0], ark_mem->user_data); step_mem->nfe++; @@ -682,6 +697,13 @@ int erkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_OTHER: + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } + /* call f */ retval = step_mem->f(t, y, f, ark_mem->user_data); step_mem->nfe++; @@ -857,10 +879,10 @@ int erkStep_TakeStep(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -869,6 +891,19 @@ int erkStep_TakeStep(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } } + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return (ARK_POSTPROCESS_STAGE_FAIL); + } + } + /* compute updated RHS */ retval = step_mem->f(ark_mem->tcur, ark_mem->ycur, step_mem->F[is], ark_mem->user_data); diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index a89f57b8e2..5a46791ac1 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -564,12 +564,17 @@ struct ARKodeMemRec sunbooleantype relax_enabled; /* is relaxation enabled? */ ARKodeRelaxMem relax_mem; /* relaxation data structure */ - /* User-supplied step solution post-processing function */ - ARKPostProcessFn ProcessStep; + /* User-supplied step solution pre/post-processing functions */ + ARKPostProcessFn PreProcessStep; + ARKPostProcessFn PostProcessStep; + ARKPostProcessFn PostProcessStepFail; void* ps_data; /* pointer to user_data */ /* User-supplied stage solution post-processing function */ - ARKPostProcessFn ProcessStage; + ARKPostProcessFn PostProcessStage; + + /* User-supplied RHS function pre-processing function */ + ARKPostProcessFn PreProcessRHS; sunbooleantype use_compensated_sums; diff --git a/src/arkode/arkode_io.c b/src/arkode/arkode_io.c index cb70bbd19f..2e08cd5434 100644 --- a/src/arkode/arkode_io.c +++ b/src/arkode/arkode_io.c @@ -874,7 +874,11 @@ int ARKodeSetUserData(void* arkode_mem, void* user_data) if (ark_mem->root_mem != NULL) { ark_mem->root_mem->root_data = user_data; } /* Set data for post-processing a step */ - if (ark_mem->ProcessStep != NULL) { ark_mem->ps_data = user_data; } + if ((ark_mem->PreProcessStep != NULL) || (ark_mem->PostProcessStep != NULL) || + (ark_mem->PostProcessStepFail != NULL)) + { + ark_mem->ps_data = user_data; + } /* Set user data into stepper (if provided) */ if (ark_mem->step_setuserdata) @@ -1490,16 +1494,41 @@ int ARKodeSetNoInactiveRootWarn(void* arkode_mem) } /*--------------------------------------------------------------- + ARKodeSetPreprocessStepFn: ARKodeSetPostprocessStepFn: + ARKodeSetPostprocessStepFailFn: - Specifies a user-provided step postprocessing function having - type ARKPostProcessFn. A NULL input function disables step - postprocessing. + Specifies user-provided step pre- and post-processing functions + having type ARKPostProcessFn. A NULL input function disables step + pre- or post-step processing. + + The "Preprocess" function is called just prior to taking a step, + while the "Postprocess" function is called immediately after + a successful step. The "PostprocessStepFail" function is called + immediately after a failed step. IF THE SUPPLIED FUNCTION MODIFIES ANY OF THE ACTIVE STATE DATA, THEN ALL THEORETICAL GUARANTEES OF SOLUTION ACCURACY AND STABILITY ARE LOST. ---------------------------------------------------------------*/ +int ARKodeSetPreprocessStepFn(void* arkode_mem, ARKPostProcessFn ProcessStep) +{ + ARKodeMem ark_mem; + if (arkode_mem == NULL) + { + arkProcessError(NULL, ARK_MEM_NULL, __LINE__, __func__, __FILE__, + MSG_ARK_NO_MEM); + return (ARK_MEM_NULL); + } + ark_mem = (ARKodeMem)arkode_mem; + + /* NULL argument sets default, otherwise set inputs */ + ark_mem->PreProcessStep = ProcessStep; + ark_mem->ps_data = ark_mem->user_data; + + return (ARK_SUCCESS); +} + int ARKodeSetPostprocessStepFn(void* arkode_mem, ARKPostProcessFn ProcessStep) { ARKodeMem ark_mem; @@ -1512,8 +1541,26 @@ int ARKodeSetPostprocessStepFn(void* arkode_mem, ARKPostProcessFn ProcessStep) ark_mem = (ARKodeMem)arkode_mem; /* NULL argument sets default, otherwise set inputs */ - ark_mem->ProcessStep = ProcessStep; - ark_mem->ps_data = ark_mem->user_data; + ark_mem->PostProcessStep = ProcessStep; + ark_mem->ps_data = ark_mem->user_data; + + return (ARK_SUCCESS); +} + +int ARKodeSetPostprocessStepFailFn(void* arkode_mem, ARKPostProcessFn ProcessStep) +{ + ARKodeMem ark_mem; + if (arkode_mem == NULL) + { + arkProcessError(NULL, ARK_MEM_NULL, __LINE__, __func__, __FILE__, + MSG_ARK_NO_MEM); + return (ARK_MEM_NULL); + } + ark_mem = (ARKodeMem)arkode_mem; + + /* NULL argument sets default, otherwise set inputs */ + ark_mem->PostProcessStepFail = ProcessStep; + ark_mem->ps_data = ark_mem->user_data; return (ARK_SUCCESS); } @@ -1521,9 +1568,12 @@ int ARKodeSetPostprocessStepFn(void* arkode_mem, ARKPostProcessFn ProcessStep) /*--------------------------------------------------------------- ARKodeSetPostprocessStageFn: - Specifies a user-provided stage postprocessing function having - type ARKPostProcessFn. A NULL input function disables - stage postprocessing. + Specifies user-provided stage post-processing + function having type ARKPostProcessFn. A NULL input function + disables post-stage processing. + + The "ProcessStage" function is called immediately after + computing a stage. IF THE SUPPLIED FUNCTION MODIFIES ANY OF THE ACTIVE STATE DATA, THEN ALL THEORETICAL GUARANTEES OF SOLUTION ACCURACY AND @@ -1548,7 +1598,40 @@ int ARKodeSetPostprocessStageFn(void* arkode_mem, ARKPostProcessFn ProcessStage) ark_mem = (ARKodeMem)arkode_mem; /* NULL argument sets default, otherwise set inputs */ - ark_mem->ProcessStage = ProcessStage; + ark_mem->PostProcessStage = ProcessStage; + + return (ARK_SUCCESS); +} + +/*--------------------------------------------------------------- + ARKodeSetPreprocessRHSFn: + + Specifies user-provided pre-processing function having type + ARKPostProcessFn. A NULL input function disables pre-RHS + processing. + + The "PreprocessRHS" function is called on a state vector + just prior to computing the RHS. For problems with partitioned + RHS functions that are called with identical inputs, this is + only called before the first RHS evaluation. + + IF THE SUPPLIED FUNCTION MODIFIES ANY OF THE ACTIVE STATE DATA, + THEN ALL THEORETICAL GUARANTEES OF SOLUTION ACCURACY AND + STABILITY ARE LOST. + ---------------------------------------------------------------*/ +int ARKodeSetPreprocessRHSFn(void* arkode_mem, ARKPostProcessFn PreprocessRHS) +{ + ARKodeMem ark_mem; + if (arkode_mem == NULL) + { + arkProcessError(NULL, ARK_MEM_NULL, __LINE__, __func__, __FILE__, + MSG_ARK_NO_MEM); + return (ARK_MEM_NULL); + } + ark_mem = (ARKodeMem)arkode_mem; + + /* NULL argument sets default, otherwise set inputs */ + ark_mem->PreProcessRHS = PreprocessRHS; return (ARK_SUCCESS); } diff --git a/src/arkode/arkode_lsrkstep.c b/src/arkode/arkode_lsrkstep.c index ec09b323d7..eb4e7b5539 100644 --- a/src/arkode/arkode_lsrkstep.c +++ b/src/arkode/arkode_lsrkstep.c @@ -451,6 +451,12 @@ int lsrkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, /* compute the RHS */ if (!ark_mem->fn_is_current) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } retval = step_mem->fe(t, y, f, ark_mem->user_data); step_mem->nfe++; if (retval != 0) @@ -470,6 +476,12 @@ int lsrkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, ark_mem->fn_is_current is changed by ARKODE. */ if (step_mem->is_SSP) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } retval = step_mem->fe(t, y, ark_mem->fn, ark_mem->user_data); step_mem->nfe++; ark_mem->fn_is_current = SUNTRUE; @@ -486,6 +498,13 @@ int lsrkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_OTHER: + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } + /* call f */ retval = step_mem->fe(t, y, f, ark_mem->user_data); step_mem->nfe++; @@ -610,6 +629,20 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) if ((!ark_mem->fn_is_current && ark_mem->initsetup) || (step_mem->step_nst != ark_mem->nst)) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn, ark_mem->yn, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + + /* call fe */ retval = step_mem->fe(ark_mem->tn, ark_mem->yn, ark_mem->fn, ark_mem->user_data); step_mem->nfe++; @@ -652,10 +685,10 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) N_VLinearSum(ONE, ark_mem->yn, ark_mem->h * mus, ark_mem->fn, ark_mem->tempv2); /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tn + ark_mem->h * mus, - ark_mem->tempv2, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tn + ark_mem->h * mus, + ark_mem->tempv2, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -685,6 +718,19 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) nu = -bj / bjm2; mus = mu * w1 / w0; + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h * thjm1, + ark_mem->tempv2, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + /* Use the ycur array for temporary storage here */ retval = step_mem->fe(ark_mem->tcur + ark_mem->h * thjm1, ark_mem->tempv2, ark_mem->ycur, ark_mem->user_data); @@ -727,10 +773,10 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL && j < step_mem->req_stages) + if (ark_mem->PostProcessStage != NULL && j < step_mem->req_stages) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * thj, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + ark_mem->h * thj, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -769,6 +815,19 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) /* Compute yerr (if step adaptivity enabled) */ if (!ark_mem->fixedstep) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, ark_mem->tempv2, ark_mem->user_data); step_mem->nfe++; @@ -802,6 +861,19 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } else { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, ark_mem->tempv2, ark_mem->user_data); step_mem->nfe++; @@ -926,6 +998,18 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) if ((!ark_mem->fn_is_current && ark_mem->initsetup) || (step_mem->step_nst != ark_mem->nst)) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn, ark_mem->yn, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } retval = step_mem->fe(ark_mem->tn, ark_mem->yn, ark_mem->fn, ark_mem->user_data); step_mem->nfe++; @@ -962,10 +1046,10 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) N_VLinearSum(ONE, ark_mem->yn, ark_mem->h * mus, ark_mem->fn, ark_mem->tempv2); /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tn + ark_mem->h * mus, - ark_mem->tempv2, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tn + ark_mem->h * mus, + ark_mem->tempv2, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -985,6 +1069,19 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) mus = w1 * mu; cj = temj * w1 / FOUR; + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h * cjm1, + ark_mem->tempv2, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + /* Use the ycur array for temporary storage here */ retval = step_mem->fe(ark_mem->tcur + ark_mem->h * cjm1, ark_mem->tempv2, ark_mem->ycur, ark_mem->user_data); @@ -1023,10 +1120,10 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL && j < step_mem->req_stages) + if (ark_mem->PostProcessStage != NULL && j < step_mem->req_stages) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * cj, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + ark_mem->h * cj, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1055,20 +1152,33 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) SUNLogExtraDebugVec(ARK_LOGGER, "updated solution", ark_mem->ycur, "ycur(:) ="); SUNLogInfo(ARK_LOGGER, "begin-compute-embedding", ""); - /* Compute yerr (if step adaptivity enabled) */ - if (!ark_mem->fixedstep) + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) { - retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, - ark_mem->tempv2, ark_mem->user_data); - step_mem->nfe++; + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } - SUNLogExtraDebugVec(ARK_LOGGER, "solution RHS", ark_mem->tempv2, "F_n(:) ="); - SUNLogInfoIf(retval != 0, ARK_LOGGER, "end-compute-embedding", - "status = failed rhs eval, retval = %i", retval); + retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->tempv2, ark_mem->user_data); + step_mem->nfe++; - if (retval < 0) { return ARK_RHSFUNC_FAIL; } - if (retval > 0) { return RHSFUNC_RECVR; } + SUNLogExtraDebugVec(ARK_LOGGER, "solution RHS", ark_mem->tempv2, "F_n(:) ="); + SUNLogInfoIf(retval != 0, ARK_LOGGER, "end-compute-embedding", + "status = failed rhs eval, retval = %i", retval); + + if (retval < 0) { return ARK_RHSFUNC_FAIL; } + if (retval > 0) { return RHSFUNC_RECVR; } + /* Compute yerr (if step adaptivity enabled) */ + if (!ark_mem->fixedstep) + { /* Estimate the local error and compute its weighted RMS norm */ cvals[0] = p8; Xvecs[0] = ark_mem->yn; @@ -1089,21 +1199,7 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) *dsmPtr = N_VWrmsNorm(ark_mem->tempv1, ark_mem->ewt); lsrkStep_DomEigUpdateLogic(ark_mem, step_mem, *dsmPtr); } - else - { - retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, - ark_mem->tempv2, ark_mem->user_data); - step_mem->nfe++; - - SUNLogExtraDebugVec(ARK_LOGGER, "solution RHS", ark_mem->tempv2, "F_n(:) ="); - SUNLogInfoIf(retval != 0, ARK_LOGGER, "end-compute-embedding", - "status = failed rhs eval, retval = %i", retval); - - if (retval < 0) { return ARK_RHSFUNC_FAIL; } - if (retval > 0) { return RHSFUNC_RECVR; } - - lsrkStep_DomEigUpdateLogic(ark_mem, step_mem, *dsmPtr); - } + else { lsrkStep_DomEigUpdateLogic(ark_mem, step_mem, *dsmPtr); } SUNLogInfo(ARK_LOGGER, "end-compute-embedding", "status = success"); @@ -1174,6 +1270,19 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr of the step unless a renewed step or ARKODE updated fn. */ if (!ark_mem->fn_is_current) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn, ark_mem->yn, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tn, ark_mem->yn, ark_mem->fn, ark_mem->user_data); step_mem->nfe++; @@ -1200,10 +1309,10 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tn + sm1inv * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tn + sm1inv * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1215,6 +1324,20 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* Evaluate stages j = 2,...,step_mem->req_stages - 1 */ for (int j = 2; j < step_mem->req_stages; j++) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ((sunrealtype)j - ONE) * + sm1inv * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ((sunrealtype)j - ONE) * sm1inv * ark_mem->h, ark_mem->ycur, ark_mem->tempv2, ark_mem->user_data); @@ -1242,20 +1365,32 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + j * sm1inv * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + j * sm1inv * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", - "status = failed vector op, retval = %i", retval); + "status = failed postprocess stage, retval = %i", retval); return ARK_POSTPROCESS_STAGE_FAIL; } } } /* Evaluate the last stage for j = step_mem->req_stages */ + + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, ark_mem->tempv2, ark_mem->user_data); step_mem->nfe++; @@ -1359,6 +1494,19 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr of the step unless ARKODE updated fn. */ if (!ark_mem->fn_is_current) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn, ark_mem->yn, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tn, ark_mem->yn, ark_mem->fn, ark_mem->user_data); step_mem->nfe++; @@ -1384,10 +1532,10 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tn + ark_mem->h * rat, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tn + ark_mem->h * rat, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1399,6 +1547,20 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* Evaluate stages j = 2,...,step_mem->req_stages */ for (int j = 2; j <= ((in - 1) * (in - 2) / 2); j++) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ((sunrealtype)j - ONE) * + rat * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ((sunrealtype)j - ONE) * rat * ark_mem->h, ark_mem->ycur, ark_mem->tempv3, ark_mem->user_data); @@ -1426,10 +1588,10 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + j * rat * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + j * rat * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1443,6 +1605,20 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr for (int j = ((in - 1) * (in - 2) / 2 + 1); j <= (in * (in + 1) / 2 - 1); j++) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ((sunrealtype)j - ONE) * + rat * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ((sunrealtype)j - ONE) * rat * ark_mem->h, ark_mem->ycur, ark_mem->tempv3, ark_mem->user_data); @@ -1470,10 +1646,10 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + j * rat * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + j * rat * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1483,6 +1659,21 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } } + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = + ark_mem->PreProcessRHS(ark_mem->tcur + + rat * (rn * (rn + ONE) / TWO - ONE) * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + rat * (rn * (rn + ONE) / TWO - ONE) * ark_mem->h, ark_mem->ycur, ark_mem->tempv3, ark_mem->user_data); @@ -1523,16 +1714,36 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + - rat * (rn * (rn - ONE) / TWO) * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); - if (retval != 0) { return ARK_POSTPROCESS_STAGE_FAIL; } + retval = + ark_mem->PostProcessStage(ark_mem->tcur + + rat * (rn * (rn - ONE) / TWO) * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed postprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } } for (int j = (in * (in + 1) / 2 + 1); j <= step_mem->req_stages; j++) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ((sunrealtype)j - rn - ONE) * + rat * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ((sunrealtype)j - rn - ONE) * rat * ark_mem->h, ark_mem->ycur, ark_mem->tempv3, ark_mem->user_data); @@ -1560,11 +1771,11 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL && j < step_mem->req_stages) + if (ark_mem->PostProcessStage != NULL && j < step_mem->req_stages) { - retval = ark_mem->ProcessStage(ark_mem->tcur + - ((sunrealtype)j - rn) * rat * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + ((sunrealtype)j - rn) * + rat * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1644,6 +1855,19 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr of the step unless ARKODE updated fn. */ if (!ark_mem->fn_is_current) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn, ark_mem->yn, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tn, ark_mem->yn, ark_mem->fn, ark_mem->user_data); step_mem->nfe++; @@ -1669,10 +1893,10 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tn + ark_mem->h * p5, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tn + ark_mem->h * p5, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1681,6 +1905,19 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } } + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h * p5, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ark_mem->h * p5, ark_mem->ycur, ark_mem->tempv3, ark_mem->user_data); step_mem->nfe++; @@ -1705,10 +1942,10 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1717,6 +1954,19 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } } + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, ark_mem->tempv3, ark_mem->user_data); step_mem->nfe++; @@ -1754,10 +2004,10 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * p5, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + ark_mem->h * p5, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1766,6 +2016,19 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } } + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h * p5, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ark_mem->h * p5, ark_mem->ycur, ark_mem->tempv3, ark_mem->user_data); step_mem->nfe++; @@ -1849,6 +2112,19 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt of the step unless ARKODE updated fn. */ if (!ark_mem->fn_is_current) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn, ark_mem->yn, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tn, ark_mem->yn, ark_mem->fn, ark_mem->user_data); step_mem->nfe++; @@ -1877,19 +2153,32 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt ark_mem->tempv1); } + /* apply user-supplied stage postprocessing function (if supplied) */ + if (ark_mem->PostProcessStage != NULL) + { + retval = ark_mem->PostProcessStage(ark_mem->tn + onesixth * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed postprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + /* Evaluate stages j = 2,...,step_mem->req_stages */ for (int j = 2; j <= 5; j++) { - /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - ONE) * - onesixth * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ((sunrealtype)j - ONE) * + onesixth * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", - "status = failed postprocess stage, retval = %i", retval); + "status = failed preprocess stage, retval = %i", retval); return ARK_POSTPROCESS_STAGE_FAIL; } } @@ -1919,8 +2208,24 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt N_VLinearSum(ONE, ark_mem->tempv1, SUN_RCONST(0.3) * ark_mem->h, ark_mem->tempv3, ark_mem->tempv1); } + + /* apply user-supplied stage postprocessing function (if supplied) */ + if (ark_mem->PostProcessStage != NULL) + { + retval = ark_mem->PostProcessStage(ark_mem->tn + j * onesixth * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed postprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } } + /* no need to call stage preprocessing here, since the stage does not require + a RHS function evaluation */ + SUNLogInfo(ARK_LOGGER, "end-stages-list", "status = success"); SUNLogInfo(ARK_LOGGER, "begin-stages-list", "stage = %i, tcur = " SUN_FORMAT_G, 6, ark_mem->tn + TWO * onesixth * ark_mem->h); @@ -1932,10 +2237,10 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt ark_mem->ycur, ark_mem->ycur); /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + TWO * onesixth * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + TWO * onesixth * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1946,6 +2251,20 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt for (int j = 6; j <= 9; j++) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ((sunrealtype)j - FOUR) * + onesixth * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ((sunrealtype)j - FOUR) * onesixth * ark_mem->h, ark_mem->ycur, ark_mem->tempv3, ark_mem->user_data); @@ -1978,11 +2297,11 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - THREE) * - onesixth * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur + ((sunrealtype)j - THREE) * + onesixth * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1992,6 +2311,19 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt } } + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return ARK_POSTPROCESS_STAGE_FAIL; + } + } + retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, ark_mem->tempv3, ark_mem->user_data); step_mem->nfe++; @@ -2401,6 +2733,14 @@ int lsrkStep_DQJtimes(void* arkode_mem, N_Vector v, N_Vector Jv) if ((!ark_mem->fn_is_current && ark_mem->initsetup) || (step_mem->step_nst != ark_mem->nst)) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn, ark_mem->yn, + ark_mem->user_data); + if (retval != 0) { return ARK_POSTPROCESS_STAGE_FAIL; } + } + retval = step_mem->fe(ark_mem->tn, ark_mem->yn, ark_mem->fn, ark_mem->user_data); step_mem->nfeDQ++; @@ -2424,7 +2764,11 @@ int lsrkStep_DQJtimes(void* arkode_mem, N_Vector v, N_Vector Jv) N_VLinearSum(sig, v, ONE, y, work); /* Set Jv = f(tn, y+sig*v) */ - //TODO:Needs to be update when LSRK Supports IMEX + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(t, work, ark_mem->user_data); + if (retval != 0) { return ARK_POSTPROCESS_STAGE_FAIL; } + } retval = step_mem->fe(t, work, Jv, ark_mem->user_data); step_mem->nfeDQ++; if (retval == 0) { break; } diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index 39189bda5c..9057ce4c55 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -1476,11 +1476,18 @@ int mriStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, step_mem->Xvecs[nvec] = f; nvec++; - /* compute the explicit component and store in ark_tempv2 */ - if (step_mem->explicit_rhs) + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) { - retval = step_mem->fse(t, y, ark_mem->tempv2, ark_mem->user_data); - step_mem->nfse++; + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } + + /* 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++; if (retval != 0) { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, __LINE__, __func__, __FILE__, @@ -1488,15 +1495,15 @@ int mriStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, return (ARK_RHSFUNC_FAIL); } step_mem->cvals[nvec] = ONE; - step_mem->Xvecs[nvec] = ark_mem->tempv2; + step_mem->Xvecs[nvec] = step_mem->sdata; nvec++; } - /* compute the implicit component and store in sdata */ - if (step_mem->implicit_rhs) + /* compute the explicit component and store in ark_tempv2 */ + if (step_mem->explicit_rhs) { - retval = step_mem->fsi(t, y, step_mem->sdata, ark_mem->user_data); - step_mem->nfsi++; + retval = step_mem->fse(t, y, ark_mem->tempv2, ark_mem->user_data); + step_mem->nfse++; if (retval != 0) { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, __LINE__, __func__, __FILE__, @@ -1504,7 +1511,7 @@ int mriStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, return (ARK_RHSFUNC_FAIL); } step_mem->cvals[nvec] = ONE; - step_mem->Xvecs[nvec] = step_mem->sdata; + step_mem->Xvecs[nvec] = ark_mem->tempv2; nvec++; } @@ -1597,33 +1604,13 @@ int mriStep_UpdateF0(ARKodeMem ark_mem, ARKodeMRIStepMem step_mem, /* update the RHS components */ - /* explicit component */ - if (step_mem->explicit_rhs) + /* apply user-supplied stage preprocessing function (if supplied) */ + if ((ark_mem->PreProcessRHS != NULL) && + ((!step_mem->fse_is_current || !ark_mem->fn_is_current) || + (!step_mem->fsi_is_current || !ark_mem->fn_is_current))) { - /* if either ARKODE or MRIStep consider Fse[0] stale, then recompute */ - if (!step_mem->fse_is_current || !ark_mem->fn_is_current) - { - 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, __LINE__, __func__, - __FILE__, MSG_ARK_RHSFUNC_FAILED, t); - return (ARK_RHSFUNC_FAIL); - } - step_mem->fse_is_current = SUNTRUE; - - /* Add external forcing, if applicable */ - if (step_mem->expforcing) - { - step_mem->cvals[0] = ONE; - step_mem->Xvecs[0] = step_mem->Fse[0]; - nvec = 1; - mriStep_ApplyForcing(step_mem, t, ONE, &nvec); - N_VLinearCombination(nvec, step_mem->cvals, step_mem->Xvecs, - step_mem->Fse[0]); - } - } + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } /* implicit component */ @@ -1655,15 +1642,11 @@ int mriStep_UpdateF0(ARKodeMem ark_mem, ARKodeMRIStepMem step_mem, } } - break; - - case ARK_FULLRHS_END: - - /* compute the full RHS */ - if (!(ark_mem->fn_is_current)) + /* explicit component */ + if (step_mem->explicit_rhs) { - /* compute the explicit component */ - if (step_mem->explicit_rhs) + /* if either ARKODE or MRIStep consider Fse[0] stale, then recompute */ + if (!step_mem->fse_is_current || !ark_mem->fn_is_current) { retval = step_mem->fse(t, y, step_mem->Fse[0], ark_mem->user_data); step_mem->nfse++; @@ -1675,7 +1658,7 @@ int mriStep_UpdateF0(ARKodeMem ark_mem, ARKodeMRIStepMem step_mem, } step_mem->fse_is_current = SUNTRUE; - /* Add external forcing, as appropriate */ + /* Add external forcing, if applicable */ if (step_mem->expforcing) { step_mem->cvals[0] = ONE; @@ -1686,6 +1669,21 @@ int mriStep_UpdateF0(ARKodeMem ark_mem, ARKodeMRIStepMem step_mem, step_mem->Fse[0]); } } + } + + break; + + case ARK_FULLRHS_END: + + /* compute the full RHS */ + if (!(ark_mem->fn_is_current)) + { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } /* compute the implicit component */ if (step_mem->implicit_rhs) @@ -1711,6 +1709,31 @@ int mriStep_UpdateF0(ARKodeMem ark_mem, ARKodeMRIStepMem step_mem, step_mem->Fsi[0]); } } + + /* compute the 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, __LINE__, __func__, + __FILE__, MSG_ARK_RHSFUNC_FAILED, t); + return (ARK_RHSFUNC_FAIL); + } + step_mem->fse_is_current = SUNTRUE; + + /* Add external forcing, as appropriate */ + if (step_mem->expforcing) + { + step_mem->cvals[0] = ONE; + step_mem->Xvecs[0] = step_mem->Fse[0]; + nvec = 1; + mriStep_ApplyForcing(step_mem, t, ONE, &nvec); + N_VLinearCombination(nvec, step_mem->cvals, step_mem->Xvecs, + step_mem->Fse[0]); + } + } } break; @@ -1953,11 +1976,11 @@ int mriStep_TakeStepMRIGARK(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt SUNLogExtraDebugVec(ARK_LOGGER, "slow stage", ark_mem->ycur, "z_%i(:) =", is); /* apply user-supplied stage postprocessing function (if supplied) */ - if ((ark_mem->ProcessStage != NULL) && + if ((ark_mem->PostProcessStage != NULL) && (step_mem->stagetypes[is] != MRISTAGE_STIFF_ACC)) { - retval = ark_mem->ProcessStage(ark_mem->tcur, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -1970,7 +1993,7 @@ int mriStep_TakeStepMRIGARK(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt if (step_mem->stagetypes[is] != MRISTAGE_STIFF_ACC) { if ((step_mem->stagetypes[is] != MRISTAGE_ERK_FAST) || - (ark_mem->ProcessStage != NULL)) + (ark_mem->PostProcessStage != NULL)) { retval = mriStepInnerStepper_Reset(step_mem->stepper, tf, ark_mem->ycur); if (retval != ARK_SUCCESS) @@ -1995,32 +2018,16 @@ int mriStep_TakeStepMRIGARK(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt } if (calc_fslow) { - /* store explicit slow rhs */ - if (step_mem->explicit_rhs) + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) { - retval = step_mem->fse(ark_mem->tcur, ark_mem->ycur, - step_mem->Fse[step_mem->stage_map[is]], - ark_mem->user_data); - step_mem->nfse++; - - SUNLogExtraDebugVec(ARK_LOGGER, "slow explicit RHS", - step_mem->Fse[step_mem->stage_map[is]], - "Fse_%i(:) =", is); - SUNLogInfoIf(retval != 0, ARK_LOGGER, "end-stages-list", - "status = failed explicit rhs eval, retval = %i", retval); - - if (retval < 0) { return (ARK_RHSFUNC_FAIL); } - if (retval > 0) { return (ARK_UNREC_RHSFUNC_ERR); } - - /* Add external forcing to Fse, if applicable */ - if (step_mem->expforcing) + retval = ark_mem->PreProcessRHS(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) { - step_mem->cvals[0] = ONE; - step_mem->Xvecs[0] = step_mem->Fse[step_mem->stage_map[is]]; - nvec = 1; - mriStep_ApplyForcing(step_mem, tf, ONE, &nvec); - N_VLinearCombination(nvec, step_mem->cvals, step_mem->Xvecs, - step_mem->Fse[step_mem->stage_map[is]]); + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -2066,6 +2073,35 @@ int mriStep_TakeStepMRIGARK(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt "Fsi_%i(:) =", is); } } + + /* store explicit slow rhs */ + if (step_mem->explicit_rhs) + { + retval = step_mem->fse(ark_mem->tcur, ark_mem->ycur, + step_mem->Fse[step_mem->stage_map[is]], + ark_mem->user_data); + step_mem->nfse++; + + SUNLogExtraDebugVec(ARK_LOGGER, "slow explicit RHS", + step_mem->Fse[step_mem->stage_map[is]], + "Fse_%i(:) =", is); + SUNLogInfoIf(retval != 0, ARK_LOGGER, "end-stages-list", + "status = failed explicit rhs eval, retval = %i", retval); + + if (retval < 0) { return (ARK_RHSFUNC_FAIL); } + if (retval > 0) { return (ARK_UNREC_RHSFUNC_ERR); } + + /* Add external forcing to Fse, if applicable */ + if (step_mem->expforcing) + { + step_mem->cvals[0] = ONE; + step_mem->Xvecs[0] = step_mem->Fse[step_mem->stage_map[is]]; + nvec = 1; + mriStep_ApplyForcing(step_mem, tf, ONE, &nvec); + N_VLinearCombination(nvec, step_mem->cvals, step_mem->Xvecs, + step_mem->Fse[step_mem->stage_map[is]]); + } + } } /* compute slow RHS */ SUNLogInfo(ARK_LOGGER, "end-stages-list", "status = success"); @@ -2212,11 +2248,11 @@ int mriStep_TakeStepMRIGARK(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt SUNLogExtraDebugVec(ARK_LOGGER, "slow stage", ark_mem->ycur, "z_%i(:) =", is); /* apply user-supplied stage postprocessing function (if supplied) */ - if ((ark_mem->ProcessStage != NULL) && + if ((ark_mem->PostProcessStage != NULL) && (step_mem->stagetypes[is] != MRISTAGE_STIFF_ACC)) { - retval = ark_mem->ProcessStage(ark_mem->tcur, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -2229,7 +2265,7 @@ int mriStep_TakeStepMRIGARK(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt if (step_mem->stagetypes[is] != MRISTAGE_STIFF_ACC) { if ((step_mem->stagetypes[is] != MRISTAGE_ERK_FAST) || - (ark_mem->ProcessStage != NULL)) + (ark_mem->PostProcessStage != NULL)) { retval = mriStepInnerStepper_Reset(step_mem->stepper, tf, ark_mem->ycur); if (retval != ARK_SUCCESS) @@ -2600,10 +2636,10 @@ int mriStep_TakeStepMRISR(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) /* apply user-supplied stage postprocessing function (if supplied), and reset the inner integrator with the modified stage solution */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -2625,30 +2661,16 @@ int mriStep_TakeStepMRISR(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) /* Compute updated slow RHS (except for final solution or embedding) */ if ((!solution) && (!embedding)) { - /* store explicit slow rhs */ - if (step_mem->explicit_rhs) + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) { - retval = step_mem->fse(ark_mem->tcur, ark_mem->ycur, - step_mem->Fse[stage], ark_mem->user_data); - step_mem->nfse++; - - SUNLogExtraDebugVec(ARK_LOGGER, "slow explicit RHS", - step_mem->Fse[stage], "Fse_%i(:) =", stage); - SUNLogInfoIf(retval != 0, ARK_LOGGER, "end-stages-list", - "status = failed explicit rhs eval, retval = %i", retval); - - if (retval < 0) { return (ARK_RHSFUNC_FAIL); } - if (retval > 0) { return (ARK_UNREC_RHSFUNC_ERR); } - - /* Add external forcing to Fse[stage], if applicable */ - if (step_mem->expforcing) + retval = ark_mem->PreProcessRHS(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) { - step_mem->cvals[0] = ONE; - step_mem->Xvecs[0] = step_mem->Fse[stage]; - nvec = 1; - mriStep_ApplyForcing(step_mem, ark_mem->tcur, ONE, &nvec); - N_VLinearCombination(nvec, step_mem->cvals, step_mem->Xvecs, - step_mem->Fse[stage]); + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -2691,6 +2713,33 @@ int mriStep_TakeStepMRISR(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } } + /* store explicit slow rhs */ + if (step_mem->explicit_rhs) + { + retval = step_mem->fse(ark_mem->tcur, ark_mem->ycur, + step_mem->Fse[stage], ark_mem->user_data); + step_mem->nfse++; + + SUNLogExtraDebugVec(ARK_LOGGER, "slow explicit RHS", + step_mem->Fse[stage], "Fse_%i(:) =", stage); + SUNLogInfoIf(retval != 0, ARK_LOGGER, "end-stages-list", + "status = failed explicit rhs eval, retval = %i", retval); + + if (retval < 0) { return (ARK_RHSFUNC_FAIL); } + if (retval > 0) { return (ARK_UNREC_RHSFUNC_ERR); } + + /* Add external forcing to Fse[stage], if applicable */ + if (step_mem->expforcing) + { + step_mem->cvals[0] = ONE; + step_mem->Xvecs[0] = step_mem->Fse[stage]; + nvec = 1; + mriStep_ApplyForcing(step_mem, ark_mem->tcur, ONE, &nvec); + N_VLinearCombination(nvec, step_mem->cvals, step_mem->Xvecs, + step_mem->Fse[stage]); + } + } + /* combine both RHS into Fse for ImEx problems since fast forcing function only depends on Omega coefficients */ if (step_mem->implicit_rhs && step_mem->explicit_rhs) @@ -2990,10 +3039,10 @@ int mriStep_TakeStepMERK(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) /* apply user-supplied stage postprocessing function (if supplied), and reset the inner integrator with the modified stage solution */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -3020,6 +3069,19 @@ int mriStep_TakeStepMERK(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) /* Compute updated slow RHS (except for final solution or embedding) */ if ((!solution) && (!embedding)) { + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return (ARK_POSTPROCESS_STAGE_FAIL); + } + } + /* store explicit slow rhs */ retval = step_mem->fse(ark_mem->tcur, ark_mem->ycur, step_mem->Fse[stage], ark_mem->user_data); @@ -4166,12 +4228,19 @@ int mriStep_SlowRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, retval = mriStep_AccessStepMem(ark_mem, __func__, &step_mem); if (retval != ARK_SUCCESS) { return (retval); } - /* call fse if the problem has an explicit component */ - if (step_mem->explicit_rhs) + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) { - retval = step_mem->fse(t, y, step_mem->Fse[0], ark_mem->user_data); - step_mem->nfse++; - step_mem->fse_is_current = SUNTRUE; + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_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++; + step_mem->fsi_is_current = SUNTRUE; if (retval != 0) { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, __LINE__, __func__, __FILE__, @@ -4180,23 +4249,23 @@ int mriStep_SlowRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, } /* Add external forcing, if applicable */ - if (step_mem->expforcing) + if (step_mem->impforcing) { step_mem->cvals[0] = ONE; - step_mem->Xvecs[0] = step_mem->Fse[0]; + step_mem->Xvecs[0] = step_mem->Fsi[0]; nvec = 1; mriStep_ApplyForcing(step_mem, t, ONE, &nvec); N_VLinearCombination(nvec, step_mem->cvals, step_mem->Xvecs, - step_mem->Fse[0]); + step_mem->Fsi[0]); } } - /* call fsi if the problem has an implicit component */ - if (step_mem->implicit_rhs) + /* call fse if the problem has an explicit component */ + if (step_mem->explicit_rhs) { - retval = step_mem->fsi(t, y, step_mem->Fsi[0], ark_mem->user_data); - step_mem->nfsi++; - step_mem->fsi_is_current = SUNTRUE; + retval = step_mem->fse(t, y, step_mem->Fse[0], ark_mem->user_data); + step_mem->nfse++; + step_mem->fse_is_current = SUNTRUE; if (retval != 0) { arkProcessError(ark_mem, ARK_RHSFUNC_FAIL, __LINE__, __func__, __FILE__, @@ -4205,14 +4274,14 @@ int mriStep_SlowRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, } /* Add external forcing, if applicable */ - if (step_mem->impforcing) + if (step_mem->expforcing) { step_mem->cvals[0] = ONE; - step_mem->Xvecs[0] = step_mem->Fsi[0]; + step_mem->Xvecs[0] = step_mem->Fse[0]; nvec = 1; mriStep_ApplyForcing(step_mem, t, ONE, &nvec); N_VLinearCombination(nvec, step_mem->cvals, step_mem->Xvecs, - step_mem->Fsi[0]); + step_mem->Fse[0]); } } diff --git a/src/arkode/arkode_sprkstep.c b/src/arkode/arkode_sprkstep.c index cbf88749aa..a2ae4d57fc 100644 --- a/src/arkode/arkode_sprkstep.c +++ b/src/arkode/arkode_sprkstep.c @@ -492,6 +492,13 @@ int sprkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, case ARK_FULLRHS_END: case ARK_FULLRHS_OTHER: + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(t, y, ark_mem->user_data); + if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } + } + /* Since f1 and f2 do not have overlapping outputs and so the f vector is passed to both RHS functions. */ @@ -566,6 +573,20 @@ int sprkStep_TakeStep(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) N_VConst(ZERO, step_mem->sdata); /* either have to do this or ask user to set other outputs to zero */ + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn + chati * ark_mem->h, + prev_stage, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return (ARK_POSTPROCESS_STAGE_FAIL); + } + } + + /* evaluate p' */ retval = sprkStep_f1(step_mem, ark_mem->tn + chati * ark_mem->h, prev_stage, step_mem->sdata, ark_mem->user_data); @@ -595,6 +616,20 @@ int sprkStep_TakeStep(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) N_VConst(ZERO, step_mem->sdata); /* either have to do this or ask user to set other outputs to zero */ + /* apply user-supplied stage preprocessing function (if supplied) */ + if (ark_mem->PreProcessRHS != NULL) + { + retval = ark_mem->PreProcessRHS(ark_mem->tn + ci * ark_mem->h, + curr_stage, ark_mem->user_data); + if (retval != 0) + { + SUNLogInfo(ARK_LOGGER, "end-stages-list", + "status = failed preprocess stage, retval = %i", retval); + return (ARK_POSTPROCESS_STAGE_FAIL); + } + } + + /* evaluate q' */ retval = sprkStep_f2(step_mem, ark_mem->tn + ci * ark_mem->h, curr_stage, step_mem->sdata, ark_mem->user_data); @@ -613,10 +648,10 @@ int sprkStep_TakeStep(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } /* apply user-supplied stage postprocessing function (if supplied) */ - if (ark_mem->ProcessStage != NULL) + if (ark_mem->PostProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->PostProcessStage(ark_mem->tcur, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { SUNLogInfo(ARK_LOGGER, "end-stages-list", @@ -669,6 +704,20 @@ int sprkStep_TakeStep_Compensated(ARKodeMem ark_mem, sunrealtype* dsmPtr, [ \Delta Q_0 ] = [ 0 ] */ N_VConst(ZERO, delta_Yi); + /* if user-supplied stage preprocessing or postprocessing functions, + * we error out since those won't work with the increment form */ + if ((ark_mem->PreProcessRHS != NULL) || (ark_mem->PostProcessStage != NULL)) + { + SUNLogInfo(ARK_LOGGER, "begin-stages-list", + "status = failed stage stage processing, retval = %i", + ARK_POSTPROCESS_STAGE_FAIL); + arkProcessError(ark_mem, ARK_POSTPROCESS_STAGE_FAIL, __LINE__, __func__, + __FILE__, + "Compensated summation is not compatible with stage " + "Pre- or PostProcessing!\n"); + return (ARK_POSTPROCESS_STAGE_FAIL); + } + /* loop over internal stages to the step */ for (is = 0; is < step_mem->method->stages; is++) { @@ -749,19 +798,6 @@ int sprkStep_TakeStep_Compensated(ARKodeMem ark_mem, sunrealtype* dsmPtr, N_VLinearSum(ONE, delta_Yi, ark_mem->h * ai, step_mem->sdata, delta_Yi); } - /* if user-supplied stage postprocessing function, we error out since it - * won't work with the increment form */ - if (ark_mem->ProcessStage != NULL) - { - SUNLogInfo(ARK_LOGGER, "end-stages-list", - "status = failed postprocess stage, retval = %i", retval); - arkProcessError(ark_mem, ARK_POSTPROCESS_STAGE_FAIL, __LINE__, __func__, - __FILE__, - "Compensated summation is not compatible with stage " - "PostProcessing!\n"); - return (ARK_POSTPROCESS_STAGE_FAIL); - } - SUNLogInfo(ARK_LOGGER, "end-stages-list", "status = success"); } diff --git a/src/arkode/fmod_int32/farkode_mod.c b/src/arkode/fmod_int32/farkode_mod.c index 8f74f81e25..8b1823a253 100644 --- a/src/arkode/fmod_int32/farkode_mod.c +++ b/src/arkode/fmod_int32/farkode_mod.c @@ -650,6 +650,20 @@ SWIGEXPORT int _wrap_FARKodeSetUserData(void *farg1, void *farg2) { } +SWIGEXPORT int _wrap_FARKodeSetPreprocessStepFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPreprocessStepFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + SWIGEXPORT int _wrap_FARKodeSetPostprocessStepFn(void *farg1, ARKPostProcessFn farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -664,6 +678,34 @@ SWIGEXPORT int _wrap_FARKodeSetPostprocessStepFn(void *farg1, ARKPostProcessFn f } +SWIGEXPORT int _wrap_FARKodeSetPostprocessStepFailFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPostprocessStepFailFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetPreprocessRHSFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPreprocessRHSFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + SWIGEXPORT int _wrap_FARKodeSetPostprocessStageFn(void *farg1, ARKPostProcessFn farg2) { int fresult ; void *arg1 = (void *) 0 ; diff --git a/src/arkode/fmod_int32/farkode_mod.f90 b/src/arkode/fmod_int32/farkode_mod.f90 index 4ccf120bbd..2e26e4f62e 100644 --- a/src/arkode/fmod_int32/farkode_mod.f90 +++ b/src/arkode/fmod_int32/farkode_mod.f90 @@ -145,7 +145,10 @@ module farkode_mod public :: FARKodeSetFixedStep public :: FARKodeSetStepDirection public :: FARKodeSetUserData + public :: FARKodeSetPreprocessStepFn public :: FARKodeSetPostprocessStepFn + public :: FARKodeSetPostprocessStepFailFn + public :: FARKodeSetPreprocessRHSFn public :: FARKodeSetPostprocessStageFn public :: FARKodeSetNonlinearSolver public :: FARKodeSetLinear @@ -705,6 +708,15 @@ function swigc_FARKodeSetUserData(farg1, farg2) & integer(C_INT) :: fresult end function +function swigc_FARKodeSetPreprocessStepFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPreprocessStepFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + function swigc_FARKodeSetPostprocessStepFn(farg1, farg2) & bind(C, name="_wrap_FARKodeSetPostprocessStepFn") & result(fresult) @@ -714,6 +726,24 @@ function swigc_FARKodeSetPostprocessStepFn(farg1, farg2) & integer(C_INT) :: fresult end function +function swigc_FARKodeSetPostprocessStepFailFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPostprocessStepFailFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetPreprocessRHSFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPreprocessRHSFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + function swigc_FARKodeSetPostprocessStageFn(farg1, farg2) & bind(C, name="_wrap_FARKodeSetPostprocessStageFn") & result(fresult) @@ -2896,6 +2926,22 @@ function FARKodeSetUserData(arkode_mem, user_data) & swig_result = fresult end function +function FARKodeSetPreprocessStepFn(arkode_mem, processstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstep +fresult = swigc_FARKodeSetPreprocessStepFn(farg1, farg2) +swig_result = fresult +end function + function FARKodeSetPostprocessStepFn(arkode_mem, processstep) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2912,6 +2958,38 @@ function FARKodeSetPostprocessStepFn(arkode_mem, processstep) & swig_result = fresult end function +function FARKodeSetPostprocessStepFailFn(arkode_mem, processstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstep +fresult = swigc_FARKodeSetPostprocessStepFailFn(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetPreprocessRHSFn(arkode_mem, processrhs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processrhs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processrhs +fresult = swigc_FARKodeSetPreprocessRHSFn(farg1, farg2) +swig_result = fresult +end function + function FARKodeSetPostprocessStageFn(arkode_mem, processstage) & result(swig_result) use, intrinsic :: ISO_C_BINDING diff --git a/src/arkode/fmod_int64/farkode_mod.c b/src/arkode/fmod_int64/farkode_mod.c index b4c8222881..29add22fe2 100644 --- a/src/arkode/fmod_int64/farkode_mod.c +++ b/src/arkode/fmod_int64/farkode_mod.c @@ -650,6 +650,20 @@ SWIGEXPORT int _wrap_FARKodeSetUserData(void *farg1, void *farg2) { } +SWIGEXPORT int _wrap_FARKodeSetPreprocessStepFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPreprocessStepFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + SWIGEXPORT int _wrap_FARKodeSetPostprocessStepFn(void *farg1, ARKPostProcessFn farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -664,6 +678,34 @@ SWIGEXPORT int _wrap_FARKodeSetPostprocessStepFn(void *farg1, ARKPostProcessFn f } +SWIGEXPORT int _wrap_FARKodeSetPostprocessStepFailFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPostprocessStepFailFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + +SWIGEXPORT int _wrap_FARKodeSetPreprocessRHSFn(void *farg1, ARKPostProcessFn farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + ARKPostProcessFn arg2 = (ARKPostProcessFn) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (ARKPostProcessFn)(farg2); + result = (int)ARKodeSetPreprocessRHSFn(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + SWIGEXPORT int _wrap_FARKodeSetPostprocessStageFn(void *farg1, ARKPostProcessFn farg2) { int fresult ; void *arg1 = (void *) 0 ; diff --git a/src/arkode/fmod_int64/farkode_mod.f90 b/src/arkode/fmod_int64/farkode_mod.f90 index e0628131b6..291ca02c8a 100644 --- a/src/arkode/fmod_int64/farkode_mod.f90 +++ b/src/arkode/fmod_int64/farkode_mod.f90 @@ -145,7 +145,10 @@ module farkode_mod public :: FARKodeSetFixedStep public :: FARKodeSetStepDirection public :: FARKodeSetUserData + public :: FARKodeSetPreprocessStepFn public :: FARKodeSetPostprocessStepFn + public :: FARKodeSetPostprocessStepFailFn + public :: FARKodeSetPreprocessRHSFn public :: FARKodeSetPostprocessStageFn public :: FARKodeSetNonlinearSolver public :: FARKodeSetLinear @@ -705,6 +708,15 @@ function swigc_FARKodeSetUserData(farg1, farg2) & integer(C_INT) :: fresult end function +function swigc_FARKodeSetPreprocessStepFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPreprocessStepFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + function swigc_FARKodeSetPostprocessStepFn(farg1, farg2) & bind(C, name="_wrap_FARKodeSetPostprocessStepFn") & result(fresult) @@ -714,6 +726,24 @@ function swigc_FARKodeSetPostprocessStepFn(farg1, farg2) & integer(C_INT) :: fresult end function +function swigc_FARKodeSetPostprocessStepFailFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPostprocessStepFailFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + +function swigc_FARKodeSetPreprocessRHSFn(farg1, farg2) & +bind(C, name="_wrap_FARKodeSetPreprocessRHSFn") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_FUNPTR), value :: farg2 +integer(C_INT) :: fresult +end function + function swigc_FARKodeSetPostprocessStageFn(farg1, farg2) & bind(C, name="_wrap_FARKodeSetPostprocessStageFn") & result(fresult) @@ -2896,6 +2926,22 @@ function FARKodeSetUserData(arkode_mem, user_data) & swig_result = fresult end function +function FARKodeSetPreprocessStepFn(arkode_mem, processstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstep +fresult = swigc_FARKodeSetPreprocessStepFn(farg1, farg2) +swig_result = fresult +end function + function FARKodeSetPostprocessStepFn(arkode_mem, processstep) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2912,6 +2958,38 @@ function FARKodeSetPostprocessStepFn(arkode_mem, processstep) & swig_result = fresult end function +function FARKodeSetPostprocessStepFailFn(arkode_mem, processstep) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processstep +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processstep +fresult = swigc_FARKodeSetPostprocessStepFailFn(farg1, farg2) +swig_result = fresult +end function + +function FARKodeSetPreprocessRHSFn(arkode_mem, processrhs) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +type(C_FUNPTR), intent(in), value :: processrhs +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_FUNPTR) :: farg2 + +farg1 = arkode_mem +farg2 = processrhs +fresult = swigc_FARKodeSetPreprocessRHSFn(farg1, farg2) +swig_result = fresult +end function + function FARKodeSetPostprocessStageFn(arkode_mem, processstage) & result(swig_result) use, intrinsic :: ISO_C_BINDING diff --git a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_1_0.out b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_1_0.out index e55fe2d3ca..75f4529add 100644 --- a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_1_0.out +++ b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_1_0.out @@ -219,10 +219,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 2.618808553544664 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 2.61880855354466 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0007928652557594945 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.000792865255759495 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -2.964220317650217e-08 @@ -318,10 +318,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 10.47508400821115 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 10.4750840082111 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.003186689134194484 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.00318668913419448 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -8.826759722826945e-08 @@ -417,7 +417,7 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 23.56852920005934 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 23.5685292000593 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.00721853154020951 @@ -532,10 +532,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 18.33117208795071 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 18.3311720879507 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.005605053590958301 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0056050535909583 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -9.769081861380291e-08 @@ -631,10 +631,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 41.89912728811152 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 41.8991272881115 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.01281058040587073 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0128105804058707 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -2.243720669363767e-07 @@ -730,10 +730,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 70.70323030003219 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 70.7032303000322 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.02165342185632685 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0216534218563268 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.062465506470602e-07 @@ -845,10 +845,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 34.04320255383404 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 34.043202553834 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.01041601086238914 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0104160108623891 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.657393533499818e-07 @@ -947,7 +947,7 @@ Using fixed-point nonlinear solver [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 73.3217906642831 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.02243147136763779 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0224314713676378 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.604763568846829e-07 @@ -1043,10 +1043,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 117.8347848202942 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 117.834784820294 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.03608300450072507 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0360830045007251 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -5.104138961564322e-07 diff --git a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_0.out b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_0.out index 6d7892458b..7168402c3e 100644 --- a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_0.out +++ b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_0.out @@ -225,7 +225,7 @@ Using fixed-point nonlinear solver [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 4.47758963639177 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.001381168840331406 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.00138116884033141 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.897138685890125e-11 @@ -235,12 +235,12 @@ Using fixed-point nonlinear solver 1.224744871372617e+00 1.732039839126277e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.000435866521508459 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = --8.897087832239859e-05 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_2(:) = -3.874078017985966e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = +-8.897087832239859e-05 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 3, stage type = 0, tcur = 0.00071793326075423 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -324,10 +324,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 12.14796270582734 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 12.1479627058273 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.003729401476738584 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.00372940147673858 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.532439656993041e-08 @@ -337,12 +337,12 @@ Using fixed-point nonlinear solver 1.224744836067192e+00 1.732021049568848e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00071793326075423 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = --1.465475048226711e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_4(:) = -3.456082655460544e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = +-1.465475048226711e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 5, stage type = 0, tcur = 0.001 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -426,10 +426,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 23.56857053287391 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 23.5685705328739 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.007204341456196956 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.00720434145619696 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.302435561799672e-07 @@ -439,12 +439,12 @@ Using fixed-point nonlinear solver 1.224744741148033e+00 1.731993073504206e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.001 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = --2.041241329185004e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_6(:) = 5.636297178910438e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = +-2.041241329185004e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 7, stage type = 1, tcur = 0.001 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow stage] z_7(:) = @@ -551,10 +551,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 25.02295754400716 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 25.0229575440072 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.007673490841839432 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.00767349084183943 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -8.899932215363059e-08 @@ -564,12 +564,12 @@ Using fixed-point nonlinear solver 1.224744680311620e+00 1.731931778624167e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00143586652150846 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = --2.930949713846630e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_2(:) = -3.868466374409285e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = +-2.930949713846630e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 3, stage type = 0, tcur = 0.00171793326075423 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -653,10 +653,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 45.98839423695283 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 45.9883942369528 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.01409326137946229 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0140932613794623 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.818969806161295e-07 @@ -666,12 +666,12 @@ Using fixed-point nonlinear solver 1.224744587413962e+00 1.731880422875505e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00171793326075423 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = --3.506715672368343e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_4(:) = -3.447347325160531e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = +-3.506715672368343e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 5, stage type = 0, tcur = 0.002 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -755,10 +755,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 70.70326789489287 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 70.7032678948929 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.02163921128615576 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0216392112861558 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.344145077803560e-07 @@ -768,12 +768,12 @@ Using fixed-point nonlinear solver 1.224744434896435e+00 1.731819882857588e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.002 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = --4.082481637967301e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_6(:) = 5.649384883634026e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = +-4.082481637967301e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 7, stage type = 1, tcur = 0.002 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow stage] z_7(:) = @@ -880,7 +880,7 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 45.56773766986903 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 45.567737669869 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0139640883068901 @@ -893,12 +893,12 @@ Using fixed-point nonlinear solver 1.224744285079746e+00 1.731708273800530e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00243586652150846 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = --4.972189179277549e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_2(:) = -3.853486828457860e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = +-4.972189179277549e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 3, stage type = 0, tcur = 0.00271793326075423 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -982,10 +982,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 79.82720625171295 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 79.827206251713 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.02445379030804438 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0244537903080444 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.284693989193380e-07 @@ -995,12 +995,12 @@ Using fixed-point nonlinear solver 1.224744134589932e+00 1.731624362133668e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00271793326075423 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = --5.547954543508839e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_4(:) = -3.429250892967503e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = +-5.547954543508839e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 5, stage type = 0, tcur = 0.003 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -1084,10 +1084,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 117.8348216736332 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 117.834821673633 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.03606875840854498 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.036068758408545 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -5.385851829263963e-07 @@ -1097,12 +1097,12 @@ Using fixed-point nonlinear solver 1.224743924474148e+00 1.731531270273480e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.003 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = --6.123719905959306e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_6(:) = 5.671821873797286e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = +-6.123719905959306e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 7, stage type = 1, tcur = 0.003 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow stage] z_7(:) = diff --git a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_1_0.out b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_1_0.out index 133719dd90..177c810152 100644 --- a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_1_0.out +++ b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_1_0.out @@ -223,21 +223,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 4.47758963639177, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 4.47758963639177, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 6.332267990526456, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 6.33226799052646, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.001953262537794067 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.00195326253779407 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.487161031816153e-15 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.48716103181615e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.487161031816153e-15 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 4.477589426747882 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.48716103181615e-15 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 4.47758942674788 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 3.392821120378325e-09, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 3.39282112037832e-09, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -249,12 +249,12 @@ Using GMRES iterative linear solver 1.224744871374707e+00 1.732039839126277e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.000435866521508459 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = --8.897087832224679e-05 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_2(:) = -3.874495965781953e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = +-8.897087832224679e-05 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 3, stage type = 0, tcur = 0.00071793326075423 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -338,21 +338,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 12.14796270408155, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 12.1479627040815, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 17.17981361131466, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 17.1798136113147, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.005274126908384101 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0052741269083841 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 3.622257051912133e-16 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 3.62225705191213e-16 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 3.622257051912133e-16 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 12.14796838632732 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 3.62225705191213e-16 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 12.1479683863273 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 2.95110171963532e-08, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 2.95110171963532e-08, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -364,12 +364,12 @@ Using GMRES iterative linear solver 1.224744836074958e+00 1.732021049568849e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00071793326075423 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = --1.465475048217419e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_4(:) = -3.457635846419825e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = +-1.465475048217419e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 5, stage type = 0, tcur = 0.001 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -453,21 +453,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 23.56857051937634, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 23.5685705193763, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 33.33099207424872, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 33.3309920742487, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.01018828512439107 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0101882851243911 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.214393153928069e-15 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.21439315392807e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.214393153928069e-15 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 23.56859238029067 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.21439315392807e-15 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 23.5685923802907 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.15912027137731e-07, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.15912027137731e-07, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -479,12 +479,12 @@ Using GMRES iterative linear solver 1.224744741166875e+00 1.731993073504207e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.001 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = --2.041241329153601e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_6(:) = 5.632528877341102e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = +-2.041241329153601e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 7, stage type = 1, tcur = 0.001 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow stage] z_7(:) = @@ -591,21 +591,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 25.02295754230141, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 25.0229575423014, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 35.38780592700878, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 35.3878059270088, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.01085175829557421 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0108517582955742 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 4.310220087272934e-15 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 4.31022008727293e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 4.310220087272934e-15 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 25.02297210770477 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 4.31022008727293e-15 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 25.0229721077048 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.309935552076447e-07, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.30993555207645e-07, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -617,12 +617,12 @@ Using GMRES iterative linear solver 1.224744680342249e+00 1.731931778624172e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00143586652150846 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = --2.930949713773332e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_2(:) = -3.874591903012436e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = +-2.930949713773332e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 3, stage type = 0, tcur = 0.00171793326075423 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -706,21 +706,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 45.98839421997347, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 45.9883942199735, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 65.03741081764694, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 65.0374108176469, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.01993022435379269 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0199302243537927 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 4.755385191836388e-15 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 4.75538519183639e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 4.755385191836388e-15 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 4.75538519183639e-15 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 45.9884242098754 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 4.508449673731598e-07, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 4.5084496737316e-07, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -732,12 +732,12 @@ Using GMRES iterative linear solver 1.224744587466616e+00 1.731880422875515e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00171793326075423 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = --3.506715672217582e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_4(:) = -3.457877693462479e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = +-3.506715672217582e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 5, stage type = 0, tcur = 0.002 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -821,21 +821,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 70.70326784098599, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 70.703267840986, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 99.98952028481987, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 99.9895202848199, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.03060090279475537 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0306009027947554 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.730302057214856e-15 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.73030205721486e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.730302057214856e-15 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 70.70332355610354 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.73030205721486e-15 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 70.7033235561035 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.073884204481654e-06, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.07388420448165e-06, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -847,12 +847,12 @@ Using GMRES iterative linear solver 1.224744434983606e+00 1.731819882857605e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.002 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = --4.082481637676731e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_6(:) = 5.631951555615774e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = +-4.082481637676731e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 7, stage type = 1, tcur = 0.002 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow stage] z_7(:) = @@ -959,21 +959,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 45.56773766224821, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 45.5677376622482, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 64.4425126086107, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.01974755058191297 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.019747550581913 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.326802582649019e-14 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.32680258264902e-14 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.326802582649019e-14 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 45.56776698106854 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.32680258264902e-14 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 45.5677669810685 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 4.425034142015078e-07, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 4.42503414201508e-07, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -985,12 +985,12 @@ Using GMRES iterative linear solver 1.224744285188675e+00 1.731708273800566e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00243586652150846 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = --4.972189178835323e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_2(:) = -3.875270711647729e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = +-4.972189178835323e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 3, stage type = 0, tcur = 0.00271793326075423 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -1074,21 +1074,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 79.82720621181305, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 79.827206211813, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 112.8927176710998, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 112.8927176711, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.03458090468243458 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0345809046824346 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 4.710652380983711e-14 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 4.71065238098371e-14 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 4.710652380983711e-14 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 79.82726049766872 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 4.71065238098371e-14 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 79.8272604976687 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.371022988742507e-06, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.37102298874251e-06, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -1100,12 +1100,12 @@ Using GMRES iterative linear solver 1.224744134738065e+00 1.731624362133719e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00271793326075423 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = --5.547954542837812e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_4(:) = -3.458874981663813e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = +-5.547954542837812e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 5, stage type = 0, tcur = 0.003 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -1189,21 +1189,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 117.8348215690057, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 117.834821569006, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 166.6436027827016, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 166.643602782702, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.05100462411782345 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0510046241178235 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 5.154650887905549e-14 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 5.15465088790555e-14 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 5.154650887905549e-14 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 117.8349111207286 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 5.15465088790555e-14 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 117.834911120729 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 2.999444834513892e-06, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 2.99944483451389e-06, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -1215,12 +1215,12 @@ Using GMRES iterative linear solver 1.224743924681878e+00 1.731531270273552e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.003 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = --6.123719904920655e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_6(:) = 5.630279479280135e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = +-6.123719904920655e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 7, stage type = 1, tcur = 0.003 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow stage] z_7(:) = diff --git a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_1_1.out b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_1_1.out index dc43fb1bb9..56dbc27b6c 100644 --- a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_1_1.out +++ b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_2_1_1.out @@ -225,12 +225,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 4.475638659455317 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 4.47563865945532 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.001949917579925701 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.0019499175799257 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.688716585288429e-11 @@ -240,12 +240,12 @@ Using dense direct linear solver 1.224744871374702e+00 1.732039839128359e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.000435866521508459 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = --8.897087832224718e-05 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_2(:) = -3.874390811900406e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = +-8.897087832224718e-05 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 3, stage type = 0, tcur = 0.00071793326075423 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -331,12 +331,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 12.14267813732762 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 12.1426781373276 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.005287100222960252 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.00528710022296025 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.531668548149428e-08 @@ -346,12 +346,12 @@ Using dense direct linear solver 1.224744836074903e+00 1.732021049576574e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00071793326075423 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = --1.465475048217485e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_4(:) = -3.457238563029700e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = +-1.465475048217485e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 5, stage type = 0, tcur = 0.001 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -437,12 +437,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 23.55833268405183 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 23.5583326840518 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.01025211853930287 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.0102521185393029 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.302249691495050e-07 @@ -452,12 +452,12 @@ Using dense direct linear solver 1.224744741166620e+00 1.731993073522876e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.001 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = --2.041241329154026e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_6(:) = 5.633513289323019e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = +-2.041241329154026e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 7, stage type = 1, tcur = 0.001 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow stage] z_7(:) = @@ -566,12 +566,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 25.01207820816763 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 25.0120782081676 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.01088917366864544 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.0108891736686454 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -8.898775461780424e-08 @@ -581,12 +581,12 @@ Using dense direct linear solver 1.224744680341775e+00 1.731931778654458e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00143586652150846 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = --2.930949713774468e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_2(:) = -3.872982667138039e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = +-2.930949713774468e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 3, stage type = 0, tcur = 0.00171793326075423 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -677,7 +677,7 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.02001100770865585 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.0200110077086558 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.818641587644074e-07 @@ -687,12 +687,12 @@ Using dense direct linear solver 1.224744587465371e+00 1.731880422927156e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00171793326075423 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = --3.506715672221149e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_4(:) = -3.455046521575918e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = +-3.506715672221149e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 5, stage type = 0, tcur = 0.002 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -778,12 +778,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 70.67253645863913 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 70.6725364586391 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.03076033257676168 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.0307603325767617 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.343490240444961e-07 @@ -793,12 +793,12 @@ Using dense direct linear solver 1.224744434980505e+00 1.731819882942072e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.002 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = --4.082481637687065e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_6(:) = 5.636794928714210e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = +-4.082481637687065e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 7, stage type = 1, tcur = 0.002 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow stage] z_7(:) = @@ -907,7 +907,7 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 45.54793022210226 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 45.5479302221023 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.779486220103395e-07 @@ -917,12 +917,12 @@ Using dense direct linear solver 1.224744285194780e+00 1.731708322471386e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00243586652150846 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = --4.972189178810538e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_2(:) = -1.442950754707516e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_2(:) = +-4.972189178810538e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 3, stage type = 0, tcur = 0.00271793326075423 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -1008,7 +1008,7 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 79.77268774518882 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 79.7726877451888 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.283783577065699e-07 @@ -1018,12 +1018,12 @@ Using dense direct linear solver 1.224744134765044e+00 1.731624495883745e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.00271793326075423 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = --5.547954542715601e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_4(:) = 3.223230302717166e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_4(:) = +-5.547954542715601e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 5, stage type = 0, tcur = 0.003 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -1109,7 +1109,7 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 117.7290852921697 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 117.72908529217 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -5.384377455891717e-07 @@ -1119,12 +1119,12 @@ Using dense direct linear solver 1.224743924705656e+00 1.731531529558495e+00 [DEBUG][rank 0][mriStepInnerStepper_Reset][reset-inner-state] tR = 0.003 -[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = --6.123719904801765e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow implicit RHS] Fsi_6(:) = 1.858977001219174e-07 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow explicit RHS] Fse_6(:) = +-6.123719904801765e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRIGARK][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRIGARK][begin-stages-list] stage = 7, stage type = 1, tcur = 0.003 [DEBUG][rank 0][mriStep_TakeStepMRIGARK][slow stage] z_7(:) = diff --git a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_0.out b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_0.out index 6217f87262..ee41854b38 100644 --- a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_0.out +++ b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_0.out @@ -217,10 +217,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 8.484739573686154 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 8.48473957368615 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.002872021135550911 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.00287202113555091 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.986443443133593e-11 @@ -229,12 +229,12 @@ Using fixed-point nonlinear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_1(:) = 1.224744871351725e+00 1.732030023087570e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = --1.224744797946763e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_1(:) = -7.340312367691422e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = +-1.224744797946763e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 2, stage type = 0, tcur = 0.000266666666666667 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -314,7 +314,7 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 1.676051713900995 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 1.67605171390099 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.000555028872656497 @@ -326,12 +326,12 @@ Using fixed-point nonlinear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_2(:) = 1.224744849149295e+00 1.732046701970666e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = --5.443310573859504e-05 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_2(:) = 2.996851189225796e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = +-5.443310573859504e-05 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 3, stage type = 0, tcur = 0.001 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -411,10 +411,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 23.56853099966965 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 23.5685309996697 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.007921345619572666 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.00792134561957267 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.020105221181502e-07 @@ -518,10 +518,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 36.76651861107406 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 36.7665186110741 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.01237684727403708 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0123768472740371 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.225968906490633e-07 @@ -530,12 +530,12 @@ Using fixed-point nonlinear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_1(:) = 1.224744646784176e+00 1.731903012201602e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = --3.265985529176539e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_1(:) = -7.334526689234511e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = +-3.265985529176539e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 2, stage type = 0, tcur = 0.00126666666666667 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -615,10 +615,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 14.24598132523308 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 14.2459813252331 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.004779612504363237 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.00477961250436324 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -7.668243400267920e-08 @@ -627,12 +627,12 @@ Using fixed-point nonlinear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_2(:) = 1.224744692698633e+00 1.731958177393267e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = --2.585572192110587e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_2(:) = 2.987532724605689e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = +-2.585572192110587e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 3, stage type = 0, tcur = 0.002 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -712,10 +712,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 70.70322900226219 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 70.7032290022622 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.02376157169307341 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0237615716930734 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.061609969229756e-07 @@ -819,10 +819,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 65.04718221192611 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 65.0471822119261 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.02187885806561487 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0218788580656149 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -2.450607205391799e-07 @@ -831,12 +831,12 @@ Using fixed-point nonlinear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_1(:) = 1.224744218159349e+00 1.731660562748428e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = --5.307224627226973e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_1(:) = -7.342085020533207e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = +-5.307224627226973e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 2, stage type = 0, tcur = 0.00226666666666667 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -916,10 +916,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 26.81570536954298 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 26.815705369543 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.009003158261553504 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0090031582615535 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.311224885430741e-07 @@ -928,12 +928,12 @@ Using fixed-point nonlinear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_2(:) = 1.224744332097581e+00 1.731754203213892e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = --4.626812033999880e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_2(:) = 2.983481981856377e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = +-4.626812033999880e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 3, stage type = 0, tcur = 0.003 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -1013,10 +1013,10 @@ Using fixed-point nonlinear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-solver] solver = Fixed-Point [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 117.8347804233192 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 1, update-norm = 117.834780423319 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][begin-iterations-list] -[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.03959595686322268 +[INFO][rank 0][SUNNonlinSolSolve_FixedPoint][nonlinear-iterate] cur-iter = 2, update-norm = 0.0395959568632227 [INFO][rank 0][SUNNonlinSolSolve_FixedPoint][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -5.103111738986100e-07 diff --git a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_1_0.out b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_1_0.out index c671ba351a..764614d882 100644 --- a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_1_0.out +++ b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_1_0.out @@ -218,21 +218,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 8.484739573686154, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 8.48473957368615, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 11.99923377831067, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 11.9992337783107, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.00406162884130716 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.063059984369675e-15 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.06305998436967e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.063059984369675e-15 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 8.484739095390244 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.06305998436967e-15 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 8.48473909539024 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.518442601738134e-08, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.51844260173813e-08, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -243,12 +243,12 @@ Using GMRES iterative linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_1(:) = 1.224744871356505e+00 1.732030023087570e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = --1.224744797941982e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_1(:) = -7.341268391760586e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = +-1.224744797941982e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 2, stage type = 0, tcur = 0.000266666666666667 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -328,21 +328,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.676051713893393, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.67605171389339, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 2.370295065026708, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 2.37029506502671, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0007849097524979764 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.000784909752497976 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 3.383351982668269e-16 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 3.38335198266827e-16 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 3.383351982668269e-16 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 1.676055870102968 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 3.38335198266827e-16 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 1.67605587010297 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 2.704347032731375e-10, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 2.70434703273138e-10, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -353,12 +353,12 @@ Using GMRES iterative linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_2(:) = 1.224744849150216e+00 1.732046701970666e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = --5.443310573855411e-05 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_2(:) = 2.996667026040624e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = +-5.443310573855411e-05 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 3, stage type = 0, tcur = 0.001 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -438,21 +438,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 23.56853099966687, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 23.5685309996669, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 33.3309361849396, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.01120227584213543 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0112022758421354 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 6.60368777501544e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 6.60368777501544e-15 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 23.56854944242167 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 23.5685494424217 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.271888306615336e-07, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.27188830661534e-07, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -558,21 +558,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 36.7665186233225, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 36.7665186233225, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 51.99570927834566, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 51.9957092783457, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.01750303644230491 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0175030364423049 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 1.604262223531045e-15 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 1.60426222353105e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 1.604262223531045e-15 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 36.76654034473295 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 1.60426222353105e-15 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 36.7665403447329 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 3.144297547459707e-07, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 3.14429754745971e-07, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -583,12 +583,12 @@ Using GMRES iterative linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_1(:) = 1.224744646805198e+00 1.731903012201602e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = --3.265985529120480e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_1(:) = -7.338731096471370e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = +-3.265985529120480e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 2, stage type = 0, tcur = 0.00126666666666667 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -668,21 +668,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 14.24598132451491, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 14.2459813245149, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 20.14685999844282, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 20.1468599984428, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.006759308947688205 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.00675930894768821 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.608861273900752e-15 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.60886127390075e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.608861273900752e-15 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 14.24599536090235 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.60886127390075e-15 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 14.2459953609024 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 4.511849085671779e-08, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 4.51184908567178e-08, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -693,12 +693,12 @@ Using GMRES iterative linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_2(:) = 1.224744692719953e+00 1.731958177393268e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = --2.585572192065578e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_2(:) = 2.983268832342997e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = +-2.585572192065578e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 3, stage type = 0, tcur = 0.002 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -778,21 +778,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 70.70322899958907, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 70.7032289995891, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 99.98946535478959, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 99.9894653547896, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.03360221435494776 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0336022143549478 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.00549274449084e-14 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.00549274449084e-14 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 70.70328434748892 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 70.7032843474889 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.178330244583246e-06, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.17833024458325e-06, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -898,21 +898,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 65.04718225429083, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 65.0471822542908, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 91.99060733817259, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 91.9906073381726, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.03093990190327634 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0309399019032763 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.683452123191181e-14 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.68345212319118e-14 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.683452123191181e-14 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 65.04722612053793 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.68345212319118e-14 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 65.0472261205379 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 9.960147476444905e-07, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 9.96014747644491e-07, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -923,12 +923,12 @@ Using GMRES iterative linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_1(:) = 1.224744218210551e+00 1.731660562748439e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = --5.307224627005096e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_1(:) = -7.352324912711484e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = +-5.307224627005096e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 2, stage type = 0, tcur = 0.00226666666666667 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -1008,21 +1008,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 26.81570536668555, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 26.8157053666855, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 37.9231342141677, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.01273212495287925 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0127321249528793 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 1.329909818489109e-15 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 1.32990981848911e-15 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 1.329909818489109e-15 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 26.81572924537169 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 1.32990981848911e-15 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 26.8157292453717 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.655080232345353e-07, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 1.65508023234535e-07, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success @@ -1033,12 +1033,12 @@ Using GMRES iterative linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_2(:) = 1.224744332167409e+00 1.731754203213906e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = --4.626812033736085e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_2(:) = 2.969517044376617e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = +-4.626812033736085e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 3, stage type = 0, tcur = 0.003 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -1118,21 +1118,21 @@ Using GMRES iterative linear solver [INFO][rank 0][mriStep_Nls][begin-nonlinear-solve] tol = 0.1 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-solver] solver = Newton [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 117.834780412349, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 117.834780412349, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][SUNLinSolSolve_SPGMR][linear-solver] solver = spgmr [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 166.6435445783995, status = continue +[INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] cur-iter = 0, total-iters = 0, res-norm = 166.6435445784, status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.05599239103857365 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 1, total-iters = 1, res-norm = 0.0559923910385736 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = continue [INFO][rank 0][SUNLinSolSolve_SPGMR][begin-iterations-list] -[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.047361656823588e-14 +[INFO][rank 0][SUNLinSolSolve_SPGMR][linear-iterate] cur-iter = 2, total-iters = 2, res-norm = 2.04736165682359e-14 [INFO][rank 0][SUNLinSolSolve_SPGMR][end-iterations-list] status = success -[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.047361656823588e-14 +[INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 2, p-solves = 0, resnorm = 2.04736165682359e-14 [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 117.834872652557 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] -[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 3.291178273336047e-06, b-tol = 0.0005000000000000001, res-tol = 0.0007071067811865477 +[INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 1, b-norm = 3.29117827333605e-06, b-tol = 0.0005, res-tol = 0.000707106781186548 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success small rhs [INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success diff --git a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_1_1.out b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_1_1.out index 9286d35fb3..3a10010014 100644 --- a/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_1_1.out +++ b/test/unit_tests/logging/test_logging_arkode_mristep_lvl5_5_1_1.out @@ -220,12 +220,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 8.480683168344489 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 8.48068316834449 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.004053988673538109 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.00405398867353811 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -3.510922608160773e-11 @@ -234,12 +234,12 @@ Using dense direct linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_1(:) = 1.224744871356480e+00 1.732030023092318e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = --1.224744797942008e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_1(:) = -7.341025925915888e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = +-1.224744797942008e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 2, stage type = 0, tcur = 0.000266666666666667 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -321,12 +321,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 1.675256885913521 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 1.67525688591352 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.0007986236837143737 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.000798623683714374 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -2.224137351523309e-08 @@ -335,12 +335,12 @@ Using dense direct linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_2(:) = 1.224744849150216e+00 1.732046701971602e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = --5.443310573855413e-05 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_2(:) = 2.996713889663234e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = +-5.443310573855413e-05 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 3, stage type = 0, tcur = 0.001 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -422,12 +422,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 23.55729306364141 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 23.5572930636414 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.01125102523959608 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.0112510252395961 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.019974050768401e-07 @@ -533,12 +533,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 36.74898235634446 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 36.7489823563445 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.01755499643143604 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.017554996431436 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.225895223600063e-07 @@ -547,12 +547,12 @@ Using dense direct linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_1(:) = 1.224744646804662e+00 1.731903012222166e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = --3.265985529121911e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_1(:) = -7.337595593553204e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = +-3.265985529121911e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 2, stage type = 0, tcur = 0.00126666666666667 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -634,12 +634,12 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 14.23919293854171 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 14.2391929385417 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.006799198459613769 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 2, total-iters = 2, update-norm = 0.00679919845961377 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -7.667452361008834e-08 @@ -648,12 +648,12 @@ Using dense direct linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_2(:) = 1.224744692719660e+00 1.731958177414409e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = --2.585572192066196e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_2(:) = 2.984384338680091e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = +-2.585572192066196e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 3, stage type = 0, tcur = 0.002 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -735,7 +735,7 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 70.66951636344861 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 70.6695163634486 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = continue [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 @@ -846,7 +846,7 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 65.01617199523695 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 65.0161719952369 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -2.450469858076038e-07 @@ -855,12 +855,12 @@ Using dense direct linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_1(:) = 1.224744218225516e+00 1.731660638862276e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = --5.307224626940249e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_1(:) = -3.549626042518400e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_1(:) = +-5.307224626940249e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 2, stage type = 0, tcur = 0.00226666666666667 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -942,7 +942,7 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 26.80292351487314 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 26.8029235148731 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -1.311066262520789e-07 @@ -951,12 +951,12 @@ Using dense direct linear solver [DEBUG][rank 0][mriStep_TakeStepMRISR][slow stage] z_2(:) = 1.224744332165876e+00 1.731754234631864e+00 -[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = --4.626812033741879e-04 - 0.000000000000000e+00 [DEBUG][rank 0][mriStep_TakeStepMRISR][slow implicit RHS] Fsi_2(:) = 4.540721694471736e-08 0.000000000000000e+00 +[DEBUG][rank 0][mriStep_TakeStepMRISR][slow explicit RHS] Fse_2(:) = +-4.626812033741879e-04 + 0.000000000000000e+00 [INFO][rank 0][mriStep_TakeStepMRISR][end-stages-list] status = success [INFO][rank 0][mriStep_TakeStepMRISR][begin-stages-list] stage = 3, stage type = 0, tcur = 0.003 [DEBUG][rank 0][mriStep_ComputeInnerForcing][forcing] forcing_0(:) = @@ -1038,7 +1038,7 @@ Using dense direct linear solver [INFO][rank 0][SUNNonlinSolSolve_Newton][begin-iterations-list] [INFO][rank 0][arkLsSolve][begin-linear-solve] iterative = 0 [INFO][rank 0][arkLsSolve][end-linear-solve] status = success, iters = 0, p-solves = 0, resnorm = 0 -[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 117.7785945803303 +[INFO][rank 0][SUNNonlinSolSolve_Newton][nonlinear-iterate] cur-iter = 1, total-iters = 1, update-norm = 117.77859458033 [INFO][rank 0][SUNNonlinSolSolve_Newton][end-iterations-list] status = success [DEBUG][rank 0][mriStep_Nls][correction] zcor(:) = -5.102176540643530e-07