- Timestamp:
- 2017-12-13T19:01:03+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_DOCS/WAD_doc.tex
r7610 r9024 3 3 \begin{document} 4 4 5 \title{Draft description of NEMO wetting and drying scheme: 2 2 November 2016}6 7 \author{ Hedong Liu, Jason Holt, Andrew Coward and Michael J. Bell }5 \title{Draft description of NEMO wetting and drying scheme: 29 November 2017 } 6 7 \author{ Enda O'Dea, Hedong Liu, Jason Holt, Andrew Coward and Michael J. Bell } 8 8 9 9 %------------------------------------------------------------------------ … … 28 28 \label{DYN_wetdry} 29 29 30 This is preliminary documentation for the wetting and drying code (WAD). The emphasis is 31 on explaining the rationale for the code. The approach used by the WAD is similar to that 32 developed for POM by \cite{Oey06} and that developed for ROMS by \cite{WarnerEtal13} but 33 the WAD uses schemes that have not been published. 30 There are two main options for wetting and drying code (wd): 31 (a) an iterative limiter (il) and (b) a directional limiter (dl). 32 The directional limiter is based on the scheme developed by \cite{WarnerEtal13} for ROMS 33 which was in turn based on ideas developed for POM by \cite{Oey06}. The iterative 34 limiter is a new scheme. The iterative limiter is activated by setting $\mathrm{ln\_wd\_il} = \mathrm{.true.}$ 35 and $\mathrm{ln\_wd\_dl} = \mathrm{.false.}$. The directional limiter is activated 36 by setting $\mathrm{ln\_wd\_dl} = \mathrm{.true.}$ and $\mathrm{ln\_wd\_il} = \mathrm{.false.}$. 37 38 \namdisplay{nam_wad} 34 39 35 40 The following terminology is used. The depth of the topography (positive downwards) 36 41 at each $(i,j)$ point is the quantity stored in array $\mathrm{ht\_wd}$ in the NEMO code. 37 The height of the free surface (positive upwards) will be denoted by $ \mathrm{ssh}$. Both 38 quantities are measured relative to a reference sea level at z$=$0m. Given the sign 39 conventions used, the water depth is the height of the free surface plus the depth of the 42 The height of the free surface (positive upwards) is denoted by $ \mathrm{ssh}$. Given the sign 43 conventions used, the water depth, $h$, is the height of the free surface plus the depth of the 40 44 topography (i.e. $\mathrm{ssh} + \mathrm{ht\_wd}$). 41 45 42 \namdisplay{nam_wad} 43 44 WAD is activated by setting $\mathrm{ln\_wd} = \mathrm{.true.}$. Currently, this option 45 works with six test cases provided in the WAD\_TEST\_CASES configuration. These are all 46 pure sigma coordinate configurations which define their domain, surface forcing and 47 initial conditions via a set of 'usrdef' routines in MY\_SRC. Extending this option to 48 more realistic domains will require the derivation and provision of a suitable 49 $\mathrm{ht\_wd}$ field in addition to the normal information provided in the domcfg.nc 50 file. The six test cases are described in section \S\ref{WAD_test_cases}. 51 52 The WAD takes all points in the domain below a land elevation of $\mathrm{rn\_wdld}$ to be 53 covered by water. Points where the water depth is less than $\mathrm{rn\_wdmin1}$ are to 54 be interpreted as ``dry''. The WAD requires the topography specified with a model 46 Both wd schemes take all points in the domain below a land elevation of $\mathrm{rn\_wdld}$ to be 47 covered by water. They require the topography specified with a model 55 48 configuration to have negative depths at points where the land is higher than the 56 topography's reference sea-level. The vertical grid in NEMO is computed relative to an 57 initial state with zero sea surface height elevation. These reference metrics and depths 58 (i.e. the $\mathrm{e3t\_0, ht\_0}$ etc. arrays) are unaltered by WAD. 59 $\mathrm{rn\_wdmin1}$ is usually chosen to be of order $0.075$m but complex topographies 60 with steep slopes may require larger values. The scheme also makes use of a second 61 parameter, $\mathrm{rn\_wdmin2}$, which is intended to be much smaller than 62 $\mathrm{rn\_wdmin1}$, of order $10^{-6}$m or smaller {\it (Q: What is the purpose of 63 $\mathrm{rn\_wdmin2}$? Seems a non-zero value is required for the flux limiter iterations 64 to converge)}. 65 66 The WAD modifies the fluxes across the faces of cells that are either already ``dry'' 67 or may become dry within the next time-step using an iterative method. The 68 first sub-section below describes this scheme. It also briefly describes the simpler ROMS 69 method that has not been implemented. 70 71 The following sub-section describes how the surface pressure gradients are modified by the 72 WAD. The next sub-section should describe how the WAD maintains consistency between the 73 points that are ``wet'' on the barotropic sub-steps and those that are wet on the longer 74 baroclinic time-step. This sub-section has not yet been written. The final sub-section 75 should describe the test cases that have been used to assess the performance of the WAD. 49 topography's reference sea-level. The vertical grid in NEMO is normally computed relative to an 50 initial state with zero sea surface height elevation. 51 The user can choose to compute the vertical grid and heights in the model relative to 52 a non-zero reference height for the free surface. This choice affects the calculation of the metrics and depths 53 (i.e. the $\mathrm{e3t\_0, ht\_0}$ etc. arrays). 54 55 Points where the water depth is less than $\mathrm{rn\_wdmin1}$ are interpreted as ``dry''. 56 $\mathrm{rn\_wdmin1}$ is usually chosen to be of order $0.05$m but extreme topographies 57 with very steep slopes require larger values for normal choices of time-step. 58 59 Both versions of the code have been tested in six test cases provided in the WAD\_TEST\_CASES configuration 60 and in ``realistic'' configurations covering parts of the north-west European shelf. 61 All these configurations have used pure sigma coordinates. It is expected that 62 the wetting and drying code will work in domains with more general s-coordinates provided 63 the coordinates are pure sigma in the region where wetting and drying actually occurs. 64 65 The next sub-section descrbies the directional limiter and the following sub-section the iterative limiter. 66 The final sub-section covers some additional considerations that are relevant to both schemes. 76 67 77 68 %----------------------------------------------------------------------------------------- 78 % Fluxlimiters69 % Iterative limiters 79 70 %----------------------------------------------------------------------------------------- 80 \subsection [Flux limiters (\textit{wet\_dry})] 81 {Flux limiters (\mdl{wet\_dry})} 82 \label{DYN_wd_flux_limit} 83 84 The flux limiter for the barotropic flow devised by Hedong Liu can be understood as follows: 71 \subsection [Directional limiter (\textit{wet\_dry})] 72 {Directional limiter (\mdl{wet\_dry})} 73 \label{DYN_wd_directional_limiter} 74 75 The principal idea of the directional limiter is that 76 water should not be allowed to flow out of a dry tracer cell (i.e. one whose water depth is less than rn\_wdmin1). 77 78 All the changes associated with this option are made to the barotropic solver for the non-linear 79 free surface code within dynspg\_ts. 80 On each barotropic sub-step the scheme determines the direction of the flow across each face of all the tracer cells 81 and sets the flux across the face to zero when the flux is from a dry tracer cell. This prevents cells 82 whose depth is rn\_wdmin1 or less from drying out further. The scheme does not force $h$ (the water depth) at tracer cells 83 to be at least the minimum depth and hence is able to conserve mass / volume. 84 85 The flux across each $u$-face of a tracer cell is multiplied by a factor zuwdmask (an array which depends on ji and jj). 86 If the user sets ln\_wd\_dl\_ramp = .False. then zuwdmask is 1 when the 87 flux is from a cell with water depth greater than rn\_wdmin1 and 0 otherwise. If the user sets 88 ln\_wd\_dl\_ramp = .True. the flux across the face is ramped down as the water depth decreases 89 from 2 * rn\_wdmin1 to rn\_wdmin1. The use of this ramp reduced grid-scale noise in idealised test cases. 90 91 At the point where the flux across a $u$-face is multiplied by zuwdmask , we have chosen 92 also to multiply the corresponding velocity on the ``now'' step at that face by zuwdmask. We could have 93 chosen not to do that and to allow fairly large velocities to occur in these ``dry'' cells. 94 The rationale for setting the velocity to zero is that it is the momentum equations that are being solved 95 and the total momentum of the upstream cell (treating it as a finite volume) should be considered 96 to be its depth times its velocity. This depth is considered to be zero at ``dry'' $u$-points consistent with its 97 treatment in the calculation of the flux of mass across the cell face. 98 99 \cite{WarnerEtal13} state that in their scheme the velocity masks at the cell faces for the baroclinic 100 timesteps are set to 0 or 1 depending on whether the average of the masks over the barotropic sub-steps is respectively less than 101 or greater than 0.5. That scheme does not conserve tracers in integrations started from constant tracer 102 fields (tracers independent of $x$, $y$ and $z$). Our scheme conserves constant tracers because 103 the velocities used at the tracer cell faces on the baroclinic timesteps are carefully calculated by dynspg\_ts 104 to equal their mean value during the barotropic steps. If the user sets ln\_wd\_dl\_bc = .True., the 105 baroclinic velocities are also multiplied by a suitably weighted average of zuwdmask. 106 107 %----------------------------------------------------------------------------------------- 108 % Iterative limiters 109 %----------------------------------------------------------------------------------------- 110 \subsection [Iterative limiter (\textit{wet\_dry})] 111 {Iterative limiter (\mdl{wet\_dry})} 112 \label{DYN_wd_iterative_limiter} 113 114 \subsubsection [Iterative flux limiter (\textit{wet\_dry})] 115 {Iterative flux limiter (\mdl{wet\_dry})} 116 \label{DYN_wd_il_spg_limiter} 117 118 The iterative limiter modifies the fluxes across the faces of cells that are either already ``dry'' 119 or may become dry within the next time-step using an iterative method. 120 121 The flux limiter for the barotropic flow (devised by Hedong Liu) can be understood as follows: 85 122 86 123 The continuity equation for the total water depth in a column … … 173 210 the calculation for the $(i+1,j)$th cell. In this sense the updates to the fluxes across 174 211 the faces of the cells do not ``compete'' (they do not over-write each other) and one 175 would expect the scheme to converge relatively quickly. The scheme is also flux based so 176 conserves mass. 177 178 The ROMS scheme to prevent drying out of a cell is somewhat simpler. It specifies that if 179 a tracer cell is dry (the water depth is less than $\mathrm{rn\_wdmin1}$) on the backward 180 timestep, $t_e$, then any outward flux through its cell faces should be set to zero. This 181 scheme 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 183 objection to the ROMS scheme is that it introduces a spurious step function in the flux 184 out of a cell as the water depth in the cell passes through the ``critical'' value 185 $\mathrm{rn\_wdmin1}$. 212 would expect the scheme to converge relatively quickly. The scheme is flux based so 213 conserves mass. It also conserves constant tracers for the same reason that the 214 directional limiter does. 215 186 216 187 217 %---------------------------------------------------------------------------------------- 188 218 % Surface pressure gradients 189 219 %---------------------------------------------------------------------------------------- 190 \subs ection [Modification of surface pressure gradients (\textit{dynhpg})]220 \subsubsection [Modification of surface pressure gradients (\textit{dynhpg})] 191 221 {Modification of surface pressure gradients (\mdl{dynhpg})} 192 \label{DYN_wd_ spg}222 \label{DYN_wd_il_spg} 193 223 194 224 At ``dry'' points the water depth is usually close to $\mathrm{rn\_wdmin1}$. If the … … 253 283 conditions. 254 284 285 \subsection [Additional considerations (\textit{usrdef\_zgr})] 286 {Additional considerations (\mdl{usrdef\_zgr})} 287 \label{WAD_additional} 288 289 In the very shallow water where wetting and drying occurs the parametrisation of 290 bottom drag is clearly very important. In order to promote stability 291 it is sometimes useful to calculate the bottom drag using an implicit time-stepping approach. 292 293 Suitable specifcation of the surface heat flux in wetting and drying domains in forced and 294 coupled simulations needs further consideration. In order to prevent freezing or boiling 295 in uncoupled integrations the net surface heat fluxes need to be appropriately limited. 296 255 297 %---------------------------------------------------------------------------------------- 256 298 % The WAD test cases
Note: See TracChangeset
for help on using the changeset viewer.