GEOS
WellProductionConstraint.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 WellProductionConstraints.hpp
18  */
19 
20 
21 #ifndef GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_WELLPRODUCTIONCONSTRAINT_HPP
22 #define GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_WELLPRODUCTIONCONSTRAINT_HPP
23 
25 #include "dataRepository/Group.hpp"
27 
28 namespace geos
29 {
30 using namespace dataRepository;
36 template< typename ConstraintType >
37 class ProductionConstraint : public ConstraintType
38 {
39 public:
44 
50  explicit ProductionConstraint( string const & name, dataRepository::Group * const parent );
51 
56 
61 
66 
71 
77 
83 
85 
90  static string catalogName()
91  {
92  return "ProductionConstraint"+ConstraintType::catalogName();
93  }
94 protected:
95 
96  virtual void postInputInitialization() override;
97 
98  static bool isViolated( const real64 & currentValue, const real64 & constraintValue )
99  { return currentValue < constraintValue; }
100 };
101 
102 
103 } //namespace geos
104 
105 #endif //GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_WELLPRODUCTIONCONSTRAINT_HPP
This class describes constraint used to control a production well.
ProductionConstraint()=delete
Deleted default constructor.
ProductionConstraint(ProductionConstraint &&)=delete
Deleted move constructor.
ProductionConstraint & operator=(ProductionConstraint const &)=delete
Deleted assignment operator.
ProductionConstraint(string const &name, dataRepository::Group *const parent)
Constructor for WellControls Objects.
static string catalogName()
name of the node manager in the object catalog
~ProductionConstraint() override
Default destructor.
ProductionConstraint(ProductionConstraint const &)=delete
Deleted copy constructor.
ProductionConstraint & operator=(ProductionConstraint &&)=delete
Deleted move operator.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:98