Esempio n. 1
0
SI.set_quantity_scale_factor(curie, 37000000000*becquerel)

SI.set_quantity_dimension(rutherford, 1 / time)
SI.set_quantity_scale_factor(rutherford, 1000000*becquerel)


# check that scale factors are the right SI dimensions:
for _scale_factor, _dimension in zip(
    SI._quantity_scale_factors.values(),
    SI._quantity_dimension_map.values()
):
    dimex = SI.get_dimensional_expr(_scale_factor)
    if dimex != 1:
        # XXX: equivalent_dims is an instance method taking two arguments in
        # addition to self so this can not work:
        if not DimensionSystem.equivalent_dims(_dimension, Dimension(dimex)):  # type: ignore
            raise ValueError("quantity value and dimension mismatch")
del _scale_factor, _dimension

__all__ = [
    'mmHg', 'atmosphere', 'inductance', 'newton', 'meter',
    'vacuum_permittivity', 'pascal', 'magnetic_constant', 'voltage',
    'angular_mil', 'luminous_intensity', 'all_units',
    'julian_year', 'weber', 'exbibyte', 'liter',
    'molar_gas_constant', 'faraday_constant', 'avogadro_constant',
    'lightyear', 'planck_density', 'gee', 'mol', 'bit', 'gray',
    'planck_momentum', 'bar', 'magnetic_density', 'prefix_unit', 'PREFIXES',
    'planck_time', 'dimex', 'gram', 'candela', 'force', 'planck_intensity',
    'energy', 'becquerel', 'planck_acceleration', 'speed_of_light',
    'conductance', 'frequency', 'coulomb_constant', 'degree', 'lux', 'planck',
    'current', 'planck_current', 'tebibyte', 'planck_power', 'MKSA', 'power',
Esempio n. 2
0
"""
Naturalunit system.

The natural system comes from "setting c = 1, hbar = 1". From the computer
point of view it means that we use velocity and action instead of length and
time. Moreover instead of mass we use energy.
"""

from __future__ import division

from sympy.physics.units import DimensionSystem
from sympy.physics.units.definitions import c, eV, hbar
from sympy.physics.units.definitions.dimension_definitions import (
    action, energy, force, frequency, length, mass, momentum, power, time,
    velocity)
from sympy.physics.units.prefixes import PREFIXES, prefix_unit
from sympy.physics.units.unitsystem import UnitSystem

# dimension system
_natural_dim = DimensionSystem(base_dims=(action, energy, velocity),
                               derived_dims=(length, mass, time, momentum,
                                             force, power, frequency))

units = prefix_unit(eV, PREFIXES)

# unit system
natural = UnitSystem(base_units=(hbar, eV, c),
                     units=units,
                     name="Natural system")
Esempio n. 3
0
def test_is_consistent():
    dimension_system = DimensionSystem([length, time])
    us = UnitSystem([m, s], dimension_system=dimension_system)
    assert us.is_consistent == True
Esempio n. 4
0
SI.set_quantity_scale_factor(planck_current, planck_charge / planck_time)

SI.set_quantity_dimension(planck_voltage, voltage)
SI.set_quantity_scale_factor(planck_voltage, planck_energy / planck_charge)

SI.set_quantity_dimension(planck_impedance, impedance)
SI.set_quantity_scale_factor(planck_impedance, planck_voltage / planck_current)

SI.set_quantity_dimension(planck_acceleration, acceleration)
SI.set_quantity_scale_factor(planck_acceleration, speed_of_light / planck_time)

# Older units for radioactivity

SI.set_quantity_dimension(curie, 1 / time)
SI.set_quantity_scale_factor(curie, 37000000000*becquerel)

SI.set_quantity_dimension(rutherford, 1 / time)
SI.set_quantity_scale_factor(rutherford, 1000000*becquerel)


# check that scale factors are the right SI dimensions:
for _scale_factor, _dimension in zip(
    SI._quantity_scale_factors.values(),
    SI._quantity_dimension_map.values()
):
    dimex = SI.get_dimensional_expr(_scale_factor)
    if dimex != 1:
        if not DimensionSystem.equivalent_dims(_dimension, Dimension(dimex)):
            raise ValueError("quantity value and dimension mismatch")
del _scale_factor, _dimension
Esempio n. 5
0
    planck_angular_frequency, planck_pressure, planck_current, planck_voltage,
    planck_impedance, planck_acceleration, bit, byte, kibibyte, mebibyte,
    gibibyte, tebibyte, pebibyte, exbibyte, curie, rutherford, radian, degree,
    steradian, angular_mil, atomic_mass_unit, gee, kPa, ampere, u0, kelvin,
    mol, mole, candela, electric_constant, boltzmann)

dimsys_length_weight_time = DimensionSystem(
    [
        # Dimensional dependencies for MKS base dimensions
        length,
        mass,
        time,
    ],
    dimensional_dependencies=dict(
        # Dimensional dependencies for derived dimensions
        velocity=dict(length=1, time=-1),
        acceleration=dict(length=1, time=-2),
        momentum=dict(mass=1, length=1, time=-1),
        force=dict(mass=1, length=1, time=-2),
        energy=dict(mass=1, length=2, time=-2),
        power=dict(length=2, mass=1, time=-3),
        pressure=dict(mass=1, length=-1, time=-2),
        frequency=dict(time=-1),
        action=dict(length=2, mass=1, time=-1),
        volume=dict(length=3),
    ))

One = S.One

# Base units:
dimsys_length_weight_time.set_quantity_dimension(meter, length)
dimsys_length_weight_time.set_quantity_scale_factor(meter, One)
Esempio n. 6
0
all_units.extend([g, J, N, W, Pa, Hz])

for u in units:
    all_units.extend(prefix_unit(u, PREFIXES))
all_units.extend([G, c])

dimsys_MKS = DimensionSystem(
    [
        # Dimensional dependencies for MKS base dimensions
        length,
        mass,
        time,
    ],
    dimensional_dependencies=dict(
        # Dimensional dependencies for derived dimensions
        velocity=dict(length=1, time=-1),
        acceleration=dict(length=1, time=-2),
        momentum=dict(mass=1, length=1, time=-1),
        force=dict(mass=1, length=1, time=-2),
        energy=dict(mass=1, length=2, time=-2),
        power=dict(length=2, mass=1, time=-3),
        pressure=dict(mass=1, length=-1, time=-2),
        frequency=dict(time=-1),
        action=dict(length=2, mass=1, time=-1),
        volume=dict(length=3),
    ))

# unit system
MKS = UnitSystem(base_units=(m, kg, s),
                 units=all_units,
                 name="MKS",
                 dimension_system=dimsys_MKS)
Esempio n. 7
0
"""

from __future__ import division

from sympy.physics.units.definitions import (m, kg, s, J, N, W, Pa, Hz, g, G, c)
from sympy.physics.units.dimensions import (velocity, acceleration, momentum, force, energy, power, pressure,
                                            frequency, action, length, mass, time)

from sympy.physics.units import DimensionSystem, UnitSystem
from sympy.physics.units.prefixes import PREFIXES, prefix_unit

dims = (velocity, acceleration, momentum, force, energy, power, pressure,
        frequency, action)

# dimension system
_mks_dim = DimensionSystem(base=(length, mass, time), dims=dims, name="MKS")

units = [m, g, s, J, N, W, Pa, Hz]
all_units = []

# Prefixes of units like g, J, N etc get added using `prefix_unit`
# in the for loop, but the actual units have to be added manually.
all_units.extend([g, J, N, W, Pa, Hz])

for u in units:
    all_units.extend(prefix_unit(u, PREFIXES))
all_units.extend([G, c])

# unit system
MKS = UnitSystem(base=(m, kg, s), units=all_units, name="MKS")