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;
181 namespace perm_details {
184 constexpr const double flux = cubic (
prefix::centi*meter) / second;
185 constexpr const double velocity = flux / area;
187 constexpr const double darcy = (velocity * visc) / p_grad;
200 constexpr const double darcy = perm_details::darcy;
225 constexpr double from(
const double q,
const double unit)
248 constexpr double to(
const double q,
const double unit)
256 using namespace prefix;
257 using namespace unit;
258 constexpr const double Pressure = barsa;
259 constexpr const double Temperature = degCelsius;
260 constexpr const double TemperatureOffset = degCelsiusOffset;
261 constexpr const double AbsoluteTemperature = degCelsius;
262 constexpr const double Length = meter;
263 constexpr const double Time = day;
264 constexpr const double RunTime = second;
265 constexpr const double Mass = kilogram;
266 constexpr const double Permeability = milli*darcy;
267 constexpr const double Transmissibility = centi*Poise*cubic(meter)/(day*barsa);
268 constexpr const double LiquidSurfaceVolume = cubic(meter);
269 constexpr const double GasSurfaceVolume = cubic(meter);
270 constexpr const double ReservoirVolume = cubic(meter);
271 constexpr const double GeomVolume = cubic(meter);
272 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
273 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
274 constexpr const double Density = kilogram/cubic(meter);
275 constexpr const double PolymerDensity = kilogram/cubic(meter);
276 constexpr const double FoamDensity = kilogram/cubic(meter);
277 constexpr const double FoamSurfactantConcentration = kilogram/cubic(meter);
278 constexpr const double Salinity = kilogram/cubic(meter);
279 constexpr const double Viscosity = centi*Poise;
280 constexpr const double Timestep = day;
281 constexpr const double SurfaceTension = dyne/(centi*meter);
282 constexpr const double Energy = kilo*joule;
283 constexpr const double Moles = kilo*mol;
288 using namespace prefix;
289 using namespace unit;
290 constexpr const double Pressure = psia;
291 constexpr const double Temperature = degFahrenheit;
292 constexpr const double TemperatureOffset = degFahrenheitOffset;
293 constexpr const double AbsoluteTemperature = degFahrenheit;
294 constexpr const double Length = feet;
295 constexpr const double Time = day;
296 constexpr const double RunTime = second;
297 constexpr const double Mass = pound;
298 constexpr const double Permeability =
milli*darcy;
299 constexpr const double Transmissibility =
centi*Poise*stb/(day*psia);
300 constexpr const double LiquidSurfaceVolume = stb;
301 constexpr const double GasSurfaceVolume = 1000*cubic(feet);
302 constexpr const double ReservoirVolume = stb;
303 constexpr const double GeomVolume = cubic(feet);
304 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
305 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
306 constexpr const double Density = pound/cubic(feet);
307 constexpr const double PolymerDensity = pound/stb;
308 constexpr const double FoamDensity = pound/GasSurfaceVolume;
309 constexpr const double FoamSurfactantConcentration = pound/stb;
310 constexpr const double Salinity = pound/stb;
311 constexpr const double Viscosity =
centi*Poise;
312 constexpr const double Timestep = day;
313 constexpr const double SurfaceTension = dyne/(
centi*meter);
314 constexpr const double Energy = btu;
315 constexpr const double Moles =
kilo*pound*mol;
321 using namespace prefix;
322 using namespace unit;
323 constexpr const double Pressure = atm;
324 constexpr const double Temperature = degCelsius;
325 constexpr const double TemperatureOffset = degCelsiusOffset;
326 constexpr const double AbsoluteTemperature = degCelsius;
327 constexpr const double Length =
centi*meter;
328 constexpr const double Time = hour;
329 constexpr const double RunTime = second;
330 constexpr const double Mass = gram;
331 constexpr const double Permeability =
milli*darcy;
332 constexpr const double Transmissibility =
centi*Poise*cubic(centi*meter)/(hour*atm);
333 constexpr const double LiquidSurfaceVolume = cubic(centi*meter);
334 constexpr const double GasSurfaceVolume = cubic(centi*meter);
335 constexpr const double ReservoirVolume = cubic(centi*meter);
336 constexpr const double GeomVolume = cubic(centi*meter);
337 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
338 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
339 constexpr const double Density = gram/cubic(centi*meter);
340 constexpr const double PolymerDensity = gram/cubic(centi*meter);
341 constexpr const double FoamDensity = gram/cubic(centi*meter);
342 constexpr const double FoamSurfactantConcentration = gram/cubic(centi*meter);
343 constexpr const double Salinity = gram/cubic(centi*meter);
344 constexpr const double Viscosity =
centi*Poise;
345 constexpr const double Timestep = hour;
346 constexpr const double SurfaceTension = dyne/(
centi*meter);
347 constexpr const double Energy = joule;
348 constexpr const double Moles = mol;
354 using namespace prefix;
355 using namespace unit;
356 constexpr const double Pressure = atm;
357 constexpr const double Temperature = degCelsius;
358 constexpr const double TemperatureOffset = degCelsiusOffset;
359 constexpr const double AbsoluteTemperature = degCelsius;
360 constexpr const double Length = meter;
361 constexpr const double Time = day;
362 constexpr const double RunTime = second;
363 constexpr const double Mass = kilogram;
364 constexpr const double Permeability =
milli*darcy;
365 constexpr const double Transmissibility =
centi*Poise*cubic(meter)/(day*atm);
366 constexpr const double LiquidSurfaceVolume = cubic(meter);
367 constexpr const double GasSurfaceVolume = cubic(meter);
368 constexpr const double ReservoirVolume = cubic(meter);
369 constexpr const double GeomVolume = cubic(meter);
370 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
371 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
372 constexpr const double Density = kilogram/cubic(meter);
373 constexpr const double PolymerDensity = kilogram/cubic(meter);
374 constexpr const double FoamDensity = kilogram/cubic(meter);
375 constexpr const double FoamSurfactantConcentration = kilogram/cubic(meter);
376 constexpr const double Salinity = kilogram/cubic(meter);
377 constexpr const double Viscosity =
centi*Poise;
378 constexpr const double Timestep = day;
379 constexpr const double SurfaceTension = dyne/(
centi*meter);
380 constexpr const double Energy =
kilo*joule;
381 constexpr const double Moles =
kilo*mol;
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:248
constexpr double from(const double q, const double unit)
Convert from external units of measurements to equivalent internal units of measurements.
Definition: Units.hpp:225
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30