diff --git a/examples/arkode/C_serial/ark_analytic_lsrk.c b/examples/arkode/C_serial/ark_analytic_lsrk.c index 48468c32fe..7df045e8f8 100644 --- a/examples/arkode/C_serial/ark_analytic_lsrk.c +++ b/examples/arkode/C_serial/ark_analytic_lsrk.c @@ -168,15 +168,15 @@ int main(void) N_VGetArrayPointer(y)[0]); /* access/print solution */ fprintf(UFID, " %.16" ESYM " %.16" ESYM "\n", t, N_VGetArrayPointer(y)[0]); if (flag < 0) - { /* unsuccessful solve: break */ - fprintf(stderr, "Solver failure, stopping integration\n"); - break; - } - else - { /* successful solve: update time */ - tout += dTout; - tout = (tout > Tf) ? Tf : tout; - } + { /* unsuccessful solve: break */ + fprintf(stderr, "Solver failure, stopping integration\n"); + break; + } + else + { /* successful solve: update time */ + tout += dTout; + tout = (tout > Tf) ? Tf : tout; + } } printf(" ---------------------\n"); fclose(UFID); diff --git a/examples/arkode/C_serial/ark_analytic_lsrk_varjac.c b/examples/arkode/C_serial/ark_analytic_lsrk_varjac.c index 70b860bd99..9a21ec32ea 100644 --- a/examples/arkode/C_serial/ark_analytic_lsrk_varjac.c +++ b/examples/arkode/C_serial/ark_analytic_lsrk_varjac.c @@ -189,15 +189,15 @@ int main(void) N_VGetArrayPointer(y)[0]); /* access/print solution */ fprintf(UFID, " %.16" ESYM " %.16" ESYM "\n", t, N_VGetArrayPointer(y)[0]); if (flag < 0) - { /* unsuccessful solve: break */ - fprintf(stderr, "Solver failure, stopping integration\n"); - break; - } - else - { /* successful solve: update time */ - tout += dTout; - tout = (tout > Tf) ? Tf : tout; - } + { /* unsuccessful solve: break */ + fprintf(stderr, "Solver failure, stopping integration\n"); + break; + } + else + { /* successful solve: update time */ + tout += dTout; + tout = (tout > Tf) ? Tf : tout; + } } printf(" ---------------------\n"); fclose(UFID); diff --git a/examples/arkode/C_serial/ark_analytic_ssprk.c b/examples/arkode/C_serial/ark_analytic_ssprk.c index 5ffe571deb..1c11ce3419 100644 --- a/examples/arkode/C_serial/ark_analytic_ssprk.c +++ b/examples/arkode/C_serial/ark_analytic_ssprk.c @@ -146,15 +146,15 @@ int main(void) N_VGetArrayPointer(y)[0]); /* access/print solution */ fprintf(UFID, " %.16" ESYM " %.16" ESYM "\n", t, N_VGetArrayPointer(y)[0]); if (flag < 0) - { /* unsuccessful solve: break */ - fprintf(stderr, "Solver failure, stopping integration\n"); - break; - } - else - { /* successful solve: update time */ - tout += dTout; - tout = (tout > Tf) ? Tf : tout; - } + { /* unsuccessful solve: break */ + fprintf(stderr, "Solver failure, stopping integration\n"); + break; + } + else + { /* successful solve: update time */ + tout += dTout; + tout = (tout > Tf) ? Tf : tout; + } } printf(" ---------------------\n"); fclose(UFID); diff --git a/include/arkode/arkode_lsrkstep.h b/include/arkode/arkode_lsrkstep.h index a90f2de99d..4363baf0ad 100644 --- a/include/arkode/arkode_lsrkstep.h +++ b/include/arkode/arkode_lsrkstep.h @@ -23,9 +23,9 @@ extern "C" { #endif -#define STAGE_MAX_LIMIT 1000000 -#define DOM_EIG_SAFETY_DEFAULT SUN_RCONST(1.01) -#define DOM_EIG_FREQ_DEFAULT 25 +#define STAGE_MAX_LIMIT 1000000 +#define DOM_EIG_SAFETY_DEFAULT SUN_RCONST(1.01) +#define DOM_EIG_FREQ_DEFAULT 25 #define RETRY_CONTRACTION_FAC_DEFAULT SUN_RCONST(0.9) typedef int (*ARKDomEigFn)(sunrealtype t, N_Vector y, N_Vector fn, @@ -82,8 +82,8 @@ SUNDIALS_EXPORT int LSRKStepSetMaxNumStages(void* arkode_mem, SUNDIALS_EXPORT int LSRKStepSetDomEigSafetyFactor(void* arkode_mem, sunrealtype dom_eig_safety); -SUNDIALS_EXPORT int LSRKStepSetReTryContractionFactor(void* arkode_mem, - sunrealtype retry_contraction_fac); +SUNDIALS_EXPORT int LSRKStepSetReTryContractionFactor( + void* arkode_mem, sunrealtype retry_contraction_fac); SUNDIALS_EXPORT int LSRKStepSetSSPStageNum(void* arkode_mem, int num_of_stages); @@ -97,7 +97,6 @@ SUNDIALS_EXPORT int LSRKStepGetNumDomEigUpdates(void* arkode_mem, SUNDIALS_EXPORT int LSRKStepGetMaxNumStages(void* arkode_mem, int* stage_max); - #ifdef __cplusplus } #endif diff --git a/src/arkode/arkode_lsrkstep.c b/src/arkode/arkode_lsrkstep.c index 4fd00d0918..1b4cef275c 100644 --- a/src/arkode/arkode_lsrkstep.c +++ b/src/arkode/arkode_lsrkstep.c @@ -34,8 +34,8 @@ void* LSRKStepCreateSTS(ARKRhsFn rhs, sunrealtype t0, N_Vector y0, { ARKodeMem ark_mem; - ark_mem = lsrkStep_Create_Commons(rhs, t0, y0, sunctx); - ark_mem->step = lsrkStep_TakeStepRKC; + ark_mem = lsrkStep_Create_Commons(rhs, t0, y0, sunctx); + ark_mem->step = lsrkStep_TakeStepRKC; return ((void*)ark_mem); } @@ -45,8 +45,8 @@ void* LSRKStepCreateSSP(ARKRhsFn rhs, sunrealtype t0, N_Vector y0, { ARKodeMem ark_mem; - ark_mem = lsrkStep_Create_Commons(rhs, t0, y0, sunctx); - ark_mem->step = lsrkStep_TakeStepSSPs2; + ark_mem = lsrkStep_Create_Commons(rhs, t0, y0, sunctx); + ark_mem->step = lsrkStep_TakeStepSSPs2; return ((void*)ark_mem); } @@ -185,25 +185,25 @@ void lsrkStep_PrintMem(ARKodeMem ark_mem, FILE* outfile) /* print integrator memory to file */ switch (step_mem->LSRKmethod) { - case ARKODE_LSRK_RKC_2: - fprintf(outfile, "LSRKStep RKC time step module memory:\n"); - break; - case ARKODE_LSRK_RKL_2: - fprintf(outfile, "LSRKStep RKL time step module memory:\n"); - break; - case ARKODE_LSRK_SSP_S_2: - fprintf(outfile, "LSRKStep SSP(s,2) time step module memory:\n"); - break; - case ARKODE_LSRK_SSP_S_3: - fprintf(outfile, "LSRKStep SSP(s,3) time step module memory:\n"); - break; - case ARKODE_LSRK_SSP_10_4: - fprintf(outfile, "LSRKStep SSP(10,4) time step module memory:\n"); - break; - default: - arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, - "Invalid method option."); - return; + case ARKODE_LSRK_RKC_2: + fprintf(outfile, "LSRKStep RKC time step module memory:\n"); + break; + case ARKODE_LSRK_RKL_2: + fprintf(outfile, "LSRKStep RKL time step module memory:\n"); + break; + case ARKODE_LSRK_SSP_S_2: + fprintf(outfile, "LSRKStep SSP(s,2) time step module memory:\n"); + break; + case ARKODE_LSRK_SSP_S_3: + fprintf(outfile, "LSRKStep SSP(s,3) time step module memory:\n"); + break; + case ARKODE_LSRK_SSP_10_4: + fprintf(outfile, "LSRKStep SSP(10,4) time step module memory:\n"); + break; + default: + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "Invalid method option."); + return; } fprintf(outfile, "LSRKStep: q = %i\n", step_mem->q); @@ -211,15 +211,19 @@ void lsrkStep_PrintMem(ARKodeMem ark_mem, FILE* outfile) if (step_mem->is_SSP) { - fprintf(outfile, "LSRKStep: req_stages = %i\n", step_mem->req_stages); + fprintf(outfile, "LSRKStep: req_stages = %i\n", + step_mem->req_stages); fprintf(outfile, "LSRKStep: nfe = %li\n", step_mem->nfe); } else if (!step_mem->is_SSP) { /* output integer quantities */ - fprintf(outfile, "LSRKStep: req_stages = %i\n", step_mem->req_stages); - fprintf(outfile, "LSRKStep: dom_eig_nst = %i\n", step_mem->dom_eig_nst); - fprintf(outfile, "LSRKStep: stage_max = %i\n", step_mem->stage_max); + fprintf(outfile, "LSRKStep: req_stages = %i\n", + step_mem->req_stages); + fprintf(outfile, "LSRKStep: dom_eig_nst = %i\n", + step_mem->dom_eig_nst); + fprintf(outfile, "LSRKStep: stage_max = %i\n", + step_mem->stage_max); fprintf(outfile, "LSRKStep: stage_max_limit = %i\n", step_mem->stage_max_limit); fprintf(outfile, "LSRKStep: dom_eig_freq = %i\n", @@ -319,12 +323,11 @@ int lsrkStep_Init(ARKodeMem ark_mem, int init_type) } ark_mem->liw += 1; /* pointers */ - /* Check if user has provided dom_eig_fn */ if (!step_mem->is_SSP && step_mem->dom_eig_fn == NULL) { - arkProcessError(ark_mem, ARK_DOMEIG_FAIL, __LINE__, __func__, __FILE__, - "STS methods require a user provided dominant eigenvalue function"); + arkProcessError(ark_mem, ARK_DOMEIG_FAIL, __LINE__, __func__, + __FILE__, "STS methods require a user provided dominant eigenvalue function"); return (ARK_DOMEIG_FAIL); } @@ -537,18 +540,18 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) step_mem->stage_max = SUNMAX(step_mem->req_stages, step_mem->stage_max); #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKC", - "start-stage", + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKC", "start-stage", "step = %li, stage = 0, h = %" RSYM ", tcur = %" RSYM, ark_mem->nst, ark_mem->h, ark_mem->tcur); #endif #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKC", - "stage", "z_0(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKC", "stage", "z_0(:) =", ""); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKC", - "stage RHS", "F(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKC", "stage RHS", "F(:) =", ""); N_VPrintFile(step_mem->Fe, ARK_LOGGER->debug_fp); #endif @@ -612,7 +615,8 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKC", "start-stage", "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, j, ark_mem->h, ark_mem->tcur + ark_mem->h * thjm1); + ark_mem->nst, j, ark_mem->h, + ark_mem->tcur + ark_mem->h * thjm1); #endif /* Use the ycur array for temporary storage here */ @@ -624,7 +628,8 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepRKC", "stage RHS", "F_%i(:) =", j); + "ARKODE::lsrkStep_TakeStepRKC", "stage RHS", + "F_%i(:) =", j); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); #endif @@ -646,8 +651,8 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * thjm1, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * thjm1, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -716,15 +721,17 @@ int lsrkStep_TakeStepRKC(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKC", - "updated solution", "ycur(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKC", "updated solution", + "ycur(:) =", ""); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); #endif #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKC", - "error-test", "step = %li, h = %" RSYM ", dsm = %" RSYM, - ark_mem->nst, ark_mem->h, *dsmPtr); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKC", "error-test", + "step = %li, h = %" RSYM ", dsm = %" RSYM, ark_mem->nst, + ark_mem->h, *dsmPtr); #endif return (ARK_SUCCESS); @@ -812,18 +819,18 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) step_mem->stage_max = SUNMAX(step_mem->req_stages, step_mem->stage_max); #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKL", - "start-stage", + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKL", "start-stage", "step = %li, stage = 0, h = %" RSYM ", tcur = %" RSYM, ark_mem->nst, ark_mem->h, ark_mem->tcur); #endif #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKL", - "stage", "z_0(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKL", "stage", "z_0(:) =", ""); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKL", - "stage RHS", "F(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKL", "stage RHS", "F(:) =", ""); N_VPrintFile(step_mem->Fe, ARK_LOGGER->debug_fp); #endif @@ -871,7 +878,8 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKL", "start-stage", "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, j, ark_mem->h, ark_mem->tcur + ark_mem->h * cjm1); + ark_mem->nst, j, ark_mem->h, + ark_mem->tcur + ark_mem->h * cjm1); #endif /* Use the ycur array for temporary storage here */ @@ -883,7 +891,8 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepRKL", "stage RHS", "F_%i(:) =", j); + "ARKODE::lsrkStep_TakeStepRKL", "stage RHS", + "F_%i(:) =", j); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); #endif @@ -905,8 +914,8 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * cjm1, ark_mem->ycur, - ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * cjm1, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -966,15 +975,17 @@ int lsrkStep_TakeStepRKL(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr) } #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKL", - "updated solution", "ycur(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKL", "updated solution", + "ycur(:) =", ""); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); #endif #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepRKL", - "error-test", "step = %li, h = %" RSYM ", dsm = %" RSYM, - ark_mem->nst, ark_mem->h, *dsmPtr); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepRKL", "error-test", + "step = %li, h = %" RSYM ", dsm = %" RSYM, ark_mem->nst, + ark_mem->h, *dsmPtr); #endif return (ARK_SUCCESS); @@ -1035,18 +1046,18 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs2", - "start-stage", + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs2", "start-stage", "step = %li, stage = 0, h = %" RSYM ", tcur = %" RSYM, ark_mem->nst, ark_mem->h, ark_mem->tcur); #endif #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs2", - "stage", "z_0(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs2", "stage", "z_0(:) =", ""); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs2", - "stage RHS", "F(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs2", "stage RHS", "F(:) =", ""); N_VPrintFile(step_mem->Fe, ARK_LOGGER->debug_fp); #endif @@ -1072,12 +1083,13 @@ 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++) { - #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs2", "start-stage", "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, j, ark_mem->h, ark_mem->tcur + ((sunrealtype)j - ONE) * sm1inv * ark_mem->h); + ark_mem->nst, j, ark_mem->h, + ark_mem->tcur + + ((sunrealtype)j - ONE) * sm1inv * ark_mem->h); #endif retval = @@ -1089,7 +1101,8 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepSSPs2", "stage RHS", "F_%i(:) =", j); + "ARKODE::lsrkStep_TakeStepSSPs2", "stage RHS", + "F_%i(:) =", j); N_VPrintFile(ark_mem->tempv2, ARK_LOGGER->debug_fp); #endif @@ -1101,17 +1114,19 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - ONE) * sm1inv * ark_mem->h, + retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - ONE) * + sm1inv * ark_mem->h, ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } } #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepSSPs2", "start-stage", - "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, step_mem->req_stages, ark_mem->h, ark_mem->tcur + ark_mem->h); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs2", "start-stage", + "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, + ark_mem->nst, step_mem->req_stages, ark_mem->h, + ark_mem->tcur + ark_mem->h); #endif /* Evaluate the last stage for j = step_mem->req_stages */ @@ -1122,9 +1137,10 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr if (retval > 0) { return (RHSFUNC_RECVR); } #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepSSPs2", "stage RHS", "F_%i(:) =", step_mem->req_stages); - N_VPrintFile(ark_mem->tempv2, ARK_LOGGER->debug_fp); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs2", "stage RHS", + "F_%i(:) =", step_mem->req_stages); + N_VPrintFile(ark_mem->tempv2, ARK_LOGGER->debug_fp); #endif cvals[0] = ONE / (sm1inv * rs); @@ -1143,8 +1159,8 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -1166,15 +1182,17 @@ int lsrkStep_TakeStepSSPs2(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr } #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs2", - "updated solution", "ycur(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs2", "updated solution", + "ycur(:) =", ""); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); #endif #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs2", - "error-test", "step = %li, h = %" RSYM ", dsm = %" RSYM, - ark_mem->nst, ark_mem->h, *dsmPtr); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs2", "error-test", + "step = %li, h = %" RSYM ", dsm = %" RSYM, ark_mem->nst, + ark_mem->h, *dsmPtr); #endif return (ARK_SUCCESS); @@ -1223,18 +1241,18 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr int in = (int)SUNRround(rn); #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs3", - "start-stage", + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs3", "start-stage", "step = %li, stage = 0, h = %" RSYM ", tcur = %" RSYM, ark_mem->nst, ark_mem->h, ark_mem->tcur); #endif #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs3", - "stage", "z_0(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs3", "stage", "z_0(:) =", ""); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs3", - "stage RHS", "F(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs3", "stage RHS", "F(:) =", ""); N_VPrintFile(step_mem->Fe, ARK_LOGGER->debug_fp); #endif @@ -1260,12 +1278,12 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* Evaluate stages j = 2,...,step_mem->req_stages */ for (int j = 2; j <= (int)((in - 1) * (in - 2) / 2); j++) { - #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs3", "start-stage", "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, j, ark_mem->h, ark_mem->tcur + ((sunrealtype)j - ONE) * rat * ark_mem->h); + ark_mem->nst, j, ark_mem->h, + ark_mem->tcur + ((sunrealtype)j - ONE) * rat * ark_mem->h); #endif retval = @@ -1277,7 +1295,8 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepSSPs3", "stage RHS", "F_%i(:) =", j); + "ARKODE::lsrkStep_TakeStepSSPs3", "stage RHS", + "F_%i(:) =", j); N_VPrintFile(ark_mem->Fe, ARK_LOGGER->debug_fp); #endif @@ -1289,23 +1308,24 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - ONE) * rat * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - ONE) * + rat * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } } N_VScale(ONE, ark_mem->ycur, ark_mem->tempv2); - + for (int j = ((in - 1) * (in - 2) / 2 + 1); j <= (int)(in * (in + 1) / 2 - 1); j++) { - #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs3", "start-stage", "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, j, ark_mem->h, ark_mem->tcur + ((sunrealtype)j - ONE) * rat * ark_mem->h); + ark_mem->nst, j, ark_mem->h, + ark_mem->tcur + ((sunrealtype)j - ONE) * rat * ark_mem->h); #endif retval = @@ -1317,7 +1337,8 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepSSPs3", "stage RHS", "F_%i(:) =", j); + "ARKODE::lsrkStep_TakeStepSSPs3", "stage RHS", + "F_%i(:) =", j); N_VPrintFile(ark_mem->Fe, ARK_LOGGER->debug_fp); #endif @@ -1329,17 +1350,20 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - ONE) * rat * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - ONE) * + rat * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } } #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepSSPs3", "start-stage", - "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, (int)(in * (in + 1) / 2), ark_mem->h, ark_mem->tcur + rat * (rn * (rn + ONE) / TWO - ONE) * ark_mem->h); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSPs3", "start-stage", + "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, + ark_mem->nst, (int)(in * (in + 1) / 2), ark_mem->h, + ark_mem->tcur + + rat * (rn * (rn + ONE) / TWO - ONE) * ark_mem->h); #endif retval = step_mem->fe(ark_mem->tcur + @@ -1371,8 +1395,10 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + rat * (rn * (rn + ONE) / TWO - ONE) * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = + ark_mem->ProcessStage(ark_mem->tcur + + rat * (rn * (rn + ONE) / TWO - ONE) * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -1383,7 +1409,9 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSPs3", "start-stage", "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, j, ark_mem->h, ark_mem->tcur + ((sunrealtype)j - rn - ONE) * rat * ark_mem->h); + ark_mem->nst, j, ark_mem->h, + ark_mem->tcur + + ((sunrealtype)j - rn - ONE) * rat * ark_mem->h); #endif retval = step_mem->fe(ark_mem->tcur + @@ -1407,8 +1435,9 @@ int lsrkStep_TakeStepSSPs3(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - rn - ONE) * rat * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - rn - ONE) * + rat * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } } @@ -1486,18 +1515,18 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr sunrealtype p5 = SUN_RCONST(0.5); #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSP43", - "start-stage", + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSP43", "start-stage", "step = %li, stage = 0, h = %" RSYM ", tcur = %" RSYM, ark_mem->nst, ark_mem->h, ark_mem->tcur); #endif #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSP43", - "stage", "z_0(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSP43", "stage", "z_0(:) =", ""); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSP43", - "stage RHS", "F(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSP43", "stage RHS", "F(:) =", ""); N_VPrintFile(step_mem->Fe, ARK_LOGGER->debug_fp); #endif @@ -1523,16 +1552,17 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tn, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tn, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepSSP43", "start-stage", - "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, 2, ark_mem->h, ark_mem->tcur + ark_mem->h * p5); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSP43", "start-stage", + "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, + ark_mem->nst, 2, ark_mem->h, + ark_mem->tcur + ark_mem->h * p5); #endif retval = step_mem->fe(ark_mem->tcur + ark_mem->h * p5, ark_mem->ycur, @@ -1554,8 +1584,8 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * p5, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * p5, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -1569,8 +1599,10 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, step_mem->Fe, ark_mem->user_data); step_mem->nfe++; - if (retval < 0) { return (ARK_RHSFUNC_FAIL); } - if (retval > 0) { return (RHSFUNC_RECVR); } + if (retval < 0) { + return (ARK_RHSFUNC_FAIL); } + if (retval > 0) { + return (RHSFUNC_RECVR); } #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, @@ -1594,8 +1626,8 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -1609,8 +1641,10 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr retval = step_mem->fe(ark_mem->tcur + ark_mem->h * p5, ark_mem->ycur, step_mem->Fe, ark_mem->user_data); step_mem->nfe++; - if (retval < 0) { return (ARK_RHSFUNC_FAIL); } - if (retval > 0) { return (RHSFUNC_RECVR); } + if (retval < 0) { + return (ARK_RHSFUNC_FAIL); } + if (retval > 0) { + return (RHSFUNC_RECVR); } #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, @@ -1626,7 +1660,7 @@ int lsrkStep_TakeStepSSP43(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPtr if (ark_mem->ProcessStage != NULL) { retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h * p5, - ark_mem->ycur, ark_mem->user_data); + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -1702,18 +1736,19 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt N_Vector* Xvecs = step_mem->Xvecs; #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSP104", - "start-stage", + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSP104", "start-stage", "step = %li, stage = 0, h = %" RSYM ", tcur = %" RSYM, ark_mem->nst, ark_mem->h, ark_mem->tcur); #endif #ifdef SUNDIALS_LOGGING_EXTRA_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSP104", - "stage", "z_0(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSP104", "stage", "z_0(:) =", ""); N_VPrintFile(ark_mem->ycur, ARK_LOGGER->debug_fp); - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSP104", - "stage RHS", "F(:) =", ""); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSP104", "stage RHS", + "F(:) =", ""); N_VPrintFile(step_mem->Fe, ARK_LOGGER->debug_fp); #endif @@ -1743,12 +1778,13 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt /* Evaluate stages j = 2,...,step_mem->req_stages */ for (int j = 2; j <= 5; j++) { - #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSP104", "start-stage", "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, j, ark_mem->h, ark_mem->tcur + ((sunrealtype)j - ONE) * onesixth * ark_mem->h); + ark_mem->nst, j, ark_mem->h, + ark_mem->tcur + + ((sunrealtype)j - ONE) * onesixth * ark_mem->h); #endif retval = step_mem->fe(ark_mem->tcur + @@ -1775,8 +1811,9 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != 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->ProcessStage(ark_mem->tcur + ((sunrealtype)j - ONE) * + onesixth * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } } @@ -1787,12 +1824,13 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt ark_mem->ycur, ark_mem->ycur); for (int j = 6; j <= 9; j++) { - #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, "ARKODE::lsrkStep_TakeStepSSP104", "start-stage", "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, j, ark_mem->h, ark_mem->tcur + ((sunrealtype)j - FOUR) * onesixth * ark_mem->h); + ark_mem->nst, j, ark_mem->h, + ark_mem->tcur + + ((sunrealtype)j - FOUR) * onesixth * ark_mem->h); #endif retval = step_mem->fe(ark_mem->tcur + @@ -1825,17 +1863,18 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - FOUR) * onesixth * ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ((sunrealtype)j - FOUR) * + onesixth * ark_mem->h, + ark_mem->ycur, ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } } #if SUNDIALS_LOGGING_LEVEL >= SUNDIALS_LOGGING_DEBUG - SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, - "ARKODE::lsrkStep_TakeStepSSP104", "start-stage", - "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, - ark_mem->nst, 10, ark_mem->h, ark_mem->tcur + ark_mem->h); + SUNLogger_QueueMsg(ARK_LOGGER, SUN_LOGLEVEL_DEBUG, + "ARKODE::lsrkStep_TakeStepSSP104", "start-stage", + "step = %li, stage = %i, h = %" RSYM ", tcur = %" RSYM, + ark_mem->nst, 10, ark_mem->h, ark_mem->tcur + ark_mem->h); #endif retval = step_mem->fe(ark_mem->tcur + ark_mem->h, ark_mem->ycur, step_mem->Fe, @@ -1863,8 +1902,8 @@ int lsrkStep_TakeStepSSP104(ARKodeMem ark_mem, sunrealtype* dsmPtr, int* nflagPt /* apply user-supplied stage postprocessing function (if supplied) */ if (ark_mem->ProcessStage != NULL) { - retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h, - ark_mem->ycur, ark_mem->user_data); + retval = ark_mem->ProcessStage(ark_mem->tcur + ark_mem->h, ark_mem->ycur, + ark_mem->user_data); if (retval != 0) { return (ARK_POSTPROCESS_STAGE_FAIL); } } @@ -2063,7 +2102,8 @@ void lsrkStep_DomEigUpdateLogic(ARKodeMem ark_mem, ARKodeLSRKStepMem step_mem, LSRKStepCreateSTS and LSRKStepCreateSSP. ---------------------------------------------------------------*/ -void* lsrkStep_Create_Commons(ARKRhsFn rhs, sunrealtype t0, N_Vector y0, SUNContext sunctx) +void* lsrkStep_Create_Commons(ARKRhsFn rhs, sunrealtype t0, N_Vector y0, + SUNContext sunctx) { ARKodeMem ark_mem; ARKodeLSRKStepMem step_mem; @@ -2156,9 +2196,9 @@ void* lsrkStep_Create_Commons(ARKRhsFn rhs, sunrealtype t0, N_Vector y0, SUNCont step_mem->stage_max = 0; step_mem->dom_eig_num_evals = 0; step_mem->num_of_retries = 0; - step_mem->stage_max_limit = STAGE_MAX_LIMIT; - step_mem->dom_eig_nst = 0; - step_mem->is_SSP = SUNFALSE; + step_mem->stage_max_limit = STAGE_MAX_LIMIT; + step_mem->dom_eig_nst = 0; + step_mem->is_SSP = SUNFALSE; /* Initialize main ARKODE infrastructure */ retval = arkInit(ark_mem, t0, y0, FIRST_INIT); @@ -2183,7 +2223,8 @@ void* lsrkStep_Create_Commons(ARKRhsFn rhs, sunrealtype t0, N_Vector y0, SUNCont LSRKStepCreateSTS and LSRKStepCreateSSP. ---------------------------------------------------------------*/ -int lsrkStep_ReInit_Commons(void* arkode_mem, ARKRhsFn rhs, sunrealtype t0, N_Vector y0) +int lsrkStep_ReInit_Commons(void* arkode_mem, ARKRhsFn rhs, sunrealtype t0, + N_Vector y0) { ARKodeMem ark_mem; ARKodeLSRKStepMem step_mem; diff --git a/src/arkode/arkode_lsrkstep_impl.h b/src/arkode/arkode_lsrkstep_impl.h index 24e984f3df..a9f6ae50b2 100644 --- a/src/arkode/arkode_lsrkstep_impl.h +++ b/src/arkode/arkode_lsrkstep_impl.h @@ -88,8 +88,10 @@ typedef struct ARKodeLSRKStepMemRec ===============================================================*/ /* Interface routines supplied to ARKODE */ -void* lsrkStep_Create_Commons(ARKRhsFn rhs, sunrealtype t0, N_Vector y0, SUNContext sunctx); -int lsrkStep_ReInit_Commons(void* arkode_mem, ARKRhsFn rhs, sunrealtype t0, N_Vector y0); +void* lsrkStep_Create_Commons(ARKRhsFn rhs, sunrealtype t0, N_Vector y0, + SUNContext sunctx); +int lsrkStep_ReInit_Commons(void* arkode_mem, ARKRhsFn rhs, sunrealtype t0, + N_Vector y0); int lsrkStep_Init(ARKodeMem ark_mem, int init_type); int lsrkStep_FullRHS(ARKodeMem ark_mem, sunrealtype t, N_Vector y, N_Vector f, int mode); diff --git a/src/arkode/arkode_lsrkstep_io.c b/src/arkode/arkode_lsrkstep_io.c index 3f36800394..02fa6a66dd 100644 --- a/src/arkode/arkode_lsrkstep_io.c +++ b/src/arkode/arkode_lsrkstep_io.c @@ -61,26 +61,26 @@ int LSRKStepSetMethod(void* arkode_mem, ARKODE_LSRKMethodType method) step_mem->p = ark_mem->hadapt_mem->p = 2; break; case ARKODE_LSRK_SSP_S_2: - ark_mem->step = lsrkStep_TakeStepSSPs2; - step_mem->is_SSP = SUNTRUE; - step_mem->req_stages = 10; - step_mem->nfusedopvecs = 3; + ark_mem->step = lsrkStep_TakeStepSSPs2; + step_mem->is_SSP = SUNTRUE; + step_mem->req_stages = 10; + step_mem->nfusedopvecs = 3; step_mem->q = ark_mem->hadapt_mem->q = 2; step_mem->p = ark_mem->hadapt_mem->p = 1; break; case ARKODE_LSRK_SSP_S_3: - ark_mem->step = lsrkStep_TakeStepSSPs3; - step_mem->is_SSP = SUNTRUE; - step_mem->req_stages = 9; - step_mem->nfusedopvecs = 3; + ark_mem->step = lsrkStep_TakeStepSSPs3; + step_mem->is_SSP = SUNTRUE; + step_mem->req_stages = 9; + step_mem->nfusedopvecs = 3; step_mem->q = ark_mem->hadapt_mem->q = 3; step_mem->p = ark_mem->hadapt_mem->p = 2; break; case ARKODE_LSRK_SSP_10_4: - ark_mem->step = lsrkStep_TakeStepSSP104; - step_mem->is_SSP = SUNTRUE; - step_mem->req_stages = 10; - step_mem->nfusedopvecs = 3; + ark_mem->step = lsrkStep_TakeStepSSP104; + step_mem->is_SSP = SUNTRUE; + step_mem->req_stages = 10; + step_mem->nfusedopvecs = 3; step_mem->q = ark_mem->hadapt_mem->q = 4; step_mem->p = ark_mem->hadapt_mem->p = 3; break; @@ -239,10 +239,7 @@ int LSRKStepSetDomEigSafetyFactor(void* arkode_mem, sunrealtype dom_eig_safety) { step_mem->dom_eig_safety = DOM_EIG_SAFETY_DEFAULT; } - else - { - step_mem->dom_eig_safety = dom_eig_safety; - } + else { step_mem->dom_eig_safety = dom_eig_safety; } return (ARK_SUCCESS); } @@ -256,7 +253,8 @@ int LSRKStepSetDomEigSafetyFactor(void* arkode_mem, sunrealtype dom_eig_safety) to reassign a new contracted step size to ensure that the required stages remain below the stage_max_limit. ---------------------------------------------------------------*/ -int LSRKStepSetReTryContractionFactor(void* arkode_mem, sunrealtype retry_contraction_fac) +int LSRKStepSetReTryContractionFactor(void* arkode_mem, + sunrealtype retry_contraction_fac) { ARKodeMem ark_mem; ARKodeLSRKStepMem step_mem; @@ -302,32 +300,27 @@ int LSRKStepSetSSPStageNum(void* arkode_mem, int num_of_stages) &step_mem); if (retval != ARK_SUCCESS) { return (retval); } - if(!step_mem->is_SSP) + if (!step_mem->is_SSP) { arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, - "Call this function only for SSP methods: Use LSRKStepSetMethod to declare SSP method type first!"); + "Call this function only for SSP methods: Use " + "LSRKStepSetMethod to declare SSP method type first!"); return (ARK_ILL_INPUT); } - if(num_of_stages <= 0) + if (num_of_stages <= 0) { switch (step_mem->LSRKmethod) { - case ARKODE_LSRK_SSP_S_2: - step_mem->req_stages = 10; - break; + case ARKODE_LSRK_SSP_S_2: step_mem->req_stages = 10; break; - case ARKODE_LSRK_SSP_S_3: - step_mem->req_stages = 9; - break; + case ARKODE_LSRK_SSP_S_3: step_mem->req_stages = 9; break; - case ARKODE_LSRK_SSP_10_4: - step_mem->req_stages = 10; - break; + case ARKODE_LSRK_SSP_10_4: step_mem->req_stages = 10; break; default: - arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, - "Call LSRKStepSetMethod to declare SSP method type first!"); + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, + __FILE__, "Call LSRKStepSetMethod to declare SSP method type first!"); return (ARK_ILL_INPUT); break; } @@ -341,7 +334,9 @@ int LSRKStepSetSSPStageNum(void* arkode_mem, int num_of_stages) if (num_of_stages < 2) { arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, - "num_of_stages must be greater than or equal to 2, or set it less than or equal to 0 to reset the default value"); + "num_of_stages must be greater than or equal to 2, or " + "set it less than or equal to 0 to reset the default " + "value"); return (ARK_ILL_INPUT); } break; @@ -350,8 +345,10 @@ int LSRKStepSetSSPStageNum(void* arkode_mem, int num_of_stages) if (num_of_stages < 4 || (SUNRceil(SUNRsqrt(num_of_stages)) != SUNRfloor(SUNRsqrt(num_of_stages)))) { - arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, - __FILE__, "num_of_stages must be a perfect square greater than or equal to 4, or set it less than or equal to 0 to reset the default value"); + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "num_of_stages must be a perfect square greater than " + "or equal to 4, or set it less than or equal to 0 to " + "reset the default value"); return (ARK_ILL_INPUT); } if (num_of_stages == 4) { ark_mem->step = lsrkStep_TakeStepSSP43; } @@ -367,8 +364,8 @@ int LSRKStepSetSSPStageNum(void* arkode_mem, int num_of_stages) break; default: - arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, - "Call LSRKStepSetMethod to declare SSP method type first!"); + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, + __FILE__, "Call LSRKStepSetMethod to declare SSP method type first!"); return (ARK_ILL_INPUT); break; } @@ -593,7 +590,8 @@ int lsrkStep_PrintAllStats(ARKodeMem ark_mem, FILE* outfile, SUNOutputFormat fmt { case SUN_OUTPUTFORMAT_TABLE: fprintf(outfile, "RHS fn evals = %ld\n", step_mem->nfe); - fprintf(outfile, "Number of stages used = %d\n", step_mem->req_stages); + fprintf(outfile, "Number of stages used = %d\n", + step_mem->req_stages); break; case SUN_OUTPUTFORMAT_CSV: fprintf(outfile, ",RHS fn evals,%ld", step_mem->nfe); @@ -620,7 +618,8 @@ int lsrkStep_PrintAllStats(ARKodeMem ark_mem, FILE* outfile, SUNOutputFormat fmt fprintf(outfile, "Number of retried steps = %ld\n", step_mem->num_of_retries); fprintf(outfile, "Avr. num. of stages used = %.2f\n", avg_stage); - fprintf(outfile, "Max. num. of stages used = %d\n", step_mem->stage_max); + fprintf(outfile, "Max. num. of stages used = %d\n", + step_mem->stage_max); fprintf(outfile, "Max. num. of stages allowed = %d\n", step_mem->stage_max_limit); @@ -633,15 +632,16 @@ int lsrkStep_PrintAllStats(ARKodeMem ark_mem, FILE* outfile, SUNOutputFormat fmt fprintf(outfile, ",RHS fn evals,%ld", step_mem->nfe); fprintf(outfile, ",Number of dom_eig update calls,%ld", step_mem->dom_eig_num_evals); - fprintf(outfile, ",Number of retried steps,%ld", - step_mem->num_of_retries); + fprintf(outfile, ",Number of retried steps,%ld", step_mem->num_of_retries); fprintf(outfile, ",Avr. num. of stages used,%.2f", avg_stage); fprintf(outfile, ",Max. num. of stages used,%d", step_mem->stage_max); fprintf(outfile, ",Max. num. of stages allowed,%d", step_mem->stage_max_limit); - fprintf(outfile, ",Max. spectral radius,%.2f", step_mem->spectral_radius_max); - fprintf(outfile, ",Min. spectral radius,%.2f", step_mem->spectral_radius_min); + fprintf(outfile, ",Max. spectral radius,%.2f", + step_mem->spectral_radius_max); + fprintf(outfile, ",Min. spectral radius,%.2f", + step_mem->spectral_radius_min); fprintf(outfile, "\n"); break; default: @@ -691,7 +691,7 @@ int lsrkStep_WriteParameters(ARKodeMem ark_mem, FILE* fp) break; case ARKODE_LSRK_SSP_10_4: fprintf(fp, "LSRKStep SSP(10,4) time step module parameters:\n"); - + break; default: @@ -710,20 +710,31 @@ int lsrkStep_WriteParameters(ARKodeMem ark_mem, FILE* fp) break; case SUNFALSE: fprintf(fp, " Maximum number of stages used = %i\n", step_mem->stage_max); - fprintf(fp, " Num of steps that successfully used dom eig = %i\n", step_mem->dom_eig_nst); + fprintf(fp, " Num of steps that successfully used dom eig = %i\n", + step_mem->dom_eig_nst); fprintf(fp, " Current real part of the dom eig = %.2f\n", step_mem->lambdaR); fprintf(fp, " Current imag part of the dom eig = %.2f\n", step_mem->lambdaI); fprintf(fp, " Current spectral radius = %.2f\n", step_mem->spectral_radius); - fprintf(fp, " Current number of required stages = %i\n", step_mem->req_stages); - fprintf(fp, " Maximum spectral radius = %.2f\n", step_mem->spectral_radius_max); - fprintf(fp, " Minimum spectral radius = %.2f\n", step_mem->spectral_radius_min); - fprintf(fp, " Safety factor for the dom eig = %.2f\n", step_mem->dom_eig_safety); - fprintf(fp, " Max num of successful steps before new dom eig update = %i\n", step_mem->dom_eig_freq); - fprintf(fp, " Fixed num of steps before new dom eig update = %i\n", step_mem->dom_eig_freq); - fprintf(fp, " Flag to indicate new dom eig is needed = %d\n", step_mem->dom_eig_update); - fprintf(fp, " Flag to indicate Jacobian is constant = %d\n", step_mem->const_Jac); - fprintf(fp, " Flag to indicate dom eig is current = %d\n", step_mem->dom_eig_is_current); - fprintf(fp, " Flag to indicate dom eig is current = %d\n", step_mem->dom_eig_is_current); + fprintf(fp, " Current number of required stages = %i\n", + step_mem->req_stages); + fprintf(fp, " Maximum spectral radius = %.2f\n", + step_mem->spectral_radius_max); + fprintf(fp, " Minimum spectral radius = %.2f\n", + step_mem->spectral_radius_min); + fprintf(fp, " Safety factor for the dom eig = %.2f\n", + step_mem->dom_eig_safety); + fprintf(fp, " Max num of successful steps before new dom eig update = %i\n", + step_mem->dom_eig_freq); + fprintf(fp, " Fixed num of steps before new dom eig update = %i\n", + step_mem->dom_eig_freq); + fprintf(fp, " Flag to indicate new dom eig is needed = %d\n", + step_mem->dom_eig_update); + fprintf(fp, " Flag to indicate Jacobian is constant = %d\n", + step_mem->const_Jac); + fprintf(fp, " Flag to indicate dom eig is current = %d\n", + step_mem->dom_eig_is_current); + fprintf(fp, " Flag to indicate dom eig is current = %d\n", + step_mem->dom_eig_is_current); break; default: arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, diff --git a/src/arkode/fmod_int32/farkode_lsrkstep_mod.f90 b/src/arkode/fmod_int32/farkode_lsrkstep_mod.f90 index ede25e20de..a096cf149b 100644 --- a/src/arkode/fmod_int32/farkode_lsrkstep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_lsrkstep_mod.f90 @@ -29,7 +29,7 @@ module farkode_lsrkstep_mod integer(C_INT), parameter, public :: STAGE_MAX_LIMIT = 1000000_C_INT real(C_DOUBLE), parameter, public :: DOM_EIG_SAFETY_DEFAULT = 1.01_C_DOUBLE integer(C_INT), parameter, public :: DOM_EIG_FREQ_DEFAULT = 25_C_INT - real(C_DOUBLE), parameter, public :: RETRY_CONTRACTION_FAC_DEFAULT = 0.90_C_DOUBLE + real(C_DOUBLE), parameter, public :: RETRY_CONTRACTION_FAC_DEFAULT = 0.9_C_DOUBLE ! typedef enum ARKODE_LSRKMethodType enum, bind(c) enumerator :: ARKODE_LSRK_RKC_2 = 0 diff --git a/src/arkode/fmod_int64/farkode_lsrkstep_mod.f90 b/src/arkode/fmod_int64/farkode_lsrkstep_mod.f90 index ede25e20de..a096cf149b 100644 --- a/src/arkode/fmod_int64/farkode_lsrkstep_mod.f90 +++ b/src/arkode/fmod_int64/farkode_lsrkstep_mod.f90 @@ -29,7 +29,7 @@ module farkode_lsrkstep_mod integer(C_INT), parameter, public :: STAGE_MAX_LIMIT = 1000000_C_INT real(C_DOUBLE), parameter, public :: DOM_EIG_SAFETY_DEFAULT = 1.01_C_DOUBLE integer(C_INT), parameter, public :: DOM_EIG_FREQ_DEFAULT = 25_C_INT - real(C_DOUBLE), parameter, public :: RETRY_CONTRACTION_FAC_DEFAULT = 0.90_C_DOUBLE + real(C_DOUBLE), parameter, public :: RETRY_CONTRACTION_FAC_DEFAULT = 0.9_C_DOUBLE ! typedef enum ARKODE_LSRKMethodType enum, bind(c) enumerator :: ARKODE_LSRK_RKC_2 = 0