Exemplo n.º 1
0
        public List <double> CalculateSeismicLevelLoads(double k, double Cs, List <StorySeismicData> storyData)
        {
            List <StorySeismicLoad> loads = new List <StorySeismicLoad>();

            //Sum(w_i*h_i^k)
            int    N         = storyData.Count();
            double Sum_w_h_k = 0.0;
            double W         = 0.0;

            foreach (var story in storyData)
            {
                double wi = story.SeismicWeight;
                double hi = story.ElevationFromBase;

                Sum_w_h_k = Sum_w_h_k + wi * Math.Pow(hi, k);
                W         = W + wi;
            }

            double        Vb          = this.GetBaseShearVb(Cs, W);
            List <double> StoryForces = new List <double>();

            foreach (var story in storyData)
            {
                double wx = story.SeismicWeight;
                double hx = story.ElevationFromBase;

                //(12.8-12)
                double Cvx = wx * Math.Pow(hx, k) / Sum_w_h_k;

                //(12.8-11)
                double Fx = Cvx * Vb;

                StorySeismicLoad load = new StorySeismicLoad()
                {
                    Cvx               = Cvx,
                    Fx                = Fx,
                    StoryId           = story.StoryId,
                    ElevationFromBase = story.ElevationFromBase,
                    Weight            = story.SeismicWeight
                };

                loads.Add(load);

                StoryForces.Add(Fx);
            }

            return(StoryForces);
        }
Exemplo n.º 2
0
        public List<double>  CalculateSeismicLevelLoads( double k, double Cs, List<StorySeismicData> storyData)
        {
            List<StorySeismicLoad> loads = new List<StorySeismicLoad>();

            //Sum(w_i*h_i^k)
            int N = storyData.Count();
            double Sum_w_h_k = 0.0;
            double W = 0.0;

            foreach (var story in storyData)
            {
                double wi = story.SeismicWeight;
                double hi = story.ElevationFromBase;

                Sum_w_h_k = Sum_w_h_k + wi * Math.Pow(hi, k);
                W = W + wi;
            }

            double Vb = this.GetBaseShearVb(Cs, W);
            List<double> StoryForces = new List<double>();

            foreach (var story in storyData)
            {
                double wx = story.SeismicWeight;
                double hx = story.ElevationFromBase;

                //(12.8-12)
                double Cvx = wx * Math.Pow(hx, k) / Sum_w_h_k;

                //(12.8-11)
                double Fx = Cvx * Vb;

                StorySeismicLoad load = new StorySeismicLoad()
                    {
                        Cvx = Cvx,
                        Fx = Fx,
                        StoryId = story.StoryId,
                        ElevationFromBase = story.ElevationFromBase,
                        Weight = story.SeismicWeight
                    };
                
                loads.Add(load);

                StoryForces.Add(Fx);
            }

            return StoryForces;
        }