New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7598 – NEMO

Changeset 7598


Ignore:
Timestamp:
2017-01-23T14:13:19+01:00 (7 years ago)
Author:
acc
Message:

Branch 2016/dev_merge_2016. Update Wetting and drying documentation (temporary location)

Location:
branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/MY_DOCS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/MY_DOCS/WAD_doc.tex

    r7547 r7598  
    115115 
    116116Let the fluxes on the $m$th iteration step be denoted by $\mathrm{flxu}^{(m)}$ and 
    117 $\mathrm{flxv}^{(m)}$. The iteration is initialised by setting 
     117$\mathrm{flxv}^{(m)}$.  Then the adjustment is achieved by seeking a set of coefficients, 
     118$\mathrm{zcoef}_{i,j}^{(m)}$ such that: 
     119 
     120\begin{equation} \label{dyn_wd_continuity_coef} 
     121\begin{split} 
     122\mathrm{zzflxp}^{(m)}_{i,j} =& \mathrm{zcoef}_{i,j}^{(m)} \mathrm{zzflxp}^{(0)}_{i,j} \\ 
     123\mathrm{zzflxn}^{(m)}_{i,j} =& \mathrm{zcoef}_{i,j}^{(m)} \mathrm{zzflxn}^{(0)}_{i,j} 
     124\end{split} 
     125\end{equation}  
     126  
     127where the coefficients are $1.0$ generally but can vary between $0.0$ and $1.0$ around 
     128cells that would otherwise dry. 
     129 
     130The iteration is initialised by setting 
    118131 
    119132\begin{equation} \label{dyn_wd_zzflx_initial} 
     
    130143\end{equation}  
    131144 
    132 Where this is the case each of the fluxes out of this $(i,j)$ cell are multiplied by the 
    133 factor $\mathrm{zcoef}_{i,j}$: 
    134  
    135 \begin{equation} \label{dyn_wd_continuity_coef} 
     145Rearranging (\ref{dyn_wd_continuity_if}) we can obtain an expression for the maximum 
     146outward flux that can be allowed and still maintain the minimum wet depth: 
     147 
     148\begin{equation} \label{dyn_wd_max_flux} 
    136149\begin{split} 
    137 \mathrm{zcoef}_{i,j} = \Big[ (h_{i,j}(t_e) & - \mathrm{rn\_wdmin1} - \mathrm{rn\_wdmin2})  \frac{e_1 e_2}{\Delta t} \phantom{]} \\ 
    138 \phantom{[} & -  \mathrm{zzflxn}^{(m)}_{i,j} \Big] \frac{1}{ \mathrm{zzflxp}^{(m)}_{i,j} }  
     150\mathrm{zzflxp}^{(m+1)}_{i,j} = \Big[ (h_{i,j}(t_e) & - \mathrm{rn\_wdmin1} - \mathrm{rn\_wdmin2})  \frac{e_1 e_2}{\Delta t} \phantom{]} \\ 
     151\phantom{[} & -  \mathrm{zzflxn}^{(m)}_{i,j} \Big] 
    139152\end{split} 
    140 \end{equation}  
    141  
    142 Note that the flux across the ``eastern'' face of the $(i,j)$th cell is only updated at 
    143 the $m+1$th iteration if that flux at the $m$th iteration is out of the $(i,j)$th cell. If 
    144 that is the case then the flux across that face is into the $(i+1,j)$ cell and that flux 
    145 will not be updated by the calculation for the $(i+1,j)$th cell. In this sense the updates 
    146 to the fluxes across the faces of the cells do not ``compete'' (they do not over-write 
    147 each other) and one would expect the scheme to converge relatively quickly. The scheme is 
    148 also flux based so conserves mass. 
     153\end{equation} 
     154 
     155Note a small tolerance ($\mathrm{rn\_wdmin2}$) has been introduced here {\it [Q: Why is 
     156this necessary/desirable?]}. Substituting from (\ref{dyn_wd_continuity_coef}) gives an 
     157expression for the coefficient needed to multiply the outward flux at this cell in order 
     158to avoid drying.  
     159 
     160\begin{equation} \label{dyn_wd_continuity_nxtcoef} 
     161\begin{split} 
     162\mathrm{zcoef}^{(m+1)}_{i,j} = \Big[ (h_{i,j}(t_e) & - \mathrm{rn\_wdmin1} - \mathrm{rn\_wdmin2})  \frac{e_1 e_2}{\Delta t} \phantom{]} \\ 
     163\phantom{[} & -  \mathrm{zzflxn}^{(m)}_{i,j} \Big] \frac{1}{ \mathrm{zzflxp}^{(0)}_{i,j} }  
     164\end{split} 
     165\end{equation}  
     166 
     167Only the outward flux components are altered but, of course, outward fluxes from one cell 
     168are inward fluxes to adjacent cells and the balance in these cells may need subsequent 
     169adjustment; hence the iterative nature of this scheme.  Note, for example, that the flux 
     170across the ``eastern'' face of the $(i,j)$th cell is only updated at the $m+1$th iteration 
     171if that flux at the $m$th iteration is out of the $(i,j)$th cell. If that is the case then 
     172the flux across that face is into the $(i+1,j)$ cell and that flux will not be updated by 
     173the calculation for the $(i+1,j)$th cell. In this sense the updates to the fluxes across 
     174the faces of the cells do not ``compete'' (they do not over-write each other) and one 
     175would expect the scheme to converge relatively quickly. The scheme is also flux based so 
     176conserves mass. 
    149177 
    150178The ROMS scheme to prevent drying out of a cell is somewhat simpler. It specifies that if 
    151179a tracer cell is dry (the water depth is less than $\mathrm{rn\_wdmin1}$) on the backward 
    152180timestep, $t_e$, then any outward flux through its cell faces should be set to zero. This 
    153 scheme has a clear physical rationale.  It has not yet been implemented within NEMO but it 
    154 could be. One objection to the ROMS scheme is that it introduces a spurious step function 
    155 in the flux out of a cell as the water depth in the cell passes through the ``critical'' 
    156 value $\mathrm{rn\_wdmin1}$. One might replace this step function with a smoother function 
    157 of the water depth in the cell from which the flux originates. 
     181scheme has a clear physical rationale. This scheme is equivalent to setting 
     182$\mathrm{zcoef}^{(m+1)}_{i,j}$ to $0.0$ whenever a cell is at risk of drying.  One 
     183objection to the ROMS scheme is that it introduces a spurious step function in the flux 
     184out of a cell as the water depth in the cell passes through the ``critical'' value 
     185$\mathrm{rn\_wdmin1}$. 
    158186 
    159187%---------------------------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.