[MITgcm-devel] (not so) funny things happen in seaice_lsr and pickups
Jinlun Zhang
zhang at apl.washington.edu
Tue Mar 10 13:36:29 EDT 2009
Martin Losch wrote:
> The question marathon continues ...
> Jinlun, my observation is, that the metric terms cause all the trouble
> (no problems so far in cubed sphere integration of any resolution, nor
> on cartesian grid). I have the suspicion that the symmetry of the
> laplacian operator is broken, because the metric terms are distributed
> unevenly between left and right hand side of the u and v equations. In
> order to ensure the diagonal dominance of the coefficient matrix,
> would it be possible to move all metric terms to the rhs? Just
> wondering ...
Hi Martin, equations governing sea ice physics would be incorrect if
metric terms are moved to rhs. I doubt metric terms would break
symmetry under any conditions (I have not seen that). This is because a
rotation of a grid (or a change of coordinate system) would not change
the properties of a matrix.
>
> BTW, the system seems to be stable when I have a non-zero ZMIN.
Non-zero ZMIN is not right and should not be used. With non-zero ZMIN,
the system is heavily damped. I doubt non-symmetry caused trouble would
be fixed by non-zero ZMIN, it would eventually blow up no matter what
ZMIN is.
Jinlun
>
> Martin
>
> On Mar 9, 2009, at 5:54 PM, Jinlun Zhang wrote:
>
>> Hi Martin,
>>
>> As you said, for B-grid, the value does not matter because of the
>> non-slip bc's. I am not sure about C-grid non-slip bc's. If you need
>> that value at the boundary for C-grid, it seems that your approach
>> probably makes better sense.
>>
>> Jinlun
>>
>> Martin Losch wrote:
>>> Hi again,
>>>
>>> I have another question for Jinlun. I am now quite confident, that I
>>> have found all (serious) problems in the metric terms. However, my
>>> code still blows up. Could the discretization of \eta be a problem?
>>> On Z-points ("bottom left" corner of C-grid cell, on a B-grid this
>>> is where the velocities are), I average eta like this:
>>> DO j=1,sNy+1
>>> DO i=1,sNx+1
>>> etaMeanZ (I,J,bi,bj) =
>>> & ( ETA (I,J ,bi,bj) + ETA (I-1,J ,bi,bj)
>>> & + ETA (I,J-1,bi,bj) + ETA (I-1,J-1,bi,bj) )
>>> & / MAX(1.D0,maskC(I,J, k,bi,bj)+maskC(I-1,J, k,bi,bj)
>>> & + maskC(I,J-1,k,bi,bj)+maskC(I-1,J-1,k,bi,bj) )
>>> ENDDO
>>> ENDDO
>>> In the B-grid code I find this:
>>> DO j=1-Oly+1,sNy+Oly
>>> DO i=1-Olx+1,sNx+Olx
>>> ETAMEAN(I,J,bi,bj) =QUART*(
>>> & ETA(I,J-1,bi,bj) + ETA(I-1,J-1,bi,bj)
>>> & +ETA(I,J ,bi,bj) + ETA(I-1,J ,bi,bj))
>>> ZETAMEAN(I,J,bi,bj)=QUART*(
>>> & ZETA(I,J-1,bi,bj) + ZETA(I-1,J-1,bi,bj)
>>> & +ZETA(I,J ,bi,bj) + ZETA(I-1,J ,bi,bj))
>>> ENDDO
>>> ENDDO
>>> This means that \eta/\zeta on the boundaries are only half as large
>>> as in my C-grid discretization (however, these values may actually
>>> never be used because of the no-slip BCs on the B-grid). So I am
>>> wondering, what the "correct" value of \eta on the boundary is. I
>>> observe, that code with
>>> DO j=1,sNy+1
>>> DO i=1,sNx+1
>>> etaMeanZ (I,J,bi,bj) = 0.25 _d 0 *
>>> & ( ETA (I,J ,bi,bj) + ETA (I-1,J ,bi,bj)
>>> & + ETA (I,J-1,bi,bj) + ETA (I-1,J-1,bi,bj) )
>>> ENDDO
>>> ENDDO
>>> tends to be stable (at least in the shorter test that I made).
>>> Jinlun, what's your opinion on this?
>>>
>>> Martin
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
--
Jinlun Zhang
Polar Science Center, Applied Physics Laboratory
University of Washington, 1013 NE 40th St, Seattle, WA 98105-6698
Phone: (206)-543-5569; Fax: (206)-616-3142
zhang at apl.washington.edu
http://psc.apl.washington.edu/pscweb2002/Staff/zhang/zhang.html
More information about the MITgcm-devel
mailing list