https://mooseframework.inl.gov
PorousFlowAdvectiveFluxCalculatorUnsaturated.C
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 
11 
13 
16 {
18  params.addClassDescription(
19  "Computes the advective flux of fluid of given phase, assuming unsaturated conditions. "
20  "Hence this UserObject is only relevant to single-phase situations, or multi-phase "
21  "situations where each fluid component appears in one phase only. Explicitly, the "
22  "UserObject computes (density * relative_permeability / viscosity) * (- permeability * "
23  "(grad(P) - density * gravity)), using the Kuzmin-Turek FEM-TVD multidimensional "
24  "stabilization scheme");
25  return params;
26 }
27 
29  const InputParameters & parameters)
31  _relative_permeability(
32  getMaterialProperty<std::vector<Real>>("PorousFlow_relative_permeability_nodal")),
33  _drelative_permeability_dvar(getMaterialProperty<std::vector<std::vector<Real>>>(
34  "dPorousFlow_relative_permeability_nodal_dvar"))
35 {
36 }
37 
38 Real
40 {
41  return _relative_permeability[i][_phase] *
43 }
44 
45 Real
47 {
50  du += _relative_permeability[i][_phase] *
52  return du;
53 }
virtual Real computedU_dvar(unsigned i, unsigned pvar) const override
Compute d(u)/d(porous_flow_variable)
Computes the advective flux of fluid of given phase, assuming unsaturated conditions.
virtual Real computeU(unsigned i) const override
Computes the value of u at the local node id of the current element (_current_elem) ...
const MaterialProperty< std::vector< Real > > & _relative_permeability
Relative permeability of each phase.
const MaterialProperty< std::vector< std::vector< Real > > > & _drelative_permeability_dvar
Derivative of relative permeability of each phase wrt PorousFlow variables.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real computedU_dvar(unsigned i, unsigned pvar) const override
Compute d(u)/d(porous_flow_variable)
Computes the advective flux of fluid of given phase, assuming fully-saturated conditions.
registerMooseObject("PorousFlowApp", PorousFlowAdvectiveFluxCalculatorUnsaturated)
void addClassDescription(const std::string &doc_string)
virtual Real computeU(unsigned i) const override
Computes the value of u at the local node id of the current element (_current_elem) ...