Discussion: Gizmo Time Step "particle size"
Hi all
I've been playing around with how the time step for gizmo hydrodynamics is computed. Lanson & Vila 2008a give the following particle "size" estimate:
where w_l
corresponds to the particle weight psi_l
and ||A_il||
are the "effective surfaces".
I've run some hydro examples with this definition, and found that in general, this results in a time step size increase on average by a factor of ~ 2 - 10, usually around ~3.
Here's a table of my results. For every test, there are three lines:
- The number of steps to complete the test
- the time step size of the last step
- the average time step size
Test | Hopkins Version | Lanson & Vila Version
------------------------------------------------------------------------------------------------------------------------------
SedovBlast_1D | 36859 | 13789
| 1.525879e-06 | 6.103516e-06
| 1.356e-06 | 3.626e-06
------------------------------------------------------------------------------------------------------------------------------
SedovBlast_2D | 3062 | 1648
| 2.441406e-05 | 4.882813e-05
| 1.633e-5 | 3.034e-05
------------------------------------------------------------------------------------------------------------------------------
SedovBlast_3D | 2815 | 694
| 2.441406e-05 | 1.953125e-04
| 1.776e-05 | 7.205e-05
------------------------------------------------------------------------------------------------------------------------------
SodShock_1D | 16384 | 4106
| 1.220703e-05 | 4.882813e-05
| 1.220703e-05 | 3.275e-05
------------------------------------------------------------------------------------------------------------------------------
SodShock_2D | 4096 | 1620
| 4.882813e-05 | 9.765625e-05
| 4.882813e-05 | 1.235e-04
------------------------------------------------------------------------------------------------------------------------------
SodShock_3D | 2048 | 558
| 9.765625e-05 | 3.906250e-04
| 9.765625e-05 | 3.584e-04
------------------------------------------------------------------------------------------------------------------------------
SodShock_BCC_3D | 1024 | 285
| 1.953125e-04 | 7.812500e-04
| 1.953e-04 | 7.018e-04
------------------------------------------------------------------------------------------------------------------------------
SodShock_Spherical_2D | 1024 | 342
| 9.765625e-05 | 3.906250e-04
| 9.765625e-05 | 2.92e-4
------------------------------------------------------------------------------------------------------------------------------
SodShock_Spherical_3D | 512 | 171
| 1.953125e-04 | 7.812500e-04
| 1.953125e-04 | 5.848e-4
------------------------------------------------------------------------------------------------------------------------------
GreshoVortex_2D | 16679 | 8192
| 6.103516e-05 | 1.220703e-04
| 5.996e-05 | 1.220703e-04
------------------------------------------------------------------------------------------------------------------------------
GreshoVortex_3D | 8192 | 4096
| 1.220703e-04 | 2.441406e-04
| 1.220703e-04 | 2.441406e-04
------------------------------------------------------------------------------------------------------------------------------
InteractingBlastWaves_1D | 102330 | 33147
(both equally horrible results) | 2.899170e-07 | 1.159668e-06
| 2.932e-07 | 9.051e-7
------------------------------------------------------------------------------------------------------------------------------
Noh_1D | 104396 | 32946
| 4.577637e-06 | 1.831055e-05
| 5.575e-6 | 1.821e-5
------------------------------------------------------------------------------------------------------------------------------
Noh_2D | 16510 | 10323
| 3.662109e-05 | 7.324219e-05
| 3.634e-05 | 5.812e-05
------------------------------------------------------------------------------------------------------------------------------
Noh_3D | 13255 | 5573
| 7.324219e-05 | 1.464844e-04
| 4.527e-05 | 1.08e-04
------------------------------------------------------------------------------------------------------------------------------
By eye, I only noticed a significant difference on the Noh_3D
test, where the new timestep version performs seemingly worse. The Noh_2D
test has far less pronounced differences.
However, I used the parameter files as they are given in the examples directories, so all these tests were run with CFL_condition=0.1
. Ideally, the goal would be to run with a higher number. @bvandenbroucke , is there a recommended CFL condition for meshless schemes? I know that in grid codes one would usually go with ~0.8, but I'm not sure that would also apply for meshless schemes. Hopkins mentions CFL = 0.2 in a footnote and compares it to 0.8 in grid codes, but we don't use the same definition of "particle size" as he does in the paper. From Lanson & Vila's stability analysis, we should be allowed to go up to CFL = 1.0, but that accounts for stability, not for accuracy.
Finally, I'd like to discuss the following point: shall we move on to this new definition of "particle size"? I'm happy to run tests and provide any result you'd like to see, just let me know!