Download PDF
Download page Numerical Methods (Pipe Flow).
Numerical Methods (Pipe Flow)
The pipe flow solver utilizes the same semi-implicit, finite-volume algorithms used in the 2D solver and the 1D finite volume solver. These methods are detailed for the 1D finite volume solver in Numerical Methods (1D FV). In short, velocities in the continuity equation and the pressure gradient term in the momentum equation are discretized using the \theta-method. Frictional terms are treated implicitly, and the advection term is treated explicitly using the Eulerian-Lagrangian method. The equations are discretized on the 1D unstructured pipe network grid. Cell property tables relate water levels to cell volume and surface area, and face property tables relate water levels to cross-sectional and wetted areas. Equations for each computational cell are aggregated into matrix form and solved using an iterative, Newton's method-like solution algorithm.
Two major differences are present in the pipe network solution, the first in the discretization of the advection term and the second in the matrix solution method.
Advection Discretization
Acceleration terms at a computational face, j, are discretized using a Lagrangian approach.
| \dfrac{\partial V_j}{\partial t} + V_j \dfrac{\partial V_j}{\partial x} \approx \dfrac{V_j^{n+1} - V_{X(j)}^n }{\Delta t} |
where V_{X(j)}^n is the velocity at the start of the time step evaluated at a location, X(j). This location is found by integrating the velocity field back in time, starting from the face location. Since X(j) does not necessarily correspond to a cross-section, an interpolation technique is applied. For a positive velocity at the face
| V_{X(j)}^n = V_j^n - V_j^* \Delta t \dfrac{V_j^n - V_{j-1}^n}{x_j - x_{j-1}} |
where V_j^* is the advective speed, and V_j^* \Delta t is the distance traveled back into the upwind cell.
In areas of rapidly varying flow conditions, the choice of the advective velocity is important (Stelling and Duinmeijer, 2003). In strong flow contractions, a discretization consistent with constancy of energy head is applied.
| V_j^* = \dfrac{V_j^n + V_{j-1}^n}{2} |
In areas without strong contractions (e.g., flow expansions), a discretization consistent with momentum conservation is applied instead.
| V_j^* = \dfrac{A_j^n V_j^n + A_{j-1}^n V_{j-1}^n}{2A_j^n} |
A dynamic choice between the two discretizations is made based on local flow conditions near the face. This prevents unphysical increases in energy through flow contractions, and unphysical conservation of energy through flow expansions.
Matrix Solution Technique
The second difference involves the Newton's method-like matrix solution technique, and it arise from the decomposition of the cell property tables into positive and negative contributions. Using the cell volume decomposition, equation 10) in Numerical Methods (1D FV) is rewritten:
| \boldsymbol{\Omega}^{+}(\boldsymbol{H}) + \boldsymbol{\Omega}^{-}(\boldsymbol{H}) + \boldsymbol{\Psi}\boldsymbol{H} = \boldsymbol{b} |
where
\boldsymbol{\Omega}^+ and \boldsymbol{\Omega}^- are vectors of the the decomposed positive and negative volume contributions of each cell,
\boldsymbol{H} is a vector of the unknown hydraulic heads (water surface elevation + pressure head) for each cell,
\boldsymbol{\Psi} is the coefficient matrix from the semi-implicit discretization of the continuity and momentum equations, and
\boldsymbol{b} is the right hand side vector.
In the methods outlined by Casulli and Stelling (2013), the negative volume contribution is linearized with a series of iterates, m,
| \boldsymbol{\Omega}^{-}(\boldsymbol{H}^{m+1}) = \boldsymbol{\Omega}^{-}(\boldsymbol{H}^m) + \boldsymbol{A}^{-}(\boldsymbol{H}^m})(\boldsymbol{H}^{m+1} - \boldsymbol{H}^m) |
and the positive volume contribution can be linearized with a series of iterates, k,
| \boldsymbol{\Omega}^{+}(\boldsymbol{H}^{m+1,k+1}) = \boldsymbol{\Omega}^{+}(\boldsymbol{H}^{m+1,k}) + \boldsymbol{A}^{+}(\boldsymbol{H}^{m+1,k})(\boldsymbol{H}^{m+1,k+1} - \boldsymbol{H}^{m+1,k}) |
where
\boldsymbol{A}^+ and \boldsymbol{A}^- are vectors of the the decomposed positive and negative wetted area contributions of each cell.
This leads to a set of nested iteration loops, where an initial guess at H is iterated on until convergence in the k iterates, and then the m iterates are updated, and the k iterates are run again. This process continues until both the m and k iterates have converged to within a given tolerance. Both iteration loops are formulated to solve for the differences in successive iterations (e.g., \boldsymbol{H}^{m+1} - \boldsymbol{H}^m) as shown below.
| \begin{array}{rl} \left[ \boldsymbol{\Psi} + \boldsymbol{A}^+(\boldsymbol{H}^m) - \boldsymbol{A}^-(\boldsymbol{H}^m) \right] ( \boldsymbol{H}^{m+1}-\boldsymbol{H}^m ) &= -( \boldsymbol{\Omega}^+(\boldsymbol{H}^m) + \boldsymbol{\Psi} \boldsymbol{H}^m - \boldsymbol{b} ) + \boldsymbol{V}^-(\boldsymbol{H}^m) \\ \left[ \boldsymbol{\Psi} + \boldsymbol{A}^+(\boldsymbol{H}^{m+1,k}) - \boldsymbol{A}^-(\boldsymbol{H}^m) \right] ( \boldsymbol{H}^{m+1,k+1}-\boldsymbol{H}^{m+1,k} ) &= -( \boldsymbol{\Omega}^+(\boldsymbol{H}^{m+1,k}) + \boldsymbol{\Psi} \boldsymbol{H}^{m+1,k} - \boldsymbol{b} ) + \boldsymbol{V}^-(\boldsymbol{H}^m) + \boldsymbol{A}^-(\boldsymbol{H}^m)(\boldsymbol{H}^{m+1,k}-\boldsymbol{H}^m) \end{array} |
References
Casulli, V. and Stelling, G.S. 2013. A semi-implicit numerical model for urban drainage systems. International Journal for Numerical Methods in Fluids. 73:600-614.
Stelling, G.S. and Duinmeijer, S.P.A. 2003. A staggered conservative scheme for every Froude number in rapidly varied shallow water flows. International Journal for Numerical Methods in Fluids. 43:1329-1354.