Go to the source code of this file.
◆ validParams< PeacemanBorehole >()
Definition at line 17 of file PeacemanBorehole.C.
19 InputParameters params = validParams<DiracKernel>();
20 params.addRequiredParam<FunctionName>(
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 "
29 params.addRequiredParam<Real>(
"bottom_pressure",
"Pressure at the bottom of the borehole");
30 params.addRequiredParam<RealVectorValue>(
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>(
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>(
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",
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",
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>(
69 "Borehole length. Note this is only used if there is only one point in the point_file.");
70 params.addParam<RealVectorValue>(
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 "
Referenced by validParams< Q2PBorehole >(), and validParams< RichardsBorehole >().