https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowHeatVolumetricExpansion.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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
13#include "PorousFlowDictator.h"
14
21template <bool is_ad>
23{
24public:
26
28
29protected:
30 virtual GenericReal<is_ad> computeQpResidual() override;
31 virtual Real computeQpJacobian() override;
32 virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
33
36
39
41 const unsigned int _num_phases;
42
44 const bool _fluid_present;
45
48
51
54
57
60
63
66
69
72
75
78
81
84
87
90
97 Real computedEnergyQpJac(unsigned int jvar);
98
106 Real computedVolQpJac(unsigned int jvar);
107
109 using GenericKernel<is_ad>::_grad_phi;
110};
111
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
Moose::GenericType< Real, is_ad > GenericReal
PorousFlowHeatVolumetricExpansionTempl< false > PorousFlowHeatVolumetricExpansion
PorousFlowHeatVolumetricExpansionTempl< true > ADPorousFlowHeatVolumetricExpansion
const VariablePhiGradient & _grad_phi
const InputParameters & parameters() const
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
Kernel = energy_density * rate_of_solid_volumetric_expansion where energy_density = (1 - porosity) * ...
const unsigned int _num_phases
Number of fluid phases.
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_density_dvar
d(nodal fluid density)/d(PorousFlow variable)
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
const GenericMaterialProperty< std::vector< Real >, is_ad > *const _energy_nodal
Nodal fluid internal energy.
const GenericMaterialProperty< Real, is_ad > & _porosity
Porosity at the nodes.
const MaterialProperty< std::vector< Real > > *const _drock_energy_nodal_dvar
d(nodal rock energy density)/d(PorousFlow variable)
Real computedEnergyQpJac(unsigned int jvar)
Derivative of energy part of the residual with respect to the Variable with variable number jvar.
const MaterialProperty< std::vector< std::vector< Real > > > *const _denergy_nodal_dvar
d(nodal fluid internal energy)/d(PorousFlow variable)
const MaterialProperty< unsigned int > *const _nearest_qp
The nearest qp to the node.
virtual GenericReal< is_ad > computeQpResidual() override
const MaterialProperty< std::vector< RealGradient > > *const _dstrain_rate_qp_dvar
d(strain rate)/d(PorousFlow variable)
const GenericMaterialProperty< std::vector< Real >, is_ad > *const _fluid_density
Nodal fluid density.
const MaterialProperty< std::vector< RealGradient > > *const _dporosity_dgradvar
d(porosity)/d(grad PorousFlow variable) at the qps
Real computedVolQpJac(unsigned int jvar)
Derivative of volumetric-strain part of the residual with respect to the Variable with variable numbe...
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_saturation_nodal_dvar
d(nodal fluid saturation)/d(PorousFlow variable)
const GenericMaterialProperty< Real, is_ad > & _rock_energy_nodal
Nodal rock energy density.
const GenericMaterialProperty< std::vector< Real >, is_ad > *const _fluid_saturation_nodal
Nodal fluid saturation.
const bool _strain_at_nearest_qp
Whether the porosity uses the volumetric strain at the closest quadpoint.
const GenericMaterialProperty< Real, is_ad > & _strain_rate_qp
Strain rate.
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
const bool _var_is_porflow_var
Whether the Variable for this Kernel is a PorousFlow variable according to the Dictator.
const MaterialProperty< std::vector< Real > > *const _dporosity_dvar
d(porosity)/d(PorousFlow variable) at the nodes
Base class for PorousFlow kernels that use mass-lumped (nodal) material properties.