Skip to content

Port sphere transport time-varying prescribed velocity fields#365

Open
cbegeman wants to merge 11 commits intoE3SM-Project:developfrom
cbegeman:omega/port-sphere-transport
Open

Port sphere transport time-varying prescribed velocity fields#365
cbegeman wants to merge 11 commits intoE3SM-Project:developfrom
cbegeman:omega/port-sphere-transport

Conversation

@cbegeman
Copy link
Copy Markdown

@cbegeman cbegeman commented Mar 17, 2026

This PR ports time-varying prescribed velocity fields for the sphere transport cases:

and provides an option for the constant prescribed velocity field in the sphere transport case:

Checklist

  • [N/A] Documentation:
  • Linting
  • Building
    • CMake build does not produce any new warnings from changes in this PR
  • Testing
    • Add a comment to the PR titled Testing with the following:
      • Which machines CTest unit tests
        have been run on and indicate that are all passing.
      • The Polaris omega_pr test suite
        has passed, using the Polaris e3sm_submodules/Omega baseline
      • Document machine(s), compiler(s), and the build path(s) used for -p for both the baseline (Polaris e3sm_submodules/Omega) and the PR build
      • Indicate "All tests passed" or document failing tests
      • Document testing used to verify the changes including any tests that are added/modified/impacted.
      • [N/A] Performance related PRs: Please include a relevant PACE experiment link documenting performance before and after.
    • [N/A] New tests:
  • Stealth Features
    • [N/A] If any stealth features are included in the PR, please confirm that they have been documented.

Comment thread components/omega/src/timeStepping/TimeStepper.cpp Outdated
@cbegeman cbegeman force-pushed the omega/port-sphere-transport branch from 589689d to 852572a Compare April 8, 2026 16:59
Comment thread components/omega/src/timeStepping/TimeStepper.cpp Outdated
@cbegeman
Copy link
Copy Markdown
Author

@overfelt Good catch! Thanks for investigating. Let me know when it's ready for me to retest.

@hyungyukang
Copy link
Copy Markdown

hyungyukang commented Apr 28, 2026

@cbegeman, @overfelt , As we discussed in yesterday’s meeting, I looked over this PR and made a few RK4-related changes in Omega.

I think the results are now correct. Omega and MPAS-O show the same convergence rate in the divergent_2d test when using 3rd-order horizontal tracer advection (tracer FCT disabled):
image

I will commit the changes once I confirm them with additional tests.

@hyungyukang
Copy link
Copy Markdown

nondivergent_2d test also works, but the convergence rates differ slightly, with 1.963 in Omega and 1.953 in MPAS-O.

image

@cbegeman
Copy link
Copy Markdown
Author

@hyungyukang That's great news! Can you link to the PR that has those RK4 changes when you post it (assuming it's not #392)?

@cbegeman cbegeman requested a review from hyungyukang April 28, 2026 19:40
@cbegeman cbegeman marked this pull request as ready for review April 28, 2026 19:40
@cbegeman
Copy link
Copy Markdown
Author

@hyungyukang I added you as a reviewer to this PR in case you noticed anything as you've tested it.

@cbegeman cbegeman added enhancement New feature or request Omega Polaris Issues or pull requests related to Polaris support labels Apr 28, 2026
@hyungyukang
Copy link
Copy Markdown

@hyungyukang That's great news! Can you link to the PR that has those RK4 changes when you post it (assuming it's not #392)?

Sure, I will. Would it be okay for me to push the code directly to your branch omega/port-sphere-transport, or would you prefer that I create a separate branch from yours and merge it later?

@cbegeman
Copy link
Copy Markdown
Author

@hyungyukang Hmm, I think it's likely that your changes are fairly unrelated to this PR so it might make more sense to get them in first unless you're concerned about having a good way to test those changes.

@cbegeman cbegeman force-pushed the omega/port-sphere-transport branch from 01cac44 to 93dc58e Compare April 28, 2026 20:38
@hyungyukang
Copy link
Copy Markdown

@cbegeman , the changes I made are based on this PR. Here's the branch (https://github.com/hyungyukang/Omega/tree/omega/port-sphere-transport-timestepping-fix)

And here is the comparison between your omega/port-sphere-transport and my fix:
Comp: cbegeman/port-sphere-transport VS hyungyukang/port-sphere-transport-timestepping-fix

If you prefer, I can open a PR against your repo to merge these changes, since your branch is the base.

@cbegeman
Copy link
Copy Markdown
Author

cbegeman commented Apr 29, 2026

@hyungyukang That commit 0552d59 does seem like it belongs with this PR. Go ahead and push it or let me know if you have trouble and I can cherry-pick it.

Note that I have rebased this branch onto develop recently so just make sure that you rebase your branch onto this one

- Updated the location and time information for prescribeState
  in the time steppers.
@hyungyukang
Copy link
Copy Markdown

@cbegeman , I’ve pushed the changes directly to this PR and reran the test with divergent_2d. The results look the same as those shown in the comment above. Are there any other tests you would recommend trying besides divergent_2d and nondivergent_2d?

@cbegeman
Copy link
Copy Markdown
Author

@hyungyukang This PR also includes this test: https://docs.e3sm.org/polaris/main/users_guide/ocean/tasks/correlated_tracers_2d.html. I expect that it may not produce good results without FCT but we should try it anyhow. I'm running these tests myself as well.

@cbegeman
Copy link
Copy Markdown
Author

cbegeman commented Apr 30, 2026

I successfully ran this branch with the sphere_transport_with_viz suite from E3SM-Project/polaris#500

rotation_2d
image

divergent_2d
image

nondivergent_2d
image

correlated_tracers_2d
image

@cbegeman
Copy link
Copy Markdown
Author

cbegeman commented May 1, 2026

For all MPAS-O results without FCT, the convergence rates for tracer1 for each case were the same as or worse than Omega, which is satisfactory.

The overshoots for the correlated_tracers_2d case were also similar (Omega shown):
image

There is somewhat different behavior for the filament preservation diagnostic (nondivergent_2d, https://gmd.copernicus.org/articles/5/887/2012/gmd-5-887-2012.pdf), generally indicating that Omega is doing better than MPAS-O with FCT (values closer to the 1-line) (Omega top, mpas-o bottom):
image
image

@cbegeman
Copy link
Copy Markdown
Author

cbegeman commented May 4, 2026

Testing

All CTests pass on pm, cpu. No new CTests were added.
The Polaris Omega PR suite passes and is BFB with main + Omega submodule with the exception of the rotation_2d which is expected to be non-BFB along with all other sphere_transport tests.

### Polaris `omega_pr` suite
- Baseline workdir: `//pscratch/sd/c/cbegeman/polaris-scratch/main-omega-develop-20260504/`
- Baseline build: `/pscratch/sd/c/cbegeman/polaris-scratch/main-omega-develop-20260504/build`
- PR build: `/pscratch/sd/c/cbegeman/polaris-scratch/spheretransport-omega-prescribe-20260429/build`
- PR workdir: `/pscratch/sd/c/cbegeman/polaris-scratch/spheretransport-omega-prescribe-20260429`
- Machine: `pm-cpu`
- Compiler: `gnu`
- Build type: `Release`
- Log: not found
- Result:
  - Diffs (2 of 10):
    - `ocean/spherical/qu/rotation_2d`
    -  `ocean/spherical/icos/rotation_2d`

@cbegeman
Copy link
Copy Markdown
Author

cbegeman commented May 4, 2026

@hyungyukang and @overfelt Can you review this PR or let me know if you will be unable to review this week? Thanks so much!

@hyungyukang
Copy link
Copy Markdown

@cbegeman , thanks for the results! I will finish by this Thursday.

@cbegeman
Copy link
Copy Markdown
Author

cbegeman commented May 5, 2026

@overfelt Thank you for reviewing and your help debugging!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Omega Polaris Issues or pull requests related to Polaris support

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants