LCOV - code coverage report
Current view: top level - include/materials - PorousFlowPermeabilityExponential.h (source / functions) Hit Total Coverage
Test: porous_flow Test Coverage Lines: 1 1 100.0 %
Date: 2017-11-21 14:47:27 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 POROUSFLOWPERMEABILITYEXPONENTIAL_H
       9             : #define POROUSFLOWPERMEABILITYEXPONENTIAL_H
      10             : 
      11             : #include "PorousFlowPermeabilityBase.h"
      12             : 
      13             : // Forward Declarations
      14             : class PorousFlowPermeabilityExponential;
      15             : 
      16             : template <>
      17             : InputParameters validParams<PorousFlowPermeabilityExponential>();
      18             : 
      19             : /**
      20             :  * Material designed to provide the permeability tensor which is calculated
      21             :  * from porosity using the equation:
      22             :  * permeability = k_ijk * k, with k = BB * exp(AA * phi)
      23             :  * where k_ijk is a tensor providing the anisotropy, phi is porosity, and
      24             :  * A and B are empirical constants.
      25             :  * The user can provide input for the equation expressed in any of the
      26             :  * following 3 forms:
      27             :  * log k = A * phi + B
      28             :  * ln k = A * phi + B
      29             :  * k = B * exp(A * phi)
      30             :  * A and B are then converted to AA and BB.
      31             :  */
      32          18 : class PorousFlowPermeabilityExponential : public PorousFlowPermeabilityBase
      33             : {
      34             : public:
      35             :   PorousFlowPermeabilityExponential(const InputParameters & parameters);
      36             : 
      37             : protected:
      38             :   void computeQpProperties() override;
      39             : 
      40             :   /// Empirical constant A
      41             :   const Real _A;
      42             : 
      43             :   /// Empirical constant B
      44             :   const Real _B;
      45             : 
      46             :   /// Tensor multiplier k_ijk in k = k_ijk * A * phi^n / (1 - phi)^m
      47             :   const RealTensorValue _k_anisotropy;
      48             : 
      49             :   /// quadpoint porosity
      50             :   const MaterialProperty<Real> & _porosity_qp;
      51             : 
      52             :   /// d(quadpoint porosity)/d(PorousFlow variable)
      53             :   const MaterialProperty<std::vector<Real>> & _dporosity_qp_dvar;
      54             : 
      55             :   /// d(quadpoint porosity)/d(grad(PorousFlow variable))
      56             :   const MaterialProperty<std::vector<RealGradient>> & _dporosity_qp_dgradvar;
      57             : 
      58             :   /// Name of porosity-permeability relationship
      59             :   const enum class PoropermFunction { log_k, ln_k, exp_k } _poroperm_function;
      60             : 
      61             :   /// Empirical constant AA in k = k_ijk * BB * exp(AA * phi)
      62             :   Real _AA;
      63             : 
      64             :   /// Empirical constant BB in k = k_ijk * BB * exp(AA * phi)
      65             :   Real _BB;
      66             : };
      67             : 
      68             : #endif // POROUSFLOWPERMEABILITYEXPONENTIAL_H

Generated by: LCOV version 1.11