コード例 #1
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));
        }
コード例 #2
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));
        }
コード例 #3
0
        public void AluminumElementReturnsLocalBucklingStressF_b()
        {
            //6063,T6,Up to 1,extrusion

            AluminumMaterial mat = new AluminumMaterial("6063", "T6", "Up to 1", "extrusion");
            //SectionBox sb = new SectionBox(null, 12, 4, 0.25, 0.25);
            //AluminumSection alSec =  new AluminumSection(mat,sb);
            //AluminumFlexuralMember m = new AluminumFlexuralMember(alSec);
            FlexuralLocalBucklingElement lbe = new FlexuralLocalBucklingElement(mat, 7, 0.25, LateralSupportType.OneEdge, 100, 80, Aluminum.AA.Entities.WeldCase.NotAffected);
            double F_b = lbe.GetCriticalStress();

            double refValue        = 9.95;
            double actualTolerance = EvaluateActualTolerance(F_b, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
コード例 #4
0
        public void AluminumShapeReturnsLocalBucklingStressF_b()
        {
            //6063,T6,Up to 1,extrusion

            AluminumMaterial       mat   = new AluminumMaterial("6063", "T6", "Up to 1", "extrusion");
            SectionBox             sb    = new SectionBox(null, 12, 4, 0.25, 0.25);
            AluminumSection        alSec = new AluminumSection(mat, sb);
            AluminumFlexuralMember m     = new AluminumFlexuralMember(alSec);

            FlexuralLocalBucklingElement lbe = new FlexuralLocalBucklingElement(mat, 7, 0.25, LateralSupportType.OneEdge, 100, 80, Aluminum.AA.Entities.WeldCase.NotAffected);
            double F_b = m.GetLocalBucklingFlexuralCriticalStress(7, 0.25, LateralSupportType.OneEdge, Common.Section.Interfaces.FlexuralCompressionFiberPosition.Top,
                                                                  Aluminum.AA.Entities.WeldCase.NotAffected).Value;

            double refValue        = 9.95;
            double actualTolerance = EvaluateActualTolerance(F_b, refValue);

            Assert.True(actualTolerance <= tolerance);
        }