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
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.Focn_tracer_advection_mono_tend, where the vertical terms are zero, and repeated in diagnostics after remapping, where these terms may be nonzero.