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 atm = 101325 * Pascal;
159 constexpr const double psia = lbf / square(inch);
168 constexpr const double degCelsius = 1.0;
169 constexpr const double degCelsiusOffset = 273.15;
171 constexpr const double degFahrenheit = 5.0/9.0;
172 constexpr const double degFahrenheitOffset = 459.67*degFahrenheit;
177 constexpr const double Pas = Pascal * second;
183 namespace perm_details {
186 constexpr const double flux = cubic (
prefix::centi*meter) / second;
187 constexpr const double velocity = flux / area;
189 constexpr const double darcy = (velocity * visc) / p_grad;
202 constexpr const double darcy = perm_details::darcy;
227 constexpr double from(
const double q,
const double unit)
250 constexpr double to(
const double q,
const double unit)
258 using namespace prefix;
259 using namespace unit;
260 constexpr const double Pressure = barsa;
261 constexpr const double Temperature = degCelsius;
262 constexpr const double TemperatureOffset = degCelsiusOffset;
263 constexpr const double AbsoluteTemperature = degCelsius;
264 constexpr const double Length = meter;
265 constexpr const double Time = day;
266 constexpr const double RunTime = second;
267 constexpr const double Mass = kilogram;
268 constexpr const double Permeability =
milli*darcy;
269 constexpr const double Transmissibility =
centi*Poise*cubic(meter)/(day*barsa);
270 constexpr const double LiquidSurfaceVolume = cubic(meter);
271 constexpr const double GasSurfaceVolume = cubic(meter);
272 constexpr const double ReservoirVolume = cubic(meter);
273 constexpr const double Area = square(meter);
274 constexpr const double GeomVolume = cubic(meter);
275 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
276 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
277 constexpr const double Density = kilogram/cubic(meter);
278 constexpr const double PolymerDensity = kilogram/cubic(meter);
279 constexpr const double FoamDensity = kilogram/cubic(meter);
280 constexpr const double FoamSurfactantConcentration = kilogram/cubic(meter);
281 constexpr const double Salinity = kilogram/cubic(meter);
282 constexpr const double Viscosity =
centi*Poise;
283 constexpr const double Timestep = day;
284 constexpr const double SurfaceTension = dyne/(
centi*meter);
285 constexpr const double Energy =
kilo*joule;
286 constexpr const double Moles =
kilo*mol;
287 constexpr const double PPM = ppm;
288 constexpr const double Ymodule =
giga*Pascal;
293 using namespace prefix;
294 using namespace unit;
295 constexpr const double Pressure = psia;
296 constexpr const double Temperature = degFahrenheit;
297 constexpr const double TemperatureOffset = degFahrenheitOffset;
298 constexpr const double AbsoluteTemperature = degFahrenheit;
299 constexpr const double Length = feet;
300 constexpr const double Time = day;
301 constexpr const double RunTime = second;
302 constexpr const double Mass = pound;
303 constexpr const double Permeability =
milli*darcy;
304 constexpr const double Transmissibility =
centi*Poise*stb/(day*psia);
305 constexpr const double LiquidSurfaceVolume = stb;
306 constexpr const double GasSurfaceVolume = 1000*cubic(feet);
307 constexpr const double ReservoirVolume = stb;
308 constexpr const double Area = square(feet);
309 constexpr const double GeomVolume = cubic(feet);
310 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
311 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
312 constexpr const double Density = pound/cubic(feet);
313 constexpr const double PolymerDensity = pound/stb;
314 constexpr const double FoamDensity = pound/GasSurfaceVolume;
315 constexpr const double FoamSurfactantConcentration = pound/stb;
316 constexpr const double Salinity = pound/stb;
317 constexpr const double Viscosity =
centi*Poise;
318 constexpr const double Timestep = day;
319 constexpr const double SurfaceTension = dyne/(
centi*meter);
320 constexpr const double Energy = btu;
321 constexpr const double Moles =
kilo*pound*mol;
322 constexpr const double PPM = ppm;
323 constexpr const double Ymodule =
giga*Pascal;
328 using namespace prefix;
329 using namespace unit;
330 constexpr const double Pressure = atm;
331 constexpr const double Temperature = degCelsius;
332 constexpr const double TemperatureOffset = degCelsiusOffset;
333 constexpr const double AbsoluteTemperature = degCelsius;
334 constexpr const double Length =
centi*meter;
335 constexpr const double Time = hour;
336 constexpr const double RunTime = second;
337 constexpr const double Mass = gram;
338 constexpr const double Permeability =
milli*darcy;
339 constexpr const double Transmissibility =
centi*Poise*cubic(
centi*meter)/(hour*atm);
340 constexpr const double LiquidSurfaceVolume = cubic(
centi*meter);
341 constexpr const double GasSurfaceVolume = cubic(
centi*meter);
342 constexpr const double ReservoirVolume = cubic(
centi*meter);
343 constexpr const double Area = square(
centi*meter);
344 constexpr const double GeomVolume = cubic(
centi*meter);
345 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
346 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
347 constexpr const double Density = gram/cubic(
centi*meter);
348 constexpr const double PolymerDensity = gram/cubic(
centi*meter);
349 constexpr const double FoamDensity = gram/cubic(
centi*meter);
350 constexpr const double FoamSurfactantConcentration = gram/cubic(
centi*meter);
351 constexpr const double Salinity = gram/cubic(
centi*meter);
352 constexpr const double Viscosity =
centi*Poise;
353 constexpr const double Timestep = hour;
354 constexpr const double SurfaceTension = dyne/(
centi*meter);
355 constexpr const double Energy = joule;
356 constexpr const double Moles = mol;
357 constexpr const double PPM = ppm;
358 constexpr const double Ymodule =
giga*Pascal;
363 using namespace prefix;
364 using namespace unit;
365 constexpr const double Pressure = atm;
366 constexpr const double Temperature = degCelsius;
367 constexpr const double TemperatureOffset = degCelsiusOffset;
368 constexpr const double AbsoluteTemperature = degCelsius;
369 constexpr const double Length = meter;
370 constexpr const double Time = day;
371 constexpr const double RunTime = second;
372 constexpr const double Mass = kilogram;
373 constexpr const double Permeability =
milli*darcy;
374 constexpr const double Transmissibility =
centi*Poise*cubic(meter)/(day*atm);
375 constexpr const double LiquidSurfaceVolume = cubic(meter);
376 constexpr const double GasSurfaceVolume = cubic(meter);
377 constexpr const double ReservoirVolume = cubic(meter);
378 constexpr const double Area = square(meter);
379 constexpr const double GeomVolume = cubic(meter);
380 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
381 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
382 constexpr const double Density = kilogram/cubic(meter);
383 constexpr const double PolymerDensity = kilogram/cubic(meter);
384 constexpr const double FoamDensity = kilogram/cubic(meter);
385 constexpr const double FoamSurfactantConcentration = kilogram/cubic(meter);
386 constexpr const double Salinity = kilogram/cubic(meter);
387 constexpr const double Viscosity =
centi*Poise;
388 constexpr const double Timestep = day;
389 constexpr const double SurfaceTension = dyne/(
centi*meter);
390 constexpr const double Energy =
kilo*joule;
391 constexpr const double Moles =
kilo*mol;
392 constexpr const double PPM = ppm;
393 constexpr const double Ymodule =
giga*Pascal;
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:250
constexpr double from(const double q, const double unit)
Convert from external units of measurements to equivalent internal units of measurements.
Definition Units.hpp:227
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30