Skip to content

Couple tightly ocean and sea ice#54

Draft
simone-silvestri wants to merge 12 commits intomainfrom
ss/new-timestepper
Draft

Couple tightly ocean and sea ice#54
simone-silvestri wants to merge 12 commits intomainfrom
ss/new-timestepper

Conversation

@simone-silvestri
Copy link
Copy Markdown
Member

@simone-silvestri simone-silvestri commented Feb 23, 2026

This PR aims to couple tightly sea ice and ocean in stages rather than full timesteps. It is still a work in progress (I have just checked it works very nicely for the simple example shown in this PR which I will probably remove) because I still need to modify the interface to make sure that the coupling works with all the rest of the infrastructure (for example callbacks in the two specific components)

A video from the example, showing the difference between AB2 + FE with 5 minutes timestep and RK3 + RK3 with per-stage coupling but a 15 minutes timestep (so coupling expenses are equal to the AB2 - FE)

coupling_comparison_sst_sss.mp4

@codecov
Copy link
Copy Markdown

codecov bot commented Feb 23, 2026

Codecov Report

❌ Patch coverage is 7.40741% with 50 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/EarthSystemModels/rk_coupled_ocean_sea_ice.jl 0.00% 41 Missing ⚠️
src/SeaIces/sea_ice_simulation.jl 0.00% 8 Missing ⚠️
.../EarthSystemModels/time_step_earth_system_model.jl 80.00% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@glwagner glwagner marked this pull request as draft February 23, 2026 14:42
@glwagner glwagner marked this pull request as draft February 23, 2026 14:42
@glwagner
Copy link
Copy Markdown
Member

nice

@simone-silvestri
Copy link
Copy Markdown
Member Author

We can use the same strategy also for breeze - ocean coupling when we use an RK3 for both

@glwagner
Copy link
Copy Markdown
Member

We can use the same strategy also for breeze - ocean coupling when we use an RK3 for both

that's already the default, although one wrinkle is we have ssprk3 for the atmosphere. maybe the flavor of rk3 doesn't matter though

@simone-silvestri
Copy link
Copy Markdown
Member Author

Because of a bug, I haven't realized this was just RK3+RK3 vs AB2+FE but the RK3 were not coupled at each stage, just at the end of the timestep (the method was not dispatched upon because EarthSystemModel holds simulations, not models).
I will fix it and try again the test case

@glwagner
Copy link
Copy Markdown
Member

Because of a bug, I haven't realized this was just RK3+RK3 vs AB2+FE but the RK3 were not coupled at each stage, just at the end of the timestep (the method was not dispatched upon because EarthSystemModel holds simulations, not models). I will fix it and try again the test case

interesting, so just using RK3 fixes the noise issue. Maybe another test case will reveal the advantage of stage vs step coupling.

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