www.mooseframework.org
PorousFlowPeacemanBorehole.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 #include "PorousFlowLineSink.h"
13 
15 
16 template <>
18 
23 {
24 public:
33  PorousFlowPeacemanBorehole(const InputParameters & parameters);
34 
35 protected:
43  const Function & _character;
44 
46  const Real _p_bot;
47 
49  const RealVectorValue _unit_weight;
50 
52  const Real _re_constant;
53 
55  const Real _well_constant;
56 
58  const bool _has_permeability;
59 
62 
64  const MaterialProperty<RealTensorValue> & _perm_or_cond;
65 
67  const MaterialProperty<std::vector<RealTensorValue>> & _dperm_or_cond_dvar;
68 
70  std::vector<RealTensorValue> _rot_matrix;
71 
77  Real wellConstant(const RealTensorValue & perm,
78  const RealTensorValue & rot,
79  const Real & half_len,
80  const Elem * ele,
81  const Real & rad) const;
82 
83  Real computeQpBaseOutflow(unsigned current_dirac_ptid) const override;
84  void computeQpBaseOutflowJacobian(unsigned jvar,
85  unsigned current_dirac_ptid,
86  Real & outflow,
87  Real & outflowp) const override;
88 };
PorousFlowLineSink
Approximates a line sink a sequence of Dirac Points.
Definition: PorousFlowLineSink.h:24
PorousFlowPeacemanBorehole::_dperm_or_cond_dvar
const MaterialProperty< std::vector< RealTensorValue > > & _dperm_or_cond_dvar
d(Permeability)/d(PorousFlow variable)
Definition: PorousFlowPeacemanBorehole.h:67
PorousFlowPeacemanBorehole::_has_thermal_conductivity
const bool _has_thermal_conductivity
Whether there is a quadpoint thermal conductivity material (for error checking)
Definition: PorousFlowPeacemanBorehole.h:61
validParams< PorousFlowPeacemanBorehole >
InputParameters validParams< PorousFlowPeacemanBorehole >()
Definition: PorousFlowPeacemanBorehole.C:18
PorousFlowPeacemanBorehole::PorousFlowPeacemanBorehole
PorousFlowPeacemanBorehole(const InputParameters &parameters)
Creates a new PorousFlowPeacemanBorehole This reads the file containing the lines of the form radius ...
Definition: PorousFlowPeacemanBorehole.C:69
PorousFlowPeacemanBorehole
Approximates a borehole by a sequence of Dirac Points.
Definition: PorousFlowPeacemanBorehole.h:22
PorousFlowPeacemanBorehole::_has_permeability
const bool _has_permeability
Whether there is a quadpoint permeability material (for error checking)
Definition: PorousFlowPeacemanBorehole.h:58
PorousFlowPeacemanBorehole::computeQpBaseOutflowJacobian
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.
Definition: PorousFlowPeacemanBorehole.C:262
PorousFlowPeacemanBorehole::_re_constant
const Real _re_constant
Borehole constant.
Definition: PorousFlowPeacemanBorehole.h:52
PorousFlowPeacemanBorehole::_perm_or_cond
const MaterialProperty< RealTensorValue > & _perm_or_cond
Permeability or conductivity of porous material.
Definition: PorousFlowPeacemanBorehole.h:64
PorousFlowPeacemanBorehole::_character
const Function & _character
If positive then the borehole acts as a sink (producion well) for porepressure > borehole pressure,...
Definition: PorousFlowPeacemanBorehole.h:43
PorousFlowPeacemanBorehole::wellConstant
Real wellConstant(const RealTensorValue &perm, const RealTensorValue &rot, const Real &half_len, const Elem *ele, const Real &rad) const
Calculates Peaceman's form of the borehole well constant Z Chen, Y Zhang, Well flow models for variou...
Definition: PorousFlowPeacemanBorehole.C:112
PorousFlowPeacemanBorehole::_well_constant
const Real _well_constant
Well constant.
Definition: PorousFlowPeacemanBorehole.h:55
PorousFlowLineSink.h
PorousFlowPeacemanBorehole::_unit_weight
const RealVectorValue _unit_weight
Unit weight of fluid in borehole (for calculating bottomhole pressure at each Dirac Point)
Definition: PorousFlowPeacemanBorehole.h:49
PorousFlowPeacemanBorehole::computeQpBaseOutflow
Real computeQpBaseOutflow(unsigned current_dirac_ptid) const override
Returns the flux from the line sink (before modification by mobility, etc). Derived classes should ov...
Definition: PorousFlowPeacemanBorehole.C:216
PorousFlowPeacemanBorehole::_p_bot
const Real _p_bot
Bottomhole pressure of borehole.
Definition: PorousFlowPeacemanBorehole.h:46
PorousFlowPeacemanBorehole::_rot_matrix
std::vector< RealTensorValue > _rot_matrix
Rotation matrix used in well_constant calculation.
Definition: PorousFlowPeacemanBorehole.h:70