www.mooseframework.org
PorousFlowMassVolumetricExpansion.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "TimeDerivative.h"
13 #include "PorousFlowDictator.h"
14 #include "RankTwoTensor.h"
15 
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 
PorousFlowDictator.h
PorousFlowMassVolumetricExpansion::_strain_rate_qp
const MaterialProperty< Real > & _strain_rate_qp
Strain rate.
Definition: PorousFlowMassVolumetricExpansion.h:86
PorousFlowMassVolumetricExpansion::computeQpResidual
virtual Real computeQpResidual() override
Definition: PorousFlowMassVolumetricExpansion.C:73
PorousFlowMassVolumetricExpansion::_fluid_density
const MaterialProperty< std::vector< Real > > & _fluid_density
Fluid density.
Definition: PorousFlowMassVolumetricExpansion.h:68
PorousFlowMassVolumetricExpansion::_strain_at_nearest_qp
const bool _strain_at_nearest_qp
Whether the porosity uses the volumetric strain at the closest quadpoint.
Definition: PorousFlowMassVolumetricExpansion.h:53
PorousFlowMassVolumetricExpansion::_porosity
const MaterialProperty< Real > & _porosity
Porosity.
Definition: PorousFlowMassVolumetricExpansion.h:56
PorousFlowMassVolumetricExpansion::_fluid_saturation
const MaterialProperty< std::vector< Real > > & _fluid_saturation
Fluid saturation.
Definition: PorousFlowMassVolumetricExpansion.h:74
PorousFlowMassVolumetricExpansion::_var_is_porflow_var
const bool _var_is_porflow_var
Whether the Variable for this Kernel is a PorousFlow variable according to the Dictator.
Definition: PorousFlowMassVolumetricExpansion.h:44
PorousFlowMassVolumetricExpansion::_ndisp
unsigned int _ndisp
Number of displacement variables.
Definition: PorousFlowMassVolumetricExpansion.h:47
validParams< PorousFlowMassVolumetricExpansion >
InputParameters validParams< PorousFlowMassVolumetricExpansion >()
Definition: PorousFlowMassVolumetricExpansion.C:18
PorousFlowMassVolumetricExpansion::_dictator
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Definition: PorousFlowMassVolumetricExpansion.h:41
PorousFlowDictator
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
Definition: PorousFlowDictator.h:71
PorousFlowMassVolumetricExpansion::_dfluid_density_dvar
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_dvar
d(fluid density)/d(PorousFlow variable)
Definition: PorousFlowMassVolumetricExpansion.h:71
PorousFlowMassVolumetricExpansion::_mass_frac
const MaterialProperty< std::vector< std::vector< Real > > > & _mass_frac
Mass fraction.
Definition: PorousFlowMassVolumetricExpansion.h:80
PorousFlowMassVolumetricExpansion::computedMassQpJac
Real computedMassQpJac(unsigned int jvar) const
Derivative of mass part of the residual with respect to the Variable with variable number jvar.
Definition: PorousFlowMassVolumetricExpansion.C:126
PorousFlowMassVolumetricExpansion::computedVolQpJac
Real computedVolQpJac(unsigned int jvar) const
Derivative of volumetric-strain part of the residual with respect to the Variable with variable numbe...
Definition: PorousFlowMassVolumetricExpansion.C:108
PorousFlowMassVolumetricExpansion::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition: PorousFlowMassVolumetricExpansion.C:102
PorousFlowMassVolumetricExpansion::_dporosity_dvar
const MaterialProperty< std::vector< Real > > & _dporosity_dvar
d(porosity)/d(PorousFlow variable)
Definition: PorousFlowMassVolumetricExpansion.h:59
PorousFlowMassVolumetricExpansion::_fluid_component
const unsigned int _fluid_component
The fluid component index.
Definition: PorousFlowMassVolumetricExpansion.h:38
PorousFlowMassVolumetricExpansion::_dporosity_dgradvar
const MaterialProperty< std::vector< RealGradient > > & _dporosity_dgradvar
d(porosity)/d(grad PorousFlow variable)
Definition: PorousFlowMassVolumetricExpansion.h:62
PorousFlowMassVolumetricExpansion::_dfluid_saturation_dvar
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_saturation_dvar
d(fluid saturation)/d(PorousFlow variable)
Definition: PorousFlowMassVolumetricExpansion.h:77
PorousFlowMassVolumetricExpansion::_disp_var_num
std::vector< unsigned int > _disp_var_num
Variable number of the displacements variables.
Definition: PorousFlowMassVolumetricExpansion.h:50
PorousFlowMassVolumetricExpansion::_nearest_qp
const MaterialProperty< unsigned int > *const _nearest_qp
The nearest qp to the node.
Definition: PorousFlowMassVolumetricExpansion.h:65
PorousFlowMassVolumetricExpansion::_dstrain_rate_qp_dvar
const MaterialProperty< std::vector< RealGradient > > & _dstrain_rate_qp_dvar
d(strain rate)/d(PorousFlow variable)
Definition: PorousFlowMassVolumetricExpansion.h:89
PorousFlowMassVolumetricExpansion
Kernel = mass_component * d(volumetric_strain)/dt where mass_component = porosity*sum_phases(density_...
Definition: PorousFlowMassVolumetricExpansion.h:27
PorousFlowMassVolumetricExpansion::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: PorousFlowMassVolumetricExpansion.C:96
PorousFlowMassVolumetricExpansion::_dmass_frac_dvar
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
d(mass fraction)/d(PorousFlow variable)
Definition: PorousFlowMassVolumetricExpansion.h:83
PorousFlowMassVolumetricExpansion::PorousFlowMassVolumetricExpansion
PorousFlowMassVolumetricExpansion(const InputParameters &parameters)
Definition: PorousFlowMassVolumetricExpansion.C:36