コード例 #1
0
def test_tripcolor_movie():
    mesh = UnitSquareMesh(16, 16)
    Q = FunctionSpace(mesh, 'CG', 2)
    x = SpatialCoordinate(mesh)
    t = Constant(0)
    expr = sin(np.pi * (x[0] + 2 * x[1] + t))
    q = interpolate(expr, Q)

    fig, axes = plt.subplots()
    axes.set_aspect('equal')
    colors = tripcolor(q, num_sample_points=10, vmin=0.0, vmax=1.0, axes=axes)

    fn_plotter = FunctionPlotter(mesh, num_sample_points=10)

    def animate(time):
        t.assign(time)
        q.interpolate(expr)
        colors.set_array(fn_plotter(q))

    duration = 6
    fps = 24
    frames = np.linspace(0.0, duration, duration * fps)
    interval = 1e3 / fps
    movie = FuncAnimation(fig, animate, frames=frames, interval=interval)
    assert movie is not None
コード例 #2
0
def test_1d_constant():
    mesh = UnitIntervalMesh(1)
    V = FunctionSpace(mesh, "CG", 1)
    fn_plotter = FunctionPlotter(mesh, 10)
    f = Function(V)
    f.interpolate(as_ufl(1.0))
    f_vals = fn_plotter(f)
    assert np.allclose(1.0, f_vals)
コード例 #3
0
def test_2d_quadratic():
    mesh = UnitSquareMesh(10, 10)
    V = FunctionSpace(mesh, "CG", 2)
    fn_plotter = FunctionPlotter(mesh, 10)
    f = Function(V)
    x = SpatialCoordinate(mesh)
    f.interpolate(x[0] + x[1]**2)
    coord_vals = fn_plotter(mesh.coordinates).reshape(-1, 2)
    f_vals = fn_plotter(f)
    assert np.allclose(coord_vals[:, 0] + coord_vals[:, 1]**2, f_vals)
コード例 #4
0
def test_1d_quadratic():
    mesh = IntervalMesh(10, 20)
    V = FunctionSpace(mesh, "CG", 2)
    fn_plotter = FunctionPlotter(mesh, 10)
    f = Function(V)
    x, = SpatialCoordinate(mesh)
    f.interpolate(x**2 - x + 3)
    x_vals = fn_plotter(mesh.coordinates)
    f_vals = fn_plotter(f)
    assert np.allclose(x_vals**2 - x_vals + 3, f_vals)
コード例 #5
0
def test_1d_linear():
    mesh = IntervalMesh(10, 20)
    V = FunctionSpace(mesh, "CG", 1)
    fn_plotter = FunctionPlotter(mesh, 10)
    f = Function(V)
    x, = SpatialCoordinate(mesh)
    f.interpolate(2 * x)
    x_vals = fn_plotter(mesh.coordinates)
    f_vals = fn_plotter(f)
    assert np.allclose(2.0 * x_vals, f_vals)