20170921

1712 ワード

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が2回更新されたことを意味し、結果が間違っています.

Case 2


上記1、2行のコードを注記し、グリッドファイルを更新し、グリッド座標に誤差がないことを保証し、均一な流れを再テストし、励起波構造の上流平衡状態に初期化し、164ステップ後にポイント発散を監視し、以前の結果とは異なり、fT、fhは46ステップから145ステップで9.184982020200943 e-68に一定し、gT、ghは52ステップから145ステップで5.48769988109647 e-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