www.mooseframework.org
PorousFlowFullySaturatedDarcyFlow.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 {
18  InputParameters params = validParams<PorousFlowFullySaturatedDarcyBase>();
19  params.addParam<unsigned int>(
20  "fluid_component", 0, "The index corresponding to the fluid component for this kernel");
21  params.addClassDescription("Darcy flux suitable for models involving a fully-saturated single "
22  "phase, multi-component fluid. No upwinding is used");
23  return params;
24 }
25 
27  const InputParameters & parameters)
29  _mfrac(getMaterialProperty<std::vector<std::vector<Real>>>("PorousFlow_mass_frac_qp")),
30  _dmfrac_dvar(getMaterialProperty<std::vector<std::vector<std::vector<Real>>>>(
31  "dPorousFlow_mass_frac_qp_dvar")),
32  _fluid_component(getParam<unsigned int>("fluid_component"))
33 {
35  paramError(
36  "fluid_component",
37  "The Dictator proclaims that the maximum fluid component index in this simulation is ",
39  " whereas you have used ",
41  ". Remember that indexing starts at 0. Happiness equals perfection.");
42 }
43 
44 Real
46 {
47  const unsigned ph = 0;
49 }
50 
51 Real
53 {
54  const unsigned ph = 0;
55  const Real darcy_mob = PorousFlowFullySaturatedDarcyBase::mobility();
56  const Real ddarcy_mob = PorousFlowFullySaturatedDarcyBase::dmobility(pvar);
57  return _dmfrac_dvar[_qp][ph][_fluid_component][pvar] * darcy_mob +
58  _mfrac[_qp][ph][_fluid_component] * ddarcy_mob;
59 }
registerMooseObject
registerMooseObject("PorousFlowApp", PorousFlowFullySaturatedDarcyFlow)
PorousFlowFullySaturatedDarcyFlow::_mfrac
const MaterialProperty< std::vector< std::vector< Real > > > & _mfrac
mass fraction of the components in the phase
Definition: PorousFlowFullySaturatedDarcyFlow.h:42
validParams< PorousFlowFullySaturatedDarcyFlow >
InputParameters validParams< PorousFlowFullySaturatedDarcyFlow >()
Definition: PorousFlowFullySaturatedDarcyFlow.C:16
PorousFlowFullySaturatedDarcyFlow.h
PorousFlowFullySaturatedDarcyBase::mobility
virtual Real mobility() const
The mobility of the fluid = density / viscosity.
Definition: PorousFlowFullySaturatedDarcyBase.C:115
PorousFlowFullySaturatedDarcyFlow::PorousFlowFullySaturatedDarcyFlow
PorousFlowFullySaturatedDarcyFlow(const InputParameters &parameters)
Definition: PorousFlowFullySaturatedDarcyFlow.C:26
PorousFlowFullySaturatedDarcyFlow
Darcy advective flux for a fully-saturated, single-phase, multi-component fluid.
Definition: PorousFlowFullySaturatedDarcyFlow.h:24
PorousFlowFullySaturatedDarcyBase::_dictator
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Definition: PorousFlowFullySaturatedDarcyBase.h:83
PorousFlowFullySaturatedDarcyBase
Darcy advective flux for a fully-saturated, single phase, single component fluid.
Definition: PorousFlowFullySaturatedDarcyBase.h:25
PorousFlowDictator::numComponents
unsigned int numComponents() const
The number of fluid components.
Definition: PorousFlowDictator.C:111
validParams< PorousFlowFullySaturatedDarcyBase >
InputParameters validParams< PorousFlowFullySaturatedDarcyBase >()
Definition: PorousFlowFullySaturatedDarcyBase.C:18
PorousFlowFullySaturatedDarcyFlow::_dmfrac_dvar
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmfrac_dvar
Derivative of mass fraction wrt wrt PorousFlow variables.
Definition: PorousFlowFullySaturatedDarcyFlow.h:45
PorousFlowFullySaturatedDarcyFlow::dmobility
virtual Real dmobility(unsigned pvar) const override
The derivative of the mobility with respect to the PorousFlow variable pvar.
Definition: PorousFlowFullySaturatedDarcyFlow.C:52
PorousFlowFullySaturatedDarcyBase::dmobility
virtual Real dmobility(unsigned pvar) const
The derivative of the mobility with respect to the PorousFlow variable pvar.
Definition: PorousFlowFullySaturatedDarcyBase.C:125
PorousFlowFullySaturatedDarcyFlow::_fluid_component
const unsigned int _fluid_component
The fluid component for this Kernel.
Definition: PorousFlowFullySaturatedDarcyFlow.h:48
PorousFlowFullySaturatedDarcyFlow::mobility
virtual Real mobility() const override
The mobility of the fluid = mass_fraction * density / viscosity.
Definition: PorousFlowFullySaturatedDarcyFlow.C:45