TurbulenceConvection.jl icon indicating copy to clipboard operation
TurbulenceConvection.jl copied to clipboard

New closure implementation overview

Open haakon-e opened this issue 3 years ago • 2 comments

Overview of approaches to try for entrainment/detrainment closures.

Closures to be implemented and tested/calibrated. (responsible team in parenthesis)

  • [ ] Linear regression (Costa,...)
  • [ ] Fully connected neural network (Costa, Haakon, Ignacio, ....)
  • [ ] Gaussian Processes (none)
  • [ ] Convolutional Neural Network (Haakon, Toby, Costa ....)
  • [ ] Fourier Neural Operator (none)
  • [ ] Random Feature and Sindy-style sparse polynomial regressions (Matt, Nick, Ignacio, ...)
  • [ ] Relevance vector machine (Costa,...)
  • [ ] ... additional closures tbd.

note: closures are implemented on branches off of the main branch

haakon-e avatar Dec 20 '21 20:12 haakon-e

Just to note, we should probably develop off of the main branch (via clones of TC.jl, not forks) since it'll be easier to keep synchronized (and therefore easier to merge new developments). I'd prefer that model/ML developers commit changes to ~the main branch~ branches off the main branch-- we can add a ModelDev folder where we merge more changes freely.

This way, as we make refactoring changes, we can more quickly and generally apply them to development work too.

I can help assist / facilitate how this ModelDev folder interacts with the model, so that model/ML developers can add tests that ensure at least some portion of the development code stays synchronized.

For now, I'll try generalizing the following functions so that they're hack-able outside of src/:

  • entr_detr(param_set, εδ_model_vars, εδ_model_type::MDEntr)
  • stochastic_closure(::APS, ::sde_struct{NoneClosureType}, ::AbstractEntDet)
  • ~compute_turbulent_entrainment(param_set, εδ_model_vars)~

@haakon-e, please let me know if there are any other functions that may need to be overloaded outside of src/.

charleskawczynski avatar Dec 30 '21 16:12 charleskawczynski

@charleskawczynski compute_turbulent_entrainment(param_set, εδ_model_vars) will likely not be changed or overloaded by us, since we're only working on the dynamical entrainment.

costachris avatar Jan 05 '22 19:01 costachris