import numpy as np
import matplotlib.pyplot as plt

# 模型参数
L = 1000  # 河流长度(单位:米)
dx = 10  # 网格间距(单位:米)
dt = 1  # 时间步长(单位:秒)
T = 3600  # 总模拟时间(单位:秒)
g = 9.81  # 重力加速度(单位:米/秒^2)

# 初始化水位和流速
h = np.zeros(int(L / dx))
u = np.zeros(int(L / dx))

# 模拟时间步进
for t in range(int(T / dt)):
    # 计算水位和流速的变化
    dh_dt = -np.diff(u) / dx
    du_dt = -g * np.diff(h) / dx

    # 更新水位和流速
    h[1:-1] += dh_dt*dt
    u[1:-1] += du_dt*dt

    # 边界条件(开放边界)
    h[0] = h[1]
    h[-1] = h[-2]
    u[0] = u[1]
    u[-1] = u[-2]

# 绘制水位和流速随时间的变化
x = np.arange(0, L, dx)
plt.plot(x, h)
plt.xlabel('Distance (m)')
plt.ylabel('Water Level (m)')
plt.title('Water Level vs. Distance')
plt.show()

plt.plot(x, u)
plt.xlabel('Distance (m)')
plt.ylabel('Flow Velocity (m/s)')
plt.title('Flow Velocity vs. Distance')
plt.show()
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐