Repository navigation
Add support for spatially varying and parameterized model initializers - #216
bgroenks96 wants to merge 19 commits into
Conversation
maximilian-gelbrecht
left a comment
There was a problem hiding this comment.
I like this. Makes scripts to run the model also easier.
It's also more functional than that. Until now, we didn't really have a good way to run the initializers with spatially varying inputs. I guess we could have done it in user-side code but that leads to the copy-pasta that we already saw with the |
|
Maybe this is also interesting for @glwagner; this is why we have initializers written into Terrarium model code rather than offloading it entirely to users. I think this is also more important for land than for atmosphere/ocean because initialization/spin-up schemes are an extremely important part of models with very slow dynamical components, and these schemes often have their own associated parameters that may need to be calibrated, e.g. the However, handling of data needed for initialization is still fed through |
Can you put these initialization concepts into a function |
The For the initializer types defined within the |
how do you reinitialize a simulation?
I didn't understand this, so let me clarify. The user interface that we have implemented in Oceananigans and Breeze is to define This is fairly simple for an ocean model but turns out to be quite complicated for an atmospheric model. Breeze's set!(model::TerrariumModel, initializer::CustomInitializer)there should be no difference between this and whatever is passed to a model constructor... if I understand correctly. Can this be implemented for Terrarium's models? |
This PR generalizes the
AbstractInitializerinterface to allow initializer types to define inputvariablesand tracked parameters. It also adds aLatitudinalClimatologyparameterization to replace the user-side soil initializer code currently duplicated across several examples.Additional changes
λnodesandφnodesimplementations forColumnRingGrid, extracting the coordinates from the underlying RingGridparametersdispatch forAbstractProcesstypes