コード例 #1
0
def set_quantity(quantity, dimension, scale_factor):
    """
    Set value and unit to physical quantity.
    Example:

        >>> import sympy.physics.units as un
        >>> from sympy.functions import *
        >>> from sympy.physics.units import Quantity
        >>> from utils import *
        >>> from sympy.physics.units import convert_to
        >>>
        >>> E = Quantity("E")
        >>> c = Quantity("c")

        >>> set_quantity(E, un.energy, 2.15e12 * un.kilo * un.watts * un.hour)
        >>> set_quantity(c, un.speed,  3.00e8  * un.m / un.s)
        >>> E = convert_to(E, un.joule).n()
        >>> m = E/c**2
        7.74e+18*joule/c**2

        convert_to(m, un.kg).n()
        86.0*kilogram

    :param quantity: physical quantity, for example length, mass or energy
    :param dimension: time, length, mass ... based on sympy.physics.units
    :param scale_factor: value to be set to `quantity` parameter
    """
    SI.set_quantity_dimension(quantity, dimension)
    SI.set_quantity_scale_factor(quantity, scale_factor)
コード例 #2
0
ファイル: Units.py プロジェクト: chrislxj/bgc_md2
    def test_dimensions_of_expressions(self):
        a = Quantity("a")
        SI.set_quantity_dimension(a, length)

        t = Quantity("t")
        SI.set_quantity_dimension(t, time)

        res = a**2 / t
        # we can now determine the physical dimension of res
        res_dim = SI.get_dimensional_expr(res)
        self.assertTrue(dimsys_SI.equivalent_dims(res_dim, length**2 / time))

        # In parameter dicts we can describe values along with units
        a_val = Quantity("a_val")
        SI.set_quantity_dimension(a_val, length)
        SI.set_quantity_scale_factor(a_val, 5 * meter)

        parameter_dict = {a: 5 * meter, t: 4 * second}

        res_val = res.subs(parameter_dict)
        # we can now determine the physical dimension of res_val
        # and check it against the expected
        print(SI.get_dimensional_expr(res_val))
        self.assertTrue(
            dimsys_SI.equivalent_dims(SI.get_dimensional_expr(res),
                                      SI.get_dimensional_expr(res_val)))
コード例 #3
0
ファイル: test_quantities.py プロジェクト: moorepants/sympy
def test_issue_22164():
    warnings.simplefilter("error")
    dm = Quantity("dm")
    SI.set_quantity_dimension(dm, length)
    SI.set_quantity_scale_factor(dm, 1)

    bad_exp = Quantity("bad_exp")
    SI.set_quantity_dimension(bad_exp, length)
    SI.set_quantity_scale_factor(bad_exp, 1)

    expr = dm**bad_exp

    # deprecation warning is not expected here
    SI._collect_factor_and_dimension(expr)
コード例 #4
0
from sympy import symbols, solve, Eq, pretty_print
from sympy.physics.units import Quantity, mass, acceleration, power, velocity
from sympy.physics.units import convert_to
from sympy.physics.units import kilo
from sympy.physics.units import km, hour, m, s, kg, W
from sympy.physics.units.systems import SI

a = symbols("a")
m_ = Quantity("m")
v = Quantity("v")
W_ = Quantity("W")

SI.set_quantity_dimension(a, acceleration)

SI.set_quantity_dimension(m_, mass)
SI.set_quantity_scale_factor(m_, 1000*kg)

SI.set_quantity_dimension(v, velocity)
SI.set_quantity_scale_factor(v, 60*km/hour)

SI.set_quantity_dimension(W_, power)
SI.set_quantity_scale_factor(W_, 120*kilo*W)

eq = Eq(W_, m_*a*v)
result = solve(eq, a)[0]
pretty_print(result)

pretty_print(convert_to(result, m / s ** 2).n())


コード例 #5
0
init_printing()

Wo = symbols("Wo")
v = symbols("v")

rho = Quantity("rho")
s = Quantity("s")
g = Quantity("g")
h1 = Quantity("h1")
h2 = Quantity("h2")
etha = Quantity("etha")
theta = Quantity("theta")

SI.set_quantity_dimension(rho, mass / length**3)
SI.set_quantity_scale_factor(rho, 1.0 * un.grams / un.cm**3)

SI.set_quantity_dimension(s, length**2)
SI.set_quantity_scale_factor(s, 35.0 * un.cm**2)

SI.set_quantity_dimension(h1, length)
SI.set_quantity_scale_factor(h1, 2.4 * un.meters)

SI.set_quantity_dimension(h2, length)
SI.set_quantity_scale_factor(h2, 4.8 * un.meters)

SI.set_quantity_dimension(g, acceleration)
SI.set_quantity_scale_factor(g, 9.81 * un.m / un.s**2)

SI.set_quantity_dimension(etha, One)
SI.set_quantity_scale_factor(etha, 0.6)