protected double GetFcrGeneral() { SectionRectangular r = new SectionRectangular(t_w, h_o); SteelMaterial mat = new SteelMaterial(Material.YieldStress); CalcLog log = new CalcLog(); AffectedElementInFlexure flexuralElement = new AffectedElementInFlexure(r, mat, log); return flexuralElement.GetPlateBucklingCriticalStress(c); #region Obsolete //double lambda = GetLambda(); //double F_y = Material.YieldStress; //double Q; //if (lambda<=0.7) //{ // Q = 1.0; //} //else if (lambda<=1.41) //{ // Q = (1.34 - 0.468 * lambda); //} //else //{ // Q = ((1.3) / (Math.Pow(lambda, 2))); //} //double F_cr = F_y * Q; //return F_cr; #endregion }
public void ConnectedPlateReturnsFlexuralStrength() { ICalcLog log = new CalcLog(); SectionRectangular Section = new SectionRectangular(0.5, 8); ISteelMaterial Material = new SteelMaterial(50); AffectedElementInFlexure element = new AffectedElementInFlexure(Section, Material, log); double phiM_n = element.GetFlexuralStrength(); Assert.AreEqual(360.0, phiM_n); }
public static Dictionary<string, object> ConnectedElementStrengthInFlexure(CustomProfile Shape, double L_b, double F_y, double F_u, bool HasHolesInTensionFlange = false, double A_fg = 0, double A_fn = 0, bool IsCompactDoublySymmetricForFlexure = true, double C_b = 1, string Code = "AISC360-10") { //Default values double phiM_n = 0; //Calculation logic: ICalcLog log = new CalcLog(); ISection Isec = Shape.Section as ISection; ISteelMaterial Material = new SteelMaterial(F_y, F_u, SteelConstants.ModulusOfElasticity, SteelConstants.ShearModulus); AffectedElementInFlexure element = new AffectedElementInFlexure(Isec, F_y, F_u, HasHolesInTensionFlange, A_fg, A_fn, IsCompactDoublySymmetricForFlexure); phiM_n = element.GetFlexuralStrength(); return new Dictionary<string, object> { { "phiM_n", phiM_n } }; }
public void ExtendedPlateBucklingFlexuralStrength() { double phiR_n; double h_o = 9.0; double t_w = 0.5; SectionRectangular r = new SectionRectangular(t_w, h_o); SteelMaterial mat = new SteelMaterial(36); CalcLog log = new CalcLog(); AffectedElementInFlexure flexuralElement = new AffectedElementInFlexure(r, mat, log); double lambda = flexuralElement.GetLambda(10); double refValue = 0.408; double actualTolerance = EvaluateActualTolerance(lambda, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }