柯朗数(Courant number)研究
(2017-07-11 15:50:08)
标签:
柯朗数courantnumber |
分类: CFD |
在数值计算过程中,对于计算结果的准确性和效率有很高的要求,但是这两者之间往往互相矛盾;而使用柯朗数可用于平衡两者。
1、柯朗数的定义:
其中,t是时间步长,s是网格在水平方向的间距。
柯朗数的意义在于表示了在单位时间步长中,有多少个网格的信息发生了移动。经过正确的调整,可以更好地加速收敛和增强解的稳定性。
2、C语言实现柯朗数计算:
依据上述方程,在实际计算中采用C语言实现计算固液界面上的柯朗数,结果如下:
1 void localCourantNumber()
2 {
3
4
5 double rhoe, rhon, rhot;
6
7 for (i = 2; i <= nxm - 1; i++) //Calculation of local Courant number only at internal faces
8 {
9 ieast = i + 1;
10 dxpe = xc[ieast] - xc[i];
11 fxe = (xf[i] - xc[i]) / dxpe;
12 fxp = 1.0 - fxe;
13
14 for (j = 2; j <= nym; j++)
15 {
16 jnorth = j + 1;
17 dypn = yc[jnorth] - yc[j];
18 fyn = (yf[j] - yc[j]) / dypn;
19 fyp = 1.0 - fyn;
20
21 for (k = 2; k <= nzm; k++)
22 {
23 ktop = k + 1;
24 dzpt = zc[ktop] - zc[k];
25 fzt = (zf[k] - zc[k]) / dzpt;
26 fzp = 1.0 - fzt;
27
28
29
30 //Calculating density at cell interface
31 rhoe = fxp * rho[i][j][k] + fxe * rho[ieast][j][k];
32
33
34
35 
加载中…