CFD Julia|02 传热方程:Runge-Kutta法
一维热传导方程为: 式中,为场变量;为时间;为介质扩散率。 前面的课程中使用的FTCS格式中,对时间项采用的向前差分格式只有一阶精度,我们可以想办法构造更高精度的时间格式,如本文后面将要使用的Runge-Kutta方法。 1 离散方程 Ru...
一维热传导方程为: 式中,为场变量;为时间;为介质扩散率。 前面的课程中使用的FTCS格式中,对时间项采用的向前差分格式只有一阶精度,我们可以想办法构造更高精度的时间格式,如本文后面将要使用的Runge-Kutta方法。 1 离散方程 Ru...
一维热传导方程为: 式中,为场变量;为时间;为介质扩散率。传热方程描述了介质中场变量温度随时间的演化。 热传导方程的离散有多种方法,如有限体积法[11]、有限差分法[12]、有限元法[13]、谱方法[14]等。本文研究的是对所有偏微分方程(...
CFD Julia是一个编程模块,其包含了从一维传热方程到二维不可压缩Navier-Stokes流动问题的Julia程序设计。这是个利用Julia撸CFD的基础教程,适合作为计算流体力学课程的课后作业。 Julia是个不错的计算机程序设计语...
本文利用Julia计算方腔顶盖流动。 密闭空腔中的流体流动满足下面的控制方程: 1 离散方程 离散U动量方程: 离散v动量方程: 离散压力泊松方程: 改写为迭代式的形式。 2 初始值与边界值 初始条件下,计算区域内。 对于边界条件: y=2...
本文利用Julia计算二维管道内压力驱动流动。 管道内压力驱动流动的控制方程如下: 与方腔流动唯一的区别在于U动量方程中多了一个源项F,以模拟压力驱动的影响。 1 离散形式 u-动量方程的离散形式为: 离散v动量方程: 离散压力泊松方程: ...
二维拉普拉斯方程为: 拉普拉斯方程通常采用中心差分进行离散。离散方程为: 整理为迭代形式: 注: 拉普拉斯方程是一个稳态模型。 ” 计算区域内部初始条件,边界条件为: 对于此边界条件和初始条件,可以有解析解: 代码 using PyPlot...
Poisson方程的表达式为: 与Laplace方程不同,Poisson方程带有源项。 1 方程离散 Poisson的离散方式与Laplace方程类似: 改成迭代式形式为: 2 初始值与边界值 假设计算区域初始条件下。四个边界上。 对于源项...
二维扩散问题控制方程可写出下面形式: 这里时间项采用向前差分,空间项均采用中心差分,很容易写出离散方程: 同样写出待求项: 初始条件及边界条件见代码。 using PyPlot nx = 101ny = 101nu = 0.2dx = 2 ...
二维Burgers方程描述为: 对其进行离散,可表示为: 整理成迭代形式为: Julia代码 using PyPlotmatplotlib.use("TkAgg") nx = 41ny = 41nt = 120c = 1dx = 2 / (...
前面的案例大多数是一维的问题,从现在开始我们进入二维的世界。 事实上将一维问题扩展到二维甚至三维都是非常简单的,采用相同的思路。在2D空间中,结构网格可定义为: 注: 注意这里所提到的结构网格,我们在后面还会详细介绍。 ” 因此,可定义一阶...
本文描述利用Julia计算二维非线性对流问题。 二维非线性对流控制方程为: 这里时间项采用向前差分,空间项采用向后差分,离散方程可写成以下格式: 式中,i为x方向角标,j为y方向角标,n为时间项角标。 可得待求项: 采用初始条件: 其他位置...
本文简单描述Julia中的数组操作。 1 数组操作 在计算量集中的程序中,使用numpy内置的函数操作能够有效地提高计算性能。下面来举一个例子,考虑到CFD中经常会遇到如下的迭代式: 假设给定初始值,可以通过迭代计算得到的值。 采用迭代方法...
本文描述利用Julia求解计算一维扩散方程。一维扩散方程为: 与前面方程不同的地方在于此方程包含二阶导数,因此首先对二阶导数进行离散。 采用中心差分格式对二阶导数进行离散。 考虑泰勒展开式: 两式相加,可得到二阶导数项: 改变排列顺序,可得...
本次利用Julia求解一维Burger方程。关于Burgers方程的具体描述,可以参阅维基百科。一维Burgers方程描述为: Burger方程中同时包含了对流项与扩散项,式中u为速度,为介质粘度。 对时间项采用向前差分,对空间项采用向后差...
一维非线性对流问题的控制方程为: 采用时间向前空间向后差分格式进行离散,其离散方程为: 改写为迭代形式为: 注: 此处的离散格式为显式,也可以尝试改成其它差分格式(如时间向后、空间向前、中心差分等)进行离散。若采用隐式方式可能会涉及到代数方...
在前面对流问题中,我们发现当网格网格数量增加时,数值计算会出现非物理解。 这里先写一个将网格数量作为参数的函数,以此来研究网格数量对计算结果的影响。 初始计算代码如下所示,这里采用固定的时间步长0.025 s。 using PyPlotus...
本系列改编自CFD Python,亦即12 steps to Navier-Stokes。 该系列是一个学习计算流体动力学基础的实用模块,通过编制计算机程序求解描述流体流动物理的基本偏微分方程。系列来自于波士顿大学机械工程系Lorena B...
一维线性对流问题的控制方程为: 对该控制方程时间项采用向前差分,对流项采用向后差分,控制方程可离散为以下形式: 写成迭代形式为: 利用Julia进行计算,代码如下所示。 # 使用PyPlot模块进行图形绘制,这个模块不是Julia的内置模块...
本文利用有限差分法计算求解二维Burger方程。 二维Burger方程形式为: 离散方程可写成: 转换形式可以表达为: 用代码实现实际上很简单。 nx = 41ny = 41nt = 120c = 1dx = 2 / (nx - 1)dy ...
二维扩散问题控制方程可写成下面形式: 这里时间项采用向前差分,空间项均采用中心差分,很容易写出离散方程: 同样写出待求项: 初始条件及边界条件见代码。 import numpy as npimport matplotlib.pyplot a...