[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