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 MICPpara {
25  public:
26 
27  MICPpara();
28 
29  MICPpara( double density_biofilm , double density_calcite , double detachment_rate , double critical_porosity , double fitting_factor , double half_velocity_oxygen , double half_velocity_urea , double maximum_growth_rate , double maximum_oxygen_concentration , double maximum_urea_concentration , double maximum_urea_utilization , double microbial_attachment_rate , double microbial_death_rate , double minimum_permeability , double oxygen_consumption_factor , double tolerance_before_clogging , double yield_growth_coefficient) :
30  m_density_biofilm( density_biofilm ),
31  m_density_calcite( density_calcite ),
32  m_detachment_rate( detachment_rate ),
33  m_critical_porosity( critical_porosity ),
34  m_fitting_factor( fitting_factor ),
35  m_half_velocity_oxygen( half_velocity_oxygen ),
36  m_half_velocity_urea( half_velocity_urea ),
37  m_maximum_growth_rate( maximum_growth_rate ),
38  m_maximum_oxygen_concentration( maximum_oxygen_concentration ),
39  m_maximum_urea_concentration( maximum_urea_concentration ),
40  m_maximum_urea_utilization( maximum_urea_utilization ),
41  m_microbial_attachment_rate( microbial_attachment_rate ),
42  m_microbial_death_rate( microbial_death_rate ),
43  m_minimum_permeability( minimum_permeability ),
44  m_oxygen_consumption_factor( oxygen_consumption_factor ),
45  m_tolerance_before_clogging( tolerance_before_clogging ),
46  m_yield_growth_coefficient( yield_growth_coefficient )
47  { }
48 
49  static MICPpara serializeObject()
50  {
51  return MICPpara(1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17.);
52  }
53 
54  double getDensityBiofilm() const {
55  return m_density_biofilm;
56  }
57 
58  double getDensityCalcite() const {
59  return m_density_calcite;
60  }
61 
62  double getDetachmentRate() const {
63  return m_detachment_rate;
64  }
65 
66  double getCriticalPorosity() const {
67  return m_critical_porosity;
68  }
69 
70  double getFittingFactor() const {
71  return m_fitting_factor;
72  }
73 
74  double getHalfVelocityOxygen() const {
75  return m_half_velocity_oxygen;
76  }
77 
78  double getHalfVelocityUrea() const {
79  return m_half_velocity_urea;
80  }
81 
82  double getMaximumGrowthRate() const {
83  return m_maximum_growth_rate;
84  }
85 
86  double getMaximumOxygenConcentration() const {
87  return m_maximum_oxygen_concentration;
88  }
89 
90  double getMaximumUreaConcentration() const {
91  return m_maximum_urea_concentration;
92  }
93 
94  double getMaximumUreaUtilization() const {
95  return m_maximum_urea_utilization;
96  }
97 
98  double getMicrobialAttachmentRate() const {
99  return m_microbial_attachment_rate;
100  }
101 
102  double getMicrobialDeathRate() const {
103  return m_microbial_death_rate;
104  }
105 
106  double getMinimumPermeability() const {
107  return m_minimum_permeability;
108  }
109 
110  double getOxygenConsumptionFactor() const {
111  return m_oxygen_consumption_factor;
112  }
113 
114  double getToleranceBeforeClogging() const {
115  return m_tolerance_before_clogging;
116  }
117 
118  double getYieldGrowthCoefficient() const {
119  return m_yield_growth_coefficient;
120  }
121 
122  bool operator==(const MICPpara& data) const
123  {
124  return this->getDensityBiofilm() == data.getDensityBiofilm() &&
125  this->getDensityCalcite() == data.getDensityCalcite() &&
126  this->getDetachmentRate() == data.getDetachmentRate() &&
127  this->getCriticalPorosity() == data.getCriticalPorosity() &&
128  this->getFittingFactor() == data.getFittingFactor() &&
129  this->getHalfVelocityOxygen() == data.getHalfVelocityOxygen() &&
130  this->getHalfVelocityUrea() == data.getHalfVelocityUrea() &&
131  this->getMaximumGrowthRate() == data.getMaximumGrowthRate() &&
132  this->getMaximumOxygenConcentration() == data.getMaximumOxygenConcentration() &&
133  this->getMaximumUreaConcentration() == data.getMaximumUreaConcentration() &&
134  this->getMaximumUreaUtilization() == data.getMaximumUreaUtilization() &&
135  this->getMicrobialAttachmentRate() == data.getMicrobialAttachmentRate() &&
136  this->getMicrobialDeathRate() == data.getMicrobialDeathRate() &&
137  this->getMinimumPermeability() == data.getMinimumPermeability() &&
138  this->getOxygenConsumptionFactor() == data.getOxygenConsumptionFactor() &&
139  this->getToleranceBeforeClogging() == data.getToleranceBeforeClogging() &&
140  this->getYieldGrowthCoefficient() == data.getYieldGrowthCoefficient();
141  }
142 
143  template<class Serializer>
144  void serializeOp(Serializer& serializer)
145  {
146  serializer(m_density_biofilm);
147  serializer(m_density_calcite);
148  serializer(m_detachment_rate);
149  serializer(m_critical_porosity);
150  serializer(m_fitting_factor);
151  serializer(m_half_velocity_oxygen);
152  serializer(m_half_velocity_urea);
153  serializer(m_maximum_growth_rate);
154  serializer(m_maximum_oxygen_concentration);
155  serializer(m_maximum_urea_concentration);
156  serializer(m_maximum_urea_utilization);
157  serializer(m_microbial_attachment_rate);
158  serializer(m_microbial_death_rate);
159  serializer(m_minimum_permeability);
160  serializer(m_oxygen_consumption_factor);
161  serializer(m_tolerance_before_clogging);
162  serializer(m_yield_growth_coefficient);
163  }
164 
165  private:
166  double m_density_biofilm;
167  double m_density_calcite;
168  double m_detachment_rate;
169  double m_critical_porosity;
170  double m_fitting_factor;
171  double m_half_velocity_oxygen;
172  double m_half_velocity_urea;
173  double m_maximum_growth_rate;
174  double m_maximum_oxygen_concentration;
175  double m_maximum_urea_concentration;
176  double m_maximum_urea_utilization;
177  double m_microbial_attachment_rate;
178  double m_microbial_death_rate;
179  double m_minimum_permeability;
180  double m_oxygen_consumption_factor;
181  double m_tolerance_before_clogging;
182  double m_yield_growth_coefficient;
183 
184  };
185 }
186 
187 
188 #endif
Definition: MICPpara.hpp:24
Definition: Serializer.hpp:38
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29