-
Notifications
You must be signed in to change notification settings - Fork 10
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
O2.3.6 Implicit solver for full soil model #135
Comments
LGTM. We should keep the tridiagonal solver in one central place that we do not have to duplicate it (so that we update it in one place, e.g., for GPU performance, this percolates through). |
@dennisYatunin could we move the thomas algorithm function to ClimaTimesteppers? also, if the matrix passed is the identity, will the algorithm spend time inverting it, or will it just return |
Actually, ClimaCore might be a slightly better location than ClimaTimeSteppers. We're currently computing Jacobian blocks as ClimaCore Fields, then copying them into arrays to run the Thomas Algorithm. It would probably be better to have a function in ClimaCore that can directly invert a Jacobian block Field (I left a note in ClimaCore last year to add a function like this). If the Jacobian matrix is |
excellent! |
190: Jacobian update defaults r=kmdeck a=kmdeck ## Purpose Part of SDI #135 Adds functions which compute the Jacobian and Jacobian due to the boundary terms in the tendency. Adds default functions + extends those for Richards equation. ## Content - adds three functions: `make_update_jacobian`, `make_tendency_jacobian`, and `\partialtendencyBC\partialY`. - adds the methods of these for RichardsModel. - adds unit tests which demonstrate that the Jacobian is computed correctly. Review checklist I have: - followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/ - followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/ - followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy - checked that this PR does not duplicate an open PR. In the Content, I have included - relevant unit tests, and integration tests, - appropriate docstrings on all functions, structs, and modules, and included relevant documentation. ---- - [x] I have read and checked the items on the review checklist. Co-authored-by: kmdeck <kdeck@caltech.edu>
190: Jacobian update defaults r=kmdeck a=kmdeck ## Purpose Part of SDI #135 Adds functions which compute the Jacobian and Jacobian due to the boundary terms in the tendency. Adds default functions + extends those for Richards equation. ## Content - adds three functions: `make_update_jacobian`, `make_tendency_jacobian`, and `\partialtendencyBC\partialY`. - adds the methods of these for RichardsModel. - adds unit tests which demonstrate that the Jacobian is computed correctly. Review checklist I have: - followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/ - followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/ - followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy - checked that this PR does not duplicate an open PR. In the Content, I have included - relevant unit tests, and integration tests, - appropriate docstrings on all functions, structs, and modules, and included relevant documentation. ---- - [x] I have read and checked the items on the review checklist. Co-authored-by: kmdeck <kdeck@caltech.edu>
190: Jacobian update defaults r=kmdeck a=kmdeck ## Purpose Part of SDI #135 Adds functions which compute the Jacobian and Jacobian due to the boundary terms in the tendency. Adds default functions + extends those for Richards equation. ## Content - adds three functions: `make_update_jacobian`, `make_tendency_jacobian`, and `\partialtendencyBC\partialY`. - adds the methods of these for RichardsModel. - adds unit tests which demonstrate that the Jacobian is computed correctly. Review checklist I have: - followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/ - followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/ - followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy - checked that this PR does not duplicate an open PR. In the Content, I have included - relevant unit tests, and integration tests, - appropriate docstrings on all functions, structs, and modules, and included relevant documentation. ---- - [x] I have read and checked the items on the review checklist. Co-authored-by: kmdeck <kdeck@caltech.edu>
completed - see #809 for followup |
Purpose
We need an implicit solver for the soil model (both for Richards equation alone, and the full soil system), and possibly in the future for other models as well. Currently, the implicit solver for Richards equation is implemented and in use. The full soil implicit solver is still in progress.
Components
Inputs
Results and deliverables/Validation
Initial task breakdown
A preliminary list of PRs and a preliminary timeline of PRs, milestones, and key results.
A
andb
update every X timesteps, where X is chosen at the top-most level.Producers
@juliasloan25 (design and implementation) @kmdeck @dennisYatunin (design, implementation support)
Reviewers
Katherine, Dennis - PRs
Tapio - SDI review (@tapios)
SDI Changelog
step RichardsModel implicitly
step EnergyHydrology implicitly
EnergyHydrology
energy #663QA
canopy implicit timestepping
The text was updated successfully, but these errors were encountered: