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

Machine Learning based vertical diffusivity in EPBL mixing scheme used for ocean surface boundary layer #737

Open
wants to merge 31 commits into
base: dev/gfdl
Choose a base branch
from

Conversation

aakashsane
Copy link

Requesting to add a few subroutines to the EPBL vertical mixing module. 
These changes enhances the existing vertical diffusivity used in EPBL with machine learning, and makes it constrained on second moment closure. Using symbolic regression and empirical fitting, a shape function ( g(\sigma) ) has been formulated that responds to changes in the surface forcing (Latitude, wind stress, surface buoyancy flux, boundary layer depth). g(\sigma) goes from zero to 1 and its skewness changes as per surface forcing conditions. The velocity scale, v_0, is an approximation that depends on (Coriolis f, ustar, and surface buoyancy flux).
When v_0 is combined with g(\sigma) and multiplied by the energetics based boundary layer depth h, i.e \nu = . g(\sigma) X v_0 X h, we get a diffusivity which is constrained on a second moment closure.

The subroutines are activated by using the flags:
Equation_Discovery_shape = True
Equation_Discovery_velocity = True
Both are required to activate the new diffusivity.

The new subroutines have been tested by running the OM4 configuration (Adcroft et al. 2019) and comparing the simulation against observations (SST from WOA and Mixed Layer Depth from ARGO). The equations are approximating the neural networks. The neural network based diffusivity has been published in Sane et al. 2023 ( https://doi.org/10.1029/2023MS003890 ) and the equations based diffusivity will soon be submitted for a publication.
The changes have also been tested using the scale test.

All the commits can be squashed into one as only the latest is relevant.

aakashsane and others added 30 commits July 17, 2024 22:37
updating ML_diffusivity to latest dev/gfdl
replaced the sigma to z coord algorithm used to map neural network output with a simpler and better algorithm that finds the shape function on the hz vertical grid.
some typo corrections
f_lower is a lower cap on abs_f used inside equation for v_0. 
A cap is required to avoid singularity. Capping at any value below 1 deg is okay, solution is not sensitive. 
f_lower was tested for 1 deg and 0.1 deg. 
SST and MLD did not change.
updating latest dev/gfdl with ML_diffusivity
Copy link

codecov bot commented Oct 31, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 40.94%. Comparing base (f90b071) to head (992f266).
Report is 5 commits behind head on dev/gfdl.

Additional details and impacted files
@@             Coverage Diff              @@
##           dev/gfdl     #737      +/-   ##
============================================
+ Coverage     36.63%   40.94%   +4.30%     
============================================
  Files           274       42     -232     
  Lines         84153     5288   -78865     
  Branches      15834     1013   -14821     
============================================
- Hits          30829     2165   -28664     
+ Misses        47509     2938   -44571     
+ Partials       5815      185    -5630     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants