35 #ifndef OPM_UNITS_HEADER 36 #define OPM_UNITS_HEADER 60 constexpr
double micro = 1.0e-6;
61 constexpr
double milli = 1.0e-3;
62 constexpr
double centi = 1.0e-2;
63 constexpr
double deci = 1.0e-1;
64 constexpr
double kilo = 1.0e3;
65 constexpr
double mega = 1.0e6;
66 constexpr
double giga = 1.0e9;
87 constexpr
double square(
double v) {
return v * v; }
88 constexpr
double cubic (
double v) {
return v * v * v; }
97 constexpr
double meter = 1;
99 constexpr
double feet = 12 * inch;
104 constexpr
double second = 1;
105 constexpr
double minute = 60 * second;
106 constexpr
double hour = 60 * minute;
107 constexpr
double day = 24 * hour;
108 constexpr
double year = 365 * day;
109 constexpr
double ecl_year = 365.25 * day;
114 constexpr
double gallon = 231 * cubic(inch);
115 constexpr
double stb = 42 * gallon;
121 constexpr
double kilogram = 1;
122 constexpr
double gram = 1.0e-3 * kilogram;
124 constexpr
double pound = 0.45359237 * kilogram;
129 constexpr
double joule = 1;
130 constexpr
double btu = 1054.3503*joule;
139 constexpr
double gravity = 9.80665 * meter/square(second);
142 constexpr
double mol = 1;
149 constexpr
double Newton = kilogram*meter / square(second);
150 constexpr
double dyne = 1e-5*Newton;
151 constexpr
double lbf = pound * gravity;
156 constexpr
double Pascal = Newton / square(meter);
157 constexpr
double barsa = 100000 * Pascal;
158 constexpr
double bars = 100000 * Pascal;
159 constexpr
double atma = 101325 * Pascal;
160 constexpr
double atm = 101325 * Pascal;
161 constexpr
double psia = lbf / square(inch);
162 constexpr
double psi = lbf / square(inch);
171 constexpr
double degCelsius = 1.0;
172 constexpr
double degCelsiusOffset = 273.15;
174 constexpr
double degFahrenheit = 5.0/9.0;
175 constexpr
double degFahrenheitOffset = 459.67*degFahrenheit;
180 constexpr
double Pas = Pascal * second;
186 namespace perm_details {
189 constexpr
double flux = cubic (
prefix::centi*meter) / second;
190 constexpr
double velocity = flux / area;
192 constexpr
double darcy = (velocity * visc) / p_grad;
205 constexpr
double darcy = perm_details::darcy;
230 constexpr
double from(
const double q,
const double unit)
253 constexpr
double to(
const double q,
const double unit)
261 using namespace prefix;
262 using namespace unit;
263 constexpr
double Pressure = barsa;
264 constexpr
double PressureDrop = bars;
265 constexpr
double Temperature = degCelsius;
266 constexpr
double TemperatureOffset = degCelsiusOffset;
267 constexpr
double AbsoluteTemperature = degCelsius;
268 constexpr
double Length = meter;
269 constexpr
double Time = day;
270 constexpr
double RunTime = second;
271 constexpr
double Mass = kilogram;
272 constexpr
double Permeability = milli*darcy;
273 constexpr
double Transmissibility = centi*Poise*cubic(meter)/(day*barsa);
274 constexpr
double LiquidSurfaceVolume = cubic(meter);
275 constexpr
double GasSurfaceVolume = cubic(meter);
276 constexpr
double ReservoirVolume = cubic(meter);
277 constexpr
double Area = square(meter);
278 constexpr
double GeomVolume = cubic(meter);
279 constexpr
double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
280 constexpr
double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
281 constexpr
double Density = kilogram/cubic(meter);
282 constexpr
double Concentration = kilogram/cubic(meter);
283 constexpr
double FoamDensity = kilogram/cubic(meter);
284 constexpr
double Viscosity = centi*Poise;
285 constexpr
double Timestep = day;
286 constexpr
double SurfaceTension = dyne/(centi*meter);
287 constexpr
double Energy = kilo*joule;
288 constexpr
double Moles = kilo*mol;
289 constexpr
double PPM = ppm;
290 constexpr
double Ymodule = giga*Pascal;
291 constexpr
double ThermalConductivity = kilo*joule/(meter*day*degCelsius);
296 using namespace prefix;
297 using namespace unit;
298 constexpr
double Pressure = psia;
299 constexpr
double PressureDrop = psi;
300 constexpr
double Temperature = degFahrenheit;
301 constexpr
double TemperatureOffset = degFahrenheitOffset;
302 constexpr
double AbsoluteTemperature = degFahrenheit;
303 constexpr
double Length = feet;
304 constexpr
double Time = day;
305 constexpr
double RunTime = second;
306 constexpr
double Mass = pound;
307 constexpr
double Permeability =
milli*darcy;
308 constexpr
double Transmissibility =
centi*Poise*stb/(day*psia);
309 constexpr
double LiquidSurfaceVolume = stb;
310 constexpr
double GasSurfaceVolume = 1000*cubic(feet);
311 constexpr
double ReservoirVolume = stb;
312 constexpr
double Area = square(feet);
313 constexpr
double GeomVolume = cubic(feet);
314 constexpr
double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
315 constexpr
double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
316 constexpr
double Density = pound/cubic(feet);
317 constexpr
double Concentration = pound/stb;
318 constexpr
double FoamDensity = pound/GasSurfaceVolume;
319 constexpr
double Viscosity =
centi*Poise;
320 constexpr
double Timestep = day;
321 constexpr
double SurfaceTension = dyne/(
centi*meter);
322 constexpr
double Energy = btu;
323 constexpr
double Moles =
kilo*pound*mol;
324 constexpr
double PPM = ppm;
325 constexpr
double Ymodule =
giga*Pascal;
326 constexpr
double ThermalConductivity = btu/(feet*day*degFahrenheit);
331 using namespace prefix;
332 using namespace unit;
333 constexpr
double Pressure = atma;
334 constexpr
double PressureDrop = atm;
335 constexpr
double Temperature = degCelsius;
336 constexpr
double TemperatureOffset = degCelsiusOffset;
337 constexpr
double AbsoluteTemperature = degCelsius;
338 constexpr
double Length =
centi*meter;
339 constexpr
double Time = hour;
340 constexpr
double RunTime = second;
341 constexpr
double Mass = gram;
342 constexpr
double Permeability =
milli*darcy;
343 constexpr
double Transmissibility =
centi*Poise*cubic(centi*meter)/(hour*atm);
344 constexpr
double LiquidSurfaceVolume = cubic(centi*meter);
345 constexpr
double GasSurfaceVolume = cubic(centi*meter);
346 constexpr
double ReservoirVolume = cubic(centi*meter);
347 constexpr
double Area = square(centi*meter);
348 constexpr
double GeomVolume = cubic(centi*meter);
349 constexpr
double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
350 constexpr
double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
351 constexpr
double Density = gram/cubic(centi*meter);
352 constexpr
double Concentration = gram/cubic(centi*meter);
353 constexpr
double FoamDensity = gram/cubic(centi*meter);
354 constexpr
double Viscosity =
centi*Poise;
355 constexpr
double Timestep = hour;
356 constexpr
double SurfaceTension = dyne/(
centi*meter);
357 constexpr
double Energy = joule;
358 constexpr
double Moles = mol;
359 constexpr
double PPM = ppm;
360 constexpr
double Ymodule =
giga*Pascal;
361 constexpr
double ThermalConductivity = joule/(
centi*meter*hour*degCelsius);
366 using namespace prefix;
367 using namespace unit;
368 constexpr
double Pressure = atma;
369 constexpr
double PressureDrop = atm;
370 constexpr
double Temperature = degCelsius;
371 constexpr
double TemperatureOffset = degCelsiusOffset;
372 constexpr
double AbsoluteTemperature = degCelsius;
373 constexpr
double Length = meter;
374 constexpr
double Time = day;
375 constexpr
double RunTime = second;
376 constexpr
double Mass = kilogram;
377 constexpr
double Permeability =
milli*darcy;
378 constexpr
double Transmissibility =
centi*Poise*cubic(meter)/(day*atm);
379 constexpr
double LiquidSurfaceVolume = cubic(meter);
380 constexpr
double GasSurfaceVolume = cubic(meter);
381 constexpr
double ReservoirVolume = cubic(meter);
382 constexpr
double Area = square(meter);
383 constexpr
double GeomVolume = cubic(meter);
384 constexpr
double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
385 constexpr
double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
386 constexpr
double Density = kilogram/cubic(meter);
387 constexpr
double Concentration = kilogram/cubic(meter);
388 constexpr
double FoamDensity = kilogram/cubic(meter);
389 constexpr
double Viscosity =
centi*Poise;
390 constexpr
double Timestep = day;
391 constexpr
double SurfaceTension = dyne/(
centi*meter);
392 constexpr
double Energy =
kilo*joule;
393 constexpr
double Moles =
kilo*mol;
394 constexpr
double PPM = ppm;
395 constexpr
double Ymodule =
giga*Pascal;
396 constexpr
double ThermalConductivity =
kilo*joule/(meter*day*degCelsius);
400 #endif // OPM_UNITS_HEADER constexpr double milli
Unit prefix [m].
Definition: Units.hpp:61
constexpr double kilo
Unit prefix [k].
Definition: Units.hpp:64
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
constexpr double mega
Unit prefix [M].
Definition: Units.hpp:65
constexpr double giga
Unit prefix [G].
Definition: Units.hpp:66
constexpr double micro
Unit prefix [ ].
Definition: Units.hpp:60
constexpr double to(const double q, const double unit)
Convert from internal units of measurements to equivalent external units of measurements.
Definition: Units.hpp:253
constexpr double centi
Non-standard unit prefix [c].
Definition: Units.hpp:62
constexpr double deci
Non-standard unit prefix [d].
Definition: Units.hpp:63
constexpr double from(const double q, const double unit)
Convert from external units of measurements to equivalent internal units of measurements.
Definition: Units.hpp:230