import pint
import math
ureg = pint.UnitRegistry()
Q_ = ureg.Quantity
unit_map = {
"S": "second",
"Min": "minute",
"H": "hour",
"D": "day",
"W": "week",
"M": "month",
"Y": "year",
}
[docs]
class UnitConversion:
[docs]
class Acceleration:
"""Creates an acceleration object that can store an acceleration value and
convert between units of acceleration."""
ureg.define("m_s2 = meter / (second ** 2)")
ureg.define("ft_s2 = 381/1250 * m_s2")
ureg.define("in_s2 = 127/5000 * m_s2")
ureg.define("cm_s2 = 1/100 * m_s2")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the acceleration to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Angle:
"""Creates an angle object that can store an angle value and
convert between units of angle."""
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the angle to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class AngularVelocity:
ureg.define("deg_s = degree / second")
ureg.define("rad_s = 10800 / 3.1415926535897932384626433 * deg_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class Area:
"""Creates an area object that can store an area value and
convert between units of area."""
ureg.define("ft2 = 1 * sq_ft")
ureg.define("m2 = 1562500/145161 * ft2")
ureg.define("cm2 = 625/580644 * ft2")
ureg.define("in2 = 1/144 * ft2")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the area to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class AreaPerLength:
"""Creates an object representing area per length and allows for unit conversions."""
ureg.define("m2_m = (meter ** 2) / meter")
ureg.define("in2_ft = 127/60000 * m2_m")
ureg.define("mm2_m = 1/1000000 * m2_m")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the area per length to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Unitless:
"""Creates an object representing a unitless quantity."""
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Returns the value unchanged, as it is a unitless quantity."""
return self.value
[docs]
class BrineDensity:
"""Creates an object representing brine density and allows for unit conversions.
- g/cm3: Grams per cubic centimeter
- kg/m3: Kilograms per cubic meter
- lb/ft3: lb per cubic foot
- lb/in3: lb per cubic inch
- ppg: lb per gallon
- mg/L: Milligrams per liter
"""
ureg.define("g_cm3 = gram / (centimeter ** 3)")
ureg.define("kg_m3 = 1 / 1000 * g_cm3")
ureg.define("lb_ft3 = 226796185 / 14158423296 * g_cm3")
ureg.define("lb_in3 = 226796185 / 8193532 * g_cm3")
ureg.define("ppg = 2945405 / 24580596 * g_cm3")
ureg.define("mg_l = 1 / 1000000 * g_cm3")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the brine density to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class CGR:
"""Creates and allows CGR unit conversions.
- CGR: Condensate Gas Ratio
- scf/scf: Standard cubic feet per standard cubic feet
- sm3/sm3: Standard cubic meters per standard cubic meter
- sm3/MMsm3: Standard cubic meters per million standard cubic meters
- sbbl/MMscf: Stock tank barrels per million standard cubic feet
- sbbl/scf: Stock tank barrels per standard cubic feet
"""
ureg.define("scf_scf = ((foot ** 3) / (foot ** 3))")
ureg.define("sm3_sm3 = 1 * scf_scf")
ureg.define("sm3_mmsm3 = 1 / 1000000 * scf_scf")
ureg.define("sbbl_mmscf = 539 / 96000000 * scf_scf")
ureg.define("sbbl_scf = 539 / 96 * scf_scf")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the CGR to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class CorrosionRate:
"""
convert between units of corrosion rate.
- m/s: Meters per second
- m/yr: Meters per year
- mm/yr: Millimeters per year
- mpy: Mil per year (Mil is a unit of length equal to one thousandth of an inch)
"""
ureg.define("m_s = meter / second")
ureg.define("m_y = 1 / 31536000 * m_s")
ureg.define("mm_y = 1 / 31536000000 * m_s")
ureg.define("mpy = 127 / 157680000000000 * m_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the corrosion rate to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Density:
"""Creates density and allows for unit conversions.
- g/cm3: Grams per cubic centimeter
- kg/m3: Kilograms per cubic meter
- lb/ft3: lb per cubic foot
- lb/in3: lb per cubic inch
"""
ureg.define("g_cm3 = 1 * (gram / centimeter ** 3)")
ureg.define("kg_m3 = 1 / 1000 * g_cm3")
ureg.define("lb_ft3 = 226796185 / 14158423296 * g_cm3")
ureg.define("lb_in3 = 226796185 / 8193532 * g_cm3")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the density to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class DensityPerPressure:
"""allows density per pressure unit conversions
- kg/m-N: Kilograms per meter per Newton
- s2/m2: Seconds squared per square meter
"""
ureg.define("kg_mn = kilogram / (meter * newton)")
ureg.define("s2_m2 = second ** 2 / meter ** 2")
ureg.define("kg_mn = 1 * s2_m2")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the density to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class DensityPerTemperature:
"""allows density per temperature unit conversions
- kg/m3-C: Kilograms per cubic meter per degree Celsius
- kg/m3-K: Kilograms per cubic meter per Kelvin
"""
ureg.define("kg_m3k = kilogram / ((meter ** 3) * kelvin)")
ureg.define("kg_m3c = 1 * kg_m3k")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the density to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class DiffusionCoefficient:
"""allows DiffusionCoefficient unit conversions
- cm2/s: square centimeters per second
- m2/s: square meters per second
- mm2/s: square millimeters per second
"""
ureg.define("cm2_s = (centimeter ** 2) / second")
ureg.define("m2_s = 10000 * cm2_s")
ureg.define("mm2_s = 1 / 100 * cm2_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the density to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Distance:
"""Creates an angle object that can store an angle value and
convert between units of angle."""
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the angle to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class DynamicViscosity:
"""Allows Dynamic Viscosity unit conversions.
- cp: Centipoise
- kg/m-h: Kilograms per meter per hour
- kg/m-s: Kilograms per meter per second
- mPa-s: Millipascal-seconds
- N-s/m²: Newton-seconds per square meter
- Pa-s: Pascal-seconds
- lb/ft-h: lb per foot per hour
"""
ureg.define("cp = 1 * centipoise")
ureg.define("pas = 1000 * cp")
ureg.define("kg_mh = 5/18 * cp")
ureg.define("kg_ms = 1000 * cp")
ureg.define("ns_m2 = 1000 * cp")
ureg.define("mpas = 1 * cp")
ureg.define("lb_fth = 45359237/109728000 * cp")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the area to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Energy:
"""
Allows for energy unit conversion:
- BTU: British Thermal Unit
- CAL: Calorie
- J: Joule
"""
ureg.define("btu = 1 * Btu")
ureg.define("cal = 0.003965 * btu")
ureg.define("j = 0.00094823 * btu")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the angle to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Enthalpy:
"""
Allows for Enthalpy unit conversion:
- BTU: British Thermal Unit
- CAL: Calorie
- J: Joule
"""
ureg.define("btu = 1 * Btu")
ureg.define("cal = 0.003965 * btu")
ureg.define("j = 0.00094823 * btu")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the angle to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class EnthalpyPerMass:
"""
Allows for EnthalpyPerMass unit conversion:
British Thermal Units per Pound (btu/lb)
Joules per Kilogram (J/kg)
Kilojoules per Kilogram (kJ/kg)
"""
ureg.define("btu_lb = 1 * (Btu /pound) ")
ureg.define("j_kg = 4123567 / 9585002404 * btu_lb")
ureg.define("kj_kg = 1030891750 / 2396250601 * btu_lb")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the angle to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class EnthalpyPerMol:
"""
Allows for Enthalpy Per Mol unit conversion:
British Thermal Units per Pound-mole (btu/lbmol)
Calories per Mole (cal/mol)
Joules per Mole (J/mol)
"""
ureg.define("j_mol = joule / mole")
ureg.define("cal_mol = 523/125 * j_mol")
ureg.define("btu_lbmol = 2396250601/1030891750 * j_mol")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the enthalpy per mol to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class EnthalpyPerMolPerTemperature:
"""
Allows for Enthalpy Per Mol Per Temperature unit conversion:
British Thermal Units per Pound-mole per Rankine (btu/lbmol-R)
Joules per Mole per Kelvin (J/mol-K)
"""
ureg.define("btu_lbmolr = 1 * (Btu / (pound * mole * rankine))")
ureg.define("j_molk = 5154458750 / 21566255409 * btu_lbmolr")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the enthalpy per mol per temperature to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class EnthalpyPerVolume:
"""
Allows for Enthalpy Per Volume unit conversion:
British Thermal Units per Cubic Foot (btu/ft^3)
Calories per Cubic Meter (cal/m^3)
Joules per Cubic Meter (J/m^3)
"""
ureg.define("btu_ft3 = 1* (Btu / (foot ** 3))")
ureg.define("cal_m3 = 231401730744 / 2059277860234375 * btu_ft3")
ureg.define("j_m3 = 442450728 / 16474222881875 * btu_ft3")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the enthalpy per volume to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Entropy:
"""
Allows for Entropy unit conversion:
British Thermal Units per Rankine (btu/R)
Calories per Kelvin (cal/K)
Joules per Kelvin (J/K)
"""
ureg.define("btu_r = 1 * (Btu / rankine)")
ureg.define("cal_K = 523000000 / 237228809499 * btu_r")
ureg.define("j_K = 125000000 / 237228809499 * btu_r")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the entropy to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class EntropyPerMass:
"""
Allows for Entropy Per Mass unit conversion:
British Thermal Units per Pound per Fahrenheit (btu/lb-F)
Joules per Kilogram per Celsius (J/kg-C)
Kilojoules per Kilogram per Celsius (kJ/kg-C)
"""
ureg.define("j_kgc = 1 * (joule / (kilogram * degC))")
ureg.define("btu_lbf = 86265021636/20617835 * j_kgc")
ureg.define("kj_kgc = 1000 * j_kgc")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the entropy per mass to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class EntropyPerMol:
"""
Allows for Entropy Per Mol unit conversion:
British Thermal Units per Pound per Rankine (btu/lbmol-R)
Calories per Mol per Kelvin (cal/mol-K)
Joules per Mol per Kelvin (J/mol-K)
"""
ureg.define("j_molk = 1 * (joule / (mole * degK))")
ureg.define("cal_molk = 523/125 * j_molk")
ureg.define("btu_lbmolr = 21566255409/5154458750 * j_molk")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the entropy per mol to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class EntropyPerVolume:
"""
Allows for Entropy Per Volume unit conversion:
British Thermal Units per Cubic Foot per Rankine (btu/ft^3-R)
Calories per Cubic Meter per Kelvin (cal/m^3-K)
Joules per Cubic Meter per Kelvin (J/m^3-K)
"""
ureg.define("j_m3k = joule / ((meter ** 3) * degK)")
ureg.define("cal_m3k = 523/125 * j_m3k")
ureg.define("btu_ft3r = 411855572046875/25711303416 * j_m3k")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the entropy per volume to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class ErosionRate:
"""
Allows for Erosion Rate unit conversion:
Inches per Year (in/yr)
Millimeters per Year (mm/yr)
Inches per Thousand Years (in/kyr)
"""
ureg.define("in_y = 1 * (inch / year)")
ureg.define("mm_y = 5 / 127 * in_y")
ureg.define("in_kyr = 1 / 1000 * in_y")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the erosion rate to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Force:
"""
Allows for Force unit conversion:
Dyne (dyn)
Kilogram-force (kgf)
Newton (N)
Pound-force (lbf)
"""
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the angle to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Fraction:
"""
Allows Fraction unit conversions:
Parts per billion (ppb)
Parts per million (ppm)
Percent (%)
Dimensionless (-)
"""
ureg.define("ppm = 1 * ppm")
ureg.define("ppb = 1 / 1000 * ppm")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert_to(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Frequency:
"""
Allows Frequency unit conversions:
Hertz (Hz)
Inverse hour (1/h)
Inverse minute (1/min)
Inverse second (1/s)
"""
ureg.define("hz = 1 * hertz")
ureg.define("one_h = 1 / 3600 * hz")
ureg.define("one_m = 1 / 60 * hz")
ureg.define("one_s = 1 * hz")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class FrictionFactor:
"""
Allows Friction Factor unit conversions:
Newton-second per meter (N-s/m)
"""
ureg.define("ns_m = (newton * second) / meter")
ureg.define("g_s = 1 / 1000 * ns_m")
ureg.define("kg_h = 1 / 3600 * ns_m")
ureg.define("kg_s = 1 * ns_m")
ureg.define("kt_d = 625 / 54 * ns_m")
ureg.define("lb_h = 45359237 / 360000000000 * ns_m")
ureg.define("lb_s = 45359237 / 100000000 * ns_m")
ureg.define("t_d = 5 / 432 * ns_m")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class GasFlowrate:
"""
Allows Gas Flowrate unit conversions:
Barrel per day (bbl/d)
Barrel per hour (bbl/h)
Barrel per minute (bbl/min)
Cubic foot per day (ft3/d)
Cubic foot per hour (ft3/h)
Cubic foot per minute (ft3/min)
Cubic foot per second (ft3/s)
Cubic meter per day (m3/d)
Cubic meter per hour (m3/h)
Cubic meter per second (m3/s)
Gallon per minute (gpm)
Liter per minute (L/min)
Milliliter per minute (mL/min)
"""
ureg.define("m3_s = (meter ** 3) / second")
ureg.define("bbl_d = 1104078437 / 600000000000000 * m3_s")
ureg.define("bbl_h = 1104078437 / 25000000000000 * m3_s")
ureg.define("bbl_min = 3312235311 / 1250000000000 * m3_s")
ureg.define("ft3_d = 2048383 / 6250000000000 * m3_s")
ureg.define("ft3_h = 6145149 / 781250000000 * m3_s")
ureg.define("ft3_min = 18435447 / 39062500000 * m3_s")
ureg.define("ft3_s = 55306341 / 1953125000 * m3_s")
ureg.define("m3_d = 1 / 86400 * m3_s")
ureg.define("m3_h = 1 / 3600 * m3_s")
ureg.define("gpm = 157725491 / 2500000000000 * m3_s")
ureg.define("l_min = 1 / 60000 * m3_s")
ureg.define("ml_min = 1 / 60000000 * m3_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class GasStandardFlowrate:
"""
Allows Gas Standard Flowrate unit conversions:
Million standard cubic feet per day (MMscf/d)
Standard cubic feet per day (scf/d)
Standard cubic feet per hour (scf/h)
Standard cubic feet per second (scf/s)
Standard cubic meter per day (sm3/d)
Standard cubic meter per hour (sm3/h)
Standard cubic meter per second (sm3/s)
Thousand standard cubic feet per day (Mscf/d)
Thousand standard cubic meters per day (Msm3/d)
Thousand standard cubic meters per hour (Msm3/h)
"""
ureg.define("sm3_s = (meter ** 3) / second")
ureg.define("mmscf_d = 2048383/6250000 * sm3_s")
ureg.define("scf_d = 2048383/6250000000000 * sm3_s")
ureg.define("scf_h = 6145149/781250000000 * sm3_s")
ureg.define("scf_s = 55306341/1953125000 * sm3_s")
ureg.define("sm3_d = 1/86400 * sm3_s")
ureg.define("sm3_h = 1/3600 * sm3_s")
ureg.define("mscf_d = 2048383/6250000000 * sm3_s")
ureg.define("msm3_d = 625/54 * sm3_s")
ureg.define("msm3_h = 2500/9 * sm3_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class GLR:
"""
Allows Gas-Liquid Ratio unit conversions:
MMscf/sbbl (Million standard cubic feet per stock barrel)
scf/scf (Standard cubic feet per standard cubic feet)
scf/sbbl (Standard cubic feet per stock barrel)
sm3/sm3 (Standard cubic meter per standard cubic meter)
"""
ureg.define("sm3_sm3 = ((meter ** 3) / (meter ** 3))")
ureg.define("mmscf_sbbl = 96000000 / 539 * sm3_sm3")
ureg.define("scf_scf = 1 * sm3_sm3")
ureg.define("scf_sbbl = 96 / 539 * sm3_sm3")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class GOR:
"""
Allows Gas-Oil Ratio unit conversions:
MMscf/sbbl (Million standard cubic feet per stock barrel)
scf/scf (Standard cubic feet per standard cubic feet)
scf/sbbl (Standard cubic feet per stock barrel)
sm3/sm3 (Standard cubic meter per standard cubic meter)
"""
ureg.define("sm3_sm3 = ((meter ** 3) / (meter ** 3))")
ureg.define("mmscf_sbbl = 96000000 / 539 * sm3_sm3")
ureg.define("scf_scf = 1 * sm3_sm3")
ureg.define("scf_sbbl = 96 / 539 * sm3_sm3")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class HeatFlux:
"""
Allows Heat Flux unit conversions:
btu/ft2-s (British thermal unit per square foot per second)
btu/in2 (British thermal unit per square inch per second)
kW/m2 (Kilowatt per square meter)
W/cm2 (Watt per square centimeter)
W/m2 (Watt per square meter)
"""
ureg.define("w_m2 = watt / (meter ** 2)")
ureg.define("btu_ft2s = 26358756611/2322576 * w_m2")
ureg.define("btu_in2s = 26358756611/16129 * w_m2")
ureg.define("kw_m2 = 1000 * w_m2")
ureg.define("w_cm2 = 10000 * w_m2")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class HeatTransferCoefficient:
"""
Allows Heat Transfer Coefficient unit conversions:
btu/ft2-h-F (British thermal unit per square foot per hour per Fahrenheit degree)
cal/m2-h-C (Calorie per square meter per hour per Celsius degree)
W/m2-C (Watt per square meter per Celsius degree)
W/m2-K (Watt per square meter per Kelvin degree)
"""
ureg.define("w_m2c = watt / (meter ** 2) * degC")
ureg.define("W_m2k = 1 * w_m2c")
ureg.define("btu_ft2hf = 26358756611/4645152000 * w_m2c")
ureg.define("cal_m2hc = 523/450000 * w_m2c")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class HeatTransferPerLength:
"""
Allows Heat Transfer Per Length unit conversions:
British Thermal Unit per second per foot (btu/s-ft)
Kilowatt per meter (kW/m)
Watt per meter (W/m)
"""
ureg.define("w_m = 1 * (watt / meter)")
ureg.define("btu_sft = 26358756611 / 7620000 * w_m")
ureg.define("kw_m = 1000 * w_m")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class KinematicViscosity:
"""
Allows Kinematic Viscosity unit conversions:
Centistokes (cSt)
Square foot per hour (ft2/h)
Square inch per second (in2)
Square meter per second (m2/s)
"""
ureg.define("m2_s = (meter ** 2) / second")
ureg.define("cst = 1 / 1000000 * m2_s")
ureg.define("ft2_h = 16129 / 625000000 *m2_s")
ureg.define("in2_s = 16129 / 25000000 * m2_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Length:
"""
Allows Length unit conversions:
Centimeter (cm)
Foot (ft)
Inch (in)
Kilometer (km)
Meter (m)
Micrometer (µm)
Mile (mi)
Millimeter (mm)
Yard (yd)
"""
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class LinearMomentum:
"""
Allows Linear Momentum unit conversions:
Kilogram-meter per second (kg-m/s)
Newton-second (N-s)
"""
ureg.define("ns = 1 * (newton * second)")
ureg.define("kgm_s = 1 * ns")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class LiquidFlowRate:
"""
Allows Liquid Flowrate unit conversions:
Barrels per day (bbl/d)
Barrels per hour (bbl/h)
Barrels per minute (bbl/min)
Cubic feet per day (ft3/d)
Cubic feet per hour (ft3/h)
Cubic feet per minute (ft3/min)
Cubic feet per second (ft3/s)
Cubic meters per day (m3/d)
Cubic meters per hour (m3/h)
Cubic meters per second (m3/s)
Gallons per minute (gpm)
Liters per minute (L/min)
Milliliters per minute (mL/min)
"""
ureg.define("m3_s = (meter ** 3) / second")
ureg.define("bbl_d = 1104078437 / 600000000000000 * m3_s")
ureg.define("bbl_h = 1104078437 / 25000000000000 * m3_s")
ureg.define("bbl_min = 3312235311 / 1250000000000 * m3_s")
ureg.define("ft3_d = 2048383 / 6250000000000 * m3_s")
ureg.define("ft3_h = 6145149 / 781250000000 * m3_s")
ureg.define("ft3_min = 18435447 / 39062500000 * m3_s")
ureg.define("ft3_s = 55306341 / 1953125000 * m3_s")
ureg.define("m3_d = 1 / 86400 * m3_s")
ureg.define("m3_h = 1 / 3600 * m3_s")
ureg.define("gpm = 157725491 / 2500000000000 * m3_s")
ureg.define("l_min = 1 / 60000 * m3_s")
ureg.define("ml_min = 1 / 60000000 * m3_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class LiquidStandardFlowRate:
"""
Allows Liquid Standard Flowrate unit conversions:
Standard cubic meters per day (sm3/d)
Standard cubic meters per hour (sm3/h)
Standard cubic meters per second (sm3/s)
Standard barrels per day (sbbl/d)
Standard barrels per hour (sbbl/h)
Standard barrels per minute (sbbl/min)
"""
ureg.define("sm3_s = (meter ** 3) / second")
ureg.define("sm3_d = 1 / 86400 * sm3_s")
ureg.define("sm3_h = 1 / 3600 * sm3_s")
ureg.define("sbbl_d = 1104078437 / 600000000000000* sm3_s")
ureg.define("sbbl_h = 1104078437 / 25000000000000 * sm3_s")
ureg.define("sbbl_min = 3312235311 / 1250000000000 * sm3_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Mass:
"""
Allows Mass unit conversions:
Gram (g)
Kilogram (kg)
Milligram (mg)
Kiloton (kt)
Kip (kips)
Ounce (oz)
Pound (lb)
Ton (t)
"""
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the angle to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class MassFlowrate:
"""
Allows Mass Flowrate unit conversions:
Gram per second (g/s)
Kilogram per hour (kg/h)
Kilogram per second (kg/s)
Kiloton per day (kt/d)
Pound per hour (lb/h)
Pound per second (lb/s)
Ton per day (t/d)
"""
ureg.define("g_s = gram / second")
ureg.define("kg_h = 5/18 * g_s")
ureg.define("kg_s = 1000 * g_s")
ureg.define("kt_d = 312500/27 * g_s")
ureg.define("lb_h = 45359237/360000000 * g_s")
ureg.define("lb_s = 45359237/100000 * g_s")
ureg.define("t_d = 625/54 * g_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the mass flowrate to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class MassFlowratePerArea:
"""
Allows Mass Flowrate Per Area unit conversions:
Kilogram per hour per square meter (kg/h-m2)
Kilogram per hour per square centimeter (kg/h-cm2)
Kilogram per second per square meter (kg/s-m2)
Pound per hour per square meter (lb/h-m2)
Pound per second per square meter (lb/s-m2)
Milligram per hour per square inch (mg/h-in2"""
ureg.define("kg_hm2 = 1 * (kilogram / hour * (meter ** 2))")
ureg.define("kg_hcm2 = 10000 * kg_hm2")
ureg.define("kg_sm2 = 3600 * kg_hm2 ")
ureg.define("lb_hm2 = 45359237 / 100000000 * kg_hm2")
ureg.define("lb_sm2 = 408233133 / 250000 * kg_hm2")
ureg.define("mg_hin2 = 25 / 16129 * kg_hm2")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the mass flowrate per area to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class MassGradient:
"""
Allows Mass Gradient unit conversions:
Gram per centimeter (g/cm)
Gram per foot (g/ft)
Gram per inch (g/in)
Gram per meter (g/m)
Kilogram per meter (kg/m)
Pound per foot (lb/ft)
Pound per inch (lb/in)
"""
ureg.define("g_m = 1 * (gram / meter)")
ureg.define("g_cm = 100 * g_m")
ureg.define("g_ft = 1250 / 381 * g_m")
ureg.define("g_in = 5000 / 127 * g_m")
ureg.define("kg_m = 1000 * g_m")
ureg.define("lb_ft = 45359237 / 30480 * g_m")
ureg.define("lb_in = 45359237 / 2540 * g_m")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class MassMomentOfInertia:
"""
Allows Mass Moment of Inertia unit conversions:
Kilogram square meter (kg-m^2)
Pound foot square (lb-ft^2)
Pound force inch second square (lbf-in-s^2)
Pound inch square (lb-in^2)
"""
ureg.define("kgm2 = kilogram * (meter ** 2)")
ureg.define("lbft2 = 6584392202157/156250000000000 * kgm2")
ureg.define("lbfins2 = 1129848290276167/10000000000000000 * kgm2")
ureg.define("lbin2 = 731599133573/2500000000000000 * kgm2")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class MassPerArea:
"""
Allows Mass Per Area unit conversions:
Gram per square centimeter (g/cm^2)
Gram per square foot (g/ft^2)
Gram per square inch (g/in^2)
Gram per square meter (g/m^2)
Kilogram per square foot (kg/ft^2)
Kilogram per square meter (kg/m^2)
"""
ureg.define("g_m2 = gram / (meter ** 2)")
ureg.define("g_cm2 = 10000 * g_m2")
ureg.define("g_ft2 = 1562500 / 145161 * g_m2")
ureg.define("g_in2 = 25000000 / 16129 * g_m2")
ureg.define("kg_ft2 = 1562500000 / 145161 * g_m2")
ureg.define("kg_m2 = 1000 * g_m2")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class MolarConcentrationGradient:
"""
Allows Molar Concentration Gradient unit conversions:
Mole per cubic centimeter to the power of 4 (mol/cm^4)
Mole per cubic meter to the power of 4 (mol/m^4)
Pound-mole per cubic foot to the power of 4 (lbmol/ft^4)
"""
ureg.define("mol_m4 = mole / (meter ** 4)")
ureg.define("mol_cm4 = 100000000 * mol_m4")
ureg.define("lbmol_ft4 = 2214806494140625 / 42143431842 * mol_m4")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class MolarDensity:
"""
Allows Molar Density unit conversions:
Mole per cubic centimeter (mol/cm^3)
Mole per cubic meter (mol/m^3)
Mole per liter (mol/L)
Pound-mole per cubic foot (lbmol/ft^3)
"""
ureg.define("mol_m3 = mole / (meter ** 3)")
ureg.define("mol_l = 1000 * mol_m3")
ureg.define("lbmol_ft3 = 3543690390625/221225364 * mol_m3")
ureg.define("mol_cm3 = 1000000 * mol_m3")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class MolarFlux:
"""
Allows Molar Flux unit conversions:
Kilomole per square meter per second (kmol/m^2-s)
Mole per square meter per second (mol/m^2-s)
"""
ureg.define("mol_m2s = 1 * (mole / ((meter ** 2) * second))")
ureg.define("kmol_m2s = 1000 * mol_m2s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
"""Converts the value to the specified unit."""
converted_quantity = self.value * ureg(self.unit).to(to_unit)
return converted_quantity.magnitude
[docs]
class Volume:
ureg.define("m3 = meter ** 3")
ureg.define("ft3 = 55306341/1953125000 * m3")
ureg.define("gal = 473176473/125000000000 * m3")
ureg.define("l = 1/1000 * m3")
ureg.define("mmft3 = 442450728/15625 * m3")
ureg.define("bbl = 9936705933/62500000000 * m3")
ureg.define("cm3 = 1/1000000 * m3")
ureg.define("ml = 1/1000000 * m3")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class VolumetricFlowRate:
ureg.define("m3_s = (meter ** 3) / second")
ureg.define("gpm = 157725491/2500000000000 * m3_s")
ureg.define("m3_h = 3600 * m3_s")
ureg.define("m3_d = 86400 * m3_s")
ureg.define("ft3_s = 55306341/1953125000 * m3_s")
ureg.define("ft3_m= 18435447/39062500000 * m3_s")
ureg.define("ft3_h= 6145149/781250000000 * m3_s ")
ureg.define("ft3_d = 2048383/6250000000000 * m3_s")
ureg.define("bbl_d = 1104078437/600000000000000 * m3_s")
ureg.define("bbl_h = 1104078437/25000000000000 * m3_s")
ureg.define("bbl_m = 3312235311/1250000000000 * m3_s")
ureg.define("l_m = 1/60000 * m3_s")
ureg.define("ml_m = 1/60000000 * m3_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class VolumetricStandardFlowrate:
"""Creates an object representing standard volumetric flowrate and allows for unit conversions.
- MMscf/d: Million standard cubic feet per day
- scf/d: Standard cubic feet per day
- scf/h: Standard cubic feet per hour
- scf/s: Standard cubic feet per second
- sm3/d: Standard cubic meters per day
- sm3/h: Standard cubic meters per hour
- sm3/s: Standard cubic meters per second
- sbbl/d: Stock tank barrels per day
- sbbl/h: Stock tank barrels per hour
- sbbl/min: Stock tank barrels per minute
- Mscf/d: Thousand standard cubic feet per day
- Msm3/d: Thousand standard cubic meters per day
- Msm3/h: Thousand standard cubic meters per hour
"""
ureg.define("sm3_s = (meter ** 3) / second")
ureg.define("mmscf_d = 2048383 / 6250000 * sm3_s")
ureg.define("scf_d = 2048383 / 6250000000000 * sm3_s")
ureg.define("scf_h = 6145149 / 781250000000 * sm3_s")
ureg.define("scf_s = 55306341 / 1953125000 * sm3_s")
ureg.define("sm3_d = 1 / 86400 * sm3_s")
ureg.define("sm3_h = 1 / 3600 * sm3_s")
ureg.define("mscf_d = 2048383 / 6250000000 * sm3_s")
ureg.define("msm3_d = 625 / 54 * sm3_s")
ureg.define("msm3_h = 2500 / 9 * sm3_s")
ureg.define("sbbl_h = 1104078437 / 25000000000000 * sm3_s")
ureg.define("sbbl_min = 3312235311 / 1250000000000 * sm3_s")
ureg.define("sbbl_d = 1104078437 / 600000000000000 * sm3_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class StandardVolume:
"""Creates an object representing standard volume and allows for unit conversions.
scm3 - Standard Cubic Meter
MMscf - Million Standard Cubic Feet
sgal - Standard Gallon
sL - Standard Liter
scf - Standard Cubic Feet
sm3 - Standard Cubic Meter
sbbl - Standard Barrel
Mscf - Thousand Standard Cubic Feet
Msm3 - Thousand Standard Cubic Meters
"""
ureg.define("sm3 = 1 * (meter ** 3)")
ureg.define("mmscf = 442450728 / 15625 * sm3")
ureg.define("scf = 55306341 / 1953125000 * sm3")
ureg.define("scm3 = 1 / 1000000 * sm3")
ureg.define("mscf = 55306341 / 1953125 * sm3")
ureg.define("sl = 1 / 1000 * sm3")
ureg.define("sgal = 473176473 / 125000000000 * sm3")
ureg.define("sbbl = 9936705933 / 62500000000 * sm3")
ureg.define("msm3 = 1000000 * sm3")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class StandardVolumetricFlowratePerLength:
"""Creates an object representing standard volumetric flowrate per length and allows for unit conversions."""
ureg.define("m2_s = 1 * ((meter ** 2) / second)")
ureg.define("sbbl_d_ft = 8693531 / 1440000000000 * m2_s")
ureg.define("mm2_s = 1 / 1000000 * m2_s")
ureg.define("cm2_s = 1 / 10000 * m2_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class Velocity:
ureg.define("m_s = 1 * (meter / second)")
ureg.define("m_h = 1/3600 * m_s")
ureg.define("mph = 1397/3125 * m_s")
ureg.define("km_h = 5/18 * m_s")
ureg.define("km_s = 1000 * m_s")
ureg.define("in_h = 127/18000000 * m_s")
ureg.define("in_s = 127/5000 * m_s")
ureg.define("ft_h = 127/1500000 * m_s")
ureg.define("ft_s = 381/1250 * m_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class Torque:
ureg.define("ftlb = 1 * (foot * pound)")
ureg.define("mnm = 3389544870828501/2500000000000 * ftlb")
ureg.define("ncm = 3389544870828501/25000000000000 * ftlb")
ureg.define("nm = 3389544870828501/2500000000000000 * ftlb")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class Time:
ureg.define("ms = 1/1000 * second")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class ThermalExpansion:
ureg.define("one_c = 1/ degC")
ureg.define("one_k = 1/ degK")
ureg.define("one_f = 1/ degF")
ureg.define("one_r = 1/ degR")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class ThermalConductivity:
ureg.define("w_mc = watt / (meter * celsius)")
ureg.define("btu_fthr = 26358756611 / 15240000000 * w_mc")
ureg.define("cal_mhk = 523 / 450000 * w_mc")
ureg.define("w_mk = 1 * w_mc")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class TemperatureGradient:
ureg.define("f_ft = degF/ foot")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class TemperatureDifference:
ureg.define("dtc = 1 * delta_degC")
ureg.define("dtk = 1 * dtc")
ureg.define("dtf = 5/9 * dtc")
ureg.define("dtr = 5/9 * dtc")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
unit_map = {"c": "dtc"}
if self.unit in unit_map:
self.unit = unit_map[self.unit]
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class Temperature:
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
unit_map = {
"c": "celsius",
}
if self.unit in unit_map:
self.unit = unit_map[self.unit]
temp = Q_(self.value, self.unit)
converted = temp.to(to_unit)
return converted.magnitude
[docs]
class SurfaceTension:
ureg.define("n_m = N / meter")
ureg.define("dyn_cm = 1/1000 * n_m")
ureg.define("mn_m = 1/1000 * n_m")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class SpecificVolume:
ureg.define("m3_kg = ((meter ** 3) / kilogram)")
ureg.define("ft3_lb = 1769802912/28349523125 * m3_kg")
ureg.define("in3_lb = 2048383/56699046250 * m3_kg")
ureg.define("cm3_g = 1/1000 * m3_kg")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class SpecificMole:
ureg.define("mol_g = mole / gram")
ureg.define("mol_kg = 1/1000 * mol_g")
ureg.define("lbmol_lb = 1 * mol_g")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class SpecificHeatCapacity:
ureg.define("j_kgc = joule / (kilogram * degC)")
ureg.define("btu_lbf = 86265021636/20617835 * j_kgc")
ureg.define("btu_lbr = 86265021636/20617835 * j_kgc")
ureg.define("j_kgk = 1 * j_kgc")
ureg.define("kj_kgc = 1000 * j_kgc")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class SpecificEnthalpy:
ureg.define("j_g = joule / gram")
ureg.define("j_kg = 1/1000 * j_g")
ureg.define("kj_kg = 1 * j_g")
ureg.define("btu_lb = 2396250601/1030891750 * j_g")
ureg.define("cal_kg = 523/125000 * j_g")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class SpecificCapacity:
ureg.define("m3_r = (meter **3) / degR")
ureg.define("ft3_r = 55306341/1953125000 * m3_r")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class RevolutionsPerTime:
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class RateOfChangeOfTemperature:
ureg.define("c_s = celsius / second")
ureg.define("f_s = 5/9 * c_s")
ureg.define("k_s = 1 * c_s")
ureg.define("r_s = 5/9 * c_s")
ureg.define("c_m = 1/60 * c_s")
ureg.define("f_m = 1/108 * c_s")
ureg.define("c_h = 1/3600 * c_s")
ureg.define("f_h = 1/6480 * c_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class RateOfChangeOfPressure:
ureg.define("pa_s = Pa / second")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class RateOfChangeOfDensity:
ureg.define("kg_m3s = kilogram / (meter ** 3) * second")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class PressureGradient:
ureg.define("pa_m = Pa / meter")
ureg.define("psi_ft = 8896443230521/393289536 * pa_m")
ureg.define("kpa_m = 1000 * pa_m")
ureg.define("bar_m = 1 * 100000 * pa_m")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class PressureDifference:
ureg.define("pa = 1 * Pa")
ureg.define("kpa = 1000 * pa")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class Pressure:
ureg.define("pa = 1 * Pa")
ureg.define("kpa = 1000 * pa")
ureg.define("barg = 100000 * pa")
ureg.define("bara = 100000 * pa")
ureg.define("bar = 100000 * pa")
ureg.define("atm = 101325 * pa ")
ureg.define("mpa = 1000000 * pa")
ureg.define("psi = 8896443230521 / 1290320000 * pa")
ureg.define("psia = 8896443230521 / 1290320000 * pa")
ureg.define("psig = 8896443230521 / 1290320000 * pa")
ureg.define("kgf_cm2 = 196133 / 2 * pa")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
if to_unit == "psig":
convert = self.value * ureg(self.unit).to(ureg.psia)
converted = convert.magnitude - 14.7
return converted
elif to_unit == "barg":
convert = self.value * ureg(self.unit).to(ureg.bara)
converted = convert.magnitude - 1.01
return converted
else:
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class Power:
ureg.define("w = 1 * watt")
ureg.define("btu_h = 26358756611/90000000000 * w")
ureg.define("hp = 37284993579113511/50000000000000 * w")
ureg.define("kw = 1000 * w")
ureg.define("mw = 1/1000 * w")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class OneOverLength:
ureg.define("one_m = 1 / meter")
ureg.define("one_cm = 100 * one_m")
ureg.define("one_ft = 1250/381 * one_m")
ureg.define("one_km = 1/1000 * one_m")
ureg.define("one_mi = 125/201168 * one_m")
ureg.define("one_mm = 1000 * one_m")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class OneOverFlowrate:
ureg.define("d_m3 = d / (meter ** 3)")
ureg.define("d_bbl = 62500000000/9936705933 * d_m3")
ureg.define("min_bbl = 390625000/89430353397 * d_m3")
ureg.define("d_ft3 = 1953125000/55306341 * d_m3")
ureg.define("h_ft3 = 244140625/165919023 * d_m3")
ureg.define("s_ft3 = 9765625/23892339312 * d_m3")
ureg.define("h_m3 = 1/24* d_m3")
ureg.define("s_m3 = 1/86400 * d_m3")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class Moles:
ureg.define("mol = 1 * mole")
ureg.define("kmol = 1000 * mol")
ureg.define("lbmol = 45359237/100000 * mol")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class MoleDensityPerTemperature:
ureg.define("mol_m3k = mole / ((meter ** 3) * degK)")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class MolecularWeight:
ureg.define("g_mol = gram / mole")
ureg.define("kg_kmol = 1 * g_mol")
ureg.define("kg_mol = 1000 * g_mol")
ureg.define("lb_lbmol = 1 * g_mol")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class MolarVolume:
ureg.define("m3_mol = ((meter ** 3) / mole)")
ureg.define("cm3_mol = 1/1000000 * m3_mol")
ureg.define("l_mol = 1/1000 * m3_mol")
ureg.define("ft3_lbmol = 221225364/3543690390625 * m3_mol")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude
[docs]
class MolarRate:
ureg.define("mol_s = mole / second")
ureg.define("kmol_s = 1000 * mol_s")
ureg.define("lbmol_s = 45359237/100000 * mol_s")
def __init__(self, value, unit):
self.value = value
self.unit = unit
[docs]
def convert(self, to_unit):
converted = self.value * ureg(self.unit).to(to_unit)
return converted.magnitude