<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hi Flynn,<div><br></div><div>I am no expert at this, but I think the RBCS solution is probably the best option as it removes the unphysical “hard wall” at the poles.</div><div><br></div><div>There is code to specify 3D (background) diffusivity coefficients (CPP_OPTIONS.h) (but not viscosity for some reason). This may not help you but you could use this code as a template for you 3D viscosity option. There is code for specifying 3D horizonal viscosity coefficients (see MOM_COMMON_OPTIONS.h)</div><div><br></div><div>You could try to use LEITH viscosity, but I don’t see how that would damp anyting near these spurious boundaries.</div><div><br></div><div>Martin<br><div><br><blockquote type="cite"><div>On 7. Mar 2023, at 17:23, Flynn Ames <f.ames@pgr.reading.ac.uk> wrote:</div><br class="Apple-interchange-newline"><div><meta charset="UTF-8"><div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);"><span class="x_elementToProof ContentPasted0" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);">Dear MITgcm Community,</span></div><div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);"><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><br class="ContentPasted0"></div><div class="x_elementToProof ContentPasted0" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);">Hello - I've been developing a 2D (latitude-depth) model setup for the MITgcm that extends pole to pole, for the subsurface ocean of Enceladus. <span class="ContentPasted0" style="margin: 0px;">I've been running into numerical stability issues at the poles. I have some ideas of how to overcome the problem but I'm hoping to get some thoughts on if any of them are particularly bad/good ideas, or anyone else has an alternative idea?</span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span style="margin: 0px;"><br class="ContentPasted0"></span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span class="ContentPasted0" style="margin: 0px;">The numerical instability appears to arise from </span><span class="ContentPasted0" style="margin: 0px;">a 'rebound effect' of sorts where, owing to the 2D domain, the flow upon reaching the poles has nowhere to go and rebounds off of it. These circulations are always present but when </span><span class="ContentPasted0" style="margin: 0px;">the vertical viscosity is low (and for some reason, when along isopycnal mixing is considered), these anomalous circulations intensify and eventually blow up. </span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span class="ContentPasted0" style="margin: 0px;">I've found that increasing the vertical viscosity can prevent the solution blowing up, but this is not ideal because it removes interesting features of the ocean circulation that I want to maintain and leads to an unreasonably high Prandtl ratio in the vertical. Similarly, I would like to consider the role of along-isopycnal mixing. Reducing the timestep dramatically is also not ideal as these simulations are computationally expensive owing to long equilibration times.</span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span style="margin: 0px;"><br class="ContentPasted0"></span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span style="margin: 0px;"><span class="x_ContentPasted0 ContentPasted0" style="margin: 0px; background-color: rgb(255, 255, 255); display: inline !important;">It's worth noting these anomalous circulations don't appear to alter the mean solution when running stably. I've attached snapshots of meridional velocity (hopefully it sends!), showing what these anomalous circulations look like when the model runs stably (with a reasonable vertical viscosity BUT no consideration of along-isopycnal mixing). My thinking is that these circulations are likely unphysical, and so </span></span><span class="x_ContentPasted1 ContentPasted0" style="margin: 0px; background-color: rgb(255, 255, 255); display: inline !important;">some of the below approaches<span class="ContentPasted0"> </span></span><span class="ContentPasted0" style="margin: 0px;">(NOTE: not ideal solutions) for overcoming the issue could potentially be justified (?). They are as follows:</span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span style="margin: 0px;"><br class="ContentPasted0"></span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span class="ContentPasted0" style="margin: 0px;">1.)<b class="ContentPasted0"><span class="ContentPasted0"> </span>Try masking the grid cell directly over each pole with land and setting NO_SLIP_SIDES=.TRUE.</b><span class="ContentPasted0"> </span>This may damp the anomalous circulations, but comes at the cost of losing part of the model domain </span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span class="ContentPasted0" style="margin: 0px;">2.)<span class="ContentPasted0"> </span><b class="ContentPasted0">Use the RBCS package to create a sponge layer of sorts to relax meridional velocity to zero at the poles</b><span class="ContentPasted0"> </span>(with a few grid points next to the poles having weaker restoring). This would let me keep the whole domain. I don't think it should affect the mean solution significantly, but I wonder if this is an acceptable thing to do?</span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span class="ContentPasted0" style="margin: 0px;">3.) Try implement a feature in the MITgcm that would let me<span class="ContentPasted0"> </span><b class="ContentPasted0">specify a meridional profile for vertical viscosity</b>, so I can keep it lower over most the domain, but increase it where numerically necessary (i.e., at the poles). This could let me hold onto features I want to maintain over most the domain. But once again is this an acceptable thing to do?</span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span class="ContentPasted0" style="margin: 0px;">4.) An idea my project supervisor suggested is<b class="ContentPasted0"><span class="ContentPasted0"> </span>applying higher viscosity on divergent flows vs convergent flows</b>. This could damp these anomalous circulations but would apply over the whole domain so could affect the mean solution.</span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span style="margin: 0px;"><br class="ContentPasted0"></span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span class="ContentPasted0" style="margin: 0px;">I'd be very grateful for any thoughts or suggestions. If anyone has any questions about this, I can definitely answer them!</span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span style="margin: 0px;"><br class="ContentPasted0"></span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span class="ContentPasted0" style="margin: 0px;">Cheers,</span></div><div class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"><span class="ContentPasted0" style="margin: 0px;">Flynn</span></div><span class="x_elementToProof" style="font-size: 12pt; margin: 0px; background-color: rgb(255, 255, 255);"></span><br></div><span id="cid:4EFB61FA-1F9D-4318-8BF0-78198F25941D"><Vvel_snapshots_anom_circ.gif></span><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">MITgcm-support mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><a href="mailto:MITgcm-support@mitgcm.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">MITgcm-support@mitgcm.org</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><a href="http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support</a></div></blockquote></div><br></div></body></html>