version 3.10-dev
forchheimerslaw.hh File Reference

Advective fluxes according to Forchheims's law (extends Darcy's law by an nonlinear drag) More...

Go to the source code of this file.

Description

Darcy’s law is linear in the seepage velocity v. As described in "darcyslaw.hh", this is valid for creeping flow (Re<<1). As v increases further, a nonlinear drag arises. The nonlinear drag arises, because the friction becomes comparable to surface drag due to friction. This additional friction is added as the forchheimer term to the Darcy's law. Resulting in the Forchheimer's law. see e.g. Nield & Bejan: Convection in Porous Media [56]

For multiphase flow, the relative passability \( \eta_r\) is the "Forchheimer-equivalent" to the relative permeability \( k_r\). We use the same function for \( \eta_r\) as for \( k_r \) (Van-Genuchten, Brooks-Corey, linear), other authors use a simple power law e.g.: \(\eta_{rw} = S_w^3\)

This leads to the equation in the form:

\[ \mathbf{v_\alpha} + c_F \sqrt{\mathbf{K}} \frac{\rho_\alpha}{\mu_\alpha } |\mathbf{v_\alpha}| \mathbf{v_\alpha} + \frac{k_{r \alpha}}{\mu_\alpha} \mathbf{K} \nabla \left(p_\alpha + \rho_\alpha g z \right)= 0 \]

This already includes the assumption \( k_r(S_w) = \eta_r(S_w)\):

  • \(\eta_{rw} = S_w^x\) looks very similar to e.g. Van Genuchten relative permeabilities
  • Fichot et al. (2006) [29] state that several authors claim that \( k_r(S_w), \eta_r(S_w)\) can be chosen equal
  • It leads to the equation not degenerating for the case of \(S_w=1\), because I do not need to multiply with two different functions, and therefore there are terms not being zero.
  • If this assumption is not to be made: Some regularization needs to be introduced ensuring that not all terms become zero for \(S_w=1\).

This non-linear equations is solved for \(\mathbf{v_\alpha}\) using Newton's method and an analytical derivative w.r.t. \(\mathbf{v_\alpha}\).

The gradient of the Forchheimer relations looks as follows (mind that \(\sqrt{\mathbf{K}}\) is a tensor):

\[ f\left(\mathbf{v_\alpha}\right) = \left( \begin{array}{ccc} 1 & 0 &0 \\ 0 & 1 &0 \\ 0 & 0 &1 \\ \end{array} \right) + c_F \frac{\rho_\alpha}{\mu_\alpha} |\mathbf{v}_\alpha| \sqrt{\mathbf{K}} + c_F \frac{\rho_\alpha}{\mu_\alpha}\frac{1}{|\mathbf{v}_\alpha|} \sqrt{\mathbf{K}} \left( \begin{array}{ccc} v_x^2 & v_xv_y & v_xv_z \\ v_yv_x & v_{y}^2 & v_yv_z \\ v_zv_x & v_zv_y &v_{z}^2 \\ \end{array} \right) \]

Note
We restrict the use of Forchheimer's law to diagonal permeability tensors so far. This might be changed to general tensors using eigenvalue decomposition to get \(\sqrt{\mathbf{K}}\)
Forchheimer's law specialized for different discretization schemes (e.g. Box, CCTpfa).
Forchheimer's law works with every model that contains Darcy's law.
Include dependency graph for forchheimerslaw.hh: