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); }
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; }