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 
16 
17 template <>
19 
24 class PorousFlowHeatVolumetricExpansion : public TimeKernel
25 {
26 public:
27  PorousFlowHeatVolumetricExpansion(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 
36 
38  const bool _var_is_porflow_var;
39 
41  const unsigned int _num_phases;
42 
44  const bool _fluid_present;
45 
48 
50  const MaterialProperty<Real> & _porosity;
51 
53  const MaterialProperty<std::vector<Real>> & _dporosity_dvar;
54 
56  const MaterialProperty<std::vector<RealGradient>> & _dporosity_dgradvar;
57 
59  const MaterialProperty<unsigned int> * const _nearest_qp;
60 
62  const MaterialProperty<Real> & _rock_energy_nodal;
63 
65  const MaterialProperty<std::vector<Real>> & _drock_energy_nodal_dvar;
66 
68  const MaterialProperty<std::vector<Real>> * const _fluid_density;
69 
71  const MaterialProperty<std::vector<std::vector<Real>>> * const _dfluid_density_dvar;
72 
74  const MaterialProperty<std::vector<Real>> * const _fluid_saturation_nodal;
75 
77  const MaterialProperty<std::vector<std::vector<Real>>> * const _dfluid_saturation_nodal_dvar;
78 
80  const MaterialProperty<std::vector<Real>> * const _energy_nodal;
81 
83  const MaterialProperty<std::vector<std::vector<Real>>> * const _denergy_nodal_dvar;
84 
86  const MaterialProperty<Real> & _strain_rate_qp;
87 
89  const MaterialProperty<std::vector<RealGradient>> & _dstrain_rate_qp_dvar;
90 
97  Real computedEnergyQpJac(unsigned int jvar);
98 
106  Real computedVolQpJac(unsigned int jvar);
107 };
108 
PorousFlowDictator.h
PorousFlowHeatVolumetricExpansion::_fluid_present
const bool _fluid_present
Whether fluid is present.
Definition: PorousFlowHeatVolumetricExpansion.h:44
PorousFlowHeatVolumetricExpansion::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: PorousFlowHeatVolumetricExpansion.C:89
PorousFlowHeatVolumetricExpansion::_fluid_saturation_nodal
const MaterialProperty< std::vector< Real > > *const _fluid_saturation_nodal
Nodal fluid saturation.
Definition: PorousFlowHeatVolumetricExpansion.h:74
PorousFlowHeatVolumetricExpansion::computedEnergyQpJac
Real computedEnergyQpJac(unsigned int jvar)
Derivative of energy part of the residual with respect to the Variable with variable number jvar.
Definition: PorousFlowHeatVolumetricExpansion.C:117
PorousFlowHeatVolumetricExpansion::computeQpResidual
virtual Real computeQpResidual() override
Definition: PorousFlowHeatVolumetricExpansion.C:78
PorousFlowHeatVolumetricExpansion::_porosity
const MaterialProperty< Real > & _porosity
Porosity.
Definition: PorousFlowHeatVolumetricExpansion.h:50
PorousFlowHeatVolumetricExpansion
Kernel = energy_density * d(volumetric_strain)/dt which is lumped to the nodes.
Definition: PorousFlowHeatVolumetricExpansion.h:24
PorousFlowHeatVolumetricExpansion::PorousFlowHeatVolumetricExpansion
PorousFlowHeatVolumetricExpansion(const InputParameters &parameters)
Definition: PorousFlowHeatVolumetricExpansion.C:34
PorousFlowHeatVolumetricExpansion::_num_phases
const unsigned int _num_phases
Number of fluid phases.
Definition: PorousFlowHeatVolumetricExpansion.h:41
PorousFlowHeatVolumetricExpansion::_nearest_qp
const MaterialProperty< unsigned int > *const _nearest_qp
The nearest qp to the node.
Definition: PorousFlowHeatVolumetricExpansion.h:59
PorousFlowHeatVolumetricExpansion::_dfluid_density_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_density_dvar
d(nodal fluid density)/d(PorousFlow variable)
Definition: PorousFlowHeatVolumetricExpansion.h:71
PorousFlowHeatVolumetricExpansion::_fluid_density
const MaterialProperty< std::vector< Real > > *const _fluid_density
Nodal fluid density.
Definition: PorousFlowHeatVolumetricExpansion.h:68
PorousFlowHeatVolumetricExpansion::_dstrain_rate_qp_dvar
const MaterialProperty< std::vector< RealGradient > > & _dstrain_rate_qp_dvar
d(strain rate)/d(PorousFlow variable)
Definition: PorousFlowHeatVolumetricExpansion.h:89
PorousFlowDictator
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
Definition: PorousFlowDictator.h:71
PorousFlowHeatVolumetricExpansion::_rock_energy_nodal
const MaterialProperty< Real > & _rock_energy_nodal
Nodal rock energy density.
Definition: PorousFlowHeatVolumetricExpansion.h:62
PorousFlowHeatVolumetricExpansion::_dporosity_dvar
const MaterialProperty< std::vector< Real > > & _dporosity_dvar
d(porosity)/d(PorousFlow variable)
Definition: PorousFlowHeatVolumetricExpansion.h:53
PorousFlowHeatVolumetricExpansion::_dfluid_saturation_nodal_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_saturation_nodal_dvar
d(nodal fluid saturation)/d(PorousFlow variable)
Definition: PorousFlowHeatVolumetricExpansion.h:77
PorousFlowHeatVolumetricExpansion::_strain_at_nearest_qp
const bool _strain_at_nearest_qp
Whether the porosity uses the volumetric strain at the closest quadpoint.
Definition: PorousFlowHeatVolumetricExpansion.h:47
PorousFlowHeatVolumetricExpansion::_dporosity_dgradvar
const MaterialProperty< std::vector< RealGradient > > & _dporosity_dgradvar
d(porosity)/d(grad PorousFlow variable)
Definition: PorousFlowHeatVolumetricExpansion.h:56
PorousFlowHeatVolumetricExpansion::computedVolQpJac
Real computedVolQpJac(unsigned int jvar)
Derivative of volumetric-strain part of the residual with respect to the Variable with variable numbe...
Definition: PorousFlowHeatVolumetricExpansion.C:101
PorousFlowHeatVolumetricExpansion::_drock_energy_nodal_dvar
const MaterialProperty< std::vector< Real > > & _drock_energy_nodal_dvar
d(nodal rock energy density)/d(PorousFlow variable)
Definition: PorousFlowHeatVolumetricExpansion.h:65
PorousFlowHeatVolumetricExpansion::_energy_nodal
const MaterialProperty< std::vector< Real > > *const _energy_nodal
Internal energy of the phases, evaluated at the nodes.
Definition: PorousFlowHeatVolumetricExpansion.h:80
PorousFlowHeatVolumetricExpansion::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition: PorousFlowHeatVolumetricExpansion.C:95
PorousFlowHeatVolumetricExpansion::_denergy_nodal_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _denergy_nodal_dvar
d(internal energy)/d(PorousFlow variable)
Definition: PorousFlowHeatVolumetricExpansion.h:83
PorousFlowHeatVolumetricExpansion::_strain_rate_qp
const MaterialProperty< Real > & _strain_rate_qp
Strain rate.
Definition: PorousFlowHeatVolumetricExpansion.h:86
PorousFlowHeatVolumetricExpansion::_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: PorousFlowHeatVolumetricExpansion.h:38
validParams< PorousFlowHeatVolumetricExpansion >
InputParameters validParams< PorousFlowHeatVolumetricExpansion >()
Definition: PorousFlowHeatVolumetricExpansion.C:18
PorousFlowHeatVolumetricExpansion::_dictator
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Definition: PorousFlowHeatVolumetricExpansion.h:35