[MITgcm-devel] seaice adjoint and EVP
Jinlun Zhang
zhang at apl.washington.edu
Thu May 24 11:58:34 EDT 2007
It is not just over open water, but also in the central arctic. However,
the noise is suppressed with 1s timestep over both open water and pack
ice. So I start to think perhaps nothing is wrong, just needing a small
timestep.
Jinlun
Martin Losch wrote:
> I have a new feeble theory for the noise in the evp solver over open
> ocean:
>
> heff = 0 over open ocean, therefore seaiceMassU/V = 0.
> momentum equation in seaice_evp is discretized (in time) as
> m*duice/dt = -m dphi/dx + tau_air + cd*(uice-uocean) + m*f*vice +
> \nabla\sigma
> m*(uice(n+1)-uice(n))/dt = -m dphi(n)/dx + tau_air(n) - cd*(uice(n+1)-
> uocean(n)) + m*f*vice(n) + \nabla\sigma(n),
> so coriolis is explicit, ice-ocean stress is implicit. if the mass m
> is zero (and zetaMin=0, so that zeta=eta=press = 0 over open ocen)
> this reduces to
> cd*uice(n+1) = tau_air(n) + cd*uocean(N)
> so that uice ist a purely diagnostic quantity and not time stepped.
> cd is a function of uice-uocean at the nth time step, averaged to
> center points and the averaged back to velocity points.
>
> Dimitris, could that be the problem, somehow I don't think so, but
> you can try by putting a minimum seaiceMassU/V in seaice_dynsolver.F,
> say seaiceMassU = max(seaiceMassU,SEAICE_rhoIce*0.05)
>
> Martin
>
> On 22 May 2007, at 18:59, Jinlun Zhang wrote:
>
>> Hi Martin,
>> Yeah, we are sort of stuck, but hey it is very interesting and
>> revealing.
>> I would vote against masking ice velocities over open water because,
>> as mentioned earlier, the ice velocities would be wrong at ice edge
>> and the ice velocity discontinuity at ice edge will get into ocean.
>> (o:. We don't do the masking with LSR solver, perhaps we can avoid
>> doing that with EVP.
>> Jinlun
>>
>> Martin Losch wrote:
>>
>>> Hi Jinlun,
>>> the evp-solver is only in place for the C-grid. I don't have the
>>> time to code the solver for the b-grid now. The b-grid code (for
>>> LSR) is still working, but I have not kept it up to date, so there
>>> may be a few thing different other than the different grids.
>>>
>>> In general I though that the c-grid is perfect for evp as all the
>>> discretizations fall in place naturally. Only for this \delta term
>>> one needs to average from center to corner points and vice versa
>>> (have a look at seaice_calc_strainrates and seaice_evp). However,
>>> there may be issues with the coriolis terms (commonly a problem
>>> with the c-grid).
>>>
>>> Actually, Elizabeth told us that she masks ice velocities over
>>> open water in CICE.
>>>
>>> Now we are a little stuck, aren't we?
>>>
>>> Martin
>>>
>>> PS. I need to be able to reproduce these results myself (I haven't
>>> been able to, yet), maybe I can debug the stuff this way. Via
>>> email etc. it's quite demanding (o:
>>>
>>> On 21 May 2007, at 19:15, Jinlun Zhang wrote:
>>>
>>>> I wouldn't think C-grid is problematic with EVP as we have seen.
>>>> But just to make sure, is it possible to use the original B-grid
>>>> EVP to see if the same things occur? There was a B-grid ice model
>>>> setup in place that may be used for doing B-grid.
>>>> Better not zap out things over open ocean. Otherwise,
>>>> discontinuity may occur and ocean may be screwed up.
>>>> Jinlun
>>>>
>>>>>> Hi Martin,
>>>>>>
>>>>>>> 1. Are these figures all with with zMin = 0?
>>>>>>
>>>>>>
>>>>>>
>>>>> In this case it may be worth turning of individual terms in the
>>>>> rhs of the momentum equations
>>>>> 1. dphiSurf/dx and dphiSurf/dy (in seaice_dynsolver)
>>>>> 2. surface wind stress (taux/y=0 in seaice_get_dynforcing)
>>>>> 3. ice-ocean stress (DWATN in seaice_evp)
>>>>> 4. Coriolis
>>>>> 5. stressDivergence
>>>>> 4 and 5 should be zero over open ocean anyway so I do not see
>>>>> how these terms can lead to the stripes.
>>>>> We should get to the bottom of what is causing these stripes.
>>>>> that way we can probably understand the noise in the ice
>>>>> fields, too.
>>>>>
>>>>>>
>>>>>> Yes, all the figures and results under
>>>>>> http://ecco2.jpl.nasa.gov/data1/arctic/output/tests/
>>>>>> (except for the oldtest subdirectory) are with zMin=0.
>>>>>>
>>>>>>> 2. Do you have an EVP run that does not blow up at all
>>>>>>> (regardless of noise)?
>>>>>>
>>>>>>
>>>>>>
>>>>>> I have not run any of the zMin=0/SEAICEuseFlooding=.true. tests
>>>>>> out for very
>>>>>> long, but I am almost certain that none of these new
>>>>>> integrations will crash,
>>>>>> including the SEAICE_deltaTevp=60.
>>>>>> The crashes had to do with snow accumulation and could happen
>>>>>> to both LSR or to
>>>>>> EVP solutions.
>>>>>
>>>>>
>>>>>
>>>>> That's good news. It mean that we can (in principle) maskRHS
>>>>> flag and not worry about the stripes.
>>>>>
>>>>>>
>>>>>>> 3. What's the convergence criterion for LSR, and how many
>>>>>>> interations do you allow/do? In other words how close is the
>>>>>>> LSR solution to VP?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> LSR_ERROR = 2e-4,
>>>>>> SOLV_MAX_ITERS=1500
>>>>>
>>>>>
>>>>>
>>>>> That's not very much, is it? For an accurate VP solution I would
>>>>> put LSR_ERROR = 1e-7 to 1e-13, right?
>>>>>
>>>>>>
>>>>>>> c. the same is true for the wind-ice/ocean-ice stress terms
>>>>>>> which in involve
>>>>>>> averaging perpendicular to the stripes (unless the turning
>>>>>>> angle is not
>>>>>>> equal to zero, in which case there is also averaging in the
>>>>>>> other directions,
>>>>>>> but you don't do that, do you?).
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> No I use SEAICE_airTurnAngle=SEAICE_waterTurnAngle=0.
>>>>>
>>>>>
>>>>>
>>>>> Good.
>>>>>
>>>>>>
>>>>>>> About question 3 (is it really a VP solution): Could you
>>>>>>> diagnose SIsigI and SIsigII (snapshots!!!! I guess one is
>>>>>>> enough) for all (or some) solutions and
>>>>>>> plot them (plot(SIsigII(:),SIsigI(:),'x')? These should be
>>>>>>> the principle components of sigma normalized by the strength/
>>>>>>> pressure P.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> With SEAICE_dumpFreq, SIGMA1, SIGMA2, and SIGMA12 are diagnosed
>>>>>> by default for
>>>>>> the EVP solutions but not for LSR. Are these the same as
>>>>>> SIsigI and SIsigII?
>>>>>> Figure for SIGMA1, SIGMA2 for EVP solution is here:
>>>>>> http://ecco2.jpl.nasa.gov/data1/arctic/output/tests/figs/
>>>>>> SIGMA2232.ps
>>>>>> Does it look as expected?
>>>>>
>>>>>
>>>>>
>>>>> sigma1/2/12 are not the principle stress components. I have
>>>>> added diagnostics that are called SIsigI and SIsigII, which is
>>>>> what you want. In principle you could computed them yourself
>>>>> (from snapshots):
>>>>> SIsigI = 0.5*(sigma1 + sqrt(sigma2^2 + 4*sigma12^2)/Press
>>>>> SIsigII = 0.5*(sigma1 - sqrt(sigma2^2 + 4*sigma12^2)/Press
>>>>>
>>>>> Press = max(1.e-13,Pstar * HEFF *exp( -20*(1-AREA)));
>>>>>
>>>>> see seaice_do_diags.F (and seaice_dynsolver.F)
>>>>>
>>>>>>
>>>>>>> I am also a little concerned that the LSR and EVP solutions
>>>>>>> look so different
>>>>>>> in the ice-covered area, can that be attributed to that
>>>>>>> different boundary
>>>>>>> conditons? Can you try a run with no slip for the evp solver?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Is LSR no slip by default? How do you specify no slip for evp
>>>>>> solver?
>>>>>
>>>>>
>>>>>
>>>>> LSR is half slip and that's hardwired. I didn't want to bother
>>>>> this the boundary conditions if EVP works, because it's so much
>>>>> simpler to do that in EVP. But now I may have to reconsider
>>>>> this decision.
>>>>> EVP is free slip by default. SEAICE_no_slip = .true. makes it no
>>>>> slip.
>>>>>
>>>>> Martin
>>>>>
>>>>> _______________________________________________
>>>>
More information about the MITgcm-devel
mailing list