吾生有涯 学海无涯
析模有界 知识无界

CFD Julia|00 基本介绍

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)

涉及内容包括:

Index Description
01 1D heat equation: Forward time central space (FTCS) scheme
02 1D heat equation: Third-order Runge-Kutta (RK3) scheme
03 1D heat equation: Crank-Nicolson (CN) scheme
04 1D heat equation: Implicit compact Pade (ICP) scheme
05 1D inviscid Burgers equation: WENO-5 with Dirichlet and periodic boundary condition
06 1D inviscid Burgers equation: CRWENO-5 with Dirichlet and periodic boundary conditions
07 1D inviscid Burgers equation: Flux-splitting approach with WENO-5
08 1D inviscid Burgers equation: Riemann solver approach with WENO-5 using Rusanov solver
09 1D Euler equations: Roe solver, WENO-5, RK3 for time integration
10 1D Euler equations: HLLC solver, WENO-5, RK3 for time integration
11 1D Euler equations: Rusanov solver, WENO-5, RK3 for time integration
12 2D Poisson equation: Finite difference fast Fourier transform (FFT) based direct solver
13 2D Poisson equation: Spectral fast Fourier transform (FFT) based direct solver
14 2D Poisson equation: Fast sine transform (FST) based direct solver for Dirichlet boundary
15 2D Poisson equation: Gauss-Seidel iterative method
16 2D Poisson equation: Conjugate gradient iterative method
17 2D Poisson equation: V-cycle multigrid iterative method
18 2D incompressible Navier-Stokes equations (cavity flow): Arakawa, FST, RK3 schemes
19 2D incompressible Navier-Stokes equations (vortex merging): Arakawa, FFT, RK3 schemes
20 2D incompressible Navier-Stokes equations (vortex merging): Hybrid RK3/CN approach
21 2D incompressible Navier-Stokes equations (vortex merging): Pseudospectral solver, 3/2 dealiasing, Hybrid RK3/CN approach
22 2D 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:用户(用户名).juliaconfigstartup.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之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《CFD Julia|00 基本介绍》
文章链接:https://www.topcfd.cn/17297/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册