private void CreateBeam() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection section = AiscShapeFactory.GetShape("C15X33.9", ShapeTypeSteel.Channel); SteelMaterial mat = new SteelMaterial(36.0, 29000); beam = factory.GetBeam(section, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); }
private void CreateBeam() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); ISection section = new SectionTee("", 8, 4, 0.5, 0.5); SteelMaterial mat = new SteelMaterial(36.0, 29000); beam = factory.GetBeam(section, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); }
private void CreateBeam() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection section = AiscShapeFactory.GetShape("W18X35", ShapeTypeSteel.IShapeRolled); SteelMaterial mat = new SteelMaterial(50.0,29000); beam = factory.GetBeam(section,mat,null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); }
private void CreateBeam() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection section = AiscShapeFactory.GetShape("HSS8X6X.500", ShapeTypeSteel.RectangularHSS); SteelMaterial mat = new SteelMaterial(46.0,29000); beam = factory.GetBeam(section,mat,null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); }
private void CreateBeam() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection section = AiscShapeFactory.GetShape("HSS8X6X.500", ShapeTypeSteel.RectangularHSS); SteelMaterial mat = new SteelMaterial(46.0, 29000); beam = factory.GetBeam(section, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); }
private ISteelBeamFlexure CreateRhsBeam(CompactnessClassFlexure FlangeCompactness, FlexuralCompressionFiberPosition compressionFiberPosition, CompactnessClassFlexure WebCompactness, ISectionTube RhsSec, ISteelMaterial Material, MomentAxis MomentAxis, ICalcLog Log) { SteelRhsSection steelSection = new SteelRhsSection(RhsSec, Material); ISteelBeamFlexure beam = null; beam = new BeamRectangularHss(steelSection, compressionFiberPosition, MomentAxis, Log); return(beam); }
public static Dictionary <string, object> FlexuralLateralTorsionalBuckling(CustomProfile Shape, double F_y, double L_b, double C_b = 1.0, string BendingAxis = "XAxis", string FlexuralCompressionLocation = "Top", string FlexuralBracingCase = "NoLateralBracing", double E = 29000, bool IsRolledMember = true, string Code = "AISC360-10") { //Default values double phiM_n = 0; bool IsApplicableLimitState = false; //Calculation logic: MomentAxis Axis; bool IsValidStringAxis = Enum.TryParse(BendingAxis, true, out Axis); if (IsValidStringAxis == false) { throw new Exception("Axis selection not recognized. Check input string."); } FlexuralCompressionFiberPosition FlexuralCompression; //Calculation logic: bool IsValidStringCompressionLoc = Enum.TryParse(FlexuralCompressionLocation, true, out FlexuralCompression); if (IsValidStringCompressionLoc == false) { throw new Exception("Flexural compression location selection not recognized. Check input string."); } FlexuralAndTorsionalBracingType Bracing; //Calculation logic: bool IsValidStringBracing = Enum.TryParse(FlexuralBracingCase, true, out Bracing); if (IsValidStringBracing == false) { throw new Exception("Flexural bracing case selection not recognized. Check input string."); } SteelMaterial mat = new SteelMaterial(F_y, E); FlexuralMemberFactory factory = new FlexuralMemberFactory(); ISteelBeamFlexure beam = factory.GetBeam(Shape.Section, mat, null, Axis, FlexuralCompression, IsRolledMember); SteelLimitStateValue LTB = beam.GetFlexuralLateralTorsionalBucklingStrength(C_b, L_b, FlexuralCompression, Bracing); phiM_n = LTB.Value; IsApplicableLimitState = LTB.IsApplicable; return(new Dictionary <string, object> { { "phiM_n", phiM_n } , { "IsApplicableLimitState", IsApplicableLimitState } }); }
public void PipeShapeBeam() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection r = AiscShapeFactory.GetShape("HSS2.5X.188"); SteelMaterial mat = new SteelMaterial(35.0, 29000); ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.YAxis, FlexuralCompressionFiberPosition.Left); Assert.IsTrue(beam12 != null); }
public void FactoryReturnsChannel() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISectionChannel r = new SectionChannel("", 12.0, 6, 0.4, 0.25); SteelMaterial mat = new SteelMaterial(50.0, 29000); ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); Assert.IsTrue(true); }
public static Dictionary <string, object> LimitingLengthForFlexuralYielding(CustomProfile Shape, double F_y, string BendingAxis = "XAxis", string FlexuralCompressionLocation = "Top", double E = 29000, bool IsRolledMember = true, string Code = "AISC360-10") { //Default values double L_pValue = 0; bool IsApplicable = false; //Calculation logic: MomentAxis Axis; //Calculation logic: bool IsValidStringAxis = Enum.TryParse(BendingAxis, true, out Axis); if (IsValidStringAxis == false) { throw new Exception("Axis selection not recognized. Check input string."); } FlexuralCompressionFiberPosition FlexuralCompression; //Calculation logic: bool IsValidStringCompressionLoc = Enum.TryParse(FlexuralCompressionLocation, true, out FlexuralCompression); if (IsValidStringCompressionLoc == false) { throw new Exception("Flexural compression location selection not recognized. Check input string."); } SteelMaterial mat = new SteelMaterial(F_y, E); FlexuralMemberFactory factory = new FlexuralMemberFactory(); ISteelBeamFlexure beam = factory.GetBeam(Shape.Section, mat, null, Axis, FlexuralCompression, IsRolledMember); SteelLimitStateValue L_p = beam.GetLimitingLengthForFullYielding_Lp(FlexuralCompression); L_pValue = L_p.Value; IsApplicable = L_p.IsApplicable; IsApplicable = L_p.IsApplicable; return(new Dictionary <string, object> { { "L_p", L_pValue } , { "IsApplicable", IsApplicable } }); }
public void AngleReturnsFlexuralLTBStrengthL3X3() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection section = AiscShapeFactory.GetShape("L3X3X3/8", ShapeTypeSteel.Angle); SteelMaterial mat = new SteelMaterial(36.0, 29000); ISteelBeamFlexure thisBeam = factory.GetBeam(section, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); SteelLimitStateValue LTB = beam.GetFlexuralLateralTorsionalBucklingStrength(1.0, 4.5 * 12, FlexuralCompressionFiberPosition.Top, Steel.AISC.FlexuralAndTorsionalBracingType.NoLateralBracing); double phiM_n = LTB.Value; double refValue = 88.9; double actualTolerance = EvaluateActualTolerance(phiM_n, refValue); Assert.True(actualTolerance <= tolerance); }
public void DoublySymmetricIReturnsFlexuralLateralTorsionalBucklingStrengthInelasticW12() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection section = AiscShapeFactory.GetShape("W12X26", ShapeTypeSteel.IShapeRolled); SteelMaterial mat = new SteelMaterial(50.0, 29000); ISteelBeamFlexure beam12 = factory.GetBeam(section, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); SteelLimitStateValue LTB = beam12.GetFlexuralLateralTorsionalBucklingStrength(1.0, 19 * 12, FlexuralCompressionFiberPosition.Top, Steel.AISC.FlexuralAndTorsionalBracingType.NoLateralBracing); double phiM_n = LTB.Value; double refValue = 60 * 12; // from AISC Steel Manual Table 3-10 double actualTolerance = EvaluateActualTolerance(phiM_n, refValue); Assert.True(actualTolerance <= tolerance); }
public void RectangleShapeReturnsYieldStrength() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); SectionRectangular r = new SectionRectangular(0.5, 12.0); SteelMaterial mat = new SteelMaterial(50.0, 29000); ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); SteelLimitStateValue Y = beam12.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top); double phiM_n = Y.Value; double refValue = 67.5; double actualTolerance = EvaluateActualTolerance(phiM_n, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
public ISteelBeamFlexure GetBeamCase() { ISteelBeamFlexure beam = null; IShapeCompactness compactness = new ShapeCompactness.IShapeMember(section, IsRolledMember, compressionFiberPosition); CompactnessClassFlexure flangeCompactness = compactness.GetFlangeCompactnessFlexure(); CompactnessClassFlexure webCompactness = compactness.GetWebCompactnessFlexure(); if (flangeCompactness == CompactnessClassFlexure.Compact && webCompactness == CompactnessClassFlexure.Compact) { return(new BeamIDoublySymmetricCompact(section, IsRolledMember, CalcLog)); } else { if (webCompactness == CompactnessClassFlexure.Compact) { return(new BeamIDoublySymmetricCompactWebOnly(section, IsRolledMember, CalcLog)); } else if (webCompactness == CompactnessClassFlexure.Noncompact) { if (flangeCompactness == CompactnessClassFlexure.Compact) { return(new BeamINoncompactWebCompactFlange(section, IsRolledMember, CalcLog)); } else { return(new BeamINoncompactWeb(section, IsRolledMember, CalcLog)); } } else //slender web { if (flangeCompactness == CompactnessClassFlexure.Compact) { return(new BeamISlenderWebCompactFlange(section, IsRolledMember, CalcLog)); } else { return(new BeamISlenderWeb(section, IsRolledMember, CalcLog)); } } } return(beam); }
public void IShapeReturnsWeakAxisYieldStrength() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection r = AiscShapeFactory.GetShape("W18X35"); SteelMaterial mat = new SteelMaterial(50.0, 29000); ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.YAxis, FlexuralCompressionFiberPosition.Left); SteelLimitStateValue Y = beam12.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top); double phiM_n = Y.Value; double refValue = 0.9 * 8.06 * 50; // phi*Z_y*Fy double actualTolerance = EvaluateActualTolerance(phiM_n, refValue); Assert.True(actualTolerance <= tolerance); }
public void IShapeReturnsYieldStrength() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection r = AiscShapeFactory.GetShape("W18X35"); SteelMaterial mat = new SteelMaterial(50.0, 29000); ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); SteelLimitStateValue Y = beam12.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top); double phiM_n = Y.Value; double refValue = 249 * 12; // from AISC Steel Manual Table 3-2 double actualTolerance = EvaluateActualTolerance(phiM_n, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
public void DoublySymmetricIReturnsLateralTorsionalStrength() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection r = new SectionI("", 12.2, 6.49, 0.38, 0.23); SteelMaterial mat = new SteelMaterial(50.0, 29000); ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.XAxis, FlexuralCompressionFiberPosition.Top); SteelLimitStateValue LTB = beam12.GetFlexuralLateralTorsionalBucklingStrength(1.0, 19 * 12, FlexuralCompressionFiberPosition.Top, Steel.AISC.FlexuralAndTorsionalBracingType.NoLateralBracing); double phiM_n = LTB.Value; double refValue = 60 * 12; // from AISC Steel Manual Table 3-10 double actualTolerance = EvaluateActualTolerance(phiM_n, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
private ISteelBeamFlexure CreateIBeam(CompactnessClassFlexure FlangeCompactness, CompactnessClassFlexure WebCompactness, ISectionI Section, ISteelMaterial Material, ICalcLog Log, bool IsRolled) { SteelSectionI steelSection = new SteelSectionI(Section, Material); ISteelBeamFlexure beam = null; if (FlangeCompactness == CompactnessClassFlexure.Compact && WebCompactness == CompactnessClassFlexure.Compact) { //F2 beam = new BeamIDoublySymmetricCompact(steelSection, IsRolled, Log); } else if (WebCompactness == CompactnessClassFlexure.Compact && FlangeCompactness != CompactnessClassFlexure.Compact) { //F3 throw new NotImplementedException(); } return(beam); }
public void TubeReturnsWeakAxisYieldStrength() { FlexuralMemberFactory factory = new FlexuralMemberFactory(); AiscShapeFactory AiscShapeFactory = new AiscShapeFactory(); ISection r = AiscShapeFactory.GetShape("HSS8X3X.375"); SteelMaterial mat = new SteelMaterial(46.0, 29000); ISteelBeamFlexure beam12 = factory.GetBeam(r, mat, null, MomentAxis.YAxis, FlexuralCompressionFiberPosition.Top); SteelLimitStateValue Y = beam12.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top); double phiM_n = Y.Value; double refValue = 326.23; double actualTolerance = EvaluateActualTolerance(phiM_n, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
public double GetFlexuralStrength_Vertical(sCrossSection section, eColorMode forceType) { sKodeStructConverter kcon = new sKodeStructConverter(); SteelMaterial mat = kcon.ToKodeStructMaterial_Steel(section); string flexuralCompressional = "Top"; string Code = "AISC360-10"; bool IsRolledMember = true; double phiM_n = 0; MomentAxis Axis = kcon.ToKodeStructMomentAxis(forceType); FlexuralCompressionFiberPosition FlexuralCompression; bool IsValidStringCompressionLoc = Enum.TryParse(flexuralCompressional, true, out FlexuralCompression); if (IsValidStringCompressionLoc == false) { throw new Exception("Flexural compression location selection not recognized. Check input string."); } ISection shape = kcon.ToKodeStructCrossSection(section); FlexuralMemberFactory factory = new FlexuralMemberFactory(); ISteelBeamFlexure beam = factory.GetBeam(shape, mat, null, Axis, FlexuralCompression, IsRolledMember); SteelLimitStateValue Y = beam.GetFlexuralYieldingStrength(FlexuralCompression); phiM_n = Y.Value; if (Y.IsApplicable) { return(phiM_n); } else { return(-1); } }
public ISteelBeamFlexure GetBeam(ISection Shape, ISteelMaterial Material, ICalcLog Log, MomentAxis MomentAxis, FlexuralCompressionFiberPosition compressionFiberPosition, bool IsRolledMember = true) { ISteelBeamFlexure beam = null; if (MomentAxis == Common.Entities.MomentAxis.XAxis) { if (Shape is ISectionI) { ISectionI IShape = Shape as ISectionI; SteelSectionI SectionI = new SteelSectionI(IShape, Material); if (IShape.b_fBot == IShape.b_fTop && IShape.t_fBot == IShape.t_fTop) // doubly symmetric { DoublySymmetricIBeam dsBeam = new DoublySymmetricIBeam(SectionI, Log, compressionFiberPosition, IsRolledMember); beam = dsBeam.GetBeamCase(); } else { SinglySymmetricIBeam ssBeam = new SinglySymmetricIBeam(SectionI, IsRolledMember, compressionFiberPosition, Log); beam = ssBeam.GetBeamCase(); } } else if (Shape is ISolidShape) { ISolidShape solidShape = Shape as ISolidShape; SteelSolidSection SectionSolid = new SteelSolidSection(solidShape, Material); beam = new BeamSolid(SectionSolid, Log, MomentAxis); } else if (Shape is ISectionChannel) { ISectionChannel ChannelShape = Shape as ISectionChannel; SteelChannelSection ChannelSection = new SteelChannelSection(ChannelShape, Material); beam = new BeamChannel(ChannelSection, IsRolledMember, Log); IShapeCompactness compactness = new ShapeCompactness.ChannelMember(ChannelSection, IsRolledMember, compressionFiberPosition); CompactnessClassFlexure flangeCompactness = compactness.GetFlangeCompactnessFlexure(); CompactnessClassFlexure webCompactness = compactness.GetWebCompactnessFlexure(); if (flangeCompactness != CompactnessClassFlexure.Compact || webCompactness != CompactnessClassFlexure.Compact) { throw new Exception("Channels with non-compact and slender flanges or webs are not supported. Revise input."); } } else if (Shape is ISectionPipe) { ISectionPipe SectionPipe = Shape as ISectionPipe; SteelPipeSection PipeSection = new SteelPipeSection(SectionPipe, Material); beam = new BeamCircularHss(PipeSection, Log); } else if (Shape is ISectionTube) { ISectionTube TubeShape = Shape as ISectionTube; SteelRhsSection RectHSS_Section = new SteelRhsSection(TubeShape, Material); beam = new BeamRectangularHss(RectHSS_Section, compressionFiberPosition, MomentAxis, Log); } else if (Shape is ISectionBox) { ISectionBox BoxShape = Shape as ISectionBox; SteelBoxSection BoxSection = new SteelBoxSection(BoxShape, Material); beam = new BeamRectangularHss(BoxSection, compressionFiberPosition, MomentAxis, Log); } else if (Shape is ISectionTee) { ISectionTee TeeShape = Shape as ISectionTee; SteelTeeSection TeeSection = new SteelTeeSection(TeeShape, Material); beam = new BeamTee(TeeSection, Log); } else if (Shape is ISectionAngle) { ISectionAngle Angle = Shape as ISectionAngle; SteelAngleSection AngleSection = new SteelAngleSection(Angle, Material); beam = new BeamAngle(AngleSection, Log, Angle.AngleRotation, MomentAxis, Angle.AngleOrientation); } else if (Shape is ISolidShape) { ISolidShape SolidShape = Shape as ISolidShape; SteelSolidSection SolidSection = new SteelSolidSection(SolidShape, Material); beam = new BeamSolid(SolidSection, Log, MomentAxis); } else { throw new Exception("Specified section type is not supported for this node."); } } else // weak axis { if (Shape is ISectionI) { ISectionI IShape = Shape as ISectionI; SteelSectionI SectionI = new SteelSectionI(IShape, Material); beam = new BeamIWeakAxis(SectionI, IsRolledMember, Log); } else { throw new NotImplementedException(); } } return(beam); }