首页/文章/ 详情

CFD Julia|00 基本介绍

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
2年前浏览2712

 

CFD Julia是一个编程模块,其包含了从一维传热方程到二维不可压缩Navier-Stokes流动问题的Julia程序设计。这是个利用Julia撸CFD的基础教程,适合作为计算流体力学课程的课后作业。

Julia是个不错的计算机程序设计语言,主要面向的是数据分析、数值计算之类强调计算性能的工作场合。官方介绍Julia兼具C语言的高性能及Python的高效率,是求解器开发界的潜力股语言。

1 基本介绍

CFD Julia的github仓库地址:https://github.com/surajp92/CFD_Julia。由于Julia最近几个版本更新变化较大,仓库中的很多代码需要经过一些调整才能运行。

更详细信息可参考:A Learning Module Structuring an Introductory Course on Computational Fluid Dynamics(https://www.mdpi.com/2311-5521/4/3/159)

图片

涉及内容包括:

IndexDescription
011D heat equation: Forward time central space (FTCS) scheme
021D heat equation: Third-order Runge-Kutta (RK3) scheme
031D heat equation: Crank-Nicolson (CN) scheme
041D heat equation: Implicit compact Pade (ICP) scheme
051D inviscid Burgers equation: WENO-5 with Dirichlet and periodic boundary condition
061D inviscid Burgers equation: CRWENO-5 with Dirichlet and periodic boundary conditions
071D inviscid Burgers equation: Flux-splitting approach with WENO-5
081D inviscid Burgers equation: Riemann solver approach with WENO-5 using Rusanov solver
091D Euler equations: Roe solver, WENO-5, RK3 for time integration
101D Euler equations: HLLC solver, WENO-5, RK3 for time integration
111D Euler equations: Rusanov solver, WENO-5, RK3 for time integration
122D Poisson equation: Finite difference fast Fourier transform (FFT) based direct solver
132D Poisson equation: Spectral fast Fourier transform (FFT) based direct solver
142D Poisson equation: Fast sine transform (FST) based direct solver for Dirichlet boundary
152D Poisson equation: Gauss-Seidel iterative method
162D Poisson equation: Conjugate gradient iterative method
172D Poisson equation: V-cycle multigrid iterative method
182D incompressible Navier-Stokes equations (cavity flow): Arakawa, FST, RK3 schemes
192D incompressible Navier-Stokes equations (vortex merging): Arakawa, FFT, RK3 schemes
202D incompressible Navier-Stokes equations (vortex merging): Hybrid RK3/CN approach
212D incompressible Navier-Stokes equations (vortex merging): Pseudospectral solver, 3/2 dealiasing, Hybrid RK3/CN approach
222D incompressible Navier-Stokes equations (vortex merging): Pseudospectral solver, 2/3 dealiasing, Hybrid RK3/CN approach

2 练习环境搭建与配置

2.1 安装Julia

  • 进入Julia官网https://julialang.org/,下载安装文件并进行安装
图片

安装过程很简单,一路Next即可。

2.2 设置国内镜像源

Julia官方源下载 速度奇慢,还有很多包在国内访问不到。国内热心网友做了镜像源,比较靠谱的镜像是北京外国语大学。之前浙大也有个镜像源,有一阵子访问不到,现在不知道什么情况。北外的源设置可以参考其官网https://mirrors.bfsu.edu.cn/help/julia/。

windows系统想要设置永久国内源可以这样做:

  • 打开文件C:\用户\(用户名)\.julia\config\startup.jl
图片
  • 添加内容ENV["JULIA_PKG_SERVER"] = "https://mirrors.bfsu.edu.cn/julia",如下图所示,保存文件即可
图片

设置完毕后可以测试。

进入Julia环境,输入命令versioninfo(),若如下图所示则表示修改成功。

图片

注:修改镜像源不是必须的,若本机访问外网速度可以的话,也可以不用修改镜像源。不过基于各方面原因,国内访问外网速度通常都超慢。

2.3 安装一些必要的包

Julia提供了一些基础程序设计功能,大量的特殊功能需要借助功能包来实现。这里以科学计算中最常见的绘图包PyPlot安装为例描述在Julia中程序包的安装过程。

  • 启动Julia
图片
  • 依次输入以下命令
using Pkg
Pkg.add("PyPlot")

如下图所示。

图片

安装完毕后,输入命令Using PyPlot,如下图所示,若没有任何错误提示,则表示该包安装成功。

图片

相同的方式可以使用命令Pkg.add("IJulia")安装IJulia包,该包可以与Jupyter配合使用,非常方便。

2.4 在vs code中使用Julia

julia官方提供了vs code插件。

  • 搜索并安装插件Julia
图片
  • 若想要在vscode中利用Jupyter编写Julia代码,还可以搜索并安装Jupyter
图片

(本文结束)

 

CFD-Post科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-01-06
最近编辑:2年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2561粉丝 11260文章 732课程 27
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈