/// <summary>
        /// Calculates shear lag factor per AISC Table D3.1 "Shear Lag Factors for Connections  to Tension Members".
        /// </summary>
        public override double GetShearLagFactor()
        {
            double U;

            if (N < 3)
            {
                ShearLagCase2 Case2 = new ShearLagCase2(x_ob, l);
                U = Case2.GetShearLagFactor();
            }
            else if (N == 3)
            {
                U = 0.6;
            }
            else
            {
                U = 0.8;
            }
            // If Case 2 information is applicable
            if (x_ob > 0 && l > 0)
            {
                ShearLagCase2 Case2   = new ShearLagCase2(x_ob, l);
                double        U_case2 = Case2.GetShearLagFactor();
                U = Math.Min(U, U_case2);
            }

            return(U);
        }
        /// <summary>
        /// Calculates shear lag factor per AISC Table D3.1 "Shear Lag Factors for Connections  to Tension Members".
        /// </summary>
        public override double GetShearLagFactor()
        {
            double U, U1, U2;

            if (N < 3)
            {
                ShearLagCase2 Case2 = new ShearLagCase2(x_ob, l);
                U1 = Case2.GetShearLagFactor();
            }
            else if (N == 3)
            {
                if (bf > 2.0 / 3.0 * d)
                {
                    U1 = 0.9;
                }
                else
                {
                    U1 = 0.85;
                }
            }
            else
            {
                U1 = 0.7;
            }
            // If Case 2 information is applicable
            if (x_ob > 0 && l > 0)
            {
                ShearLagCase2 Case2 = new ShearLagCase2(x_ob, l);
                U2 = Case2.GetShearLagFactor();
                U  = Math.Max(U1, U2);
            }
            else
            {
                U = U1;
            }

            return(U);
        }
Example #3
0
        public double GetShearLagFactor(ShearLagCase Case, double x_bar, double b_plate, double l,
                                        double B, double H, double A_g, double A_connected, bool IsOpenTensionSection)
        {
            ShearLagFactorBase shearLagCase;

            switch (Case)
            {
            case ShearLagCase.Case1:
                shearLagCase = new ShearLagCase1();
                break;

            case ShearLagCase.Case2:
                shearLagCase = new ShearLagCase2(x_bar, l);
                break;

            case ShearLagCase.Case3:
                shearLagCase = new ShearLagCase3();
                break;

            case ShearLagCase.Case4:
                shearLagCase = new ShearLagCase4(b_plate, l);
                break;

            case ShearLagCase.Case5:
                shearLagCase = new ShearLagCase5(B, l);
                break;

            case ShearLagCase.Case6a:
                shearLagCase = new ShearLagCase6(true, B, H, l);
                break;

            case ShearLagCase.Case6b:
                shearLagCase = new ShearLagCase6(false, B, H, l);
                break;

            case ShearLagCase.Case7a:
                shearLagCase = new ShearLagCase7(2, H, b_plate, x_bar, l);
                break;

            case ShearLagCase.Case7b:
                shearLagCase = new ShearLagCase7(3, H, b_plate, x_bar, l);
                break;

            case ShearLagCase.Case7c:
                shearLagCase = new ShearLagCase7(4, H, b_plate, x_bar, l);
                break;

            case ShearLagCase.Case8a:
                shearLagCase = new ShearLagCase8(2, x_bar, l);
                break;

            case ShearLagCase.Case8b:
                shearLagCase = new ShearLagCase8(3, x_bar, l);
                break;

            case ShearLagCase.Case8c:
                shearLagCase = new ShearLagCase8(4, x_bar, l);
                break;

            default:
                shearLagCase = new ShearLagCase2(x_bar, l);
                break;
            }
            double U = shearLagCase.GetShearLagFactor();

            if (IsOpenTensionSection == false)
            {
                return(U);
            }
            else
            {
                //AISC section D3
                //For open cross sections such as W, M, S, C or HP shapes, WTs, STs, and single and
                //double angles, the shear lag factor, U, need not be less than the ratio of the gross area
                //of the connected element(s) to the member gross area. This provision does not apply
                //to closed sections, such as HSS sections, nor to plates
                double Umax = A_connected / A_g;
                U = U < Umax ? Umax : U;
                return(U);
            }
        }