public void ExternalWindPressureForceCalculationsTest_8_2_20m_Success() { //Arrange: var building = new EqualHeightWalls( length: 16, width: 20, height: 48); var heightDisplacement = new HeightDisplacement( building, horizontalDistanceToObstruction: 10, obstructionHeight: 15); var terrain = new TerrainCategoryIV(heightDisplacement); var buildingSite = new BuildingSite(360, WindZone.III, terrain); var windLoadData = new WindLoadData(buildingSite, building); var verticalWallOfRectangularBuilding = new WallsWindLoads(building, windLoadData); var structuralFactorCalculator = new StructuralFactorCalculator( building, terrain, windLoadData, StructuralType.SteelBuilding); var externalPressureWindForce = new ExternalPressureWindForce( windLoadData, verticalWallOfRectangularBuilding, structuralFactorCalculator); //Act: var result = externalPressureWindForce.GetExternalPressureWindForceMaxAt( 20, calculateStructuralFactor: true); //Assert: Assert.Multiple(() => { Assert.That(result[Field.A], Is.EqualTo(-0.464).Within(0.001)); Assert.That(result[Field.B], Is.EqualTo(-0.309).Within(0.001)); Assert.That(result[Field.D], Is.EqualTo(0.309).Within(0.001)); Assert.That(result[Field.E], Is.EqualTo(-0.232).Within(0.001)); }); }
public void ExternalWindPressureForceCalculationsTest_Success() { //Arrange: double heightAboveSeaLevel = 250; double length = 30; double width = 30; double outerHeight = 17.355; double middleHeight = 20; WindZone windZone = WindZone.I; double referenceHeight = outerHeight; var building = new DuopitchRoof( length, width, outerHeight, middleHeight, DuopitchRoof.Rotation.Degrees_90); var heightDisplacement = new HeightDisplacement( building, horizontalDistanceToObstruction: 10, obstructionHeight: 15); var terrain = new TerrainCategoryIV(heightDisplacement); var buildingSite = new BuildingSite(heightAboveSeaLevel, windZone, terrain); var windLoadData = new WindLoadData(buildingSite, building); var flatRoofWindLoads = new DuopitchRoofWindLoadsRotation90( building, windLoadData); var externalPressureWindForce = new ExternalPressureWindForce( windLoadData, flatRoofWindLoads); referenceHeight = windLoadData.GetReferenceHeightAt(referenceHeight) - heightDisplacement.GetFactor(); //Act: var resultMax = externalPressureWindForce.GetExternalPressureWindForceMaxAt( building.Height, calculateStructuralFactor: true); var resultMin = externalPressureWindForce.GetExternalPressureWindForceMinAt( building.Height, calculateStructuralFactor: true); //Assert: Assert.Multiple(() => { // e Assert.That(building.EdgeDistance, Is.EqualTo(30)); // v_b,0 Assert.That(buildingSite.FundamentalValueBasicWindVelocity, Is.EqualTo(22).Within(0.01)); // c_dir // v_b Assert.That(buildingSite.BasicWindVelocity, Is.EqualTo(22).Within(0.01)); // z_e // c_r(z_e) Assert.That(terrain.GetRoughnessFactorAt(referenceHeight), Is.EqualTo(0.6).Within(0.01)); // c_0(z_e) // v_m(z_e) Assert.That(windLoadData.GetMeanWindVelocityAt(referenceHeight), Is.EqualTo(13.2).Within(0.01)); // I_v(z_e) Assert.That(windLoadData.GetTurbulenceIntensityAt(referenceHeight), Is.EqualTo(0.434).Within(0.001)); // q_p(z_e) Assert.That(windLoadData.GetPeakVelocityPressureAt(referenceHeight), Is.EqualTo(0.440).Within(0.001)); // c_sc_d Assert.That(resultMax[Field.F], Is.EqualTo(-0.638).Within(0.001)); Assert.That(resultMax[Field.G], Is.EqualTo(-0.572).Within(0.001)); Assert.That(resultMax[Field.H], Is.EqualTo(-0.286).Within(0.001)); Assert.That(resultMax[Field.I], Is.EqualTo(-0.242).Within(0.001)); Assert.That(resultMin[Field.F], Is.EqualTo(-0.638).Within(0.001)); Assert.That(resultMin[Field.G], Is.EqualTo(-0.572).Within(0.001)); Assert.That(resultMin[Field.H], Is.EqualTo(-0.286).Within(0.001)); Assert.That(resultMin[Field.I], Is.EqualTo(-0.242).Within(0.001)); }); }