-
Notifications
You must be signed in to change notification settings - Fork 0
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
Add vertical remap feature #6
Add vertical remap feature #6
Conversation
c6198ed
to
8a26320
Compare
For the baroclinic channel test case, vertical remap solution is very similar to the flux-form vertical advection scheme after 12h, with 3-5% increase in run time on 4 cores: |
379bd73
to
94ba6d9
Compare
2665a0c
to
af336d2
Compare
527084c
to
3e8a3ff
Compare
@cbegeman, would it be helpful if I update |
I changed the base (target) of the PR to |
@xylar Great, thanks! |
3a0ed1f
to
b9acbef
Compare
b9acbef
to
406076e
Compare
For both This suggests future performance work should focus on ppr routines themselves and/or exploring batch inputs to |
@cbegeman, in terms of testing fraction of the runtime use in remapping, the |
406076e
to
3aa9ec5
Compare
Thanks for pointing that out. I ran it for 10 days and remapping now takes about 20% of the run time, consistent with the other test case. |
Following discussion with @dengwirda and @xylar we have decided not to support VLR for RK4. VLR for RK4, implemented here, has demonstrated instabilities after a few timesteps for both |
eb7397b
to
63f448e
Compare
…Project#4988) Align E3SM with fates api 22.1 and api 23. Update the optical parameters in the fates parameter file (https://github.com/ESCOMP/CTSM/releases/tag/ctsm5.1.dev084) and the additional of logic in elmfates_interfaceMod to set the decomposition type via a new decomp_method parameter. [non-BFB] for FATES
d44aa01
to
6e34a3d
Compare
- Add config option to turn remap on/off - Add config option for advection, remap order - Add config option for target grid - Only call vert_transport_top if advection_method is flux-form - Construct opts for remapping using config options
- vertAleTransportTop = 0 so no vertical velocity during momentum solve - Add computation of vertVelocity from lagrangian layerThickness to diagnostics routines
- Add option for WENO slope limiter - Fixup config name for vertical tracer adv order - Add option for remapping every interval number of timesteps - Update namelist entries - Add checks on config options
6e34a3d
to
e30698f
Compare
cee/15.0.0 with GPU MPI buffers can crash in a system lib like this: #4 0x00007fffe159e35b in (anonymous namespace)::do_free_with_callback(void*, void (*)(void*)) [clone .constprop.0] () from /opt/cray/pe/cce/15.0.0/cce/x86_64/lib/libtcmalloc_minimal.so.1 #5 0x00007fffe15a8f16 in tc_free () from /opt/cray/pe/cce/15.0.0/cce/x86_64/lib/libtcmalloc_minimal.so.1 #6 0x00007fffe99c2bcd in _dlerror_run () from /lib64/libdl.so.2 #7 0x00007fffe99c2481 in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2 #8 0x00007fffea7bce42 in _ad_cray_lock_init () from /opt/cray/pe/lib64/libmpi_cray.so.12 #9 0x00007fffed7eb37a in call_init.part () from /lib64/ld-linux-x86-64.so.2 #10 0x00007fffed7eb496 in _dl_init () from /lib64/ld-linux-x86-64.so.2 #11 0x00007fffed7dc58a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2 #12 0x0000000000000001 in ?? () #13 0x00007fffffff42e7 in ?? () #14 0x0000000000000000 in ?? () Work around this by using cee/14.0.3.
This PR adds the option for vertical Lagrangian remapping (VLR). The idea behind VLR is to allow the vertical interfaces between layers to evolve in a Lagrangian fashion, bypassing the Eulerian vertical advection scheme and removing the vertical CFL limit. The layer interfaces are then remapped to a target grid every interval of timesteps. Griffies et al. (2020) provides an overview of VLR.
This development includes the following features:
mpas_ocn_vertical_remap.F
ocn_tracer_advection_mono_tend
, where the vertical terms are zero, and repeated in diagnostics after remapping, where these terms may be nonzero.