Skip to content
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

Upstream creation of DEC operators to Decapodes.jl #286

Open
epatters opened this issue Dec 6, 2024 · 0 comments
Open

Upstream creation of DEC operators to Decapodes.jl #286

epatters opened this issue Dec 6, 2024 · 0 comments
Assignees
Labels
external Work on interfacing with other tools

Comments

@epatters
Copy link
Member

epatters commented Dec 6, 2024

The Decapodes service currently contains a sizable chunk of nitty-gritty code to initialize the DEC operators, going beyond what Decapodes provides in default_dec_matrix_generate.

In my review of #283, I wrote:

IMO all this nitty-gritty stuff initializing operators should be upstreamed to Decapodes. The glue layer in AlgebraicJuliaService should be as minimal as possible to reduce the maintenance burden for CatColab, which is not written in Julia.

@quffaro points out:

My intuition is that operators may vary across simulations, so while the default_dec_matrix_generate captures a lot of the operators necessary to do physics simulations, it may still be necessary to have bespoke operators.

Consider

  • budyko_sellars_halfar where the ♯ operator is bespoke
  • cism where the ♯ operator is bespoke, in the sense that it's defined in the generate statement and not "OOTB" in Decapodes, however I think it's defined in default_dec_matrix_generate now.
  • bc where the boundary operator is defined inline.

Some of these could probably be up-streamed if they aren't already, but I think it remains to be a possibility that there are operators with nontrivial bespoke implementations that have historically been defined Julia-side. I'm not sure how CatColab will handle those cases, but they may be out of scope.

That's a good point, and I agree with the final suggestion: bespoke DEC operators should be out of scope for CatColab. We don't have the expertise to create them and they depend too much on the details of Decapodes. Any DEC operators invoked from CatColab should be retrieved from Decapodes via a uniform API. To handle domain-specific operators, we probably need to refer to them by domain-specific names, e.g., ♯_budyko_sellars_halfar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external Work on interfacing with other tools
Projects
Status: In progress
Development

No branches or pull requests

2 participants