public C_STR___U(C_IFO objIFO, C_GEO___U objGeo, CCrSc objCrSc) { m_fSigma_N = objIFO.FN_Ed / objCrSc.m_fA; float fSigma_My_f = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fh / 2.0f; float fSigma_My_w = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fc_w / 2.0f; float fSigma_Mz_fA = objIFO.FM_z_Ed / objCrSc.m_fI_z * (objCrSc.m_fy_S - objGeo.m_ft_w - objGeo.m_fr); float fSigma_Mz_fB = objIFO.FM_z_Ed / objCrSc.m_fI_z * (objCrSc.m_fy_S - objGeo.m_fb); float fSigma_Mz_wa = objIFO.FM_z_Ed / objCrSc.m_fI_z * objCrSc.m_fy_S; float fSigma_Mz_wi = objIFO.FM_z_Ed / objCrSc.m_fI_z * (objCrSc.m_fy_S - objGeo.m_ft_w); // Flanges m_fSigma_fuA = m_fSigma_N - fSigma_My_f + fSigma_Mz_fA; m_fSigma_fuB = m_fSigma_N - fSigma_My_f + fSigma_Mz_fB; m_fSigma_fbA = m_fSigma_N + fSigma_My_f + fSigma_Mz_fA; m_fSigma_fbB = m_fSigma_N + fSigma_My_f + fSigma_Mz_fB; m_fSigma_fA = Math.Min(m_fSigma_fuA, m_fSigma_fbA); m_fSigma_fB = Math.Min(m_fSigma_fuB, m_fSigma_fbB); // Web m_fSigma_wA = m_fSigma_N - fSigma_My_w + Math.Min(fSigma_Mz_wa, fSigma_Mz_wi); m_fSigma_wB = m_fSigma_N + fSigma_My_w + Math.Min(fSigma_Mz_wa, fSigma_Mz_wi); // 5.5.2(9) m_fSigma_com_Ed = Math.Max(Math.Abs(Math.Min(m_fSigma_fA, m_fSigma_fB)), 0.0f); }
public C__HL4(CCrSc objCrSc, C_GEO__HL objGeo, C_IFO objIFO, C_STR__HL objStr, C__HL objC_HL, C_MAT__HL objMat, C_ADD__HL objAdd, ECrScPrType1 eProd) { if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm) GetCrSc4_HLR(objCrSc, objGeo, objIFO, objStr, objC_HL, objMat, objAdd); else GetCrSc4_HLW(objCrSc, objGeo, objIFO, objStr, objC_HL, objMat, objAdd); }
public C___U(C_GEO___U objGeo, C_MAT___U objMat, C_IFO objIFO, C_NAD objNAD, C_STR___U objStr) { // Table 5.2 GetClassTab52_OUT(objStr.m_fSigma_fuA, objStr.m_fSigma_fuB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, m_fct_f, m_fLambda_f_1, m_fLambda_f_2, m_fLambda_f_3, m_iClass_fu, objMat.BStainlessS); GetClassTab52_OUT(objStr.m_fSigma_fbA, objStr.m_fSigma_fbB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, m_fct_f, m_fLambda_f_1, m_fLambda_f_2, m_fLambda_f_3, m_iClass_fb, objMat.BStainlessS); m_iClass_f = Math.Max(m_iClass_fu, m_iClass_fb); float fF_f = objGeo.m_fb * objGeo.m_ft_f * objMat.m_ff_y_f / objNAD.FGamma_M0; float fF_w = objGeo.m_fc_w * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0; // Table 5.2 GetClassTab52_INT(objStr.m_fSigma_wA, objStr.m_fSigma_wB, objStr.m_fSigma_N, fF_f, fF_w, fF_f, objIFO.FN_Ed, objGeo.m_fc_w, objGeo.m_ft_w, objMat.m_ff_y_w / objNAD.FGamma_M0, objMat.m_fEps_w, m_iKlassif_Psi_Fix_Sigma_N, m_bKlassif_Eps_Kl3_Sigma_com, objStr.m_fSigma_com_Ed, m_fct_w, m_fAlpha_w, m_fSigma_fyd_1, m_fSigma_fyd_2, m_fPsi_w, m_fLambda_w_1, m_fLambda_w_2, m_fLambda_w_3, m_iClass_w, objMat.BStainlessS); m_iClass = Math.Max(m_iClass_f, m_iClass_w); }
public C___I4(CCrSc objCrSc, C_GEO___I objGeo, C_IFO objIFO, C_STR___I objStr, C___I objC__I, C_MAT___I objMat, C_ADD___I objAdd, ECrScSymmetry1 eSym) { if (eSym == ECrScSymmetry1.eDS) GetCrSc4_ID(objCrSc, objGeo, objIFO, objStr, objC__I, objMat, objAdd); else GetCrSc4_IM(objCrSc, objGeo, objIFO, objStr, objC__I, objMat, objAdd); }
public C_STR__TU(C_IFO objIFO, C_GEO__TU objGeo, CCrSc objCrSc) { float m_fSigma_N = objIFO.FN_Ed / objCrSc.m_fA; float m_fSigma_My = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fd / 2.0f; float m_fSigma_Mz = objIFO.FM_z_Ed / objCrSc.m_fI_z * objGeo.m_fd / 2.0f; m_fSigma = m_fSigma_N - Math.Max(Math.Abs(m_fSigma_My), Math.Abs(m_fSigma_Mz)); }
public C_STR___L(C_IFO objIFO, C_GEO___L objGeo, CCrSc objCrSc, ECrScSymmetry1 eSym) { m_fSP_y_par[0] = -objCrSc.m_fy_S; m_fSP_z_par[0] = objCrSc.m_fz_S - objGeo.m_fh; m_fSP_y_par[1] = -objCrSc.m_fy_S + objGeo.m_ft_a; m_fSP_z_par[1] = objCrSc.m_fz_S - objGeo.m_fh; m_fSP_y_par[2] = -objCrSc.m_fy_S; m_fSP_z_par[2] = objCrSc.m_fz_S - objGeo.m_ft_b - objGeo.m_fr; m_fSP_y_par[3] = -objCrSc.m_fy_S; m_fSP_z_par[3] = objCrSc.m_fz_S; m_fSP_y_par[4] = -objCrSc.m_fy_S + objGeo.m_ft_a + objGeo.m_fr; m_fSP_z_par[4] = objCrSc.m_fz_S; m_fSP_y_par[5] = -objCrSc.m_fy_S + objGeo.m_fb; m_fSP_z_par[5] = objCrSc.m_fz_S; m_fSP_y_par[6] = -objCrSc.m_fy_S + objGeo.m_fb; m_fSP_z_par[6] = objCrSc.m_fz_S - objGeo.m_ft_b; float m_fSigma_x_N_Ed = objIFO.FN_Ed / objCrSc.m_fA; float m_fSigma_x_Ed_min = float.MaxValue; for (int iSP = 0; iSP < 7; iSP++) { m_fSP_y[iSP] = m_fSP_y_par[iSP] * (float)Math.Cos(objGeo.m_fAlpha_Axis) + m_fSP_z_par[iSP] * (float)Math.Sin(objGeo.m_fAlpha_Axis); m_fSP_z[iSP] = -m_fSP_y_par[iSP] * (float)Math.Sin(objGeo.m_fAlpha_Axis) + m_fSP_z_par[iSP] * (float)Math.Cos(objGeo.m_fAlpha_Axis); float m_fSP_Sigma_x_My_Ed = objIFO.FM_y_Ed / objCrSc.m_fI_y * m_fSP_z[iSP]; float m_fSP_Sigma_x_Mz_Ed = -objIFO.FM_z_Ed / objCrSc.m_fI_z * m_fSP_y[iSP]; m_fSP_Sigma_x_Ed[iSP] = m_fSigma_x_N_Ed + m_fSP_Sigma_x_My_Ed + m_fSP_Sigma_x_Mz_Ed; m_fSigma_x_Ed_min = Math.Min(m_fSigma_x_Ed_min, m_fSP_Sigma_x_Ed[iSP]); } }
public C___U4(CCrSc objCrSc, C_GEO___U objGeo, C_IFO objIFO, C_STR___U objStr, C___U objC__U, C_MAT___U objMat, C_ADD___U objAdd) { float fA_eff_f, fz_eff_c_f, fy_eff_c_f, fI_eff_y_f, fI_eff_z_f; // Web float fz_eff_c, fy_eff_c; if (objC__U.m_iClass_f == 4) { // EN 1993-1-5, Table 4.2 GetEff_OUT(objStr.m_fSigma_fuA, objStr.m_fSigma_fuB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, fSigma_1_fu, fSigma_2_fu, fPsi_fu, fk_Sigma_fu, fLambda_rel_p_fu, fRho_fu, fb_eff_fu, fb_red_fu, fb_em_fu, objMat.BStainlessS); // EN 1993-1-5, Table 4.2 GetEff_OUT(objStr.m_fSigma_fbA, objStr.m_fSigma_fbB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, fSigma_1_fb, fSigma_2_fb, fPsi_fb, fk_Sigma_fb, fLambda_rel_p_fb, fRho_fb, fb_eff_fb, fb_red_fb, fb_em_fb, objMat.BStainlessS); fA_eff_f = objCrSc.m_fA - (fb_red_fu + fb_red_fb) * objGeo.m_ft_f; fz_eff_c_f = (objCrSc.m_fA * objGeo.m_fh / 2.0f - fb_red_fu * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f - fb_red_fb * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) ) / fA_eff_f; fy_eff_c_f = (objCrSc.m_fA * objCrSc.m_fy_S - fb_red_fu * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fu) - fb_red_fb * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fb) ) / fA_eff_f; fI_eff_y_f = objCrSc.m_fI_y + objCrSc.m_fA * sqr(fz_eff_c_f - objGeo.m_fh / 2.0f) - fb_red_fu * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fu * objGeo.m_ft_f * sqr(fz_eff_c_f - objGeo.m_ft_f / 2.0f) - fb_red_fb * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f / 2.0f); fI_eff_z_f = objCrSc.m_fI_z + objCrSc.m_fA * sqr(fy_eff_c_f - objCrSc.m_fy_S) - (float)Math.Pow(fb_red_fu, 3) * objGeo.m_ft_f / 12.0f - fb_red_fu * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c_f - fb_em_fu) - (float)Math.Pow(fb_red_fb, 3) * objGeo.m_ft_f / 12.0f - fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c_f - fb_em_fb); } else { fb_red_fu = 0.0f; fb_red_fb = 0.0f; fb_em_fu = 0.0f; fb_em_fb = 0.0f; fA_eff_f = objCrSc.m_fA; fz_eff_c_f = objGeo.m_fh / 2.0f; fy_eff_c_f = objCrSc.m_fy_S; fI_eff_y_f = objCrSc.m_fI_y; fI_eff_z_f = objCrSc.m_fI_z; } if(objC__U.m_iClass_w == 4) { float fSigma_N = objIFO.FN_Ed / fA_eff_f; float fSigma_My_wo = objIFO.FM_y_Ed / fI_eff_y_f * (fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr); float fSigma_My_wu = objIFO.FM_y_Ed / fI_eff_y_f * (objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr); float fSigma_Mz_wa = objIFO.FM_z_Ed / fI_eff_z_f * fy_eff_c_f; float fSigma_Mz_wi = objIFO.FM_z_Ed / fI_eff_z_f * (fy_eff_c_f - objGeo.m_ft_w); objStr.m_fSigma_wA = fSigma_N - fSigma_My_wo + Math.Min(fSigma_Mz_wa, fSigma_Mz_wi); objStr.m_fSigma_wB = fSigma_N + fSigma_My_wu + Math.Min(fSigma_Mz_wa, fSigma_Mz_wi); // EN 1993-1-5, Table 4.1 GetEff_INT(objStr.m_fSigma_wA, objStr.m_fSigma_wB, objGeo.m_fc_w, objGeo.m_ft_w, objMat.m_fEps_w, fSigma_1_w, fSigma_2_w, fPsi_w, fk_Sigma_w, fLambda_rel_p_w, fRho_w, fb_eff_w, fb_e1_w, fb_e2_w, fb_red_w, fb_em_w, objMat.BStainlessS); m_fA_eff = fA_eff_f - fb_red_w * objGeo.m_ft_w; fz_eff_c = (objCrSc.m_fA * objGeo.m_fh / 2.0f - fb_red_fu * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f - fb_red_fb * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) - fb_red_w * objGeo.m_ft_w * (fb_em_w + objGeo.m_fr + objGeo.m_ft_f) ) / m_fA_eff; fy_eff_c = (objCrSc.m_fA * objCrSc.m_fy_S - fb_red_fu * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fu) - fb_red_fb * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fb) - fb_red_w * objGeo.m_ft_w * objGeo.m_ft_w / 2.0f ) / m_fA_eff; m_fI_eff_y = objCrSc.m_fI_y + objCrSc.m_fA * sqr(fz_eff_c - objGeo.m_fh / 2.0f) - fb_red_fu * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fu * objGeo.m_ft_f * sqr(fz_eff_c - objGeo.m_ft_f / 2.0f) - fb_red_fb * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_f / 2.0f) - (float)Math.Pow(fb_red_w, 3) * objGeo.m_ft_w / 12.0f - fb_red_w * objGeo.m_ft_w * sqr(fz_eff_c - objGeo.m_ft_f - fb_em_w - objGeo.m_fr); m_fI_eff_z = objCrSc.m_fI_z + objCrSc.m_fA * sqr(fy_eff_c - objCrSc.m_fy_S) - (float)Math.Pow(fb_red_fu, 3) * objGeo.m_ft_f / 12.0f - fb_red_fu * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c - fb_em_fu) - (float)Math.Pow(fb_red_fb, 3) * objGeo.m_ft_f / 12.0f - fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c - fb_em_fb) - (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_w / 12.0f - objGeo.m_ft_w * fb_red_w * sqr(fy_eff_c - objGeo.m_ft_w / 2.0f); } else { fb_red_w = 0.0f; m_fA_eff = fA_eff_f; fz_eff_c = fz_eff_c_f; fy_eff_c = fy_eff_c_f; m_fI_eff_y = fI_eff_y_f; m_fI_eff_z = fI_eff_z_f; } float fA_f_eff = objAdd.m_fA_f - (fb_red_fu + fb_red_fb) * objGeo.m_ft_f; float fA_w_eff = objAdd.m_fA_w - fb_red_w * objGeo.m_ft_w; m_fN_pl_eff = fA_f_eff * objMat.m_ff_y_f + fA_w_eff * objMat.m_ff_y_w; m_fe_Ny = fz_eff_c - objGeo.m_fh / 2.0f; m_fe_Nz = fy_eff_c - objCrSc.m_fy_S; m_fW_eff_y_min = m_fI_eff_y / Math.Max(fz_eff_c, objGeo.m_fh - fz_eff_c); m_fW_eff_z_min = m_fI_eff_z / Math.Max(fy_eff_c, objGeo.m_fb - Math.Min(fb_red_fu, fb_red_fb) - fy_eff_c); }
public C_STR__HL(C_IFO objIFO, C_GEO__HL objGeo, CCrSc objCrSc, ECrScPrType1 eProd) { m_fSigma_N = objIFO.FN_Ed / objCrSc.m_fA; if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm) { float fSigma_My_f = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fh / 2.0f; float fSigma_Mz_f = objIFO.FM_z_Ed / objCrSc.m_fI_z * objGeo.m_fc_f / 2.0f; float fSigma_My_w = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fc_w / 2.0f; float fSigma_Mz_w = objIFO.FM_z_Ed / objCrSc.m_fI_z * objGeo.m_fb / 2.0f; // Upper Flange m_fSigma_fuA = m_fSigma_N - fSigma_My_f + fSigma_Mz_f; m_fSigma_fuB = m_fSigma_N - fSigma_My_f - fSigma_Mz_f; // Bottom Flange m_fSigma_fbA = m_fSigma_N + fSigma_My_f + fSigma_Mz_f; m_fSigma_fbB = m_fSigma_N + fSigma_My_f - fSigma_Mz_f; // Flanges m_fSigma_fA = Math.Min(m_fSigma_fuA, m_fSigma_fbA); m_fSigma_fB = Math.Min(m_fSigma_fuB, m_fSigma_fbB); // Left Web m_fSigma_wlA = m_fSigma_N - fSigma_My_w + fSigma_Mz_w; m_fSigma_wlB = m_fSigma_N + fSigma_My_w + fSigma_Mz_w; // Right Web m_fSigma_wrA = m_fSigma_N - fSigma_My_w - fSigma_Mz_w; m_fSigma_wrB = m_fSigma_N + fSigma_My_w - fSigma_Mz_w; // Webs m_fSigma_wA = Math.Min(m_fSigma_wlA, m_fSigma_wrA); m_fSigma_wB = Math.Min(m_fSigma_wlB, m_fSigma_wrB); } else { float fSigma_My_fu = objIFO.FM_y_Ed / objCrSc.m_fI_y * objCrSc.m_fz_S; float fSigma_My_fb = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objGeo.m_fh - objCrSc.m_fz_S); float fSigma_My_wu = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objCrSc.m_fz_S - objGeo.m_ft_fu); float fSigma_My_wb = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objGeo.m_fh - objCrSc.m_fz_S - objGeo.m_ft_fb); float fSigma_Mz_w = objIFO.FM_z_Ed / objCrSc.m_fI_z * objGeo.m_fb / 2.0f; float fSigma_Mz_f = objIFO.FM_z_Ed / objCrSc.m_fI_z * (objGeo.m_fb / 2.0f - objGeo.m_ft_w); // Upper Flange m_fSigma_fuA = m_fSigma_N - fSigma_My_fu + fSigma_Mz_f; m_fSigma_fuB = m_fSigma_N - fSigma_My_fu - fSigma_Mz_f; // Bottom Flange m_fSigma_fbA = m_fSigma_N + fSigma_My_fb + fSigma_Mz_f; m_fSigma_fbB = m_fSigma_N + fSigma_My_fb - fSigma_Mz_f; // Flanges m_fSigma_fA = Math.Min(m_fSigma_fuA, m_fSigma_fbA); m_fSigma_fB = Math.Min(m_fSigma_fuB, m_fSigma_fbB); // Left Web m_fSigma_wlA = m_fSigma_N - fSigma_My_wu + fSigma_Mz_w; m_fSigma_wlB = m_fSigma_N + fSigma_My_wb + fSigma_Mz_w; // Right Web m_fSigma_wrA = m_fSigma_N - fSigma_My_wu - fSigma_Mz_w; m_fSigma_wrB = m_fSigma_N + fSigma_My_wb - fSigma_Mz_w; // Webs m_fSigma_wA = Math.Min(m_fSigma_wlA, m_fSigma_wrA); m_fSigma_wB = Math.Min(m_fSigma_wlB, m_fSigma_wrB); } // 5.5.2(9) m_fSigma_com_Ed = Math.Max(Math.Abs(Math.Min(m_fSigma_fA, m_fSigma_fB)), 0.0f); }
public C___I(C_GEO___I objGeo, C_MAT___I objMat, C_IFO objIFO, C_NAD objNAD, C_STR___I objStr, ECrScSymmetry1 eSym, ECrScPrType1 eProd) { if (eSym == ECrScSymmetry1.eDS) { // Flange GetClassTab52_OUT(objStr.m_fSigma_fA, objStr.m_fSigma_fB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, m_fct_f, m_fLambda_f_1, m_fLambda_f_2, m_fLambda_f_3, m_iClass_f, objMat.BStainlessS); float fF_f = objGeo.m_fb * objGeo.m_ft_f * objMat.m_ff_y_f / objNAD.FGamma_M0; float fF_w = objGeo.m_fc_w * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0; // Web GetClassTab52_INT(objStr.m_fSigma_wA, objStr.m_fSigma_wB, objStr.m_fSigma_N, fF_f, fF_w, fF_f, objIFO.FN_Ed, objGeo.m_fc_w, objGeo.m_ft_w, objMat.m_ff_y_w / objNAD.FGamma_M0, objMat.m_fEps_w, m_iKlassif_Psi_Fix_Sigma_N, m_bKlassif_Eps_Kl3_Sigma_com, m_fSigma_com_Ed, m_fct_w, m_fAlpha_w, m_fSigma_fyd_1, m_fSigma_fyd_2, m_fPsi_w, m_fLambda_w_1, m_fLambda_w_2, m_fLambda_w_3, m_iClass_w, objMat.BStainlessS); m_iClass = Math.Max(m_iClass_f, m_iClass_w); } else { // Upper Flange GetClassTab52_OUT(objStr.m_fSigma_fuA, objStr.m_fSigma_fuB, objGeo.m_fc_fu, objGeo.m_ft_fu, objMat.m_fEps_fu, m_fct_fu, m_fLambda_fu_1, m_fLambda_fu_2, m_fLambda_fu_3, m_iClass_fu, objMat.BStainlessS); // Bottom Flange GetClassTab52_OUT(objStr.m_fSigma_fbA, objStr.m_fSigma_fbB, objGeo.m_fc_fb, objGeo.m_ft_fb, objMat.m_fEps_fb, m_fct_fb, m_fLambda_fb_1, m_fLambda_fb_2, m_fLambda_fb_3, m_iClass_fb, objMat.BStainlessS); float fF_fu = objGeo.m_fb_fu * objGeo.m_ft_fu * objMat.m_ff_y_fu / objNAD.FGamma_M0 + objGeo.m_fr_su * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0; float fF_w = objGeo.m_fc_w * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0; float fF_fb = objGeo.m_fb_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb / objNAD.FGamma_M0 + objGeo.m_fr_sb * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0; float fF_f_com, fF_f_ten; if (objIFO.FM_y_Ed >= 0.0f) { fF_f_com = fF_fu; fF_f_ten = fF_fb; } else { fF_f_com = fF_fb; fF_f_ten = fF_fu; } // Web GetClassTab52_INT(objStr.m_fSigma_wA, objStr.m_fSigma_wB, objStr.m_fSigma_N, fF_f_com, fF_w, fF_f_ten, objIFO.FN_Ed, objGeo.m_fc_w, objGeo.m_ft_w, objMat.m_ff_y_w / objNAD.FGamma_M0, objMat.m_fEps_w, m_iKlassif_Psi_Fix_Sigma_N, m_bKlassif_Eps_Kl3_Sigma_com, m_fSigma_com_Ed, m_fct_w, m_fAlpha_w, m_fSigma_fyd_1, m_fSigma_fyd_2, m_fPsi_w, m_fLambda_w_1, m_fLambda_w_2, m_fLambda_w_3, m_iClass_w, objMat.BStainlessS); m_iClass = Math.Max(Math.Max(m_iClass_fu, m_iClass_fb), m_iClass_w); } }
void GetCrSc4_HLR(CCrSc objCrSc, C_GEO__HL objGeo, C_IFO objIFO, C_STR__HL objStr, C__HL objC_HL, C_MAT__HL objMat, C_ADD__HL objAdd) { if (objC_HL.m_iClass_fu == 4 || objC_HL.m_iClass_fb == 4) { // EN 1993-1-5,Table 4.1 GetEff_INT(objStr.m_fSigma_fuA, objStr.m_fSigma_fuB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, fSigma_1_fu, fSigma_2_fu, fPsi_fu, fk_Sigma_fu, fLambda_rel_p_fu, fRho_fu, fb_eff_fu, fb_e1_fu, fb_e2_fu, fb_red_fu, fb_em_fu, objMat.BStainlessS); // EN 1993-1-5,Table 4.1 GetEff_INT(objStr.m_fSigma_fbA, objStr.m_fSigma_fbB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, fSigma_1_fb, fSigma_2_fb, fPsi_fb, fk_Sigma_fb, fLambda_rel_p_fb, fRho_fb, fb_eff_fb, fb_e1_fb, fb_e2_fb, fb_red_fb, fb_em_fb, objMat.BStainlessS); fA_eff_f = objCrSc.m_fA - (fb_red_fu + fb_red_fb) * objGeo.m_ft_f; fz_eff_c_f = (objCrSc.m_fA * objGeo.m_fh / 2.0f - fb_red_fu * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f - fb_red_fb * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) ) / fA_eff_f; fy_eff_c_f = (objCrSc.m_fA * objGeo.m_fb / 2.0f - fb_red_fu * objGeo.m_ft_f * (objGeo.m_ft_w + objGeo.m_fr + fb_em_fu) - fb_red_fb * objGeo.m_ft_f * (objGeo.m_ft_w + objGeo.m_fr + fb_em_fb) ) / fA_eff_f; fI_eff_y_f = objCrSc.m_fI_y + objCrSc.m_fA * sqr(fz_eff_c_f - objGeo.m_fh / 2.0f) - fb_red_fu * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fu * objGeo.m_ft_f * sqr(fz_eff_c_f - objGeo.m_ft_f / 2.0f) - fb_red_fb * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f / 2.0f); fI_eff_z_f = objCrSc.m_fI_z + objCrSc.m_fA * sqr(fy_eff_c_f - objGeo.m_fb / 2.0f) - (float)Math.Pow(fb_red_fu, 3) * objGeo.m_ft_f / 12.0f - fb_red_fu * objGeo.m_ft_f * sqr(fy_eff_c_f - fb_em_fu - objGeo.m_ft_w - objGeo.m_fr) - (float)Math.Pow(fb_red_fb, 3) * objGeo.m_ft_f / 12.0f - fb_red_fb * objGeo.m_ft_f * sqr(fy_eff_c_f - fb_em_fb - objGeo.m_ft_w - objGeo.m_fr); } else { fb_red_fu = 0.0f; fb_red_fb = 0.0f; fb_em_fu = 0.0f; fb_em_fb = 0.0f; fA_eff_f = objCrSc.m_fA; fz_eff_c_f = objGeo.m_fh / 2.0f; fy_eff_c_f = objGeo.m_fb / 2.0f; fI_eff_y_f = objCrSc.m_fI_y; fI_eff_z_f = objCrSc.m_fI_z; } if (objC_HL.m_iClass_w == 4) { float fSigma_N = objIFO.FN_Ed / fA_eff_f; float fSigma_My_wo = objIFO.FM_y_Ed / fI_eff_y_f * (fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr); float fSigma_My_wu = objIFO.FM_y_Ed / fI_eff_y_f * (objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr); float fSigma_Mz_wl = objIFO.FM_z_Ed / fI_eff_z_f * (fy_eff_c_f - objGeo.m_ft_w - objGeo.m_fr); float fSigma_Mz_wr = objIFO.FM_z_Ed / fI_eff_z_f * (objGeo.m_fb - fy_eff_c_f - objGeo.m_ft_w - objGeo.m_fr); objStr.m_fSigma_wlA = fSigma_N - fSigma_My_wo + fSigma_Mz_wl; objStr.m_fSigma_wlB = fSigma_N + fSigma_My_wu + fSigma_Mz_wl; // EN 1993-1-5,Table 4.1 GetEff_INT(objStr.m_fSigma_wlA, objStr.m_fSigma_wlB, objGeo.m_fc_w, objGeo.m_ft_w, objMat.m_fEps_w, fSigma_1_wl, fSigma_2_wl, fPsi_wl, fk_Sigma_wl, fLambda_rel_p_wl, fRho_wl, fb_eff_wl, fb_e1_wl, fb_e2_wl, fb_red_wl, fb_em_wl, objMat.BStainlessS); objStr.m_fSigma_wrA = fSigma_N - fSigma_My_wo - fSigma_Mz_wl; objStr.m_fSigma_wrB = fSigma_N + fSigma_My_wu - fSigma_Mz_wl; // EN 1993-1-5,Table 4.1 GetEff_INT(objStr.m_fSigma_wrA, objStr.m_fSigma_wrB, objGeo.m_fc_w, objGeo.m_ft_w, objMat.m_fEps_w, fSigma_1_wr, fSigma_2_wr, fPsi_wr, fk_Sigma_wr, fLambda_rel_p_wr, fRho_wr, fb_eff_wr, fb_e1_wr, fb_e2_wr, fb_red_wr, fb_em_wr, objMat.BStainlessS); m_fA_eff = fA_eff_f - (fb_red_wl + fb_red_wr) * objGeo.m_ft_w; fz_eff_c = (objCrSc.m_fA * objGeo.m_fh / 2.0f - fb_red_fu * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f - fb_red_fb * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) - fb_red_wl * objGeo.m_ft_w * (fb_em_wl + objGeo.m_ft_f + objGeo.m_fr) - fb_red_wr * objGeo.m_ft_w * (fb_em_wr + objGeo.m_ft_f + objGeo.m_fr) ) / m_fA_eff; fy_eff_c = (objCrSc.m_fA * objGeo.m_fb / 2.0f - fb_red_fu * objGeo.m_ft_f * (fb_em_fu + objGeo.m_ft_w + objGeo.m_fr) - fb_red_fb * objGeo.m_ft_f * (fb_em_fb + objGeo.m_ft_w + objGeo.m_fr) - fb_red_wl * objGeo.m_ft_w * objGeo.m_ft_w / 2.0f - fb_red_wr * objGeo.m_ft_w * (objGeo.m_fb - objGeo.m_ft_w / 2.0f) ) / m_fA_eff; m_fI_eff_y = objCrSc.m_fI_y + objCrSc.m_fA * sqr(fz_eff_c - objGeo.m_fh / 2.0f) - fb_red_fu * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fu * objGeo.m_ft_f * sqr(fz_eff_c - objGeo.m_ft_f / 2.0f) - fb_red_fb * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fb * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_f / 2.0f) - (float)Math.Pow(fb_red_wl, 3) * objGeo.m_ft_w / 12.0f - fb_red_wl * objGeo.m_ft_w * sqr(fz_eff_c - fb_em_wl - objGeo.m_ft_f - objGeo.m_fr) - (float)Math.Pow(fb_red_wr, 3) * objGeo.m_ft_w / 12.0f - fb_red_wr * objGeo.m_ft_w * sqr(fz_eff_c - fb_em_wr - objGeo.m_ft_f - objGeo.m_fr); m_fI_eff_z = objCrSc.m_fI_z + objCrSc.m_fA * sqr(fy_eff_c - objGeo.m_fb / 2.0f) - (float)Math.Pow(fb_red_fu, 3) * objGeo.m_ft_f / 12.0f - fb_red_fu * objGeo.m_ft_f * sqr(fy_eff_c - fb_em_fu - objGeo.m_ft_w - objGeo.m_fr) - (float)Math.Pow(fb_red_fb, 3) * objGeo.m_ft_f / 12.0f - fb_red_fb * objGeo.m_ft_f * sqr(fy_eff_c - fb_em_fb - objGeo.m_ft_w - objGeo.m_fr) - (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_wl / 12.0f - objGeo.m_ft_w * fb_red_wl * sqr(fy_eff_c - objGeo.m_ft_w / 2.0f) - (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_wr / 12.0f - objGeo.m_ft_w * fb_red_wr * sqr(objGeo.m_fb - fy_eff_c - objGeo.m_ft_w / 2.0f); } else { fb_red_wl = 0.0f; fb_red_wr = 0.0f; m_fA_eff = fA_eff_f; fz_eff_c = fz_eff_c_f; fy_eff_c = fy_eff_c_f; m_fI_eff_y = fI_eff_y_f; m_fI_eff_z = fI_eff_z_f; } m_fA_eff = objCrSc.m_fA - (fb_red_fu + fb_red_fb + fb_red_wl + fb_red_wr) *objGeo.m_ft; m_fN_pl_eff = m_fA_eff * objMat.Ff_y; m_fe_Ny = fz_eff_c - objGeo.m_fh / 2.0f; m_fe_Nz = fy_eff_c - objGeo.m_fb / 2.0f; m_fW_eff_y_min = m_fI_eff_y / Math.Max(fz_eff_c, objGeo.m_fh - fz_eff_c); m_fW_eff_z_min = m_fI_eff_z / Math.Max(fy_eff_c, objGeo.m_fb - fy_eff_c); }
void GetCrSc4_ID(CCrSc objCrSc, C_GEO___I objGeo, C_IFO objIFO, C_STR___I objStr, C___I objC__I, C_MAT___I objMat, C_ADD___I objAdd) { if (objC__I.m_iClass_f == 4) { // EN 1993-1-5, Table 4.2 GetEff_OUT(objStr.m_fSigma_fulA, objStr.m_fSigma_fulB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, fSigma_1_ful, fSigma_2_ful, fPsi_ful, fk_Sigma_ful, fLambda_rel_p_ful, fRho_ful, fb_eff_ful, fb_red_ful, fb_em_ful, objMat.BStainlessS); // EN 1993-1-5, Table 4.2 GetEff_OUT(objStr.m_fSigma_furA, objStr.m_fSigma_furB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, fSigma_1_fur, fSigma_2_fur, fPsi_fur, fk_Sigma_fur, fLambda_rel_p_fur, fRho_fur, fb_eff_fur, fb_red_fur, fb_em_fur, objMat.BStainlessS); // EN 1993-1-5, Table 4.2 GetEff_OUT(objStr.m_fSigma_fblA, objStr.m_fSigma_fblB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, fSigma_1_fbl, fSigma_2_fbl, fPsi_fbl, fk_Sigma_fbl, fLambda_rel_p_fbl, fRho_fbl, fb_eff_fbl, fb_red_fbl, fb_em_bl, objMat.BStainlessS); // EN 1993-1-5, Table 4.2 GetEff_OUT(objStr.m_fSigma_fbrA, objStr.m_fSigma_fbrB, objGeo.m_fc_f, objGeo.m_ft_f, objMat.m_fEps_f, fSigma_1_fbr, fSigma_2_fbr, fPsi_fbr, fk_Sigma_fbr, fLambda_rel_p_fbr, fRho_fbr, fb_eff_fbr, fb_red_fbr, fb_em_br, objMat.BStainlessS); fA_eff_f = objCrSc.m_fA - (fb_red_ful + fb_red_fur + fb_red_fbl + fb_red_fbr) * objGeo.m_ft_f; fz_eff_c_f = (objCrSc.m_fA * objGeo.m_fh / 2.0f - fb_red_ful * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f - fb_red_fur * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f - fb_red_fbl * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) - fb_red_fbr * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) ) / fA_eff_f; fy_eff_c_f = (objCrSc.m_fA * objGeo.m_fb / 2.0f - fb_red_ful * objGeo.m_ft_f * fb_em_ful - fb_red_fur * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fur) - fb_red_fbl * objGeo.m_ft_f * fb_em_bl - fb_red_fbr * objGeo.m_ft_f * (objGeo.m_fb - fb_em_br) ) / fA_eff_f; fI_eff_y_f = objCrSc.m_fI_y + objCrSc.m_fA * sqr(fz_eff_c_f - objGeo.m_fh / 2.0f) - fb_red_ful * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_ful * objGeo.m_ft_f * sqr(fz_eff_c_f - objGeo.m_ft_f / 2.0f) - fb_red_fur * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fur * objGeo.m_ft_f * sqr(fz_eff_c_f - objGeo.m_ft_f / 2.0f) - fb_red_fbl * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fbl * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f / 2.0f) - fb_red_fbr * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fbr * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f / 2.0f); fI_eff_z_f = objCrSc.m_fI_z + objCrSc.m_fA * sqr(fy_eff_c_f - objGeo.m_fb / 2.0f) - (float)Math.Pow(fb_red_ful, 3) * objGeo.m_ft_f / 12.0f - fb_red_ful * objGeo.m_ft_f * sqr(fy_eff_c_f - fb_em_ful) - (float)Math.Pow(fb_red_fur, 3) * objGeo.m_ft_f / 12.0f - fb_red_fur * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c_f - fb_em_fur) - (float)Math.Pow(fb_red_fbl, 3) * objGeo.m_ft_f / 12.0f - fb_red_fbl * objGeo.m_ft_f * sqr(fy_eff_c_f - fb_em_bl) - (float)Math.Pow(fb_red_fbr, 3) * objGeo.m_ft_f / 12.0f - fb_red_fbr * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c_f - fb_em_br); } else { fb_red_ful = 0.0f; fb_red_fur = 0.0f; fb_red_fbl = 0.0f; fb_red_fbr = 0.0f; fb_em_ful = 0.0f; fb_em_fur = 0.0f; fb_em_bl = 0.0f; fb_em_br = 0.0f; fA_eff_f = objCrSc.m_fA; fz_eff_c_f = objGeo.m_fh / 2.0f; fy_eff_c_f = objGeo.m_fb / 2.0f; fI_eff_y_f = objCrSc.m_fI_y; fI_eff_z_f = objCrSc.m_fI_z; } if (objC__I.m_iClass_w == 4) { float rSigma_N = objIFO.FN_Ed / fA_eff_f; float fSigma_My_wu = objIFO.FM_y_Ed / fI_eff_y_f * (fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr); float fSigma_My_wb = objIFO.FM_y_Ed / fI_eff_y_f * (objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_f - objGeo.m_fr); float rSigma_Mz = objIFO.FM_z_Ed / fI_eff_z_f * (fy_eff_c_f - objGeo.m_fb / 2.0f); objStr.m_fSigma_wA = rSigma_N - fSigma_My_wu + rSigma_Mz; objStr.m_fSigma_wB = rSigma_N + fSigma_My_wb + rSigma_Mz; // EN 1993-1-5, Table 4.1 GetEff_INT(objStr.m_fSigma_wA, objStr.m_fSigma_wB, objGeo.m_fc_w, objGeo.m_ft_w, objMat.m_fEps_w, fSigma_1_w, fSigma_2_w, fPsi_w, fk_Sigma_w, fLambda_rel_p_w, fRho_w, fb_eff_w, fb_e1_w, fb_e2_w, fb_red_w, fb_em_w, objMat.BStainlessS); m_fA_eff = fA_eff_f - fb_red_w * objGeo.m_ft_w; fz_eff_c = (objCrSc.m_fA * objGeo.m_fh / 2.0f - fb_red_ful * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f - fb_red_fur * objGeo.m_ft_f * objGeo.m_ft_f / 2.0f - fb_red_fbl * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) - fb_red_fbr * objGeo.m_ft_f * (objGeo.m_fh - objGeo.m_ft_f / 2.0f) - fb_red_w * objGeo.m_ft_w * (fb_em_w + objGeo.m_fr + objGeo.m_ft_f) ) / m_fA_eff; fy_eff_c = (objCrSc.m_fA * objGeo.m_fb / 2.0f - fb_red_ful * objGeo.m_ft_f * fb_em_ful - fb_red_fur * objGeo.m_ft_f * (objGeo.m_fb - fb_em_fur) - fb_red_fbl * objGeo.m_ft_f * fb_em_bl - fb_red_fbr * objGeo.m_ft_f * (objGeo.m_fb - fb_em_br) - fb_red_w * objGeo.m_ft_w * objGeo.m_fb / 2.0f ) / m_fA_eff; m_fI_eff_y = objCrSc.m_fI_y + objCrSc.m_fA * sqr(fz_eff_c - objGeo.m_fh / 2.0f) - fb_red_ful * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_ful * objGeo.m_ft_f * sqr(fz_eff_c - objGeo.m_ft_f / 2.0f) - fb_red_fur * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fur * objGeo.m_ft_f * sqr(fz_eff_c - objGeo.m_ft_f / 2.0f) - fb_red_fbl * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fbl * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_f / 2.0f) - fb_red_fbr * (float)Math.Pow(objGeo.m_ft_f, 3) / 12.0f - fb_red_fbr * objGeo.m_ft_f * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_f / 2.0f) - (float)Math.Pow(fb_red_w, 3) * objGeo.m_ft_w / 12.0f - fb_red_w * objGeo.m_ft_w * sqr(fz_eff_c - objGeo.m_ft_f - fb_em_w - objGeo.m_fr); m_fI_eff_z = objCrSc.m_fI_z + objCrSc.m_fA * sqr(fy_eff_c - objGeo.m_fb / 2.0f) - (float)Math.Pow(fb_red_ful, 3) * objGeo.m_ft_f / 12.0f - fb_red_ful * objGeo.m_ft_f * sqr(fy_eff_c - fb_em_ful) - (float)Math.Pow(fb_red_fur, 3) * objGeo.m_ft_f / 12.0f - fb_red_fur * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c - fb_em_fur) - (float)Math.Pow(fb_red_fbl, 3) * objGeo.m_ft_f / 12.0f - fb_red_fbl * objGeo.m_ft_f * sqr(fy_eff_c - fb_em_bl) - (float)Math.Pow(fb_red_fbr, 3) * objGeo.m_ft_f / 12.0f - fb_red_fbr * objGeo.m_ft_f * sqr(objGeo.m_fb - fy_eff_c - fb_em_br) - (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_w / 12.0f - objGeo.m_ft_w * fb_red_w * sqr(fy_eff_c - objGeo.m_fb / 2.0f); } else { fb_red_w = 0.0f; m_fA_eff = fA_eff_f; fz_eff_c = fz_eff_c_f; fy_eff_c = fy_eff_c_f; m_fI_eff_y = fI_eff_y_f; m_fI_eff_z = fI_eff_z_f; } float fA_f_eff = objAdd.m_fA_f - (fb_red_ful + fb_red_fur + fb_red_fbl + fb_red_fbr) * objGeo.m_ft_f; float fA_w_eff = objAdd.m_fA_w - fb_red_w * objGeo.m_ft_w; m_fN_pl_eff = fA_f_eff * objMat.m_ff_y_f + fA_w_eff * objMat.m_ff_y_w; m_fe_Ny = fz_eff_c - objGeo.m_fh / 2.0f; m_fe_Nz = fy_eff_c - objGeo.m_fb / 2.0f; m_fW_eff_y_min = m_fI_eff_y / Math.Max(fz_eff_c, objGeo.m_fh - fz_eff_c); m_fW_eff_z_min = m_fI_eff_z / Math.Max(fy_eff_c - Math.Min(fb_red_ful, fb_red_fbl), objGeo.m_fb - fy_eff_c - Math.Min(fb_red_fur, fb_red_fbr)); }
/* // Flanges float fSigma_1_ful, fSigma_2_ful, fPsi_ful, fk_Sigma_ful, fLambda_rel_p_ful, fRho_ful, fb_eff_ful, fb_red_ful, fb_em_ful, fSigma_1_fur, fSigma_2_fur, fPsi_fur, fk_Sigma_fur, fLambda_rel_p_fur, fRho_fur, fb_eff_fur, fb_red_fur, fb_em_fur, fSigma_1_fbl, fSigma_2_fbl, fPsi_fbl, fk_Sigma_fbl, fLambda_rel_p_fbl, fRho_fbl, fb_eff_fbl, fb_red_fbl, fb_em_bl, fSigma_1_fbr, fSigma_2_fbr, fPsi_fbr, fk_Sigma_fbr, fLambda_rel_p_fbr, fRho_fbr, fb_eff_fbr, fb_red_fbr, fb_em_br; // Web float fSigma_1_w, fSigma_2_w, fPsi_w, fk_Sigma_w, fLambda_rel_p_w, fRho_w, fb_eff_w, fb_e1_w, fb_e2_w, fb_red_w, fb_em_w; float fA_eff_f, fz_eff_c_f, fy_eff_c_f, fI_eff_y_f, fI_eff_z_f; // Web float fz_eff_c, fy_eff_c; */ void GetCrSc4_IM(CCrSc objCrSc, C_GEO___I objGeo, C_IFO objIFO, C_STR___I objStr, C___I objC__I, C_MAT___I objMat, C_ADD___I objAdd) { if (objC__I.m_iClass_fu == 4 || objC__I.m_iClass_fb == 4) { // EN 1993-1-5, Table 4.2 GetEff_OUT(objStr.m_fSigma_fulA, objStr.m_fSigma_fulB, objGeo.m_fc_fu, objGeo.m_ft_fu, objMat.m_fEps_fu, fSigma_1_ful, fSigma_2_ful, fPsi_ful, fk_Sigma_ful, fLambda_rel_p_ful, fRho_ful, fb_eff_ful, fb_red_ful, fb_em_ful, objMat.BStainlessS); // EN 1993-1-5, Tabl e 4.2 GetEff_OUT(objStr.m_fSigma_furA, objStr.m_fSigma_furB, objGeo.m_fc_fu, objGeo.m_ft_fu, objMat.m_fEps_fu, fSigma_1_fur, fSigma_2_fur, fPsi_fur, fk_Sigma_fur, fLambda_rel_p_fur, fRho_fur, fb_eff_fur, fb_red_fur, fb_em_fur, objMat.BStainlessS); // EN 1993-1-5, Table 4.2 GetEff_OUT(objStr.m_fSigma_fblA, objStr.m_fSigma_fblB, objGeo.m_fc_fb, objGeo.m_ft_fb, objMat.m_fEps_fb, fSigma_1_fbl, fSigma_2_fbl, fPsi_fbl, fk_Sigma_fbl, fLambda_rel_p_fbl, fRho_fbl, fb_eff_fbl, fb_red_fbl, fb_em_bl, objMat.BStainlessS); // EN 1993-1-5, Table 4.2 GetEff_OUT(objStr.m_fSigma_fbrA, objStr.m_fSigma_fbrB, objGeo.m_fc_fb, objGeo.m_ft_fb, objMat.m_fEps_fb, fSigma_1_fbr, fSigma_2_fbr, fPsi_fbr, fk_Sigma_fbr, fLambda_rel_p_fbr, fRho_fbr, fb_eff_fbr, fb_red_fbr, fb_em_br, objMat.BStainlessS); fA_eff_f = objCrSc.m_fA - (fb_red_ful + fb_red_fur) * objGeo.m_ft_fu - (fb_red_fbl + fb_red_fbr) * objGeo.m_ft_fb; fz_eff_c_f = (objCrSc.m_fA * objCrSc.m_fz_S - fb_red_ful * objGeo.m_ft_fu * objGeo.m_ft_fu / 2.0f - fb_red_fur * objGeo.m_ft_fu * objGeo.m_ft_fu / 2.0f - fb_red_fbl * objGeo.m_ft_fb * (objGeo.m_fh - objGeo.m_ft_fb / 2.0f) - fb_red_fbr * objGeo.m_ft_fb * (objGeo.m_fh - objGeo.m_ft_fb / 2.0f) ) / fA_eff_f; float rb_d = (objGeo.m_fb_fu - objGeo.m_fb_fb) / 2.0f; fy_eff_c_f = (objCrSc.m_fA * objGeo.m_fb_fu / 2.0f - fb_red_ful * objGeo.m_ft_fu * fb_em_ful - fb_red_fur * objGeo.m_ft_fu * (objGeo.m_fb_fu - fb_em_fur) - fb_red_fbl * objGeo.m_ft_fb * (rb_d + fb_em_bl) - fb_red_fbr * objGeo.m_ft_fb * (objGeo.m_fb_fu - rb_d - fb_em_br) ) / fA_eff_f; fI_eff_y_f = objCrSc.m_fI_y + objCrSc.m_fA * sqr(fz_eff_c_f - objCrSc.m_fz_S) - fb_red_ful * (float)Math.Pow(objGeo.m_ft_fu, 3) / 12.0f - fb_red_ful * objGeo.m_ft_fu * sqr(fz_eff_c_f - objGeo.m_ft_fu / 2.0f) - fb_red_fur * (float)Math.Pow(objGeo.m_ft_fu, 3) / 12.0f - fb_red_fur * objGeo.m_ft_fu * sqr(fz_eff_c_f - objGeo.m_ft_fu / 2.0f) - fb_red_fbl * (float)Math.Pow(objGeo.m_ft_fb, 3) / 12.0f - fb_red_fbl * objGeo.m_ft_fb * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_fb / 2.0f) - fb_red_fbr * (float)Math.Pow(objGeo.m_ft_fb, 3) / 12.0f - fb_red_fbr * objGeo.m_ft_fb * sqr(objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_fb / 2.0f); fI_eff_z_f = objCrSc.m_fI_z + objCrSc.m_fA * sqr(fy_eff_c_f - objGeo.m_fb_fu / 2.0f) - (float)Math.Pow(fb_red_ful, 3) * objGeo.m_ft_fu / 12.0f - fb_red_ful * objGeo.m_ft_fu * sqr(fy_eff_c_f - fb_em_ful) - (float)Math.Pow(fb_red_fur, 3) * objGeo.m_ft_fu / 12.0f - fb_red_fur * objGeo.m_ft_fu * sqr(objGeo.m_fb_fu - fy_eff_c_f - fb_em_fur) - (float)Math.Pow(fb_red_fbl, 3) * objGeo.m_ft_fb / 12.0f - fb_red_fbl * objGeo.m_ft_fb * sqr(fy_eff_c_f - rb_d - fb_em_bl) - (float)Math.Pow(fb_red_fbr, 3) * objGeo.m_ft_fb / 12.0f - fb_red_fbr * objGeo.m_ft_fb * sqr(objGeo.m_fb_fb + rb_d - fy_eff_c_f - fb_em_br); } else { fb_red_ful = 0.0f; fb_red_fur = 0.0f; fb_red_fbl = 0.0f; fb_red_fbr = 0.0f; fb_em_ful = 0.0f; fb_em_fur = 0.0f; fb_em_bl = 0.0f; fb_em_br = 0.0f; fA_eff_f = objCrSc.m_fA; fz_eff_c_f = objCrSc.m_fz_S; fy_eff_c_f = objGeo.m_fb_fu / 2.0f; fI_eff_y_f = objCrSc.m_fI_y; fI_eff_z_f = objCrSc.m_fI_z; } if (objC__I.m_iClass_w == 4) { float rSigma_N = objIFO.FN_Ed / fA_eff_f; float fSigma_My_wu = objIFO.FM_y_Ed / fI_eff_y_f * (fz_eff_c_f - objGeo.m_ft_fu - objGeo.m_fr_su); float fSigma_My_wb = objIFO.FM_y_Ed / fI_eff_y_f * (objGeo.m_fh - fz_eff_c_f - objGeo.m_ft_fb - objGeo.m_fr_sb); float rSigma_Mz = objIFO.FM_z_Ed / fI_eff_z_f * (fy_eff_c_f - objGeo.m_fb_fu / 2.0f); objStr.m_fSigma_wA = rSigma_N - fSigma_My_wu + rSigma_Mz; objStr.m_fSigma_wB = rSigma_N + fSigma_My_wb + rSigma_Mz; // EN 1993-1-5, Table 4.1 GetEff_INT(objStr.m_fSigma_wA, objStr.m_fSigma_wB, objGeo.m_fc_w, objGeo.m_ft_w, objMat.m_fEps_w, fSigma_1_w, fSigma_2_w, fPsi_w, fk_Sigma_w, fLambda_rel_p_w, fRho_w, fb_eff_w, fb_e1_w, fb_e2_w, fb_red_w, fb_em_w, objMat.BStainlessS); m_fA_eff = fA_eff_f - fb_red_w * objGeo.m_ft_w; fz_eff_c = (objCrSc.m_fA * objCrSc.m_fz_S - fb_red_ful * objGeo.m_ft_fu * objGeo.m_ft_fu / 2.0f - fb_red_fur * objGeo.m_ft_fu * objGeo.m_ft_fu / 2.0f - fb_red_fbl * objGeo.m_ft_fb * (objGeo.m_fh - objGeo.m_ft_fb / 2.0f) - fb_red_fbr * objGeo.m_ft_fb * (objGeo.m_fh - objGeo.m_ft_fb / 2.0f) - fb_red_w * objGeo.m_ft_w * (fb_em_w + objGeo.m_fr_su + objGeo.m_ft_fu) ) / m_fA_eff; float rb_d = (objGeo.m_fb_fu - objGeo.m_fb_fb) / 2.0f; fy_eff_c = (objCrSc.m_fA * objGeo.m_fb_fu / 2.0f - fb_red_ful * objGeo.m_ft_fu * fb_em_ful - fb_red_fur * objGeo.m_ft_fu * (objGeo.m_fb_fu - fb_em_fur) - fb_red_fbl * objGeo.m_ft_fb * (rb_d + fb_em_bl) - fb_red_fbr * objGeo.m_ft_fb * (objGeo.m_fb_fu - rb_d - fb_em_br) - fb_red_w * objGeo.m_ft_w * objGeo.m_fb_fu / 2.0f ) / m_fA_eff; // Trägheitsmomente des wirksamen relschnitts m_fI_eff_y = objCrSc.m_fI_y + objCrSc.m_fA * sqr(fz_eff_c - objCrSc.m_fz_S) - fb_red_ful * (float)Math.Pow(objGeo.m_ft_fu, 3) / 12.0f - fb_red_ful * objGeo.m_ft_fu * sqr(fz_eff_c - objGeo.m_ft_fu / 2.0f) - fb_red_fur * (float)Math.Pow(objGeo.m_ft_fu, 3) / 12.0f - fb_red_fur * objGeo.m_ft_fu * sqr(fz_eff_c - objGeo.m_ft_fu / 2.0f) - fb_red_fbl * (float)Math.Pow(objGeo.m_ft_fb, 3) / 12.0f - fb_red_fbl * objGeo.m_ft_fb * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_fb / 2.0f) - fb_red_fbr * (float)Math.Pow(objGeo.m_ft_fb, 3) / 12.0f - fb_red_fbr * objGeo.m_ft_fb * sqr(objGeo.m_fh - fz_eff_c - objGeo.m_ft_fb / 2.0f) - (float)Math.Pow(fb_red_w, 3) * objGeo.m_ft_w / 12.0f - fb_red_w * objGeo.m_ft_w * sqr(fz_eff_c - objGeo.m_ft_fu - fb_em_w - objGeo.m_fr_su); m_fI_eff_z = objCrSc.m_fI_z + objCrSc.m_fA * sqr(fy_eff_c - objGeo.m_fb_fu / 2.0f) - (float)Math.Pow(fb_red_ful, 3) * objGeo.m_ft_fu / 12.0f - fb_red_ful * objGeo.m_ft_fu * sqr(fy_eff_c - fb_em_ful) - (float)Math.Pow(fb_red_fur, 3) * objGeo.m_ft_fu / 12.0f - fb_red_fur * objGeo.m_ft_fu * sqr(objGeo.m_fb_fu - fy_eff_c - fb_em_fur) - (float)Math.Pow(fb_red_fbl, 3) * objGeo.m_ft_fb / 12.0f - fb_red_fbl * objGeo.m_ft_fb * sqr(fy_eff_c_f - rb_d - fb_em_bl) - (float)Math.Pow(fb_red_fbr, 3) * objGeo.m_ft_fb / 12.0f - fb_red_fbr * objGeo.m_ft_fb * sqr(objGeo.m_fb_fb + rb_d - fy_eff_c_f - fb_em_br) - (float)Math.Pow(objGeo.m_ft_w, 3) * fb_red_w / 12.0f - objGeo.m_ft_w * fb_red_w * sqr(fy_eff_c - objGeo.m_fb_fu / 2.0f); } else { fb_red_w = 0.0f; m_fA_eff = fA_eff_f; fz_eff_c = fz_eff_c_f; fy_eff_c = fy_eff_c_f; m_fI_eff_y = fI_eff_y_f; m_fI_eff_z = fI_eff_z_f; } float fA_fu_eff = objAdd.m_fA_fu - (fb_red_ful + fb_red_fur) * objGeo.m_ft_fu; float fA_fb_eff = objAdd.m_fA_fb - (fb_red_fbl + fb_red_fbr) * objGeo.m_ft_fb; float fA_w_eff = objAdd.m_fA_w - fb_red_w * objGeo.m_ft_w; m_fN_pl_eff = fA_fu_eff * objMat.m_ff_y_fu + fA_fb_eff * objMat.m_ff_y_fb + fA_w_eff * objMat.m_ff_y_w; m_fe_Ny = fz_eff_c - objCrSc.m_fz_S; m_fe_Nz = fy_eff_c - objGeo.m_fb_fu / 2.0f; float fW_eff_y_fu = m_fI_eff_y / fz_eff_c; float fW_eff_y_fb = m_fI_eff_y / (objGeo.m_fh - fz_eff_c); m_fW_eff_y_min = Math.Min(fW_eff_y_fu, fW_eff_y_fb); float fW_eff_z_fu = m_fI_eff_z / Math.Max(fy_eff_c - fb_red_ful, objGeo.m_fb_fu - fy_eff_c - fb_red_fur); float fW_eff_z_fb = m_fI_eff_z / Math.Max(fy_eff_c + ((objGeo.m_fb_fb - objGeo.m_fb_fu) / 2.0f) - fb_red_fbl, objGeo.m_fb_fu + (objGeo.m_fb_fb - objGeo.m_fb_fu) / 2.0f - fy_eff_c - fb_red_fbr); m_fW_eff_z_min = Math.Min(fW_eff_z_fu, fW_eff_z_fb); }
public C__HL(C_GEO__HL objGeo, C_MAT__HL objMat, C_IFO objIFO, C_NAD objNAD, C_STR__HL objStr, ECrScSymmetry1 eSym, ECrScPrType1 eProd) { if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm) { float fF_f = 2.0f * objGeo.m_fc_f * objGeo.m_ft * objMat.Ff_y / objNAD.FGamma_M0; float fF_w = objGeo.m_fh * objGeo.m_ft * objMat.Ff_y / objNAD.FGamma_M0; //Table 5.2 GetClassTab52_INT(objStr.m_fSigma_fuA, objStr.m_fSigma_fuB, objStr.m_fSigma_N, fF_w, fF_f, fF_w, objIFO.FN_Ed, objGeo.m_fc_f, objGeo.m_ft_fu, objMat.m_ff_y_fu / objNAD.FGamma_M0, objMat.m_fEps_f, m_iKlassif_Psi_Fix_Sigma_N, m_bKlassif_Eps_Kl3_Sigma_com, objStr.m_fSigma_com_Ed, m_fct_fu, m_fAlpha_fu, m_fSigma_fyd_fu_1, m_fSigma_fyd_fu_2, m_fPsi_fu, m_fLambda_fu_1, m_fLambda_fu_2, m_fLambda_fu_3, m_iClass_fu, objMat.BStainlessS); //Table 5.2 GetClassTab52_INT(objStr.m_fSigma_fbA, objStr.m_fSigma_fbB, objStr.m_fSigma_N, fF_w, fF_f, fF_w, objIFO.FN_Ed, objGeo.m_fc_f, objGeo.m_ft_fb, objMat.m_ff_y_fb / objNAD.FGamma_M0, objMat.m_fEps_f, m_iKlassif_Psi_Fix_Sigma_N, m_bKlassif_Eps_Kl3_Sigma_com, objStr.m_fSigma_com_Ed, m_fct_fb, m_fAlpha_fb, m_fSigma_fyd_fb_1, m_fSigma_fyd_fb_2, m_fPsi_fb, m_fLambda_fb_1, m_fLambda_fb_2, m_fLambda_fb_3, m_iClass_fb, objMat.BStainlessS); fF_f = objGeo.m_fb * objGeo.m_ft * objMat.Ff_y / objNAD.FGamma_M0; fF_w = 2.0f * objGeo.m_fc_w * objGeo.m_ft * objMat.Ff_y / objNAD.FGamma_M0; //Table 5.2 GetClassTab52_INT(objStr.m_fSigma_wA, objStr.m_fSigma_wB, objStr.m_fSigma_N, fF_f, fF_w, fF_f, objIFO.FN_Ed, objGeo.m_fc_w, objGeo.m_ft, objMat.m_ff_y_w / objNAD.FGamma_M0, objMat.m_fEps_w, m_iKlassif_Psi_Fix_Sigma_N, m_bKlassif_Eps_Kl3_Sigma_com, objStr.m_fSigma_com_Ed, m_fct_w, m_fAlpha_w, m_fSigma_fyd_w_1, m_fSigma_fyd_w_2, m_fPsi_w, m_fLambda_w_1, m_fLambda_w_2, m_fLambda_w_3, m_iClass_w, objMat.BStainlessS); m_iClass_f = Math.Max(m_iClass_fu, m_iClass_fb); m_iClass = Math.Max(m_iClass_f, m_iClass_w); if (m_iClass_fu >= m_iClass_fb) { objStr.m_fSigma_fA = objStr.m_fSigma_fuA; objStr.m_fSigma_fB = objStr.m_fSigma_fuB; m_fAlpha_f = m_fAlpha_fu; m_fSigma_fyd_f_1 = m_fSigma_fyd_fu_1; m_fSigma_fyd_f_2 = m_fSigma_fyd_fu_2; m_fPsi_f = m_fPsi_fu; objMat.m_fEps_f = objMat.m_fEps_fu; m_fLambda_f_1 = m_fLambda_fu_1; m_fLambda_f_2 = m_fLambda_fu_2; m_fLambda_f_3 = m_fLambda_fu_3; m_fct_f = m_fct_fu; m_iClass_f = m_iClass_fu; } else { objStr.m_fSigma_fA = objStr.m_fSigma_fbA; objStr.m_fSigma_fB = objStr.m_fSigma_fbB; m_fAlpha_f = m_fAlpha_fb; m_fSigma_fyd_f_1 = m_fSigma_fyd_fb_1; m_fSigma_fyd_f_2 = m_fSigma_fyd_fb_2; m_fPsi_f = m_fPsi_fb; objMat.m_fEps_f = objMat.m_fEps_fb; m_fLambda_f_1 = m_fLambda_fb_1; m_fLambda_f_2 = m_fLambda_fb_2; m_fLambda_f_3 = m_fLambda_fb_3; m_fct_f = m_fct_fb; m_iClass_f = m_iClass_fb; } } else { float fF_f = objGeo.m_fc_f * (objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_ft_fb * objMat.m_ff_y_fb) / objNAD.FGamma_M0; float fF_w = objGeo.m_fh * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0; //Table 5.2 GetClassTab52_INT(objStr.m_fSigma_fuA, objStr.m_fSigma_fuB, objStr.m_fSigma_N, fF_w, fF_f, fF_w, objIFO.FN_Ed, objGeo.m_fc_f, objGeo.m_ft_fu, objMat.m_ff_y_fu / objNAD.FGamma_M0, objMat.m_fEps_fu, m_iKlassif_Psi_Fix_Sigma_N, m_bKlassif_Eps_Kl3_Sigma_com, objStr.m_fSigma_com_Ed, m_fct_fu, m_fAlpha_fu, m_fSigma_fyd_fu_1, m_fSigma_fyd_fu_2, m_fPsi_fu, m_fLambda_fu_1, m_fLambda_fu_2, m_fLambda_fu_3, m_iClass_fu, objMat.BStainlessS); //Table 5.2 GetClassTab52_INT(objStr.m_fSigma_fbA, objStr.m_fSigma_fbB, objStr.m_fSigma_N, fF_w, fF_f, fF_w, objIFO.FN_Ed, objGeo.m_fc_fb, objGeo.m_ft_fb, objMat.m_ff_y_fb / objNAD.FGamma_M0, objMat.m_fEps_fb, m_iKlassif_Psi_Fix_Sigma_N, m_bKlassif_Eps_Kl3_Sigma_com, objStr.m_fSigma_com_Ed, m_fct_fb, m_fAlpha_fb, m_fSigma_fyd_fb_1, m_fSigma_fyd_fb_2, m_fPsi_fb, m_fLambda_fb_1, m_fLambda_fb_2, m_fLambda_fb_3, m_iClass_fb, objMat.BStainlessS); float fF_fu = objGeo.m_fb * objGeo.m_ft_fu * objMat.m_ff_y_fu / objNAD.FGamma_M0; fF_w = 2.0f * objGeo.m_fc_w * objGeo.m_ft_w * objMat.m_ff_y_w / objNAD.FGamma_M0; float fF_fb = objGeo.m_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb / objNAD.FGamma_M0; float fF_f_com, fF_f_ten; if (objIFO.FM_y_Ed >= 0.0f) { fF_f_com = fF_fu; fF_f_ten = fF_fb; } else { fF_f_com = fF_fb; fF_f_ten = fF_fu; } //Table 5.2 GetClassTab52_INT(objStr.m_fSigma_wA, objStr.m_fSigma_wB, objStr.m_fSigma_N, fF_f_com, fF_w, fF_f_ten, objIFO.FN_Ed, objGeo.m_fc_w, objGeo.m_ft_w, objMat.m_ff_y_w / objNAD.FGamma_M0, objMat.m_fEps_w, m_iKlassif_Psi_Fix_Sigma_N, m_bKlassif_Eps_Kl3_Sigma_com, objStr.m_fSigma_com_Ed, m_fct_w, m_fAlpha_w, m_fSigma_fyd_w_1, m_fSigma_fyd_w_2, m_fPsi_w, m_fLambda_w_1, m_fLambda_w_2, m_fLambda_w_3, m_iClass_w, objMat.BStainlessS); m_iClass = Math.Max(m_iClass_fu, m_iClass_fb); m_iClass = Math.Max(m_iClass, m_iClass_w); } }
public C___L4(CCrSc objCrSc, C_GEO___L objGeo, C_IFO objIFO, C_STR___L objStr, C___L objC__L, C_MAT___L objMat, C_ADD___L objAdd, ECrScSymmetry1 eSym) { // EN 1993-1-5,Table 4.2 GetEff_OUT(objStr.m_fSP_Sigma_x_Ed[2], Math.Min(objStr.m_fSP_Sigma_x_Ed[0], objStr.m_fSP_Sigma_x_Ed[1]), objGeo.m_fc_a, objGeo.m_ft_a, objMat.FEps, fSigma_1_a, fSigma_2_a, fPsi_a, fk_Sigma_a, fLambda_rel_p_a, fRho_a, fb_eff_a, fb_red_a, fb_em_a, objMat.BStainlessS); // EN 1993-1-5,Table 4.2 GetEff_OUT(objStr.m_fSP_Sigma_x_Ed[4], Math.Min(objStr.m_fSP_Sigma_x_Ed[5], objStr.m_fSP_Sigma_x_Ed[6]), objGeo.m_fc_b, objGeo.m_ft_b, objMat.FEps, fSigma_1_b, fSigma_2_b, fPsi_b, fk_Sigma_b, fLambda_rel_p_b, fRho_b, fb_eff_b, fb_red_b, fb_em_b, objMat.BStainlessS); if (fb_red_a > 0.0f || fb_red_b > 0.0f) { m_fA_eff = objCrSc.m_fA - fb_red_a * objGeo.m_ft_a - fb_red_b * objGeo.m_ft_b; fz_eff_c = (objCrSc.m_fA * objCrSc.m_fz_S - fb_red_a * objGeo.m_ft_a * (objGeo.m_fh - fb_em_a) - fb_red_b * objGeo.m_ft_b * objGeo.m_ft_b / 2.0f ) / m_fA_eff; fy_eff_c = (objCrSc.m_fA * objCrSc.m_fy_S - fb_red_a * objGeo.m_ft_a * objGeo.m_ft_a / 2.0f - fb_red_b * objGeo.m_ft_b * (objGeo.m_fb - fb_em_b) ) / m_fA_eff; m_fI_eff_yy = objCrSc.m_fI_yy + objCrSc.m_fA * sqr(fz_eff_c - objCrSc.m_fz_S) - objGeo.m_ft_a * (float)Math.Pow(fb_red_a, 3) / 12.0f - fb_red_a * objGeo.m_ft_a * sqr(objGeo.m_fh - fb_em_a - fz_eff_c) - fb_red_b * (float)Math.Pow(objGeo.m_ft_b, 3) / 12.0f - fb_red_b * objGeo.m_ft_b * sqr(fz_eff_c - objGeo.m_ft_b / 2.0f); m_fI_eff_zz = objCrSc.m_fI_zz + objCrSc.m_fA * sqr(fy_eff_c - objCrSc.m_fy_S) - (float)Math.Pow(objGeo.m_ft_a, 3) * fb_red_a / 12.0f - fb_red_a * objGeo.m_ft_a * sqr(fy_eff_c - objGeo.m_ft_a / 2.0f) - (float)Math.Pow(fb_red_b, 3) * objGeo.m_ft_b / 12.0f - fb_red_b * objGeo.m_ft_b * sqr(objGeo.m_fb - fb_em_b - fy_eff_c); m_fI_eff_yz = objCrSc.m_fI_yz + objCrSc.m_fA * (objCrSc.m_fy_S - fy_eff_c) * (fz_eff_c - objCrSc.m_fz_S) - fb_red_a * objGeo.m_ft_a * (fy_eff_c - objGeo.m_ft_a / 2.0f) * (objGeo.m_fh - fb_em_a - fz_eff_c) - fb_red_b * objGeo.m_ft_b * (fz_eff_c - objGeo.m_ft_b / 2.0f) * (objGeo.m_fb - fb_em_b - fy_eff_c); m_fI_eff_y = (m_fI_eff_yy + m_fI_eff_zz) / 2.0f + (float)Math.Sqrt(sqr((m_fI_eff_yy - m_fI_eff_zz) / 2.0f) + sqr(m_fI_eff_yz)); m_fI_eff_z = (m_fI_eff_yy + m_fI_eff_zz) / 2.0f - (float)Math.Sqrt(sqr((m_fI_eff_yy - m_fI_eff_zz) / 2.0f) + sqr(m_fI_eff_yz)); if (m_fI_eff_yy != m_fI_eff_zz) objGeo.m_fAlpha_Axis = 0.5f * (float)Math.Atan((2.0f * m_fI_eff_yz) / (m_fI_eff_zz - m_fI_eff_yy)); else objGeo.m_fAlpha_Axis = -0.785398163f; // = -45? float m_fe_Ny_zz = fz_eff_c - objCrSc.m_fz_S; float m_fe_Nz_yy = fy_eff_c - objCrSc.m_fy_S; m_fe_Ny = m_fe_Nz_yy * (float)Math.Cos(objGeo.m_fAlpha_Axis) + m_fe_Ny_zz * (float)Math.Sin(objGeo.m_fAlpha_Axis); m_fe_Nz = -m_fe_Nz_yy * (float)Math.Sin(objGeo.m_fAlpha_Axis) + m_fe_Ny_zz * (float)Math.Cos(objGeo.m_fAlpha_Axis); objStr.m_fSP_y_par[0] = -fy_eff_c; objStr.m_fSP_z_par[0] = fz_eff_c - objGeo.m_fh + fb_red_a; objStr.m_fSP_y_par[1] = -fy_eff_c + objGeo.m_ft_a; objStr.m_fSP_z_par[1] = fz_eff_c - objGeo.m_fh + fb_red_a; objStr.m_fSP_y_par[2] = -fy_eff_c; objStr.m_fSP_z_par[2] = fz_eff_c - objGeo.m_ft_b - objGeo.m_fr; objStr.m_fSP_y_par[3] = -fy_eff_c; objStr.m_fSP_z_par[3] = fz_eff_c; objStr.m_fSP_y_par[4] = -fy_eff_c + objGeo.m_ft_a + objGeo.m_fr; objStr.m_fSP_z_par[4] = fz_eff_c; objStr.m_fSP_y_par[5] = -fy_eff_c + objGeo.m_fb - fb_red_b; objStr.m_fSP_z_par[5] = fz_eff_c; objStr.m_fSP_y_par[6] = -fy_eff_c + objGeo.m_fb - fb_red_b; objStr.m_fSP_z_par[6] = fz_eff_c - objGeo.m_ft_b; float rz_max = 0.0f; float ry_max = 0.0f; for (int iSP = 0; iSP < 7; iSP++) { objStr.m_fSP_y[iSP] = objStr.m_fSP_y_par[iSP] * (float)Math.Cos(objGeo.m_fAlpha_Axis) + objStr.m_fSP_z_par[iSP] * (float)Math.Sin(objGeo.m_fAlpha_Axis); objStr.m_fSP_z[iSP] = -objStr.m_fSP_y_par[iSP] * (float)Math.Sin(objGeo.m_fAlpha_Axis) + objStr.m_fSP_z_par[iSP] * (float)Math.Cos(objGeo.m_fAlpha_Axis); rz_max = Math.Max(rz_max, Math.Abs(objStr.m_fSP_z[iSP])); ry_max = Math.Max(ry_max, Math.Abs(objStr.m_fSP_y[iSP])); } m_fW_eff_y_min = m_fI_eff_y / rz_max; m_fW_eff_z_min = m_fI_eff_z / ry_max; } else { m_fA_eff = objCrSc.m_fA; fz_eff_c = objCrSc.m_fz_S; fy_eff_c = objCrSc.m_fy_S; m_fI_eff_y = objCrSc.m_fI_y; m_fI_eff_z = objCrSc.m_fI_z; m_fW_eff_y_min = objCrSc.m_fW_el_y_min; m_fW_eff_z_min = objCrSc.m_fW_el_z_min; m_fe_Ny = 0.0f; m_fe_Nz = 0.0f; } m_fN_pl_eff = m_fA_eff * objMat.Ff_y; }
public C_STR___I(C_IFO objIFO, C_GEO___I objGeo, CCrSc objCrSc, ECrScSymmetry1 eSym) { m_fSigma_N = objIFO.FN_Ed / objCrSc.m_fA; if (eSym == ECrScSymmetry1.eDS) { float fSigma_My_f = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fh / 2.0f; float fSigma_My_w = objIFO.FM_y_Ed / objCrSc.m_fI_y * objGeo.m_fc_w / 2.0f; float fSigma_Mz_fA = objIFO.FM_z_Ed / objCrSc.FI_z * (objGeo.m_ft_w / 2.0f + objGeo.m_fr); float fSigma_Mz_fB = objIFO.FM_z_Ed / objCrSc.FI_z * objGeo.m_fb / 2.0f; m_fSigma_fulA = m_fSigma_N - fSigma_My_f + fSigma_Mz_fA; m_fSigma_fulB = m_fSigma_N - fSigma_My_f + fSigma_Mz_fB; m_fSigma_furA = m_fSigma_N - fSigma_My_f - fSigma_Mz_fA; m_fSigma_furB = m_fSigma_N - fSigma_My_f - fSigma_Mz_fB; m_fSigma_fblA = m_fSigma_N + fSigma_My_f + fSigma_Mz_fA; m_fSigma_fblB = m_fSigma_N + fSigma_My_f + fSigma_Mz_fB; m_fSigma_fbrA = m_fSigma_N + fSigma_My_f - fSigma_Mz_fA; m_fSigma_fbrB = m_fSigma_N + fSigma_My_f - fSigma_Mz_fB; float fSigma_fuA = Math.Min(m_fSigma_fulA, m_fSigma_furA); float fSigma_fuB = Math.Min(m_fSigma_fulB, m_fSigma_furB); float fSigma_fbA = Math.Min(m_fSigma_fblA, m_fSigma_fbrA); float fSigma_fbB = Math.Min(m_fSigma_fblB, m_fSigma_fbrB); // Flange m_fSigma_fA = Math.Min(fSigma_fuA, fSigma_fbA); m_fSigma_fB = Math.Min(fSigma_fuB, fSigma_fbB); // Web m_fSigma_wA = m_fSigma_N - fSigma_My_f; m_fSigma_wB = m_fSigma_N + fSigma_My_f; } else { float fSigma_My_fu = objIFO.FM_y_Ed / objCrSc.m_fI_y * objCrSc.m_fz_S; float fSigma_My_fb = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objGeo.m_fh - objCrSc.m_fz_S); float fSigma_My_wu = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objCrSc.m_fz_S - objGeo.m_ft_fu - objGeo.m_fr_su); float fSigma_My_wb = objIFO.FM_y_Ed / objCrSc.m_fI_y * (objGeo.m_fh - objCrSc.m_fz_S - objGeo.m_ft_fb - objGeo.m_fr_sb); float fSigma_Mz_fuA = objIFO.FM_z_Ed / objCrSc.FI_z * (objGeo.m_ft_w / 2.0f + objGeo.m_fr_su); float fSigma_Mz_fuB = objIFO.FM_z_Ed / objCrSc.FI_z * objGeo.m_fb_fu / 2.0f; float fSigma_Mz_fbA = objIFO.FM_z_Ed / objCrSc.FI_z * (objGeo.m_ft_w / 2.0f + objGeo.m_fr_sb); float fSigma_Mz_fbB = objIFO.FM_z_Ed / objCrSc.FI_z * objGeo.m_fb_fb / 2.0f; // Upper Flange m_fSigma_fulA = m_fSigma_N - fSigma_My_fu + fSigma_Mz_fuA; m_fSigma_fulB = m_fSigma_N - fSigma_My_fu + fSigma_Mz_fuB; m_fSigma_furA = m_fSigma_N - fSigma_My_fu - fSigma_Mz_fuA; m_fSigma_furB = m_fSigma_N - fSigma_My_fu - fSigma_Mz_fuB; m_fSigma_fuA = Math.Min(m_fSigma_fulA, m_fSigma_furA); m_fSigma_fuB = Math.Min(m_fSigma_fulB, m_fSigma_furB); // Bottom Flange m_fSigma_fblA = m_fSigma_N + fSigma_My_fb + fSigma_Mz_fbA; m_fSigma_fblB = m_fSigma_N + fSigma_My_fb + fSigma_Mz_fbB; m_fSigma_fbrA = m_fSigma_N + fSigma_My_fb - fSigma_Mz_fbA; m_fSigma_fbrB = m_fSigma_N + fSigma_My_fb - fSigma_Mz_fbB; m_fSigma_fbA = Math.Min(m_fSigma_fblA, m_fSigma_fbrA); m_fSigma_fbB = Math.Min(m_fSigma_fblB, m_fSigma_fbrB); // Web m_fSigma_wA = m_fSigma_N - fSigma_My_fb; m_fSigma_wB = m_fSigma_N + fSigma_My_fb; } // 5.5.2(9) m_fSigma_com_Ed = Math.Max(Math.Abs(Math.Min(m_fSigma_fuB, m_fSigma_fbB)), 0.0f); }