https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
19public:
21 WellBase(const InputParameters & params);
22
23protected:
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};
Base class for ActionComponents that build THM components.
Base class for injection and production wells.
Definition WellBase.h:18
const std::vector< Point > & _junction_points
Junction points.
Definition WellBase.h:45
void addJunctionFlux(unsigned int i)
Adds a junction coupling.
Definition WellBase.C:164
void addJunction(unsigned int i, bool is_production)
Adds a junction.
Definition WellBase.C:140
void addWall(bool is_production)
Adds a wall at the end of a well.
Definition WellBase.C:129
std::string flowChannelName(unsigned int i) const
Name of a flow channel.
Definition WellBase.C:179
const unsigned int _n_sections
Number of flow channels.
Definition WellBase.h:49
static InputParameters validParams()
Definition WellBase.C:14
virtual void addClosures() override
Definition WellBase.C:65
const std::string _closures_name
Closures name.
Definition WellBase.h:53
const std::vector< Real > & _junction_coupling_areas
Coupled flow area of each junction.
Definition WellBase.h:51
std::vector< Point > _all_points
Surface point, junction points, and optional end point.
Definition WellBase.h:56
void addFlowChannel(unsigned int i, bool is_production)
Adds a flow channel.
Definition WellBase.C:90
std::string volumeJunctionName(unsigned int i) const
Name of a volume junction.
Definition WellBase.C:185
const std::vector< unsigned int > & _section_n_elems
Number of elements in each flow channel.
Definition WellBase.h:47
const Point & _surface_point
Surface point.
Definition WellBase.h:43
void addWellBaseComponents(bool is_production)
Adds the components common to both injection and production.
Definition WellBase.C:73