[MITgcm-support] sponge layer

David Wang dwang at ldeo.columbia.edu
Thu Dec 15 09:56:18 EST 2005


Hi Patrick,

Yes, that's what I need. Outside the relaxation strips, the relaxation 
coefficient 1/tau(i,j,k) is zero; within them, 1/tau(i,j,k) increases 
(linearly) as approaching model boundaries...

Thanks, D.W.

Patrick Heimbach wrote:

>David,
>
>the 3-dim. relaxation code checked in a few days ago
>is independent of the obcs code.
>
>My understanding is, this code would come in handy for what you
>need, if you could use a spatially varying relax. constant, 
>since it would enable you to mimic an extended sponge layer 
>(not just relaxed to a 2-d slice, but to an extended 3-d strip),
>and suppress relaxation where tau(i,j,k) is zero
>(the checked-in code does allow for interpolation in time).
>Is this correct?
>Well, if so, should be easy to do.
>
>-Patrick
> 
>
>
>On Wed, 2005-12-14 at 18:10, David Wang wrote:
>  
>
>>Matt,
>>
>>I might not use the exactly correct terminology (so that confused Lex...).
>>
>>Okay, I need that within some width near a domain boundary there will be 
>>an extra relaxation term for temperature tendency equation, which is
>>
>>	-(Tmodel - Tstar)/\tau
>>
>>where Tmodel is the model temperature and Tstar is some temperature 
>>climatology interpolated onto the right time stamp. \tau is the function 
>>of the distance from the boundary. I think this treatment is often 
>>employed in tropical ocean modeling.
>>
>>(Lex, this is so-call "relaxation", which is essentially a Newtonian 
>>damping towards some prescribed values, Tstar)
>>
>>While in the current obcs code, there is such a term as above, but Tstar 
>>is calculated as the linear combination of model temperature and 
>>prescribed boundary temperature:
>>
>>           trelax (i.e., Tstar) =(
>>      &      float(spongeThickness-jsl)*OBNt(i,kLev,bi,bj)
>>      &    + float(jsl)*theta(i,j,kLev,bi,bj) )
>>      &    / float(spongeThickness)
>>
>>I hope I'm saying more clearly than I was...
>>
>>Thanks, D.W.
>>
>>Matthew Mazloff wrote:
>>    
>>
>>>Hi David,
>>>
>>>To restore to a value use obcs prescribe and make the location an  "open 
>>>boundary"; the model will set the field to the prescribed value  at this 
>>>open boundary at the end of every forward step.
>>>
>>>Sponge layers are designed to allow a smooth transition to a  prescribed 
>>>value (I think they will still work with obcs_prescribe  off).  For an 
>>>artificial restoring force the difference between the  model and the 
>>>prescribed data (divided by some timescale) is used.   The MITgcm does 
>>>this with the timescale falling off linearly over the  sponge layer 
>>>thickness.
>>>
>>>It is not clear to me if you want something else besides this?
>>>
>>>-Matt
>>>
>>>
>>>On Dec 14, 2005, at 4:59 PM, David Wang wrote:
>>>
>>>      
>>>
>>>>Hello...
>>>>
>>>>I'm going to implement "sponge layers" near artificial domain  
>>>>boundaries within which model temperature may be restored to some  
>>>>temperature climatology (say Levitus94) at different relaxation  
>>>>timescales. I've already checked out the sponge layer option in the  
>>>>obcs pkg, where the relaxation temperature is the linear  combination 
>>>>of model temperature and the prescribed temperature at  the boundary. 
>>>>This is not really what I want. If I need to write  some extra code to 
>>>>achieve my purpose (which is not uncommon),  could anyone provide any 
>>>>guidelines... or did I miss anything?
>>>>
>>>>btw, I did notice the 3-dim relaxation code emerged in the latest  
>>>>checkpoint, but its relaxation timescale is set to be spatically  
>>>>constant...
>>>>
>>>>Thanks, David
>>>>
>>>>        
>>>>




More information about the MITgcm-support mailing list