Пример #1
0
def test_find_left_state():
    """
    For setting up single shock initial data.
    """

    gamma = 5./3.
    K = 1.
    eos = eos_defns.eos_gamma_law(gamma)

    # right state
    rho_r, v_r, vt_r = (0.001, 0.0, 0.0)
    eps_r = K * rho_r**(gamma - 1.) / (gamma - 1.)

    # initialise right state
    q_r = State(rho_r, v_r, vt_r, eps_r, eos, label="R")

    q_l, v_s = utils.find_left(q_r, M=20.)

    q_l_expected = [0.0062076725292866553,  0.85384931817355381,  0.0,  0.96757276531735015]
    v_s_expected = 0.93199842492399299

    assert_allclose(q_l.prim(), q_l_expected)
    assert_allclose(v_s, v_s_expected)
Пример #2
0
def test_find_left_state_subsonic():
    """
    For setting up single shock initial data; subsonic case.
    """

    gamma = 5./3.
    K = 1.
    eos = eos_defns.eos_gamma_law(gamma)

    # right state
    rho_r, v_r, vt_r = (0.001, 0.0, 0.0)
    eps_r = K * rho_r**(gamma - 1.) / (gamma - 1.)

    # initialise right state
    q_r = State(rho_r, v_r, vt_r, eps_r, eos, label="R")

    q_l, v_s = utils.find_left(q_r, M=0.5)

    q_l_expected = [0.00066884219753554435, -0.048031759566342737,  0.0,  0.011472032502081871]
    v_s_expected = 0.064150029919561105

    assert_allclose(q_l.prim(), q_l_expected)
    assert_allclose(v_s, v_s_expected)