www.mooseframework.org
PorousFlowMassVolumetricExpansion.h
Go to the documentation of this file.
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 POROUSFLOWMASSVOLUMETRICEXPANSION_H
9 #define POROUSFLOWMASSVOLUMETRICEXPANSION_H
10 
11 #include "TimeDerivative.h"
12 #include "PorousFlowDictator.h"
13 #include "RankTwoTensor.h"
14 
15 // Forward Declarations
17 
18 template <>
20 
27 class PorousFlowMassVolumetricExpansion : public TimeKernel
28 {
29 public:
30  PorousFlowMassVolumetricExpansion(const InputParameters & parameters);
31 
32 protected:
33  virtual Real computeQpResidual() override;
34  virtual Real computeQpJacobian() override;
35  virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
36 
38  const unsigned int _fluid_component;
39 
42 
44  const bool _var_is_porflow_var;
45 
47  unsigned int _ndisp;
48 
50  std::vector<unsigned int> _disp_var_num;
51 
54 
56  const MaterialProperty<Real> & _porosity;
57 
59  const MaterialProperty<std::vector<Real>> & _dporosity_dvar;
60 
62  const MaterialProperty<std::vector<RealGradient>> & _dporosity_dgradvar;
63 
65  const MaterialProperty<unsigned int> * const _nearest_qp;
66 
68  const MaterialProperty<std::vector<Real>> & _fluid_density;
69 
71  const MaterialProperty<std::vector<std::vector<Real>>> & _dfluid_density_dvar;
72 
74  const MaterialProperty<std::vector<Real>> & _fluid_saturation;
75 
77  const MaterialProperty<std::vector<std::vector<Real>>> & _dfluid_saturation_dvar;
78 
80  const MaterialProperty<std::vector<std::vector<Real>>> & _mass_frac;
81 
83  const MaterialProperty<std::vector<std::vector<std::vector<Real>>>> & _dmass_frac_dvar;
84 
86  const MaterialProperty<Real> & _strain_rate_qp;
87 
89  const MaterialProperty<std::vector<RealGradient>> & _dstrain_rate_qp_dvar;
90 
97  Real computedMassQpJac(unsigned int jvar) const;
98 
106  Real computedVolQpJac(unsigned int jvar) const;
107 };
108 
109 #endif // POROUSFLOWMASSVOLUMETRICEXPANSION_H
const MaterialProperty< std::vector< std::vector< Real > > > & _mass_frac
mass fraction
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_saturation_dvar
d(fluid saturation)/d(porous-flow variable)
PorousFlowMassVolumetricExpansion(const InputParameters &parameters)
std::vector< unsigned int > _disp_var_num
variable number of the displacements variables
const bool _var_is_porflow_var
whether the Variable for this Kernel is a porous-flow variable according to the Dictator ...
const MaterialProperty< std::vector< Real > > & _dporosity_dvar
d(porosity)/d(porous-flow variable)
const MaterialProperty< Real > & _porosity
porosity
const unsigned int _fluid_component
the fluid component index
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
d(mass fraction)/d(porous-flow variable)
const MaterialProperty< std::vector< Real > > & _fluid_saturation
fluid saturation
const MaterialProperty< unsigned int > *const _nearest_qp
the nearest qp to the node
const PorousFlowDictator & _dictator
holds info on the Porous Flow variables
const MaterialProperty< std::vector< Real > > & _fluid_density
fluid density
const MaterialProperty< std::vector< RealGradient > > & _dstrain_rate_qp_dvar
d(strain rate)/d(porous-flow variable)
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Real computedMassQpJac(unsigned int jvar) const
Derivative of mass part of the residual with respect to the Variable with variable number jvar...
unsigned int _ndisp
number of displacement variables
Kernel = mass_component * d(volumetric_strain)/dt where mass_component = porosity*sum_phases(density_...
InputParameters validParams< PorousFlowMassVolumetricExpansion >()
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
const MaterialProperty< Real > & _strain_rate_qp
strain rate
Real computedVolQpJac(unsigned int jvar) const
Derivative of volumetric-strain part of the residual with respect to the Variable with variable numbe...
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_dvar
d(fluid density)/d(porous-flow variable)
const MaterialProperty< std::vector< RealGradient > > & _dporosity_dgradvar
d(porosity)/d(grad porous-flow variable)
const bool _strain_at_nearest_qp
whether the porosity uses the volumetric strain at the closest quadpoint