test_save.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:devito 作者: opesci 项目源码 文件源码
def run_simulation(save=False, dx=0.01, dy=0.01, a=0.5, timesteps=100):
    nx, ny = int(1 / dx), int(1 / dy)
    dx2, dy2 = dx**2, dy**2
    dt = dx2 * dy2 / (2 * a * (dx2 + dy2))

    grid = Grid(shape=(nx, ny))
    u = TimeFunction(
        name='u', grid=grid, save=timesteps, initializer=initializer,
        time_order=1, space_order=2
    )

    eqn = Eq(u.dt, a * (u.dx2 + u.dy2))
    stencil = solve(eqn, u.forward)[0]
    op = Operator(Eq(u.forward, stencil), time_axis=Forward)
    op.apply(time=timesteps, dt=dt)

    if save:
        return u.data[timesteps - 1, :]
    else:
        return u.data[(timesteps+1) % 2, :]
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号