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);
Conversion prefix for units.
Definition Units.hpp:59
constexpr double centi
Non-standard unit prefix [c].
Definition Units.hpp:62
constexpr double giga
Unit prefix [G].
Definition Units.hpp:66
constexpr double milli
Unit prefix [m].
Definition Units.hpp:61
constexpr double kilo
Unit prefix [k].
Definition Units.hpp:64
constexpr double deci
Non-standard unit prefix [d].
Definition Units.hpp:63
constexpr double mega
Unit prefix [M].
Definition Units.hpp:65
constexpr double micro
Unit prefix [ ].
Definition Units.hpp:60
Unit conversion routines.
Definition Units.hpp:211
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 from(const double q, const double unit)
Convert from external units of measurements to equivalent internal units of measurements.
Definition Units.hpp:230
Definition of various units.
Definition Units.hpp:84
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30