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