From 554fa923c8216662219f277c4ea50e9e5996c077 Mon Sep 17 00:00:00 2001 From: David Gardner Date: Tue, 15 Oct 2024 12:58:53 -0700 Subject: [PATCH] Feature: ARKodeGetNumRhsEvals (#587) Add an ARKODE level function to get the number of RHS evaluations --------- Co-authored-by: Daniel R. Reynolds Co-authored-by: Steven Roberts --- CHANGELOG.md | 3 + .../kokkos/arkode_driver.cpp | 16 +++-- .../raja/arkode_driver.cpp | 16 +++-- .../source/Usage/ARKStep/User_callable.rst | 3 + .../source/Usage/ERKStep/User_callable.rst | 3 + .../source/Usage/MRIStep/User_callable.rst | 3 + .../source/Usage/SPRKStep/User_callable.rst | 3 + .../guide/source/Usage/User_callable.rst | 34 +++++++++++ doc/shared/RecentChanges.rst | 4 ++ .../ark_brusselator1D_task_local_nls.cpp | 10 ++-- .../CXX_parallel/ark_diffusion_reaction_p.cpp | 24 ++++---- examples/arkode/CXX_parallel/ark_heat2D_p.cpp | 6 +- .../arkode/CXX_parhyp/ark_heat2D_hypre_ls.cpp | 6 +- .../CXX_parhyp/ark_heat2D_hypre_pfmg.cpp | 6 +- .../CXX_parhyp/ark_heat2D_hypre_pfmg_imex.cpp | 9 ++- .../ark_heat2D_hypre_pfmg_imex_--np_2_2.out | 3 +- .../CXX_parhyp/ark_heat2D_hypre_pfmg_mri.cpp | 15 +++-- .../ark_heat2D_hypre_pfmg_mri_--np_2_2.out | 3 +- .../ark_advection_diffusion_reaction.hpp | 28 +++++---- .../arkode/CXX_serial/ark_analytic_sys.cpp | 6 +- examples/arkode/CXX_serial/ark_heat2D.cpp | 6 +- examples/arkode/CXX_serial/ark_kpr_Mt.cpp | 6 +- examples/arkode/CXX_serial/ark_pendulum.cpp | 7 ++- .../ark_brusselator1D_FEM_sludist.cpp | 6 +- .../ark_heat2D_hypre_pfmg_xbraid.cpp | 6 +- .../arkode/CXX_xbraid/ark_heat2D_p_xbraid.cpp | 6 +- .../arkode/CXX_xbraid/ark_heat2D_xbraid.cpp | 6 +- .../C_manyvector/ark_brusselator1D_manyvec.c | 6 +- .../arkode/C_openmp/ark_brusselator1D_omp.c | 6 +- examples/arkode/C_openmp/ark_heat1D_omp.c | 6 +- .../C_openmpdev/ark_analytic_nonlin_ompdev.c | 4 +- .../arkode/C_openmpdev/ark_heat1D_ompdev.c | 6 +- .../ark_brusselator1D_task_local_nls.c | 10 ++-- .../arkode/C_parallel/ark_diurnal_kry_bbd_p.c | 6 +- .../arkode/C_parallel/ark_diurnal_kry_p.c | 6 +- examples/arkode/C_parhyp/ark_diurnal_kry_ph.c | 6 +- .../arkode/C_serial/ark_KrylovDemo_prec.c | 12 ++-- examples/arkode/C_serial/ark_analytic.c | 6 +- examples/arkode/C_serial/ark_analytic_mels.c | 6 +- examples/arkode/C_serial/ark_brusselator.c | 6 +- examples/arkode/C_serial/ark_brusselator1D.c | 6 +- .../C_serial/ark_brusselator1D_FEM_slu.c | 6 +- .../C_serial/ark_brusselator1D_imexmri.c | 12 ++-- .../arkode/C_serial/ark_brusselator1D_klu.c | 6 +- .../arkode/C_serial/ark_brusselator_1D_mri.c | 10 ++-- examples/arkode/C_serial/ark_brusselator_fp.c | 6 +- .../arkode/C_serial/ark_brusselator_mri.c | 10 ++-- .../C_serial/ark_conserved_exp_entropy_ark.c | 7 ++- .../C_serial/ark_conserved_exp_entropy_erk.c | 4 +- .../C_serial/ark_dissipated_exp_entropy.c | 7 ++- examples/arkode/C_serial/ark_heat1D.c | 6 +- examples/arkode/C_serial/ark_kpr_mri.c | 12 ++-- .../arkode/C_serial/ark_onewaycouple_mri.c | 10 ++-- .../C_serial/ark_robertson_constraints.c | 6 +- examples/arkode/C_serial/ark_robertson_root.c | 6 +- .../arkode/C_serial/ark_twowaycouple_mri.c | 10 ++-- .../ark_analytic_complex_f2003.f90 | 3 +- .../F2003_custom/ark_brusselator1D_f2003.f90 | 3 +- ...ark_brusselator1D_task_local_nls_f2003.f90 | 14 +++-- .../F2003_parallel/ark_diag_kry_bbd_f2003.f90 | 20 +++++-- .../F2003_parallel/ark_diag_non_f2003.f90 | 8 +-- .../F2003_parallel/ark_heat2D_f2003.f90 | 10 +++- .../F2003_serial/ark_analytic_f2003.f90 | 7 +-- .../ark_bruss1D_FEM_klu_f2003.f90 | 10 +++- .../arkode/F2003_serial/ark_bruss_f2003.f90 | 10 +++- .../F2003_serial/ark_diurnal_kry_bp_f2003.f90 | 10 +++- .../arkode/F2003_serial/ark_kpr_mri_f2003.f90 | 7 ++- .../F2003_serial/ark_roberts_dnsL_f2003.f90 | 10 +++- .../F2003_serial/ark_roberts_dns_f2003.f90 | 10 +++- include/arkode/arkode.h | 2 + include/arkode/arkode_arkstep.h | 6 +- include/arkode/arkode_erkstep.h | 3 +- include/arkode/arkode_mristep.h | 5 +- include/arkode/arkode_sprkstep.h | 4 +- src/arkode/arkode.c | 1 + src/arkode/arkode_arkstep.c | 1 + src/arkode/arkode_arkstep_impl.h | 2 + src/arkode/arkode_arkstep_io.c | 51 ++++++++++++---- src/arkode/arkode_erkstep.c | 1 + src/arkode/arkode_erkstep_impl.h | 2 + src/arkode/arkode_erkstep_io.c | 39 ++++++++---- src/arkode/arkode_impl.h | 3 + src/arkode/arkode_io.c | 32 ++++++++++ src/arkode/arkode_mristep.c | 1 + src/arkode/arkode_mristep_impl.h | 2 + src/arkode/arkode_mristep_io.c | 51 ++++++++++++---- src/arkode/arkode_sprkstep.c | 1 + src/arkode/arkode_sprkstep_impl.h | 2 + src/arkode/arkode_sprkstep_io.c | 51 ++++++++++++---- src/arkode/fmod_int32/farkode_arkstep_mod.c | 32 +++++----- src/arkode/fmod_int32/farkode_arkstep_mod.f90 | 60 +++++++++---------- src/arkode/fmod_int32/farkode_erkstep_mod.c | 28 ++++----- src/arkode/fmod_int32/farkode_erkstep_mod.f90 | 52 ++++++++-------- src/arkode/fmod_int32/farkode_mod.c | 16 +++++ src/arkode/fmod_int32/farkode_mod.f90 | 30 ++++++++++ src/arkode/fmod_int32/farkode_mristep_mod.c | 32 +++++----- src/arkode/fmod_int32/farkode_mristep_mod.f90 | 60 +++++++++---------- src/arkode/fmod_int32/farkode_sprkstep_mod.c | 32 +++++----- .../fmod_int32/farkode_sprkstep_mod.f90 | 60 +++++++++---------- src/arkode/fmod_int64/farkode_arkstep_mod.c | 32 +++++----- src/arkode/fmod_int64/farkode_arkstep_mod.f90 | 60 +++++++++---------- src/arkode/fmod_int64/farkode_erkstep_mod.c | 28 ++++----- src/arkode/fmod_int64/farkode_erkstep_mod.f90 | 52 ++++++++-------- src/arkode/fmod_int64/farkode_mod.c | 16 +++++ src/arkode/fmod_int64/farkode_mod.f90 | 30 ++++++++++ src/arkode/fmod_int64/farkode_mristep_mod.c | 32 +++++----- src/arkode/fmod_int64/farkode_mristep_mod.f90 | 60 +++++++++---------- src/arkode/fmod_int64/farkode_sprkstep_mod.c | 32 +++++----- .../fmod_int64/farkode_sprkstep_mod.f90 | 60 +++++++++---------- test/answers | 2 +- .../CXX_parallel/ark_test_heat2D_mri.cpp | 12 ++-- .../CXX_serial/ark_test_analytic_sys_mri.cpp | 12 ++-- .../CXX_serial/ark_test_dahlquist_ark.cpp | 7 ++- .../CXX_serial/ark_test_dahlquist_erk.cpp | 4 +- .../CXX_serial/ark_test_dahlquist_mri.cpp | 7 ++- 115 files changed, 1070 insertions(+), 614 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 138ba4ada0..2aff004841 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,9 @@ using `ENABLE_KLU=ON` in combination with a static-only build of SuiteSparse. ### Deprecation Notices +The ARKODE stepper specific functions to retrieve the number of right-hand side +function evaluations have been deprecated. Use `ARKodeGetNumRhsEvals` instead. + ## Changes to SUNDIALS in release 7.1.1 ### Bug Fixes diff --git a/benchmarks/advection_reaction_3D/kokkos/arkode_driver.cpp b/benchmarks/advection_reaction_3D/kokkos/arkode_driver.cpp index 4f606bd7bf..8330eafb70 100644 --- a/benchmarks/advection_reaction_3D/kokkos/arkode_driver.cpp +++ b/benchmarks/advection_reaction_3D/kokkos/arkode_driver.cpp @@ -189,8 +189,10 @@ int EvolveProblemDIRK(N_Vector y, UserData* udata, UserOptions* uopt) check_retval(&retval, "ARKodeGetNumSteps", 1, udata->myid); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1, udata->myid); - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1, udata->myid); retval = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); @@ -392,8 +394,10 @@ int EvolveProblemIMEX(N_Vector y, UserData* udata, UserOptions* uopt) check_retval(&retval, "ARKodeGetNumSteps", 1, udata->myid); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1, udata->myid); - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1, udata->myid); retval = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); @@ -516,8 +520,8 @@ int EvolveProblemExplicit(N_Vector y, UserData* udata, UserOptions* uopt) check_retval(&retval, "ARKodeGetNumSteps", 1, udata->myid); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1, udata->myid); - retval = ERKStepGetNumRhsEvals(arkode_mem, &nfe); - check_retval(&retval, "ERKStepGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1, udata->myid); diff --git a/benchmarks/advection_reaction_3D/raja/arkode_driver.cpp b/benchmarks/advection_reaction_3D/raja/arkode_driver.cpp index 420c9d63c9..fd59c98f87 100644 --- a/benchmarks/advection_reaction_3D/raja/arkode_driver.cpp +++ b/benchmarks/advection_reaction_3D/raja/arkode_driver.cpp @@ -190,8 +190,10 @@ int EvolveProblemDIRK(N_Vector y, UserData* udata, UserOptions* uopt) check_retval(&retval, "ARKodeGetNumSteps", 1, udata->myid); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1, udata->myid); - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1, udata->myid); retval = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); @@ -394,8 +396,10 @@ int EvolveProblemIMEX(N_Vector y, UserData* udata, UserOptions* uopt) check_retval(&retval, "ARKodeGetNumSteps", 1, udata->myid); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1, udata->myid); - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1, udata->myid); retval = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); @@ -519,8 +523,8 @@ int EvolveProblemExplicit(N_Vector y, UserData* udata, UserOptions* uopt) check_retval(&retval, "ARKodeGetNumSteps", 1, udata->myid); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1, udata->myid); - retval = ERKStepGetNumRhsEvals(arkode_mem, &nfe); - check_retval(&retval, "ERKStepGetNumRhsEvals", 1, udata->myid); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1, udata->myid); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1, udata->myid); diff --git a/doc/arkode/guide/source/Usage/ARKStep/User_callable.rst b/doc/arkode/guide/source/Usage/ARKStep/User_callable.rst index 5a21f7ea15..bef540030c 100644 --- a/doc/arkode/guide/source/Usage/ARKStep/User_callable.rst +++ b/doc/arkode/guide/source/Usage/ARKStep/User_callable.rst @@ -3155,6 +3155,9 @@ Main solver optional output functions The *nfi_evals* value does not account for calls made to :math:`f^I` by a linear solver or preconditioner module. + .. deprecated:: x.y.z + + Use :c:func:`ARKodeGetNumRhsEvals` instead. .. c:function:: int ARKStepGetNumErrTestFails(void* arkode_mem, long int* netfails) diff --git a/doc/arkode/guide/source/Usage/ERKStep/User_callable.rst b/doc/arkode/guide/source/Usage/ERKStep/User_callable.rst index 5bbb3e1f63..6c7b7b9cdf 100644 --- a/doc/arkode/guide/source/Usage/ERKStep/User_callable.rst +++ b/doc/arkode/guide/source/Usage/ERKStep/User_callable.rst @@ -1739,6 +1739,9 @@ Main solver optional output functions * *ARK_SUCCESS* if successful * *ARK_MEM_NULL* if the ERKStep memory was ``NULL`` + .. deprecated:: x.y.z + + Use :c:func:`ARKodeGetNumRhsEvals` instead. .. c:function:: int ERKStepGetNumErrTestFails(void* arkode_mem, long int* netfails) diff --git a/doc/arkode/guide/source/Usage/MRIStep/User_callable.rst b/doc/arkode/guide/source/Usage/MRIStep/User_callable.rst index bf00365669..a6354a6037 100644 --- a/doc/arkode/guide/source/Usage/MRIStep/User_callable.rst +++ b/doc/arkode/guide/source/Usage/MRIStep/User_callable.rst @@ -1895,6 +1895,9 @@ Main solver optional output functions * *ARK_MEM_NULL* if the MRIStep memory was ``NULL`` + .. deprecated:: x.y.z + + Use :c:func:`ARKodeGetNumRhsEvals` instead. .. c:function:: int MRIStepGetNumStepSolveFails(void* arkode_mem, long int* ncnf) diff --git a/doc/arkode/guide/source/Usage/SPRKStep/User_callable.rst b/doc/arkode/guide/source/Usage/SPRKStep/User_callable.rst index 7d5950fa77..73bde21f90 100644 --- a/doc/arkode/guide/source/Usage/SPRKStep/User_callable.rst +++ b/doc/arkode/guide/source/Usage/SPRKStep/User_callable.rst @@ -784,6 +784,9 @@ Main solver optional output functions :retval ARK_SUCCESS: if successful :retval ARK_MEM_NULL: if the SPRKStep memory was ``NULL`` + .. deprecated:: x.y.z + + Use :c:func:`ARKodeGetNumRhsEvals` instead. .. c:function:: int SPRKStepGetCurrentMethod(void* arkode_mem, ARKodeSPRKTable *sprk_table) diff --git a/doc/arkode/guide/source/Usage/User_callable.rst b/doc/arkode/guide/source/Usage/User_callable.rst index fd9b572382..98de3a33b6 100644 --- a/doc/arkode/guide/source/Usage/User_callable.rst +++ b/doc/arkode/guide/source/Usage/User_callable.rst @@ -3165,6 +3165,7 @@ Name of constant associated with a return flag :c:func:`ARKodeGetReturnF No. of explicit stability-limited steps :c:func:`ARKodeGetNumExpSteps` No. of accuracy-limited steps :c:func:`ARKodeGetNumAccSteps` No. of attempted steps :c:func:`ARKodeGetNumStepAttempts` +No. of RHS evaluations :c:func:`ARKodeGetNumRhsEvals` No. of local error test failures that have occurred :c:func:`ARKodeGetNumErrTestFails` No. of failed steps due to a nonlinear solver failure :c:func:`ARKodeGetNumStepSolveFails` Estimated local truncation error vector :c:func:`ARKodeGetEstLocalErrors` @@ -3470,6 +3471,39 @@ Retrieve a pointer for user data :c:func:`ARKodeGetUserDat .. versionadded:: 6.1.0 +.. c:function:: int ARKodeGetNumRhsEvals(void* arkode_mem, int partition_index, long int* num_rhs_evals) + + Returns the number of calls to the user's right-hand side function (so far). + For implicit methods or methods with an implicit partition, the count does + not include calls made by a linear solver or preconditioner. + + :param arkode_mem: pointer to the ARKODE memory block. + :param num_partition: the right-hand side partition index: + + * For ERKStep, ``0`` corresponds to :math:`f(t,y)` + + * For ARKStep, ``0`` corresponds to :math:`f^E(t,y)` and + ``1`` to :math:`f^I(t,y)` + + * For MRIStep, ``0`` corresponds to :math:`f^E(t,y)` and + ``1`` to :math:`f^I(t,y)` + + * For SPRKStep, ``0`` corresponds to :math:`f_1(t,p)` and + ``1`` to :math:`f_2(t,q)` + + A negative index will return the sum of the evaluations for + each partition. + + :param num_rhs_evals: the number of right-hand side evaluations. + + :retval ARK_SUCCESS: the function exited successfully. + :retval ARK_MEM_NULL: if ``arkode_mem`` was ``NULL``. + :retval ARK_ILL_INPUT: if ``num_partiton`` was invalid for the stepper or + ``num_rhs_evals`` was ``NULL`` + + .. versionadded:: x.y.z + + .. c:function:: int ARKodeGetNumErrTestFails(void* arkode_mem, long int* netfails) Returns the number of local error test failures that diff --git a/doc/shared/RecentChanges.rst b/doc/shared/RecentChanges.rst index 6965215f07..875d45c9b7 100644 --- a/doc/shared/RecentChanges.rst +++ b/doc/shared/RecentChanges.rst @@ -43,3 +43,7 @@ Fixed a CMake configuration issue related to aliasing an ``ALIAS`` target when using ``ENABLE_KLU=ON`` in combination with a static-only build of SuiteSparse. **Deprecation Notices** + +The ARKODE stepper specific functions to retrieve the number of right-hand side +function evaluations have been deprecated. Use :c:func:`ARKodeGetNumRhsEvals` +instead. diff --git a/examples/arkode/CXX_parallel/ark_brusselator1D_task_local_nls.cpp b/examples/arkode/CXX_parallel/ark_brusselator1D_task_local_nls.cpp index a44b52ea67..cbf3f23bd4 100644 --- a/examples/arkode/CXX_parallel/ark_brusselator1D_task_local_nls.cpp +++ b/examples/arkode/CXX_parallel/ark_brusselator1D_task_local_nls.cpp @@ -334,8 +334,10 @@ int EvolveProblemIMEX(SUNContext ctx, N_Vector y, UserData* udata, check_retval(&retval, "ARKodeGetNumSteps", 1); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1); - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1); retval = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); @@ -443,8 +445,8 @@ int EvolveProblemExplicit(SUNContext ctx, N_Vector y, UserData* udata, check_retval(&retval, "ARKodeGetNumSteps", 1); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1); - retval = ERKStepGetNumRhsEvals(arkode_mem, &nfe); - check_retval(&retval, "ERKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1); diff --git a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp index 5643211620..5dd2bbd43b 100644 --- a/examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp +++ b/examples/arkode/CXX_parallel/ark_diffusion_reaction_p.cpp @@ -2600,8 +2600,10 @@ static int OutputStatsIMEX(void* arkode_mem, UserData* udata) if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } if (udata->diffusion) { @@ -2675,11 +2677,11 @@ static int OutputStatsMRI(void* arkode_mem, MRIStepInnerStepper stepper, int flag; // Get slow integrator and solver stats - long int nsts, nfse, nfsi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; + long int nsts, nfsi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nsts); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } - flag = MRIStepGetNumRhsEvals(arkode_mem, &nfse, &nfsi); - if (check_flag(&flag, "MRIStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfsi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); @@ -2736,7 +2738,7 @@ static int OutputStatsMRI(void* arkode_mem, MRIStepInnerStepper stepper, void* inner_arkode_mem; MRIStepInnerStepper_GetContent(stepper, &inner_arkode_mem); - long int nstf, nstf_a, netff, nffe, nffi; + long int nstf, nstf_a, netff, nffe; flag = ARKodeGetNumSteps(inner_arkode_mem, &nstf); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } @@ -2744,8 +2746,8 @@ static int OutputStatsMRI(void* arkode_mem, MRIStepInnerStepper stepper, if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(inner_arkode_mem, &netff); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(inner_arkode_mem, &nffe, &nffi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(inner_arkode_mem, 0, &nffe); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } cout << "Fast Integrator:" << endl; cout << " Steps = " << nstf << endl; @@ -2763,11 +2765,11 @@ static int OutputStatsMRICVODE(void* arkode_mem, MRIStepInnerStepper stepper, int flag; // Get slow integrator and solver stats - long int nsts, nfse, nfsi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; + long int nsts, nfsi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nsts); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } - flag = MRIStepGetNumRhsEvals(arkode_mem, &nfse, &nfsi); - if (check_flag(&flag, "MRIStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfsi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); diff --git a/examples/arkode/CXX_parallel/ark_heat2D_p.cpp b/examples/arkode/CXX_parallel/ark_heat2D_p.cpp index 0bf8d97ba7..ed59996da6 100644 --- a/examples/arkode/CXX_parallel/ark_heat2D_p.cpp +++ b/examples/arkode/CXX_parallel/ark_heat2D_p.cpp @@ -1819,15 +1819,15 @@ static int OutputStats(void* arkode_mem, UserData* udata) int flag; // Get integrator and solver stats - long int nst, nst_a, netf, nfe, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; + long int nst, nst_a, netf, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls.cpp b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls.cpp index 14786d9c98..997bd4d787 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls.cpp +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_ls.cpp @@ -2111,15 +2111,15 @@ static int OutputStats(void* arkode_mem, UserData* udata) int flag; // Get integrator and solver stats - long int nst, nst_a, netf, nfe, nfi, nni, ncfn, nli, nlcf, nsetups, nJeval; + long int nst, nst_a, netf, nfi, nni, ncfn, nli, nlcf, nsetups, nJeval; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg.cpp b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg.cpp index d408bcdf78..69aa444334 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg.cpp +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg.cpp @@ -2647,15 +2647,15 @@ static int OutputStats(void* arkode_mem, UserData* udata) int flag; // Get integrator and solver stats - long int nst, nst_a, netf, nfe, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; + long int nst, nst_a, netf, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex.cpp b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex.cpp index ddf689ac47..9ca07cbfe1 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex.cpp +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex.cpp @@ -2740,8 +2740,10 @@ static int OutputStats(void* arkode_mem, UserData* udata) if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); @@ -2761,7 +2763,8 @@ static int OutputStats(void* arkode_mem, UserData* udata) cout << " Steps = " << nst << endl; cout << " Step attempts = " << nst_a << endl; cout << " Error test fails = " << netf << endl; - cout << " RHS evals = " << nfi << endl; + cout << " Fe RHS evals = " << nfe << endl; + cout << " Fi RHS evals = " << nfi << endl; cout << " NLS iters = " << nni << endl; cout << " NLS fails = " << ncfn << endl; cout << " LS iters = " << nli << endl; diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out index 66fc95aae1..429b9634d9 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_imex_--np_2_2.out @@ -56,7 +56,8 @@ Final fast integrator statistics: Steps = 722 Step attempts = 722 Error test fails = 0 - RHS evals = 5444 + Fe RHS evals = 2890 + Fi RHS evals = 5444 NLS iters = 2554 NLS fails = 0 LS iters = 8545 diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri.cpp b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri.cpp index aa75c8b61c..ab2789c7ef 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri.cpp +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri.cpp @@ -2707,15 +2707,15 @@ static int OutputFastStats(void* arkode_mem, UserData* udata) int flag; // Get integrator and solver stats - long int nst, nst_a, netf, nfe, nfi, nni, ncfn, nli, nlcf, nsetups, nJv; + long int nst, nst_a, netf, nfi, nni, ncfn, nli, nlcf, nsetups, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); @@ -2778,8 +2778,10 @@ static int OutputSlowStats(void* arkode_mem, UserData* udata) long int nst, nfe, nfi, nni, ncfn, nli, nlcf, nsetups, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } - flag = MRIStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "MRIStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); @@ -2797,7 +2799,8 @@ static int OutputSlowStats(void* arkode_mem, UserData* udata) cout << setprecision(6); cout << " Steps = " << nst << endl; - cout << " RHS evals = " << nfi << endl; + cout << " Fe RHS evals = " << nfe << endl; + cout << " Fi RHS evals = " << nfi << endl; cout << " NLS iters = " << nni << endl; cout << " NLS fails = " << ncfn << endl; cout << " LS iters = " << nli << endl; diff --git a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out index 5c1a518ea8..2a91f4f2ba 100644 --- a/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out +++ b/examples/arkode/CXX_parhyp/ark_heat2D_hypre_pfmg_mri_--np_2_2.out @@ -56,7 +56,8 @@ Final slow integrator statistics: Steps = 1000 - RHS evals = 7355 + Fe RHS evals = 4000 + Fi RHS evals = 7355 NLS iters = 3355 NLS fails = 0 LS iters = 10603 diff --git a/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.hpp b/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.hpp index 9b50109742..59a429f09b 100644 --- a/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.hpp +++ b/examples/arkode/CXX_serial/ark_advection_diffusion_reaction.hpp @@ -297,8 +297,8 @@ static int OutputStatsERK(void* arkode_mem, UserData& udata) if (check_flag(flag, "ARKodeGetNumStepAttempts")) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(flag, "ARKodeGetNumErrTestFails")) { return -1; } - flag = ERKStepGetNumRhsEvals(arkode_mem, &nfe); - if (check_flag(flag, "ERKStepGetNumRhsEvals")) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + if (check_flag(flag, "ARKodeGetNumRhsEvals")) { return -1; } cout << " Steps = " << nst << endl; cout << " Step attempts = " << nst_a << endl; @@ -321,8 +321,10 @@ static int OutputStatsARK(void* arkode_mem, UserData& udata) if (check_flag(flag, "ARKodeGetNumStepAttempts")) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(flag, "ARKodeGetNumErrTestFails")) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(flag, "ARKStepGetNumRhsEvals")) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + if (check_flag(flag, "ARKodeGetNumRhsEvals")) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(flag, "ARKodeGetNumRhsEvals")) { return -1; } cout << fixed << setprecision(6); cout << " Steps = " << nst << endl; @@ -371,8 +373,10 @@ static int OutputStatsMRIARK(void* arkode_mem, MRIStepInnerStepper fast_mem, long int nst, nst_a, netf, nfe, nfi; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(flag, "ARKodeGetNumSteps")) { return -1; } - flag = MRIStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(flag, "MRIStepGetNumRhsEvals")) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + if (check_flag(flag, "ARKodeGetNumRhsEvals")) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(flag, "ARKodeGetNumRhsEvals")) { return -1; } cout << fixed << setprecision(6); cout << endl << "Slow Integrator:" << endl; @@ -419,8 +423,10 @@ static int OutputStatsMRIARK(void* arkode_mem, MRIStepInnerStepper fast_mem, if (check_flag(flag, "ARKodeGetNumStepAttempts")) { return -1; } flag = ARKodeGetNumErrTestFails(fast_arkode_mem, &netf); if (check_flag(flag, "ARKodeGetNumErrTestFails")) { return -1; } - flag = ARKStepGetNumRhsEvals(fast_arkode_mem, &nfe, &nfi); - if (check_flag(flag, "ARKStepGetNumRhsEvals")) { return -1; } + flag = ARKodeGetNumRhsEvals(fast_arkode_mem, 0, &nfe); + if (check_flag(flag, "ARKodeGetNumRhsEvals")) { return -1; } + flag = ARKodeGetNumRhsEvals(fast_arkode_mem, 1, &nfi); + if (check_flag(flag, "ARKodeGetNumRhsEvals")) { return -1; } cout << fixed << setprecision(6); cout << endl << "Fast Integrator:" << endl; @@ -507,8 +513,10 @@ static int OutputStatsMRICVODE(void* arkode_mem, MRIStepInnerStepper fast_mem, long int nsts, nfse, nfsi; flag = ARKodeGetNumSteps(arkode_mem, &nsts); if (check_flag(flag, "ARKodeGetNumSteps")) { return -1; } - flag = MRIStepGetNumRhsEvals(arkode_mem, &nfse, &nfsi); - if (check_flag(flag, "MRIStepGetNumRhsEvals")) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfse); + if (check_flag(flag, "ARKodeGetNumRhsEvals")) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfsi); + if (check_flag(flag, "ARKodeGetNumRhsEvals")) { return -1; } long int nni, ncfn; flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); diff --git a/examples/arkode/CXX_serial/ark_analytic_sys.cpp b/examples/arkode/CXX_serial/ark_analytic_sys.cpp index 944c40be1a..d48ce0abb9 100644 --- a/examples/arkode/CXX_serial/ark_analytic_sys.cpp +++ b/examples/arkode/CXX_serial/ark_analytic_sys.cpp @@ -239,8 +239,10 @@ int main() check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/CXX_serial/ark_heat2D.cpp b/examples/arkode/CXX_serial/ark_heat2D.cpp index 3298eac1f9..4b75d703bb 100644 --- a/examples/arkode/CXX_serial/ark_heat2D.cpp +++ b/examples/arkode/CXX_serial/ark_heat2D.cpp @@ -1086,15 +1086,15 @@ static int OutputStats(void* arkode_mem, UserData* udata) int flag; // Get integrator and solver stats - long int nst, nst_a, netf, nfe, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; + long int nst, nst_a, netf, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt.cpp b/examples/arkode/CXX_serial/ark_kpr_Mt.cpp index bd945fa00b..f48f81bc84 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt.cpp +++ b/examples/arkode/CXX_serial/ark_kpr_Mt.cpp @@ -575,8 +575,10 @@ static int adaptive_run(void* arkode_mem, N_Vector y, sunrealtype T0, if (check_retval(&retval, "ARKodeGetNumSteps", 1)) { return 1; } retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); if (check_retval(&retval, "ARKodeGetNumStepAttempts", 1)) { return 1; } - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_retval(&retval, "ARKStepGetNumRhsEvals", 1)) { return 1; } + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + if (check_retval(&retval, "ARKodeGetNumRhsEvals", 1)) { return 1; } + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_retval(&retval, "ARKodeGetNumRhsEvals", 1)) { return 1; } retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_retval(&retval, "ARKodeGetNumErrTestFails", 1)) { return 1; } retval = ARKodeGetNumMassSetups(arkode_mem, &nmset); diff --git a/examples/arkode/CXX_serial/ark_pendulum.cpp b/examples/arkode/CXX_serial/ark_pendulum.cpp index 57c23ccc99..3cee00125b 100644 --- a/examples/arkode/CXX_serial/ark_pendulum.cpp +++ b/examples/arkode/CXX_serial/ark_pendulum.cpp @@ -300,8 +300,11 @@ int main(int argc, char* argv[]) flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_flag(flag, "ARKodeGetNumErrTestFails"); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(flag, "ARKStepGetNumRhsEvals"); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(flag, "ARKodeGetNumRhsEvals"); + + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(flag, "ARKodeGetNumRhsEvals"); std::cout << std::endl; std::cout << "Final Solver Statistics:\n"; diff --git a/examples/arkode/CXX_superludist/ark_brusselator1D_FEM_sludist.cpp b/examples/arkode/CXX_superludist/ark_brusselator1D_FEM_sludist.cpp index 15f50ea46e..64ffd741a9 100644 --- a/examples/arkode/CXX_superludist/ark_brusselator1D_FEM_sludist.cpp +++ b/examples/arkode/CXX_superludist/ark_brusselator1D_FEM_sludist.cpp @@ -575,8 +575,10 @@ int main(int argc, char* argv[]) check_retval(&retval, "ARKodeGetNumSteps", 1); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1); - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); retval = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_retval(&retval, "ARKodeGetNumLinSolvSetups", 1); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid.cpp b/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid.cpp index 987ba94a5d..0c4da9c70e 100644 --- a/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid.cpp +++ b/examples/arkode/CXX_xbraid/ark_heat2D_hypre_pfmg_xbraid.cpp @@ -2902,15 +2902,15 @@ static int OutputStats(void* arkode_mem, UserData* udata) bool outproc = (udata->myid_w == 0); // Get integrator and solver stats - long int nst, nst_a, netf, nfe, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; + long int nst, nst_a, netf, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); diff --git a/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid.cpp b/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid.cpp index d6cc3b7319..466b1f7f9c 100644 --- a/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid.cpp +++ b/examples/arkode/CXX_xbraid/ark_heat2D_p_xbraid.cpp @@ -2052,15 +2052,15 @@ static int OutputStats(void* arkode_mem, UserData* udata) bool outproc = (udata->myid_w == 0); // Get integrator and solver stats - long int nst, nst_a, netf, nfe, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; + long int nst, nst_a, netf, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); diff --git a/examples/arkode/CXX_xbraid/ark_heat2D_xbraid.cpp b/examples/arkode/CXX_xbraid/ark_heat2D_xbraid.cpp index 3e6cd8b1d5..c330571584 100644 --- a/examples/arkode/CXX_xbraid/ark_heat2D_xbraid.cpp +++ b/examples/arkode/CXX_xbraid/ark_heat2D_xbraid.cpp @@ -1351,15 +1351,15 @@ static int OutputStats(void* arkode_mem, UserData* udata) bool outproc = (udata->myid_w == 0); // Get integrator and solver stats - long int nst, nst_a, netf, nfe, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; + long int nst, nst_a, netf, nfi, nni, ncfn, nli, nlcf, nsetups, nfi_ls, nJv; flag = ARKodeGetNumSteps(arkode_mem, &nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return -1; } flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); if (check_flag(&flag, "ARKodeGetNumStepAttempts", 1)) { return -1; } flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); if (check_flag(&flag, "ARKodeGetNumErrTestFails", 1)) { return -1; } - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return -1; } + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return -1; } flag = ARKodeGetNumNonlinSolvConvFails(arkode_mem, &ncfn); diff --git a/examples/arkode/C_manyvector/ark_brusselator1D_manyvec.c b/examples/arkode/C_manyvector/ark_brusselator1D_manyvec.c index 45ab77e455..fe21069373 100644 --- a/examples/arkode/C_manyvector/ark_brusselator1D_manyvec.c +++ b/examples/arkode/C_manyvector/ark_brusselator1D_manyvec.c @@ -292,8 +292,10 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_openmp/ark_brusselator1D_omp.c b/examples/arkode/C_openmp/ark_brusselator1D_omp.c index 1fc53f29d2..81cc915abc 100644 --- a/examples/arkode/C_openmp/ark_brusselator1D_omp.c +++ b/examples/arkode/C_openmp/ark_brusselator1D_omp.c @@ -323,8 +323,10 @@ int main(int argc, char* argv[]) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_openmp/ark_heat1D_omp.c b/examples/arkode/C_openmp/ark_heat1D_omp.c index 4fc8eb998b..2bdaa71ea4 100644 --- a/examples/arkode/C_openmp/ark_heat1D_omp.c +++ b/examples/arkode/C_openmp/ark_heat1D_omp.c @@ -215,8 +215,10 @@ int main(int argc, char* argv[]) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_openmpdev/ark_analytic_nonlin_ompdev.c b/examples/arkode/C_openmpdev/ark_analytic_nonlin_ompdev.c index 1f847e9dfe..15c909a73f 100644 --- a/examples/arkode/C_openmpdev/ark_analytic_nonlin_ompdev.c +++ b/examples/arkode/C_openmpdev/ark_analytic_nonlin_ompdev.c @@ -140,8 +140,8 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ERKStepGetNumRhsEvals(arkode_mem, &nfe); - check_flag(&flag, "ERKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_flag(&flag, "ARKodeGetNumErrTestFails", 1); diff --git a/examples/arkode/C_openmpdev/ark_heat1D_ompdev.c b/examples/arkode/C_openmpdev/ark_heat1D_ompdev.c index c6307e226f..56bad92e9b 100644 --- a/examples/arkode/C_openmpdev/ark_heat1D_ompdev.c +++ b/examples/arkode/C_openmpdev/ark_heat1D_ompdev.c @@ -211,8 +211,10 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_parallel/ark_brusselator1D_task_local_nls.c b/examples/arkode/C_parallel/ark_brusselator1D_task_local_nls.c index a35437e611..d3a71248c6 100644 --- a/examples/arkode/C_parallel/ark_brusselator1D_task_local_nls.c +++ b/examples/arkode/C_parallel/ark_brusselator1D_task_local_nls.c @@ -458,8 +458,10 @@ static int EvolveProblemIMEX(N_Vector y, UserData udata, UserOptions uopt, check_retval(&retval, "ARKodeGetNumSteps", 1); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1); - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1); retval = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); @@ -570,8 +572,8 @@ static int EvolveProblemExplicit(N_Vector y, UserData udata, UserOptions uopt, check_retval(&retval, "ARKodeGetNumSteps", 1); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1); - retval = ERKStepGetNumRhsEvals(arkode_mem, &nfe); - check_retval(&retval, "ERKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_retval(&retval, "ARKodeGetNumErrTestFails", 1); diff --git a/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.c b/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.c index 190b7c40ce..ced0c56894 100644 --- a/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.c +++ b/examples/arkode/C_parallel/ark_diurnal_kry_bbd_p.c @@ -481,8 +481,10 @@ static void PrintFinalStats(void* arkode_mem) check_flag(&flag, "ARKodeGetWorkSpace", 1, 0); flag = ARKodeGetNumSteps(arkode_mem, &nst); check_flag(&flag, "ARKodeGetNumSteps", 1, 0); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1, 0); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1, 0); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1, 0); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1, 0); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_parallel/ark_diurnal_kry_p.c b/examples/arkode/C_parallel/ark_diurnal_kry_p.c index b5d9941480..4f8f39634a 100644 --- a/examples/arkode/C_parallel/ark_diurnal_kry_p.c +++ b/examples/arkode/C_parallel/ark_diurnal_kry_p.c @@ -474,8 +474,10 @@ static void PrintFinalStats(void* arkode_mem) check_flag(&flag, "ARKodeGetWorkSpace", 1, 0); flag = ARKodeGetNumSteps(arkode_mem, &nst); check_flag(&flag, "ARKodeGetNumSteps", 1, 0); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1, 0); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1, 0); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1, 0); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1, 0); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_parhyp/ark_diurnal_kry_ph.c b/examples/arkode/C_parhyp/ark_diurnal_kry_ph.c index 59dfc3d0f4..10f88144aa 100644 --- a/examples/arkode/C_parhyp/ark_diurnal_kry_ph.c +++ b/examples/arkode/C_parhyp/ark_diurnal_kry_ph.c @@ -486,8 +486,10 @@ static void PrintFinalStats(void* arkode_mem) check_flag(&flag, "ARKodeGetWorkSpace", 1, 0); flag = ARKodeGetNumSteps(arkode_mem, &nst); check_flag(&flag, "ARKodeGetNumSteps", 1, 0); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1, 0); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1, 0); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1, 0); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1, 0); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_KrylovDemo_prec.c b/examples/arkode/C_serial/ark_KrylovDemo_prec.c index 501ff55e80..31ba755240 100644 --- a/examples/arkode/C_serial/ark_KrylovDemo_prec.c +++ b/examples/arkode/C_serial/ark_KrylovDemo_prec.c @@ -643,8 +643,10 @@ static void PrintOutput(void* arkode_mem, sunrealtype t) flag = ARKodeGetNumSteps(arkode_mem, &nst); check_flag(&flag, "ARKodeGetNumSteps", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1); flag = ARKodeGetLastStep(arkode_mem, &hu); @@ -678,8 +680,10 @@ static void PrintFinalStats(void* arkode_mem) check_flag(&flag, "ARKodeGetWorkSpace", 1); flag = ARKodeGetNumSteps(arkode_mem, &nst); check_flag(&flag, "ARKodeGetNumSteps", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_analytic.c b/examples/arkode/C_serial/ark_analytic.c index 152a95133d..a15bde944d 100644 --- a/examples/arkode/C_serial/ark_analytic.c +++ b/examples/arkode/C_serial/ark_analytic.c @@ -169,8 +169,10 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_analytic_mels.c b/examples/arkode/C_serial/ark_analytic_mels.c index 95dca9fbc2..eaa7236d0f 100644 --- a/examples/arkode/C_serial/ark_analytic_mels.c +++ b/examples/arkode/C_serial/ark_analytic_mels.c @@ -153,8 +153,10 @@ int main(void) check_retval(&retval, "ARKodeGetNumSteps", 1); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1); - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); retval = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_retval(&retval, "ARKodeGetNumLinSolvSetups", 1); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_brusselator.c b/examples/arkode/C_serial/ark_brusselator.c index a501f997e2..d766a773d6 100644 --- a/examples/arkode/C_serial/ark_brusselator.c +++ b/examples/arkode/C_serial/ark_brusselator.c @@ -250,8 +250,10 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_brusselator1D.c b/examples/arkode/C_serial/ark_brusselator1D.c index e0c803561e..28a40201c8 100644 --- a/examples/arkode/C_serial/ark_brusselator1D.c +++ b/examples/arkode/C_serial/ark_brusselator1D.c @@ -299,8 +299,10 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_brusselator1D_FEM_slu.c b/examples/arkode/C_serial/ark_brusselator1D_FEM_slu.c index 2978d2f77c..d3dcbc36e6 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_FEM_slu.c +++ b/examples/arkode/C_serial/ark_brusselator1D_FEM_slu.c @@ -404,8 +404,10 @@ int main(int argc, char* argv[]) check_retval(&retval, "ARKodeGetNumSteps", 1); retval = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1); - retval = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); retval = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_retval(&retval, "ARKodeGetNumLinSolvSetups", 1); retval = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_brusselator1D_imexmri.c b/examples/arkode/C_serial/ark_brusselator1D_imexmri.c index 1d52164719..a779faeb04 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_imexmri.c +++ b/examples/arkode/C_serial/ark_brusselator1D_imexmri.c @@ -752,14 +752,18 @@ int main(int argc, char* argv[]) /* Get some slow integrator statistics */ retval = ARKodeGetNumSteps(arkode_mem, &nsts); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = MRIStepGetNumRhsEvals(arkode_mem, &nfse, &nfsi); - check_retval(&retval, "MRIStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfse); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfsi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Get some fast integrator statistics */ retval = ARKodeGetNumSteps(inner_arkode_mem, &nstf); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = ARKStepGetNumRhsEvals(inner_arkode_mem, &nffe, &nffi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(inner_arkode_mem, 0, &nffe); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(inner_arkode_mem, 1, &nffi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Print some final statistics */ printf("\nFinal Solver Statistics:\n"); diff --git a/examples/arkode/C_serial/ark_brusselator1D_klu.c b/examples/arkode/C_serial/ark_brusselator1D_klu.c index d9831a948a..19d25fc221 100644 --- a/examples/arkode/C_serial/ark_brusselator1D_klu.c +++ b/examples/arkode/C_serial/ark_brusselator1D_klu.c @@ -314,8 +314,10 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_brusselator_1D_mri.c b/examples/arkode/C_serial/ark_brusselator_1D_mri.c index 54398dcf71..0dc4323bc3 100644 --- a/examples/arkode/C_serial/ark_brusselator_1D_mri.c +++ b/examples/arkode/C_serial/ark_brusselator_1D_mri.c @@ -136,7 +136,7 @@ int main(int argc, char* argv[]) FILE *FID, *UFID, *VFID, *WFID; /* output file pointers */ int iout; /* output counter */ long int nsts, nstf, nstf_a, netf; /* step stats */ - long int nfse, nfsi, nffe, nffi; /* RHS stats */ + long int nfse, nffi; /* RHS stats */ long int nsetups, nje, nfeLS; /* linear solver stats */ long int nni, ncfn; /* nonlinear solver stats */ sunindextype NEQ; /* number of equations */ @@ -349,16 +349,16 @@ int main(int argc, char* argv[]) /* Get some slow integrator statistics */ retval = ARKodeGetNumSteps(arkode_mem, &nsts); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = MRIStepGetNumRhsEvals(arkode_mem, &nfse, &nfsi); - check_retval(&retval, "MRIStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfse); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Get some fast integrator statistics */ retval = ARKodeGetNumSteps(inner_arkode_mem, &nstf); check_retval(&retval, "ARKodeGetNumSteps", 1); retval = ARKodeGetNumStepAttempts(inner_arkode_mem, &nstf_a); check_retval(&retval, "ARKodeGetNumStepAttempts", 1); - retval = ARKStepGetNumRhsEvals(inner_arkode_mem, &nffe, &nffi); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(inner_arkode_mem, 1, &nffi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); retval = ARKodeGetNumLinSolvSetups(inner_arkode_mem, &nsetups); check_retval(&retval, "ARKodeGetNumLinSolvSetups", 1); retval = ARKodeGetNumErrTestFails(inner_arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_brusselator_fp.c b/examples/arkode/C_serial/ark_brusselator_fp.c index 518eeccdb8..56f93c1423 100644 --- a/examples/arkode/C_serial/ark_brusselator_fp.c +++ b/examples/arkode/C_serial/ark_brusselator_fp.c @@ -249,8 +249,10 @@ int main(int argc, char* argv[]) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_flag(&flag, "ARKodeGetNumErrTestFails", 1); flag = ARKodeGetNumNonlinSolvIters(arkode_mem, &nni); diff --git a/examples/arkode/C_serial/ark_brusselator_mri.c b/examples/arkode/C_serial/ark_brusselator_mri.c index 1ea84c3ee5..67d2c57b80 100644 --- a/examples/arkode/C_serial/ark_brusselator_mri.c +++ b/examples/arkode/C_serial/ark_brusselator_mri.c @@ -81,7 +81,7 @@ int main(void) FILE* UFID; sunrealtype t, tout; int iout; - long int nsts, nstf, nfse, nfsi, nff, tmp; + long int nsts, nstf, nfse, nff; /* * Initialization @@ -219,14 +219,14 @@ int main(void) /* Get some slow integrator statistics */ retval = ARKodeGetNumSteps(arkode_mem, &nsts); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = MRIStepGetNumRhsEvals(arkode_mem, &nfse, &nfsi); - check_retval(&retval, "MRIStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfse); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Get some fast integrator statistics */ retval = ARKodeGetNumSteps(inner_arkode_mem, &nstf); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = ARKStepGetNumRhsEvals(inner_arkode_mem, &nff, &tmp); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(inner_arkode_mem, 0, &nff); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Print some final statistics */ printf("\nFinal Solver Statistics:\n"); diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark.c b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark.c index c9570e8bec..e1962d01fe 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_ark.c +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_ark.c @@ -340,8 +340,11 @@ int main(int argc, char* argv[]) flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_flag(flag, "ARKodeGetNumErrTestFails"); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(flag, "ARKStepGetNumRhsEvals"); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(flag, "ARKodeGetNumRhsEvals"); + + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(flag, "ARKodeGetNumRhsEvals"); printf("\nFinal Solver Statistics:\n"); printf(" Internal solver steps = %li (attempted = %li)\n", nst, nst_a); diff --git a/examples/arkode/C_serial/ark_conserved_exp_entropy_erk.c b/examples/arkode/C_serial/ark_conserved_exp_entropy_erk.c index 6b73b0d999..47bd3fa6e6 100644 --- a/examples/arkode/C_serial/ark_conserved_exp_entropy_erk.c +++ b/examples/arkode/C_serial/ark_conserved_exp_entropy_erk.c @@ -300,8 +300,8 @@ int main(int argc, char* argv[]) flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_flag(flag, "ARKodeGetNumErrTestFails"); - flag = ERKStepGetNumRhsEvals(arkode_mem, &nfe); - check_flag(flag, "ERKStepGetNumRhsEvals"); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(flag, "ARKodeGetNumRhsEvals"); printf("\nFinal Solver Statistics:\n"); printf(" Internal solver steps = %li (attempted = %li)\n", nst, nst_a); diff --git a/examples/arkode/C_serial/ark_dissipated_exp_entropy.c b/examples/arkode/C_serial/ark_dissipated_exp_entropy.c index 5b071b61ae..1b7dc0ad38 100644 --- a/examples/arkode/C_serial/ark_dissipated_exp_entropy.c +++ b/examples/arkode/C_serial/ark_dissipated_exp_entropy.c @@ -318,8 +318,11 @@ int main(int argc, char* argv[]) flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); check_flag(flag, "ARKodeGetNumErrTestFails"); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(flag, "ARKStepGetNumRhsEvals"); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(flag, "ARKodeGetNumRhsEvals"); + + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(flag, "ARKodeGetNumRhsEvals"); printf("\nFinal Solver Statistics:\n"); printf(" Internal solver steps = %li (attempted = %li)\n", nst, nst_a); diff --git a/examples/arkode/C_serial/ark_heat1D.c b/examples/arkode/C_serial/ark_heat1D.c index 6bed4a20c8..e796d0119f 100644 --- a/examples/arkode/C_serial/ark_heat1D.c +++ b/examples/arkode/C_serial/ark_heat1D.c @@ -200,8 +200,10 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_kpr_mri.c b/examples/arkode/C_serial/ark_kpr_mri.c index 2ae783435e..f119998632 100644 --- a/examples/arkode/C_serial/ark_kpr_mri.c +++ b/examples/arkode/C_serial/ark_kpr_mri.c @@ -158,7 +158,7 @@ int main(int argc, char* argv[]) sunrealtype hf, gamma, beta, t, tout, rpar[3]; sunrealtype uerr, verr, uerrtot, verrtot, errtot; int iout; - long int nsts, nstf, nfse, nfsi, nff, nnif, nncf, njef, nnis, nncs, njes, tmp; + long int nsts, nstf, nfse, nfsi, nff, nnif, nncf, njef, nnis, nncs, njes; /* * Initialization @@ -626,14 +626,16 @@ int main(int argc, char* argv[]) /* Get some slow integrator statistics */ retval = ARKodeGetNumSteps(arkode_mem, &nsts); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = MRIStepGetNumRhsEvals(arkode_mem, &nfse, &nfsi); - check_retval(&retval, "MRIStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfse); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfsi); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Get some fast integrator statistics */ retval = ARKodeGetNumSteps(inner_arkode_mem, &nstf); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = ARKStepGetNumRhsEvals(inner_arkode_mem, &nff, &tmp); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(inner_arkode_mem, 0, &nff); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Print some final statistics */ printf("\nFinal Solver Statistics:\n"); diff --git a/examples/arkode/C_serial/ark_onewaycouple_mri.c b/examples/arkode/C_serial/ark_onewaycouple_mri.c index ad6776e7bb..78e1ede79c 100644 --- a/examples/arkode/C_serial/ark_onewaycouple_mri.c +++ b/examples/arkode/C_serial/ark_onewaycouple_mri.c @@ -95,7 +95,7 @@ int main(void) sunrealtype t, tout; sunrealtype error = SUN_RCONST(0.0); int iout; - long int nsts, nstf, nfse, nfsi, nff, tmp; + long int nsts, nstf, nfse, nff; /* * Initialization @@ -228,14 +228,14 @@ int main(void) /* Get some slow integrator statistics */ retval = ARKodeGetNumSteps(arkode_mem, &nsts); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = MRIStepGetNumRhsEvals(arkode_mem, &nfse, &nfsi); - check_retval(&retval, "MRIStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfse); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Get some fast integrator statistics */ retval = ARKodeGetNumSteps(inner_arkode_mem, &nstf); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = ARKStepGetNumRhsEvals(inner_arkode_mem, &nff, &tmp); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(inner_arkode_mem, 0, &nff); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Print some final statistics */ printf("\nFinal Solver Statistics:\n"); diff --git a/examples/arkode/C_serial/ark_robertson_constraints.c b/examples/arkode/C_serial/ark_robertson_constraints.c index 2e5062d0e5..532149b212 100644 --- a/examples/arkode/C_serial/ark_robertson_constraints.c +++ b/examples/arkode/C_serial/ark_robertson_constraints.c @@ -204,8 +204,10 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_robertson_root.c b/examples/arkode/C_serial/ark_robertson_root.c index 846a1bdb04..ae8e476394 100644 --- a/examples/arkode/C_serial/ark_robertson_root.c +++ b/examples/arkode/C_serial/ark_robertson_root.c @@ -214,8 +214,10 @@ int main(void) check_flag(&flag, "ARKodeGetNumSteps", 1); flag = ARKodeGetNumStepAttempts(arkode_mem, &nst_a); check_flag(&flag, "ARKodeGetNumStepAttempts", 1); - flag = ARKStepGetNumRhsEvals(arkode_mem, &nfe, &nfi); - check_flag(&flag, "ARKStepGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfe); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); + flag = ARKodeGetNumRhsEvals(arkode_mem, 1, &nfi); + check_flag(&flag, "ARKodeGetNumRhsEvals", 1); flag = ARKodeGetNumLinSolvSetups(arkode_mem, &nsetups); check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1); flag = ARKodeGetNumErrTestFails(arkode_mem, &netf); diff --git a/examples/arkode/C_serial/ark_twowaycouple_mri.c b/examples/arkode/C_serial/ark_twowaycouple_mri.c index 4a099d99a4..67b5415850 100644 --- a/examples/arkode/C_serial/ark_twowaycouple_mri.c +++ b/examples/arkode/C_serial/ark_twowaycouple_mri.c @@ -78,7 +78,7 @@ int main(void) FILE* UFID; sunrealtype t, tout; int iout; - long int nsts, nstf, nfse, nfsi, nff, tmp; + long int nsts, nstf, nfse, nff; /* Create the SUNDIALS context object for this simulation */ SUNContext ctx; @@ -195,14 +195,14 @@ int main(void) /* Get some slow integrator statistics */ retval = ARKodeGetNumSteps(arkode_mem, &nsts); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = MRIStepGetNumRhsEvals(arkode_mem, &nfse, &nfsi); - check_retval(&retval, "MRIStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, &nfse); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Get some fast integrator statistics */ retval = ARKodeGetNumSteps(inner_arkode_mem, &nstf); check_retval(&retval, "ARKodeGetNumSteps", 1); - retval = ARKStepGetNumRhsEvals(inner_arkode_mem, &nff, &tmp); - check_retval(&retval, "ARKStepGetNumRhsEvals", 1); + retval = ARKodeGetNumRhsEvals(inner_arkode_mem, 0, &nff); + check_retval(&retval, "ARKodeGetNumRhsEvals", 1); /* Print some final statistics */ printf("\nFinal Solver Statistics:\n"); diff --git a/examples/arkode/F2003_custom/ark_analytic_complex_f2003.f90 b/examples/arkode/F2003_custom/ark_analytic_complex_f2003.f90 index e371c7af08..23a5919068 100644 --- a/examples/arkode/F2003_custom/ark_analytic_complex_f2003.f90 +++ b/examples/arkode/F2003_custom/ark_analytic_complex_f2003.f90 @@ -235,14 +235,13 @@ subroutine ARKStepStats(arkode_mem) integer(c_long) :: nsteps(1) ! num steps integer(c_long) :: nst_a(1) ! num steps attempted integer(c_long) :: nfe(1) ! num explicit function evals - integer(c_long) :: nfi(1) ! num implicit function evals integer(c_long) :: netfails(1) ! num error test fails !======= Internals ============ ierr = FARKodeGetNumSteps(arkode_mem, nsteps) ierr = FARKodeGetNumStepAttempts(arkode_mem, nst_a) - ierr = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + ierr = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) ierr = FARKodeGetNumErrTestFails(arkode_mem, netfails) print *, ' ' diff --git a/examples/arkode/F2003_custom/ark_brusselator1D_f2003.f90 b/examples/arkode/F2003_custom/ark_brusselator1D_f2003.f90 index 71e577acd5..e837b4e684 100644 --- a/examples/arkode/F2003_custom/ark_brusselator1D_f2003.f90 +++ b/examples/arkode/F2003_custom/ark_brusselator1D_f2003.f90 @@ -433,7 +433,8 @@ subroutine ARKStepStats(arkode_mem) ierr = FARKodeGetNumSteps(arkode_mem, nsteps) ierr = FARKodeGetNumStepAttempts(arkode_mem, nst_a) - ierr = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + ierr = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) + ierr = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) ierr = FARKodeGetNumLinRhsEvals(arkode_mem, nfeLS) ierr = FARKodeGetNumLinSolvSetups(arkode_mem, nlinsetups) ierr = FARKodeGetNumJacEvals(arkode_mem, nje) diff --git a/examples/arkode/F2003_parallel/ark_brusselator1D_task_local_nls_f2003.f90 b/examples/arkode/F2003_parallel/ark_brusselator1D_task_local_nls_f2003.f90 index 7d17efaaf3..9b30cbc70a 100644 --- a/examples/arkode/F2003_parallel/ark_brusselator1D_task_local_nls_f2003.f90 +++ b/examples/arkode/F2003_parallel/ark_brusselator1D_task_local_nls_f2003.f90 @@ -1362,9 +1362,15 @@ subroutine EvolveProblemIMEX(sunvec_y) call MPI_Abort(comm, 1, ierr) end if - retval = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (retval /= 0) then - print *, "Error: FARKStepGetNumRhsEvals returned ", retval + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' + call MPI_Abort(comm, 1, ierr) + end if + + retval = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) + if (retval /= 0) then + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' call MPI_Abort(comm, 1, ierr) end if @@ -1586,9 +1592,9 @@ subroutine EvolveProblemExplicit(sunvec_y) call MPI_Abort(comm, 1, ierr) end if - retval = FERKStepGetNumRhsEvals(arkode_mem, nfe) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (retval /= 0) then - print *, "Error: FERKStepGetNumRhsEvals returned ", retval + print *, "Error: FARKodeGetNumRhsEvals returned ", retval call MPI_Abort(comm, 1, ierr) end if diff --git a/examples/arkode/F2003_parallel/ark_diag_kry_bbd_f2003.f90 b/examples/arkode/F2003_parallel/ark_diag_kry_bbd_f2003.f90 index 8c67715974..d963fea725 100644 --- a/examples/arkode/F2003_parallel/ark_diag_kry_bbd_f2003.f90 +++ b/examples/arkode/F2003_parallel/ark_diag_kry_bbd_f2003.f90 @@ -360,9 +360,15 @@ program driver call MPI_Abort(comm, 1, ierr) end if - retval = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (retval /= 0) then - print *, "Error: FARKStepGetNumRhsEvals returned ", retval + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' + call MPI_Abort(comm, 1, ierr) + end if + + retval = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) + if (retval /= 0) then + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' call MPI_Abort(comm, 1, ierr) end if @@ -406,9 +412,15 @@ program driver call MPI_Abort(comm, 1, ierr) end if - retval = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) + if (retval /= 0) then + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' + call MPI_Abort(comm, 1, ierr) + end if + + retval = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) if (retval /= 0) then - print *, "Error: FARKStepGetNumRhsEvals returned ", retval + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' call MPI_Abort(comm, 1, ierr) end if diff --git a/examples/arkode/F2003_parallel/ark_diag_non_f2003.f90 b/examples/arkode/F2003_parallel/ark_diag_non_f2003.f90 index d3bfc3a55f..3282e22832 100644 --- a/examples/arkode/F2003_parallel/ark_diag_non_f2003.f90 +++ b/examples/arkode/F2003_parallel/ark_diag_non_f2003.f90 @@ -235,9 +235,9 @@ program driver call MPI_Abort(comm, 1, ierr) end if - retval = FERKStepGetNumRhsEvals(arkode_mem, nfe) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (retval /= 0) then - print *, "Error: FERKStepGetNumRhsEvals returned ", retval + print *, "Error: FARKodeGetNumRhsEvals returned ", retval call MPI_Abort(comm, 1, ierr) end if @@ -281,9 +281,9 @@ program driver call MPI_Abort(comm, 1, ierr) end if - retval = FERKStepGetNumRhsEvals(arkode_mem, nfe) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (retval /= 0) then - print *, "Error: FERKStepGetNumRhsEvals returned ", retval + print *, "Error: FARKodeGetNumRhsEvals returned ", retval call MPI_Abort(comm, 1, ierr) end if diff --git a/examples/arkode/F2003_parallel/ark_heat2D_f2003.f90 b/examples/arkode/F2003_parallel/ark_heat2D_f2003.f90 index e024dc9dff..60fd288894 100644 --- a/examples/arkode/F2003_parallel/ark_heat2D_f2003.f90 +++ b/examples/arkode/F2003_parallel/ark_heat2D_f2003.f90 @@ -884,9 +884,15 @@ program driver call MPI_Abort(comm, 1, ierr) end if - retval = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (retval /= 0) then - print *, "Error: FARKStepGetNumRhsEvals returned ", retval + print *, "Error: FARKodeGetNumRhsEvals returned ", retval + call MPI_Abort(comm, 1, ierr) + end if + + retval = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) + if (retval /= 0) then + print *, "Error: FARKodeGetNumRhsEvals returned ", retval call MPI_Abort(comm, 1, ierr) end if diff --git a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 index 62551f623f..0fa90fe945 100644 --- a/examples/arkode/F2003_serial/ark_analytic_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_analytic_f2003.f90 @@ -267,8 +267,6 @@ subroutine ARKStepStats(arkode_mem) integer(c_long) :: nsteps(1) ! num steps integer(c_long) :: nst_a(1) ! num steps attempted - integer(c_long) :: nfe(1) ! num explicit function evals - integer(c_long) :: nfi(1) ! num implicit function evals integer(c_long) :: nfevals(1) ! num function evals integer(c_long) :: nlinsetups(1) ! num linear solver setups integer(c_long) :: netfails(1) ! num error test fails @@ -296,12 +294,11 @@ subroutine ARKStepStats(arkode_mem) stop 1 end if - ierr = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + ierr = FARKodeGetNumRhsEvals(arkode_mem, -1, nfevals) if (ierr /= 0) then - print *, 'Error in FARKStepGetNumRhsEvals, retval = ', ierr, '; halting' + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', ierr, '; halting' stop 1 end if - nfevals = nfe + nfi ierr = FARKodeGetActualInitStep(arkode_mem, hinused) if (ierr /= 0) then diff --git a/examples/arkode/F2003_serial/ark_bruss1D_FEM_klu_f2003.f90 b/examples/arkode/F2003_serial/ark_bruss1D_FEM_klu_f2003.f90 index 0d63e260cf..4072dc30f8 100644 --- a/examples/arkode/F2003_serial/ark_bruss1D_FEM_klu_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_bruss1D_FEM_klu_f2003.f90 @@ -1342,9 +1342,15 @@ subroutine ARKStepStats(arkode_mem) stop 1 end if - ierr = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + ierr = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (ierr /= 0) then - print *, 'Error in FARKStepGetNumRhsEvals, retval = ', ierr, '; halting' + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', ierr, '; halting' + stop 1 + end if + + ierr = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) + if (ierr /= 0) then + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', ierr, '; halting' stop 1 end if diff --git a/examples/arkode/F2003_serial/ark_bruss_f2003.f90 b/examples/arkode/F2003_serial/ark_bruss_f2003.f90 index 2b6579cf20..0f9905740e 100644 --- a/examples/arkode/F2003_serial/ark_bruss_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_bruss_f2003.f90 @@ -450,9 +450,15 @@ subroutine ARKStepStats(arkode_mem) stop 1 end if - ierr = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + ierr = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (ierr /= 0) then - print *, 'Error in FARKStepGetNumRhsEvals, retval = ', ierr, '; halting' + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', ierr, '; halting' + stop 1 + end if + + ierr = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) + if (ierr /= 0) then + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', ierr, '; halting' stop 1 end if diff --git a/examples/arkode/F2003_serial/ark_diurnal_kry_bp_f2003.f90 b/examples/arkode/F2003_serial/ark_diurnal_kry_bp_f2003.f90 index ae64d613b6..8c6b9aa594 100644 --- a/examples/arkode/F2003_serial/ark_diurnal_kry_bp_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_diurnal_kry_bp_f2003.f90 @@ -438,9 +438,15 @@ subroutine ARKStepStats(arkode_mem) stop 1 end if - ierr = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + ierr = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (ierr /= 0) then - print *, 'Error in FARKStepGetNumRhsEvals, ierr = ', ierr, '; halting' + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', ierr, '; halting' + stop 1 + end if + + ierr = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) + if (ierr /= 0) then + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', ierr, '; halting' stop 1 end if diff --git a/examples/arkode/F2003_serial/ark_kpr_mri_f2003.f90 b/examples/arkode/F2003_serial/ark_kpr_mri_f2003.f90 index 330e54f6b7..7556117b4d 100644 --- a/examples/arkode/F2003_serial/ark_kpr_mri_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_kpr_mri_f2003.f90 @@ -602,7 +602,7 @@ program main real(c_double), allocatable :: As(:, :), bs(:), cs(:), ds(:) ! Arrays for slow Butcher table, NOTE: must be in row-major order integer(c_int) :: iout, argc, argi integer(c_long) :: nsts(1), nstf(1), nfse(1), nfsi(1), nff(1) - integer(c_long) :: nnif(1), nncf(1), njef(1), nnis(1), nncs(1), njes(1), tmp(1) + integer(c_long) :: nnif(1), nncf(1), njef(1), nnis(1), nncs(1), njes(1) character(len=32), dimension(:), allocatable :: argv ! @@ -1057,11 +1057,12 @@ program main ! Get some slow integrator statistics retval = FARKodeGetNumSteps(arkode_mem, nsts) - retval = FMRIStepGetNumRhsEvals(arkode_mem, nfse, nfsi) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfse) + retval = FARKodeGetNumRhsEvals(arkode_mem, 1, nfsi) ! Get some fast integrator statistics retval = FARKodeGetNumSteps(inner_arkode_mem, nstf) - retval = FARKStepGetNumRhsEvals(inner_arkode_mem, nff, tmp) + retval = FARKodeGetNumRhsEvals(inner_arkode_mem, 0, nff) ! Print some final statistics print *, "Final Solver Statistics:" diff --git a/examples/arkode/F2003_serial/ark_roberts_dnsL_f2003.f90 b/examples/arkode/F2003_serial/ark_roberts_dnsL_f2003.f90 index 2c5016d2d2..6739eb4f2b 100644 --- a/examples/arkode/F2003_serial/ark_roberts_dnsL_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_roberts_dnsL_f2003.f90 @@ -568,9 +568,15 @@ subroutine PrintFinalStats(arkode_mem) stop 1 end if - retval = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (retval /= 0) then - print *, 'Error in FARKStepGetNumRhsEvals, retval = ', retval, '; halting' + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' + stop 1 + end if + + retval = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) + if (retval /= 0) then + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' stop 1 end if diff --git a/examples/arkode/F2003_serial/ark_roberts_dns_f2003.f90 b/examples/arkode/F2003_serial/ark_roberts_dns_f2003.f90 index 79c3395ffa..d26cf5f56f 100644 --- a/examples/arkode/F2003_serial/ark_roberts_dns_f2003.f90 +++ b/examples/arkode/F2003_serial/ark_roberts_dns_f2003.f90 @@ -570,9 +570,15 @@ subroutine PrintFinalStats(arkode_mem) stop 1 end if - retval = FARKStepGetNumRhsEvals(arkode_mem, nfe, nfi) + retval = FARKodeGetNumRhsEvals(arkode_mem, 0, nfe) if (retval /= 0) then - print *, 'Error in FARKStepGetNumRhsEvals, retval = ', retval, '; halting' + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' + stop 1 + end if + + retval = FARKodeGetNumRhsEvals(arkode_mem, 1, nfi) + if (retval /= 0) then + print *, 'Error in FARKodeGetNumRhsEvals, retval = ', retval, '; halting' stop 1 end if diff --git a/include/arkode/arkode.h b/include/arkode/arkode.h index f4e0667d72..f33ec560dc 100644 --- a/include/arkode/arkode.h +++ b/include/arkode/arkode.h @@ -294,6 +294,8 @@ SUNDIALS_EXPORT int ARKodeComputeState(void* arkode_mem, N_Vector zcor, N_Vector z); /* Optional output functions (general) */ +SUNDIALS_EXPORT int ARKodeGetNumRhsEvals(void* arkode_mem, int partition_index, + long int* num_rhs_evals); SUNDIALS_EXPORT int ARKodeGetNumStepAttempts(void* arkode_mem, long int* step_attempts); SUNDIALS_EXPORT int ARKodeGetWorkSpace(void* arkode_mem, long int* lenrw, diff --git a/include/arkode/arkode_arkstep.h b/include/arkode/arkode_arkstep.h index f7a6f112f5..9a0cfbb5a1 100644 --- a/include/arkode/arkode_arkstep.h +++ b/include/arkode/arkode_arkstep.h @@ -86,8 +86,6 @@ SUNDIALS_EXPORT int ARKStepSetTableName(void* arkode_mem, const char* itable, const char* etable); /* Optional output functions */ -SUNDIALS_EXPORT int ARKStepGetNumRhsEvals(void* arkode_mem, long int* nfe_evals, - long int* nfi_evals); SUNDIALS_EXPORT int ARKStepGetCurrentButcherTables(void* arkode_mem, ARKodeButcherTable* Bi, ARKodeButcherTable* Be); @@ -430,7 +428,9 @@ SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeGetNumRelaxSolveFails instead") int ARKStepGetNumRelaxSolveFails(void* arkode_mem, long int* fails); SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeGetNumRelaxSolveIters instead") int ARKStepGetNumRelaxSolveIters(void* arkode_mem, long int* iters); - +SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeGetNumRhsEvals instead") +int ARKStepGetNumRhsEvals(void* arkode_mem, long int* nfe_evals, + long int* nfi_evals); #ifdef __cplusplus } #endif diff --git a/include/arkode/arkode_erkstep.h b/include/arkode/arkode_erkstep.h index c40bab8112..ea5ad629b9 100644 --- a/include/arkode/arkode_erkstep.h +++ b/include/arkode/arkode_erkstep.h @@ -59,7 +59,6 @@ SUNDIALS_EXPORT int ERKStepSetTableNum(void* arkode_mem, SUNDIALS_EXPORT int ERKStepSetTableName(void* arkode_mem, const char* etable); /* Optional output functions */ -SUNDIALS_EXPORT int ERKStepGetNumRhsEvals(void* arkode_mem, long int* nfevals); SUNDIALS_EXPORT int ERKStepGetCurrentButcherTable(void* arkode_mem, ARKodeButcherTable* B); @@ -244,6 +243,8 @@ SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeGetNumRelaxSolveFails instead") int ERKStepGetNumRelaxSolveFails(void* arkode_mem, long int* fails); SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeGetNumRelaxSolveIters instead") int ERKStepGetNumRelaxSolveIters(void* arkode_mem, long int* iters); +SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeGetNumRhsEvals instead") +int ERKStepGetNumRhsEvals(void* arkode_mem, long int* nfevals); #ifdef __cplusplus } diff --git a/include/arkode/arkode_mristep.h b/include/arkode/arkode_mristep.h index 7fa2219e1e..828272948a 100644 --- a/include/arkode/arkode_mristep.h +++ b/include/arkode/arkode_mristep.h @@ -160,8 +160,6 @@ SUNDIALS_EXPORT int MRIStepSetPostInnerFn(void* arkode_mem, MRIStepPostInnerFn postfn); /* Optional output functions */ -SUNDIALS_EXPORT int MRIStepGetNumRhsEvals(void* arkode_mem, long int* nfse_evals, - long int* nfsi_evals); SUNDIALS_EXPORT int MRIStepGetCurrentCoupling(void* arkode_mem, MRIStepCoupling* MRIC); SUNDIALS_EXPORT int MRIStepGetLastInnerStepFlag(void* arkode_mem, int* flag); @@ -370,6 +368,9 @@ SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeFree instead") void MRIStepFree(void** arkode_mem); SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodePrintMem instead") void MRIStepPrintMem(void* arkode_mem, FILE* outfile); +SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeGetNumRhsEvals instead") +int MRIStepGetNumRhsEvals(void* arkode_mem, long int* nfse_evals, + long int* nfsi_evals); #ifdef __cplusplus } diff --git a/include/arkode/arkode_sprkstep.h b/include/arkode/arkode_sprkstep.h index 3e4519cd40..e4ed5733ff 100644 --- a/include/arkode/arkode_sprkstep.h +++ b/include/arkode/arkode_sprkstep.h @@ -57,8 +57,6 @@ SUNDIALS_EXPORT int SPRKStepSetMethodName(void* arkode_mem, const char* method); /* Optional output functions */ SUNDIALS_EXPORT int SPRKStepGetCurrentMethod(void* arkode_mem, ARKodeSPRKTable* sprk_storage); -SUNDIALS_EXPORT int SPRKStepGetNumRhsEvals(void* arkode_mem, long int* nf1, - long int* nf2); /* -------------------------------------------------------------------------- * Deprecated Functions -- all are superseded by shared ARKODE-level routines @@ -126,6 +124,8 @@ int SPRKStepGetStepStats(void* arkode_mem, long int* nsteps, sunrealtype* hcur, sunrealtype* tcur); SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeFree instead") void SPRKStepFree(void** arkode_mem); +SUNDIALS_DEPRECATED_EXPORT_MSG("use ARKodeGetNumRhsEvals instead") +int SPRKStepGetNumRhsEvals(void* arkode_mem, long int* nf1, long int* nf2); #ifdef __cplusplus } diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 378471e507..6d66929483 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -1429,6 +1429,7 @@ ARKodeMem arkCreate(SUNContext sunctx) ark_mem->step_setmaxnonliniters = NULL; ark_mem->step_setnonlinconvcoef = NULL; ark_mem->step_setstagepredictfn = NULL; + ark_mem->step_getnumrhsevals = NULL; ark_mem->step_getnumlinsolvsetups = NULL; ark_mem->step_getestlocalerrors = NULL; ark_mem->step_getcurrentgamma = NULL; diff --git a/src/arkode/arkode_arkstep.c b/src/arkode/arkode_arkstep.c index 3a4b00622a..e1ed9c0f66 100644 --- a/src/arkode/arkode_arkstep.c +++ b/src/arkode/arkode_arkstep.c @@ -131,6 +131,7 @@ void* ARKStepCreate(ARKRhsFn fe, ARKRhsFn fi, sunrealtype t0, N_Vector y0, ark_mem->step_setmaxnonliniters = arkStep_SetMaxNonlinIters; ark_mem->step_setnonlinconvcoef = arkStep_SetNonlinConvCoef; ark_mem->step_setstagepredictfn = arkStep_SetStagePredictFn; + ark_mem->step_getnumrhsevals = arkStep_GetNumRhsEvals; ark_mem->step_getnumlinsolvsetups = arkStep_GetNumLinSolvSetups; ark_mem->step_getcurrentgamma = arkStep_GetCurrentGamma; ark_mem->step_getestlocalerrors = arkStep_GetEstLocalErrors; diff --git a/src/arkode/arkode_arkstep_impl.h b/src/arkode/arkode_arkstep_impl.h index 8af982cd1b..806101a98b 100644 --- a/src/arkode/arkode_arkstep_impl.h +++ b/src/arkode/arkode_arkstep_impl.h @@ -207,6 +207,8 @@ int arkStep_SetMaxNonlinIters(ARKodeMem ark_mem, int maxcor); int arkStep_SetNonlinConvCoef(ARKodeMem ark_mem, sunrealtype nlscoef); int arkStep_SetStagePredictFn(ARKodeMem ark_mem, ARKStagePredictFn PredictStage); int arkStep_SetDeduceImplicitRhs(ARKodeMem ark_mem, sunbooleantype deduce); +int arkStep_GetNumRhsEvals(ARKodeMem ark_mem, int partition_index, + long int* rhs_evals); int arkStep_GetEstLocalErrors(ARKodeMem ark_mem, N_Vector ele); int arkStep_GetCurrentGamma(ARKodeMem ark_mem, sunrealtype* gamma); int arkStep_GetNonlinearSystemData(ARKodeMem ark_mem, sunrealtype* tcur, diff --git a/src/arkode/arkode_arkstep_io.c b/src/arkode/arkode_arkstep_io.c index ae90b65387..c629e4d8e6 100644 --- a/src/arkode/arkode_arkstep_io.c +++ b/src/arkode/arkode_arkstep_io.c @@ -521,23 +521,52 @@ int ARKStepSetTableName(void* arkode_mem, const char* itable, const char* etable /*--------------------------------------------------------------- ARKStepGetNumRhsEvals: - Returns the current number of calls to fe and fi + Returns the current number of calls ---------------------------------------------------------------*/ +int arkStep_GetNumRhsEvals(ARKodeMem ark_mem, int partition_index, + long int* rhs_evals) +{ + ARKodeARKStepMem step_mem = NULL; + + /* access ARKodeARKStepMem structure */ + int retval = arkStep_AccessStepMem(ark_mem, __func__, &step_mem); + if (retval != ARK_SUCCESS) { return retval; } + + if (rhs_evals == NULL) + { + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "rhs_evals is NULL"); + return ARK_ILL_INPUT; + } + + if (partition_index > 1) + { + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "Invalid partition index"); + return ARK_ILL_INPUT; + } + + switch (partition_index) + { + case 0: *rhs_evals = step_mem->nfe; break; + case 1: *rhs_evals = step_mem->nfi; break; + default: *rhs_evals = step_mem->nfe + step_mem->nfi; break; + } + + return ARK_SUCCESS; +} + int ARKStepGetNumRhsEvals(void* arkode_mem, long int* fe_evals, long int* fi_evals) { - ARKodeMem ark_mem; - ARKodeARKStepMem step_mem; - int retval; + int retval = ARK_SUCCESS; - /* access ARKodeMem and ARKodeARKStepMem structures */ - retval = arkStep_AccessARKODEStepMem(arkode_mem, __func__, &ark_mem, &step_mem); - if (retval != ARK_SUCCESS) { return (retval); } + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, fe_evals); + if (retval != ARK_SUCCESS) { return retval; } - /* get values from step_mem */ - *fe_evals = step_mem->nfe; - *fi_evals = step_mem->nfi; + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, fi_evals); + if (retval != ARK_SUCCESS) { return retval; } - return (ARK_SUCCESS); + return ARK_SUCCESS; } /*--------------------------------------------------------------- diff --git a/src/arkode/arkode_erkstep.c b/src/arkode/arkode_erkstep.c index 766ca9e217..3eaa11ca9d 100644 --- a/src/arkode/arkode_erkstep.c +++ b/src/arkode/arkode_erkstep.c @@ -102,6 +102,7 @@ void* ERKStepCreate(ARKRhsFn f, sunrealtype t0, N_Vector y0, SUNContext sunctx) ark_mem->step_setdefaults = erkStep_SetDefaults; ark_mem->step_setrelaxfn = erkStep_SetRelaxFn; ark_mem->step_setorder = erkStep_SetOrder; + ark_mem->step_getnumrhsevals = erkStep_GetNumRhsEvals; ark_mem->step_getestlocalerrors = erkStep_GetEstLocalErrors; ark_mem->step_supports_adaptive = SUNTRUE; ark_mem->step_supports_relaxation = SUNTRUE; diff --git a/src/arkode/arkode_erkstep_impl.h b/src/arkode/arkode_erkstep_impl.h index 794f112550..fc30ad1651 100644 --- a/src/arkode/arkode_erkstep_impl.h +++ b/src/arkode/arkode_erkstep_impl.h @@ -82,6 +82,8 @@ int erkStep_Resize(ARKodeMem ark_mem, N_Vector y0, sunrealtype hscale, sunrealtype t0, ARKVecResizeFn resize, void* resize_data); void erkStep_Free(ARKodeMem ark_mem); void erkStep_PrintMem(ARKodeMem ark_mem, FILE* outfile); +int erkStep_GetNumRhsEvals(ARKodeMem ark_mem, int partition_index, + long int* rhs_evals); int erkStep_GetEstLocalErrors(ARKodeMem ark_mem, N_Vector ele); /* Internal utility routines */ diff --git a/src/arkode/arkode_erkstep_io.c b/src/arkode/arkode_erkstep_io.c index 77987b4245..61bb740654 100644 --- a/src/arkode/arkode_erkstep_io.c +++ b/src/arkode/arkode_erkstep_io.c @@ -167,22 +167,39 @@ int ERKStepSetTableName(void* arkode_mem, const char* etable) /*--------------------------------------------------------------- ERKStepGetNumRhsEvals: - Returns the current number of calls to f + Returns the current number of RHS calls ---------------------------------------------------------------*/ -int ERKStepGetNumRhsEvals(void* arkode_mem, long int* fevals) +int erkStep_GetNumRhsEvals(ARKodeMem ark_mem, int partition_index, + long int* rhs_evals) { - ARKodeMem ark_mem; - ARKodeERKStepMem step_mem; - int retval; + ARKodeERKStepMem step_mem = NULL; - /* access ARKodeMem and ARKodeERKStepMem structures */ - retval = erkStep_AccessARKODEStepMem(arkode_mem, __func__, &ark_mem, &step_mem); - if (retval != ARK_SUCCESS) { return (retval); } + /* access ARKodeERKStepMem structure */ + int retval = erkStep_AccessStepMem(ark_mem, __func__, &step_mem); + if (retval != ARK_SUCCESS) { return retval; } - /* get values from step_mem */ - *fevals = step_mem->nfe; + if (rhs_evals == NULL) + { + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "rhs_evals is NULL"); + return ARK_ILL_INPUT; + } - return (ARK_SUCCESS); + if (partition_index > 0) + { + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "Invalid partition index"); + return ARK_ILL_INPUT; + } + + *rhs_evals = step_mem->nfe; + + return ARK_SUCCESS; +} + +int ERKStepGetNumRhsEvals(void* arkode_mem, long int* fevals) +{ + return ARKodeGetNumRhsEvals(arkode_mem, 0, fevals); } /*--------------------------------------------------------------- diff --git a/src/arkode/arkode_impl.h b/src/arkode/arkode_impl.h index fff9d2e693..f9383fe1de 100644 --- a/src/arkode/arkode_impl.h +++ b/src/arkode/arkode_impl.h @@ -224,6 +224,8 @@ typedef void (*ARKTimestepFree)(ARKodeMem ark_mem); typedef void (*ARKTimestepPrintMem)(ARKodeMem ark_mem, FILE* outfile); typedef int (*ARKTimestepSetDefaults)(ARKodeMem ark_mem); typedef int (*ARKTimestepSetOrder)(ARKodeMem ark_mem, int maxord); +typedef int (*ARKTimestepGetNumRhsEvals)(ARKodeMem ark_mem, int partition_index, + long int* num_rhs_evals); /* time stepper interface functions -- temporal adaptivity */ typedef int (*ARKTimestepGetEstLocalErrors)(ARKodeMem ark_mem, N_Vector ele); @@ -406,6 +408,7 @@ struct ARKodeMemRec ARKTimestepPrintMem step_printmem; ARKTimestepSetDefaults step_setdefaults; ARKTimestepSetOrder step_setorder; + ARKTimestepGetNumRhsEvals step_getnumrhsevals; /* Time stepper module -- temporal adaptivity */ sunbooleantype step_supports_adaptive; diff --git a/src/arkode/arkode_io.c b/src/arkode/arkode_io.c index dd1325f794..670b1fd9d0 100644 --- a/src/arkode/arkode_io.c +++ b/src/arkode/arkode_io.c @@ -1999,6 +1999,38 @@ int ARKodeSetMaxConvFails(void* arkode_mem, int maxncf) ARKODE optional output utility functions ===============================================================*/ +/*--------------------------------------------------------------- + ARKodeGetNumStepAttempts: + + Returns the current number of RHS evaluations + ---------------------------------------------------------------*/ +int ARKodeGetNumRhsEvals(void* arkode_mem, int partition_index, + long int* num_rhs_evals) +{ + 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; + + /* Call stepper routine (if provided) */ + if (ark_mem->step_getnumrhsevals) + { + return ark_mem->step_getnumrhsevals(arkode_mem, partition_index, + num_rhs_evals); + } + else + { + arkProcessError(ark_mem, ARK_STEPPER_UNSUPPORTED, __LINE__, __func__, + __FILE__, + "time-stepping module does not support this function"); + return ARK_STEPPER_UNSUPPORTED; + } +} + /*--------------------------------------------------------------- ARKodeGetNumStepAttempts: diff --git a/src/arkode/arkode_mristep.c b/src/arkode/arkode_mristep.c index 8e5875c12f..32c26e1de0 100644 --- a/src/arkode/arkode_mristep.c +++ b/src/arkode/arkode_mristep.c @@ -131,6 +131,7 @@ void* MRIStepCreate(ARKRhsFn fse, ARKRhsFn fsi, sunrealtype t0, N_Vector y0, ark_mem->step_setmaxnonliniters = mriStep_SetMaxNonlinIters; ark_mem->step_setnonlinconvcoef = mriStep_SetNonlinConvCoef; ark_mem->step_setstagepredictfn = mriStep_SetStagePredictFn; + ark_mem->step_getnumrhsevals = mriStep_GetNumRhsEvals; ark_mem->step_getnumlinsolvsetups = mriStep_GetNumLinSolvSetups; ark_mem->step_getcurrentgamma = mriStep_GetCurrentGamma; ark_mem->step_getnonlinearsystemdata = mriStep_GetNonlinearSystemData; diff --git a/src/arkode/arkode_mristep_impl.h b/src/arkode/arkode_mristep_impl.h index 29caf263c3..f631307e07 100644 --- a/src/arkode/arkode_mristep_impl.h +++ b/src/arkode/arkode_mristep_impl.h @@ -219,6 +219,8 @@ int mriStep_SetMaxNonlinIters(ARKodeMem ark_mem, int maxcor); int mriStep_SetNonlinConvCoef(ARKodeMem ark_mem, sunrealtype nlscoef); int mriStep_SetStagePredictFn(ARKodeMem ark_mem, ARKStagePredictFn PredictStage); int mriStep_SetDeduceImplicitRhs(ARKodeMem ark_mem, sunbooleantype deduce); +int mriStep_GetNumRhsEvals(ARKodeMem ark_mem, int partition_index, + long int* rhs_evals); int mriStep_GetCurrentGamma(ARKodeMem ark_mem, sunrealtype* gamma); int mriStep_GetNonlinearSystemData(ARKodeMem ark_mem, sunrealtype* tcur, N_Vector* zpred, N_Vector* z, N_Vector* Fi, diff --git a/src/arkode/arkode_mristep_io.c b/src/arkode/arkode_mristep_io.c index 1ad11ab59e..712debfaea 100644 --- a/src/arkode/arkode_mristep_io.c +++ b/src/arkode/arkode_mristep_io.c @@ -131,24 +131,53 @@ int MRIStepSetPostInnerFn(void* arkode_mem, MRIStepPostInnerFn postfn) /*--------------------------------------------------------------- MRIStepGetNumRhsEvals: - Returns the current number of calls to fse and fsi + Returns the current number of RHS calls ---------------------------------------------------------------*/ +int mriStep_GetNumRhsEvals(ARKodeMem ark_mem, int partition_index, + long int* rhs_evals) +{ + ARKodeMRIStepMem step_mem = NULL; + + /* access ARKodeMRIStepMem structure */ + int retval = mriStep_AccessStepMem(ark_mem, __func__, &step_mem); + if (retval != ARK_SUCCESS) { return retval; } + + if (rhs_evals == NULL) + { + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "rhs_evals is NULL"); + return ARK_ILL_INPUT; + } + + if (partition_index > 1) + { + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "Invalid partition index"); + return ARK_ILL_INPUT; + } + + switch (partition_index) + { + case 0: *rhs_evals = step_mem->nfse; break; + case 1: *rhs_evals = step_mem->nfsi; break; + default: *rhs_evals = step_mem->nfse + step_mem->nfsi; break; + } + + return ARK_SUCCESS; +} + int MRIStepGetNumRhsEvals(void* arkode_mem, long int* nfse_evals, long int* nfsi_evals) { - ARKodeMem ark_mem; - ARKodeMRIStepMem step_mem; - int retval; + int retval = ARK_SUCCESS; - /* access ARKodeMem and ARKodeMRIStepMem structures */ - retval = mriStep_AccessARKODEStepMem(arkode_mem, __func__, &ark_mem, &step_mem); - if (retval != ARK_SUCCESS) { return (retval); } + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, nfse_evals); + if (retval != ARK_SUCCESS) { return retval; } - /* get number of fse and fsi evals from step_mem */ - *nfse_evals = step_mem->nfse; - *nfsi_evals = step_mem->nfsi; + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, nfsi_evals); + if (retval != ARK_SUCCESS) { return retval; } - return (ARK_SUCCESS); + return ARK_SUCCESS; } /*--------------------------------------------------------------- diff --git a/src/arkode/arkode_sprkstep.c b/src/arkode/arkode_sprkstep.c index f7f67248c4..6c3cf4a669 100644 --- a/src/arkode/arkode_sprkstep.c +++ b/src/arkode/arkode_sprkstep.c @@ -125,6 +125,7 @@ void* SPRKStepCreate(ARKRhsFn f1, ARKRhsFn f2, sunrealtype t0, N_Vector y0, ark_mem->step_free = sprkStep_Free; ark_mem->step_setdefaults = sprkStep_SetDefaults; ark_mem->step_setorder = sprkStep_SetOrder; + ark_mem->step_getnumrhsevals = sprkStep_GetNumRhsEvals; ark_mem->step_mem = (void*)step_mem; /* Set default values for optional inputs */ diff --git a/src/arkode/arkode_sprkstep_impl.h b/src/arkode/arkode_sprkstep_impl.h index 0493106586..d94f5c5c80 100644 --- a/src/arkode/arkode_sprkstep_impl.h +++ b/src/arkode/arkode_sprkstep_impl.h @@ -83,6 +83,8 @@ int sprkStep_Resize(ARKodeMem ark_mem, N_Vector y0, sunrealtype hscale, sunrealtype t0, ARKVecResizeFn resize, void* resize_data); void sprkStep_Free(ARKodeMem ark_mem); void sprkStep_PrintMem(ARKodeMem ark_mem, FILE* outfile); +int sprkStep_GetNumRhsEvals(ARKodeMem ark_mem, int partition_index, + long int* rhs_evals); /* Internal utility routines */ int sprkStep_AccessARKODEStepMem(void* arkode_mem, const char* fname, diff --git a/src/arkode/arkode_sprkstep_io.c b/src/arkode/arkode_sprkstep_io.c index 88378f14ca..8dc76a9234 100644 --- a/src/arkode/arkode_sprkstep_io.c +++ b/src/arkode/arkode_sprkstep_io.c @@ -154,23 +154,52 @@ int SPRKStepGetCurrentMethod(void* arkode_mem, ARKodeSPRKTable* sprk_storage) /*--------------------------------------------------------------- SPRKStepGetNumRhsEvals: - Returns the current number of calls to f1 and f2 + Returns the current number of RHS calls ---------------------------------------------------------------*/ -int SPRKStepGetNumRhsEvals(void* arkode_mem, long int* nf1, long int* nf2) +int sprkStep_GetNumRhsEvals(ARKodeMem ark_mem, int partition_index, + long int* rhs_evals) { - ARKodeMem ark_mem = NULL; ARKodeSPRKStepMem step_mem = NULL; - int retval = 0; - /* access ARKodeMem and ARKodeSPRKStepMem structures */ - retval = sprkStep_AccessARKODEStepMem(arkode_mem, __func__, &ark_mem, - &step_mem); - if (retval != ARK_SUCCESS) { return (retval); } + /* access ARKodeSPRKStepMem structure */ + int retval = sprkStep_AccessStepMem(ark_mem, __func__, &step_mem); + if (retval != ARK_SUCCESS) { return retval; } - *nf1 = step_mem->nf1; - *nf2 = step_mem->nf2; + if (rhs_evals == NULL) + { + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "rhs_evals is NULL"); + return ARK_ILL_INPUT; + } - return (ARK_SUCCESS); + if (partition_index > 1) + { + arkProcessError(ark_mem, ARK_ILL_INPUT, __LINE__, __func__, __FILE__, + "Invalid partition index"); + return ARK_ILL_INPUT; + } + + switch (partition_index) + { + case 0: *rhs_evals = step_mem->nf1; break; + case 1: *rhs_evals = step_mem->nf2; break; + default: *rhs_evals = step_mem->nf1 + step_mem->nf2; break; + } + + return ARK_SUCCESS; +} + +int SPRKStepGetNumRhsEvals(void* arkode_mem, long int* nf1, long int* nf2) +{ + int retval = ARK_SUCCESS; + + retval = ARKodeGetNumRhsEvals(arkode_mem, 0, nf1); + if (retval != ARK_SUCCESS) { return retval; } + + retval = ARKodeGetNumRhsEvals(arkode_mem, 1, nf2); + if (retval != ARK_SUCCESS) { return retval; } + + return ARK_SUCCESS; } /*=============================================================== diff --git a/src/arkode/fmod_int32/farkode_arkstep_mod.c b/src/arkode/fmod_int32/farkode_arkstep_mod.c index 4791bedcdc..944fd591b0 100644 --- a/src/arkode/fmod_int32/farkode_arkstep_mod.c +++ b/src/arkode/fmod_int32/farkode_arkstep_mod.c @@ -361,22 +361,6 @@ SWIGEXPORT int _wrap_FARKStepSetTableName(void *farg1, SwigArrayWrapper *farg2, } -SWIGEXPORT int _wrap_FARKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { - int fresult ; - void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - int result; - - arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); - result = (int)ARKStepGetNumRhsEvals(arg1,arg2,arg3); - fresult = (int)(result); - return fresult; -} - - SWIGEXPORT int _wrap_FARKStepGetCurrentButcherTables(void *farg1, void *farg2, void *farg3) { int fresult ; void *arg1 = (void *) 0 ; @@ -2657,4 +2641,20 @@ SWIGEXPORT int _wrap_FARKStepGetNumRelaxSolveIters(void *farg1, long *farg2) { } +SWIGEXPORT int _wrap_FARKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKStepGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + diff --git a/src/arkode/fmod_int32/farkode_arkstep_mod.f90 b/src/arkode/fmod_int32/farkode_arkstep_mod.f90 index cc0373f1eb..ae1f6659eb 100644 --- a/src/arkode/fmod_int32/farkode_arkstep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_arkstep_mod.f90 @@ -60,7 +60,6 @@ module farkode_arkstep_mod integer(C_SIZE_T), public :: size = 0 end type public :: FARKStepSetTableName - public :: FARKStepGetNumRhsEvals public :: FARKStepGetCurrentButcherTables public :: FARKStepGetTimestepperStats public :: FARKStepCreateMRIStepInnerStepper @@ -218,6 +217,7 @@ module farkode_arkstep_mod public :: FARKStepGetNumRelaxBoundFails public :: FARKStepGetNumRelaxSolveFails public :: FARKStepGetNumRelaxSolveIters + public :: FARKStepGetNumRhsEvals ! WRAPPER DECLARATIONS interface @@ -302,16 +302,6 @@ function swigc_FARKStepSetTableName(farg1, farg2, farg3) & integer(C_INT) :: fresult end function -function swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) & -bind(C, name="_wrap_FARKStepGetNumRhsEvals") & -result(fresult) -use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -type(C_PTR), value :: farg3 -integer(C_INT) :: fresult -end function - function swigc_FARKStepGetCurrentButcherTables(farg1, farg2, farg3) & bind(C, name="_wrap_FARKStepGetCurrentButcherTables") & result(fresult) @@ -1772,6 +1762,16 @@ function swigc_FARKStepGetNumRelaxSolveIters(farg1, farg2) & integer(C_INT) :: fresult end function +function swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + end interface @@ -1949,25 +1949,6 @@ function FARKStepSetTableName(arkode_mem, itable, etable) & swig_result = fresult end function -function FARKStepGetNumRhsEvals(arkode_mem, nfe_evals, nfi_evals) & -result(swig_result) -use, intrinsic :: ISO_C_BINDING -integer(C_INT) :: swig_result -type(C_PTR) :: arkode_mem -integer(C_LONG), dimension(*), target, intent(inout) :: nfe_evals -integer(C_LONG), dimension(*), target, intent(inout) :: nfi_evals -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 -type(C_PTR) :: farg3 - -farg1 = arkode_mem -farg2 = c_loc(nfe_evals(1)) -farg3 = c_loc(nfi_evals(1)) -fresult = swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) -swig_result = fresult -end function - function FARKStepGetCurrentButcherTables(arkode_mem, bi, be) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -4621,5 +4602,24 @@ function FARKStepGetNumRelaxSolveIters(arkode_mem, iters) & swig_result = fresult end function +function FARKStepGetNumRhsEvals(arkode_mem, nfe_evals, nfi_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfe_evals +integer(C_LONG), dimension(*), target, intent(inout) :: nfi_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nfe_evals(1)) +farg3 = c_loc(nfi_evals(1)) +fresult = swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + end module diff --git a/src/arkode/fmod_int32/farkode_erkstep_mod.c b/src/arkode/fmod_int32/farkode_erkstep_mod.c index 5def57befc..c5fee45581 100644 --- a/src/arkode/fmod_int32/farkode_erkstep_mod.c +++ b/src/arkode/fmod_int32/farkode_erkstep_mod.c @@ -311,20 +311,6 @@ SWIGEXPORT int _wrap_FERKStepSetTableName(void *farg1, SwigArrayWrapper *farg2) } -SWIGEXPORT int _wrap_FERKStepGetNumRhsEvals(void *farg1, long *farg2) { - int fresult ; - void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; - int result; - - arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - result = (int)ERKStepGetNumRhsEvals(arg1,arg2); - fresult = (int)(result); - return fresult; -} - - SWIGEXPORT int _wrap_FERKStepGetCurrentButcherTable(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1560,4 +1546,18 @@ SWIGEXPORT int _wrap_FERKStepGetNumRelaxSolveIters(void *farg1, long *farg2) { } +SWIGEXPORT int _wrap_FERKStepGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + diff --git a/src/arkode/fmod_int32/farkode_erkstep_mod.f90 b/src/arkode/fmod_int32/farkode_erkstep_mod.f90 index 291dc643d5..70531d6a64 100644 --- a/src/arkode/fmod_int32/farkode_erkstep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_erkstep_mod.f90 @@ -44,7 +44,6 @@ module farkode_erkstep_mod integer(C_SIZE_T), public :: size = 0 end type public :: FERKStepSetTableName - public :: FERKStepGetNumRhsEvals public :: FERKStepGetCurrentButcherTable public :: FERKStepGetTimestepperStats public :: FERKStepResize @@ -130,6 +129,7 @@ module farkode_erkstep_mod public :: FERKStepGetNumRelaxBoundFails public :: FERKStepGetNumRelaxSolveFails public :: FERKStepGetNumRelaxSolveIters + public :: FERKStepGetNumRhsEvals ! WRAPPER DECLARATIONS interface @@ -183,15 +183,6 @@ function swigc_FERKStepSetTableName(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FERKStepGetNumRhsEvals(farg1, farg2) & -bind(C, name="_wrap_FERKStepGetNumRhsEvals") & -result(fresult) -use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -integer(C_INT) :: fresult -end function - function swigc_FERKStepGetCurrentButcherTable(farg1, farg2) & bind(C, name="_wrap_FERKStepGetCurrentButcherTable") & result(fresult) @@ -985,6 +976,15 @@ function swigc_FERKStepGetNumRelaxSolveIters(farg1, farg2) & integer(C_INT) :: fresult end function +function swigc_FERKStepGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + end interface @@ -1101,22 +1101,6 @@ function FERKStepSetTableName(arkode_mem, etable) & swig_result = fresult end function -function FERKStepGetNumRhsEvals(arkode_mem, nfevals) & -result(swig_result) -use, intrinsic :: ISO_C_BINDING -integer(C_INT) :: swig_result -type(C_PTR) :: arkode_mem -integer(C_LONG), dimension(*), target, intent(inout) :: nfevals -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 - -farg1 = arkode_mem -farg2 = c_loc(nfevals(1)) -fresult = swigc_FERKStepGetNumRhsEvals(farg1, farg2) -swig_result = fresult -end function - function FERKStepGetCurrentButcherTable(arkode_mem, b) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2562,5 +2546,21 @@ function FERKStepGetNumRelaxSolveIters(arkode_mem, iters) & swig_result = fresult end function +function FERKStepGetNumRhsEvals(arkode_mem, nfevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nfevals(1)) +fresult = swigc_FERKStepGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + end module diff --git a/src/arkode/fmod_int32/farkode_mod.c b/src/arkode/fmod_int32/farkode_mod.c index 1423d2e582..52f187e8c4 100644 --- a/src/arkode/fmod_int32/farkode_mod.c +++ b/src/arkode/fmod_int32/farkode_mod.c @@ -1193,6 +1193,22 @@ SWIGEXPORT int _wrap_FARKodeComputeState(void *farg1, N_Vector farg2, N_Vector f } +SWIGEXPORT int _wrap_FARKodeGetNumRhsEvals(void *farg1, int const *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (long *)(farg3); + result = (int)ARKodeGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + SWIGEXPORT int _wrap_FARKodeGetNumStepAttempts(void *farg1, long *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 366867f40a..d5eefa63da 100644 --- a/src/arkode/fmod_int32/farkode_mod.f90 +++ b/src/arkode/fmod_int32/farkode_mod.f90 @@ -163,6 +163,7 @@ module farkode_mod public :: FARKodeEvolve public :: FARKodeGetDky public :: FARKodeComputeState + public :: FARKodeGetNumRhsEvals public :: FARKodeGetNumStepAttempts public :: FARKodeGetWorkSpace public :: FARKodeGetNumSteps @@ -1019,6 +1020,16 @@ function swigc_FARKodeComputeState(farg1, farg2, farg3) & integer(C_INT) :: fresult end function +function swigc_FARKodeGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + function swigc_FARKodeGetNumStepAttempts(farg1, farg2) & bind(C, name="_wrap_FARKodeGetNumStepAttempts") & result(fresult) @@ -3381,6 +3392,25 @@ function FARKodeComputeState(arkode_mem, zcor, z) & swig_result = fresult end function +function FARKodeGetNumRhsEvals(arkode_mem, partition_index, num_rhs_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: partition_index +integer(C_LONG), dimension(*), target, intent(inout) :: num_rhs_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = partition_index +farg3 = c_loc(num_rhs_evals(1)) +fresult = swigc_FARKodeGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + function FARKodeGetNumStepAttempts(arkode_mem, step_attempts) & result(swig_result) use, intrinsic :: ISO_C_BINDING diff --git a/src/arkode/fmod_int32/farkode_mristep_mod.c b/src/arkode/fmod_int32/farkode_mristep_mod.c index 35721938c4..8b6a72b660 100644 --- a/src/arkode/fmod_int32/farkode_mristep_mod.c +++ b/src/arkode/fmod_int32/farkode_mristep_mod.c @@ -713,22 +713,6 @@ SWIGEXPORT int _wrap_FMRIStepSetPostInnerFn(void *farg1, MRIStepPostInnerFn farg } -SWIGEXPORT int _wrap_FMRIStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { - int fresult ; - void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - int result; - - arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); - result = (int)MRIStepGetNumRhsEvals(arg1,arg2,arg3); - fresult = (int)(result); - return fresult; -} - - SWIGEXPORT int _wrap_FMRIStepGetCurrentCoupling(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -2111,4 +2095,20 @@ SWIGEXPORT void _wrap_FMRIStepPrintMem(void *farg1, void *farg2) { } +SWIGEXPORT int _wrap_FMRIStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)MRIStepGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + diff --git a/src/arkode/fmod_int32/farkode_mristep_mod.f90 b/src/arkode/fmod_int32/farkode_mristep_mod.f90 index 74a3de5637..ecba398b89 100644 --- a/src/arkode/fmod_int32/farkode_mristep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_mristep_mod.f90 @@ -129,7 +129,6 @@ module farkode_mristep_mod public :: FMRIStepSetCoupling public :: FMRIStepSetPreInnerFn public :: FMRIStepSetPostInnerFn - public :: FMRIStepGetNumRhsEvals public :: FMRIStepGetCurrentCoupling public :: FMRIStepGetLastInnerStepFlag public :: FMRIStepInnerStepper_Create @@ -226,6 +225,7 @@ module farkode_mristep_mod public :: FMRIStepGetLinReturnFlagName public :: FMRIStepFree public :: FMRIStepPrintMem + public :: FMRIStepGetNumRhsEvals ! WRAPPER DECLARATIONS interface @@ -503,16 +503,6 @@ function swigc_FMRIStepSetPostInnerFn(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) & -bind(C, name="_wrap_FMRIStepGetNumRhsEvals") & -result(fresult) -use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -type(C_PTR), value :: farg3 -integer(C_INT) :: fresult -end function - function swigc_FMRIStepGetCurrentCoupling(farg1, farg2) & bind(C, name="_wrap_FMRIStepGetCurrentCoupling") & result(fresult) @@ -1402,6 +1392,16 @@ subroutine swigc_FMRIStepPrintMem(farg1, farg2) & type(C_PTR), value :: farg2 end subroutine +function swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + end interface @@ -1883,25 +1883,6 @@ function FMRIStepSetPostInnerFn(arkode_mem, postfn) & swig_result = fresult end function -function FMRIStepGetNumRhsEvals(arkode_mem, nfse_evals, nfsi_evals) & -result(swig_result) -use, intrinsic :: ISO_C_BINDING -integer(C_INT) :: swig_result -type(C_PTR) :: arkode_mem -integer(C_LONG), dimension(*), target, intent(inout) :: nfse_evals -integer(C_LONG), dimension(*), target, intent(inout) :: nfsi_evals -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 -type(C_PTR) :: farg3 - -farg1 = arkode_mem -farg2 = c_loc(nfse_evals(1)) -farg3 = c_loc(nfsi_evals(1)) -fresult = swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) -swig_result = fresult -end function - function FMRIStepGetCurrentCoupling(arkode_mem, mric) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -3512,5 +3493,24 @@ subroutine FMRIStepPrintMem(arkode_mem, outfile) call swigc_FMRIStepPrintMem(farg1, farg2) end subroutine +function FMRIStepGetNumRhsEvals(arkode_mem, nfse_evals, nfsi_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfse_evals +integer(C_LONG), dimension(*), target, intent(inout) :: nfsi_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nfse_evals(1)) +farg3 = c_loc(nfsi_evals(1)) +fresult = swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + end module diff --git a/src/arkode/fmod_int32/farkode_sprkstep_mod.c b/src/arkode/fmod_int32/farkode_sprkstep_mod.c index 28cfb297d4..f2888129b1 100644 --- a/src/arkode/fmod_int32/farkode_sprkstep_mod.c +++ b/src/arkode/fmod_int32/farkode_sprkstep_mod.c @@ -329,22 +329,6 @@ SWIGEXPORT int _wrap_FSPRKStepGetCurrentMethod(void *farg1, void *farg2) { } -SWIGEXPORT int _wrap_FSPRKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { - int fresult ; - void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - int result; - - arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); - result = (int)SPRKStepGetNumRhsEvals(arg1,arg2,arg3); - fresult = (int)(result); - return fresult; -} - - SWIGEXPORT int _wrap_FSPRKStepReset(void *farg1, double const *farg2, N_Vector farg3) { int fresult ; void *arg1 = (void *) 0 ; @@ -764,4 +748,20 @@ SWIGEXPORT void _wrap_FSPRKStepFree(void *farg1) { } +SWIGEXPORT int _wrap_FSPRKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)SPRKStepGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + diff --git a/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 b/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 index 82217e7b1b..55f3b8f3f0 100644 --- a/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 +++ b/src/arkode/fmod_int32/farkode_sprkstep_mod.f90 @@ -44,7 +44,6 @@ module farkode_sprkstep_mod end type public :: FSPRKStepSetMethodName public :: FSPRKStepGetCurrentMethod - public :: FSPRKStepGetNumRhsEvals public :: FSPRKStepReset public :: FSPRKStepRootInit public :: FSPRKStepSetRootDirection @@ -74,6 +73,7 @@ module farkode_sprkstep_mod public :: FSPRKStepWriteParameters public :: FSPRKStepGetStepStats public :: FSPRKStepFree + public :: FSPRKStepGetNumRhsEvals ! WRAPPER DECLARATIONS interface @@ -138,16 +138,6 @@ function swigc_FSPRKStepGetCurrentMethod(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) & -bind(C, name="_wrap_FSPRKStepGetNumRhsEvals") & -result(fresult) -use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -type(C_PTR), value :: farg3 -integer(C_INT) :: fresult -end function - function swigc_FSPRKStepReset(farg1, farg2, farg3) & bind(C, name="_wrap_FSPRKStepReset") & result(fresult) @@ -421,6 +411,16 @@ subroutine swigc_FSPRKStepFree(farg1) & type(C_PTR), value :: farg1 end subroutine +function swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FSPRKStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + end interface @@ -559,25 +559,6 @@ function FSPRKStepGetCurrentMethod(arkode_mem, sprk_storage) & swig_result = fresult end function -function FSPRKStepGetNumRhsEvals(arkode_mem, nf1, nf2) & -result(swig_result) -use, intrinsic :: ISO_C_BINDING -integer(C_INT) :: swig_result -type(C_PTR) :: arkode_mem -integer(C_LONG), dimension(*), target, intent(inout) :: nf1 -integer(C_LONG), dimension(*), target, intent(inout) :: nf2 -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 -type(C_PTR) :: farg3 - -farg1 = arkode_mem -farg2 = c_loc(nf1(1)) -farg3 = c_loc(nf2(1)) -fresult = swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) -swig_result = fresult -end function - function FSPRKStepReset(arkode_mem, tr, yr) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -1077,5 +1058,24 @@ subroutine FSPRKStepFree(arkode_mem) call swigc_FSPRKStepFree(farg1) end subroutine +function FSPRKStepGetNumRhsEvals(arkode_mem, nf1, nf2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nf1 +integer(C_LONG), dimension(*), target, intent(inout) :: nf2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nf1(1)) +farg3 = c_loc(nf2(1)) +fresult = swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + end module diff --git a/src/arkode/fmod_int64/farkode_arkstep_mod.c b/src/arkode/fmod_int64/farkode_arkstep_mod.c index 4791bedcdc..944fd591b0 100644 --- a/src/arkode/fmod_int64/farkode_arkstep_mod.c +++ b/src/arkode/fmod_int64/farkode_arkstep_mod.c @@ -361,22 +361,6 @@ SWIGEXPORT int _wrap_FARKStepSetTableName(void *farg1, SwigArrayWrapper *farg2, } -SWIGEXPORT int _wrap_FARKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { - int fresult ; - void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - int result; - - arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); - result = (int)ARKStepGetNumRhsEvals(arg1,arg2,arg3); - fresult = (int)(result); - return fresult; -} - - SWIGEXPORT int _wrap_FARKStepGetCurrentButcherTables(void *farg1, void *farg2, void *farg3) { int fresult ; void *arg1 = (void *) 0 ; @@ -2657,4 +2641,20 @@ SWIGEXPORT int _wrap_FARKStepGetNumRelaxSolveIters(void *farg1, long *farg2) { } +SWIGEXPORT int _wrap_FARKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)ARKStepGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + diff --git a/src/arkode/fmod_int64/farkode_arkstep_mod.f90 b/src/arkode/fmod_int64/farkode_arkstep_mod.f90 index cc0373f1eb..ae1f6659eb 100644 --- a/src/arkode/fmod_int64/farkode_arkstep_mod.f90 +++ b/src/arkode/fmod_int64/farkode_arkstep_mod.f90 @@ -60,7 +60,6 @@ module farkode_arkstep_mod integer(C_SIZE_T), public :: size = 0 end type public :: FARKStepSetTableName - public :: FARKStepGetNumRhsEvals public :: FARKStepGetCurrentButcherTables public :: FARKStepGetTimestepperStats public :: FARKStepCreateMRIStepInnerStepper @@ -218,6 +217,7 @@ module farkode_arkstep_mod public :: FARKStepGetNumRelaxBoundFails public :: FARKStepGetNumRelaxSolveFails public :: FARKStepGetNumRelaxSolveIters + public :: FARKStepGetNumRhsEvals ! WRAPPER DECLARATIONS interface @@ -302,16 +302,6 @@ function swigc_FARKStepSetTableName(farg1, farg2, farg3) & integer(C_INT) :: fresult end function -function swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) & -bind(C, name="_wrap_FARKStepGetNumRhsEvals") & -result(fresult) -use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -type(C_PTR), value :: farg3 -integer(C_INT) :: fresult -end function - function swigc_FARKStepGetCurrentButcherTables(farg1, farg2, farg3) & bind(C, name="_wrap_FARKStepGetCurrentButcherTables") & result(fresult) @@ -1772,6 +1762,16 @@ function swigc_FARKStepGetNumRelaxSolveIters(farg1, farg2) & integer(C_INT) :: fresult end function +function swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + end interface @@ -1949,25 +1949,6 @@ function FARKStepSetTableName(arkode_mem, itable, etable) & swig_result = fresult end function -function FARKStepGetNumRhsEvals(arkode_mem, nfe_evals, nfi_evals) & -result(swig_result) -use, intrinsic :: ISO_C_BINDING -integer(C_INT) :: swig_result -type(C_PTR) :: arkode_mem -integer(C_LONG), dimension(*), target, intent(inout) :: nfe_evals -integer(C_LONG), dimension(*), target, intent(inout) :: nfi_evals -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 -type(C_PTR) :: farg3 - -farg1 = arkode_mem -farg2 = c_loc(nfe_evals(1)) -farg3 = c_loc(nfi_evals(1)) -fresult = swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) -swig_result = fresult -end function - function FARKStepGetCurrentButcherTables(arkode_mem, bi, be) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -4621,5 +4602,24 @@ function FARKStepGetNumRelaxSolveIters(arkode_mem, iters) & swig_result = fresult end function +function FARKStepGetNumRhsEvals(arkode_mem, nfe_evals, nfi_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfe_evals +integer(C_LONG), dimension(*), target, intent(inout) :: nfi_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nfe_evals(1)) +farg3 = c_loc(nfi_evals(1)) +fresult = swigc_FARKStepGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + end module diff --git a/src/arkode/fmod_int64/farkode_erkstep_mod.c b/src/arkode/fmod_int64/farkode_erkstep_mod.c index 5def57befc..c5fee45581 100644 --- a/src/arkode/fmod_int64/farkode_erkstep_mod.c +++ b/src/arkode/fmod_int64/farkode_erkstep_mod.c @@ -311,20 +311,6 @@ SWIGEXPORT int _wrap_FERKStepSetTableName(void *farg1, SwigArrayWrapper *farg2) } -SWIGEXPORT int _wrap_FERKStepGetNumRhsEvals(void *farg1, long *farg2) { - int fresult ; - void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; - int result; - - arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - result = (int)ERKStepGetNumRhsEvals(arg1,arg2); - fresult = (int)(result); - return fresult; -} - - SWIGEXPORT int _wrap_FERKStepGetCurrentButcherTable(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -1560,4 +1546,18 @@ SWIGEXPORT int _wrap_FERKStepGetNumRelaxSolveIters(void *farg1, long *farg2) { } +SWIGEXPORT int _wrap_FERKStepGetNumRhsEvals(void *farg1, long *farg2) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + result = (int)ERKStepGetNumRhsEvals(arg1,arg2); + fresult = (int)(result); + return fresult; +} + + diff --git a/src/arkode/fmod_int64/farkode_erkstep_mod.f90 b/src/arkode/fmod_int64/farkode_erkstep_mod.f90 index 291dc643d5..70531d6a64 100644 --- a/src/arkode/fmod_int64/farkode_erkstep_mod.f90 +++ b/src/arkode/fmod_int64/farkode_erkstep_mod.f90 @@ -44,7 +44,6 @@ module farkode_erkstep_mod integer(C_SIZE_T), public :: size = 0 end type public :: FERKStepSetTableName - public :: FERKStepGetNumRhsEvals public :: FERKStepGetCurrentButcherTable public :: FERKStepGetTimestepperStats public :: FERKStepResize @@ -130,6 +129,7 @@ module farkode_erkstep_mod public :: FERKStepGetNumRelaxBoundFails public :: FERKStepGetNumRelaxSolveFails public :: FERKStepGetNumRelaxSolveIters + public :: FERKStepGetNumRhsEvals ! WRAPPER DECLARATIONS interface @@ -183,15 +183,6 @@ function swigc_FERKStepSetTableName(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FERKStepGetNumRhsEvals(farg1, farg2) & -bind(C, name="_wrap_FERKStepGetNumRhsEvals") & -result(fresult) -use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -integer(C_INT) :: fresult -end function - function swigc_FERKStepGetCurrentButcherTable(farg1, farg2) & bind(C, name="_wrap_FERKStepGetCurrentButcherTable") & result(fresult) @@ -985,6 +976,15 @@ function swigc_FERKStepGetNumRelaxSolveIters(farg1, farg2) & integer(C_INT) :: fresult end function +function swigc_FERKStepGetNumRhsEvals(farg1, farg2) & +bind(C, name="_wrap_FERKStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +integer(C_INT) :: fresult +end function + end interface @@ -1101,22 +1101,6 @@ function FERKStepSetTableName(arkode_mem, etable) & swig_result = fresult end function -function FERKStepGetNumRhsEvals(arkode_mem, nfevals) & -result(swig_result) -use, intrinsic :: ISO_C_BINDING -integer(C_INT) :: swig_result -type(C_PTR) :: arkode_mem -integer(C_LONG), dimension(*), target, intent(inout) :: nfevals -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 - -farg1 = arkode_mem -farg2 = c_loc(nfevals(1)) -fresult = swigc_FERKStepGetNumRhsEvals(farg1, farg2) -swig_result = fresult -end function - function FERKStepGetCurrentButcherTable(arkode_mem, b) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -2562,5 +2546,21 @@ function FERKStepGetNumRelaxSolveIters(arkode_mem, iters) & swig_result = fresult end function +function FERKStepGetNumRhsEvals(arkode_mem, nfevals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfevals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 + +farg1 = arkode_mem +farg2 = c_loc(nfevals(1)) +fresult = swigc_FERKStepGetNumRhsEvals(farg1, farg2) +swig_result = fresult +end function + end module diff --git a/src/arkode/fmod_int64/farkode_mod.c b/src/arkode/fmod_int64/farkode_mod.c index 7b2c3c9811..b092ee9d57 100644 --- a/src/arkode/fmod_int64/farkode_mod.c +++ b/src/arkode/fmod_int64/farkode_mod.c @@ -1193,6 +1193,22 @@ SWIGEXPORT int _wrap_FARKodeComputeState(void *farg1, N_Vector farg2, N_Vector f } +SWIGEXPORT int _wrap_FARKodeGetNumRhsEvals(void *farg1, int const *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + int arg2 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (int)(*farg2); + arg3 = (long *)(farg3); + result = (int)ARKodeGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + SWIGEXPORT int _wrap_FARKodeGetNumStepAttempts(void *farg1, long *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 e627472572..ffb3eedfac 100644 --- a/src/arkode/fmod_int64/farkode_mod.f90 +++ b/src/arkode/fmod_int64/farkode_mod.f90 @@ -163,6 +163,7 @@ module farkode_mod public :: FARKodeEvolve public :: FARKodeGetDky public :: FARKodeComputeState + public :: FARKodeGetNumRhsEvals public :: FARKodeGetNumStepAttempts public :: FARKodeGetWorkSpace public :: FARKodeGetNumSteps @@ -1019,6 +1020,16 @@ function swigc_FARKodeComputeState(farg1, farg2, farg3) & integer(C_INT) :: fresult end function +function swigc_FARKodeGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FARKodeGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +integer(C_INT), intent(in) :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + function swigc_FARKodeGetNumStepAttempts(farg1, farg2) & bind(C, name="_wrap_FARKodeGetNumStepAttempts") & result(fresult) @@ -3381,6 +3392,25 @@ function FARKodeComputeState(arkode_mem, zcor, z) & swig_result = fresult end function +function FARKodeGetNumRhsEvals(arkode_mem, partition_index, num_rhs_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_INT), intent(in) :: partition_index +integer(C_LONG), dimension(*), target, intent(inout) :: num_rhs_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +integer(C_INT) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = partition_index +farg3 = c_loc(num_rhs_evals(1)) +fresult = swigc_FARKodeGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + function FARKodeGetNumStepAttempts(arkode_mem, step_attempts) & result(swig_result) use, intrinsic :: ISO_C_BINDING diff --git a/src/arkode/fmod_int64/farkode_mristep_mod.c b/src/arkode/fmod_int64/farkode_mristep_mod.c index c2e254fa54..5ddb7d077a 100644 --- a/src/arkode/fmod_int64/farkode_mristep_mod.c +++ b/src/arkode/fmod_int64/farkode_mristep_mod.c @@ -713,22 +713,6 @@ SWIGEXPORT int _wrap_FMRIStepSetPostInnerFn(void *farg1, MRIStepPostInnerFn farg } -SWIGEXPORT int _wrap_FMRIStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { - int fresult ; - void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - int result; - - arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); - result = (int)MRIStepGetNumRhsEvals(arg1,arg2,arg3); - fresult = (int)(result); - return fresult; -} - - SWIGEXPORT int _wrap_FMRIStepGetCurrentCoupling(void *farg1, void *farg2) { int fresult ; void *arg1 = (void *) 0 ; @@ -2111,4 +2095,20 @@ SWIGEXPORT void _wrap_FMRIStepPrintMem(void *farg1, void *farg2) { } +SWIGEXPORT int _wrap_FMRIStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)MRIStepGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + diff --git a/src/arkode/fmod_int64/farkode_mristep_mod.f90 b/src/arkode/fmod_int64/farkode_mristep_mod.f90 index 782c3c1df9..be5bb7445a 100644 --- a/src/arkode/fmod_int64/farkode_mristep_mod.f90 +++ b/src/arkode/fmod_int64/farkode_mristep_mod.f90 @@ -129,7 +129,6 @@ module farkode_mristep_mod public :: FMRIStepSetCoupling public :: FMRIStepSetPreInnerFn public :: FMRIStepSetPostInnerFn - public :: FMRIStepGetNumRhsEvals public :: FMRIStepGetCurrentCoupling public :: FMRIStepGetLastInnerStepFlag public :: FMRIStepInnerStepper_Create @@ -226,6 +225,7 @@ module farkode_mristep_mod public :: FMRIStepGetLinReturnFlagName public :: FMRIStepFree public :: FMRIStepPrintMem + public :: FMRIStepGetNumRhsEvals ! WRAPPER DECLARATIONS interface @@ -503,16 +503,6 @@ function swigc_FMRIStepSetPostInnerFn(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) & -bind(C, name="_wrap_FMRIStepGetNumRhsEvals") & -result(fresult) -use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -type(C_PTR), value :: farg3 -integer(C_INT) :: fresult -end function - function swigc_FMRIStepGetCurrentCoupling(farg1, farg2) & bind(C, name="_wrap_FMRIStepGetCurrentCoupling") & result(fresult) @@ -1402,6 +1392,16 @@ subroutine swigc_FMRIStepPrintMem(farg1, farg2) & type(C_PTR), value :: farg2 end subroutine +function swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FMRIStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + end interface @@ -1883,25 +1883,6 @@ function FMRIStepSetPostInnerFn(arkode_mem, postfn) & swig_result = fresult end function -function FMRIStepGetNumRhsEvals(arkode_mem, nfse_evals, nfsi_evals) & -result(swig_result) -use, intrinsic :: ISO_C_BINDING -integer(C_INT) :: swig_result -type(C_PTR) :: arkode_mem -integer(C_LONG), dimension(*), target, intent(inout) :: nfse_evals -integer(C_LONG), dimension(*), target, intent(inout) :: nfsi_evals -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 -type(C_PTR) :: farg3 - -farg1 = arkode_mem -farg2 = c_loc(nfse_evals(1)) -farg3 = c_loc(nfsi_evals(1)) -fresult = swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) -swig_result = fresult -end function - function FMRIStepGetCurrentCoupling(arkode_mem, mric) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -3512,5 +3493,24 @@ subroutine FMRIStepPrintMem(arkode_mem, outfile) call swigc_FMRIStepPrintMem(farg1, farg2) end subroutine +function FMRIStepGetNumRhsEvals(arkode_mem, nfse_evals, nfsi_evals) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nfse_evals +integer(C_LONG), dimension(*), target, intent(inout) :: nfsi_evals +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nfse_evals(1)) +farg3 = c_loc(nfsi_evals(1)) +fresult = swigc_FMRIStepGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + end module diff --git a/src/arkode/fmod_int64/farkode_sprkstep_mod.c b/src/arkode/fmod_int64/farkode_sprkstep_mod.c index 28cfb297d4..f2888129b1 100644 --- a/src/arkode/fmod_int64/farkode_sprkstep_mod.c +++ b/src/arkode/fmod_int64/farkode_sprkstep_mod.c @@ -329,22 +329,6 @@ SWIGEXPORT int _wrap_FSPRKStepGetCurrentMethod(void *farg1, void *farg2) { } -SWIGEXPORT int _wrap_FSPRKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { - int fresult ; - void *arg1 = (void *) 0 ; - long *arg2 = (long *) 0 ; - long *arg3 = (long *) 0 ; - int result; - - arg1 = (void *)(farg1); - arg2 = (long *)(farg2); - arg3 = (long *)(farg3); - result = (int)SPRKStepGetNumRhsEvals(arg1,arg2,arg3); - fresult = (int)(result); - return fresult; -} - - SWIGEXPORT int _wrap_FSPRKStepReset(void *farg1, double const *farg2, N_Vector farg3) { int fresult ; void *arg1 = (void *) 0 ; @@ -764,4 +748,20 @@ SWIGEXPORT void _wrap_FSPRKStepFree(void *farg1) { } +SWIGEXPORT int _wrap_FSPRKStepGetNumRhsEvals(void *farg1, long *farg2, long *farg3) { + int fresult ; + void *arg1 = (void *) 0 ; + long *arg2 = (long *) 0 ; + long *arg3 = (long *) 0 ; + int result; + + arg1 = (void *)(farg1); + arg2 = (long *)(farg2); + arg3 = (long *)(farg3); + result = (int)SPRKStepGetNumRhsEvals(arg1,arg2,arg3); + fresult = (int)(result); + return fresult; +} + + diff --git a/src/arkode/fmod_int64/farkode_sprkstep_mod.f90 b/src/arkode/fmod_int64/farkode_sprkstep_mod.f90 index 82217e7b1b..55f3b8f3f0 100644 --- a/src/arkode/fmod_int64/farkode_sprkstep_mod.f90 +++ b/src/arkode/fmod_int64/farkode_sprkstep_mod.f90 @@ -44,7 +44,6 @@ module farkode_sprkstep_mod end type public :: FSPRKStepSetMethodName public :: FSPRKStepGetCurrentMethod - public :: FSPRKStepGetNumRhsEvals public :: FSPRKStepReset public :: FSPRKStepRootInit public :: FSPRKStepSetRootDirection @@ -74,6 +73,7 @@ module farkode_sprkstep_mod public :: FSPRKStepWriteParameters public :: FSPRKStepGetStepStats public :: FSPRKStepFree + public :: FSPRKStepGetNumRhsEvals ! WRAPPER DECLARATIONS interface @@ -138,16 +138,6 @@ function swigc_FSPRKStepGetCurrentMethod(farg1, farg2) & integer(C_INT) :: fresult end function -function swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) & -bind(C, name="_wrap_FSPRKStepGetNumRhsEvals") & -result(fresult) -use, intrinsic :: ISO_C_BINDING -type(C_PTR), value :: farg1 -type(C_PTR), value :: farg2 -type(C_PTR), value :: farg3 -integer(C_INT) :: fresult -end function - function swigc_FSPRKStepReset(farg1, farg2, farg3) & bind(C, name="_wrap_FSPRKStepReset") & result(fresult) @@ -421,6 +411,16 @@ subroutine swigc_FSPRKStepFree(farg1) & type(C_PTR), value :: farg1 end subroutine +function swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) & +bind(C, name="_wrap_FSPRKStepGetNumRhsEvals") & +result(fresult) +use, intrinsic :: ISO_C_BINDING +type(C_PTR), value :: farg1 +type(C_PTR), value :: farg2 +type(C_PTR), value :: farg3 +integer(C_INT) :: fresult +end function + end interface @@ -559,25 +559,6 @@ function FSPRKStepGetCurrentMethod(arkode_mem, sprk_storage) & swig_result = fresult end function -function FSPRKStepGetNumRhsEvals(arkode_mem, nf1, nf2) & -result(swig_result) -use, intrinsic :: ISO_C_BINDING -integer(C_INT) :: swig_result -type(C_PTR) :: arkode_mem -integer(C_LONG), dimension(*), target, intent(inout) :: nf1 -integer(C_LONG), dimension(*), target, intent(inout) :: nf2 -integer(C_INT) :: fresult -type(C_PTR) :: farg1 -type(C_PTR) :: farg2 -type(C_PTR) :: farg3 - -farg1 = arkode_mem -farg2 = c_loc(nf1(1)) -farg3 = c_loc(nf2(1)) -fresult = swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) -swig_result = fresult -end function - function FSPRKStepReset(arkode_mem, tr, yr) & result(swig_result) use, intrinsic :: ISO_C_BINDING @@ -1077,5 +1058,24 @@ subroutine FSPRKStepFree(arkode_mem) call swigc_FSPRKStepFree(farg1) end subroutine +function FSPRKStepGetNumRhsEvals(arkode_mem, nf1, nf2) & +result(swig_result) +use, intrinsic :: ISO_C_BINDING +integer(C_INT) :: swig_result +type(C_PTR) :: arkode_mem +integer(C_LONG), dimension(*), target, intent(inout) :: nf1 +integer(C_LONG), dimension(*), target, intent(inout) :: nf2 +integer(C_INT) :: fresult +type(C_PTR) :: farg1 +type(C_PTR) :: farg2 +type(C_PTR) :: farg3 + +farg1 = arkode_mem +farg2 = c_loc(nf1(1)) +farg3 = c_loc(nf2(1)) +fresult = swigc_FSPRKStepGetNumRhsEvals(farg1, farg2, farg3) +swig_result = fresult +end function + end module diff --git a/test/answers b/test/answers index c9da3649ff..b8fc1d686f 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit c9da3649ffcf693b0a6f8c12690e42ef83993bdd +Subproject commit b8fc1d686fabbc1c8e609ff3253cedf9588986ac diff --git a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp index 00008a1f11..303d85f057 100644 --- a/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp +++ b/test/unit_tests/arkode/CXX_parallel/ark_test_heat2D_mri.cpp @@ -320,8 +320,10 @@ int main(int argc, char* argv[]) if (check_flag(&flag, "ARKodeEvolve", 1)) { return 1; } flag = ARKodeGetNumSteps(arkstep_mem, &ark_nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return 1; } - flag = ARKStepGetNumRhsEvals(arkstep_mem, &ark_nfe, &ark_nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(arkstep_mem, 0, &ark_nfe); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(arkstep_mem, 1, &ark_nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } flag = ARKodeGetNumLinSolvSetups(arkstep_mem, &ark_nsetups); if (check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1)) { return 1; } flag = ARKodeGetNumNonlinSolvIters(arkstep_mem, &ark_nni); @@ -363,8 +365,10 @@ int main(int argc, char* argv[]) if (check_flag(&flag, "ARKodeEvolve", 1)) { return 1; } flag = ARKodeGetNumSteps(mristep_mem, &mri_nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return 1; } - flag = MRIStepGetNumRhsEvals(mristep_mem, &mri_nfse, &mri_nfsi); - if (check_flag(&flag, "MRIStepGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(mristep_mem, 0, &mri_nfse); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(mristep_mem, 1, &mri_nfsi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } flag = ARKodeGetNumLinSolvSetups(mristep_mem, &mri_nsetups); if (check_flag(&flag, "ARKodeGetNumLinSolvSetups", 1)) { return 1; } flag = ARKodeGetNumNonlinSolvIters(mristep_mem, &mri_nni); diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp index a31e3d81e0..c56ac4292d 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_analytic_sys_mri.cpp @@ -243,8 +243,10 @@ int main(int argc, char* argv[]) if (check_flag(&flag, "ARKodeGetCurrentTime", 1)) { return 1; } flag = ARKodeGetNumSteps(arkstep_mem, &ark_nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return 1; } - flag = ARKStepGetNumRhsEvals(arkstep_mem, &ark_nfe, &ark_nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(arkstep_mem, 0, &ark_nfe); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(arkstep_mem, 1, &ark_nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } flag = ARKodeGetNumNonlinSolvIters(arkstep_mem, &ark_nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return 1; } flag = ARKodeGetNumNonlinSolvConvFails(arkstep_mem, &ark_ncfn); @@ -284,8 +286,10 @@ int main(int argc, char* argv[]) if (check_flag(&flag, "ARKodeGetCurrentTime", 1)) { return 1; } flag = ARKodeGetNumSteps(mristep_mem, &mri_nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return 1; } - flag = MRIStepGetNumRhsEvals(mristep_mem, &mri_nfse, &mri_nfsi); - if (check_flag(&flag, "MRIStepGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(mristep_mem, 0, &mri_nfse); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(mristep_mem, 1, &mri_nfsi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } flag = ARKodeGetNumNonlinSolvIters(mristep_mem, &mri_nni); if (check_flag(&flag, "ARKodeGetNumNonlinSolvIters", 1)) { return 1; } flag = ARKodeGetNumNonlinSolvConvFails(mristep_mem, &mri_ncfn); diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp index 22d6856800..0a0fe13fe5 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_ark.cpp @@ -866,8 +866,11 @@ int check_rhs_evals(rk_type r_type, void* arkstep_mem, long int nfe_expected, if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return 1; } long int nfe, nfi; - flag = ARKStepGetNumRhsEvals(arkstep_mem, &nfe, &nfi); - if (check_flag(&flag, "ARKStepGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(arkstep_mem, 0, &nfe); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } + + flag = ARKodeGetNumRhsEvals(arkstep_mem, 1, &nfi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } if (r_type == rk_type::expl || r_type == rk_type::imex) { diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp index 2de9d17dca..525da5509f 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_erk.cpp @@ -452,8 +452,8 @@ int check_rhs_evals(void* erkstep_mem, long int nfe_expected) if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return 1; } long int nfe; - flag = ERKStepGetNumRhsEvals(erkstep_mem, &nfe); - if (check_flag(&flag, "ERKStepGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(erkstep_mem, 0, &nfe); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } std::cout << "Fe RHS evals:\n" << " actual: " << nfe << "\n" diff --git a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp index 202e1780ef..966d5425fb 100644 --- a/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp +++ b/test/unit_tests/arkode/CXX_serial/ark_test_dahlquist_mri.cpp @@ -402,8 +402,11 @@ int run_tests(MRISTEP_METHOD_TYPE type, ProblemOptions& prob_opts, flag = ARKodeGetNumSteps(mristep_mem, &mri_nst); if (check_flag(&flag, "ARKodeGetNumSteps", 1)) { return 1; } - flag = MRIStepGetNumRhsEvals(mristep_mem, &mri_nfse, &mri_nfsi); - if (check_flag(&flag, "MRIStepGetNumRhsEvals", 1)) { return 1; } + flag = ARKodeGetNumRhsEvals(mristep_mem, 0, &mri_nfse); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } + + flag = ARKodeGetNumRhsEvals(mristep_mem, 1, &mri_nfsi); + if (check_flag(&flag, "ARKodeGetNumRhsEvals", 1)) { return 1; } if (type == MRISTEP_IMPLICIT || type == MRISTEP_IMEX) {