Port sphere transport time-varying prescribed velocity fields#365
Port sphere transport time-varying prescribed velocity fields#365cbegeman wants to merge 9 commits intoE3SM-Project:developfrom
Conversation
| (Kokkos::pow(sin(lon_p), 2) * | ||
| sin(2.0 * LatEdge(IEdge)) * | ||
| cos(Pi * TSim / Tau) + | ||
| 2.0 * Pi * cos(LatEdge(IEdge))); |
There was a problem hiding this comment.
@cbegeman
I see in MPAS-Ocean:
u = (1/twelve_days)*(10*(sin(lon_p)**2)*sin(2*lat)*cost + two_pi*coslat)
I think the factor of 10 was moved slightly. Might make a difference in time step stability if the change resulted in a larger velocity.
There was a problem hiding this comment.
@overfelt Thanks for pointing that out! I'll fix and retest
There was a problem hiding this comment.
@overfelt That fix seems to have resolved at least the stability issues with the divergent velocity case (top) but not the non-divergent case (bottom). I tried reducing the time step to 1s per km horizontal resolution. Only the rotation_2d has convergence with space and time refinement. Can I delegate the debugging to you?
There was a problem hiding this comment.
@cbegeman I'll take a look. Maybe I'll get lucky and find a difference with mpas-ocean. Maybe......
There was a problem hiding this comment.
…the state at timeLevel1
589689d to
852572a
Compare
| const R8 u = (1.0 / Tau) * | ||
| (-5.0 * Kokkos::pow(sin(lon_p / 2), 2) * | ||
| sin(2.0 * LatEdge(IEdge)) * | ||
| Kokkos::pow(cos(LatEdge(IEdge)), 2) * | ||
| cos(Pi * TSim / Tau) + | ||
| 2.0 * Pi * cos(LatEdge(IEdge))); | ||
| const R8 v = ((2.5 / Tau) * | ||
| sin(lon_p) * | ||
| Kokkos::pow(cos(LatEdge(IEdge)), 3) * | ||
| cos(Pi * TSim / Tau)); | ||
| const R8 normalVel = REarth * ( | ||
| u * cos(AngleEdge(IEdge)) + v * sin(AngleEdge(IEdge))); |
There was a problem hiding this comment.
I haven't been able to track down the reason for the discrepancy between MPAS-O's velocity field (top) and Omega's velocity field (bottom) for the divergent case. I need to pivot to other Omega work so @overfelt any time you have to look into this would be much appreciated!




It should be possible to reproduce these results using E3SM-Project/polaris#500. Let me know if you have any trouble






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
Testingwith the following:have been run on and indicate that are all passing.
has passed, using the Polaris
e3sm_submodules/Omegabaseline-pfor both the baseline (Polarise3sm_submodules/Omega) and the PR build