https://mooseframework.inl.gov
WellBase.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 "THMActionComponent.h"
13 
18 {
19 public:
21  WellBase(const InputParameters & params);
22 
23 protected:
24  virtual void addClosures() override;
25 
27  void addWellBaseComponents(bool is_production);
29  void addFlowChannel(unsigned int i, bool is_production);
31  void addWall(bool is_production);
33  void addJunction(unsigned int i, bool is_production);
35  void addJunctionFlux(unsigned int i);
36 
38  std::string flowChannelName(unsigned int i) const;
40  std::string volumeJunctionName(unsigned int i) const;
41 
43  const Point & _surface_point;
45  const std::vector<Point> & _junction_points;
47  const std::vector<unsigned int> & _section_n_elems;
49  const unsigned int _n_sections;
51  const std::vector<Real> & _junction_coupling_areas;
53  const std::string _closures_name;
54 
56  std::vector<Point> _all_points;
57 };
std::string volumeJunctionName(unsigned int i) const
Name of a volume junction.
Definition: WellBase.C:185
const std::vector< Point > & _junction_points
Junction points.
Definition: WellBase.h:45
void addFlowChannel(unsigned int i, bool is_production)
Adds a flow channel.
Definition: WellBase.C:90
const std::string _closures_name
Closures name.
Definition: WellBase.h:53
WellBase(const InputParameters &params)
Definition: WellBase.C:45
std::vector< Point > _all_points
Surface point, junction points, and optional end point.
Definition: WellBase.h:56
void addWall(bool is_production)
Adds a wall at the end of a well.
Definition: WellBase.C:129
void addJunction(unsigned int i, bool is_production)
Adds a junction.
Definition: WellBase.C:140
Base class for injection and production wells.
Definition: WellBase.h:17
void addWellBaseComponents(bool is_production)
Adds the components common to both injection and production.
Definition: WellBase.C:73
const Point & _surface_point
Surface point.
Definition: WellBase.h:43
static InputParameters validParams()
Definition: WellBase.C:14
const unsigned int _n_sections
Number of flow channels.
Definition: WellBase.h:49
void addJunctionFlux(unsigned int i)
Adds a junction coupling.
Definition: WellBase.C:164
const std::vector< Real > & _junction_coupling_areas
Coupled flow area of each junction.
Definition: WellBase.h:51
virtual void addClosures() override
Definition: WellBase.C:65
std::string flowChannelName(unsigned int i) const
Name of a flow channel.
Definition: WellBase.C:179
Base class for ActionComponents that build THM components.
const std::vector< unsigned int > & _section_n_elems
Number of elements in each flow channel.
Definition: WellBase.h:47