-
Notifications
You must be signed in to change notification settings - Fork 2
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
Implement a few ice-ocean examples #18
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #18 +/- ##
==========================================
- Coverage 26.81% 22.80% -4.02%
==========================================
Files 7 11 +4
Lines 261 307 +46
==========================================
Hits 70 70
- Misses 191 237 +46
☔ View full report in Codecov by Sentry. |
Here's a plot from an "ocean mixed layer" case in which clear sky radiative emission with no incoming radiation cools the ocean surface (and then the ice surface) during the first 40 days. Then we add a constant heat flux that overcomes the outgoing radiation, which melts the ice and warms the ocean once the ice is melted. This model is relatively simple; since there are no horizontal heat fluxes in the ocean, there is no ice-ocean heat flux while the ocean is ice-covered. The ocean gets saltier when ice is forming, and that salt is returned to the ocean when the ice melts. |
Here's a similar example as above, but replacing the slab ocean with a column model. Convection mixes the column to the bottom during the initial cooling, so the column behaves similarly as the slab. However, during the warming phase the heat and salinity melt are trapped at the surface, so the ocean surface warms much more. freezing_and_melting.mp4 |
The coupled cases required a substantial amount of code to implement a coupled model abstraction. I'm going to move the coupled model abstraction to |
A few more examples... Baroclinic ice cubebaroclinic_ice_cube.mp4Salty baroclinic ice cubesalty_baroclinic_ice_cube.mp4 |
why these examples are not part of the docs? are they computationally intense? |
Yes, like 256^3 and running on GPU. |
They also use |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these examples look sweet!
ice.Δt = Δt | ||
ocean.Δt = Δt | ||
|
||
fill_halo_regions!(h) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
where is this h
coming from?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, there should be an
h = ice.model.ice_thickness
before.
it's taking it from the global scope here so it just happened to work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed here #20
This PR implements a few simple ice-ocean examples in the new directory
validation/ice_ocean_model/
. That directory also contains a prototype implementation ofIceOceanModel
, an abstraction for a coupled-ice-ocean model that contains an ocean simulation, ice simulation, and coupling parameterizations.The prototype
IceOceanModel
works on GPUs and implements the "ice bath" parameterization for ice-ocean heat fluxes.Closes #17