def test_addmultiply():
    x= Variable('x',2)
    y= Variable('y',3)
    z= Variable('z',4)
    expr = x+y*z
    assert pytest.approx(expr.eval()) == 14
    assert expr.print() == "x + y * z"
def test_multiply_subtract():
    x= Variable('x',2)
    y= Variable('y',7)
    z= Variable('z',4)
    expr = x*Par(y-z)
    assert pytest.approx(expr.eval()) == 6
    assert expr.print() == "x * (y - z)"
Пример #3
0
def test_multiply():
    x = Variable('x', 2)
    y = Variable('y', 3)
    expr = x * y
    assert pytest.approx(expr.eval()) == 6
    assert expr.print() == "x * y"
    assert pytest.approx(expr.diff(x)) == 3
    assert pytest.approx(expr.diff(y)) == 2
Пример #4
0
def test_subtract():
    x = Variable('x', 2)
    y = Variable('y', 3)
    expr = x - y
    assert pytest.approx(expr.eval()) == -1
    assert expr.print() == "x - y"
    assert pytest.approx(expr.diff(x)) == 1
    assert pytest.approx(expr.diff(y)) == -1
Пример #5
0
def test_add():
    x = Variable('x', 2)
    y = Variable('y', 3)
    expr = x + y
    assert pytest.approx(expr.eval()) == 5
    assert expr.print() == "x + y"
    assert pytest.approx(expr.diff(x)) == 1
    assert pytest.approx(expr.diff(y)) == 1
Пример #6
0
def test_divide():
    x = Variable('x', 1.0)
    y = Variable('y', 2.0)
    expr = x / y
    assert pytest.approx(expr.eval()) == 1.0 / 2.0
    assert expr.print() == "x / y"
    assert pytest.approx(expr.diff(x)) == 0.5
    assert pytest.approx(expr.diff(y)) == -0.25
Пример #7
0
def test_reevaluate():
    x = Variable('x', 2)
    y = Variable('y', 3)
    expr = x + y
    assert pytest.approx(expr.eval()) == 5
    assert expr.print() == "x + y"
    y.value = 40

    expr.reset()
    assert pytest.approx(expr.eval()) == 42
    assert expr.print() == "x + y"
Пример #8
0
def test():
    for c in sys.components:
        for p in [e for e in Properties]:
            fdesc = c.functions[p]
            T = Variable("T", 273.15, SI.K)
            T.displayUnit = METRIC.C
            TC = c.constants[PhysicalConstants.CriticalTemperature]
            PC = c.constants[PhysicalConstants.CriticalPressure]
            f = sys.correlationFactory.createFunction(fdesc, T, TC, PC)
            for i in range(2000):
                T.value = random.uniform(100.0, 550.0)
                f.reset()
                y = f.eval()
Пример #9
0
def test_add_literal_left():

    y = Variable('y', 3)
    expr = 2.0 + y
    assert pytest.approx(expr.eval()) == 5
    assert expr.print() == "2.0 + y"
Пример #10
0
def test_divide_literal_right():
    x = Variable('x', 2.0)
    expr = x / 3.0
    assert pytest.approx(expr.eval()) == 2.0 / 3.0
    assert expr.print() == "x / 3.0"
Пример #11
0
def test_multiply_literal_right():
    x = Variable('x', 2)
    expr = x * 3.0
    assert pytest.approx(expr.eval()) == 6
    assert expr.print() == "x * 3.0"
Пример #12
0
def test_subtract_literal_right():
    x = Variable('x', 2)
    expr = x - 3.0
    assert pytest.approx(expr.eval()) == -1
    assert expr.print() == "x - 3.0"
Пример #13
0
def test_add_literal_right():
    x = Variable('x', 2)
    expr = x + 3.0
    assert pytest.approx(expr.eval()) == 5
    assert expr.print() == "x + 3.0"
Пример #14
0
def test_divide():
    x = Variable('x', 2.0)
    y = Variable('y', 3.0)
    expr = x / y
    assert pytest.approx(expr.eval()) == 2.0 / 3.0
    assert expr.print() == "x / y"
Пример #15
0
def test_subtract():
    x= Variable('x',2)
    y= Variable('y',3)
    expr = Subtraction(x,y)
    assert pytest.approx(expr.eval()) == -1
    assert expr.print() == "x - y"    
Пример #16
0
def test_cosh():
    x = Variable('x', math.pi / 2.0)
    expr = Cosh(x)
    assert pytest.approx(expr.eval()) == math.cosh(math.pi / 2.0)
    assert expr.print() == "cosh(x)"
Пример #17
0
def test_divide_literal_left():

    y = Variable('y', 3.0)
    expr = 2.0 / y
    assert pytest.approx(expr.eval()) == 2.0 / 3.0
    assert expr.print() == "2.0 / y"
Пример #18
0
def test_sin():
    x = Variable('x', math.pi / 2.0)
    expr = Sin(x)
    assert pytest.approx(expr.eval()) == math.sin(math.pi / 2.0)
    assert expr.print() == "sin(x)"
Пример #19
0
import math
import numpy as np
import streamlit as st
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go

sys = ThermodynamicSystem("Test", "NRTL")
sys.addComponent(pcdb.Water())
sys.addComponent(pcdb.Ethanol())
sys.addComponent(pcdb.Methanol())
sys.addComponent(pcdb.Acetone())
sys.addComponent(pcdb.Isopropanol())
sys.fill()

T = Variable("T", 273.15, SI.K)
T.displayUnit = METRIC.C

P = Variable("P", 1e5, SI.Pa)
P.displayUnit = METRIC.mbar

c1 = st.sidebar.selectbox('Substance 1',
                          sys.components,
                          format_func=str,
                          index=0)
c2 = st.sidebar.selectbox('Substance 2',
                          sys.components,
                          format_func=str,
                          index=1)

tiso = st.sidebar.slider('Isothermal Temperature [°C]', -100, 300, 25)
Пример #20
0
def test_add():
    x= Variable('x',2)
    y= Variable('y',3)
    expr = Addition(x,y)
    assert pytest.approx(expr.eval()) == 5
    assert expr.print() == "x + y"
Пример #21
0
def test_multiply():
    x= Variable('x',2)
    y= Variable('y',3)
    expr = Multiplication(x,y)
    assert pytest.approx(expr.eval()) == 6
    assert expr.print() == "x * y"    
Пример #22
0
def test_subtract_literal_left():
    y = Variable('y', 3)
    expr = 2.0 - y
    assert pytest.approx(expr.eval()) == -1
    assert expr.print() == "2.0 - y"
Пример #23
0
def test_multiply_literal_left():
    y = Variable('y', 3)
    expr = 2.0 * y
    assert pytest.approx(expr.eval()) == 6
    assert expr.print() == "2.0 * y"
Пример #24
0
def test_tanh():
    x = Variable('x', math.pi / 2.0)
    expr = Tanh(x)
    assert pytest.approx(expr.eval()) == math.tanh(math.pi / 2.0)
    assert expr.print() == "tanh(x)"
Пример #25
0
from pypedream import AlgebraicSystem, Equation, Variable, Addition, Subtraction, Multiplication, Division, Unit, SI, METRIC, PhysicalDimension, UnitSet, UnitSetDefault, UnitSetSI
from pypedream.thermodynamics import PureComponentFunctionFactory, Substance, ThermodynamicSystem, Properties, PhysicalConstants
from pypedream.database import purecomponents as pcdb

import math
import numpy as np
import streamlit as st
import pandas as pd
import plotly.express as px

sys = ThermodynamicSystem("Test")
sys.addComponent(pcdb.Water())
sys.addComponent(pcdb.Isopropanol())
sys.addComponent(pcdb.Methanol())

T = Variable("T", 273.15, SI.K)
T.displayUnit = METRIC.C

c = st.sidebar.selectbox('Substance', sys.components, format_func=str)
p = st.sidebar.selectbox('Property', [e for e in Properties])
fdesc = c.functions[p]
tmin = st.sidebar.slider('Minimum Temperature', -100, 500, 25)
tmax = st.sidebar.slider('Maximum Temperature', -100, 500, 200)
samples = st.sidebar.number_input('samples', 10, 150)

TC = c.constants[PhysicalConstants.CriticalTemperature]
PC = c.constants[PhysicalConstants.CriticalPressure]
f = sys.correlationFactory.createFunction(fdesc, T, TC, PC)


def calculate():
Пример #26
0
    return


print(SI.K)
print(SI.mol)

print(f"{SI.N} Dims: {SI.N.printDimensions()} Units: {SI.N.printBaseUnits()}")

print(Unit.convert(SI.K, METRIC.C, 298.15))

units = UnitSetDefault()

printUnit(units[PhysicalDimension.Temperature])
printUnit(units[PhysicalDimension.Pressure])

x = Variable('x', 1)
f = x * x * x - 5 * x + 3
scalar.solveNewtonRaphson(f, x)
x1 = x.value

x.value = 1
scalar.solveBisection(f, x, 1, 2)
x2 = x.value
t = np.arange(0., 2., 0.001)

#plt.plot(t, t*t*t-5*t+3, 'r') # plotting t, a separately
#plt.plot(t, 0*t, 'b') # plotting t, b separately
#plt.plot(x2, 0, 'kx') # plotting t, b separately
#plt.plot(x1, 0, 'ko') # plotting t, b separately

#plt.show()