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_ADD___L(C_NAD objNAD, C_GEO___L objGeo, C_MAT___L objMat, CCrSc objCrSc, ECrScSymmetry1 eSym, ECrScPrType1 eProd) { m_ft_V_z = objGeo.m_ft_a; // ??????? m_ft_V_y = objGeo.m_ft_b; // ??????? m_fN_pl = objCrSc.m_fA * objMat.Ff_y; m_fN_u = objCrSc.m_fA * objMat.Ff_u; m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.Ff_y; m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.Ff_y; if (eProd == ECrScPrType1.eCrSc_rold || eProd == ECrScPrType1.eCrSc_cldfrm) { m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IR; m_fBeta_LT = objNAD.m_fBeta_LT_IR; } else { m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IS; m_fBeta_LT = objNAD.m_fBeta_LT_IS; } /* bSchubbeulen = FALSE; bDoppeltSymmQuerschnitt = FALSE; bEinfachSymmQuerschnitt = FALSE; */ }
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___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_ADD___U(C_NAD objNAD, C_GEO___U objGeo, C_MAT___U objMat, CCrSc objCrSc, ECrScPrType1 eProd) { m_ft_V_z = objGeo.m_ft_w; // (6.20) m_ft_V_y = objGeo.m_ft_f; m_fA_w = objCrSc.m_fA - 2f * objGeo.m_fb * objGeo.m_ft_f; if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm) m_fA_w += (objGeo.m_ft_w + objGeo.m_fr) * objGeo.m_ft_f; m_fA_f = objCrSc.m_fA - m_fA_w; m_fN_pl = m_fA_f * objMat.m_ff_y_f + m_fA_w * objMat.m_ff_y_w; m_fN_u = m_fA_f * objMat.m_ff_u_f + m_fA_w * objMat.m_ff_u_w; if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm) m_fA_v_z = Math.Max(m_fA_v_z, objCrSc.m_fA - 2f * objGeo.m_fb * objGeo.m_ft_f + (objGeo.m_ft_w + objGeo.m_fr) * objGeo.m_ft_f); //6.2.6(3)a) // 6.2.8 float rW_pl_y_w; if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm) rW_pl_y_w = 2.0f * sqr(0.5f * objGeo.m_fh - 0.5f * objGeo.m_ft_f) * objGeo.m_ft_w / 4.0f + // 6.2.6(3) b) objGeo.m_fr * 0.5f * objGeo.m_ft_f * (0.5f * objGeo.m_fh - 0.75f * objGeo.m_ft_f) + 0.214602f * sqr(objGeo.m_fr) * (0.5f * objGeo.m_fh - objGeo.m_ft_f - 0.77663f * objGeo.m_fr); else rW_pl_y_w = sqr(objGeo.m_fh - 2.0f * objGeo.m_ft_f) * objGeo.m_ft_w / 4.0f; // 6.2.8 float rW_pl_z_f = 2.0f * sqr(objGeo.m_fb) * objGeo.m_ft_f / 4.0f; float rW_pl_y_wh = sqr(objGeo.m_fh_w) * objGeo.m_ft_w / 4.0f; m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.m_ff_y_f + rW_pl_y_wh * (objMat.m_ff_y_w - objMat.m_ff_y_f); m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.Ff_y; if (objCrSc.m_fz_S == 0.0f) objCrSc.m_fz_S = objGeo.m_fh / 2.0f; // 6.3.2.3(1) if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm) { m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IR; m_fBeta_LT = objNAD.m_fBeta_LT_IR; } else { m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IS; m_fBeta_LT = objNAD.m_fBeta_LT_IS; } // bDoppeltSymmQuerschnitt = FALSE; }
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_ADD__TU(C_NAD objNAD, C_GEO__TU objGeo, C_MAT__TU objMat, CCrSc objCrSc, ECrScPrType1 eProd) { m_ft_V_z = objGeo.m_ft; // (6.20) m_ft_V_y = objGeo.m_ft; m_fN_pl = objCrSc.m_fA * objMat.Ff_y; m_fN_u = objCrSc.m_fA * objMat.Ff_u; // 6.2.6(3) g) m_fA_v_z = 2.0f * objCrSc.m_fA / (float)Math.PI; m_fA_w = m_fA_f = m_fA_v_y = m_fA_v_z; // Plastische Momente m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.Ff_y; m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.Ff_y; /* bGeschlQuerschnitt = TRUE; bSchubbeulen = FALSE; */ m_fA_k = (float)Math.PI * sqr((objGeo.m_fd - objGeo.m_ft) / 2.0f); }
public CH_EC3_10101(CCrSc objCrSc, C_MAT objMat) { m_fN_Ed = 70000f; //Nacitanie z databazy vysledkov m_fA = objCrSc.m_fA; // Nacitanie z databazy prierezov m_ff_y = objMat.Ff_y; // Nacitanie z databazy materialov m_fGamma_M0 = 1f; // Nacitanie z NA normy CL_62 obCL_62 = new CL_62(); CL obCL = new CL(); // Auxiliary temporary variables /* bool bHoleExist = false; // No holes implemented int iConCat = -1; // No connection cathegory implemented float fA_net = m_fA; // Net area not implemented (holes or opennings are not allowed) */ //m_fN_t_Rd = obCL.Get_fN_t_Rd(bHoleExist, iConCat, m_fA, fA_net, m_ff_y, m_ff_u, m_fGamma_M0, m_fGamma_M2); m_fN_t_Rd = obCL_62.Eq_66______(m_fA, m_ff_y, m_fGamma_M0); fDsgRatio = obCL_62.Eq_65______(Math.Abs(m_fN_Ed), m_fN_t_Rd); }
public C_ADD___I(C_NAD objNAD, C_GEO___I objGeo, C_MAT___I objMat, CCrSc objCrSc, ECrScSymmetry1 eSym, ECrScPrType1 eProd) { if (eSym == ECrScSymmetry1.eDS) { m_ft_V_z = objGeo.m_ft_w; // (6.20) m_ft_V_y = objGeo.m_ft_f; m_fA_w = objCrSc.m_fA - 2.0f * objGeo.m_fb * objGeo.m_ft_f; if (eProd == ECrScPrType1.eCrSc_rold) m_fA_w += (objGeo.m_ft_w + 2.0f * objGeo.m_fr) * objGeo.m_ft_f; m_fA_f = objCrSc.m_fA - m_fA_w; m_fN_pl = m_fA_f * objMat.m_ff_y_f + m_fA_w * objMat.m_ff_y_w; m_fN_u = m_fA_f * objMat.m_ff_u_f + m_fA_w * objMat.m_ff_u_w; if (eProd == ECrScPrType1.eCrSc_rold) { m_fA_v_z = Math.Max(m_fA_v_z, m_fEta * objGeo.m_fh_w * objGeo.m_ft_w); //6.2.6(3)a) } else { m_fA_v_z = m_fEta * objGeo.m_fh_w * objGeo.m_ft_w; // 6.2.6(3)d) } //6.2.8 float rW_pl_y_w; if (eProd == ECrScPrType1.eCrSc_rold) rW_pl_y_w = 2.0f * sqr(0.5f * objGeo.m_fh - 0.5f * objGeo.m_ft_f) * objGeo.m_ft_w / 4.0f + // acc. to 6.2.6(3) a) 2.0f * objGeo.m_fr * 0.5f * objGeo.m_ft_f * (0.5f * objGeo.m_fh - 0.75f * objGeo.m_ft_f) + 2.0f * 0.214602f * sqr(objGeo.m_fr) * (0.5f * objGeo.m_fh - objGeo.m_ft_f - 0.77663f * objGeo.m_fr); else rW_pl_y_w = sqr(objGeo.m_fh - 2.0f * objGeo.m_ft_f) * objGeo.m_ft_w / 4.0f; // acc. to 6.2.6(3) d) // 6.2.8 float rW_pl_z_f = 2.0f * sqr(objGeo.m_fb) * objGeo.m_ft_f / 4.0f; float rW_pl_y_wh = sqr(objGeo.m_fh_w) * objGeo.m_ft_w / 4.0f; m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.m_ff_y_f + rW_pl_y_wh * (objMat.m_ff_y_w - objMat.m_ff_y_f); m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.m_ff_y_w + rW_pl_z_f * (objMat.m_ff_y_f - objMat.m_ff_y_w); // 6.3.2.3(1) if (eProd == ECrScPrType1.eCrSc_rold) { m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IR; m_fBeta_LT = objNAD.m_fBeta_LT_IR; } else { m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IS; m_fBeta_LT = objNAD.m_fBeta_LT_IS; } if (objCrSc.m_fz_S == 0.0f) objCrSc.m_fz_S = objGeo.m_fh / 2.0f; m_bQuerschn_fuer_InterVerf_2_moeglich = true; } else { m_ft_V_z = objGeo.m_ft_w; // (6.20) m_ft_V_y = Math.Min(objGeo.m_ft_fu, objGeo.m_ft_fb); m_fA_fu = objGeo.m_fb_fu * objGeo.m_ft_fu; m_fA_fb = objGeo.m_fb_fb * objGeo.m_ft_fb; m_fA_f = Math.Min(m_fA_fu, m_fA_fb); // Temporary m_fA_w = objGeo.m_fh_w * objGeo.m_ft_w; m_fN_pl = m_fA_fu * objMat.m_ff_y_fu + m_fA_fb * objMat.m_ff_y_fb + m_fA_w * objMat.m_ff_y_w; m_fN_u = m_fA_fu * objMat.m_ff_u_fu + m_fA_fb * objMat.m_ff_u_fb + m_fA_w * objMat.m_ff_u_w; // 6.2.6(3) d) and e) m_fA_v_z = m_fEta * objGeo.m_fh_w * objGeo.m_ft_w; m_fA_v_y = objCrSc.m_fA - objGeo.m_fh_w * objGeo.m_ft_w; float rz_pl_0 = 0.5f * (-objGeo.m_fb_fu * objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * objGeo.m_ft_w * objMat.m_ff_y_w + objGeo.m_fb_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb) / (objGeo.m_ft_w * objMat.m_ff_y_w) + objGeo.m_ft_fu; float rW_pl_y_wh; if (rz_pl_0 >= objGeo.m_ft_fu && rz_pl_0 <= objGeo.m_fh - objGeo.m_ft_fb) { rW_pl_y_wh = sqr(rz_pl_0 - objGeo.m_ft_fu) * objGeo.m_ft_w / 2.0f + sqr(objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb) * objGeo.m_ft_w / 2.0f; m_fM_pl_y = objGeo.m_fb_fu * objGeo.m_ft_fu * (rz_pl_0 - objGeo.m_ft_fu / 2.0f) * objMat.m_ff_y_fu + rW_pl_y_wh * objMat.m_ff_y_w + objGeo.m_fb_fb * objGeo.m_ft_fb * (objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb / 2.0f) * objMat.m_ff_y_fb; } else if (rz_pl_0 < objGeo.m_ft_fu) { rz_pl_0 = 0.5f * (objGeo.m_fb_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb + objGeo.m_fb_fu * objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * objGeo.m_ft_w * objMat.m_ff_y_w) / (objGeo.m_fb_fu * objMat.m_ff_y_fu); rW_pl_y_wh = objGeo.m_fh_w * objGeo.m_ft_w * (objGeo.m_fh_w / 2.0f + objGeo.m_ft_fu - rz_pl_0); m_fM_pl_y = objGeo.m_fb_fu * (sqr(rz_pl_0) / 2.0f + sqr(objGeo.m_ft_fu - rz_pl_0) / 2.0f) * objMat.m_ff_y_fu + rW_pl_y_wh * objMat.m_ff_y_w + objGeo.m_fb_fb * objGeo.m_ft_fb * (objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb / 2.0f) * objMat.m_ff_y_fb; } else { rz_pl_0 = -0.5f * (objGeo.m_fb_fu * objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * objGeo.m_ft_w * objMat.m_ff_y_w - objGeo.m_fb_fb * objMat.m_ff_y_fb * objGeo.m_ft_fu - objGeo.m_fb_fb * objMat.m_ff_y_fb * objGeo.m_fh_w - objGeo.m_fh * objGeo.m_fb_fb * objMat.m_ff_y_fb) / (objGeo.m_fb_fb * objMat.m_ff_y_fb); rW_pl_y_wh = objGeo.m_fh_w * objGeo.m_ft_w * (rz_pl_0 - objGeo.m_ft_fu - objGeo.m_fh_w / 2.0f); m_fM_pl_y = objGeo.m_fb_fu * objGeo.m_ft_fu * (rz_pl_0 - objGeo.m_ft_fu / 2.0f) * objMat.m_ff_y_fu + rW_pl_y_wh * objMat.m_ff_y_w + objGeo.m_fb_fb * objGeo.m_ft_fb * (sqr(objGeo.m_fh - rz_pl_0) / 2.0f + sqr(rz_pl_0 - objGeo.m_fh_w - objGeo.m_ft_fu) / 2.0f) * objMat.m_ff_y_fb; } float rW_pl_y_w = m_fEta * rW_pl_y_wh; // Acc. to 6.2.6(3) d) float rW_pl_z_fo = 2.0f * (objGeo.m_fb_fu / 2.0f * objGeo.m_ft_fu * objGeo.m_fb_fu / 4.0f); float rW_pl_z_fu = 2.0f * (objGeo.m_fb_fb / 2.0f * objGeo.m_ft_fb * objGeo.m_fb_fb / 4.0f); float rW_pl_z_f = rW_pl_z_fo + rW_pl_z_fu; // Acc. to 6.2.6(3) e) m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.m_ff_y_w + rW_pl_z_fo * (objMat.m_ff_y_fu - objMat.m_ff_y_w) + rW_pl_z_fu * (objMat.m_ff_y_fb - objMat.m_ff_y_w); // 6.3.2.3(1) m_fLambda_rel_LT_0 = objNAD.m_fLambda_rel_LT_0_IS; m_fBeta_LT = objNAD.m_fBeta_LT_IS; objGeo.m_fb = Math.Min(objGeo.m_fb_fu, objGeo.m_fb_fb); // Tab. 6.4 resp. 6.5 // Symmetriu musim urcovat skor - uz pri vytvoreni tried Geo a CrSc /* if (Math.Abs(objCrSc.m_fz_S - objGeo.m_fh / 2.0f) > objGeo.m_fh * 1.0e-3f) bDoppeltSymmQuerschnitt = FALSE; */ m_bQuerschn_fuer_InterVerf_2_moeglich = true; } }
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___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); }
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___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_ADD__HL(C_NAD objNAD, C_GEO__HL objGeo, C_MAT__HL objMat, CCrSc objCrSc, ECrScPrType1 eProd) { if (eProd != ECrScPrType1.eCrSc_wld && eProd != ECrScPrType1.eCrSc_wldnorm) { m_ft_V_z = objGeo.m_ft_w; // (6.20) m_ft_V_y = objGeo.m_ft_f; m_fN_pl = objCrSc.m_fA * objMat.Ff_y; m_fN_u = objCrSc.m_fA * objMat.Ff_u; // 6.2.6(3) f) m_fA_v_z = objCrSc.m_fA * objGeo.m_fh / (objGeo.m_fb + objGeo.m_fh); m_fA_v_y = objCrSc.m_fA * objGeo.m_fb / (objGeo.m_fb + objGeo.m_fh); // 6.2.8 float rW_pl_y_w = 2.0f * sqr(objGeo.m_fh - objGeo.m_ft) * objGeo.m_ft / 4.0f; float rW_pl_z_f = 2.0f * sqr(objGeo.m_fb - objGeo.m_ft) * objGeo.m_ft / 4.0f; m_fM_pl_y = objCrSc.m_fW_pl_y * objMat.Ff_y; m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.Ff_y; //bGeschlQuerschnitt = TRUE; m_fA_k = (objGeo.m_fb - objGeo.m_ft) * (objGeo.m_fh - objGeo.m_ft); // bQuerschn_fuer_InterVerf_2_moeglich = TRUE; } else { m_ft_V_z = objGeo.m_ft_w; // (6.20) m_ft_V_y = Math.Min(objGeo.m_ft_fu, objGeo.m_ft_fb); m_fA_fu = objGeo.m_fb * objGeo.m_ft_fu; m_fA_fb = objGeo.m_fb * objGeo.m_ft_fb; m_fA_w = 2.0f * objGeo.m_fh_w * objGeo.m_ft_w; m_fN_pl = m_fA_fu * objMat.m_ff_y_fu + m_fA_fb * objMat.m_ff_y_fb + m_fA_w * objMat.m_ff_y_w; m_fN_u = m_fA_fu * objMat.m_ff_u_fu + m_fA_fb * objMat.m_ff_u_fb + m_fA_w * objMat.m_ff_u_w; // 6.2.6(3) d) und e) m_fA_v_z = m_fEta * 2.0f * objGeo.m_fh_w * objGeo.m_ft_w; m_fA_v_y = objCrSc.m_fA - 2.0f * objGeo.m_fh_w * objGeo.m_ft_w; float rz_pl_0 = 0.5f * (-objGeo.m_fb * objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * objMat.m_ff_y_w + objGeo.m_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb) / (2.0f * objGeo.m_ft_w * objMat.m_ff_y_w) + objGeo.m_ft_fu; float rW_pl_y_wh; if (rz_pl_0 >=objGeo.m_ft_fu && rz_pl_0 <= objGeo.m_fh - objGeo.m_ft_fb) { rW_pl_y_wh = sqr(rz_pl_0 -objGeo.m_ft_fu) * objGeo.m_ft_w + sqr(objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb) * objGeo.m_ft_w; m_fM_pl_y = objGeo.m_fb *objGeo.m_ft_fu * (rz_pl_0 -objGeo.m_ft_fu / 2.0f) * objMat.m_ff_y_fu + rW_pl_y_wh * objMat.m_ff_y_w + objGeo.m_fb * objGeo.m_ft_fb * (objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb / 2.0f) * objMat.m_ff_y_fb; } else if (rz_pl_0 <objGeo.m_ft_fu) { rz_pl_0 = 0.5f * (objGeo.m_fb * objGeo.m_ft_fb * objMat.m_ff_y_fb + objGeo.m_fb *objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * objMat.m_ff_y_w) / (objGeo.m_fb * objMat.m_ff_y_fu); rW_pl_y_wh = objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * (objGeo.m_fh_w / 2.0f +objGeo.m_ft_fu - rz_pl_0); m_fM_pl_y = objGeo.m_fb * (sqr(rz_pl_0) / 2.0f + sqr(objGeo.m_ft_fu - rz_pl_0) / 2.0f) * objMat.m_ff_y_fu + rW_pl_y_wh * objMat.m_ff_y_w + objGeo.m_fb * objGeo.m_ft_fb * (objGeo.m_fh - rz_pl_0 - objGeo.m_ft_fb / 2.0f) * objMat.m_ff_y_fb; } else { rz_pl_0 = -0.5f * (objGeo.m_fb *objGeo.m_ft_fu * objMat.m_ff_y_fu + objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * objMat.m_ff_y_w - objGeo.m_fb * objMat.m_ff_y_fb *objGeo.m_ft_fu - objGeo.m_fb * objMat.m_ff_y_fb * objGeo.m_fh_w - objGeo.m_fh * objGeo.m_fb * objMat.m_ff_y_fb) / (objGeo.m_fb * objMat.m_ff_y_fb); rW_pl_y_wh = objGeo.m_fh_w * 2.0f * objGeo.m_ft_w * (rz_pl_0 -objGeo.m_ft_fu - objGeo.m_fh_w / 2.0f); m_fM_pl_y = objGeo.m_fb *objGeo.m_ft_fu * (rz_pl_0 -objGeo.m_ft_fu / 2.0f) * objMat.m_ff_y_fu + rW_pl_y_wh * objMat.m_ff_y_w + objGeo.m_fb * objGeo.m_ft_fb * (sqr(objGeo.m_fh - rz_pl_0) / 2.0f + sqr(rz_pl_0 - objGeo.m_fh_w -objGeo.m_ft_fu) / 2.0f) * objMat.m_ff_y_fb; } // 6.2.8 float rW_pl_y_w = m_fEta * rW_pl_y_wh; // 6.2.6(3) d) // 6.2.8 float rW_pl_z_fo = 2.0f * (objGeo.m_fb / 2.0f * objGeo.m_ft_fu * objGeo.m_fb / 4.0f); float rW_pl_z_fu = 2.0f * (objGeo.m_fb / 2.0f * objGeo.m_ft_fb * objGeo.m_fb / 4.0f); float rW_pl_z_f = rW_pl_z_fo + rW_pl_z_fu; // 6.2.6(3) e) m_fM_pl_z = objCrSc.m_fW_pl_z * objMat.m_ff_y_w + rW_pl_z_fo * (objMat.m_ff_y_fu - objMat.m_ff_y_w) + rW_pl_z_fu * (objMat.m_ff_y_fb - objMat.m_ff_y_w); //bGeschlQuerschnitt = TRUE; m_fA_k = (objGeo.m_fb - (objGeo.m_ft_wl + objGeo.m_ft_wr) / 2.0f) * (objGeo.m_fh - (objGeo.m_ft_fu + objGeo.m_ft_fb) / 2.0f); // Symetriu urcovat uy po nacitani roymerov a priereyovych charakteristik /* if (Math.Abs(m_fz_S - objGeo.m_fh / 2.0f) > objGeo.m_fh * 1.0e - 3f) bDoppeltSymmQuerschnitt = FALSE; */ //bQuerschn_fuer_InterVerf_2_moeglich = TRUE; } }