www.mooseframework.org
PorousFlowHeatVolumetricExpansion.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 
20 {
21 public:
23 
25 
26 protected:
27  virtual Real computeQpResidual() override;
28  virtual Real computeQpJacobian() override;
29  virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
30 
33 
35  const bool _var_is_porflow_var;
36 
38  const unsigned int _num_phases;
39 
41  const bool _fluid_present;
42 
45 
48 
51 
54 
57 
60 
63 
66 
69 
72 
75 
78 
81 
84 
87 
94  Real computedEnergyQpJac(unsigned int jvar);
95 
103  Real computedVolQpJac(unsigned int jvar);
104 };
Real computedVolQpJac(unsigned int jvar)
Derivative of volumetric-strain part of the residual with respect to the Variable with variable numbe...
const bool _fluid_present
Whether fluid is present.
Real computedEnergyQpJac(unsigned int jvar)
Derivative of energy part of the residual with respect to the Variable with variable number jvar...
Kernel = energy_density * d(volumetric_strain)/dt which is lumped to the nodes.
const MaterialProperty< std::vector< Real > > & _dporosity_dvar
d(porosity)/d(PorousFlow variable)
const MaterialProperty< std::vector< Real > > *const _fluid_saturation_nodal
Nodal fluid saturation.
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
const MaterialProperty< std::vector< Real > > *const _fluid_density
Nodal fluid density.
const MaterialProperty< std::vector< std::vector< Real > > > *const _denergy_nodal_dvar
d(internal energy)/d(PorousFlow variable)
PorousFlowHeatVolumetricExpansion(const InputParameters &parameters)
const MaterialProperty< unsigned int > *const _nearest_qp
The nearest qp to the node.
const MaterialProperty< Real > & _strain_rate_qp
Strain rate.
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_saturation_nodal_dvar
d(nodal fluid saturation)/d(PorousFlow variable)
const MaterialProperty< Real > & _porosity
Porosity.
const MaterialProperty< std::vector< Real > > & _drock_energy_nodal_dvar
d(nodal rock energy density)/d(PorousFlow variable)
const MaterialProperty< std::vector< Real > > *const _energy_nodal
Internal energy of the phases, evaluated at the nodes.
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_density_dvar
d(nodal fluid density)/d(PorousFlow variable)
const MaterialProperty< std::vector< RealGradient > > & _dstrain_rate_qp_dvar
d(strain rate)/d(PorousFlow variable)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MaterialProperty< Real > & _rock_energy_nodal
Nodal rock energy density.
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
const InputParameters & parameters() const
const MaterialProperty< std::vector< RealGradient > > & _dporosity_dgradvar
d(porosity)/d(grad PorousFlow variable)
const unsigned int _num_phases
Number of fluid phases.
const bool _var_is_porflow_var
Whether the Variable for this Kernel is a PorousFlow variable according to the Dictator.
const bool _strain_at_nearest_qp
Whether the porosity uses the volumetric strain at the closest quadpoint.