def riemann_plot_func(q_l, q_r, auxl, auxr):
    """Return Riemann plot function for (only) time-dependent interacts. """
    ex_states, ex_speeds, reval = exact_riemann_solution(q_l ,q_r, auxl, auxr)

    plot_function = riemann_tools.make_plot_function(ex_states, ex_speeds, reval, layout='vertical',
                                                    variable_names=['pressure', 'velocity'],
                                                    aux=(np.array(auxl),np.array(auxr)), 
                                                    plot_chars=[lambda1_het, lambda2_het])
    return plot_function
Exemple #2
0
def plot_riemann_solution(ql, qr, a):
    c = lambda q, xi: a
    soln = riemann_solution(ql, qr, a)

    plot_advection = riemann_tools.make_plot_function(*soln, plot_chars=[c])

    return interact(plot_advection,
                    t=widgets.FloatSlider(value=0.0, min=0, max=1.0),
                    which_char=widgets.fixed(True))
Exemple #3
0
def shock():
    """Returns plot function for a shock solution."""
    q_l, q_r = 5.0, 1.0
    states, speeds, reval, wave_type = burgers.exact_riemann_solution(q_l ,q_r)

    plot_function = riemann_tools.make_plot_function(states, speeds, reval, wave_type, 
                                                    layout='horizontal',
                                                    variable_names=['q'],
                                                    plot_chars=[burgers.speed])
    return plot_function
Exemple #4
0
def unphysical():
    """Returns plot function for an unphysical solution."""
    q_l, q_r = 1.0, 5.0
    states, speeds, reval, wave_type = burgers.unphysical_riemann_solution(q_l ,q_r)

    plot_function = riemann_tools.make_plot_function(states, speeds, reval, wave_type, 
                                                    layout='horizontal',
                                                    variable_names=['q'],
                                                    plot_chars=[burgers.speed])
    return plot_function
Exemple #5
0
def plot_riemann_solution(ql, qr, a):
    c = lambda q, xi: a
    soln = riemann_solution(ql ,qr, a)

    plot_advection = riemann_tools.make_plot_function(*soln,
                                                      plot_chars=[c])

    return interact(plot_advection,
                    t=widgets.FloatSlider(value=0.0,min=0,max=1.0),
                    which_char=widgets.fixed(True))
def rarefaction():
    q_l, q_r = 2.0, 4.0
    states, speeds, reval, wave_type = burgers.exact_riemann_solution(q_l, q_r)

    plot_function = riemann_tools.make_plot_function(
        states,
        speeds,
        reval,
        wave_type,
        layout='horizontal',
        variable_names=['q'],
        plot_chars=[burgers.speed])
    return plot_function
def unphysical():
    q_l, q_r = 1.0, 5.0
    states, speeds, reval, wave_type = burgers.unphysical_riemann_solution(
        q_l, q_r)

    plot_function = riemann_tools.make_plot_function(
        states,
        speeds,
        reval,
        wave_type,
        layout='horizontal',
        variable_names=['q'],
        plot_chars=[burgers.speed])
    return plot_function
Exemple #8
0
def shock():
    """Returns plot function for a shock solution."""
    q_l, q_r = 5.0, 1.0
    states, speeds, reval, wave_type = burgers.exact_riemann_solution(q_l, q_r)

    plot_function = riemann_tools.make_plot_function(
        states,
        speeds,
        reval,
        wave_type,
        layout='horizontal',
        variable_names=['q'],
        plot_chars=[burgers.speed])
    return plot_function
Exemple #9
0
def riemann_solution(left_state, right_state, gamma=1.4):
    q_left = primitive_to_conservative(*left_state)
    q_right = primitive_to_conservative(*right_state)

    ex_states, ex_speeds, reval, wave_types = exact_riemann_solution(
        q_left, q_right, gamma)

    plot_function = riemann_tools.make_plot_function(
        ex_states,
        ex_speeds,
        reval,
        wave_types,
        layout='vertical',
        variable_names=primitive_variables,
        plot_chars=[lambda1, lambda2, lambda3],
        derived_variables=cons_to_prim)

    interact(plot_function,
             t=widgets.FloatSlider(value=0.1, min=0, max=.9),
             which_char=widgets.Dropdown(
                 options=[None, 1, 2, 3],
                 description='Show characteristics:',
                 style={'description_width': 'initial'}))