[MITgcm-devel] implicit formulation for bottom (and side) drag?
Jean-Michel Campin
jmc at mit.edu
Tue Aug 30 11:22:41 EDT 2016
Hi Dan and Martin,
I have a problem regarding naming:
1) I think that if one term is explicit, it shoud not be called implicit.
This is a source of confusion that will even get worse when
the real implicit treatment of bottom drag is implemented (not allowed with current
solve_for_pressure but plans are to change it to allow to try such implicit treatment).
2) The other thing is that I currently don't see a modified side-drag formulation in
this contrib dir: http://mitgcm.org/viewvc/MITgcm/MITgcm_contrib/dgoldberg/impl_drag/
and since we have a clear distinction between bottom drag and side drag, I think it
would be better to keep it for the modified bottom drag term you propose, with a
name that does not contain "SIDEDRAG" but only BOTTOMDRAG.
Cheers,
Jean-Michel
On Tue, Aug 30, 2016 at 04:49:22PM +0200, Martin Losch wrote:
> Hi Dan,
>
> So far the drag is fully explicit (AFAIK).
> I like your suggestion. I would actually make this ???more invasive??? (if it does not change results): remove all
>
> #ifndef IMPLICIT_BOTTOMSIDEDRAG
> & * uFld(i,j)
> #endif
>
> and have an extra loop
>
> #ifdef ALLOW_IMPLICIT_BOTTOMSIDEDRAG
> IF ( useImplictBottomSideDrag ) THEN
> DO j=1-OLy+1,sNy+OLy-1
> DO i=1-OLx,sNx+OLx-1
> uDragTerms(i,j) = uDragTerms(i,j)*uFld(i,j) /
> & (1. - deltaTmom*uDragTerms(i,j))
> ENDDO
> ENDDO
> ELSE
> #else
> IF (.TRUE.)
> #endif
> DO j=1-OLy+1,sNy+OLy-1
> DO i=1-OLx,sNx+OLx-1
> uDragTerms(i,j) = uDragTerms(i,j)*uFld(i,j)
> ENDDO
> ENDDO
> ENDIF
>
> It would be more in-line with the general procedure (1) enable code with CPP flag, (2) turn it on with runtime flag. (1) is necessary to hide it from TAF/OpenAD if it create recomputations (division by active variable).
>
> Martin
>
>
> > On 18 Jul 2016, at 11:32, Daniel Goldberg <dngoldberg at gmail.com> wrote:
> >
> > Hi All,
> >
> > I am experimenting with some very small hFacMin values and experiencing instabilities as a result.
> >
> > Is it correct that there is no implicit formulation for bottom drag? If this is true, please see http://mitgcm.org/viewvc/MITgcm/MITgcm_contrib/dgoldberg/impl_drag/
> >
> > The change is not invasive (and hidden with a CPP directive.) The drag formulations take the form
> > gU -= F(u,v) * u
> > and i replace by
> > gU -= F(u,v) / (1 + deltaTmom * F(u,v) ) * u
> > which is not quite implicit but will help to stabilize when drag terms are high (e.g. when hFacW is small) and will hopefully not affect things too much when they are small.
> >
> > If not I wonder if anyone has any thoughts/objections on this modification to allow for such a thing? In addition, it seems something similar can be done for side drag if biharmonic horizontal viscosity is not used?
> >
> > Many thanks
> > Dan
> >
> >
> >
> >
> > --
> >
> > Daniel Goldberg, PhD
> > Lecturer in Glaciology
> > School of Geosciences, University of Edinburgh
> > Geography Building, Drummond Street, Edinburgh EH8 9XP
> >
> >
> > em: Dan.Goldberg at ed.ac.uk
> > web: http://ocean.mit.edu/~dgoldberg
> > _______________________________________________
> > MITgcm-devel mailing list
> > MITgcm-devel at mitgcm.org
> > http://mitgcm.org/mailman/listinfo/mitgcm-devel
>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
More information about the MITgcm-devel
mailing list