LCOV - code coverage report
Current view: top level - include/materials - PorousFlowPorosityExponentialBase.h (source / functions) Hit Total Coverage
Test: porous_flow Test Coverage Lines: 0 1 0.0 %
Date: 2017-11-20 14:50:56 Functions: 0 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 POROUSFLOWPOROSITYEXPONENTIALBASE_H
       9             : #define POROUSFLOWPOROSITYEXPONENTIALBASE_H
      10             : 
      11             : #include "PorousFlowPorosityBase.h"
      12             : 
      13             : // Forward Declarations
      14             : class PorousFlowPorosityExponentialBase;
      15             : 
      16             : template <>
      17             : InputParameters validParams<PorousFlowPorosityExponentialBase>();
      18             : 
      19             : /**
      20             :  * Base class Material designed to provide the porosity.
      21             :  * In this class
      22             :  * porosity = a + (b - a) * exp(decay)
      23             :  * where
      24             :  * a = atNegInfinityQp()
      25             :  * b = atZeroQp()
      26             :  * decay = decayQp()
      27             :  * Since this expression can become negative for decay > 0,
      28             :  * if ensure_positive = true then for decay > 0 the following
      29             :  * expression is used instead:
      30             :  * porosity = a + (b - a) * exp(c * (1 - Exp(- decay / c)))
      31             :  * where c = log(a/(b-a))
      32             :  * This latter expression is C1 continuous at decay=0 with
      33             :  * the former expression.  It is monotonically decreasing
      34             :  * with "decay" and is positive.
      35             :  */
      36           0 : class PorousFlowPorosityExponentialBase : public PorousFlowPorosityBase
      37             : {
      38             : public:
      39             :   PorousFlowPorosityExponentialBase(const InputParameters & parameters);
      40             : 
      41             : protected:
      42             :   virtual void initQpStatefulProperties() override;
      43             :   virtual void computeQpProperties() override;
      44             : 
      45             :   /// Returns "a" at the quadpoint (porosity = a + (b - a) * exp(decay))
      46             :   virtual Real atNegInfinityQp() const = 0;
      47             : 
      48             :   /// Returns "b" at the quadpoint (porosity = a + (b - a) * exp(decay))
      49             :   virtual Real atZeroQp() const = 0;
      50             : 
      51             :   /// Returns "decay" at the quadpoint (porosity = a + (b - a) * exp(decay))
      52             :   virtual Real decayQp() const = 0;
      53             : 
      54             :   /// d(decay)/d(porous-flow variable pvar)
      55             :   virtual Real ddecayQp_dvar(unsigned pvar) const = 0;
      56             : 
      57             :   /// d(decay)/d(grad(porous-flow variable pvar))
      58             :   virtual RealGradient ddecayQp_dgradvar(unsigned pvar) const = 0;
      59             : 
      60             :   /// When calculating nodal porosity, use the strain at the nearest quadpoint to the node
      61             :   const bool _strain_at_nearest_qp;
      62             : 
      63             :   /**
      64             :    * for decayQp() > 0, porosity can be negative when using
      65             :    * porosity = a + (b - a) * exp(decay).
      66             :    * This expression is modified if ensure_positive = true to read
      67             :    * porosity = a + (b - a) * exp(c * (1 - Exp(- decay / c)))
      68             :    * where c = log(a/(b-a))
      69             :    */
      70             :   const bool _ensure_positive;
      71             : };
      72             : 
      73             : #endif // POROUSFLOWPOROSITYEXPONENTIALBASE_H

Generated by: LCOV version 1.11