Hello everyone. I am working on an idealized ROMS simulation that performs well when using a GLS mixing scheme, but seems to produce errors when LMD mixing is implemented for the same test case. As an example, at the first time step the relative vorticities for the LMD mixing case in the attached figure appear to have some kind of averaging errors that grow over time (GLS comparison also shown). There are also times at which the depths of the surface boundary layer are positive (I've modified the colorer and chosen a representative time step to show this more easily). Pasted below are the cppdefs terms in my header file. Some of these averaging issues seem to improve if I run the simulation without LMD_RIMIX, but that seems like it would sort of defeat the purpose of comparing the two mixing regimes. I've also tried putting LMD_NONLOCAL, SPLINES_VDIFF, and SPLINES_VVISC back in, but they don't correct the issue either. Any ideas on what may be causing this behavior would be greatly appreciated, thanks!
/*
** Options for the Channel Instability case used for ROMS/MPAS-O comparisons.
**
** Application flag: CHANNEL
** Input script: channel.in
*/
#define ROMS_MODEL
#define UV_ADV
#define UV_COR
#define UV_LOGDRAG
#define UV_VIS2
#define MIX_S_UV
#define DJ_GRADPS
#define TS_DIF2
#define MIX_S_TS
#define SALINITY
#define SOLVE3D
#undef AVERAGES
#undef DIAGNOSTICS_TS
#undef DIAGNOSTICS_UV
#define ANA_GRID
#define ANA_INITIAL
#define ANA_SMFLUX
#define ANA_SRFLUX
#define ANA_STFLUX
#define ANA_SSFLUX
#define ANA_BTFLUX
#define ANA_BSFLUX
#define LMD_MIXING
#define LMD_SHAPIRO
#define LMD_RIMIX
#define LMD_CONVEC
#define LMD_SKPP
#define LMD_BKPP
Difficulties with LMD mixing
Re: Difficulties with LMD mixing
What happens without LMD_BKPP?
Re: Difficulties with LMD mixing
I tried taking out LMD_SKPP and LMD_BKPP, if I recall correctly it wouldn't run at all without them
Re: Difficulties with LMD mixing
I typically have LMD_SKPP and LMD_NON_LOCAL, not the LMD_BKPP.
Re: Difficulties with LMD mixing
Thanks Kate. I tried a second comparison (rightmost panel in figure) without LMD_BKPP, but appear to be getting a similar error as before. Also below is the list of cppdefs for this new test case.
/*
** Options for the Channel Instability case used for ROMS/MPAS-O comparisons.
**
** Application flag: CHANNEL
** Input script: channel.in
*/
#define ROMS_MODEL
#define UV_ADV
#define UV_COR
#define UV_LOGDRAG
#define UV_VIS2
#define MIX_S_UV
#define DJ_GRADPS
#define TS_DIF2
#define MIX_S_TS
#define SALINITY
#define SOLVE3D
#undef AVERAGES
#undef DIAGNOSTICS_TS
#undef DIAGNOSTICS_UV
#define ANA_GRID
#define ANA_INITIAL
#define ANA_SMFLUX
#define ANA_SRFLUX
#define ANA_STFLUX
#define ANA_SSFLUX
#define ANA_BTFLUX
#define ANA_BSFLUX
#define LMD_MIXING
#define LMD_SHAPIRO
#define LMD_RIMIX
#define LMD_CONVEC
#define LMD_NONLOCAL
#define LMD_SKPP
I've also tried taking out LMD_RIMIX before using the same setup as above, and while it looks okay to start (ignoring all the issues in removing this), it eventually produces these weird looking rings shown below. Not sure if that's helpful in diagnosing this issue.
/*
** Options for the Channel Instability case used for ROMS/MPAS-O comparisons.
**
** Application flag: CHANNEL
** Input script: channel.in
*/
#define ROMS_MODEL
#define UV_ADV
#define UV_COR
#define UV_LOGDRAG
#define UV_VIS2
#define MIX_S_UV
#define DJ_GRADPS
#define TS_DIF2
#define MIX_S_TS
#define SALINITY
#define SOLVE3D
#undef AVERAGES
#undef DIAGNOSTICS_TS
#undef DIAGNOSTICS_UV
#define ANA_GRID
#define ANA_INITIAL
#define ANA_SMFLUX
#define ANA_SRFLUX
#define ANA_STFLUX
#define ANA_SSFLUX
#define ANA_BTFLUX
#define ANA_BSFLUX
#define LMD_MIXING
#define LMD_SHAPIRO
#define LMD_RIMIX
#define LMD_CONVEC
#define LMD_NONLOCAL
#define LMD_SKPP
I've also tried taking out LMD_RIMIX before using the same setup as above, and while it looks okay to start (ignoring all the issues in removing this), it eventually produces these weird looking rings shown below. Not sure if that's helpful in diagnosing this issue.