bluemira.base.constants

A collection of generic physical constants, conversions, and miscellaneous constants.

Attributes

ureg

TIME

LENGTH

MASS

CURRENT

TEMP

QUANTITY

ANGLE

DENSITY

PART_DENSITY

FLUX_DENSITY

base_unit_defaults

combined_unit_defaults

combined_unit_dimensions

ANGLE_UNITS

C_LIGHT

MU_0

EPS_0

ELEMENTARY_CHARGE

MU_0_2PI

MU_0_4PI

ONE_4PI

GRAVITY

N_AVOGADRO

SIGMA_BOLTZMANN

K_BOLTZMANN

H_PLANCK

E_CHARGE

NEUTRON_MOLAR_MASS

PROTON_MOLAR_MASS

ELECTRON_MOLAR_MASS

ELECTRON_MASS

PROTON_MASS

T_HALFLIFE

T_LAMBDA

T_MOLAR_MASS

D_MOLAR_MASS

HE_MOLAR_MASS

HE3_MOLAR_MASS

ABS_ZERO_K

ABS_ZERO_C

ABS_ZERO

YR_TO_S

S_TO_YR

ArrayLike

EPS

E_IJK

E_IJ

E_I

GREEK_ALPHABET

GREEK_ALPHABET_CAPS

EXIT_COLOR

ANSI_COLOR

Classes

CoilType

CoilType Enum

BMUnitRegistry

Bluemira UnitRegistry

RNGSeeds

Random Seeds for necessary use cases

Functions

units_compatible(→ bool)

Test if units are compatible.

raw_uc(→ ArrayLike)

Raw unit converter

gas_flow_uc(→ int | float | numpy.ndarray)

Converts around Standard temperature and pressure for gas unit conversion.

to_celsius(→ float | numpy.ndarray)

Convert a temperature in Kelvin to Celsius.

to_kelvin(→ float | numpy.ndarray)

Convert a temperature in Celsius to Kelvin.

_temp_check(unit, val)

Check temperature is above absolute zero

kgm3_to_gcm3(→ float | numpy.ndarray)

Convert a density in kg/m3 to g/cm3

gcm3_to_kgm3(→ float | numpy.ndarray)

Convert a density in g/cm3 to kg/m3

Module Contents

class bluemira.base.constants.CoilType(*args, **kwds)

Bases: enum.Enum

Inheritance diagram of bluemira.base.constants.CoilType

CoilType Enum

PF
CS
DUM
NONE
classmethod _missing_(value: str | CoilType) CoilType
Parameters:

value (str | CoilType)

Return type:

CoilType

class bluemira.base.constants.BMUnitRegistry

Bases: pint.UnitRegistry

Inheritance diagram of bluemira.base.constants.BMUnitRegistry

Bluemira UnitRegistry

Extra conversions:

eV <-> Kelvin Pa m^3 <-> mol

Extra units:

displacements_per_atom (dpa) full_power_year (fpy) atomic_parts_per_million (appm) USD ($)

_gas_flow_temperature = None
_contexts_added = False
_add_contexts(contexts: list[pint.Context] | None = None)

Add new contexts to registry

Parameters:

contexts (list[pint.Context] | None)

enable_contexts(*contexts: pint.Context, **kwargs)

Enable contexts

Parameters:

contexts (pint.Context)

_energy_temperature_context()

Converter between energy and temperature

temperature = energy / k_B

Return type:

pint context

_mass_energy_context()

Converter between mass and energy

energy = mass * speed-of-light^2

Return type:

pint context

property flow_conversion

Gas flow conversion factor R * T

property gas_flow_temperature

Gas flow temperature in kelvin

If Quantity provided to setter it will convert units (naïvely)

_flow_context()

Convert between flow in mol and Pa m^3

Pa m^3 = R * temperature * mol

https://en.wikipedia.org/wiki/Standard_temperature_and_pressure#Molar_volume_of_a_gas

Return type:

pint context

static _transform(context: pint.Context, units_from: str, units_to: str, forward_transform: collections.abc.Callable[[pint.UnitRegistry, complex | pint.Quantity], float], reverse_transform: collections.abc.Callable[[pint.UnitRegistry, complex | pint.Quantity], float]) pint.Context
Parameters:
  • context (pint.Context)

  • units_from (str)

  • units_to (str)

  • forward_transform (collections.abc.Callable[[pint.UnitRegistry, complex | pint.Quantity], float])

  • reverse_transform (collections.abc.Callable[[pint.UnitRegistry, complex | pint.Quantity], float])

Return type:

pint.Context

bluemira.base.constants.ureg
bluemira.base.constants.TIME
bluemira.base.constants.LENGTH
bluemira.base.constants.MASS
bluemira.base.constants.CURRENT
bluemira.base.constants.TEMP
bluemira.base.constants.QUANTITY
bluemira.base.constants.ANGLE
bluemira.base.constants.DENSITY
bluemira.base.constants.PART_DENSITY
bluemira.base.constants.FLUX_DENSITY
bluemira.base.constants.base_unit_defaults
bluemira.base.constants.combined_unit_defaults
bluemira.base.constants.combined_unit_dimensions
bluemira.base.constants.ANGLE_UNITS = ['radian', 'turn', 'degree', 'arcminute', 'arcsecond', 'milliarcsecond', 'grade', 'steradian',...
bluemira.base.constants.C_LIGHT
bluemira.base.constants.MU_0
bluemira.base.constants.EPS_0
bluemira.base.constants.ELEMENTARY_CHARGE
bluemira.base.constants.MU_0_2PI = 2e-07
bluemira.base.constants.MU_0_4PI = 1e-07
bluemira.base.constants.ONE_4PI
bluemira.base.constants.GRAVITY
bluemira.base.constants.N_AVOGADRO
bluemira.base.constants.SIGMA_BOLTZMANN
bluemira.base.constants.K_BOLTZMANN
bluemira.base.constants.H_PLANCK
bluemira.base.constants.E_CHARGE
bluemira.base.constants.NEUTRON_MOLAR_MASS
bluemira.base.constants.PROTON_MOLAR_MASS
bluemira.base.constants.ELECTRON_MOLAR_MASS
bluemira.base.constants.ELECTRON_MASS
bluemira.base.constants.PROTON_MASS
bluemira.base.constants.T_HALFLIFE = 12.312
bluemira.base.constants.T_LAMBDA
bluemira.base.constants.T_MOLAR_MASS
bluemira.base.constants.D_MOLAR_MASS
bluemira.base.constants.HE_MOLAR_MASS
bluemira.base.constants.HE3_MOLAR_MASS
bluemira.base.constants.ABS_ZERO_K = 0
bluemira.base.constants.ABS_ZERO_C
bluemira.base.constants.ABS_ZERO
bluemira.base.constants.YR_TO_S
bluemira.base.constants.S_TO_YR
bluemira.base.constants.units_compatible(unit_1: str, unit_2: str) bool

Test if units are compatible.

Parameters:
  • unit_1 (str) – unit 1 string

  • unit_2 (str) – unit 2 string

Returns:

True if compatible, False otherwise

Return type:

bool

bluemira.base.constants.ArrayLike
bluemira.base.constants.raw_uc(value: ArrayLike, unit_from: str | ureg, unit_to: str | ureg) ArrayLike

Raw unit converter

Converts a value from one unit to another

Parameters:
  • value (ArrayLike) – value to convert

  • unit_from (str | ureg) – unit to convert from

  • unit_to (str | ureg) – unit to convert to

Return type:

converted value

bluemira.base.constants.gas_flow_uc(value: numpy.typing.ArrayLike, unit_from: str | ureg, unit_to: str | ureg, gas_flow_temperature: float | pint.Quantity | None = None) int | float | numpy.ndarray

Converts around Standard temperature and pressure for gas unit conversion. Accurate for Ideal gases.

https://en.wikipedia.org/wiki/Standard_temperature_and_pressure#Molar_volume_of_a_gas

Parameters:
  • value (numpy.typing.ArrayLike) – value to convert

  • unit_from (str | ureg) – unit to convert from

  • unit_to (str | ureg) – unit to convert to

  • gas_flow_temperature (float | pint.Quantity | None) – Gas flow temperature if not provided is 273.15 K, if not a Quantity the units are assumed to be kelvin

Return type:

converted value

bluemira.base.constants.to_celsius(temp: numpy.typing.ArrayLike, unit: str | pint.Unit = ureg.kelvin) float | numpy.ndarray

Convert a temperature in Kelvin to Celsius.

Parameters:
  • temp (numpy.typing.ArrayLike) – The temperature to convert, default [K]

  • unit (str | pint.Unit) – change the unit of the incoming value

Return type:

The temperature [°C]

bluemira.base.constants.to_kelvin(temp: numpy.typing.ArrayLike, unit: str | pint.Unit = ureg.celsius) float | numpy.ndarray

Convert a temperature in Celsius to Kelvin.

Parameters:
  • temp (numpy.typing.ArrayLike) – The temperature to convert, default [°C]

  • unit (str | pint.Unit) – change the unit of the incoming value

Return type:

The temperature [K]

bluemira.base.constants._temp_check(unit: pint.Unit, val: complex | pint.Quantity)

Check temperature is above absolute zero

Parameters:
  • unit (pint.Unit) – pint Unit

  • val (complex | pint.Quantity) – value to check

Raises:

ValueError – if below absolute zero

bluemira.base.constants.kgm3_to_gcm3(density: numpy.typing.ArrayLike) float | numpy.ndarray

Convert a density in kg/m3 to g/cm3

Parameters:

density (numpy.typing.ArrayLike) – The density [kg/m3]

Return type:

The density [g/cm3]

bluemira.base.constants.gcm3_to_kgm3(density: numpy.typing.ArrayLike) float | numpy.ndarray

Convert a density in g/cm3 to kg/m3

Parameters:

density (numpy.typing.ArrayLike) – The density [g/cm3]

Return type:

The density [kg/m3]

bluemira.base.constants.EPS
bluemira.base.constants.E_IJK
bluemira.base.constants.E_IJ
bluemira.base.constants.E_I
bluemira.base.constants.GREEK_ALPHABET = ['alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', 'theta', 'iota', 'kappa',...
bluemira.base.constants.GREEK_ALPHABET_CAPS
bluemira.base.constants.EXIT_COLOR = '\x1b[0m'
bluemira.base.constants.ANSI_COLOR
class bluemira.base.constants.RNGSeeds(*args, **kwds)

Bases: enum.Enum

Inheritance diagram of bluemira.base.constants.RNGSeeds

Random Seeds for necessary use cases

equilibria_harmonics = 2944412338698111642
timeline_tools_lognorm = 6613659347120864846
timeline_tools_truncnorm = 9523110846560405221
timeline_tools_expo = 15335509124046896388
timeline_outages = 5876826953682921855