public static Dictionary<string, object> JoistModeEffectiveWeight(double w_j, double B_j, double L_j, double S_j, string AdjacentSpanWeightIncreaseType, string Code = "AISC. Design Guide 11. 1st Ed")
        {
            //Default values
            double W_j = 0;


            //Calculation logic:


            Wosad.Steel.AISC.Entities.Enums.FloorVibrations.AdjacentSpanWeightIncreaseType _AdjacentSpanWeightIncreaseType;
            bool IsValidInputString = Enum.TryParse(AdjacentSpanWeightIncreaseType, true, out _AdjacentSpanWeightIncreaseType);
            if (IsValidInputString == false)
            {
                throw new Exception("Failed to convert string. Specify adjacent span continuity type. Please check input");
            }

            FloorVibrationBeamGirderPanel bgPanel = new FloorVibrationBeamGirderPanel();
            W_j = bgPanel.GetJoistModeEffectiveWeight(w_j, S_j, B_j, L_j, _AdjacentSpanWeightIncreaseType);

            return new Dictionary<string, object>
            {
                { "W_j", W_j }
 
            };
        }
        public static Dictionary<string, object> GirderEffectivePanelWidth(double L_g,double L_j,double I_g,double I_j,double S_j,double L_floor,string BeamLocation,
            string JoistToGirderConnectionType, string Code = "AISC. Design Guide 11. 1st Ed")
        {
            //Default values
            double B_g = 0;


            //Calculation logic:
            FloorVibrationBeamGirderPanel bgPanel = new FloorVibrationBeamGirderPanel();
            
            BeamFloorLocationType _BeamFloorLocationType;
            bool IsValidLocation = Enum.TryParse(BeamLocation, true, out _BeamFloorLocationType);
            if (IsValidLocation == false)
            {
                throw new Exception("Failed to convert string. Need to specify beam location as Inner or AtFreeEdge. Please check input");
            }

            
            JoistToGirderConnectionType _JoistToGirderConnectionType;
            bool IsValidConnectionString = Enum.TryParse(JoistToGirderConnectionType, true, out _JoistToGirderConnectionType);
            if (IsValidConnectionString == false)
            {
                throw new Exception("Failed to convert string. Need to specify connection type as ConnectionToWeb or PlacementAtTopFlange. Please check input");
            }


            B_g = bgPanel.GetEffectiveGirderWidth(L_g, L_j, I_g, I_j, S_j, L_floor, _BeamFloorLocationType, _JoistToGirderConnectionType);

            return new Dictionary<string, object>
            {
                { "B_g", B_g }
 
            };
        }
        public static Dictionary<string, object> JoistEffectivePanelWidth(double fc_prime, double w_c, double h_solid, double h_rib, double w_r, double s_r, string DeckAtBeamCondition, 
            double L_j, double I_j, double S_j, double L_floor, string BeamLocation, string Code = "AISC. Design Guide 11. 1st Ed")
        {
            //Default values
            double B_j = 0;


            //Calculation logic:
            FloorVibrationBeamGirderPanel bgPanel = new FloorVibrationBeamGirderPanel();


            WosadEnums.DeckAtBeamCondition _DeckAtBeamCondition;
            bool IsValidInputString = Enum.TryParse(DeckAtBeamCondition, true, out _DeckAtBeamCondition);
            if (IsValidInputString == false)
            {
                throw new Exception("Failed to convert string. Need to specify deck direction with respect to beam being considered. Please check input");
            }

            BeamFloorLocationType _BeamFloorLocationType;
            bool IsValidLocation = Enum.TryParse(BeamLocation, true, out _BeamFloorLocationType);
            if (IsValidLocation == false)
            {
                throw new Exception("Failed to convert string. Need to specify beam location as Inner or AtFreeEdge. Please check input");
            }

            B_j = bgPanel.GetEffectiveJoistWidth(fc_prime, w_c, h_solid, h_rib, w_r, s_r, _DeckAtBeamCondition, L_j, I_j, S_j, L_floor, _BeamFloorLocationType);

            return new Dictionary<string, object>
            {
                { "B_j", B_j }
 
            };
        }
       public void PanelReturnsJoistEffectiveWidth()
       {
           FloorVibrationBeamGirderPanel bmPanel = new FloorVibrationBeamGirderPanel();
           double B_j = bmPanel.GetEffectiveJoistWidth(4.0, 110.0, 3.5, 2.0, 6.0, 12,
               Steel.AISC.DeckAtBeamCondition.Perpendicular,45.0*12.0, 1800.0, 7.5 * 12, 30.0 * 12, 
               Steel.AISC.Entities.Enums.FloorVibrations.BeamFloorLocationType.Inner);
 
           double refValue = 20*12;
           double actualTolerance = EvaluateActualTolerance(B_j, refValue);
           Assert.LessOrEqual(actualTolerance, tolerance);
       }
        public static Dictionary<string, object> BeamSystemFrequencyCombined(double Delta_j, double Delta_g, double Delta_c = 0)
        {
            //Default values
            double f = 0;


            //Calculation logic:
            FloorVibrationBeamGirderPanel bgPanel = new FloorVibrationBeamGirderPanel();
            f = bgPanel.GetCombinedModeFundamentalFrequency(Delta_j, Delta_g, Delta_c);

            return new Dictionary<string, object>
            {
                { "f_n", f }
 
            };
        }
Exemple #6
0
        public static Dictionary<string, object> ModalDamping(List<string> DampingComponents, string Code = "AISC. Design Guide 11. 1st Ed")
        {
            //Default values
            double beta_floor = 0;


            //Calculation logic:
            FloorVibrationBeamGirderPanel bgPanel = new FloorVibrationBeamGirderPanel();
            beta_floor = bgPanel.GetFloorModalDampingRatio(DampingComponents);

            return new Dictionary<string, object>
            {
                { "beta_floor", beta_floor }
 
            };
        }
        public static Dictionary<string, object> CombinedModeEffectiveWeight(double W_j, double W_g, double Delta_j, double Delta_g)
        {
            //Default values
            double W_c = 0;


            //Calculation logic:
            FloorVibrationBeamGirderPanel bgPanel = new FloorVibrationBeamGirderPanel();
            W_c = bgPanel.GetCombinedModeEffectiveWeight(Delta_j, Delta_g, W_j, W_g);

            return new Dictionary<string, object>
            {
                { "W_c", W_c }
 
            };
        }
        public static Dictionary<string, object> FloorPredictedAcceleration(double f_n, double W_c, double beta_floor, string FloorSeviceOccupancyId, string Code = "AISC. Design Guide 11. 1st Ed")
        {
            //Default values
            double a_g_Ratio = 0;


            //Calculation logic:
            FloorVibrationBeamGirderPanel bgPanel = new FloorVibrationBeamGirderPanel();
            a_g_Ratio = bgPanel.GetAccelerationRatio(f_n,W_c,beta_floor,FloorSeviceOccupancyId);

            return new Dictionary<string, object>
            {
                { "a_g_Ratio", a_g_Ratio }
 
            };
        }
        public static Dictionary<string, object> FloorAccelerationLimit(string FloorSeviceOccupancyId, string Code = "AISC. Design Guide 11. 1st Ed")
        {
            //Default values
            double a_g_RatioMax = 0;


            //Calculation logic:
            FloorVibrationBeamGirderPanel bgPanel = new FloorVibrationBeamGirderPanel();
            a_g_RatioMax = bgPanel.GetAccelerationLimit(FloorSeviceOccupancyId);

            return new Dictionary<string, object>
            {
                { "a_g_RatioMax", a_g_RatioMax }
 
            };
        }
        public static Dictionary<string, object> GirderModeEffectiveWeight(double w_g, double B_g, double L_g, double L_jAverage, 
            string Code = "AISC. Design Guide 11. 1st Ed")
        {
            //Default values
            double W_g = 0;


            //Calculation logic:
            FloorVibrationBeamGirderPanel bgPanel = new FloorVibrationBeamGirderPanel();
            W_g = bgPanel.GetGirderModeEffectiveWeight(w_g, L_g, B_g, L_jAverage);

            return new Dictionary<string, object>
            {
                { "W_g", W_g }
 
            };
        }
        public void PanelReturnsModalDamping()
        {
            FloorVibrationBeamGirderPanel bmPanel = new FloorVibrationBeamGirderPanel();
            List<string> Components =
                new List<string>()
                {

                    "Structural system",
                    "Ceiling and ductwork",
                    "Electronic office fitout"

                };
            double beta = bmPanel.GetFloorModalDampingRatio(Components);
            double refValue = 0.025;
            double actualTolerance = EvaluateActualTolerance(beta, refValue);
            Assert.LessOrEqual(actualTolerance, tolerance);

        }
        public void PanelReturnsGirderEffectiveWidth()
        {
            double I_g = 4970.0;

            
            FloorVibrationBeamGirderPanel bmPanel = new FloorVibrationBeamGirderPanel();
            //double B_g = bmPanel.GetEffectiveGirderWidth(30.0 * 12, 90.0 * 12, 45.0 * 12, 240.0 / 12, 110.0 / 12.0, BeamFloorLocationType.Inner, JoistToGirderConnectionType.ConnectionToWeb);
            double B_g = bmPanel.GetEffectiveGirderWidth(30.0 * 12, 45.0 * 12, 4970, 1800.0, 7.5*12, 90.0 * 12, BeamFloorLocationType.Inner, JoistToGirderConnectionType.ConnectionToWeb);


            double refValue = 60.0*12.0;
            double actualTolerance = EvaluateActualTolerance(B_g, refValue);
            Assert.LessOrEqual(actualTolerance, tolerance);
        }
 public void PanelReturnsGirderEffectiveWeight()
 {
     double w_g = 2.89 / 12.0;
     FloorVibrationBeamGirderPanel bmPanel = new FloorVibrationBeamGirderPanel();
     double W_g = bmPanel.GetGirderModeEffectiveWeight(w_g, 30.0 * 12.0, 60.0 * 12.0, 45.0 * 12);
     double refValue = 116.0;
     double actualTolerance = EvaluateActualTolerance(W_g, refValue);
     Assert.LessOrEqual(actualTolerance, tolerance);
 }
        public void PanelReturnsCombinedWeight()
        {
            FloorVibrationBeamGirderPanel bmPanel = new FloorVibrationBeamGirderPanel();
            double W = bmPanel.GetCombinedModeEffectiveWeight(0.835, 0.366, 85.0, 116.0);
            double refValue = 94.3;
            double actualTolerance = EvaluateActualTolerance(W, refValue);
            Assert.LessOrEqual(actualTolerance, tolerance);

        }
 public void PanelReturnsJoistEffectiveWeight()
 {
     FloorVibrationBeamGirderPanel bmPanel = new FloorVibrationBeamGirderPanel();
     double W_j = bmPanel.GetJoistModeEffectiveWeight(0.472 / 12.0, 7.5 * 12, 20.0 * 12.0, 45.0 * 12, AdjacentSpanWeightIncreaseType.HotRolledBeamOverTheColumn);
     double refValue = 85.0;
     double actualTolerance = EvaluateActualTolerance(W_j, refValue);
     Assert.LessOrEqual(actualTolerance, tolerance);
 }
        public void PanelReturnsCombinedFrequency()
        {
            FloorVibrationBeamGirderPanel bmPanel = new FloorVibrationBeamGirderPanel();
            double f_c = bmPanel.GetCombinedModeFundamentalFrequency(0.835, 0.366);
            double refValue = 3.23;
            double actualTolerance = EvaluateActualTolerance(f_c, refValue);
            Assert.LessOrEqual(actualTolerance, tolerance);

        }
        public void PanelReturnsPredictedAcceleration()
        {
            FloorVibrationBeamGirderPanel bmPanel = new FloorVibrationBeamGirderPanel();
            double a_p_g = bmPanel.GetAccelerationRatio(3.23, 94.3, 0.03, "Office");
            double refValue = 0.0074;
            double actualTolerance = EvaluateActualTolerance(refValue, refValue);
            Assert.LessOrEqual(actualTolerance, tolerance);

        }