ClimaCore.jl
ClimaCore.jl copied to clipboard
Revamp and extend ClimaCore matrix data structures
This PR will add a proper API for "columnwise band matrix fields" and "block matrices of matrix fields" to ClimaCore, along with unit tests and documentation. This will vastly simplify and extend the matrix data structures and operations that are currently spread across ClimaCore.jl/src/Operators/stencilcoefs.jl
, ClimaCore.jl/src/Operators/pointwisestencil.jl
, ClimaCore.jl/src/Operators/operator2stencil.jl
, ClimaAtmos.jl/src/tendencies/implicit/wfact.jl
, and ClimaAtmos.jl/src/tendencies/implicit/schur_complement_W.jl
. These changes are needed in order to more easily extend the Atmos model, particularly to handle the new EDMFX model. Specifically, these changes will allow us to solve for the diagnostic EDMFX quantities, to implicitly solve for the prognostic EDMFX quantities, and to implicitly solve for the prognostic grid-scale quantities using the EDMFX quantities.
- [ ] Code follows the style guidelines OR N/A.
- [ ] Unit tests are included OR N/A.
- [ ] Code is exercised in an integration test OR N/A.
- [ ] Documentation has been added/updated OR N/A.
Would it be meaningful to have a simple integration test planned as well? Where we would solve some simpler set of coupled equations than the full EDMFX+dycore and test the implicit solver? We could use it to explain the concepts/abstractions that need to be implemented? I think it would help with documenting what is happening also