diff --git a/doc/handbook/dumux-handbook.bib b/doc/handbook/dumux-handbook.bib index 8213ef14e3bc2554515b2add5704839f0011bf46..e2f7c103f890fbd122120f6955786a0b40a80757 100644 --- a/doc/handbook/dumux-handbook.bib +++ b/doc/handbook/dumux-handbook.bib @@ -1996,3 +1996,15 @@ url={https://doi.org/10.1007/s10765-012-1254-5} year = {1975}, url = {https://link.springer.com/content/pdf/10.1007/BF00867119.pdf} } + +@article{Fichot2006, +title = {The impact of thermal non-equilibrium and large-scale 2D/3D effects on debris bed reflooding and coolability}, +journal = {Nuclear Engineering and Design}, +volume = {236}, +number = {19}, +pages = {2144-2163}, +year = {2006}, +issn = {0029-5493}, +doi = {10.1016/j.nucengdes.2006.03.059}, +author = {F. Fichot and F. Duval and N. Trégourès and C. Béchaud and M. Quintard}, +} diff --git a/dumux/flux/darcyslaw.hh b/dumux/flux/darcyslaw.hh index d9fe5e76da35659b08419d1517345f2006ea5c7e..f07e3a7648eca3cc435b043e257c62317e59a597 100644 --- a/dumux/flux/darcyslaw.hh +++ b/dumux/flux/darcyslaw.hh @@ -21,7 +21,7 @@ * \ingroup Flux * \brief Advective fluxes according to Darcy's law * - * Darcy's law describes the advective flux in porous media on the macro-scale and is valid in the creeping flow regime (Reynolds number << 1). + * Darcy's law describes the advective flux in porous media on the macro-scale and is valid in the creeping flow regime (Reynolds number << 1, Forchheimer extensions is also implemented->see forcheimerslaw.hh). * The advective flux characterizes the bulk flow for each fluid phase including all components in case of compositional flow. * It is driven by the potential gradient \f$\textbf{grad}\, p - \varrho {\textbf g}\f$, * accounting for both pressure-driven and gravitationally-driven flow. diff --git a/dumux/flux/forchheimerslaw.hh b/dumux/flux/forchheimerslaw.hh index 021cdb560110795a534c6a98672b6c8ed23e8038..14d68b9d96aa7238e5d2765fb6b4945d8f13411c 100644 --- a/dumux/flux/forchheimerslaw.hh +++ b/dumux/flux/forchheimerslaw.hh @@ -19,10 +19,65 @@ /*! * \file * \ingroup Flux - * \brief Forchheimer's law specialized for different discretization schemes - * This file contains the data which is required to calculate - * volume and mass fluxes of fluid phases over a face of a finite volume by means - * of the Forchheimer approximation. Specializations are provided for the different discretization methods. + * \brief Advective fluxes according to Forchheims's law (extends Darcy's law by an nonlinear drag) + * + * 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 \cite nield2006 + * + * For multiphase flow, the relative passability \f$ \eta_r\f$ is the "Forchheimer-equivalent" to the relative + * permeability \f$ k_r\f$. + * We use the same function for \f$ \eta_r\f$ as for \f$ k_r \f$ (Van-Genuchten, Brooks-Corey, linear), other authors use a simple + * power law e.g.: \f$\eta_{rw} = S_w^3\f$ + * + * This leads to the equation in the form: + * \f[ \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 + * \f] + * This already includes the assumption \f$ k_r(S_w) = \eta_r(S_w)\f$: + * - \f$\eta_{rw} = S_w^x\f$ looks very similar to e.g. Van Genuchten relative permeabilities + * - Fichot et al. (2006) \cite Fichot2006 state that several authors claim + * that \f$ k_r(S_w), \eta_r(S_w)\f$ can be chosen equal + * - It leads to the equation not degenerating for the case of \f$S_w=1\f$, 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 \f$S_w=1\f$. + * + * This non-linear equations is solved for \f$\mathbf{v_\alpha}\f$ using Newton's method + * and an analytical derivative w.r.t. \f$\mathbf{v_\alpha}\f$. + * + * The gradient of the Forchheimer relations looks as follows (mind that \f$\sqrt{\mathbf{K}}\f$ + * is a tensor): + * + * \f[ 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) + * \f] + * + * \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 \f$\sqrt{\mathbf{K}}\f$ + * \note Forchheimer's law specialized for different discretization schemes (e.g. Box, CCTpfa). + * \note Forchheimer's law works with every model that contains Darcy's law. */ #ifndef DUMUX_FLUX_FORCHHEIMERS_LAW_HH #define DUMUX_FLUX_FORCHHEIMERS_LAW_HH diff --git a/dumux/flux/forchheimervelocity.hh b/dumux/flux/forchheimervelocity.hh index 7ea9ae297486465a6d0d10752419a3f6ac5a40e7..188696fe1f61e1c92eb94c29511a5787b9e40108 100644 --- a/dumux/flux/forchheimervelocity.hh +++ b/dumux/flux/forchheimervelocity.hh @@ -41,6 +41,8 @@ namespace Dumux { /*! * \ingroup Flux * \brief Forchheimer's law + * For a detailed description see dumux/flow/forchheimerslaw.hh + * * This file contains the calculation of the Forchheimer velocity * for a given Darcy velocity */ @@ -60,65 +62,7 @@ class ForchheimerVelocity using DimWorldVector = Dune::FieldVector<Scalar, dimWorld>; using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>; - /*! \brief Compute the Forchheimer velocity of a phase at - * the given sub-control volume face using the Forchheimer equation. - * - * - * see e.g. Nield & Bejan: Convection in Porous Media \cite nield2006 - * - * The relative passability \f$ \eta_r\f$ is the "Forchheimer-equivalent" to the relative - * permeability \f$ k_r\f$. - * We use the same function as for \f$ k_r \f$ (VG, BC, linear) other authors use a simple - * power law e.g.: \f$\eta_{rw} = S_w^3\f$ - * - * Some rearrangements have been made to the original Forchheimer relation: - * - * \f[ \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 - * \f] - * - * This already includes the assumption \f$ k_r(S_w) = \eta_r(S_w)\f$: - * - \f$\eta_{rw} = S_w^x\f$ looks very similar to e.g. Van Genuchten relative permeabilities - * - Fichot, et al. (2006), Nuclear Engineering and Design, state that several authors claim - * that \f$ k_r(S_w), \eta_r(S_w)\f$ can be chosen equal - * - It leads to the equation not degenerating for the case of \f$S_w=1\f$, 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 \f$S_w=1\f$. - * - * This non-linear equations is solved for \f$\mathbf{v_\alpha}\f$ using Newton's method - * and an analytical derivative w.r.t. \f$\mathbf{v_\alpha}\f$. - * - * The gradient of the Forchheimer relations looks as follows (mind that \f$\sqrt{\mathbf{K}}\f$ - * is a tensor): - * - * \f[ 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) - * \f] - * - * \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 \f$\sqrt{\mathbf{K}}\f$ - */ + template<class ElementVolumeVariables> static DimWorldVector velocity(const FVElementGeometry& fvGeometry, const ElementVolumeVariables& elemVolVars,