[MITgcm-devel] more seaice blues for the adjoint

Jinlun Zhang zhang at apl.washington.edu
Fri Jun 8 08:56:58 EDT 2007


Hi Martin,
Thanks for the test. This definitely proves that it is not dependent on 
grid.
Jinlun

Martin Losch wrote:
> Hi Jinlun,
> I have to correct my previous statement:
> the b-grid code moves with both zmin=0 and zmin = 4e8. I made a 
> mistake in my test: my HEFF was very small, so that the zmin > zeta = 
> P/(2*SEAICE_EPS) and thus zeta was always set to zmin. Now that I have 
> corrected that (use a bigger HEFF), the b-grid code has exactly the 
> same problems as the c-grid code (prior to my fix). It's not grid 
> depend. q.e.d.
>
> Martin
>
> On 8 Jun 2007, at 13:08, Martin Losch wrote:
>
>> In the code:
>> zmax = 2.5e8 * P, and P = Pstar*HEFF*exp(-20*(1-AREA)), so NOT 
>> constant if HEFF and AREA are not constant.
>> I don't get this zmin thing either, I'll check again ...
>>
>> Martin
>>
>> On 8 Jun 2007, at 12:58, Jinlun Zhang wrote:
>>
>>> Martin, I am in Japan, so I catch this email of yours quick.
>>> Good to know B-grid also has this problem. But I thought if the 
>>> motion gets smaller and smaller, then delta approaches zero, and 
>>> zeta would hit maximum, and eventually, everything is constant, thus 
>>> dp/dx is zero. This would not be related to zmin. Am I wrong here?
>>> Jinlun
>>>
>>>> Hi Jinlun,
>>>>
>>>> I check with the b-code and at first I got zero motion!!! But why? 
>>>> the reason is not the grid, but this line:
>>>> zmin = 4e8
>>>> if I set this to
>>>> zmin = 0
>>>> as we have agree a few days/weeks ago, I do get motion.
>>>>
>>>> So it's not the C-grid, but this lower limit for zeta, that makes 
>>>> zeta = constant if delta = 0, and thus P = zeta*2*delt2 = const, so 
>>>> no dP/dx -> no motion. if zmin = 0, then zeta is not constant, 
>>>> neither P and we have motion.
>>>> so if zmin = 0, then I need to do something else to ensure P = 
>>>> constant if delta = 0., eg. P = P * delta/delt2
>>>>
>>>> Martin
>>>>
>>>> On 8 Jun 2007, at 08:38, Jinlun Zhang wrote:
>>>>
>>>>> Hi Martin,
>>>>> Before your fix, is it occurring with both LSR and EVP C-grid 
>>>>> codes? Also, would it be possible for you to try the B-grid that I 
>>>>> put in originally (if it is still one of the options)? It is OK 
>>>>> for not trying if you don't have time. I remember I tested this 
>>>>> thing with B-grid years ago without finding similar problem, but I 
>>>>> am not sure now after so many years without dealing with it again. 
>>>>> I just hope this is not one of the differences between B and C. 
>>>>> Your explanation certainly indicates that this thing does not 
>>>>> depend on grid. But a test on B-grid would clear any residual doubts.
>>>>> Thanks, Jinlun
>>>>>
>>>>>
>>>>> Martin Losch wrote:
>>>>>> Chris,
>>>>>> when there is no strain (in the absence of any forcing), the ice 
>>>>>> should not move, right? Unless you expect it to spread like a 
>>>>>> pile of sand with time, but I don't know what the time scale for 
>>>>>> that would be, very slow.
>>>>>> If delta = 0, we reset it to delta_min, because we have to devide 
>>>>>> by it zeta = press/(2*delta), this effictively makes zeta <= 
>>>>>> zeta_max = press/(2*delta_min), after capping zeta, we recompute 
>>>>>> press_replace = zeta*2*delta, if delta has been replaced by 
>>>>>> delta_min, this give non zero pressure and thus a forcing due to 
>>>>>> internal stress. That's the numerical issue. I am not shure that 
>>>>>> I solved it very well (the adjoint breaks), but this way the ice 
>>>>>> does not move in the absence of forcing.
>>>>>>
>>>>>> Martin
>>>>>> On 7 Jun 2007, at 18:05, chris hill wrote:
>>>>>>
>>>>>>> Martin,
>>>>>>>
>>>>>>>  Quick ice question.
>>>>>>>
>>>>>>> Is it just a numerical issue i.e. is it clear what the 
>>>>>>> underlying equations are, since ice is neither a classical fluid 
>>>>>>> or a classical solid. What time scale does it spread on?
>>>>>>>
>>>>>>> Chris
>>>>>>> Martin Losch wrote:
>>>>>>>> No, but it's a numerical issure. I did not pay any attention to 
>>>>>>>> this before and maybe this was no problem in the original code 
>>>>>>>> that you supplied but if you have zero strain, Delta = 0, and 
>>>>>>>> this is replaced by some Delta_min (SEAICE_EPS in the code) in 
>>>>>>>> order to avoid division by zero (and infinite viscosities). P 
>>>>>>>> however is still non-zero and divergence(stress) end up being 
>>>>>>>> (dP/dx, dP/dy) .NE. 0, so that you have a forcing of down the 
>>>>>>>> slope of P. This does not make sense (why would ice 
>>>>>>>> spontaneously spread?), so that the pressure is replaced by P = 
>>>>>>>> P*Delta/max(Delta,SEAICE_EPS), so that in the (rare) case of no 
>>>>>>>> strain P = zeta = eta = 0 and thus no forcing by stress. Makes 
>>>>>>>> sense to me (and is really only relevant in idealized test 
>>>>>>>> case, just like the spurious motion of sigma coordinates vs. 
>>>>>>>> z-coordinates in ocean models).
>>>>>>>> Hope I did not misunderstand anything here.
>>>>>>>> Martin
>>>>>>>> On 7 Jun 2007, at 13:40, Jinlun Zhang wrote:
>>>>>>>>> Hi Martin,
>>>>>>>>> Would this be due to some kind of finite differencing problem?
>>>>>>>>> Jinlun
>>>>>>>>>
>>>>>>>>> Martin Losch wrote:
>>>>>>>>>> Hi Patrick,
>>>>>>>>>>
>>>>>>>>>> I have found (or rather, was pointed to) a problem with the 
>>>>>>>>>> seaice solvers: The start to move spontaneously (in the 
>>>>>>>>>> absence of forcing), if the sea ice distribution is NOT uniform.
>>>>>>>>>> I have implemented a fix but this will cause problems with 
>>>>>>>>>> the adjoint: I need terms like
>>>>>>>>>> SQRT(deltaC), which used to be 
>>>>>>>>>> SQRT(MAX(deltaC,SEAICE_EPS_SQ)), so that the derivate code 
>>>>>>>>>> will be involve 1/sqrt(deltaC). Should I put this into #ifdefs?
>>>>>>>>>>
>>>>>>>>>> Martin
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> 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
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>
>>> _______________________________________________
>>> 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
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list