www.mooseframework.org
Classes | Functions
PorousFlowPeacemanBorehole.h File Reference

Go to the source code of this file.

Classes

class  PorousFlowPeacemanBorehole
 Approximates a borehole by a sequence of Dirac Points. More...
 

Functions

template<>
InputParameters validParams< PorousFlowPeacemanBorehole > ()
 

Function Documentation

◆ validParams< PorousFlowPeacemanBorehole >()

template<>
InputParameters validParams< PorousFlowPeacemanBorehole > ( )

Definition at line 18 of file PorousFlowPeacemanBorehole.C.

19 {
20  InputParameters params = validParams<PorousFlowLineSink>();
21  params.addRequiredParam<FunctionName>(
22  "character",
23  "If zero then borehole does nothing. If positive the borehole acts as a sink "
24  "(production well) for porepressure > borehole pressure, and does nothing "
25  "otherwise. If negative the borehole acts as a source (injection well) for "
26  "porepressure < borehole pressure, and does nothing otherwise. The flow rate "
27  "to/from the borehole is multiplied by |character|, so usually character = +/- "
28  "1, but you can specify other quantities to provide an overall scaling to the "
29  "flow if you like.");
30  params.addRequiredParam<Real>("bottom_p_or_t",
31  "For function_of=pressure, this parameter is the "
32  "pressure at the bottom of the borehole, "
33  "otherwise it is the temperature at the bottom of "
34  "the borehole");
35  params.addRequiredParam<RealVectorValue>(
36  "unit_weight",
37  "(fluid_density*gravitational_acceleration) as a vector pointing downwards. "
38  "Note that the borehole pressure at a given z position is bottom_p_or_t + "
39  "unit_weight*(q - q_bottom), where q=(x,y,z) and q_bottom=(x,y,z) of the "
40  "bottom point of the borehole. The analogous formula holds for "
41  "function_of=temperature. If you don't want bottomhole pressure (or "
42  "temperature) to vary in the borehole just set unit_weight=0. Typical value "
43  "is = (0,0,-1E4), for water");
44  params.addParam<Real>("re_constant",
45  0.28,
46  "The dimensionless constant used in evaluating the borehole effective "
47  "radius. This depends on the meshing scheme. Peacemann "
48  "finite-difference calculations give 0.28, while for rectangular finite "
49  "elements the result is closer to 0.1594. (See Eqn(4.13) of Z Chen, Y "
50  "Zhang, Well flow models for various numerical methods, Int J Num "
51  "Analysis and Modeling, 3 (2008) 375-388.)");
52  params.addParam<Real>("well_constant",
53  -1.0,
54  "Usually this is calculated internally from the element geometry, the "
55  "local borehole direction and segment length, and the permeability. "
56  "However, if this parameter is given as a positive number then this "
57  "number is used instead of the internal calculation. This speeds up "
58  "computation marginally. re_constant becomes irrelevant");
59  params.addClassDescription(
60  "Approximates a borehole in the mesh using the Peaceman approach, ie "
61  "using a number of point sinks with given radii whose positions are "
62  "read from a file. NOTE: if you are using PorousFlowPorosity that depends on volumetric "
63  "strain, you should set strain_at_nearest_qp=true in your GlobalParams, to ensure the nodal "
64  "Porosity Material uses the volumetric strain at the Dirac quadpoints, and can therefore be "
65  "computed");
66  return params;
67 }
validParams< PorousFlowLineSink >
InputParameters validParams< PorousFlowLineSink >()
Definition: PorousFlowLineSink.C:15