20170921

作者: 依杖听江声 | 来源:发表于2017-09-22 17:14 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/hsbfextx.html