Approximates a borehole by a sequence of Dirac Points. More...
#include <PeacemanBorehole.h>
Public Member Functions | |
PeacemanBorehole (const InputParameters ¶meters) | |
Creates a new PeacemanBorehole This reads the file containing the lines of the form radius x y z that defines the borehole geometry. More... | |
Protected Member Functions | |
virtual void | addPoints () |
Add Dirac Points to the borehole. More... | |
bool | parseNextLineReals (std::ifstream &ifs, std::vector< Real > &myvec) |
reads a space-separated line of floats from ifs and puts in myvec More... | |
Real | wellConstant (const RealTensorValue &perm, const RealTensorValue &rot, const Real &half_len, const Elem *ele, const Real &rad) |
Calculates Peaceman's form of the borehole well constant Z Chen, Y Zhang, Well flow models for various numerical methods, Int J Num Analysis and Modeling, 3 (2008) 375-388. More... | |
Protected Attributes | |
const Function & | _character |
If positive then the borehole acts as a sink (producion well) for porepressure > borehole pressure, and does nothing otherwise If negative then the borehole acts as a source (injection well) for porepressure < borehole pressure, and does nothing otherwise The flow rate to/from the borehole is multiplied by |character|, so usually character = +/- 1. More... | |
const Real | _p_bot |
bottomhole pressure of borehole More... | |
const RealVectorValue | _unit_weight |
unit weight of fluid in borehole (for calculating bottomhole pressure at each Dirac Point) More... | |
RichardsSumQuantity & | _total_outflow_mass |
This is used to hold the total fluid flowing into the borehole Hence, it is positive for production wells where fluid is flowing from porespace into the borehole and removed from the model. More... | |
std::vector< Real > | _rs |
radii of the borehole More... | |
std::vector< Real > | _xs |
x points of the borehole More... | |
std::vector< Real > | _ys |
y points of the borehole More... | |
std::vector< Real > | _zs |
z points of borehole More... | |
Point | _bottom_point |
the bottom point of the borehole (where bottom_pressure is defined) More... | |
std::vector< Real > | _half_seg_len |
0.5*(length of polyline segments between points) More... | |
std::vector< RealTensorValue > | _rot_matrix |
rotation matrix used in well_constant calculation More... | |
Private Attributes | |
const Real | _re_constant |
borehole constant More... | |
const Real | _well_constant |
well constant More... | |
const Real | _borehole_length |
borehole length. Note this is only used if there is only one borehole point More... | |
const RealVectorValue | _borehole_direction |
borehole direction. Note this is only used if there is only one borehole point More... | |
const std::string | _point_file |
File defining the geometry of the borehole. More... | |
Approximates a borehole by a sequence of Dirac Points.
Definition at line 25 of file PeacemanBorehole.h.
PeacemanBorehole::PeacemanBorehole | ( | const InputParameters & | parameters | ) |
Creates a new PeacemanBorehole This reads the file containing the lines of the form radius x y z that defines the borehole geometry.
It also calculates segment-lengths and rotation matrices needed for computing the borehole well constant
Definition at line 80 of file PeacemanBorehole.C.
|
protectedvirtual |
|
protected |
reads a space-separated line of floats from ifs and puts in myvec
Definition at line 158 of file PeacemanBorehole.C.
Referenced by PeacemanBorehole().
|
protected |
Calculates Peaceman's form of the borehole well constant Z Chen, Y Zhang, Well flow models for various numerical methods, Int J Num Analysis and Modeling, 3 (2008) 375-388.
Definition at line 194 of file PeacemanBorehole.C.
Referenced by Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), Q2PBorehole::jac(), and RichardsBorehole::jac().
|
private |
borehole direction. Note this is only used if there is only one borehole point
Definition at line 49 of file PeacemanBorehole.h.
Referenced by PeacemanBorehole().
|
private |
borehole length. Note this is only used if there is only one borehole point
Definition at line 46 of file PeacemanBorehole.h.
Referenced by PeacemanBorehole().
|
protected |
the bottom point of the borehole (where bottom_pressure is defined)
Definition at line 94 of file PeacemanBorehole.h.
Referenced by Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), Q2PBorehole::jac(), RichardsBorehole::jac(), and PeacemanBorehole().
|
protected |
If positive then the borehole acts as a sink (producion well) for porepressure > borehole pressure, and does nothing otherwise If negative then the borehole acts as a source (injection well) for porepressure < borehole pressure, and does nothing otherwise The flow rate to/from the borehole is multiplied by |character|, so usually character = +/- 1.
Definition at line 66 of file PeacemanBorehole.h.
Referenced by RichardsBorehole::computeQpJacobian(), Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), Q2PBorehole::jac(), and RichardsBorehole::jac().
|
protected |
0.5*(length of polyline segments between points)
Definition at line 97 of file PeacemanBorehole.h.
Referenced by Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), Q2PBorehole::jac(), RichardsBorehole::jac(), and PeacemanBorehole().
|
protected |
bottomhole pressure of borehole
Definition at line 69 of file PeacemanBorehole.h.
Referenced by Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), Q2PBorehole::jac(), and RichardsBorehole::jac().
|
private |
File defining the geometry of the borehole.
Each row has format radius x y z and the list of such points defines a polyline that is the borehole
Definition at line 56 of file PeacemanBorehole.h.
Referenced by PeacemanBorehole().
|
private |
|
protected |
rotation matrix used in well_constant calculation
Definition at line 100 of file PeacemanBorehole.h.
Referenced by Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), Q2PBorehole::jac(), RichardsBorehole::jac(), and PeacemanBorehole().
|
protected |
radii of the borehole
Definition at line 82 of file PeacemanBorehole.h.
Referenced by Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), Q2PBorehole::jac(), RichardsBorehole::jac(), and PeacemanBorehole().
|
protected |
This is used to hold the total fluid flowing into the borehole Hence, it is positive for production wells where fluid is flowing from porespace into the borehole and removed from the model.
Definition at line 79 of file PeacemanBorehole.h.
Referenced by addPoints(), Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), and PeacemanBorehole().
|
protected |
unit weight of fluid in borehole (for calculating bottomhole pressure at each Dirac Point)
Definition at line 72 of file PeacemanBorehole.h.
Referenced by Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), Q2PBorehole::jac(), and RichardsBorehole::jac().
|
private |
|
protected |
x points of the borehole
Definition at line 85 of file PeacemanBorehole.h.
Referenced by addPoints(), and PeacemanBorehole().
|
protected |
y points of the borehole
Definition at line 88 of file PeacemanBorehole.h.
Referenced by addPoints(), and PeacemanBorehole().
|
protected |
z points of borehole
Definition at line 91 of file PeacemanBorehole.h.
Referenced by addPoints(), Q2PBorehole::computeQpResidual(), RichardsBorehole::computeQpResidual(), Q2PBorehole::jac(), RichardsBorehole::jac(), and PeacemanBorehole().