|
|
(93 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| == Continuity and Momentum Equations == | | == Continuity and Momentum Equations == |
| '''Hydrodynamics'''
| | On the basis of the definitions [[CMS-Flow_Hydrodnamics:_Variable_Definitions | Variable Definitions]], and assuming depth-uniform currents, the general depth-integrated and wave-averaged continuity and momentum equations may be written as (Phillips 1977; Mei 1989; Svendsen 2006) |
| | | {{Equation| |
| '''Governing Equations'''
| | <math>\frac{\partial h}{\partial t} + \frac {\partial(hV_j)} {\partial x_j} = S^M</math> |
| | | |1}} |
| Phillips (1977), Mei (1983), and Svendsen (2006) provide a detailed deri-vation of the depth-integrated and wave-averaged hydrodynamic equa-tions. Here, only variable definitions are provided and derivations may be obtained from the preceding references. The instantaneous current velocity u<sub>i</sub> is split into:
| |
| | |
| ''<math>u_i = \bar{u_i} + \tilde{u_i} + u_i^'</math>''
| |
| | |
| in which
| |
| | |
| ''<math>\bar{u_i}</math>'' = current (wave-averaged) velocity [m/s]
| |
| | |
| ''<math>\tilde{u_i}</math>'' = wave (oscillatory) velocity with wave-average ''<math>\bar{\tilde{u_i}} = 0 [m/s]</math>''
| |
| | |
| ''<math>u_i^'</math>'' = turbulent fluctuation with ensemble average ''<math>\langle u_i^' \rangle</math>'' = 0 and wave average ''<math>\bar{u_i^'}</math>'' = 0 [m/s]
| |
| | |
| The wave-averaged total volume flux is defined as
| |
| | |
| h''<math>V_i</math>'' = ''<math>\bar{\int} {^\bar{u_i}dz }</math>''
| |
| | |
| | |
| Assuming depth-uniform currents in the presence of oscillatory waves, the general depth- and phase-averaged continuity and momentum equations may be written as (Phillips 1977, Mei 1983, and Svendsen 2006)
| |
| | |
| {{Equation|1=<math>\frac{\partial h}{\partial t}+\frac{\partial (h{{V}_{j}})}{\partial {{x}_{j}}}=0</math>|2=1}}
| |
| | |
| where <math>h</math> is the total water depth <math>h=\zeta+\eta</math>, <math>\eta</math> is the water surface elevation, <math>\zeta</math> is the still water depth, <math>V_i</math> is the wave-averaged, depth-integrated mass flux velocity defined as <math> V_i=U_i+U_{wi}</math>, where <math>U_i</math> is the phase- and depth-averaged current velocity, and <math>U_{wi}</math> is the depth-averaged wave velocity (Phillips 1977)
| |
| | |
| {{Equation|1=<math> U_{wi} = \frac{(E_w + 2E_{sr}) w_i}{\rho hc} </math>|2=2}} | |
| | |
| where <math>E_w</math> is the wave energy, <math>E_{sr}</math> is the surface roller energy, <math>\rho</math> is the water density, and <math>c</math> is the wave celerity, and <math> {{w}_{i}}=(\cos \theta ,\sin \theta ) </math> is the wave unit vector where <math> \theta </math> is the wave direction.
| |
| | |
| The momentum equation can be written as
| |
| | |
| {{Equation|1=<math> \frac{\partial (h{{V}_{i}})}{\partial t}+\frac{\partial (h{{V}_{i}}{{V}_{j}})}{\partial {{x}_{j}}}-{{\varepsilon }_{ij}}{{f}_{c}}h{{V}_{j}}=-gh\frac{\partial \eta }{\partial {{x}_{i}}}-\frac{h}{{{\rho }_{0}}}\frac{\partial {{p}_{a}}}{\partial {{x}_{i}}}+\frac{\partial }{\partial {{x}_{j}}}\left( {{\nu }_{t}}h\frac{\partial {{V}_{i}}}{\partial {{x}_{j}}} \right) -\frac{1}{\rho }\frac{\partial }{\partial x_j} \left( S_{ij} + R_{ij} -\rho h U_{wi} U_{wj} \right) + \tau _{si}-\tau _{bi} </math>|2=3}}
| |
|
| |
| where <math>g</math> is the gravitational constant, <math>f_c</math> is the Coriolis parameter, <math>p_a</math> is the atmospheric pressure, <math>\rho_0</math> is a reference water density, <math>\nu_t</math> is the turbulent eddy viscosity, <math> \tau_{s} </math> is the surface wind stress, and <math>\tau_{b}</math> is the combined wave-current mean bed shear stress. <math>\varepsilon_{ij}</math> is the permutation parameter equal to 1 for <math>i,j</math> = 1,2, -1 for <math>i,j</math> = 2,1; and 0 for <math>i=j</math>.
| |
| | |
| The equations above are similar to those derived by Svendsen 2006, ex-cept for the inclusion of the water source/sink term in the continuity equation, and the atmospheric pressure and surface roller terms in the momentum equation. It is also noted that the horizontal mixing term is formulated differently as a function of the total flux velocity similar to the Generalized Lagrangian Mean (GLM) approach (Andrews and McIntyre, 1978; Walstra et al, 2000). This approach is arguably more physically meaningful and also simplifies the descritization.
| |
| | |
| == Bottom Stress ==
| |
| The mean (wave averaged) bed shear stress is calculated as
| |
| | |
| {{Equation|1=<math> \tau _i^b= m_b \lambda_{wc} \rho c_b U U_i </math>|2=4}}
| |
| | |
| where <math> \lambda_{wc} </math> is the nonlinear wave enhancement factor, <math>m_b</math> is a bed slope friction coefficient, <math> c_b </math> is the bottom friction coefficient, and <math>U_E= \sqrt{U_i^E U_i^E}</math> is the Eulerian current magnitude. For additional information on the bottom friction wee [[CMS-Flow:Bottom_Friction | Bottom and Wall Friction]]
| |
| | |
| == Wave and Roller Stresses==
| |
| The wave radiation stresses <math>S_{ij}</math> are calculated using linear wave theory
| |
| | |
| {{Equation|1=<math> S_{ij}=\iint\limits_{{}}{E_w \left[ n{{w}_{i}}{{w}_{j}}+{{\delta }_{ij}} \left( n-\frac{1}{2} \right) \right]df}d\theta </math>|2=6}}
| |
| | |
| where <math>f</math> is frequency, <math>\theta</math> is the direction, <math>\delta_{ij}</math>=1 for <math>i=j</math>, <math>\delta_{ij}</math>=0 for <math>i \ne j</math>, and <math>n=\frac{1}{2}\left( 1+\frac{2kh}{\sinh 2kh} \right) </math>. For more information on the CMS-Wave model see [[CMS-Wave]].
| |
| | |
| The roller stresses are given by <math>R_{ij}</math> are calculated as
| |
|
| |
|
| {{Equation|1=<math> R_{ij} = 2 E_r w_i w_j </math>|2=7}}
| |
|
| |
| where <math> E_{sr} </math> is the roller energy. For more information on the surface roller see [[CMS-Flow:Roller | Surface Roller]].
| |
|
| |
| = Numerical Methods =
| |
| == General Transport Equation: Discretization ==
| |
| All of the governing equations may be written in general form
| |
| {{Equation| | | {{Equation| |
| <math> | | <math>\frac{\partial(hV_i)}{\partial t} + \frac {\partial(hV_jV_i)}{\partial x_j} - \varepsilon_{ij}f_chV_j = -gh\frac{\partial \bar{\eta}}{\partial x_i} - \frac{h}{\rho} \frac{\partial p_{a}}{\partial x_i} + \frac {\partial}{\partial x_j} {\left(v_{t}h \frac {\partial V_i} {\partial x_j} \right)} - \frac{1}{\rho} \frac{\partial} {\partial x_j} \left(S_{ij} + R_{ij} - \rho h U_{wi}U_{wj} \right) + \frac{\tau_{si}}{\rho} - m_{b}\frac{\tau_{bi}}{\rho}</math>'' |
| \underbrace{\frac{\partial (h\phi )}{\partial t}}_{\text{Temporal Term}}+\underbrace{\nabla \cdot (h\ bf{U}\phi )}_{\text{Advection Term}}=\underbrace{\nabla \cdot \left( \Gamma h\nabla \phi \right)}_{\text{Diffusion Term}}+\underbrace{S}_{\text{Source Term}}
| | |2}} |
| </math> | |
| |8}} | |
|
| |
|
| where <math>\phi</math> is a general scalar, <math>t</math> is time, <math>h</math> is the total water depth, <math>bf{U}</math> is the depth averaged current velocity, <math> \Gamma </math> is the diffusion coefficient for <math> \phi </math>, <math> \nabla =({{\nabla }_{1}},{{\nabla }_{2}}) </math> is the gradient operator, and <math> S </math> includes all other terms. Note that in the case of the continuity and momentum equations <math> \phi </math> is equal to 1 and <math> U_i </math> respectively. | | where |
| | |
| === Temporal Term ===
| |
| The temporal term of the momentum equations is discretized using a first order implicit Euler scheme
| |
| {{Equation|
| |
| <math>
| |
| \int\limits_{A}{\frac{\partial (h\phi )}{\partial t}}\text{d}A=\frac{\partial }{\partial t}\int\limits_{A}{h\phi \text{d}A}=\frac{{{h}^{n+1}}\phi _{{}}^{n+1}-{{h}^{n}}\phi _{{}}^{n}}{\Delta t}\Delta A
| |
| </math>
| |
| |9}}
| |
| where <math> \Delta A </math> is the cell area, and <math> \Delta t </math> is the hydrodynamic time step.
| |
|
| |
|
| === Advection Term === | | : t = time[s] |
| The advection scheme obtained using the divergence theorem as
| |
| where is the outward unit normal on cell face f, is the cell face length and is the total water depth linearly interpolated to the cell face. Here the overbar indicates a cell face interpolation operator described in the following section. For Cartesian grids the cell face unit vector is always aligned with one of the Cartesian coordinates which simplifies the calculation. Defining the cell face normal velocity as the above equation simplifies to
| |
|
| |
|
| {{Equation|
| | :<math>x_j</math> = Cartesian coordinate in the <math>j^{th}</math> direction [m], j = 1,2 or x, y |
| <math> | |
| \int\limits_{A}{\nabla \cdot (h\mathbf{U}\phi )}\text{d}A=\oint\limits_{L}{h\phi \left( \mathbf{U}\cdot \mathbf{n} \right)}\text{d}L=\sum\limits_{f}^{{}}{{{{\bar{h}}}_{f}}\Delta {{l}_{f}}{{\left( {{{\hat{n}}}_{i}}{{U}_{i}} \right)}_{f}}{{{\tilde{\phi }}}_{f}}}
| |
| </math> | |
| |10}}
| |
|
| |
| where <math> \mathbf{n}={{\mathbf{\hat{n}}}_{\mathbf{i}}}=({{\mathbf{\hat{n}}}_{\mathbf{1}}},{{\mathbf{\hat{n}}}_{\mathbf{2}}}) </math> is the outward unit normal on cell face f, <math> \Delta {{l}_{f}} </math> is the cell face length and <math> {{\bar{h}}_{f}} </math> is the total water depth linearly interpolated to the cell face. Here the overbar indicates a cell face interpolation operator described in the following section. For Cartesian grids the cell face unit vector is always aligned with one of the Cartesian coordinates which simplifies the calculation. Defining the cell face normal velocity as <math> {{U}_{f}}={{U}_{i}}\in f\bot i </math> the above equation simplifies to
| |
|
| |
|
| {{Equation|
| | :<math>S^m = </math> source term due to precipitation, evaporation and structures (e.g. culverts) [m/s] |
| <math> | |
| \sum\limits_{f}^{{}}{{{{\bar{h}}}_{f}}\Delta {{l}_{f}}{{\left( {{{\hat{n}}}_{i}}{{U}_{i}} \right)}_{f}}{{{\tilde{\phi }}}_{f}}}=\sum\limits_{f}^{{}}{{{n}_{f}}{{F}_{f}}{{{\tilde{\phi }}}_{f}}}
| |
| </math>|11}} | |
|
| |
|
| where <math> {{F}_{f}}={{\bar{h}}_{f}}\Delta {{l}_{f}}{{U}_{f}} </math>, <math> {{n}_{f}}={{n}_{\bot }}={{\left( {{{\hat{e}}}_{i}}{{{\hat{n}}}_{i}} \right)}_{f}} </math>, with <math> {{\hat{e}}^{i}}=({{\hat{e}}_{1}},{{\hat{e}}_{2}}) </math> being the basis vector. <math> n_f </math> is equal to 1 for West and South faces and equal to -1 for North and East cell faces. Lastly, <math> \tilde{\phi }_{f}^{{}} </math> is the advective value of <math> \phi </math> on cell face f, and is calculated using either the Hybrid, Exponential, HLPA (Zhu 1991) schemes. The cell face velocities <math> U_f </math> are calculated using the momentum interpolation method of Rhie and Chow (1983) described in the subsequent section. The advection value is calculated as <math> {{\tilde{\phi }}_{f}}=\tilde{\phi }_{f}^{L(\exp )}+ \tilde{\phi }_{f}^{H(\text{imp})}-\tilde{\phi }_{f}^{L(\text{imp})} </math>, where the superscripts <math>L</math> and <math>H</math> indicate low and high order approximations and the superscripts <math>(exp)</math> and <math>(imp)</math> indicate either explicit and implicit treatment. The explicit term is solved directly while the implicit term is implemented through a deferred correction in which the terms are approximated using the values from the previous iteration step.
| | :<math>f_c = 2\Omega sin \phi = </math>Coriolis parameter [rad/s] in which <math>\Omega = 7.29 \ x \ 10^{-5} </math> rad/s is the Earth’s angular velocity of rotation and <math>\phi</math> is the latitude in degrees |
|
| |
|
| === Cell-face interpolation operator ===
| | :<math>g = </math> gravitational constant (~9.81 m/s<sup>2</sup>) |
| The general formula for estimating the cell-face value of <math> \tilde{\phi }_{f}^{{}} </math> is given by
| |
| {{Equation|
| |
| <math> | |
| {{\bar{\phi }}_{f}}={{L}_{\bot }}{{\phi }_{N}}+(1-{{L}_{\bot }}){{\phi }_{P}}+{{\left( {{\nabla }_{\parallel }}\phi \right)}_{N}}{{L}_{\bot }}({{x}_{\parallel ,O}}-{{x}_{\parallel ,N}})+{{\left( {{\nabla }_{\parallel }}\phi \right)}_{P}}(1-{{L}_{\bot }})({{x}_{\parallel ,O}}-{{x}_{\parallel ,P}})
| |
| </math> | |
| |12}}
| |
|
| |
|
| where <math> {{L}_{\bot }} </math> is a linear interpolation factor given by <math> {{L}_{\bot }}=\Delta {{x}_{\bot ,P}}/(\Delta {{x}_{\bot ,P}}+\Delta {{x}_{\bot ,N}}) </math> and <math> {{\nabla }_{\parallel }} </math> is the gradient operator in the direction parallel to face f. By definition <math> \parallel \,=2\left| {{{\hat{n}}}_{1}} \right|+1\left| {{{\hat{n}}}_{2}} \right| </math>. Note that for neighboring cells without any refinement <math> {{x}_{\parallel ,O}}-{{x}_{\parallel ,P}} </math> and <math>{{x}_{\parallel ,O}}-{{x}_{\parallel ,N}} </math> are zero and thus the above equation is consistent with non-refined cell faces.
| | :<math>p_a</math> = atmospheric pressure [Pa] |
|
| |
|
| === Diffusion term === | | :<math>\rho = </math> water density (~1025 kg/m<sup>3</sup>) |
| The diffusion term is discretized in general form using the divergence theorem
| |
|
| |
|
| {{Equation|
| | :<math>v_t = </math> turbulent eddy viscosity [m<sup>2</sup>/s] |
| <math> | |
| \int\limits_{A}{\nabla \cdot \left( \Gamma h\nabla \phi \right)}\text{d}A=\oint\limits_{S}{\Gamma h\left( \nabla \phi \cdot \mathbf{n} \right)}\text{d}S=\sum\limits_{f}{\bar{\Gamma }_{f}{{{\bar{h}}}_{f}}\Delta {{l}_{f}}{{\left( {{{\hat{n}}}_{i}}{{\nabla }_{i}}\phi \right)}_{f}}}
| |
| </math> | |
| |13}}
| |
|
| |
|
| The discritization of the cell-face gradient is described in the next section. On a Cartesian grid the above expression may be further simplified as
| | :<math>\tau_{si} = </math> wind surface stress [Pa] |
|
| |
|
| {{Equation|
| | :<math>S_{ij}</math> = wave radiation stress [Pa] |
| <math> | |
| \sum\limits_{f}{{{n}_{f}}\bar{\Gamma }_{f}{{{\bar{h}}}_{f}}\Delta {{l}_{f}}{{\left( {{\nabla }_{\bot }}\phi \right)}_{f}}}=\sum\limits_{f}{{{D}_{f}}\left[ {{\phi }_{N}}-{{\phi }_{P}}+{{\left( {{\nabla }_{\parallel }}\phi \right)}_{N}}\left( {{x}_{\parallel ,O}}-{{x}_{\parallel ,N}} \right)-{{\left( {{\nabla }_{\parallel }}\phi \right)}_{P}}\left( {{x}_{\parallel ,O}}-{{x}_{\parallel ,P}} \right) \right]}
| |
| </math> | |
| |14}}
| |
|
| |
|
| where <math> {{\nabla }_{\bot }}\phi </math> is gradient in the direction perpendicular to the cell face and
| | :<math>R_{ij}</math> = surface roller stress [Pa] |
| <math> {{D}_{f}}=\frac{\bar{\Gamma }_{f}^{{}}{{{\bar{h}}}_{f}}\Delta {{l}_{f}}}{\left| \delta {{x}_{\bot }} \right|} </math>.
| |
|
| |
|
| == Hydrodynamic Solver == | | :<math>m_b</math> = bed slope coefficient [-] |
|
| |
|
| | :<math>\tau_{bi}</math> = combined wave and current mean bed shear stress [Pa]. |
|
| |
|
| == Wetting and drying ==
| | The above 2DH equations are similar to those derived by Svendsen (2006), except for the inclusion of the water source/sink term in the continuity equation and the atmospheric pressure and surface roller terms and the bed slope coefficient in the momentum equation. It’s also noted that the horizontal mixing term is formulated slightly differently as a function of the total flux velocity, similar to the Generalized Lagrangian Mean (GLM) approach (Andrews and McIntyre 1978; Walstra et al. 2000). This approach is arguably more physically meaningful and also simplifies the discretization in the case where the total flux velocity is used as the model prognostic variable. |
| In the numerical simulation of the surface water flows with sloped beaches, sand bars and islands, the water edges change with time, with part of the nodes being possibly wet or dry. In the present model, a threshold flow depth (a small value such as 0.02 m in field cases) is used to judge drying and wetting. If the flow depth on a node is larger than the threshold value, this node is considered to be wet, and if the flow depth is lower than the threshold value, this node is dry. Because a fully implicit solver is used in the present model, all the wet and dry nodes participate in the solution. Dry nodes are assigned a zero velocity. On the water edges between the dry and wet nodes, the wall-function approach is applied.
| |
|
| |
|
| = References = | | = References = |
| * Buttolph, A. M., Reed, C. W., Kraus, N. C., Ono, N., Larson, M., Camenen, B., Hanson, H.,Wamsley, T., and Zundel, A. K. (2006). “Two-dimensional depth-averaged circulation model CMS-M2D: Version 3.0, Report 2: Sediment transport and morphology change,” Tech. Rep. ERDC/CHL TR-06-9, U.S. Army Engineer Research and Development Center, Coastal and Hydraulic Engineering, Vicksburg, MS. | | * Andrews, D. G., and M. E. McIntyre. 1978. An exact theory of nonlinear waves on a Lagrangian mean flow. Journal of Fluid Mechanics (89):609–646. |
| * Ferziger, J. H., and Peric, M. (1997). “Computational Methods for Fluid Dynamics”, Springer-Verlag, Berlin/New York, 226 p. | | * Mei, C. 1989. The applied dynamics of ocean surface waves. New York: John Wiley. |
| * Huynh-Thanh, S., and Temperville, A. (1991). “A numerical model of the rough turbulent boundary layer in combined wave and current interaction,” in Sand Transport in Rivers, Estuaries and the Sea, eds. R.L. Soulsby and R. Bettess, pp.93-100. Balkema, Rotterdam.
| | * Phillips, O. M. 1977. Dynamics of the upper ocean, Cambridge University Press. |
| * Phillips, O.M. (1977) Dynamics of the upper ocean, Cambridge University Press. | | * Svendsen, I. A. 2006. Introduction to nearshore hydrodynamics, Advanced Series on Ocean Engineering, 124, World Scientific Publishing, 722 p. |
| * Rhie, T.M. and Chow, A. (1983). “Numerical study of the turbulent flow past an isolated airfoil with trailing-edge separation”. AIAA J., 21, 1525–1532.
| | * Walstra, D. J. R., J. A. Roelvink, and J. Groeneweg. 2000. Calculation of wave-driven currents in a 3D mean flow model. In Proceedings, 27th International Conference on Coastal Engineering, 1050-1063. Sydney, Australia. |
| * Saad, Y., (1993). “A flexible inner-outer preconditioned GMRES algorithm,” SIAM Journal Scientific Computing, 14, 461–469.
| |
| * Saad, Y., (1994). “ILUT: a dual threshold incomplete ILU factorization,” Numerical Linear Algebra with Applications, 1, 387-402.
| |
| * Saad, Y. and Schultz, M.H., (1986). “GMRES: A generalized minimal residual algorithm for solving nonsymmetric linear systems,” SIAM Journal of Scientific and Statistical, Computing, 7, 856-869.
| |
| * Soulsby, R.L. (1995). “Bed shear-stresses due to combined waves and currents,” in Advanced in Coastal Morphodynamics, ed M.J.F Stive, H.J. de Vriend, J. Fredsoe, L. Hamm, R.L. Soulsby, C. Teisson, and J.C. Winterwerp, Delft Hydraulics, Netherlands. 4-20 to 4-23 pp.
| |
| * Svendsen, I.A. (2006). Introduction to nearshore hydrodynamics, Advanced Series on Ocean Engineering, 124, World Scientific Publishing, 722 p. | |
| * Wu, W. (2004). “Depth-averaged 2-D numerical modeling of unsteady flow and nonuniform sediment transport in open channels,” Journal of Hydraulic Engineering, ASCE, 135(10) 1013-1024. | |
| * Wu, W., Sánchez, A., and Mingliang, Z. (2011). “An implicit 2-D shallow water flow model on an unstructured quadtree rectangular grid,” Journal of Coastal Research, [In Press]
| |
| * Wu, W., Sánchez, A., and Mingliang, Z. (2010). “An implicit 2-D depth-averaged finite-volume model of flow and sediment transport in coastal waters,” Proceeding of the International Conference on Coastal Engineering, [In Press]
| |
| * Van Doormal, J.P. and Raithby, G.D., (1984). Enhancements of the SIMPLE method for predicting incompressible fluid flows. Num. Heat Transfer, 7, 147–163.
| |
| * Zhu, J. (1991). “A low-diffusive and oscillation-free convection scheme,”Communications in Applied Numerical Methods, 7, 225-232.
| |
| * Zwart, P. J., Raithby, G. D., Raw, M. J. (1998). “An integrated space-time finite volume method for moving boundary problems”, Numerical Heat Transfer, B34, 257.
| |
| | |
| | |
| ----
| |
| | |
| | |
| = Variable Index =
| |
| {| border=1
| |
| ! Symbol !! Description !! Units
| |
| |-
| |
| | <math> t </math> || Time || sec
| |
| |-
| |
| | <math> h </math> || Total water depth <math> h = \zeta + \eta </math> || m
| |
| |-
| |
| | <math> \zeta </math> || Still water depth || m
| |
| |-
| |
| | <math> \eta </math> || Water surface elevation with respect to the still water elevation || m
| |
| |-
| |
| | <math> U_j </math> || Current velocity in the jth direction || m/sec
| |
| |-
| |
| | <math> S </math> || Sum of Precipitation and evaporation per unit area || m/sec
| |
| |-
| |
| | <math> g </math> || Gravitational constant || m/secsup2/sup
| |
| |-
| |
| | <math> \rho </math> || Water density || kg/msup3/sup
| |
| |-
| |
| | <math> p_a </math> || Atmospheric pressure || Pa
| |
| |-
| |
| | <math> \nu_t </math> || Turbulent eddy viscosity || msup2/sup/sec
| |
| |}
| |
| | |
|
| |
|
| ---- | | ---- |
| [[CMS#Documentation_Portal | Documentation Portal]] | | [[CMS#Documentation_Portal | Documentation Portal]] |