We have an exciting announcement about badges coming in May 2025. Until then, we will temporarily stop issuing new badges for course completions and certifications. However, all completions will be recorded and fulfilled after May 2025.
流体全般

流体全般

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

    • 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 の値がゼロに近い値になれば収束したと判断できます。