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_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_MAT___L(C_GEO___L objGeo, ECrScSymmetry1 eSym) { // Main Material Parameters - minimum for all parts Ff_y = GetfykForT(objGeo.m_ft_max); Ff_u = GetfukForT(objGeo.m_ft_max); if (Ff_y <= 0.0f || Ff_u <= 0.0f) { /* return FALSE; continue; */ } FEps = GetEpsForF(); // Auxiliary assignment m_ff_y_w = m_ff_y_f = Ff_y; m_ff_u_w = m_ff_u_f = Ff_u; m_fEps_w = m_fEps_f = FEps; }
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___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); } }
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; } }
public C_GEO___I(ECrScSymmetry1 eSym, ECrScPrType1 eProd) { // Dimmensions if (eSym == ECrScSymmetry1.eDS) { // Doubly symmetrical I ///////////////////////////////////////////////////////// // Load from database /* m_fh; m_fb; m_ft_w; m_ft_f; */ if (eProd == ECrScPrType1.eCrSc_rold) { // load //m_fr; } else { // fload a_s float fa_s = 0f; ///////////////////////////////////////////////////////// m_fr = (float)Math.Sqrt(2.0f) * fa_s; } m_fc_w = m_fh - 2.0f * m_ft_f - 2.0f * m_fr; m_fc_f = m_fb / 2.0f - m_ft_w / 2.0f - m_fr; m_fh_w = m_fh - 2.0f * m_ft_f; m_ft_max = Math.Max(m_ft_w, m_ft_f); m_ft_min = Math.Min(m_ft_w, m_ft_f); } else { // Mono symmetrical I ///////////////////////////////////////////////////////// /* m_fh; m_fb_fu; m_ft_fu; m_ft_w; m_fb_fb; m_ft_fb; */ // load float fa_su = 0f; float fa_sb = 0f; ////////////////////////////////////////////////////////// m_fr_su = (float)Math.Sqrt(2.0f) * fa_su; m_fr_sb = (float)Math.Sqrt(2.0f) * fa_sb; m_fc_w = m_fh - m_ft_fu - m_ft_fb - m_fr_su - m_fr_sb; m_fc_fu = m_fb_fu / 2.0f - m_ft_w / 2.0f - m_fr_su; m_fc_fb = m_fb_fb / 2.0f - m_ft_w / 2.0f - m_fr_sb; m_fh_w = m_fh - m_ft_fu - m_ft_fb; // Pouzit funkciu s params - lubovolny pocet premennych m_ft_max = Math.Max(m_ft_w, m_ft_fu); m_ft_max = Math.Max(m_ft_max, m_ft_fb); m_ft_min = Math.Min(m_ft_w, m_ft_fu); m_ft_min = Math.Min(m_ft_min, m_ft_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_MAT___U(C_GEO___U objGeo, ECrScSymmetry1 eSym) { // Flange / Flanges if (eSym == ECrScSymmetry1.eMS) { m_ff_y_f = GetfykForT(objGeo.m_ft_f); m_ff_u_f = GetfykForT(objGeo.m_ft_f); if (m_ff_y_f <= 0.0f || m_ff_u_f <= 0.0f) { // Exception //return FALSE; //continue; } m_ff_y_fu = m_ff_y_fb = m_ff_y_f; m_ff_u_fu = m_ff_u_fb = m_ff_u_f; m_fEps_f = GetEpsForF(m_ff_y_f); m_fEps_fu = m_fEps_fb = m_fEps_f; } else { // Upper Flange m_ff_y_fu = GetfykForT(objGeo.m_ft_fu); m_ff_u_fu = GetfukForT(objGeo.m_ft_fu); if (m_ff_y_fu <= 0.0f || m_ff_u_fu <= 0.0f) { // Exception //return FALSE; //continue; } m_fEps_fu = GetEpsForF(m_ff_y_fu); // Bottom Flange m_ff_y_fb = GetfykForT(objGeo.m_ft_fb); m_ff_u_fb = GetfukForT(objGeo.m_ft_fb); if (m_ff_y_fb <= 0.0f || m_ff_u_fb <= 0.0f) { // Exception //return FALSE; //continue; } m_fEps_fb = GetEpsForF(m_ff_y_fb); // Minimum for flanges m_ff_y_f = Math.Min(m_ff_y_fu, m_ff_y_fb); m_ff_u_f = Math.Min(m_ff_u_fu, m_ff_u_fb); m_fEps_f = GetEpsForF(m_ff_y_f); } // Web m_ff_y_w = GetfykForT(objGeo.m_ft_w); m_ff_u_w = GetfukForT(objGeo.m_ft_w); if (m_ff_y_w <= 0.0f || m_ff_u_w <= 0.0f) { // Exception //return FALSE; //continue; } m_fEps_w = GetEpsForF(m_ff_y_w); // Main Material Parameters - minimum for all parts Ff_y = Math.Min(m_ff_y_f, m_ff_y_w); Ff_u = Math.Min(m_ff_u_f, m_ff_u_w); FEps = GetEpsForF(); }
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_GEO___L(ECrScSymmetry1 eSym, ECrScPrType1 eProd) { //For all types /* m_fb; m_fh; m_fy_S; m_fz_S; */ // Rolled monosymmetrical if (eProd == ECrScPrType1.eCrSc_rold || eProd == ECrScPrType1.eCrSc_cldfrm && eSym == ECrScSymmetry1.eMS) { // m_ft; // m_fr; m_ft_a = m_ft; m_ft_b = m_ft; } // Rolled asymetrical else if (eProd == ECrScPrType1.eCrSc_rold || eProd == ECrScPrType1.eCrSc_cldfrm && eSym == ECrScSymmetry1.eAS) { m_fh = m_fb; m_ft_a = m_ft; m_ft_b = m_ft; // m_fr; } // Welded monosymmetrical else if (eProd == ECrScPrType1.eCrSc_wld || eProd == ECrScPrType1.eCrSc_wldnorm && eSym == ECrScSymmetry1.eMS) { m_fh = m_fb; // m_ft; m_fr = 0.0f; //m_fz_S = m_fy_S; m_ft_a = m_ft; m_ft_b = m_ft; } // Welded asymmetrical else { /* m_fh; m_fb; m_ft_a; m_ft_b; m_fr = 0.0f; */ } // m_fAlpha_Axis = ; m_fc_a = m_fh - m_ft_b - m_fr; m_fc_b = m_fb - m_ft_a - m_fr; m_ft_max = Math.Max(m_ft_a, m_ft_b); m_ft_min = Math.Min(m_ft_a, m_ft_b); m_ft_w = m_ft_a; m_ft_f = m_ft_b; }