You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recently I ran across a couple of things that we don't check and which I wasted significant time debugging in my own scripts:
When using an f-wave solver, we don't check that solver.fwave==True. Running without setting this option will lead to nonsensical results (and often blowup, eventually).
We don't check that the aux array has been initialized. For instance, in shallow water with bathymetry, you can start a simulation without setting up the bathymetry (usually leading immediately to NaNs).
We should check for these things when Controller.run() is called.
The text was updated successfully, but these errors were encountered:
First idea sounds good to me. Maybe a broader consistency check but we kind of do that already I suppose with num_eqn, etc.
The aux arrays may not be able to be filled in until after run is called although we could initialize the aux array to something temporarily. I might hesitate to do this as reasonable initial values may lead to more difficulty when debugging as NaNs would be easier to spot.
I guess you are right about the second one. Since we use a setter function for the aux array, we could add a flag that gets set the first time the setter is called. But that's a potential performance hit every time aux is modified, just to avoid a rather rare stupid mistake, so probably not worth it.
Recently I ran across a couple of things that we don't check and which I wasted significant time debugging in my own scripts:
solver.fwave==True
. Running without setting this option will lead to nonsensical results (and often blowup, eventually).aux
array has been initialized. For instance, in shallow water with bathymetry, you can start a simulation without setting up the bathymetry (usually leading immediately to NaNs).We should check for these things when
Controller.run()
is called.The text was updated successfully, but these errors were encountered: