Convert domain_descriptors into a struct #2
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 is an example of the type of refactorings I think must be done, here on a small scale focussing on the
domain_descriptors
that was passed around everywhere.The important part of this refactor is copied here for convenience, all other changes are just so that they become compatible with this structure.
I have rewritten the tuple as a struct, which contains other structs. I think this is useful on its own, it makes it a lot more readable, and after doing this it also becomes clearer that many functions actually don't need the whole
domain_descriptors
but only a few parts.But more importantly this is I think something we should do at a large scale, that is, create a type for a closure model, and for an equation, and for a solver, etc. Finding the best way to decompose things in this way is not easy and will require probably several iterations (what I did for the
DomainDescriptors
can certainly be improved), but I think this is the core of what we should do to make everything modular, and possibly compatible with SciML.