TimeIntegrationDemo.cpp not suited for explicit time-discretization scheme, potential issue with IMEXGear and IMEXdirk_2_3_3.
The TimeIntegrationDemo.cpp
is designed to solve the one-dimensional advection-diffusion problem by using an explicit time-discretization for the advection term (see function EvaluateAdvectionTerm
) and an implicit time-discretization for the diffusion term (see function HelmSolve
). Hence, the solver is not adapted to validate pure explicit time-discretization or pure implicit methods. The solver seems to have been developed for IMEX type time-integration schemes. TimeIntegrationDemo.cpp
should either be modified to replaced by more appropriate tests. (EDIT: This is currently being addressed in !1485 (merged))
Convergence test by using the ADR solver for an advection-diffusion problem suggest potential convergence issue with IMEXGear
. Result suggest first-order convergence (instead of second-order) for IMEXGear
. Other IMEX approaches reach the expected convergence order. (EDIT: This issue is being addressed with MR !1489 (merged))
IMEXOrder1:
1.000283805969288
1.0001400059397587
1.0000652128839338
IMEXOrder2:
2.00719092271051
2.0031505320136467
2.0054060570601795
IMEXGear:
1.0048374666093653
1.0024170009943802
1.0012061031178545
IMEXOrder3:
3.0032013072095927
2.9893895674720294
IMEXOrder4:
3.5968108820131928
Convergence test by using the ADR solver for an advection-diffusion problem suggest potential convergence issue with IMEXdirk_2_3_3
. Result suggest second-order convergence (instead of third-order) for IMEXdirk_2_3_3
(EDIT: This issue is being addressed with MR !1499 (merged)). Other IMEX approaches reach the expected convergence order. The less than nominal convergence order for IMEXdirk_3_4_3 and IMEXdirk_4_4_3 are likely due to reaching spatial error limit.
IMEXdirk_1_1_1:
1.000283805969288
1.0001400059397587
1.0000652128839338
IMEXdirk_1_2_1:
0.9983145966474198
0.9991680892331893
0.9995869654237363
IMEXdirk_1_2_2:
2.0225285036772895
2.0114715069760623
2.0000389512275327
IMEXdirk_2_2_2:
2.0009043928983994
2.000821981876117
1.9708594475810406
IMEXdirk_2_3_2:
1.998642667277551
1.9993618049594997
2.0046134927316768
IMEXdirk_2_3_3:
2.068529354239799
2.06582334118321
2.0771169960435523
IMEXdirk_3_4_3:
2.3430987914672317
2.4393542123415632
2.6522522407720097
2.7634981980503133
IMEXdirk_4_4_3:
2.5719036296819797
2.4387964966190907
2.255260833018137
Results for a pure advection problem suggest that all RK schemes are properly implemented and reach the expected convergence order, including the newly implemented (corrected) RK5.
ForwardEuler:
1.0017513230977784
1.00088254397963
1.000438154666394
RungeKutta1:
1.0017513230977784
1.00088254397963
1.000438154666394
RungeKutta2:
2.000273803032207
2.000141271978975
2.000071255463732
RungeKutta2_ImprovedEuler:
2.0003852164261717
2.0001849404258447
2.0000896766198726
RungeKutta2_SSP:
2.0003852164261717
2.0001849404258447
2.0000896766198726
RungeKutta3:
3.0332131286475095
3.0165814831931015
3.006183722478198
RungeKutta3_SSP:
3.039138721815521
3.019581914784439
3.0094145409335105
RungeKutta4:
4.035264587527688
RungeKutta5:
5.0047327991352955
Results for a pure diffusion problem suggest that all BDF approaches are properly implemented and reach the expected order of convergence.
BackwardEuler:
0.9950487987350539
0.9975307568541572
0.9987680285674233
0.9993812086068565
BDFImplicitOrder1:
0.9950487987350539
0.9975307568541572
0.9987680285674233
0.9993812086068565
BDFImplicitOrder2:
2.0121000674334737
2.003470098783962
2.0010116841034664
1.9997823238431462
BDFImplicitOrder3:
2.9932528831216403
2.9969482526541684
BDFImplicitOrder4:
3.942161975179535
3.9873820732450787
Results suggested that DIRK scheme up to order 3 are properly implemented. However, there seems to be some issue with the ESDRIK schemes' DIRKOrder3_ES5 and DIRKOrder4_ES6 (see MR !1484 (merged))
DIRKOrder2:
2.0026540429346724
2.001313841927592
2.000563250881894
2.00303198258383
DIRKOrder3:
2.9835066549811
2.992959541322329