{"action":"created","issue":{"url":"https://api.github.com/repos/NOAA-GFDL/MOM6/issues/230","labels_url":"https://api.github.com/repos/NOAA-GFDL/MOM6/issues/230/labels{/name}","comments_url":"https://api.github.com/repos/NOAA-GFDL/MOM6/issues/230/comments","events_url":"https://api.github.com/repos/NOAA-GFDL/MOM6/issues/230/events","html_url":"https://github.com/NOAA-GFDL/MOM6/issues/230","id":109851683,"number":230,"title":"No slip boundary conditions not being implemented","user":{"login":"suyash309","id":13039369,"avatar_url":"https://avatars.githubusercontent.com/u/13039369?v=3","gravatar_id":"","url":"https://api.github.com/users/suyash309","html_url":"https://github.com/suyash309","followers_url":"https://api.github.com/users/suyash309/followers","following_url":"https://api.github.com/users/suyash309/following{/other_user}","gists_url":"https://api.github.com/users/suyash309/gists{/gist_id}","starred_url":"https://api.github.com/users/suyash309/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/suyash309/subscriptions","organizations_url":"https://api.github.com/users/suyash309/orgs","repos_url":"https://api.github.com/users/suyash309/repos","events_url":"https://api.github.com/users/suyash309/events{/privacy}","received_events_url":"https://api.github.com/users/suyash309/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":13,"created_at":"2015-10-05T17:57:13Z","updated_at":"2015-10-09T01:55:01Z","closed_at":null,"body":"We are running a zonally re-entrant setup on a spherical grid forced by restoring buoyancy at the surface. It seems that the model is not conserving zonal angular momemtum. We have `NOSLIP = True` in the MOM_input file. But when we look at the output, the model seems to have free slip turned on instead. This is crucial because any numerically generated spurious angular momentum is expected to be dissipated by friction at the boundaries. We believe this is not happening because of free slip condition.\r\n\r\nThe documentation does say that implementation of no slip condition is not as clean as free slip. So I'm wondering if the implementation of no slip conditions still not complete. Or is there something we might be missing from our setup? Let me know if you need to take a closer look at our setup."},"comment":{"url":"https://api.github.com/repos/NOAA-GFDL/MOM6/issues/comments/146735953","html_url":"https://github.com/NOAA-GFDL/MOM6/issues/230#issuecomment-146735953","issue_url":"https://api.github.com/repos/NOAA-GFDL/MOM6/issues/230","id":146735953,"user":{"login":"StephenGriffies","id":2120347,"avatar_url":"https://avatars.githubusercontent.com/u/2120347?v=3","gravatar_id":"","url":"https://api.github.com/users/StephenGriffies","html_url":"https://github.com/StephenGriffies","followers_url":"https://api.github.com/users/StephenGriffies/followers","following_url":"https://api.github.com/users/StephenGriffies/following{/other_user}","gists_url":"https://api.github.com/users/StephenGriffies/gists{/gist_id}","starred_url":"https://api.github.com/users/StephenGriffies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StephenGriffies/subscriptions","organizations_url":"https://api.github.com/users/StephenGriffies/orgs","repos_url":"https://api.github.com/users/StephenGriffies/repos","events_url":"https://api.github.com/users/StephenGriffies/events{/privacy}","received_events_url":"https://api.github.com/users/StephenGriffies/received_events","type":"User","site_admin":false},"created_at":"2015-10-09T01:55:01Z","updated_at":"2015-10-09T01:55:01Z","body":"Hi,\n\nI am only vaguely following the stencil details.  But the discussion of\nspurious momentum sources makes me ask the following, perhaps off-the-mark\nquestions, but wishing to be sure we are passing the \"laugh test\".\n\nWith flat isopycnals and no momentum or buoyancy forcing at the ocean\nsurface, does MOM6 keep the flow static if there is a vertical wall?  What\nabout sloping walls?  Do answers to these questions depend on whether\nfree-slip, no-slip, bottom drag, etc?\n\nSeems that the physically correct behaviour is static flow with horizontal\nisopycnals will stay static, regardless the frictional boundary\nconditions.  Capisce?\n\nSteve\n\n\n\nOn Thu, Oct 8, 2015 at 5:30 PM, Robert Hallberg <notifications@github.com>\nwrote:\n\n>\n>\n>\n>\n>\n> Hi Christopher and Suyash,\n>\n>   Yes, you are absolutely right that the coastal lateral stresses\n> probably are being zeroed out in your idealized test case, depending\n> on how the layer thicknesses are being set in the halo points on\n> land.\n>\n>   This has been a good discussion, that others might find helpful.\n> I originally encoded the no-slip boundary conditions, so perhaps I\n> can comment on a number of issues that have arisen in this\n> conversation thread.\n>\n>   1) MOM6 is written with the intention that it conserves angular\n> momentum pretty well. For example, conservation of angular momentum\n> dictates the structure of the lateral stress tensor calculations in\n> MOM6. However, a quadratic or linear bottom drag term or flow around\n> bathymetric features can be effective ways to extract angular\n> momentum from the solid earth if there is any near-bottom flow (as\n> is usually the case). However I do not think that we have carefully\n> examined this in all possible cases, so if there is clear evidence\n> that this is not the case, we would like to have that drawn to our\n> intention.  (The \"pretty well\" has to do with the deliberate use of\n> different definitions of the layer thickness at velocity points\n> depending on the flow direction and speed and relative thicknesses\n> of adjacent points, but that is a very long a detailed technical\n> discussion, much of which will appear in the MOM6 documentation\n> paper that we are writing.\n>\n>   2) The no-slip boundary conditions appear in the code in two\n> places - in the estimate of relative vorticity at boundaries, and in\n> the estimate of the shears at the boundaries (as determined by a 2-d\n> land-mask). On a C-grid they do not dictate that the tangential\n> velocity is actually 0 at any explicitly modeled location.\n>\n>   3) The ocean has no vertical sides. Density surfaces end where\n> they intersect the (usually sloping) bottom or the free surface. To\n> conserve angular momentum, we write the horizontal viscosity term on\n> a C-grid as\n>   du / dt = 1/h_u Div([h_q K_q, h_h K_h] Grad u)\n> where u is the velocity, h_u is an estimate of the layer thickness\n> at velocity points, h_q is an estimate of the thickness at vorticity\n> points, h_h is the thickness at thickness points, and [K_h, K_q] are\n> the Laplacian viscosities at the thickness and vorticity points.\n> Everything except for h_q and h_u are well defined from 2nd order\n> staggered discretizations or the C-grid variables themselves.\n> Conservation of angular momentum requires that the same h_q appear\n> in the u- and v- equations, and we have chosen to use simple\n> arithmetic mean thicknesses for h_u in this term. Ensuring a finite\n> acceleration when one or more of these thicknesses at velocity\n> points go to 0 requires that the h_q also go to 0 in these\n> circumstances. Therefore, we use the harmonic mean of the harmonic\n> mean of the 2 values of h_u and harmonic mean of the 2 values of h_v\n> (see line ~466 of MOM_hor_visc.F90, which starts hq = ...).  The\n> harmonic mean of A and B is 2 A B / (A + B), and it has the nice\n> property that it is a second order accurate average of A and B, but\n> goes to 2 A when A << B.  This works well, but we do not\n> currently apply land masks, and setting h over land to 0 has the\n> effect of setting h_q at coastlines to 0, and disabling the fluxes\n> with a no-slip boundary condition.\n>\n>  4) For the most part, in MOM6 we implement strong \"lateral\" drag\n> via a vertical boundary condition with the CHANNEL_DRAG scheme,\n> which calculates the bottom drag on a cell that partially intersects\n> a sloping bottom.  This seems like the right approach for realistic\n> simulations, but it obviously is not doing what we would like for\n> idealized vertical-walled oceans.\n>\n>  5) Properly implementing a no-slip boundary condition will require\n> changing the definition of h_q at coastal points using the (2-d)\n> land-sea masks to determine when to replace the thicknesses of\n> masked velocity points with values that are temporarily extrapolated\n> from unmasked neighbors. This should work well enough for straight\n> or convex coastlines, but will introduce some (probably acceptable)\n> cross-contamination of u- and v- thicknesses at concave corners in\n> coastlines.  Once we have written and tested this code modification,\n> we will be closing out this issue.\n>\n>   Hopefully all this is helpful!\n>\n>   - Bob Hallberg\n>\n> p.s., The BT_STRONG_DRAG only pertains to bottom drag was a red\n> herring in this case.\n>\n>\n> On 10/07/2015 11:59 AM, Christopher L. Pitt Wolfe wrote:\n>\n> The problem is the jet. We only specify buoyancy\n> forcing at the surface and southern sponge and forcing and\n> sponges are zonally uniform, so there should be no source of\n> zonal momentum. Therefore the jet is not there because of the\n> forcing and there is no incompatibility between the forcing and\n> boundary condition. Even if the jet were formed by some\n> turbulent inverse cascade, the tangential flow should go to zero\n> at the boundary due to no slip. What we see, however, is that\n> the normal derivative of the tangential velocity goes to zero,\n> suggesting that the model is giving us free-slip boundary\n> conditions even though we asked for no-slip boundary conditions.\n> —\n> Reply to this email directly or view\n> it on GitHub.\n>\n> —\n> Reply to this email directly or view it on GitHub\n> <https://github.com/NOAA-GFDL/MOM6/issues/230#issuecomment-146691422>.\n>\n\n\n\n-- \nDr. Stephen M. Griffies\nNOAA Geophysical Fluid Dynamics Lab\n201 Forrestal Road\nPrinceton, NJ 08542\nUSA\n"}}