浅水方程的cfd-python软件包
mattflow的Python项目详细描述
mattflow
浅水方程的cfd-python软件包。
mattflow在任何初始条件(如水滴或石头掉落)之后模拟水的表面。
requirements | os |
---|---|
python 3 | GNU/Linux |
numpy 1.16.4 | Windows |
matplotlib 3.1.1 | |
ffmpeg (optional) |
如何安装并运行mattflow
- 水蟒环境(推荐)
$ conda create --name mattflow python=3 matplotlib $ conda activate mattflow $ pip install mattflow $ mattflow
- venv(python>;=3.3)
$ python3 -m venv mattflow_env
$ source mattflow_env/bin/activate
$ pip install mattflow
$ mattflow
- 点
$ pip install --user mattflow $ mattflow
吞水方程
swe是一个简化的cfd问题,在假设
水平长度比例尺远大于垂直长度比例尺。
swe是一个由3个双曲偏微分方程组成的耦合系统,它们来自
质量守恒和线性动量守恒(navier-stokes)方程,in
水平河床的情况,没有科里奥利力、摩擦力或粘滞力(wiki)。
其中:
η:高度
{EM1}$UEEE>:沿X轴的速度
{EM1} $ < EEM >:沿Y轴的速度
ρ:密度
g:重力加速度
mattflow结构
更多详细信息请参见jupyter notebook
- 通过配置文件配置模拟
- 预处理
结构化/笛卡尔网格 - 解决方案
支持的解算器:- Lax-Friedrichs莱曼 o(Δt,Δx2,Δy2)
- 两级Rugne-Kutta o(Δt2,Δx2,Δy2) 默认值
- MacCormack o(Δt2,Δx2,Δy2) 实验性
- 后处理
matplotlib动画
附加配置
- 网格大小
- 域大小调整
- 初始条件(单滴、多滴、雨)
- 边界条件(当前:反射)
- 解算器
- 打印样式
- 动画选项
目前,您可以在config模块配置模拟
待办事项
- 例外情况
- pytest
- 绒布
- 配置模拟的简单api
- 高阶方案的实现
- 添加源项
- 增加粘性模型
- 移动核心到C++,Cython或NUBA
- 支持在域内移动对象
- 非结构网格
- 扩展到3D CFD
启动流!
(C) 2019, Thanasis Mattas
atmattas@physics.auth.gr