LCOV - code coverage report
Current view: top level - include/materials - PorousFlow2PhasePP.h (source / functions) Hit Total Coverage
Test: porous_flow Test Coverage Lines: 1 1 100.0 %
Date: 2017-11-17 17:48:31 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 POROUSFLOW2PHASEPP_H
       9             : #define POROUSFLOW2PHASEPP_H
      10             : 
      11             : #include "PorousFlowVariableBase.h"
      12             : 
      13             : // Forward Declarations
      14             : class PorousFlowCapillaryPressure;
      15             : class PorousFlow2PhasePP;
      16             : 
      17             : template <>
      18             : InputParameters validParams<PorousFlow2PhasePP>();
      19             : 
      20             : /**
      21             :  * Base material designed to calculate fluid phase porepressure and saturation
      22             :  * for the two-phase situation assuming phase porepressures as the nonlinear variables.
      23             :  * Inherit and over-ride effectiveSaturation, dEffectiveSaturation, and
      24             :  * d2EffectiveSaturation to implement specific capillary pressure functions
      25             :  */
      26          78 : class PorousFlow2PhasePP : public PorousFlowVariableBase
      27             : {
      28             : public:
      29             :   PorousFlow2PhasePP(const InputParameters & parameters);
      30             : 
      31             : protected:
      32             :   virtual void initQpStatefulProperties() override;
      33             :   virtual void computeQpProperties() override;
      34             : 
      35             :   /**
      36             :    * Assemble std::vectors of porepressure and saturation at the nodes
      37             :    * and quadpoints, and return the capillary pressure
      38             :    */
      39             :   Real buildQpPPSS();
      40             : 
      41             :   /**
      42             :    * Effective saturation as a function of porepressure (a negative quantity).
      43             :    * Default is constant saturation = 1.
      44             :    * Over-ride in derived classes to implement other effective saturation forulations
      45             :    *
      46             :    * @param pressure porepressure (Pa): a negative quantity
      47             :    * @return effective saturation
      48             :    */
      49             :   virtual Real effectiveSaturation(Real pressure) const;
      50             : 
      51             :   /**
      52             :    * Derivative of effective saturation wrt to p.
      53             :    * Default = 0 for constant saturation.
      54             :    * Over-ride in derived classes to implement other effective saturation forulations
      55             :    *
      56             :    * @param pressure porepressure (Pa): a negative quantity
      57             :    * @return derivative of effective saturation wrt porepressure
      58             :    */
      59             :   virtual Real dEffectiveSaturation_dP(Real pressure) const;
      60             : 
      61             :   /**
      62             :    * Second derivative of effective saturation wrt to porepressure.
      63             :    * Default = 0 for constant saturation.
      64             :    * Over-ride in derived classes to implement other effective saturation forulations
      65             :    *
      66             :    * @param pressure porepressure (Pa): a negative quantity
      67             :    * @return second derivative of effective saturation wrt porepressure
      68             :    */
      69             :   virtual Real d2EffectiveSaturation_dP2(Real pressure) const;
      70             : 
      71             :   /// Nodal or quadpoint value of porepressure of the zero phase (eg, the water phase)
      72             :   const VariableValue & _phase0_porepressure;
      73             :   /// Gradient(phase0_porepressure) at the qps
      74             :   const VariableGradient & _phase0_gradp_qp;
      75             :   /// Moose variable number of the phase0 porepressure
      76             :   const unsigned int _phase0_porepressure_varnum;
      77             :   /// PorousFlow variable number of the phase0 porepressure
      78             :   const unsigned int _p0var;
      79             :   /// Nodal or quadpoint value of porepressure of the one phase (eg, the gas phase)
      80             :   const VariableValue & _phase1_porepressure;
      81             :   /// Gradient(phase1_porepressure) at the qps
      82             :   const VariableGradient & _phase1_gradp_qp;
      83             :   /// Moose variable number of the phase1 porepressure
      84             :   const unsigned int _phase1_porepressure_varnum;
      85             :   /// PorousFlow variable number of the phase1 porepressure
      86             :   const unsigned int _p1var;
      87             :   /// Capillary pressure UserObject
      88             :   /// Note: This pointer can be replaced with a reference once the deprecated PP
      89             :   /// materials have been removed
      90             :   const PorousFlowCapillaryPressure * _pc_uo;
      91             : };
      92             : 
      93             : #endif // POROUSFLOW2PHASEPP_H

Generated by: LCOV version 1.11