[MITgcm-devel] seaice lsr

Martin Losch Martin.Losch at awi.de
Tue Sep 25 15:06:33 EDT 2007


Jinlun is right, of course, the convergence will be slower, but only  
slightly. On a vector machine you gain a lot be full vectorization of  
this iteration. This effect is by far larger than the cost of a fewe  
extra iterations. But I agree, for this reason alone I will put the  
change within ifdefs, and the default is the old code. So no changes  
to the results.

Martin

On 25 Sep 2007, at 18:29, Dimitris Menemenlis wrote:

> Jinlun, thank you for warning.  Martin could we test convergence  
> before replacing.  I can do this as soon as this meeting is over.   
> I think that if you run with debuglevel 3 you will get output on  
> number of lsr iterations.  So maybe best to introduce with cpp flag  
> for time being, possibly to become the default if it does not  
> impact convergence.  D.
>
> Dimitris Menemenlis
> cell: 818-625-6498
>
> -----Original Message-----
>
> From:  Jinlun Zhang <zhang at apl.washington.edu>
> Subj:  Re: [MITgcm-devel] seaice lsr
> Date:  Tue Sep 25, 2007 11:56 am
> Size:  1K
> To:  MITgcm-devel at mitgcm.org
>
> Martin,
> The existing code is for relaxation using updated varaibles as soon as
> possible. If you do the change the code may converge slowly.
> J
>
> Martin Losch wrote:
>
>> Hi there,
>>
>> I have found that the LSR solver is a little inconsistent (which
>> causes it to produce a slight assymetry with a symmetric domain and
>> forcing):
>> the following lines:
>>
>>>           URT(I,J)=FXY(I,J,bi,bj)+AA3
>>>      &          +UVRT1(I,J,bi,bj)*uIce(I,J-1,1,bi,bj)
>>>      &          +UVRT2(I,J,bi,bj)*uIce(I,J+1,1,bi,bj)
>>
>> (and the corresponding ones for the vice equation) within a J-loop
>> cause URT to be computed from the updated uIce(I,J-1,1,bi,bj) and the
>> not yet updated uIce(I,J+1,1,bi,bj) (=uIce(I,J+1,3,bi,bj) at this
>> time). One could replace these lines by:
>>
>>>           URT(I,J)=FXY(I,J,bi,bj)+AA3
>>>      &          +UVRT1(I,J,bi,bj)*uIce(I,J-1,3,bi,bj)
>>>      &          +UVRT2(I,J,bi,bj)*uIce(I,J+1,3,bi,bj)
>>
>> which changes the results (lab_sea fails with cg2d=10), but then the
>> solution is symmetric, when it should be. Also this formulation
>> removes a dependency from the j-loop which impairs vectorization. Can
>> I change that?
>>
>> 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
>
>
>
>
>
>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>
> --- message truncated ---
>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list