CliMA / OceanParameterizations.jl

Machine learning (and uncertainty quantification?) of climate model parameterizations using differentiable (and probabilistic?) programming.
MIT License
21 stars 2 forks source link

Doing all training/work with buoyancy instead of temperature? #15

Open ali-ramadhan opened 3 years ago

ali-ramadhan commented 3 years ago

@adelinehillier @xkykai what do you guys think of training with buoyancy instead of temperature?

I think we get a few benefits:

  1. No need to worry about Celsius vs. Kelvin. Buoyancy just has units of acceleration.
  2. If a mixing parameterization learns the buoyancy flux, it can be used to mix passive tracers.
  3. Not sure about this yet but learning buoyancy flux might make the parameterization usable in the presence of both temperature and salinity and with any equation of state.
adelinehillier commented 3 years ago

Sounds fine to me! Though can't we easily compute the buoyancy flux from the temp flux? Also, buoyancy values are a bit less interpretable and the OceanTurb.jl simulations are set to use the temperature profile as the IC and output... so maybe we should stick to temperature profiles for consistency?

ali-ramadhan commented 3 years ago

Ah good point. Yeah I think you can compute buoyancy flux from the temperature flux as e.g. w'b' = gα w'T' but if α is a constant then this assumes a linear equation of state (so in general some equation of state needs to be used).

You're right, I didn't realize that KPP is formulated in terms of temperature T and salinity S and OceanTurb.KPP has a linear equation of state hard-coded in I think.

I agree it makes sense to continue with temperature for now, especially since we plan on comparing with KPP and are not thinking of mixing passive tracers just yet.

Out of curiousity, @sandreza for your UQ paper you used buoyancy in Oceananigans but T,S in OceanTurb.KPP and just compared them assuming a particular linear equation of state, right?

xkykai commented 3 years ago

I am thinking that perhaps we should start with temperature first, then move on to doing buoyancy flux after temperature is done. Also I think John's intention is to train it on the buoyancy flux? I vaguely remembered him mentioning it at some point.

ali-ramadhan commented 3 years ago

Sounds good then! We can stick to temperature and revisit this issue later if needed.