bluemira.base.constants ======================= .. py:module:: bluemira.base.constants .. autoapi-nested-parse:: A collection of generic physical constants, conversions, and miscellaneous constants. Attributes ---------- .. autoapisummary:: 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 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 bluemira.base.constants.MU_0_4PI 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 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 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.ArrayLike bluemira.base.constants.EPS bluemira.base.constants.E_IJK bluemira.base.constants.E_IJ bluemira.base.constants.E_I bluemira.base.constants.GREEK_ALPHABET bluemira.base.constants.GREEK_ALPHABET_CAPS bluemira.base.constants.EXIT_COLOR bluemira.base.constants.ANSI_COLOR Classes ------- .. autoapisummary:: bluemira.base.constants.CoilType bluemira.base.constants.BMUnitRegistry bluemira.base.constants.RNGSeeds Functions --------- .. autoapisummary:: bluemira.base.constants.units_compatible bluemira.base.constants.raw_uc bluemira.base.constants.gas_flow_uc bluemira.base.constants.to_celsius bluemira.base.constants.to_kelvin bluemira.base.constants._temp_check bluemira.base.constants.kgm3_to_gcm3 bluemira.base.constants.gcm3_to_kgm3 Module Contents --------------- .. py:class:: CoilType(*args, **kwds) Bases: :py:obj:`enum.Enum` .. autoapi-inheritance-diagram:: bluemira.base.constants.CoilType :parts: 1 :private-bases: CoilType Enum .. py:attribute:: PF .. py:attribute:: CS .. py:attribute:: DUM .. py:attribute:: NONE .. py:method:: _missing_(value: str | CoilType) -> CoilType :classmethod: .. py:class:: BMUnitRegistry Bases: :py:obj:`pint.UnitRegistry` .. autoapi-inheritance-diagram:: bluemira.base.constants.BMUnitRegistry :parts: 1 :private-bases: 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 ($) .. py:attribute:: _gas_flow_temperature :value: None .. py:attribute:: _contexts_added :value: False .. py:method:: _add_contexts(contexts: list[pint.Context] | None = None) Add new contexts to registry .. py:method:: enable_contexts(*contexts: pint.Context, **kwargs) Enable contexts .. py:method:: _energy_temperature_context() Converter between energy and temperature temperature = energy / k_B :rtype: pint context .. py:method:: _mass_energy_context() Converter between mass and energy energy = mass * speed-of-light^2 :rtype: pint context .. py:property:: flow_conversion Gas flow conversion factor R * T .. py:property:: gas_flow_temperature Gas flow temperature in kelvin If Quantity provided to setter it will convert units (naïvely) .. py:method:: _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 :rtype: pint context .. py:method:: _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 :staticmethod: .. py:data:: ureg .. py:data:: TIME .. py:data:: LENGTH .. py:data:: MASS .. py:data:: CURRENT .. py:data:: TEMP .. py:data:: QUANTITY .. py:data:: ANGLE .. py:data:: DENSITY .. py:data:: PART_DENSITY .. py:data:: FLUX_DENSITY .. py:data:: base_unit_defaults .. py:data:: combined_unit_defaults .. py:data:: combined_unit_dimensions .. py:data:: ANGLE_UNITS :value: ['radian', 'turn', 'degree', 'arcminute', 'arcsecond', 'milliarcsecond', 'grade', 'steradian',... .. py:data:: C_LIGHT .. py:data:: MU_0 .. py:data:: EPS_0 .. py:data:: ELEMENTARY_CHARGE .. py:data:: MU_0_2PI :value: 2e-07 .. py:data:: MU_0_4PI :value: 1e-07 .. py:data:: ONE_4PI .. py:data:: GRAVITY .. py:data:: N_AVOGADRO .. py:data:: SIGMA_BOLTZMANN .. py:data:: K_BOLTZMANN .. py:data:: H_PLANCK .. py:data:: E_CHARGE .. py:data:: NEUTRON_MOLAR_MASS .. py:data:: PROTON_MOLAR_MASS .. py:data:: ELECTRON_MOLAR_MASS .. py:data:: ELECTRON_MASS .. py:data:: PROTON_MASS .. py:data:: T_HALFLIFE :value: 12.312 .. py:data:: T_LAMBDA .. py:data:: T_MOLAR_MASS .. py:data:: D_MOLAR_MASS .. py:data:: HE_MOLAR_MASS .. py:data:: HE3_MOLAR_MASS .. py:data:: ABS_ZERO_K :value: 0 .. py:data:: ABS_ZERO_C .. py:data:: ABS_ZERO .. py:data:: YR_TO_S .. py:data:: S_TO_YR .. py:function:: units_compatible(unit_1: str, unit_2: str) -> bool Test if units are compatible. :param unit_1: unit 1 string :param unit_2: unit 2 string :returns: True if compatible, False otherwise .. py:data:: ArrayLike .. py:function:: raw_uc(value: ArrayLike, unit_from: str | ureg, unit_to: str | ureg) -> ArrayLike Raw unit converter Converts a value from one unit to another :param value: value to convert :param unit_from: unit to convert from :param unit_to: unit to convert to :rtype: converted value .. py:function:: 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 :param value: value to convert :param unit_from: unit to convert from :param unit_to: unit to convert to :param gas_flow_temperature: Gas flow temperature if not provided is 273.15 K, if not a `Quantity` the units are assumed to be kelvin :rtype: converted value .. py:function:: to_celsius(temp: numpy.typing.ArrayLike, unit: str | pint.Unit = ureg.kelvin) -> float | numpy.ndarray Convert a temperature in Kelvin to Celsius. :param temp: The temperature to convert, default [K] :param unit: change the unit of the incoming value :rtype: The temperature [°C] .. py:function:: to_kelvin(temp: numpy.typing.ArrayLike, unit: str | pint.Unit = ureg.celsius) -> float | numpy.ndarray Convert a temperature in Celsius to Kelvin. :param temp: The temperature to convert, default [°C] :param unit: change the unit of the incoming value :rtype: The temperature [K] .. py:function:: _temp_check(unit: pint.Unit, val: complex | pint.Quantity) Check temperature is above absolute zero :param unit: pint Unit :param val: value to check :raises ValueError: if below absolute zero .. py:function:: kgm3_to_gcm3(density: numpy.typing.ArrayLike) -> float | numpy.ndarray Convert a density in kg/m3 to g/cm3 :param density: The density [kg/m3] :rtype: The density [g/cm3] .. py:function:: gcm3_to_kgm3(density: numpy.typing.ArrayLike) -> float | numpy.ndarray Convert a density in g/cm3 to kg/m3 :param density: The density [g/cm3] :rtype: The density [kg/m3] .. py:data:: EPS .. py:data:: E_IJK .. py:data:: E_IJ .. py:data:: E_I .. py:data:: GREEK_ALPHABET :value: ['alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', 'theta', 'iota', 'kappa',... .. py:data:: GREEK_ALPHABET_CAPS .. py:data:: EXIT_COLOR :value: '\x1b[0m' .. py:data:: ANSI_COLOR .. py:class:: RNGSeeds(*args, **kwds) Bases: :py:obj:`enum.Enum` .. autoapi-inheritance-diagram:: bluemira.base.constants.RNGSeeds :parts: 1 :private-bases: Random Seeds for necessary use cases .. py:attribute:: equilibria_harmonics :value: 2944412338698111642 .. py:attribute:: timeline_tools_lognorm :value: 6613659347120864846 .. py:attribute:: timeline_tools_truncnorm :value: 9523110846560405221 .. py:attribute:: timeline_tools_expo :value: 15335509124046896388 .. py:attribute:: timeline_outages :value: 5876826953682921855