epsilon边界场的问题
-
// Update epsilon and G at the wall epsilon_.boundaryField().updateCoeffs(); Info<<"epsilon_.boundaryField()[2][10]**"<<epsilon_.boundaryField()[2][10]<<endl; Info<<"epsilon_.boundaryField()[2]**"<<epsilon_.boundaryField()[2]<<endl;
在对epsilon的边界值进行输出时,epsilon_.boundaryField()[2]为编号为2边界上所有面的epsilon值列表,该边界有223个face,打算将该边界第11个face上的epsilon值输出,但输出epsilon_.boundaryField()[2][10]并不是当前的epsilon值,与输出epsilon_.boundaryField()[2]其中第11个值不同,而是上次迭代时第11个face上的epsilon值,这是怎么回事?
-
很奇怪,如果输出湍流粘性系数 nut_.boundaryField()[2],其中的第11个值与nut_.boundaryField()[2][10]是相等的,为当前面上的值。epsilon为什么不是?
-
找到原因了,extend 4.0 epsilon的壁面函数计算壁面epsilon使用了refvalue()这个函数,epsilon_.boundaryField().updateCoeffs() 执行完后,第一层网格单元的值就得到了更新,但由于壁面epsilon使用了refvalue(),因此实际壁面边界上的value还是上一次迭代的值,在solve(epsEqn)后,才将第一层网格单元的值赋值给了壁面,壁面的值才得到了更新。
-
@我是河滩 输出边界上的值列表可看出