LCOV - code coverage report
Current view: top level - include/kernels - PorousFlowFullySaturatedMassTimeDerivative.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 POROUSFLOWFULLYSATURATEDMASSTIMEDERIVATIVE_H
       9             : #define POROUSFLOWFULLYSATURATEDMASSTIMEDERIVATIVE_H
      10             : 
      11             : #include "TimeKernel.h"
      12             : #include "PorousFlowDictator.h"
      13             : 
      14             : class PorousFlowFullySaturatedMassTimeDerivative;
      15             : 
      16             : template <>
      17             : InputParameters validParams<PorousFlowFullySaturatedMassTimeDerivative>();
      18             : 
      19             : /**
      20             :  * Time derivative of fluid mass suitable for fully-saturated,
      21             :  * single-phase, single-component simulations.
      22             :  * No mass-lumping is used
      23             :  */
      24          18 : class PorousFlowFullySaturatedMassTimeDerivative : public TimeKernel
      25             : {
      26             : public:
      27             :   PorousFlowFullySaturatedMassTimeDerivative(const InputParameters & parameters);
      28             : 
      29             : protected:
      30             :   virtual Real computeQpResidual() override;
      31             :   virtual Real computeQpJacobian() override;
      32             :   virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
      33             : 
      34             :   /// Jacobian contribution for the PorousFlow variable pvar
      35             :   Real computeQpJac(unsigned int pvar);
      36             : 
      37             :   /// PorousFlow UserObject
      38             :   const PorousFlowDictator & _dictator;
      39             : 
      40             :   /// Whether the Variable for this Kernel is a PorousFlow variable
      41             :   const bool _var_is_porflow_var;
      42             : 
      43             :   /// If true then the Kernel is the time derivative of the fluid mass, otherwise it is the derivative of the fluid volume
      44             :   const bool _multiply_by_density;
      45             : 
      46             :   /// Determines whether mechanical and/or thermal contributions should be added to the residual
      47             :   const enum class CouplingTypeEnum {
      48             :     Hydro,
      49             :     ThermoHydro,
      50             :     HydroMechanical,
      51             :     ThermoHydroMechanical
      52             :   } _coupling_type;
      53             : 
      54             :   /// Whether thermal contributions should be added to the residual
      55             :   const bool _includes_thermal;
      56             : 
      57             :   /// Whether mechanical contributions should be added to the residual
      58             :   const bool _includes_mechanical;
      59             : 
      60             :   /// Biot coefficient (used in simulations involving Mechanical deformations)
      61             :   const Real _biot_coefficient;
      62             : 
      63             :   /// Constant Biot modulus
      64             :   const MaterialProperty<Real> & _biot_modulus;
      65             : 
      66             :   /// Constant volumetric thermal expansion coefficient
      67             :   const MaterialProperty<Real> * const _thermal_coeff;
      68             : 
      69             :   /// Quadpoint fluid density for each phase
      70             :   const MaterialProperty<std::vector<Real>> * const _fluid_density;
      71             : 
      72             :   /// derivative of fluid density for each phase with respect to the PorousFlow variables
      73             :   const MaterialProperty<std::vector<std::vector<Real>>> * const _dfluid_density_dvar;
      74             : 
      75             :   /// Quadpoint pore pressure in each phase
      76             :   const MaterialProperty<std::vector<Real>> & _pp;
      77             : 
      78             :   /// Old value of quadpoint pore pressure in each phase
      79             :   const MaterialProperty<std::vector<Real>> & _pp_old;
      80             : 
      81             :   /// Derivative of porepressure in each phase wrt the PorousFlow variables
      82             :   const MaterialProperty<std::vector<std::vector<Real>>> & _dpp_dvar;
      83             : 
      84             :   /// Quadpoint temperature
      85             :   const MaterialProperty<Real> * const _temperature;
      86             : 
      87             :   /// Old value of quadpoint temperature
      88             :   const MaterialProperty<Real> * const _temperature_old;
      89             : 
      90             :   /// Derivative of temperature wrt the PorousFlow variables
      91             :   const MaterialProperty<std::vector<Real>> * const _dtemperature_dvar;
      92             : 
      93             :   /// Strain rate
      94             :   const MaterialProperty<Real> * const _strain_rate;
      95             : 
      96             :   /// Derivative of strain rate wrt the PorousFlow variables
      97             :   const MaterialProperty<std::vector<RealGradient>> * const _dstrain_rate_dvar;
      98             : };
      99             : 
     100             : #endif // POROUSFLOWFULLYSATURATEDMASSTIMEDERIVATIVE_H

Generated by: LCOV version 1.11