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

Generated by: LCOV version 1.11