public void SectionIRolledReturnsC_w()
 {
     SectionI shape = new SectionI("", 12.2, 6.49, 0.38, 0.23);
     double C_w = shape.C_w;
     double refValue = 607.0;
     double actualTolerance = EvaluateActualTolerance(C_w, refValue);
     Assert.LessOrEqual(actualTolerance, tolerance);
 }
 public void SectionIRolledReturnsJ()
 {
     SectionI shape = new SectionI("", 12.2, 6.49, 0.38, 0.23);
     double J = shape.J;
     double refValue = 0.3;
     double actualTolerance = EvaluateActualTolerance(J, refValue);
     Assert.LessOrEqual(actualTolerance, tolerance);
 }
Example #3
0
        /// <summary>
        /// Base class for all web openings
        /// </summary>
        /// <param name="Section">Steel Section</param>
        /// <param name="a_o">Length of opening</param>
        /// <param name="h_o">Depth of opening</param>
        /// <param name="e">Eccentricity of opening (positive up)</param>
        /// <param name="F_y">Steel shape yield stress</param>
        /// <param name="t_r"> Plate thickness of opening reinforcement (top or bottom)</param>
        /// <param name="b_r"> Plate width (horizontal dimension in cross-section) for reinforcement</param>
        public WebOpeningBase(ISectionI Section, double a_o, double h_o, double e, double F_y, double t_r, double b_r,
             bool IsSingleSideReinforcement , double PlateOffset)
        {
                this.a_o =a_o;
                this.h_o =h_o;
                this.e = e;
                this.F_y = F_y;
                this.t_r = t_r;
                this.b_r = b_r;
                SectionI sec = new SectionI(null, Section.d, Section.b_fTop, Section.t_fTop, Section.t_w);

                   this.Section = sec;

                   this.PlateOffset = PlateOffset;
                   this.IsSingleSideReinforcement = IsSingleSideReinforcement;
        }
        public void SectionDoubleStackedReturnsMomentOfInertia()
        {
            //W18X50 + C15X33.9
            //Table 1-19
            SectionI IShape = new SectionI(null, 18.2d,7.56d, 0.695d, 0.415d);
            SectionChannel Channel = new SectionChannel(null, 15.0d, 3.4d, 0.65d, 0.4d, true, true);
            SectionDoubleStacked shape = new SectionDoubleStacked(Channel, IShape, 0.4);
            double I_x = shape.I_x;
            double refValue1 = 1456.0; //from Autocad. Does not agree with Manual which is 1250

            double I_y = shape.I_y;
            double refValue2 = 363.6; //from Autocad. Does not agree with Manual which is 1250

            double actualTolerance1 = EvaluateActualTolerance(I_x, refValue1);
            double actualTolerance2 = EvaluateActualTolerance(I_y, refValue2);
            Assert.LessOrEqual(actualTolerance1, tolerance);
            Assert.LessOrEqual(actualTolerance2, tolerance);
        }
Example #5
0
        public IBeamCope GetCope(BeamCopeCase BeamCopeCase, double d, double b_f, double t_f, double t_w, double d_c, double c, double F_y, double F_u)
       {
           ISteelMaterial material = new SteelMaterial(F_y, F_u, SteelConstants.ModulusOfElasticity, SteelConstants.ShearModulus);
           ISectionI section = new SectionI(null, d, b_f, t_f, t_w);
           IBeamCope cope=null;
           switch (BeamCopeCase)
           {
               case BeamCopeCase.Uncoped:
                   cope = new BeamUncoped(section, material);
                   break;
               case BeamCopeCase.CopedTopFlange:
                   cope = new BeamCopeSingle(c, d_c, section, material);
                   break;
               case BeamCopeCase.CopedBothFlanges:
                   cope = new BeamCopeDouble(c, d_c, section, material);
                   break;
           }
           return cope;

       }
        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);
        }
Example #7
0
 internal SectionI(double d, double b_f, double t_f, double t_w)
 {
     ISection r = new ds.SectionI("", d, b_f, t_f, t_w);
     Section = r;
 }