LCOV - code coverage report
Current view: top level - include/kernels - PorousFlowDispersiveFlux.h (source / functions) Hit Total Coverage
Test: porous_flow Test Coverage Lines: 1 1 100.0 %
Date: 2017-11-21 14:47:27 Functions: 2 2 100.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 POROUSFLOWDISPERSIVEFLUX_H
       9             : #define POROUSFLOWDISPERSIVEFLUX_H
      10             : 
      11             : #include "Kernel.h"
      12             : #include "PorousFlowDictator.h"
      13             : #include "RankTwoTensor.h"
      14             : 
      15             : class PorousFlowDispersiveFlux;
      16             : 
      17             : template <>
      18             : InputParameters validParams<PorousFlowDispersiveFlux>();
      19             : 
      20             : /**
      21             :  * Dispersive flux of component k in fluid phase alpha. Includes the effects
      22             :  * of both molecular diffusion and hydrodynamic dispersion.
      23             :  */
      24          18 : class PorousFlowDispersiveFlux : public Kernel
      25             : {
      26             : public:
      27             :   PorousFlowDispersiveFlux(const InputParameters & parameters);
      28             : 
      29             : protected:
      30             :   virtual Real computeQpResidual() override;
      31             : 
      32             :   virtual Real computeQpJacobian() override;
      33             : 
      34             :   virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
      35             : 
      36             :   /**
      37             :    * Derivative of the residual with respect to the PorousFLow Variable
      38             :    * with variable number jvar.
      39             :    * This is used by both computeQpJacobian and computeQpOffDiagJacobian
      40             :    * @param jvar take the derivative wrt this variable number
      41             :    * @return dResidual_dVar
      42             :    */
      43             :   Real computeQpJac(unsigned int jvar) const;
      44             : 
      45             :   /// Fluid density for each phase (at the qp)
      46             :   const MaterialProperty<std::vector<Real>> & _fluid_density_qp;
      47             : 
      48             :   /// Derivative of the fluid density for each phase wrt PorousFlow variables (at the qp)
      49             :   const MaterialProperty<std::vector<std::vector<Real>>> & _dfluid_density_qp_dvar;
      50             : 
      51             :   /// Gradient of mass fraction of each component in each phase
      52             :   const MaterialProperty<std::vector<std::vector<RealGradient>>> & _grad_mass_frac;
      53             : 
      54             :   /// Derivative of mass fraction wrt PorousFlow variables
      55             :   const MaterialProperty<std::vector<std::vector<std::vector<Real>>>> & _dmass_frac_dvar;
      56             : 
      57             :   /// Porosity at the qps
      58             :   const MaterialProperty<Real> & _porosity_qp;
      59             : 
      60             :   /// Derivative of porosity wrt PorousFlow variables (at the qps)
      61             :   const MaterialProperty<std::vector<Real>> & _dporosity_qp_dvar;
      62             : 
      63             :   /// Tortuosity tau_0 * tau_{alpha} for fluid phase alpha
      64             :   const MaterialProperty<std::vector<Real>> & _tortuosity;
      65             : 
      66             :   /// Derivative of tortuosity wrt PorousFlow variables
      67             :   const MaterialProperty<std::vector<std::vector<Real>>> & _dtortuosity_dvar;
      68             : 
      69             :   /// Diffusion coefficients of component k in fluid phase alpha
      70             :   const MaterialProperty<std::vector<std::vector<Real>>> & _diffusion_coeff;
      71             : 
      72             :   /// Derivative of the diffusion coefficients wrt PorousFlow variables
      73             :   const MaterialProperty<std::vector<std::vector<std::vector<Real>>>> & _ddiffusion_coeff_dvar;
      74             : 
      75             :   /// PorousFlow Dictator UserObject
      76             :   const PorousFlowDictator & _dictator;
      77             : 
      78             :   /// Index of the fluid component that this kernel acts on
      79             :   const unsigned int _fluid_component;
      80             : 
      81             :   /// The number of fluid phases
      82             :   const unsigned int _num_phases;
      83             : 
      84             :   /// Identity tensor
      85             :   const RankTwoTensor _identity_tensor;
      86             : 
      87             :   /// Relative permeability of each phase
      88             :   const MaterialProperty<std::vector<Real>> & _relative_permeability;
      89             : 
      90             :   /// Derivative of relative permeability wrt PorousFlow variables
      91             :   const MaterialProperty<std::vector<std::vector<Real>>> & _drelative_permeability_dvar;
      92             : 
      93             :   /// Viscosity of each component in each phase
      94             :   const MaterialProperty<std::vector<Real>> & _fluid_viscosity;
      95             : 
      96             :   /// Derivative of viscosity wrt PorousFlow variables
      97             :   const MaterialProperty<std::vector<std::vector<Real>>> & _dfluid_viscosity_dvar;
      98             : 
      99             :   /// Permeability of porous material
     100             :   const MaterialProperty<RealTensorValue> & _permeability;
     101             : 
     102             :   /// Derivative of permeability wrt PorousFlow variables
     103             :   const MaterialProperty<std::vector<RealTensorValue>> & _dpermeability_dvar;
     104             : 
     105             :   /// d(permeabiity)/d(grad(porous-flow variable))
     106             :   const MaterialProperty<std::vector<std::vector<RealTensorValue>>> & _dpermeability_dgradvar;
     107             : 
     108             :   /// Gradient of the pore pressure in each phase
     109             :   const MaterialProperty<std::vector<RealGradient>> & _grad_p;
     110             : 
     111             :   /// Derivative of Grad porepressure in each phase wrt grad(PorousFlow variables)
     112             :   const MaterialProperty<std::vector<std::vector<Real>>> & _dgrad_p_dgrad_var;
     113             : 
     114             :   /// Derivative of Grad porepressure in each phase wrt PorousFlow variables
     115             :   const MaterialProperty<std::vector<std::vector<RealGradient>>> & _dgrad_p_dvar;
     116             : 
     117             :   /// Gravitational acceleration
     118             :   const RealVectorValue _gravity;
     119             : 
     120             :   /// Longitudinal dispersivity for each phase
     121             :   const std::vector<Real> _disp_long;
     122             : 
     123             :   /// Transverse dispersivity for each phase
     124             :   const std::vector<Real> _disp_trans;
     125             : };
     126             : 
     127             : #endif // POROUSFLOWDISPERSIVEFLUX_H

Generated by: LCOV version 1.11