Open ketch opened 3 days ago
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.
I've opened PRs that handle the fwave issue.
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 whenController.run()
is called.