流体全般

流体全般

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

    • FAQFAQ
      Participant

      定常計算の場合、質量バランスのチェックはReport->Fluxes->mass flow rateのトータルの値がゼロであるかどうか(質量ソース項がある場合は質量ソースを引いたものがゼロであるかどうか)で確認します。 ∑Mass flow rate(境界) – ∫質量ソースdv = 0.0 [kg/s] 非定常計算の場合は、”’解析領域内の質量変化量 = 総流入流出量 + 解析領域内の質量ソース”’になる必要があります。 Δ∫ρdv/dt = ∑Mass flow rate(境界) – ∫質量ソースdv [kg/s] ==サンプルUDF== 以下のUDFは単相流で、単成分で、質量ソースなしの簡単なサンプルです。 DEFINE_EXECUTE_AT_END(execute_at_end) { Domain *d = Get_Domain(1); Thread *t; real dt=CURRENT_TIMESTEP; /* 各時間ステップサイズ [s] */ real dt_mass; /* 各時間ステップ毎の解析領域内の質量変化量 [kg]*/ real mass_system; /* 初期の解析領域内の総質量 [kg] */ real total_mflux = 0.0; /* ∑Mass flow rate(境界) [kg/s] */ real total_mv = 0.0;   /* 解析領域内の総質量 [kg] */  thread_loop_f(t,d) { if (BOUNDARY_FACE_THREAD_P(t)) { begin_f_loop(f,t){ total_mflux += F_FLUX(f,t);/*[kg/s]*/ }end_f_loop(f,t) } } thread_loop_c(t,d) { begin_c_loop(c,t){ total_mv += C_R(c,t)*C_VOLUME(c,t); }end_c_loop(c,t) } if (CURRENT_TIME == 0.0) { dt_mass=0.0; }else{ dt_mass = total_mv – mass_system; } mass_system = total_mv; Message(“converge: %en”,(total_mflux*CURRENT_TIMESTEP+dt_mass)); } 最終的には、total_mflux*CURRENT_TIMESTEP+dt_mass の値がゼロに近い値になれば収束したと判断できます。