www.mooseframework.org
PorousFlowPeacemanBorehole.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 #ifndef POROUSFLOWPEACEMANBOREHOLE_H
9 #define POROUSFLOWPEACEMANBOREHOLE_H
10 
11 #include "PorousFlowLineSink.h"
12 
14 
15 template <>
17 
22 {
23 public:
32  PorousFlowPeacemanBorehole(const InputParameters & parameters);
33 
34 protected:
42  Function & _character;
43 
45  const Real _p_bot;
46 
48  const RealVectorValue _unit_weight;
49 
51  const Real _re_constant;
52 
54  const Real _well_constant;
55 
57  const bool _has_permeability;
58 
61 
63  const MaterialProperty<RealTensorValue> & _perm_or_cond;
64 
66  const MaterialProperty<std::vector<RealTensorValue>> & _dperm_or_cond_dvar;
67 
69  std::vector<RealTensorValue> _rot_matrix;
70 
76  Real wellConstant(const RealTensorValue & perm,
77  const RealTensorValue & rot,
78  const Real & half_len,
79  const Elem * ele,
80  const Real & rad) const;
81 
82  Real computeQpBaseOutflow(unsigned current_dirac_ptid) const override;
83  void computeQpBaseOutflowJacobian(unsigned jvar,
84  unsigned current_dirac_ptid,
85  Real & outflow,
86  Real & outflowp) const override;
87 };
88 
89 #endif // POROUSFLOWPEACEMANBOREHOLE_H
PorousFlowPeacemanBorehole(const InputParameters &parameters)
Creates a new PorousFlowPeacemanBorehole This reads the file containing the lines of the form radius ...
void computeQpBaseOutflowJacobian(unsigned jvar, unsigned current_dirac_ptid, Real &outflow, Real &outflowp) const override
Calculates the BaseOutflow as well as its derivative wrt jvar. Derived classes should override this...
const Real _p_bot
bottomhole pressure of borehole
const bool _has_permeability
Whether there is a quadpoint permeability material (for error checking)
Real computeQpBaseOutflow(unsigned current_dirac_ptid) const override
Returns the flux from the line sink (before modification by mobility, etc). Derived classes should ov...
Real wellConstant(const RealTensorValue &perm, const RealTensorValue &rot, const Real &half_len, const Elem *ele, const Real &rad) const
Calculates Peaceman&#39;s form of the borehole well constant Z Chen, Y Zhang, Well flow models for variou...
const MaterialProperty< std::vector< RealTensorValue > > & _dperm_or_cond_dvar
d(Permeability)/d(PorousFlow variable)
Function & _character
If positive then the borehole acts as a sink (producion well) for porepressure > borehole pressure...
const Real _well_constant
well constant
Approximates a borehole by a sequence of Dirac Points.
std::vector< RealTensorValue > _rot_matrix
rotation matrix used in well_constant calculation
const MaterialProperty< RealTensorValue > & _perm_or_cond
Permeability or conductivity of porous material.
Approximates a line sink a sequence of Dirac Points.
const Real _re_constant
borehole constant
const bool _has_thermal_conductivity
Whether there is a quadpoint thermal conductivity material (for error checking)
const RealVectorValue _unit_weight
unit weight of fluid in borehole (for calculating bottomhole pressure at each Dirac Point) ...
InputParameters validParams< PorousFlowPeacemanBorehole >()