public static Dictionary <string, object> FlexuralYieldingAndRupture(CustomProfile Shape, AluminumMaterial AluminumMaterial,
                                                                             string FlexuralCompressionLocation = "Top", string Code = "AA2015")
        {
            //Default values
            double phiM_n = 0;


            FlexuralCompressionFiberPosition FlexuralCompression;
            //Calculation logic:
            bool IsValidStringCompressionLoc = Enum.TryParse(FlexuralCompressionLocation, true, out FlexuralCompression);

            if (IsValidStringCompressionLoc == false)
            {
                throw new Exception("Flexural compression location selection not recognized. Check input string.");
            }

            AluminumFlexuralMember m = new AluminumFlexuralMember();

            Kodestruct.Aluminum.AA.AA2015.AluminumMaterial a = new Kodestruct.Aluminum.AA.AA2015.AluminumMaterial(
                AluminumMaterial.Alloy, AluminumMaterial.Temper, AluminumMaterial.ThicknessRange, AluminumMaterial.ProductType);


            m.Section = new AluminumSection(a, Shape.Section);
            AluminumLimitStateValue ls_Y = m.GetFlexuralYieldingStrength(FlexuralCompression);

            AluminumLimitStateValue ls_R = m.GetFlexuralRuptureStrength();

            phiM_n = Math.Min(ls_Y.Value, ls_R.Value);

            return(new Dictionary <string, object>
            {
                { "phiM_n", phiM_n }
            });
        }
Ejemplo n.º 2
0
        public static Dictionary <string, object> MaterialMechanicalProperties(Aluminum.AA.Material.AluminumMaterial AluminumMaterial, string Code = "AA2015")
        {
            // = AluminumMaterial.G
            //Default values
            double E     = 0;
            double F_cy  = 0;
            double F_su  = 0;
            double F_sy  = 0;
            double F_tu  = 0;
            double F_tuw = 0;
            double F_ty  = 0;
            double F_tyw = 0;
            double k_t   = 0;



            //Calculation logic:
            Kodestruct.Aluminum.AA.AA2015.AluminumMaterial a = new Kodestruct.Aluminum.AA.AA2015.AluminumMaterial(
                AluminumMaterial.Alloy, AluminumMaterial.Temper, AluminumMaterial.ThicknessRange, AluminumMaterial.ProductType);
            E     = a.E;
            F_cy  = a.F_cy;
            F_su  = a.F_su;
            F_sy  = a.F_sy;
            F_tu  = a.F_tu;
            F_tuw = a.F_tuw;
            F_ty  = a.F_ty;
            F_tyw = a.F_tyw;
            k_t   = a.k_t;

            return(new Dictionary <string, object>
            {
                { "E", E }
                , { "F_cy", F_cy }
                , { "F_su", F_su }
                , { "F_sy", F_sy }
                , { "F_tu", F_tu }
                , { "F_tuw", F_tuw }
                , { "F_ty", F_ty }
                , { "F_tyw", F_tyw }
                , { "k_t", k_t }
            });
        }
        public static Dictionary <string, object> FlexuralLocalBucklingCriticalStress(CustomProfile Shape, AluminumMaterial AluminumMaterial, double b, double t, string LateralSupportType,
                                                                                      string FlexuralCompressionLocation = "Top", string WeldCaseId = "NotAffected", string SectionSubElementType = "Flat", string Code = "AA2015")
        {
            //Default values
            double F_b = 0;


            //Calculation logic:
            FlexuralCompressionFiberPosition FlexuralCompression;
            //Calculation logic:
            bool IsValidStringCompressionLoc = Enum.TryParse(FlexuralCompressionLocation, true, out FlexuralCompression);

            if (IsValidStringCompressionLoc == false)
            {
                throw new Exception("Flexural compression location selection not recognized. Check input string.");
            }


            Kodestruct.Aluminum.AA.Entities.Enums.LateralSupportType LateralSupportTypeParsed;
            bool IsValidLateralSupportType = Enum.TryParse(LateralSupportType, true, out LateralSupportTypeParsed);

            if (IsValidLateralSupportType == false)
            {
                throw new Exception("Failed to convert string. LateralSupportType shall be OneEdge or BothEdges. Please check input");
            }


            WeldCase WeldCaseParsed;
            bool     IsValidWeldCase = Enum.TryParse(WeldCaseId, true, out WeldCaseParsed);

            if (IsValidWeldCase == false)
            {
                throw new Exception("Failed to convert string. WeldCase shall be NotAffected or WeldAffected. Please check input");
            }


            SubElementType SubElementType;
            bool           IsValidInputString = Enum.TryParse(SectionSubElementType, true, out SubElementType);

            if (IsValidInputString == false)
            {
                throw new Exception("Failed to convert string. Currently supported value is Flat. Please check input");
            }



            AluminumFlexuralMember m = new AluminumFlexuralMember();

            Kodestruct.Aluminum.AA.AA2015.AluminumMaterial a = new Kodestruct.Aluminum.AA.AA2015.AluminumMaterial(
                AluminumMaterial.Alloy, AluminumMaterial.Temper, AluminumMaterial.ThicknessRange, AluminumMaterial.ProductType);


            m.Section = new AluminumSection(a, Shape.Section);
            AluminumLimitStateValue ls_LB = m.GetLocalBucklingFlexuralCriticalStress(b, t, LateralSupportTypeParsed, FlexuralCompression, WeldCaseParsed, SubElementType);

            F_b = ls_LB.Value;


            return(new Dictionary <string, object>
            {
                { "F_b", F_b }
            });
        }