20170921

20170921

8:20 11:40 2:50 + 0:30 = 3:20


Case 1

重新测试均匀流算例,发散,不知道哪里改错了。
查看在另一台服务器上的程序发现,昨天测试算例有误。

cell.fT[i][j] = aTP*cell.fBP[i][j] - bTP*cell.fT[i][j] + cell.DtSlashVolume*cell.fFlux[i][j];
cell.gT[i][j] = aTP*cell.gBP[i][j] - bTP*cell.gT[i][j] + cell.DtSlashVolume*cell.gFlux[i][j];
cell.fT[i][j] = aTP*cell.fBP[i][j] - bTP*cell.fT[i][j] + 4.0*dt*cell.fFlux[i][j];
cell.gT[i][j] = aTP*cell.gBP[i][j] - bTP*cell.gT[i][j] + 4.0*dt*cell.gFlux[i][j];

昨天的算例固定cell volume为0.25,所以dt/volume = 4.0*dt,但是1、2行的内容应该注释掉,昨天测试不发散的算例都没有注释1、2行,这就意味着,fT被更新了两次,结果错误。

Case 2

注释上述1、2行代码,更新网格文件,保证格点坐标无误差,重新测试均匀流,初始化为激波结构上游平衡态,164步之后监测点发散,与之前结果不同的是,fT, fh在46步到145值恒定为9.184982020200943e-68 ,gT, gh在52步到145值恒定为5.487069988109647e-68,之后出现振荡,进而发散。


14:20 18:00 3:10


Case 3

Case 31 ubuntu001
  • 出现振荡的分布函数基本都位于速度空间的边缘,绝对值较大,在更新界面通量时,并没有乘以时间,而是在更新fT的时候将通量乘以dt/V,推测是fh乘以大数引入了机器误差,所以将dt移到xi_n_dS中,限制与fh相乘的值。
  • 跳过宏观量更新,将xi_n_dS的值乘以小数dt,结果发散。
  • 跳过宏观量更新,修改界面法矢量求解方法,不归一化,220步发散。
  • 修改监测点。
Case 32 ubuntu002
  • 跳过宏观量更新,界面分布函数和格心分布函数设为定值,系数保持恒定,fT在160步出现振荡,gT在219步未发生振荡。
  • 添加通量输出函数。
  • 添加监测点周围单元fT,gT的输出。
  • 重新测试,监测点位置不佳,更换监测点(12.75,0.25,199,3)。
  • 将xi_n_dS的绝对值设为1,符号保持不变,if(xi·n >=0) 1 else -1
Case 33 ubuntu003
  • 跳过通量更新,保持宏观量更新,系数保持恒定,2500步分布函数保持恒定。

20:20 22:30


你可能感兴趣的:(20170921)