float Get_C_mi_D3(ETrLoadType1 eLT, float fM_i_a, float fM_i_b, float fM_i_s) { // Moment diagram 3 (Table B.3, p. 79) float fAlpha_i_h, fM_i_h; float fPsi_i = oBaseMetal.Get_Psi_i___(fM_i_a, fM_i_b); if (Math.Abs(fM_i_a) > Math.Abs(fM_i_b)) fM_i_h = fM_i_a; else fM_i_h = fM_i_b; // ????????????????????????????????????? // Calculate fAlpha_i_h if (Math.Abs(fM_i_h) <= Math.Abs(fM_i_s) && fM_i_s != 0f) fAlpha_i_h = fM_i_h / fM_i_s; else // Exception { if (fM_i_h / fM_i_s < 0f) fAlpha_i_h = -1f; else fAlpha_i_h = 1f; } // ???????????????????????????????????? if (eLT == ETrLoadType1.eTrLoadType_U) //Uniform loading { if (fAlpha_i_h > 0f) return 0.95f + 0.05f * fAlpha_i_h; else { if (fPsi_i >= 0f) return 0.95f - 0.05f * fAlpha_i_h; else return 0.95f + 0.05f * fAlpha_i_h * (1f + 2f * fPsi_i); } } else /*if (eLT == ETrLoadType1.eTrLoadType_C || eLT != ETrLoadType1.eTrLoadType_U)*/ // Concentrated loading { if (fAlpha_i_h > 0f) return 0.90f + 0.1f * fAlpha_i_h; else { if (fPsi_i >= 0f) return 0.90f - 0.1f * fAlpha_i_h; else return 0.90f + 0.1f * fAlpha_i_h * (1f + 2f * fPsi_i); } } }
float Get_C_mi_D2(ETrLoadType1 eLT, float fM_i_a, float fM_i_b, float fM_i_s) { // Moment diagram 2 (Table B.3, p. 79) float fAlpha_i_s, fM_i_h; float fPsi_i = oBaseMetal.Get_Psi_i___(fM_i_a, fM_i_b); if (Math.Abs(fM_i_a) > Math.Abs(fM_i_b)) fM_i_h = fM_i_a; else fM_i_h = fM_i_b; // ????????????????????????????????????? // Calculate fAlpha_i_s if (Math.Abs(fM_i_s) <= Math.Abs(fM_i_h) && fM_i_h != 0f) fAlpha_i_s = fM_i_s / fM_i_h; else // Exception { if (fM_i_s / fM_i_h < 0f) fAlpha_i_s = -1f; else fAlpha_i_s = 1f; } // ???????????????????????????????????? if (eLT == ETrLoadType1.eTrLoadType_U) //Uniform loading { if (fAlpha_i_s > 0f) return (float)Math.Max(0.2f + 0.8f * fAlpha_i_s, 0.4f); else { if (fPsi_i >= 0f) return (float)Math.Max(0.1f - 0.8f * fAlpha_i_s, 0.4f); else return (float)Math.Max(0.1f * (0.1f - fPsi_i) - 0.8f * fAlpha_i_s, 0.4f); } } else /*if (eLT == ETrLoadType1.eTrLoadType_C || eLT != ETrLoadType1.eTrLoadType_U)*/ // Concentrated loading { if (fAlpha_i_s > 0) return (float)Math.Max(0.2 + 0.8 * fAlpha_i_s, 0.4f); else { if (fPsi_i >= 0f) return (float)Math.Max(-0.8 * fAlpha_i_s, 0.4f); else return (float)Math.Max(0.2 * (-fPsi_i) - 0.8 * fAlpha_i_s, 0.4f); } } }