My Project
MICPpara.hpp
1 /*
2  Copyright 2021 NORCE.
3 
4  This file is part of the Open Porous Media project (OPM).
5 
6  OPM is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  OPM is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with OPM. If not, see <http://www.gnu.org/licenses/>.
18  */
19 #ifndef OPM_PARSER_MICPPARA_HPP
20 #define OPM_PARSER_MICPPARA_HPP
21 
22 namespace Opm {
23 
24 class Deck;
25 
26  class MICPpara {
27  public:
28 
29  MICPpara();
30 
31  explicit MICPpara(const Deck& deck);
32 
33 
34  static MICPpara serializationTestObject()
35  {
36  MICPpara mp;
37  mp.m_density_biofilm = 100;
38  mp.m_fitting_factor = 77;
39  mp.m_maximum_oxygen_concentration = -1;
40  return mp;
41  }
42 
43  double getDensityBiofilm() const {
44  return m_density_biofilm;
45  }
46 
47  double getDensityCalcite() const {
48  return m_density_calcite;
49  }
50 
51  double getDetachmentRate() const {
52  return m_detachment_rate;
53  }
54 
55  double getCriticalPorosity() const {
56  return m_critical_porosity;
57  }
58 
59  double getFittingFactor() const {
60  return m_fitting_factor;
61  }
62 
63  double getHalfVelocityOxygen() const {
64  return m_half_velocity_oxygen;
65  }
66 
67  double getHalfVelocityUrea() const {
68  return m_half_velocity_urea;
69  }
70 
71  double getMaximumGrowthRate() const {
72  return m_maximum_growth_rate;
73  }
74 
75  double getMaximumOxygenConcentration() const {
76  return m_maximum_oxygen_concentration;
77  }
78 
79  double getMaximumUreaConcentration() const {
80  return m_maximum_urea_concentration;
81  }
82 
83  double getMaximumUreaUtilization() const {
84  return m_maximum_urea_utilization;
85  }
86 
87  double getMicrobialAttachmentRate() const {
88  return m_microbial_attachment_rate;
89  }
90 
91  double getMicrobialDeathRate() const {
92  return m_microbial_death_rate;
93  }
94 
95  double getMinimumPermeability() const {
96  return m_minimum_permeability;
97  }
98 
99  double getOxygenConsumptionFactor() const {
100  return m_oxygen_consumption_factor;
101  }
102 
103  double getToleranceBeforeClogging() const {
104  return m_tolerance_before_clogging;
105  }
106 
107  double getYieldGrowthCoefficient() const {
108  return m_yield_growth_coefficient;
109  }
110 
111  bool operator==(const MICPpara& data) const
112  {
113  return this->getDensityBiofilm() == data.getDensityBiofilm() &&
114  this->getDensityCalcite() == data.getDensityCalcite() &&
115  this->getDetachmentRate() == data.getDetachmentRate() &&
116  this->getCriticalPorosity() == data.getCriticalPorosity() &&
117  this->getFittingFactor() == data.getFittingFactor() &&
118  this->getHalfVelocityOxygen() == data.getHalfVelocityOxygen() &&
119  this->getHalfVelocityUrea() == data.getHalfVelocityUrea() &&
120  this->getMaximumGrowthRate() == data.getMaximumGrowthRate() &&
121  this->getMaximumOxygenConcentration() == data.getMaximumOxygenConcentration() &&
122  this->getMaximumUreaConcentration() == data.getMaximumUreaConcentration() &&
123  this->getMaximumUreaUtilization() == data.getMaximumUreaUtilization() &&
124  this->getMicrobialAttachmentRate() == data.getMicrobialAttachmentRate() &&
125  this->getMicrobialDeathRate() == data.getMicrobialDeathRate() &&
126  this->getMinimumPermeability() == data.getMinimumPermeability() &&
127  this->getOxygenConsumptionFactor() == data.getOxygenConsumptionFactor() &&
128  this->getToleranceBeforeClogging() == data.getToleranceBeforeClogging() &&
129  this->getYieldGrowthCoefficient() == data.getYieldGrowthCoefficient();
130  }
131 
132  template<class Serializer>
133  void serializeOp(Serializer& serializer)
134  {
135  serializer(m_density_biofilm);
136  serializer(m_density_calcite);
137  serializer(m_detachment_rate);
138  serializer(m_critical_porosity);
139  serializer(m_fitting_factor);
140  serializer(m_half_velocity_oxygen);
141  serializer(m_half_velocity_urea);
142  serializer(m_maximum_growth_rate);
143  serializer(m_maximum_oxygen_concentration);
144  serializer(m_maximum_urea_concentration);
145  serializer(m_maximum_urea_utilization);
146  serializer(m_microbial_attachment_rate);
147  serializer(m_microbial_death_rate);
148  serializer(m_minimum_permeability);
149  serializer(m_oxygen_consumption_factor);
150  serializer(m_tolerance_before_clogging);
151  serializer(m_yield_growth_coefficient);
152  }
153 
154  private:
155  double m_density_biofilm;
156  double m_density_calcite;
157  double m_detachment_rate;
158  double m_critical_porosity;
159  double m_fitting_factor;
160  double m_half_velocity_oxygen;
161  double m_half_velocity_urea;
162  double m_maximum_growth_rate;
163  double m_maximum_oxygen_concentration;
164  double m_maximum_urea_concentration;
165  double m_maximum_urea_utilization;
166  double m_microbial_attachment_rate;
167  double m_microbial_death_rate;
168  double m_minimum_permeability;
169  double m_oxygen_consumption_factor;
170  double m_tolerance_before_clogging;
171  double m_yield_growth_coefficient;
172 
173  };
174 }
175 
176 
177 #endif
Definition: Deck.hpp:63
Definition: MICPpara.hpp:26
Class for (de-)serializing.
Definition: Serializer.hpp:75
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29