www.mooseframework.org
PorousFlowAdvectiveFluxCalculatorUnsaturatedHeat.C
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 
11 
13 
14 template <>
15 InputParameters
17 {
19  params.addClassDescription(
20  "Computes the advective flux of heat energy in a given phase, assuming unsaturated "
21  "conditions. Hence this UserObject is only relevant to single-phase situations, or "
22  "multi-phase situations where each fluid component appears in one phase only. Explicitly, "
23  "the UserObject computes (density * enthalpy * relative_permeability / viscosity) * (- "
24  "permeability * (grad(P) - density * gravity)), using the Kuzmin-Turek FEM-TVD "
25  "multidimensional stabilization scheme");
26  return params;
27 }
28 
30  const InputParameters & parameters)
32  _relative_permeability(
33  getMaterialProperty<std::vector<Real>>("PorousFlow_relative_permeability_nodal")),
34  _drelative_permeability_dvar(getMaterialProperty<std::vector<std::vector<Real>>>(
35  "dPorousFlow_relative_permeability_nodal_dvar"))
36 {
37 }
38 
39 Real
41 {
42  return _relative_permeability[i][_phase] *
44 }
45 
46 Real
48 {
49  Real du = _drelative_permeability_dvar[i][_phase][pvar] *
51  du += _relative_permeability[i][_phase] *
53  return du;
54 }
Computes the advective flux of heat energy in a given phase, assuming unsaturated conditions...
const MaterialProperty< std::vector< std::vector< Real > > > & _drelative_permeability_dvar
Derivative of relative permeability of each phase wrt PorousFlow variables.
virtual Real computedU_dvar(unsigned i, unsigned pvar) const override
Compute d(u)/d(porous_flow_variable)
virtual Real computeU(unsigned i) const override
Computes the value of u at the local node id of the current element (_current_elem) ...
InputParameters validParams< PorousFlowAdvectiveFluxCalculatorUnsaturatedHeat >()
const MaterialProperty< std::vector< Real > > & _relative_permeability
Relative permeability of each phase.
Computes the advective flux of heat energy in the given phase, assuming fully-saturated conditions...
registerMooseObject("PorousFlowApp", PorousFlowAdvectiveFluxCalculatorUnsaturatedHeat)
virtual Real computeU(unsigned i) const override
Computes the value of u at the local node id of the current element (_current_elem) ...
virtual Real computedU_dvar(unsigned i, unsigned pvar) const override
Compute d(u)/d(porous_flow_variable)
InputParameters validParams< PorousFlowAdvectiveFluxCalculatorSaturatedHeat >()