Repository navigation
SCHISM tutorial update - #2941
fluidnumericsJoe wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
In the tilmestep comment, should we also suggest that users could experiment with adaptive time stepping in e.g. AdvectionRk45? Have you tried that already for unstructured grids? Does it work (well)?
There was a problem hiding this comment.
I have not tried this yet, but will check it out. I'm playing with a CFL guided time step reduction per particle and will compare with RK45
There was a problem hiding this comment.
We tried it on the SCHISM grid from issue #2928, and I'd not recommend AdvectionRK45 here. It controls the per-step truncation error, which stays small in a field interpolated linearly within each cell. Because of this, it still take takes ~1 h steps that jump across narrow channels.
What does work is limiting each particle's dt by local cell size (dt ≤ C h/|u|) in a small kernel ahead of AdvectionRK4. It matches a fixed 1-minute step's accuracy with ~10× fewer velocity evaluations. It's not cheaper though, since it seems that we really kill the vectorization with variable time step size in particles.
I'll follow up in an issue with a more complete survey of what we learned with RK45 and dt-adjustment kernel and comment a bit on the performance loss there.
There was a problem hiding this comment.
Also, the figures don't load well in RTD? https://parcels--2941.org.readthedocs.build/en/2941/user_guide/examples/tutorial_schism.html. Can you check what's going on?
There was a problem hiding this comment.
I must've not committed them. oops. I'll get that sorted
Description
Following up from #2928 , this PR adds a section on things to consider when adapting the SCHISM tutorial to other use cases. This covers time step size / CFL, interpolator choice, and handling grid search errors. Links to other internal parcels documentation are included for each consideration.