GEOS
WellVolumeRateConstraint.hpp
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 TotalEnergies
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
16 /*
17  * @file WellVolumeRateConstraints.hpp
18  */
19 
20 
21 #ifndef GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_WELLTOTALVOLRATECONSTRAINTS_HPP
22 #define GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_WELLTOTALVOLRATECONSTRAINTS_HPP
23 
25 #include "dataRepository/Group.hpp"
27 #include "WellConstraintsBase.hpp"
28 namespace geos
29 {
30 
31 
32 
39 {
40 public:
41 
46 
52  explicit VolumeRateConstraint( string const & name, dataRepository::Group * const parent );
53 
54 
59 
64 
69 
74 
80 
86 
91  static string catalogName()
92  {
93  return "VolumeRateConstraint";
94  }
96 
101  {
103  static constexpr char const * volumeRateString() { return "volumeRate"; }
104  };
109 
110  // Temp interface - tjb
111  virtual ConstraintTypeId getControl() const override { return ConstraintTypeId::TOTALVOLRATE; };
113 
114  virtual bool checkViolation( WellConstraintBase const & currentConstraint, real64 const & currentTime ) const override;
115 protected:
116 
117  virtual void postInputInitialization() override;
118 
119 };
120 
121 
122 } //namespace geos
123 
124 #endif //GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_WELLCONSTRAINT_HPP
This class describes a volume rate constraint used to control a well.
VolumeRateConstraint & operator=(VolumeRateConstraint const &)=delete
Deleted assignment operator.
virtual bool checkViolation(WellConstraintBase const &currentConstraint, real64 const &currentTime) const override
Check if this constraint is violated.
~VolumeRateConstraint() override
Default destructor.
static string catalogName()
name of the node manager in the object catalog
VolumeRateConstraint(VolumeRateConstraint &&)=delete
Deleted move constructor.
VolumeRateConstraint(VolumeRateConstraint const &)=delete
Deleted copy constructor.
virtual void postInputInitialization() override
VolumeRateConstraint()=delete
Deleted default constructor.
VolumeRateConstraint & operator=(VolumeRateConstraint &&)=delete
Deleted move operator.
VolumeRateConstraint(string const &name, dataRepository::Group *const parent)
Constructor for WellControls Objects.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:98
Struct to serve as a container for variable strings and keys.
static constexpr char const * volumeRateString()
String key for the volume rate.