Revamp and extend ClimaCore matrix data structures #1190
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
, andClimaAtmos.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.