示例#1
0
def test_failures():
    with pytest.raises(rtd.RTDInputError):
        rtd.AD_cc(tau=-1, peclet=1, dt=DT, time_end=TIME_END)
    with pytest.raises(rtd.RTDInputError):
        rtd.AD_cc(tau=1, peclet=-1, dt=DT, time_end=TIME_END)
    with pytest.raises(rtd.RTDInputError):
        rtd.AD_cc(tau=1, peclet=1, dt=-1, time_end=TIME_END)
    with pytest.raises(rtd.RTDInputError):
        rtd.AD_cc(tau=1, peclet=1, dt=DT, time_end=-1)
示例#2
0
def test_high_pecletr_default(pecletr):
    tau = 1
    a = rtd.AD_cc(tau=tau, peclet=pecletr, dt=DT, time_end=TIME_END)
    assert (np.isclose(a.integral(), 1, rtol=rtol, atol=atol))
    assert (np.isclose(a.mrt(), analytic_mrt(tau), rtol=rtol * 10, atol=atol))
    assert (np.isclose(a.sigma(),
                       analytic_sigma2(tau, pecletr),
                       rtol=rtol * 10,
                       atol=atol))
示例#3
0
def test_low_pecletr(pecletr):
    tau = 1
    time_end = 20
    a = rtd.AD_cc(tau=tau, peclet=pecletr, dt=DT, time_end=time_end)
    assert (np.isclose(a.integral(), 1, rtol=rtol * 1, atol=atol * 10))
    assert (np.isclose(a.mrt(), analytic_mrt(tau), rtol=rtol * 10, atol=atol))
    assert (np.isclose(a.sigma(),
                       analytic_sigma2(tau, pecletr),
                       rtol=rtol * 10,
                       atol=atol))
示例#4
0
def test_AD_equivalence(peclet):
    # closed-closed and open-open are approximately equal at high peclet
    # starting around Pe=100
    time_end = 10
    dt = .001
    tau = 1
    nx = 300
    a = rtd.AD_cc(tau=tau, peclet=peclet, dt=dt, time_end=time_end, nx=nx)
    b = rtd.AD_oo(tau=tau, peclet=peclet, dt=dt, time_end=time_end)

    assert(np.isclose(a.integral(), b.integral(), rtol=rtol, atol=atol))
    assert(np.isclose(a.mrt(), b.mrt(), rtol=1e-2, atol=atol))
    assert(np.isclose(a.sigma(), b.sigma(), rtol=5e-2, atol=atol))
示例#5
0
def test_repr():
    a = rtd.AD_cc(tau=1, peclet=100, dt=DT, time_end=TIME_END)
    b = eval("rtd." + repr(a))
    assert np.isclose(a.integral(), b.integral(), rtol=rtol, atol=atol)
    assert np.isclose(a.mrt(), b.mrt(), rtol=rtol, atol=atol)
    assert np.isclose(a.sigma(), b.sigma(), rtol=rtol, atol=atol)
示例#6
0
import matplotlib.pyplot as plt
import rtdpy
for pe in [10, 100]:
    a = rtdpy.AD_cc(tau=1, peclet=pe, dt=.01, time_end=3)
    plt.plot(a.time, a.exitage, label='peclet={}'.format(pe))
plt.xlabel('Time')
plt.ylabel('Exit Age Function')
plt.legend()
plt.show()