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

Go to the source code of this file.

Classes

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

Functions

template<>
InputParameters validParams< PeacemanBorehole > ()
 

Function Documentation

◆ validParams< PeacemanBorehole >()

template<>
InputParameters validParams< PeacemanBorehole > ( )

Definition at line 17 of file PeacemanBorehole.C.

18 {
19  InputParameters params = validParams<DiracKernel>();
20  params.addRequiredParam<FunctionName>(
21  "character",
22  "If zero then borehole does nothing. If positive the borehole acts as a sink "
23  "(production well) for porepressure > borehole pressure, and does nothing "
24  "otherwise. If negative the borehole acts as a source (injection well) for "
25  "porepressure < borehole pressure, and does nothing otherwise. The flow rate "
26  "to/from the borehole is multiplied by |character|, so usually character = +/- "
27  "1, but you can specify other quantities to provide an overall scaling to the "
28  "flow if you like.");
29  params.addRequiredParam<Real>("bottom_pressure", "Pressure at the bottom of the borehole");
30  params.addRequiredParam<RealVectorValue>(
31  "unit_weight",
32  "(fluid_density*gravitational_acceleration) as a vector pointing downwards. "
33  "Note that the borehole pressure at a given z position is bottom_pressure + "
34  "unit_weight*(p - p_bottom), where p=(x,y,z) and p_bottom=(x,y,z) of the "
35  "bottom point of the borehole. If you don't want bottomhole pressure to vary "
36  "in the borehole just set unit_weight=0. Typical value is = (0,0,-1E4)");
37  params.addRequiredParam<std::string>(
38  "point_file",
39  "The file containing the borehole radii and coordinates of the point sinks "
40  "that approximate the borehole. Each line in the file must contain a "
41  "space-separated radius and coordinate. Ie r x y z. The last point in the "
42  "file is defined as the borehole bottom, where the borehole pressure is "
43  "bottom_pressure. If your file contains just one point, you must also specify "
44  "the borehole_length and borehole_direction. Note that you will get "
45  "segementation faults if your points do not lie within your mesh!");
46  params.addRequiredParam<UserObjectName>(
47  "SumQuantityUO",
48  "User Object of type=RichardsSumQuantity in which to place the total "
49  "outflow from the borehole for each time step.");
50  params.addParam<Real>("re_constant",
51  0.28,
52  "The dimensionless constant used in evaluating the borehole effective "
53  "radius. This depends on the meshing scheme. Peacemann "
54  "finite-difference calculations give 0.28, while for rectangular finite "
55  "elements the result is closer to 0.1594. (See Eqn(4.13) of Z Chen, Y "
56  "Zhang, Well flow models for various numerical methods, Int J Num "
57  "Analysis and Modeling, 3 (2008) 375-388.)");
58  params.addParam<Real>("well_constant",
59  -1.0,
60  "Usually this is calculated internally from the element geometry, the "
61  "local borehole direction and segment length, and the permeability. "
62  "However, if this parameter is given as a positive number then this "
63  "number is used instead of the internal calculation. This speeds up "
64  "computation marginally. re_constant becomes irrelevant");
65  params.addRangeCheckedParam<Real>(
66  "borehole_length",
67  0.0,
68  "borehole_length>=0",
69  "Borehole length. Note this is only used if there is only one point in the point_file.");
70  params.addParam<RealVectorValue>(
71  "borehole_direction",
72  RealVectorValue(0, 0, 1),
73  "Borehole direction. Note this is only used if there is only one point in the point_file.");
74  params.addClassDescription("Approximates a borehole in the mesh using the Peaceman approach, ie "
75  "using a number of point sinks with given radii whose positions are "
76  "read from a file");
77  return params;
78 }

Referenced by validParams< Q2PBorehole >(), and validParams< RichardsBorehole >().