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