private IShapeCompactness GetCompactness()
        {
            ISectionI Isec = section as ISectionI;

            if (Isec != null)
            {
                compactness = new ShapeCompactness.IShapeMember(section, IsRolledMember, compressionFiberPosition);
            }
            else
            {
                throw new ShapeTypeNotSupportedException(" flexural calculation of I-beam");
            }
            return(compactness);
        }
예제 #2
0
        public double GetCompressionFlangeLocalBucklingCapacity()
        {
            // compactness criteria is selected by the most slender flange

            bool LimitStateApplicable = DetermineIfFLBLimitStateIsApplicable();

            double Mn = 0;

            CompactnessResult       compactnessResult    = GetShapeCompactness();
            IShapeCompactness       thisShapeCompactness = compactnessResult.ShapeCompactness;
            CompactnessClassFlexure flangeCompactness    = compactnessResult.FlangeCompactness;

            double b      = compactnessResult.b;
            double tf     = compactnessResult.tf;
            double lambda = compactnessResult.lambda;



            double Mp       = Z_y * F_y;
            double lambdapf = thisShapeCompactness.GetFlangeLambda_p(StressType.Flexure);
            double lambdarf = thisShapeCompactness.GetFlangeLambda_r(StressType.Flexure);

            switch (flangeCompactness)
            {
            case CompactnessClassFlexure.Compact:
                Mn = double.PositiveInfinity;
                break;

            case CompactnessClassFlexure.Noncompact:
                Mn = Mp - (Mp - 0.7 * F_y * S_y) * ((lambda - lambdapf) / (lambdarf - lambdapf));     //(F6-2)
                break;

            case CompactnessClassFlexure.Slender:

                double Fcr = 0.69 * E / Math.Pow(b / tf, 2.0); //(F6-4)
                Mn = Fcr * S_y;                                //(F6-3)
                break;
            }
            double phiM_n = 0.9 * Mn;

            return(phiM_n);
        }
 private IShapeCompactness GetCompactness()
 {
     ISectionI Isec = section as ISectionI;
     if (Isec != null)
     {
         compactness = new ShapeCompactness.IShapeMember(section, IsRolledMember, compressionFiberPosition);
     }
     else
     {
         throw new ShapeTypeNotSupportedException(" flexural calculation of I-beam");
     }
     return compactness;
 }