예제 #1
0
        //Compression Flange Local Buckling F4.3
        public double GetCompressionFlangeLocalBucklingCapacity(FlexuralCompressionFiberPosition compressionFiberPosition)
        {
            double Mn = 0.0;

            double bf = GetCompressionFlangeWidthbfc(compressionFiberPosition);
            double tf = GetCompressionFlangeThicknesstfc(compressionFiberPosition);

            ShapeCompactness.IShapeMember compactness       = new ShapeCompactness.IShapeMember(Section, IsRolledMember, compressionFiberPosition);
            CompactnessClassFlexure       flangeCompactness = compactness.GetFlangeCompactnessFlexure();

            double lambda = compactness.GetCompressionFlangeLambda();
            double Sxc    = GetSectionModulusCompressionSxc(compressionFiberPosition);

            switch (flangeCompactness)
            {
            case CompactnessClassFlexure.Compact:

                throw new LimitStateNotApplicableException("Compression Flange Local buckling");

            case CompactnessClassFlexure.Noncompact:

                double Rpc      = GetRpc(compressionFiberPosition);
                double Myc      = GetCompressionFiberYieldMomentMyc(compressionFiberPosition);
                double lambdapf = compactness.GetFlangeLambda_p(StressType.Flexure);
                double lambdarf = compactness.GetFlangeLambda_r(StressType.Flexure);
                double FL       = GetStressFL(compressionFiberPosition);

                Mn = Rpc * Myc - (Rpc * Myc - FL * Sxc) * ((lambda - lambdapf) / (lambdarf - lambdapf));         //(F4-13)

                break;

            case CompactnessClassFlexure.Slender:

                double kc = Getkc();
                double E  = this.Section.Material.ModulusOfElasticity;

                Mn = 0.9 * E * kc * Sxc / Math.Pow(lambda, 2);

                break;
            }


            double phiM_n = 0.9 * Mn;

            return(phiM_n);
        }
예제 #2
0
 protected virtual double GetLambdarf(FlexuralCompressionFiberPosition compressionFiberPosition)
 {
     compactness = new ShapeCompactness.IShapeMember
                       (this.Section, this.isRolledMember, compressionFiberPosition);
     return(compactness.GetFlangeLambda_r(StressType.Flexure));
 }