19 "Computes the advective flux of fluid of given phase and fluid component. Explicitly, the " 20 "UserObject computes (mass_fraction * density / viscosity) * (- permeability * (grad(P) - " 21 "density * gravity)), using the Kuzmin-Turek FEM-TVD multidimensional stabilization scheme");
23 "fluid_component", 0,
"The index corresponding to the fluid component for this UserObject");
30 _fluid_component(getParam<unsigned
int>(
"fluid_component")),
32 getMaterialProperty<
std::vector<
std::vector<
Real>>>(
"PorousFlow_mass_frac_nodal")),
33 _dmass_fractions_dvar(getMaterialProperty<
std::vector<
std::vector<
std::vector<
Real>>>>(
34 "dPorousFlow_mass_frac_nodal_dvar"))
38 "Fluid component number entered is greater than the number of fluid components " 39 "specified in the Dictator. Remember that indexing starts at 0");
static InputParameters validParams()
unsigned int numComponents() const
The number of fluid components.
const unsigned int _phase
The phase.
virtual Real computeU(unsigned i) const override
Computes the value of u at the local node id of the current element (_current_elem) ...
Computes the advective flux of fluid of given phase and fluid component.
void paramError(const std::string ¶m, Args... args) const
PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent(const InputParameters ¶meters)
virtual Real computeU(unsigned i) const override
Computes the value of u at the local node id of the current element (_current_elem) ...
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)
static InputParameters validParams()
Computes the advective flux of fluid of given phase, assuming fully-saturated conditions.
const MaterialProperty< std::vector< std::vector< Real > > > & _mass_fractions
Mass fraction of each component in each phase.
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
const unsigned int _fluid_component
The fluid component.
virtual Real computedU_dvar(unsigned i, unsigned pvar) const override
Compute d(u)/d(porous_flow_variable)
registerMooseObject("PorousFlowApp", PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent)
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_fractions_dvar
Derivative of the mass fraction of each component in each phase wrt PorousFlow variables.
void ErrorVector unsigned int