private LevelDataDictionary <SeismicStoryForce> DetermineStoryForces() { var storyForces = new LevelDataDictionary <SeismicStoryForce>(); var calc = new RecordedCalculation("Design Story Forces", CalculationType.SeismicDesign); foreach (BuildingLevelLateral2 level in _levels) { var distributionFactorX = _distributionFactors[level.Level].X; var distributionFactorY = _distributionFactors[level.Level].Y; Force Fx_i_x = Chapter_12.Section_12_8.Eqn_12_8_11(distributionFactorX, _baseShear, ref calc); Force Fx_i_y = Chapter_12.Section_12_8.Eqn_12_8_11(distributionFactorY, _baseShear, ref calc); storyForces.Add(new SeismicStoryForce { Level = level.Level, X = Fx_i_x, Y = Fx_i_y }); } // CalcLog.AddCalculation(calc); return(storyForces); }
private LevelDataDictionary <SeismicStoryForce> DetermineStoryShears() { var storyShears = new LevelDataDictionary <SeismicStoryForce>(); var calc = new RecordedCalculation("Design Story Shears", CalculationType.SeismicDesign); List <BuildingLevelLateral2> levelsFromBottomToTop = _levels.OrderBy(l => l.Level.Elevation).ToList(); for (var i = 0; i < levelsFromBottomToTop.Count; i++) { List <SeismicStoryForce> orderedForces = _storyForces.DataOrderedFromBottomToTopLevel(); Force Vx_i_x = Chapter_12.Section_12_8.Eqn_12_8_13(orderedForces.Select(f => f.X).ToList(), i, ref calc); Force Vx_i_y = Chapter_12.Section_12_8.Eqn_12_8_13(orderedForces.Select(f => f.Y).ToList(), i, ref calc); storyShears.Add(new SeismicStoryForce { Level = levelsFromBottomToTop[i].Level, X = Vx_i_x, Y = Vx_i_y }); } ; return(storyShears); }
private LevelDataDictionary <RigidAnalysis> GenerateRigidAnalyses() { var analyses = new LevelDataDictionary <RigidAnalysis>(); foreach (BuildingLevelLateral2 level in _lateralLevels) { IEnumerable <AnalyticalWallLateral> wallsAtLevel = _lateralWallList.Where(w => w.TopLevel.Equals(level.Level)); List <LateralLevelForce> forcesAtLevel = _elf.AppliedForces[level.Level]; analyses.Add(new RigidAnalysis(level, wallsAtLevel, forcesAtLevel, CommonResources.ASCE7SeismicELFLoadCases(), _serializedModel.SeismicParameters.SystemParameters.Cd)); } return(analyses); }
private LevelDataDictionary <VerticalDistributionFactors> DetermineDistributionFactors() { var distributionFactors = new LevelDataDictionary <VerticalDistributionFactors>(); var k = 1.0; if (_fundamentalPeriod.Value > 0.5 && _fundamentalPeriod.Value < 2.5) { k = 1.0 + (_fundamentalPeriod.Value - 0.5) / 2d; } else if (_fundamentalPeriod.Value >= 2.5) { k = 2.0; } List <Force> w = _levels.Select(l => l.SeismicWeight).ToList(); List <Length> H = _levels.Select(l => l.Height).ToList(); var n = _levels.Count; var calc = new RecordedCalculation("Vertical Distribution Factors", CalculationType.SeismicDesign); foreach (BuildingLevelLateral2 level in _levels) { Force w_x = level.SeismicWeight; Length h_x = level.Height; Unitless C_vxi = Chapter_12.Section_12_8.Eqn_12_8_12(w_x, h_x, k, n, w, H, ref calc); distributionFactors.Add(new VerticalDistributionFactors { Level = level.Level, X = C_vxi, Y = C_vxi }); } // CalcLog.AddCalculation(calc); return(distributionFactors); }