diff --git a/ProcessLib/TH2M/TH2MFEM-impl.h b/ProcessLib/TH2M/TH2MFEM-impl.h index 56c65416ba6c9bf73ec25a80b1d5c50ed0c960a7..686f291c91d17a86ee350fdd6e39ad60d5c330f4 100644 --- a/ProcessLib/TH2M/TH2MFEM-impl.h +++ b/ProcessLib/TH2M/TH2MFEM-impl.h @@ -565,14 +565,14 @@ void TH2MLocalAssembler< auto const rho_u_eff_dot = (ip.rho_u_eff - ip.rho_u_eff_prev) / dt; - auto const k_over_mu_G = k_S * ip.k_rel_G / ip.muGR; - auto const k_over_mu_L = k_S * ip.k_rel_L / ip.muLR; + auto const k_over_mu_G = (k_S * ip.k_rel_G / ip.muGR).eval(); + auto const k_over_mu_L = (k_S * ip.k_rel_L / ip.muLR).eval(); GlobalDimVectorType const w_GS = k_over_mu_G * ip.rhoGR * b - k_over_mu_G * gradpGR; GlobalDimVectorType const w_LS = k_over_mu_L * gradpCap + - k_over_mu_L * ip.rhoGR * b - + k_over_mu_L * ip.rhoLR * b - k_over_mu_L * gradpGR; // --------------------------------------------------------------------- @@ -598,16 +598,20 @@ void TH2MLocalAssembler< MCT.noalias() -= NpT * rho_C_FR * (alpha_B - phi) * beta_T_SR * Np * w; MCu.noalias() += NpT * rho_C_FR * alpha_B * mT * Bu * w; - auto const advection_C_G = ip.rhoCGR * k_over_mu_G; - auto const advection_C_L = ip.rhoCLR * k_over_mu_L; - auto const diffusion_C_G_p = phi_G * ip.rhoGR * D_C_G * ip.dxmCG_dpGR; - auto const diffusion_C_L_p = phi_L * ip.rhoLR * D_C_L * ip.dxmCL_dpLR; - auto const diffusion_C_G_T = phi_G * ip.rhoGR * D_C_G * ip.dxmCG_dT; - auto const diffusion_C_L_T = phi_L * ip.rhoLR * D_C_L * ip.dxmCL_dT; - - auto const advection_C = advection_C_G + advection_C_L; - auto const diffusion_C_p = diffusion_C_G_p + diffusion_C_L_p; - auto const diffusion_C_T = diffusion_C_G_T + diffusion_C_L_T; + auto const advection_C_G = (ip.rhoCGR * k_over_mu_G).eval(); + auto const advection_C_L = (ip.rhoCLR * k_over_mu_L).eval(); + auto const diffusion_C_G_p = + (phi_G * ip.rhoGR * D_C_G * ip.dxmCG_dpGR).eval(); + auto const diffusion_C_L_p = + (phi_L * ip.rhoLR * D_C_L * ip.dxmCL_dpLR).eval(); + auto const diffusion_C_G_T = + (phi_G * ip.rhoGR * D_C_G * ip.dxmCG_dT).eval(); + auto const diffusion_C_L_T = + (phi_L * ip.rhoLR * D_C_L * ip.dxmCL_dT).eval(); + + auto const advection_C = (advection_C_G + advection_C_L).eval(); + auto const diffusion_C_p = (diffusion_C_G_p + diffusion_C_L_p).eval(); + auto const diffusion_C_T = (diffusion_C_G_T + diffusion_C_L_T).eval(); LCpG.noalias() += gradNpT * (advection_C + diffusion_C_p) * gradNp * w; @@ -655,16 +659,19 @@ void TH2MLocalAssembler< MWu.noalias() += NpT * rho_W_FR * alpha_B * mT * Bu * w; - auto const advection_W_G = ip.rhoWGR * k_over_mu_G; - auto const advection_W_L = ip.rhoWLR * k_over_mu_L; - auto const diffusion_W_G_p = phi_G * ip.rhoGR * D_W_G * ip.dxmWG_dpGR; - auto const diffusion_W_L_p = phi_L * ip.rhoLR * D_W_L * ip.dxmWL_dpLR; - auto const diffusion_W_G_T = phi_G * ip.rhoGR * D_W_G * ip.dxmWG_dT; - auto const diffusion_W_L_T = phi_L * ip.rhoLR * D_W_L * ip.dxmWL_dT; - - auto const advection_W = advection_W_G + advection_W_L; - auto const diffusion_W_p = diffusion_W_G_p + diffusion_W_L_p; - auto const diffusion_W_T = diffusion_W_G_T + diffusion_W_L_T; + auto const advection_W_G = (ip.rhoWGR * k_over_mu_G).eval(); + auto const advection_W_L = (ip.rhoWLR * k_over_mu_L).eval(); + auto const diffusion_W_G_p = + (phi_G * ip.rhoGR * D_W_G * ip.dxmWG_dpGR).eval(); + auto const diffusion_W_L_p = + (phi_L * ip.rhoLR * D_W_L * ip.dxmWL_dpLR).eval(); + auto const diffusion_W_G_T = + (phi_G * ip.rhoGR * D_W_G * ip.dxmWG_dT).eval(); + auto const diffusion_W_L_T = (phi_L * ip.rhoLR * D_W_L * ip.dxmWL_dT).eval(); + + auto const advection_W = (advection_W_G + advection_W_L).eval(); + auto const diffusion_W_p = (diffusion_W_G_p + diffusion_W_L_p).eval(); + auto const diffusion_W_T = (diffusion_W_G_T + diffusion_W_L_T).eval(); LWpG.noalias() += gradNpT * (advection_W + diffusion_W_p) * gradNp * w; diff --git a/Tests/Data/TH2M/T/T_1d_dirichlet/T_1d_dirichlet.prj b/Tests/Data/TH2M/T/T_1d_dirichlet/T_1d_dirichlet.prj index 4827fb45fa3185892497da17a30a37167e689f1e..f81e1ed03299aec4288542f9d6f3b9545513ec8c 100644 --- a/Tests/Data/TH2M/T/T_1d_dirichlet/T_1d_dirichlet.prj +++ b/Tests/Data/TH2M/T/T_1d_dirichlet/T_1d_dirichlet.prj @@ -279,13 +279,6 @@ <value>100000</value> </parameter> - <parameter> - <name>pGR_bc_bottom</name> - <type>Constant</type> - <value>100100</value> - </parameter> - - <parameter> <name>pCap_ic</name> <type>Constant</type> @@ -304,73 +297,14 @@ <value>333.15</value> </parameter> - <parameter> - <name>ux_bc_right</name> - <type>Constant</type> - <value>0.4</value> - </parameter> - - <parameter> - <name>sigma_xx_right</name> - <type>Constant</type> - <value>100.0</value> - </parameter> - <parameter> <name>dirichlet0</name> <type>Constant</type> <value>0</value> </parameter> - <parameter> - <name>neumann</name> - <type>Constant</type> - <value>-100100</value> - </parameter> - - <parameter> - <name>zero</name> - <type>Constant</type> - <value>0</value> - </parameter> - - <parameter> - <name>displacementRight</name> - <type>Constant</type> - <value>-0.05</value> - </parameter> - - <parameter> - <name>displacementRamp</name> - <type>CurveScaled</type> - <curve>timeRamp</curve> - <parameter>displacementRight</parameter> - </parameter> - </parameters> - <curves> - - <curve> - <name>timeRamp_temperature</name> - <coords>0 86400 1.0e99 </coords> - <values>1. 1. 1. </values> - </curve> - - <curve> - <name>timeRamp_pressure</name> - <coords>0 1 3 5</coords> - <values>1. 1. 1.05 1.</values> - </curve> - - <curve> - <name>timeRamp</name> - <coords>0 1000 10000</coords> - <values>0 1 1</values> - </curve> - - </curves> - <!-- ## Displacement equation ##############################################--> <process_variables> <process_variable>