Ejemplo n.º 1
0
        public virtual SteelLimitStateValue GetFlexuralFlangeLocalBucklingStrength(FlexuralCompressionFiberPosition CompressionLocation)
        {
            double phiM_n           = GetCompressionFlangeLocalBucklingCapacity();
            SteelLimitStateValue ls = new SteelLimitStateValue(phiM_n, true);

            return(ls);
        }
Ejemplo n.º 2
0
        public virtual SteelLimitStateValue GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition CompressionLocation)
        {
            double phiM_n           = GetYieldingMomentCapacity(CompressionLocation);
            SteelLimitStateValue ls = new SteelLimitStateValue(phiM_n, true);

            return(ls);
        }
Ejemplo n.º 3
0
        public SteelLimitStateValue GetLocalCripplingAndYieldingStrengthOfHss()
        {
            //(K1-9) (K1-10) (K1-11)
            double phiR_n;
            //= GetLocalYieldingOfPlate();
            //double phiR_n1 =

            SteelLimitStateValue SideYieldingLimitState = GetHssSideYielding();
            SteelLimitStateValue LocalCripplingLimitState;

            if (PlateType == TransversePlateType.TConnection)
            {
                LocalCripplingLimitState = GetLocalCripplingOfSideWallsTee();
            }
            else
            {
                LocalCripplingLimitState = GetLocalCripplingOfSideWallsTee();
            }
            if (SideYieldingLimitState.IsApplicable == true)
            {
                if (SideYieldingLimitState.Value < LocalCripplingLimitState.Value)
                {
                    return(SideYieldingLimitState);
                }
                else
                {
                    return(LocalCripplingLimitState);
                }
            }
            else
            {
                return(LocalCripplingLimitState);
            }
        }
Ejemplo n.º 4
0
        public override SteelLimitStateValue GetTorsionalAndFlexuralTorsionalBucklingStrength()
        {
            SteelLimitStateValue ls;

            ISectionAngle a = this.Section.Shape as ISectionAngle;

            if (a == null)
            {
                throw new Exception("Incorrect section type. Section must be of type ISectionAngle.");
            }
            if (Math.Max(a.b, a.d) / a.t <= 20.0)
            {
                ls = new SteelLimitStateValue(-1, false);
            }
            else
            {
                double FeTorsionalBuckling  = GetTorsionalElasticBucklingStressFe();
                double FcrTorsionalBuckling = GetCriticalStressFcr(FeTorsionalBuckling, 1.0);
                double Qtors   = GetReductionFactorQ(FcrTorsionalBuckling);
                double FcrTors = GetCriticalStressFcr(FeTorsionalBuckling, Qtors);

                double phiP_n = GetDesignAxialStrength(FcrTors);
                ls = new SteelLimitStateValue(phiP_n, true);
            }
            return(ls);
        }
Ejemplo n.º 5
0
        public override SteelLimitStateValue GetFlexuralTensionFlangeYieldingStrength(FlexuralCompressionFiberPosition CompressionLocation)
        {
            double phiM_n           = GetTensionFlangeYieldingCapacity(CompressionLocation);
            SteelLimitStateValue ls = new SteelLimitStateValue(phiM_n, true);

            return(ls);
        }
Ejemplo n.º 6
0
        public override SteelLimitStateValue GetFlexuralLegOrStemBucklingStrength(FlexuralCompressionFiberPosition CompressionLocation,
                                                                                  FlexuralAndTorsionalBracingType BracingType)
        {
            CompactnessClassFlexure StemCompactness = this.Compactness.GetWebCompactnessFlexure();
            // for compact angles this limit state is not applicable

            SteelLimitStateValue ls = null;

            if (StemCompactness == General.Compactness.CompactnessClassFlexure.Compact)
            {
                ls = new SteelLimitStateValue(-1, false);
                return(ls);
            }
            else if (StemCompactness == CompactnessClassFlexure.Noncompact)
            {
                double S_c = GetSectionModulus(CompressionLocation, true, BracingType);
                //F10-7
                double M_n    = F_y * S_c * (2.43 - 1.72 * (((b) / (t))) * Math.Sqrt(((F_y) / (E))));
                double phiM_n = 0.9 * M_n;
                ls = new SteelLimitStateValue(phiM_n, true);
            }
            else
            {
                double F_cr = ((0.71 * E) / (Math.Pow((((b) / (t))), 2)));
                double S_c  = GetSectionModulus(CompressionLocation, true, BracingType);
                //(F10-8)
                double M_n    = F_cr * S_c;
                double phiM_n = 0.9 * M_n;
                ls = new SteelLimitStateValue(phiM_n, true);
            }

            return(ls);
        }
Ejemplo n.º 7
0
        public override SteelLimitStateValue GetFlexuralTensionFlangeYieldingStrength(FlexuralCompressionFiberPosition CompressionLocation)
        {
            SteelLimitStateValue ls = new SteelLimitStateValue();

            ls.IsApplicable = false;
            return(ls);
        }
Ejemplo n.º 8
0
        public virtual SteelLimitStateValue GetFlexuralLegOrStemBucklingStrength(FlexuralCompressionFiberPosition CompressionLocation,
                                                                                 FlexuralAndTorsionalBracingType BracingType)
        {
            SteelLimitStateValue ls = new SteelLimitStateValue(-1, false);

            return(ls);
        }
Ejemplo n.º 9
0
        public SteelLimitStateValue GetPlasticMomentCapacity(MomentAxis MomentAxis)

        {
            SteelLimitStateValue ls = new SteelLimitStateValue();
            double phiM_n;
            double M_n = 0.0;

            switch (MomentAxis)
            {
            case MomentAxis.XAxis:
                M_n = GetMajorNominalPlasticMoment();
                break;

            case MomentAxis.YAxis:
                M_n = GetMinorNominalPlasticMoment();
                break;

            default:
                throw new FlexuralBendingAxisException();
                break;
            }
            phiM_n          = 0.9 * M_n;
            ls.Value        = phiM_n;
            ls.IsApplicable = true;
            return(ls);
        }
Ejemplo n.º 10
0
        public virtual SteelLimitStateValue GetFlexuralLateralTorsionalBucklingStrength(double C_b, double L_b, FlexuralCompressionFiberPosition CompressionLocation,
                                                                                        FlexuralAndTorsionalBracingType BracingType, MomentAxis MomentAxis)
        {
            double phiM_n           = GetFlexuralTorsionalBucklingMomentCapacity(CompressionLocation, L_b);
            SteelLimitStateValue ls = new SteelLimitStateValue(-1, false);

            return(ls);
        }
Ejemplo n.º 11
0
        public override SteelLimitStateValue GetLimitingLengthForFullYielding_Lp(FlexuralCompressionFiberPosition CompressionLocation)
        {
            double r_t = GetEffectiveRadiusOfGyration_r_t(CompressionLocation);
            double L_p = GetL_p(r_t);
            SteelLimitStateValue ls = new SteelLimitStateValue(L_p, true);

            return(ls);
        }
Ejemplo n.º 12
0
        public override SteelLimitStateValue GetLimitingLengthForInelasticLTB_Lr(FlexuralCompressionFiberPosition CompressionLocation)
        {
            double rt = GetEffectiveRadiusOfGyration_r_t(CompressionLocation);
            double Lr = GetL_r();
            SteelLimitStateValue ls = new SteelLimitStateValue(Lr, true);

            return(ls);
        }
Ejemplo n.º 13
0
        public override SteelLimitStateValue GetFlexuralBucklingStrength()
        {
            double FcrFlex = CalculateCriticalStress(false);
            double phiP_n  = GetDesignAxialStrength(FcrFlex);

            SteelLimitStateValue ls = new SteelLimitStateValue(phiP_n, true);

            return(ls);
        }
        public void RectangularHSSReturns_16ft_LengthAxialStrength()
        {
            CreateColumn(16.0 * 12.0, 16.0 * 12.0);
            SteelLimitStateValue colFlexure = column.GetFlexuralBucklingStrength();
            double phiP_n          = colFlexure.Value;
            double refValue        = 303.0;
            double actualTolerance = EvaluateActualTolerance(phiP_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void RectangularHSSReturnsFlexuralFlangeLocalBucklingStrength()
        {
            SteelLimitStateValue FLB =
                beam.GetFlexuralFlangeLocalBucklingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = FLB.Value;
            double refValue        = -1; // Limit state not applicable
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void RectangularHSSReturnsFlexuralLateralTorsionalBucklingStrengthElastic()
        {
            SteelLimitStateValue LTB =
                beam.GetFlexuralLateralTorsionalBucklingStrength(1.0, 14 * 12, FlexuralCompressionFiberPosition.Top, Steel.AISC.FlexuralAndTorsionalBracingType.NoLateralBracing);
            double phiM_n          = LTB.Value;
            double refValue        = -1; // from AISC Steel Manual Table 3-10
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void RectangularHSSReturnsFlexuralYieldingStrength()
        {
            SteelLimitStateValue Y =
                beam.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = Y.Value;
            double refValue        = 30.5 * 46 * 0.9; // Z_x*F_y*0.9
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void RectangularHSSReturnsLimitingLengthForFullYielding_Lp()
        {
            SteelLimitStateValue L_p =
                beam.GetLimitingLengthForFullYielding_Lp(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = L_p.Value;
            double refValue        = -1; // AISC manual table 3.2
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
Ejemplo n.º 19
0
        public void RectangularHSSReturnsLimitingLengthForInelasticLTB_Lr()
        {
            SteelLimitStateValue L_r =
                beam.GetLimitingLengthForInelasticLTB_Lr(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = L_r.Value;
            double refValue        = -1; // AISC manual table 3.2
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.True(actualTolerance <= tolerance);
        }
        public void IShapeW16X26Returns_16ft_LengthAxialStrength()
        {
            CreateColumn(14.0 * 12.0, 14.0 * 12.0, 0,"W16X26");
            SteelLimitStateValue colFlexure = column.GetFlexuralBucklingStrength();
            double phiP_n = colFlexure.Value;
            double refValue = 76.7; //to be confirmed
            double actualTolerance = EvaluateActualTolerance(phiP_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
Ejemplo n.º 21
0
        public void DoublySymmetricIReturnsFlexuralWebOrWallBucklingStrength()
        {
            SteelLimitStateValue WLB =
                beam.GetFlexuralWebOrWallBucklingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = WLB.Value;
            double refValue        = -1; // Limit state not applicable
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
Ejemplo n.º 22
0
        public void DoublySymmetricIReturnsLimitingLengthForInelasticLTB_Lr()
        {
            SteelLimitStateValue L_r =
                beam.GetLimitingLengthForInelasticLTB_Lr(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = L_r.Value;
            double refValue        = 12.3 * 12; // AISC manual table 3.2
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
Ejemplo n.º 23
0
        public void DoublySymmetricChannelReturnsFlexuralLateralTorsionalBucklingStrengthInelastic()
        {
            SteelLimitStateValue LTB =
                beam.GetFlexuralLateralTorsionalBucklingStrength(1.0, 5 * 12, FlexuralCompressionFiberPosition.Top, Steel.AISC.FlexuralAndTorsionalBracingType.NoLateralBracing);
            double phiM_n          = LTB.Value;
            double refValue        = 131 * 12; // from AISC Steel Manual Table 3-10
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.True(actualTolerance <= tolerance);
        }
Ejemplo n.º 24
0
        public void DoublySymmetricChannelReturnsFlexuralYieldingStrength()
        {
            SteelLimitStateValue Y =
                beam.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = Y.Value;
            double refValue        = 137.0 * 12; // from AISC  design examples 13 F.2-1b
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.True(actualTolerance <= tolerance);
        }
Ejemplo n.º 25
0
        public void DoublySymmetricIReturnsFlexuralYieldingStrength()
        {
            SteelLimitStateValue Y =
                beam.GetFlexuralYieldingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = Y.Value;
            double refValue        = 249 * 12.0; // from AISC Steel Manual
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void PipeReturns_15ft_LengthAxialStrength()
        {
            CreateColumn(15 * 12, 15 * 12);
            SteelLimitStateValue colFlexure = column.GetFlexuralBucklingStrength();
            double phiP_n          = colFlexure.Value;
            double refValue        = 307.0;
            double actualTolerance = EvaluateActualTolerance(phiP_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void RectangularHSSReturns_0ft_LengthAxialStrength()
        {
            CreateColumn(0, 0);
            SteelLimitStateValue colFlexure = column.GetFlexuralBucklingStrength();
            double phiP_n          = colFlexure.Value;
            double refValue        = 480.0;
            double actualTolerance = EvaluateActualTolerance(phiP_n, refValue);

            Assert.True(actualTolerance <= tolerance);
        }
        public void RectangularHSSReturnsFlexuralLegOrStemBucklingStrength()
        {
            SteelLimitStateValue LSLB =
                beam.GetFlexuralLegOrStemBucklingStrength(FlexuralCompressionFiberPosition.Top, Steel.AISC.FlexuralAndTorsionalBracingType.FullLateralBracing);
            double phiM_n          = LSLB.Value;
            double refValue        = -1; // Limit state not applicable
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void IShapeReturns_36ft_LengthAxialStrength()
        {
            CreateColumn(36.0 * 12.0, 36.0 * 12.0);
            SteelLimitStateValue colFlexure = column.GetFlexuralBucklingStrength();
            double phiP_n = colFlexure.Value;
            double refValue = 179;
            double actualTolerance = EvaluateActualTolerance(phiP_n, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
Ejemplo n.º 30
0
        public void RectangularHSSReturnsFlexuralWebOrWallBucklingStrength()
        {
            SteelLimitStateValue WLB =
                beam.GetFlexuralWebOrWallBucklingStrength(FlexuralCompressionFiberPosition.Top);
            double phiM_n          = WLB.Value;
            double refValue        = -1; // Limit state not applicable
            double actualTolerance = EvaluateActualTolerance(phiM_n, refValue);

            Assert.True(actualTolerance <= tolerance);
        }