GEOS
WellMassRateConstraint.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 WellMassRateConstraint.hpp
18  */
19 
20 
21 #ifndef GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_WELLMASSRATECONSTRAINT_HPP
22 #define GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_WELLMASSRATECONSTRAINT_HPP
23 
25 #include "dataRepository/Group.hpp"
27 #include "WellConstraintsBase.hpp"
28 namespace geos
29 {
30 
37 {
38 public:
39 
44 
50  explicit MassRateConstraint( string const & name, dataRepository::Group * const parent );
51 
52 
56  ~MassRateConstraint() override;
57 
61  MassRateConstraint() = delete;
62 
67 
72 
78 
84 
89  static string catalogName()
90  {
91  return "MassRateConstraint";
92  }
94 
96  {
98  static constexpr char const * massRateString() { return "massRate"; }
99  };
100 
105  // Temp interface - tjb
106  virtual ConstraintTypeId getControl() const override { return ConstraintTypeId::MASSRATE; };
108 
109  virtual bool checkViolation( WellConstraintBase const & currentConstraint, real64 const & currentTime ) const override;
110 
111 protected:
112 
113  virtual void postInputInitialization() override;
114 
115 };
116 
117 
118 } //namespace geos
119 
120 #endif //GEOS_PHYSICSSOLVERS_FLUIDFLOW_WELLS_WELLMASSRATECONSTRAINT_HPP
This class describes a mass rate constraint used to control a well.
MassRateConstraint()=delete
Deleted default constructor.
MassRateConstraint(MassRateConstraint &&)=delete
Deleted move constructor.
MassRateConstraint(MassRateConstraint const &)=delete
Deleted copy constructor.
~MassRateConstraint() override
Default destructor.
static string catalogName()
name of the node manager in the object catalog
MassRateConstraint(string const &name, dataRepository::Group *const parent)
Constructor for WellControls Objects.
MassRateConstraint & operator=(MassRateConstraint &&)=delete
Deleted move operator.
virtual bool checkViolation(WellConstraintBase const &currentConstraint, real64 const &currentTime) const override
Check if this constraint is violated.
virtual void postInputInitialization() override
MassRateConstraint & operator=(MassRateConstraint const &)=delete
Deleted assignment operator.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:98
static constexpr char const * massRateString()
String key for the well target rate.