21 params.
addParam<
bool>(
"strain_at_nearest_qp",
23 "When calculating nodal porosity that depends on strain, use the strain at " 24 "the nearest quadpoint. This adds a small extra computational burden, and " 25 "is not necessary for simulations involving only linear lagrange elements. " 26 " If you set this to true, you will also want to set the same parameter to " 27 "true for related Kernels and Materials");
29 "PorousFlowDictator",
"The UserObject that holds the list of PorousFlow variable names.");
31 "Plastic heat energy density source = (1 - porosity) * coeff * stress * plastic_strain_rate");
38 _strain_at_nearest_qp(getParam<bool>(
"strain_at_nearest_qp")),
39 _nearest_qp(_strain_at_nearest_qp
40 ? &getMaterialProperty<unsigned
int>(
"PorousFlow_nearestqp_nodal")
42 _porosity(getMaterialProperty<
Real>(
"PorousFlow_porosity_nodal")),
43 _dporosity_dvar(getMaterialProperty<
std::vector<
Real>>(
"dPorousFlow_porosity_nodal_dvar")),
45 getMaterialProperty<
std::vector<
RealGradient>>(
"dPorousFlow_porosity_nodal_dgradvar"))
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
unsigned int number() const
const MaterialProperty< Real > & _porosity
Porosity at the nodes, but it can depend on grad(variables) which are actually evaluated at the qps...
const VariablePhiGradient & _grad_phi
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
virtual Real computeQpResidual() override
const bool _strain_at_nearest_qp
Whether the porosity uses the volumetric strain at the closest quadpoint.
Provides a heat source from plastic deformation: coeff * stress * plastic_strain_rate.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
virtual Real computeQpJacobian() override
const MaterialProperty< std::vector< Real > > & _dporosity_dvar
d(porosity)/d(PorousFlow variable) - these derivatives will be wrt variables at the nodes ...
static InputParameters validParams()
Provides a heat source (J/m^3/s) from plastic deformation: (1 - porosity) * coeff * stress * plastic_...
PorousFlowPlasticHeatEnergy(const InputParameters ¶meters)
virtual Real computeQpResidual() override
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
static InputParameters validParams()
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
const MaterialProperty< std::vector< RealGradient > > & _dporosity_dgradvar
d(porosity)/d(grad PorousFlow variable) - remember these derivatives will be wrt grad(vars) at qps ...
registerMooseObject("PorousFlowApp", PorousFlowPlasticHeatEnergy)
void ErrorVector unsigned int