Ejemplo n.º 1
0
        public IShearMember GetShearMemberCircular(double D, double t_nom, bool Is_SAW_member, double L_v, double F_y, double E)
        {
            ISteelMaterial      material = new SteelMaterial(F_y, E);
            ShearMemberCircular member   = new ShearMemberCircular(D, t_nom, Is_SAW_member, L_v, material);

            return(member);
        }
Ejemplo n.º 2
0
        public IShearMember GetShearMemberNonCircular(ShearNonCircularCase ShearCase, double h, double t_w, double a, double F_y, double E)
        {
            ISteelMaterial material = new SteelMaterial(F_y, E);
            IShearMember   member   = null;
            bool           IsTeeShape;


            switch (ShearCase)
            {
            case ShearNonCircularCase.MemberWithStiffeners:
                IsTeeShape = false;
                member     = new ShearMemberWithStiffeners(h, t_w, a, material, IsTeeShape);
                break;

            case ShearNonCircularCase.Tee:
                IsTeeShape = true;
                member     = new ShearMemberWithoutStiffeners(h, t_w, material, IsTeeShape);
                break;

            case ShearNonCircularCase.Box:
                member = new ShearMemberBox(h, t_w, material);
                break;

            default:
                IsTeeShape = false;
                member     = new ShearMemberWithoutStiffeners(h, t_w, material, IsTeeShape);
                break;
            }
            return(member);
        }
Ejemplo n.º 3
0
        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
        }
Ejemplo n.º 4
0
        public void HssGappedKConnectionReturnsYieldingOfBranchesFromUnevenDistributionValue()
        {
            SectionTube     ch    = new SectionTube(null, 12, 12, 0.625, 0.581);
            SteelMaterial   mat   = new SteelMaterial(46.0);
            SteelRhsSection Chord = new SteelRhsSection(ch, mat);

            SectionTube     mainBranch = new SectionTube(null, 8, 8, 0.375, 0.349);
            SteelRhsSection MainBranch = new SteelRhsSection(mainBranch, mat);

            SectionTube     secBranch       = new SectionTube(null, 8, 8, 0.375, 0.349);
            SteelRhsSection SecondaryBranch = new SteelRhsSection(secBranch, mat);


            IHssTrussBranchConnection con = new RhsTrussGappedKConnection(Chord, MainBranch, 45,
                                                                          SecondaryBranch, 45,
                                                                          AxialForceType.Compression, AxialForceType.Tension, false, 430, 0
                                                                          );
            //Note: not clear in the design guide why moment is ignored in chord utilization calculation
            double phiP_nMain          = con.GetChordWallPlastificationStrength(true).Value;
            double refValueMain        = 415;
            double actualToleranceMain = EvaluateActualTolerance(phiP_nMain, refValueMain);

            Assert.True(actualToleranceMain <= tolerance);

            double phiP_nSec          = con.GetBranchYieldingFromUnevenLoadDistributionStrength(false).Value;
            double refValueSec        = 415;
            double actualToleranceSec = EvaluateActualTolerance(phiP_nSec, refValueSec);

            Assert.True(actualToleranceSec <= tolerance);
        }
Ejemplo n.º 5
0
        public AffectedElementInCompression(double F_y, double b, double t)
        {
            SteelMaterial      material = new SteelMaterial(F_y, double.PositiveInfinity, SteelConstants.ModulusOfElasticity, SteelConstants.ShearModulus);
            SectionRectangular section  = new SectionRectangular(b, t);

            Section = new SteelPlateSection(section, material);
        }
Ejemplo n.º 6
0
        public void HssOverlappedKConnectionReturnsYieldingOfBranchesFromUnevenDistributionValue()
        {
            SectionTube     ch    = new SectionTube(null, 8, 8, 0.5, 0.465);
            SteelMaterial   mat   = new SteelMaterial(46.0);
            SteelRhsSection Chord = new SteelRhsSection(ch, mat);

            SectionTube     mainBranch = new SectionTube(null, 6, 4, 5.0 / 16.0, 0.291);
            SteelRhsSection MainBranch = new SteelRhsSection(mainBranch, mat);

            SectionTube     secBranch       = new SectionTube(null, 5, 3, 1.0 / 4.0, 0.233);
            SteelRhsSection SecondaryBranch = new SteelRhsSection(secBranch, mat);

            double O_v = 0.533;

            IHssTrussBranchConnection con = new RhsTrussOverlappedConnection(Chord, MainBranch, 45,
                                                                             SecondaryBranch, 45,
                                                                             AxialForceType.Compression, AxialForceType.Tension, false, 0, 0, O_v
                                                                             );

            double phiP_nMain          = con.GetBranchYieldingFromUnevenLoadDistributionStrength(true).Value;
            double refValueMain        = 236;
            double actualToleranceMain = EvaluateActualTolerance(phiP_nMain, refValueMain);

            Assert.True(actualToleranceMain <= tolerance);

            double phiP_nSec          = con.GetBranchYieldingFromUnevenLoadDistributionStrength(false).Value;
            double refValueSec        = 151;
            double actualToleranceSec = EvaluateActualTolerance(phiP_nSec, refValueSec);

            Assert.True(actualToleranceSec <= tolerance);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        protected double GetFcrGeneral()
        {
            SectionRectangular r   = new SectionRectangular(t_w, h_o);
            SteelMaterial      mat = new SteelMaterial(Material.YieldStress);
            CalcLog            log = new CalcLog();


            throw new NotImplementedException();
        }
        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 CreateColumn(double L_ex, double L_ey, double L_ez = 0)
        {
            CompressionMemberFactory factory      = new CompressionMemberFactory();
            AiscShapeFactory         ShapeFactory = new AiscShapeFactory();
            ISection      section = ShapeFactory.GetShape("PIPE8SCH80");
            SteelMaterial mat     = new SteelMaterial(35.0, 29000);

            L_ez   = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section, mat, L_ex, L_ey, L_ez);
        }
Ejemplo n.º 12
0
        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));
        }
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0, string Shape = "W14X82")
        {
            CompressionMemberFactory factory = new CompressionMemberFactory();
            AiscShapeFactory AiscShapeFactory = new AiscShapeFactory();
            ISection section = AiscShapeFactory.GetShape(Shape, ShapeTypeSteel.IShapeRolled);
            SteelMaterial mat = new SteelMaterial(50.0,29000);
            L_ez = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section,mat, L_ex, L_ey, L_ez);

        }
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0)
        {
            CompressionMemberFactory factory          = new CompressionMemberFactory();
            AiscShapeFactory         AiscShapeFactory = new AiscShapeFactory();
            ISection      section = AiscShapeFactory.GetShape("HSS8X6X.500", ShapeTypeSteel.RectangularHSS);
            SteelMaterial mat     = new SteelMaterial(46.0, 29000);

            L_ez   = L_ez == 0? L_ex : L_ez;
            column = factory.GetCompressionMember(section, mat, L_ex, L_ey, L_ez);
        }
Ejemplo n.º 16
0
        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 }
            });
        }
Ejemplo n.º 17
0
        private void CreateElements()
        {
            SectionTube   ch  = new SectionTube(null, 8, 8, 1 / 4.0, 0.93 * (1.0 / 4.0), 0.35);
            SteelMaterial mat = new SteelMaterial(46.0);

            Chord = new SteelRhsSection(ch, mat);

            SectionTube br = new SectionTube(null, 6, 8, 3.0 / 8.0, 0.93 * (3.0 / 8.0), 0.35);

            Branch = new SteelRhsSection(br, mat);
        }
Ejemplo n.º 18
0
        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 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);
        }
Ejemplo n.º 20
0
        public AffectedElementInFlexure(ISection section, double F_y, double F_u, bool HasHolesInTensionFlange, double A_fg, double A_fn, bool IsCompactDoublySymmetricForFlexure, bool IsRolled = false)
            : base(F_y, F_u)
        {
            SteelMaterial material = new SteelMaterial(F_y, F_u, SteelConstants.ModulusOfElasticity, SteelConstants.ShearModulus);

            this.Section = new SteelGeneralSection(section, material);
            this.A_fg    = A_fg;
            this.A_fn    = A_fn;
            this.HasHolesInTensionFlange            = HasHolesInTensionFlange;
            this.IsCompactDoublySymmetricForFlexure = IsCompactDoublySymmetricForFlexure;
            this.IsRolled = IsRolled;
        }
        public void E1AReturnsAxialCapacity()
        {
            //AiscCatalogShape section = new AiscCatalogShape("W14X90", null);

            AiscShapeFactory AiscShapeFactory = new AiscShapeFactory();
            ISectionI        section          = (ISectionI)AiscShapeFactory.GetShape("W14X90", ShapeTypeSteel.IShapeRolled);
            ISteelMaterial   Material         = new SteelMaterial(65, 29000);
            ISteelSection    steelSection     = new SteelSectionI(section, Material);
            IShapeCompact    col   = new IShapeCompact(steelSection, true, 19 * 12, 19 * 12, 19 * 12);
            double           phiPn = col.GetFlexuralBucklingStrength().Value;

            Assert.True(phiPn == 903);
        }
Ejemplo n.º 22
0
        private void CreateColumn(double L_ex, double L_ey, double L_ez = 0)
        {
            double        d   = 17.0;
            double        b_f = 8.0;
            double        t_f = 1.0;
            double        t_w = 0.25;
            ISection      r   = new SectionI("", d, b_f, t_f, t_w);
            SteelMaterial mat = new SteelMaterial(50.0, 29000);

            L_ez = L_ez == 0? L_ex : L_ez;
            CompressionMemberFactory factory = new CompressionMemberFactory();

            column = factory.GetCompressionMember(r, mat, L_ex, L_ey, L_ez);
        }
        public double GetFlexuralStrength_Vertical(sCrossSection section, eColorMode forceType, IFrameSet fs)
        {
            sKodeStructConverter kcon = new sKodeStructConverter();
            SteelMaterial        mat  = kcon.ToKodeStructMaterial_Steel(section);

            string Code   = "AISC360-10";
            double phiM_n = 0;

            double b_eff  = this.GetBeamEffectiveSlabWidth(fs);
            double SumQ_n = this.GetSumOfStudsStrength(fs);
            // assuming,
            // Shear Stud Anchor
            // Light Weight Concrete : 4ksi
            // solid concrete thickness = 2.5"
            // rib thickness = 3"
            //
            double h_solid  = 2.5;
            double h_rib    = 3.0;
            double F_y      = mat.YieldStress; //?? unit ?? F_y of what??
            double fc_prime = 4.0;             //?? unit ??

            MomentAxis Axis = kcon.ToKodeStructMomentAxis(forceType);

            //?? just this for composite?
            ISection shape = kcon.ToKodeStructCrossSection(section);

            if (shape is ISliceableShapeProvider)
            {
                ISliceableShapeProvider prov = shape as ISliceableShapeProvider;
                ISliceableSection       sec  = prov.GetSliceableShape();
                CompositeBeamSection    cs   = new CompositeBeamSection(sec, b_eff, h_solid, h_rib, F_y, fc_prime);
                phiM_n = cs.GetFlexuralStrength(SumQ_n);
            }
            else
            {
                if (shape is ISliceableSection)
                {
                    ISliceableSection    sec = shape as ISliceableSection;
                    CompositeBeamSection cs  = new CompositeBeamSection(sec, b_eff, h_solid, h_rib, F_y, fc_prime);
                    phiM_n = cs.GetFlexuralStrength(SumQ_n);
                }
                else
                {
                    throw new Exception("Shape type not supported. Please provide a shape object of standard geometry");
                }
            }
            return(phiM_n);
        }
        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 }
            });
        }
Ejemplo n.º 25
0
        public AffectedElementInFlexure(ISection GrossSection, ISection NetSection,
                                        double F_y, double F_u, bool IsCompactDoublySymmetricForFlexure = true, bool IsRolled = false)
            : base(F_y, F_u)
        {
            SteelMaterial material = new SteelMaterial(F_y, F_u, SteelConstants.ModulusOfElasticity, SteelConstants.ShearModulus);

            this.Section           = new SteelGeneralSection(GrossSection, material);
            this.SectionNet        = new SteelGeneralSection(NetSection, material);
            this.GrossSectionShape = GrossSection;
            this.NetSectionShape   = NetSection;

            this.IsCompactDoublySymmetricForFlexure = IsCompactDoublySymmetricForFlexure;
            this.IsRolled = IsRolled;

            Log = new CalcLog();
        }
Ejemplo n.º 26
0
        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);
        }
Ejemplo n.º 27
0
        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 double GetLowerBoundMomentOfInertia(sCrossSection cCheck, IFrameSet fs)
        {
            sKodeStructConverter kcon = new sKodeStructConverter();
            SteelMaterial        mat  = kcon.ToKodeStructMaterial_Steel(fs.crossSection);
            double I_LB   = 0;
            double b_eff  = this.GetBeamEffectiveSlabWidth(fs);
            double SumQ_n = this.GetSumOfStudsStrength(fs);
            // assuming,
            // Shear Stud Anchor
            // Light Weight Concrete : 4ksi
            // solid concrete thickness = 2.5"
            // rib thickness = 3"
            //
            double h_solid  = 2.5;
            double h_rib    = 3.0;
            double F_y      = mat.YieldStress; //?? unit ?? F_y of what??
            double fc_prime = 4.0;             //?? unit ??

            //check lowerBound Moment of Inertia by check section???
            ISection shape = kcon.ToKodeStructCrossSection(cCheck);

            if (shape is ISliceableShapeProvider)
            {
                ISliceableShapeProvider prov = shape as ISliceableShapeProvider;
                ISliceableSection       sec  = prov.GetSliceableShape();
                CompositeBeamSection    cs   = new CompositeBeamSection(sec, b_eff, h_solid, h_rib, F_y, fc_prime);
                I_LB = cs.GetLowerBoundMomentOfInertia(SumQ_n);
            }
            else
            {
                if (shape is ISliceableSection)
                {
                    ISliceableSection    sec = shape as ISliceableSection;
                    CompositeBeamSection cs  = new CompositeBeamSection(sec, b_eff, h_solid, h_rib, F_y, fc_prime);
                    I_LB = cs.GetLowerBoundMomentOfInertia(SumQ_n);
                }
                else
                {
                    throw new Exception("Shape type not supported. Please provide a shape object of standard geometry");
                }
            }



            return(I_LB);
        }
        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);
        }
Ejemplo n.º 30
0
        public void DoublySymmetricIReturnsFlexuralMinorAxisYieldingStrength()
        {
            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.YAxis, FlexuralCompressionFiberPosition.Top);


            SteelLimitStateValue Y =
                beam.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = Y.Value;
            double refValue        = 0.9 * Math.Min(50.0 * 8.06, 1.6 * 50.0 * 5.12);
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }