Exemplo n.º 1
0
        //Direct Strength Method F.3-2

        public AluminumLimitStateValue GetLocalBucklingStrength(double b, double t, LateralSupportType LateralSupportType,
                                                                FlexuralCompressionFiberPosition CompressionLocation, WeldCase WeldCase,
                                                                SubElementType SubElementType = SubElementType.Flat)
        {
            double S_xc = GetSectionModulusCompressionSxc(CompressionLocation);
            double M_np = this.GetPlasticMoment();
            FlexuralLocalBucklingElement LocalElement = new FlexuralLocalBucklingElement(this.Section.Material, b, t, LateralSupportType,
                                                                                         M_np, S_xc, WeldCase, SubElementType);

            double F_b = LocalElement.GetCriticalStress();
            double M_n = S_xc * F_b;
            AluminumLimitStateValue Y = GetFlexuralYieldingStrength(CompressionLocation);

            bool   applicable;
            double val;

            if (M_n > Y.Value)
            {
                applicable = false;
                val        = -1.0;
            }
            else
            {
                applicable = true;
                val        = 0.9 * M_n;
            }

            return(new AluminumLimitStateValue(val, applicable));
        }
Exemplo n.º 2
0
        public AluminumLimitStateValue GetLocalBucklingFlexuralCriticalStress(double b, double t, LateralSupportType LateralSupportType,
                                                                              FlexuralCompressionFiberPosition CompressionLocation, WeldCase WeldCase,
                                                                              SubElementType SubElementType = SubElementType.Flat)
        {
            double S_xc = GetSectionModulusCompressionSxc(CompressionLocation);
            double M_np = this.GetPlasticMoment();
            FlexuralLocalBucklingElement LocalElement = new FlexuralLocalBucklingElement(this.Section.Material, b, t, LateralSupportType,
                                                                                         M_np, S_xc, WeldCase, SubElementType);

            double F_b = LocalElement.GetCriticalStress();
            double F_y = 0;

            if (WeldCase == Entities.WeldCase.NotAffected)
            {
                F_y = this.Section.Material.F_ty;
            }
            else
            {
                F_y = this.Section.Material.F_tyw;
            }


            if (F_b > F_y)
            {
                F_b = F_y;
            }

            return(new AluminumLimitStateValue(F_b, true));
        }
 public FlexuralLocalBucklingElement(IAluminumMaterial Material, double b, double t, LateralSupportType LateralSupportType, double M_np, double S_xc,
                                     WeldCase WeldCase, SubElementType SubElementType = SubElementType.Flat)
 {
     this.Material           = Material;
     this.b                  = b;
     this.t                  = t;
     this.M_np               = M_np;
     this.S_xc               = S_xc;
     this.LateralSupportType = LateralSupportType;
 }