https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowPiecewiseLinearSink.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.addRequiredParam<std::vector<Real>>(
19 "pt_vals",
20 "Tuple of pressure values (for the fluid_phase specified). Must be monotonically "
21 "increasing. For heat fluxes that don't involve fluids, these are temperature "
22 "values");
23 params.addRequiredParam<std::vector<Real>>(
24 "multipliers", "Tuple of multiplying values. The flux values are multiplied by these.");
25 params.addClassDescription("Applies a flux sink to a boundary. The base flux defined by "
26 "PorousFlowSink is multiplied by a piecewise linear function.");
27 return params;
28}
29
31 : PorousFlowSinkPTDefiner(parameters),
32 _sink_func(getParam<std::vector<Real>>("pt_vals"), getParam<std::vector<Real>>("multipliers"))
33{
34}
35
36Real
41
42Real
registerMooseObject("PorousFlowApp", PorousFlowPiecewiseLinearSink)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
T sampleDerivative(const T &x) const
T sample(const T &x) const
Applies a flux sink to a boundary.
virtual Real multiplier() const override
The flux gets multiplied by this quantity.
PorousFlowPiecewiseLinearSink(const InputParameters &parameters)
const LinearInterpolation _sink_func
Piecewise-linear function of porepressure that multiplies the sink flux.
virtual Real dmultiplier_dvar(unsigned int pvar) const override
d(multiplier)/d(Porous flow variable pvar)
Provides either a porepressure or a temperature to derived classes, depending on _involves_fluid defi...
virtual Real ptVar() const
Provides the variable value (either porepressure, or temperature, depending on _involves_fluid)
static InputParameters validParams()
virtual Real dptVar(unsigned pvar) const
Provides the d(variable)/(d PorousFlow Variable pvar)
virtual Real dmultiplier_dvar(unsigned int pvar) const
d(multiplier)/d(Porous flow variable pvar)
virtual Real multiplier() const
The flux gets multiplied by this quantity.