www.mooseframework.org
PorousFlowPiecewiseLinearSink.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 
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 
36 Real
38 {
40 }
41 
42 Real
44 {
47 }
virtual Real multiplier() const override
The flux gets multiplied by this quantity.
virtual Real ptVar() const
Provides the variable value (either porepressure, or temperature, depending on _involves_fluid) ...
T sample(const T &x) const
static InputParameters validParams()
virtual Real multiplier() const
The flux gets multiplied by this quantity.
registerMooseObject("PorousFlowApp", PorousFlowPiecewiseLinearSink)
void addRequiredParam(const std::string &name, const std::string &doc_string)
Applies a flux sink to a boundary.
T sampleDerivative(const T &x) const
virtual Real dptVar(unsigned pvar) const
Provides the d(variable)/(d PorousFlow Variable pvar)
Provides either a porepressure or a temperature to derived classes, depending on _involves_fluid defi...
virtual Real dmultiplier_dvar(unsigned int pvar) const
d(multiplier)/d(Porous flow variable pvar)
PorousFlowPiecewiseLinearSink(const InputParameters &parameters)
virtual Real dmultiplier_dvar(unsigned int pvar) const override
d(multiplier)/d(Porous flow variable pvar)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
const LinearInterpolation _sink_func
Piecewise-linear function of porepressure that multiplies the sink flux.