示例#1
0
        public double GetWebPlastificationFactorForTensionRpt(FlexuralCompressionFiberPosition compressionFiberPosition)
        {
            double Rpt = 0.0;

            double Mp  = GetMajorNominalPlasticMoment();
            double Myt = GetTensionFiberYieldMomentMyt(compressionFiberPosition);

            double hc = Gethc(compressionFiberPosition);
            double tw = this.Gettw();

            ShapeCompactness.IShapeMember compactness = new ShapeCompactness.IShapeMember(Section, IsRolledMember, compressionFiberPosition);
            double lambdaWeb = compactness.GetWebLambda();
            double lambdapw  = compactness.GetWebLambda_p(StressType.Flexure);
            double lambdarw  = compactness.GetWebLambda_r(StressType.Flexure);

            //double lambda = hc / tw;
            double lambda = compactness.GetWebLambda();

            if (lambda <= lambdapw)
            {
                Rpt = Mp / Myt; //(F4-16a)
            }

            else
            {
                Rpt = Mp / Myt - (Mp / Myt - 1) * ((lambda - lambdapw) / (lambdarw - lambdapw)); //(F4-16b)
            }


            return(Rpt);
        }
        internal double GetRpc(FlexuralCompressionFiberPosition compressionFiberPosition)
        {
            double Rpc = 0;
            double Mp  = GetMajorNominalPlasticMoment();
            double Myc = GetCompressionFiberYieldMomentMyc(compressionFiberPosition);

            double hc = Gethc(compressionFiberPosition);
            double tw = this.Gettw();

            ShapeCompactness.IShapeMember compactness = new ShapeCompactness.IShapeMember(Section, IsRolledMember, compressionFiberPosition);
            double lambdaWeb = compactness.GetWebLambda();
            double lambdapw  = compactness.GetWebLambda_p(StressType.Flexure);
            double lambdarw  = compactness.GetWebLambda_r(StressType.Flexure);
            double Iyc       = GetIyc(compressionFiberPosition);
            double Iy        = Section.Shape.I_y;

            if (Iyc / Iy > 0.23)
            {
                if (hc / tw > lambdapw)
                {
                    Rpc = Mp / Myc; //(F4-9a)
                }
                else
                {
                    Rpc = Mp / Myc - (Mp / Myc - 1.0) * ((lambdaWeb - lambdapw) / (lambdarw - lambdapw));  //(F4-9b)
                    Rpc = Rpc > Mp / Myc ? Mp / Myc : Rpc;
                }
            }
            else
            {
                Rpc = 1.0; //(F4-10)
            }

            return(Rpc);
        }
示例#3
0
        public double GetLambdaWeb()
        {
            double Lambda = 0.0;

            compactness = new ShapeCompactness.IShapeMember
                              (this.Section, this.isRolledMember, FlexuralCompressionFiberPosition.Top);
            // for web location of compression fiber does not matter
            Lambda = compactness.GetWebLambda();
            return(Lambda);
        }