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);
148 constexpr const double Newton = kilogram*meter / square(second);
149 constexpr const double dyne = 1e-5*Newton;
150 constexpr const double lbf = pound * gravity;
155 constexpr const double Pascal = Newton / square(meter);
156 constexpr const double barsa = 100000 * Pascal;
157 constexpr const double atm = 101325 * Pascal;
158 constexpr const double psia = lbf / square(inch);
167 constexpr const double degCelsius = 1.0;
168 constexpr const double degCelsiusOffset = 273.15;
170 constexpr const double degFahrenheit = 5.0/9.0;
171 constexpr const double degFahrenheitOffset = 459.67*degFahrenheit;
176 constexpr const double Pas = Pascal * second;
180 namespace perm_details {
183 constexpr const double flux = cubic (
prefix::centi*meter) / second;
184 constexpr const double velocity = flux / area;
186 constexpr const double darcy = (velocity * visc) / p_grad;
199 constexpr const double darcy = perm_details::darcy;
224 constexpr double from(
const double q,
const double unit)
247 constexpr double to(
const double q,
const double unit)
255 using namespace prefix;
256 using namespace unit;
257 constexpr const double Pressure = barsa;
258 constexpr const double Temperature = degCelsius;
259 constexpr const double TemperatureOffset = degCelsiusOffset;
260 constexpr const double AbsoluteTemperature = degCelsius;
261 constexpr const double Length = meter;
262 constexpr const double Time = day;
263 constexpr const double RunTime = second;
264 constexpr const double Mass = kilogram;
265 constexpr const double Permeability = milli*darcy;
266 constexpr const double Transmissibility = centi*Poise*cubic(meter)/(day*barsa);
267 constexpr const double LiquidSurfaceVolume = cubic(meter);
268 constexpr const double GasSurfaceVolume = cubic(meter);
269 constexpr const double ReservoirVolume = cubic(meter);
270 constexpr const double GeomVolume = cubic(meter);
271 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
272 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
273 constexpr const double Density = kilogram/cubic(meter);
274 constexpr const double PolymerDensity = kilogram/cubic(meter);
275 constexpr const double FoamDensity = kilogram/cubic(meter);
276 constexpr const double FoamSurfactantConcentration = kilogram/cubic(meter);
277 constexpr const double Salinity = kilogram/cubic(meter);
278 constexpr const double Viscosity = centi*Poise;
279 constexpr const double Timestep = day;
280 constexpr const double SurfaceTension = dyne/(centi*meter);
281 constexpr const double Energy = kilo*joule;
286 using namespace prefix;
287 using namespace unit;
288 constexpr const double Pressure = psia;
289 constexpr const double Temperature = degFahrenheit;
290 constexpr const double TemperatureOffset = degFahrenheitOffset;
291 constexpr const double AbsoluteTemperature = degFahrenheit;
292 constexpr const double Length = feet;
293 constexpr const double Time = day;
294 constexpr const double RunTime = second;
295 constexpr const double Mass = pound;
296 constexpr const double Permeability =
milli*darcy;
297 constexpr const double Transmissibility =
centi*Poise*stb/(day*psia);
298 constexpr const double LiquidSurfaceVolume = stb;
299 constexpr const double GasSurfaceVolume = 1000*cubic(feet);
300 constexpr const double ReservoirVolume = stb;
301 constexpr const double GeomVolume = cubic(feet);
302 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
303 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
304 constexpr const double Density = pound/cubic(feet);
305 constexpr const double PolymerDensity = pound/stb;
306 constexpr const double FoamDensity = pound/GasSurfaceVolume;
307 constexpr const double FoamSurfactantConcentration = pound/stb;
308 constexpr const double Salinity = pound/stb;
309 constexpr const double Viscosity =
centi*Poise;
310 constexpr const double Timestep = day;
311 constexpr const double SurfaceTension = dyne/(
centi*meter);
312 constexpr const double Energy = btu;
317 using namespace prefix;
318 using namespace unit;
319 constexpr const double Pressure = atm;
320 constexpr const double Temperature = degCelsius;
321 constexpr const double TemperatureOffset = degCelsiusOffset;
322 constexpr const double AbsoluteTemperature = degCelsius;
323 constexpr const double Length =
centi*meter;
324 constexpr const double Time = hour;
325 constexpr const double RunTime = second;
326 constexpr const double Mass = gram;
327 constexpr const double Permeability =
milli*darcy;
328 constexpr const double Transmissibility =
centi*Poise*cubic(centi*meter)/(hour*atm);
329 constexpr const double LiquidSurfaceVolume = cubic(centi*meter);
330 constexpr const double GasSurfaceVolume = cubic(centi*meter);
331 constexpr const double ReservoirVolume = cubic(centi*meter);
332 constexpr const double GeomVolume = cubic(centi*meter);
333 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
334 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
335 constexpr const double Density = gram/cubic(centi*meter);
336 constexpr const double PolymerDensity = gram/cubic(centi*meter);
337 constexpr const double FoamDensity = gram/cubic(centi*meter);
338 constexpr const double FoamSurfactantConcentration = gram/cubic(centi*meter);
339 constexpr const double Salinity = gram/cubic(centi*meter);
340 constexpr const double Viscosity =
centi*Poise;
341 constexpr const double Timestep = hour;
342 constexpr const double SurfaceTension = dyne/(
centi*meter);
343 constexpr const double Energy = joule;
348 using namespace prefix;
349 using namespace unit;
350 constexpr const double Pressure = atm;
351 constexpr const double Temperature = degCelsius;
352 constexpr const double TemperatureOffset = degCelsiusOffset;
353 constexpr const double AbsoluteTemperature = degCelsius;
354 constexpr const double Length = meter;
355 constexpr const double Time = day;
356 constexpr const double RunTime = second;
357 constexpr const double Mass = kilogram;
358 constexpr const double Permeability =
milli*darcy;
359 constexpr const double Transmissibility =
centi*Poise*cubic(meter)/(day*atm);
360 constexpr const double LiquidSurfaceVolume = cubic(meter);
361 constexpr const double GasSurfaceVolume = cubic(meter);
362 constexpr const double ReservoirVolume = cubic(meter);
363 constexpr const double GeomVolume = cubic(meter);
364 constexpr const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
365 constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
366 constexpr const double Density = kilogram/cubic(meter);
367 constexpr const double PolymerDensity = kilogram/cubic(meter);
368 constexpr const double FoamDensity = kilogram/cubic(meter);
369 constexpr const double FoamSurfactantConcentration = kilogram/cubic(meter);
370 constexpr const double Salinity = kilogram/cubic(meter);
371 constexpr const double Viscosity =
centi*Poise;
372 constexpr const double Timestep = day;
373 constexpr const double SurfaceTension = dyne/(
centi*meter);
374 constexpr const double Energy =
kilo*joule;
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:247
constexpr double from(const double q, const double unit)
Convert from external units of measurements to equivalent internal units of measurements.
Definition: Units.hpp:224
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29