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 double GetExtendedSinglePlateFlexuralBucklingStrength(double F_y, double t_pl, double d_pl, double L_pl) { SectionRectangular r = new SectionRectangular(t_pl, d_pl); SteelMaterial mat = new SteelMaterial(F_y); CalcLog log = new CalcLog(); AffectedElementInFlexure flexuralElement = new AffectedElementInFlexure(r, mat, log); return(flexuralElement.GetPlateFlexuralBucklingStrength(L_pl)); }
public double GetFlexuralStrength() { AffectedElementInFlexure ae = new AffectedElementInFlexure(Section, null, Material.YieldStress, Material.UltimateStress, true, true); //Confirm if need to use Z_x //double F_y = Material.YieldStress; //double S_x = Math.Min(this.Section.S_xTop, this.Section.S_xBot); return(ae.GetFlexuralStrength(0.0)); }
public void ConnectedPlateReturnsFlexuralStrength() { ICalcLog log = new CalcLog(); SectionRectangular Section = new SectionRectangular(0.5, 8); SectionOfPlateWithHoles NetSection = new SectionOfPlateWithHoles("", 0.5, 8, 2, 0.01, 2, 2, new Common.Mathematics.Point2D(0, 0)); AffectedElementInFlexure element = new AffectedElementInFlexure(Section, NetSection, 50, 65.0); double phiM_n = element.GetFlexuralStrength(0); Assert.True(360.0 == 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); }
public static Dictionary <string, object> ConnectedElementStrengthInFlexure(CustomProfile GrossShape, CustomProfile NetShape, double F_y, double F_u, double L_b = 0, bool IsCompactDoublySymmetricForFlexure = true, double C_b = 1, string Code = "AISC360-10") { //Default values double phiM_n = 0; //Calculation logic: ICalcLog log = new CalcLog(); bool grossShapeValid = false, netShapeValid = false; //if (GrossShape.Section is ISectionRectangular || GrossShape.Section is ISectionI) //{ // grossShapeValid = true; //} //if (NetShape.Section is ISectionRectangular || NetShape.Section is ISectionI) //{ // netShapeValid = true; //} //if (grossShapeValid != true || netShapeValid!=true) //{ // throw new Exception("Specify an I-shape or Rectangular shape as gross and net sections"); //} AffectedElementInFlexure element = new AffectedElementInFlexure(GrossShape.Section, NetShape.Section, F_y, F_u, IsCompactDoublySymmetricForFlexure); phiM_n = element.GetFlexuralStrength(L_b); return(new Dictionary <string, object> { { "phiM_n", phiM_n } }); }
public static Dictionary <string, object> ConnectedElementStrengthInFlexure(CustomProfile GrossShape, CustomProfile NetShape, double F_y, double F_u, double L_b = 0, bool IsCompactDoublySymmetricForFlexure = true, double C_b = 1, string Code = "AISC360-10") { //Default values double phiM_n = 0; ICalcLog log = new CalcLog(); bool grossShapeValid = false, netShapeValid = false; AffectedElementInFlexure element = new AffectedElementInFlexure(GrossShape.Section, NetShape.Section, F_y, F_u, IsCompactDoublySymmetricForFlexure); phiM_n = element.GetFlexuralStrength(L_b); return(new Dictionary <string, object> { { "phiM_n", phiM_n } }); }