www.mooseframework.org
PeacemanBorehole.h
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 
10 #pragma once
11 
12 // Moose Includes
13 #include "DiracKernel.h"
14 #include "Function.h"
15 #include "RichardsSumQuantity.h"
16 
21 {
22 public:
32 
34 
35 private:
38 
41 
44 
47 
53  const std::string _point_file; // private
54 
55 protected:
64 
66  const Real _p_bot;
67 
70 
77 
79  std::vector<Real> _rs;
80 
82  std::vector<Real> _xs;
83 
85  std::vector<Real> _ys;
86 
88  std::vector<Real> _zs;
89 
92 
94  std::vector<Real> _half_seg_len;
95 
97  std::vector<RealTensorValue> _rot_matrix;
98 
100  virtual void addPoints();
101 
103  bool parseNextLineReals(std::ifstream & ifs, std::vector<Real> & myvec);
104 
110  Real wellConstant(const RealTensorValue & perm,
111  const RealTensorValue & rot,
112  const Real & half_len,
113  const Elem * ele,
114  const Real & rad);
115 };
const Real _well_constant
well constant
const RealVectorValue _borehole_direction
borehole direction. Note this is only used if there is only one borehole point
Sums into _total This is used, for instance, to record the total mass flowing into a borehole...
const Real _re_constant
borehole constant
PeacemanBorehole(const InputParameters &parameters)
Real wellConstant(const RealTensorValue &perm, const RealTensorValue &rot, const Real &half_len, const Elem *ele, const Real &rad)
Calculates Peaceman&#39;s form of the borehole well constant Z Chen, Y Zhang, Well flow models for variou...
std::vector< Real > _rs
radii of the borehole
bool parseNextLineReals(std::ifstream &ifs, std::vector< Real > &myvec)
reads a space-separated line of floats from ifs and puts in myvec
Approximates a borehole by a sequence of Dirac Points.
std::vector< Real > _xs
x points of the borehole
std::vector< Real > _ys
y points of the borehole
static InputParameters validParams()
Creates a new PeacemanBorehole This reads the file containing the lines of the form radius x y z that...
TensorValue< Real > RealTensorValue
const RealVectorValue _unit_weight
unit weight of fluid in borehole (for calculating bottomhole pressure at each Dirac Point) ...
RichardsSumQuantity & _total_outflow_mass
This is used to hold the total fluid flowing into the borehole Hence, it is positive for production w...
const Real _p_bot
bottomhole pressure of borehole
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const Real _borehole_length
borehole length. Note this is only used if there is only one borehole point
virtual void addPoints()
Add Dirac Points to the borehole.
const std::string _point_file
File defining the geometry of the borehole.
const InputParameters & parameters() const
Point _bottom_point
the bottom point of the borehole (where bottom_pressure is defined)
std::vector< RealTensorValue > _rot_matrix
rotation matrix used in well_constant calculation
std::vector< Real > _half_seg_len
0.5*(length of polyline segments between points)
std::vector< Real > _zs
z points of borehole
const Function & _character
If positive then the borehole acts as a sink (producion well) for porepressure > borehole pressure...