-
Notifications
You must be signed in to change notification settings - Fork 13
Prevent unnecessary refactorisations when matrices haven't changed #569
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…s boussinesq test
… does not break test
…ms breaks boussinesq test
|
Profiles for a few timesteps of the baroclinic wave test case with C30L30 (6.5MDoFs). The lines are:
|
|
Profiles for a few timesteps of the baroclinic wave test case with C90L30 (~59MDoFs). All runs have the direct solve on the SIQN forcing swapped for an iterative solve. This change made a big difference in the timing at C30L30, but at this scale the direct solve causes an out-of-memory error too!
|
tommbendall
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks so much for doing these changes, the results are really impressive.
Just to record something we discussed offline: the all of the linear solvers include a reference profile in the left-hand side of their linear problem, so we discussed making an abstract update_reference_profiles method, which would allow us to call invalidate_jacobian if they are updated
|
Final test results: |
jshipton
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fabulous - thanks @JHopeCollins !!
tommbendall
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is brilliant, thanks so much!










Addresses #565
Changes that pass tests:
LinearVariationalSolversin thediagnosticsmodule.LinearVariationalSolversin thesolversmodule.Changes that fail tests:
Fails the Boussinesq tests on KGOs.
Fails the linear swe wave test on KGOs.
Fails the Boussinesq and simultaneous SIQN tests on KGOs.
All changes together fail additional tests in total (see final CI run).