流体全般

流体全般

非定常計算の熱バランスのチェック

    • FAQFAQ
      Participant

      このFAQでは非定常熱バランスについて説明します。 定常計算では熱バランスのチェックはReport->Fluxes->Heat transfer rateの値が解析領域内の熱ソースに等しいかどうかで判断します。 熱ソースの例としてはDPM粒子の蒸発潜熱などがあげられます。(化学種モデルの反応熱は熱ソースに加算する必要はありません) ∑Heat transfer rate(境界) -∫熱ソースdv = 0.0 [W] 非定常計算の場合は、”’解析領域内のエネルギー変化量 = 境界での熱流束 – 解析領域内の熱ソース”’となる必要があります。 Δ∫ρEdv/dt = ∑Heat transfer rate(境界) – ∫熱ソースdv [W] E= h – P/ρ + u^2/2 [J/kg] ただし非圧縮の場合、圧力仕事項と運動エネルギー項は考慮しないので、E=hとなります。 ==UDFサンプル== 以下のUDFは単相、単一化学種、熱ソースなしの簡単なサンプルです。 #include DEFINE_EXECUTE_AT_END(execute_at_end) { Domain *d = Get_Domain(1); Thread *t; real dt=CURRENT_TIMESTEP; /* 各時間ステップサイズ  [s] */ real total_heat_f= 0.0; /* ∑Heat transfer rate(境界) [W] */ real sum0 = 0.0;   /* 解析領域内の総エネルギー [J] */  real sum1 = 0.0; /* sum1:前タイムステップの解析領域内の総エネルギー[J] */ real dt_heat=0.0; /* dt_heat:解析領域内の熱ソースによるエネルギーの変化量[W] */ thread_loop_f(t,d) { if (BOUNDARY_FACE_THREAD_P(t)) { begin_f_loop(f,t){ total_heat_f += BOUNDARY_HEAT_FLUX(f,t);/*[W]*/ }end_f_loop(f,t) } } thread_loop_c(t,d) { begin_c_loop(c,t){ sum0 +=C_R(c,t)* C_VOLUME(c,t)* (C_H(c,t) – ABS_P(C_P(c,t), op_pres)/C_R(c,t)); }end_c_loop(c,t) } if (CURRENT_TIME == 0.0) { dt_heat=0.0; }else{ dt_heat = sum0 – sum1; } sum1 = sum0; Message(“converge: %lf n”,((total_heat_f)*dt) -dt_heat)); } 注: *C_Hは(Cp(T-298.15)+u^2/2)の値です。 *最終的には各時間ステップ後、total_heat_f * CURRENT_TIMESTEP – dt_heatの値がゼロに近い値になれば収束したと判断できます。