LCOV - code coverage report
Current view: top level - include/materials - PorousFlowPermeabilityKozenyCarman.h (source / functions) Hit Total Coverage
Test: porous_flow Test Coverage Lines: 1 1 100.0 %
Date: 2017-11-20 14:50:56 Functions: 1 2 50.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /****************************************************************/
       2             : /* MOOSE - Multiphysics Object Oriented Simulation Environment  */
       3             : /*                                                              */
       4             : /*          All contents are licensed under LGPL V2.1           */
       5             : /*             See LICENSE for full restrictions                */
       6             : /****************************************************************/
       7             : 
       8             : #ifndef POROUSFLOWPERMEABILITYKOZENYCARMAN_H
       9             : #define POROUSFLOWPERMEABILITYKOZENYCARMAN_H
      10             : 
      11             : #include "PorousFlowPermeabilityBase.h"
      12             : 
      13             : // Forward Declarations
      14             : class PorousFlowPermeabilityKozenyCarman;
      15             : 
      16             : template <>
      17             : InputParameters validParams<PorousFlowPermeabilityKozenyCarman>();
      18             : 
      19             : /**
      20             :  * Material designed to provide the permeability tensor which is calculated
      21             :  * from porosity using a form of the Kozeny-Carman equation (e.g. Oelkers
      22             :  * 1996: Reviews in Mineralogy v. 34, p. 131-192):
      23             :  * k = k_ijk * A * phi^n / (1 - phi)^m
      24             :  * where k_ijk is a tensor providing the anisotropy, phi is porosity,
      25             :  * n and m are positive scalar constants and A is given in one of the
      26             :  * following forms:
      27             :  * A = k0 * (1 - phi0)^m / phi0^n
      28             :  * where k0 and phi0 are a reference permeability and porosity,
      29             :  * or
      30             :  * A = f * d^2
      31             :  * where f is a scalar constant and d is grain diameter.
      32             :  */
      33          24 : class PorousFlowPermeabilityKozenyCarman : public PorousFlowPermeabilityBase
      34             : {
      35             : public:
      36             :   PorousFlowPermeabilityKozenyCarman(const InputParameters & parameters);
      37             : 
      38             : protected:
      39             :   void computeQpProperties() override;
      40             : 
      41             :   /// Reference scalar permeability in A = k0 * (1 - phi0)^m / phi0^n
      42             :   const Real _k0;
      43             : 
      44             :   /// Reference porosity in A = k0 * (1 - phi0)^m / phi0^n
      45             :   const Real _phi0;
      46             : 
      47             :   /// Multiplying factor in A = f * d^2
      48             :   const Real _f;
      49             : 
      50             :   /// Grain diameter in A = f * d^2
      51             :   const Real _d;
      52             : 
      53             :   /// Exponent in k = k_ijk * A * phi^n / (1 - phi)^m
      54             :   const Real _m;
      55             : 
      56             :   /// Exponent in k = k_ijk * A * phi^n / (1 - phi)^m
      57             :   const Real _n;
      58             : 
      59             :   /// Tensor multiplier k_ijk in k = k_ijk * A * phi^n / (1 - phi)^m
      60             :   const RealTensorValue _k_anisotropy;
      61             : 
      62             :   /// quadpoint porosity
      63             :   const MaterialProperty<Real> & _porosity_qp;
      64             : 
      65             :   /// d(quadpoint porosity)/d(PorousFlow variable)
      66             :   const MaterialProperty<std::vector<Real>> & _dporosity_qp_dvar;
      67             : 
      68             :   /// d(quadpoint porosity)/d(grad(PorousFlow variable))
      69             :   const MaterialProperty<std::vector<RealGradient>> & _dporosity_qp_dgradvar;
      70             : 
      71             :   /// Name of porosity-permeability relationship
      72             :   const enum class PoropermFunction { kozeny_carman_fd2, kozeny_carman_phi0 } _poroperm_function;
      73             : 
      74             :   /// Multiplying factor in k = k_ijk * A * phi^n / (1 - phi)^m
      75             :   Real _A;
      76             : };
      77             : 
      78             : #endif // POROUSFLOWPERMEABILITYKOZENYCARMAN_H

Generated by: LCOV version 1.11