Ejemplo n.º 1
0
        public void ConstructorTest_Walls_Success()
        {
            var building = new EqualHeightWalls(length: 10, width: 5, height: 3);

            Assert.That(building.Length, Is.EqualTo(10));
            Assert.That(building.Width, Is.EqualTo(5));
            Assert.That(building.Height, Is.EqualTo(3));
            Assert.That(building.Areas.Count, Is.GreaterThan(0));
        }
Ejemplo n.º 2
0
        public void AreasTest_SmallWall_Success()
        {
            var building = new EqualHeightWalls(length: 1, width: 15, height: 5);

            Assert.That(building.Areas[Field.A], Is.EqualTo(5));
            Assert.That(building.Areas[Field.D], Is.EqualTo(75));
            Assert.That(building.Areas[Field.E], Is.EqualTo(75));
            Assert.That(building.Areas.ContainsKey(Field.B), Is.False);
            Assert.That(building.Areas.ContainsKey(Field.C), Is.False);
        }
Ejemplo n.º 3
0
        public void AreasTest_LargeWall_Success()
        {
            var building = new EqualHeightWalls(length: 15, width: 10, height: 5);

            Assert.That(building.Areas[Field.A], Is.EqualTo(10));
            Assert.That(building.Areas[Field.B], Is.EqualTo(40));
            Assert.That(building.Areas[Field.C], Is.EqualTo(25));
            Assert.That(building.Areas[Field.D], Is.EqualTo(50));
            Assert.That(building.Areas[Field.E], Is.EqualTo(50));
        }
Ejemplo n.º 4
0
 private HeightDisplacement GetHeightDisplacement(EqualHeightWalls structureData)
 {
     if (HorizontalDistanceToObstruction.HasValue && TerrainType.Value == Build_IT_WindLoads.Terrains.Enums.TerrainType.Terrain_IV)
     {
         return(new HeightDisplacement(structureData,
                                       HorizontalDistanceToObstruction.Value,
                                       ObstructionHeight.HasValue ? ObstructionHeight.Value : default));
     }
     return(null);
 }
Ejemplo n.º 5
0
        public void GetPeakVelocityPressureTest_Success()
        {
            //Arrange:
            var building = new EqualHeightWalls(10, 10, 10);
            var terrain  = new TerrainCategoryI();

            var buildingSite = new BuildingSite(325, WindZone.I, terrain);
            var windLoadData = new WindLoadData(buildingSite, building);

            //Act:
            var result = windLoadData.GetPeakVelocityPressureAt(10);

            //Assert:
            Assert.That(result, Is.EqualTo(0.904).Within(0.001));
        }
Ejemplo n.º 6
0
        public IResult Calculate()
        {
            EqualHeightWalls   structureData      = GetStructureData();
            HeightDisplacement heightDisplacement = GetHeightDisplacement(structureData);
            Terrain            terrain            = GetTerrainCategory(heightDisplacement);
            BuildingSite       buildingSite       = GetBuildingSite();
            WindLoadData       windLoadData       = GetWindLoadData();
            WallsWindLoads     wallsWindLoads     = GetWallsWindLoads();

            //snowguards.CalculateSnowLoad();

            //var result = new Result();
            //result.Properties.Add("F_s_", snowguards.ForceExertedBySnow);

            // return result;
            throw new NotImplementedException();
        }
Ejemplo n.º 7
0
        public void ExternalWindPressureCalculationsTest_AS_SX01a_Success()
        {
            //Arrange:
            var building = new EqualHeightWalls(
                length: 72, width: 30, height: 7.3);
            var terrain      = new TerrainCategoryII();
            var buildingSite = new BuildingSite(325, WindZone.II, terrain);
            var windLoadData = new WindLoadData(buildingSite, building);
            var verticalWallOfRectangularBuilding = new WallsWindLoads(building, windLoadData);

            //Act:
            var result = verticalWallOfRectangularBuilding.GetExternalWindPressureMaxAt(building.Height);

            //Assert:
            Assert.Multiple(() =>
            {
                Assert.That(result[Field.D], Is.EqualTo(0.638).Within(0.001));
                Assert.That(result[Field.E], Is.EqualTo(-0.273).Within(0.001));
            });
        }
Ejemplo n.º 8
0
        public void ExternalWindPressureCalculationsTest_Walls_Success()
        {
            //Arrange:
            var building     = new EqualHeightWalls(10, 10, 15);
            var terrain      = new TerrainCategoryIII();
            var buildingSite = new BuildingSite(325, WindZone.I_III, terrain);
            var windLoadData = new WindLoadData(buildingSite, building);
            var verticalWallOfRectangularBuilding = new WallsWindLoads(building, windLoadData);

            //Act:
            var result = verticalWallOfRectangularBuilding.GetExternalWindPressureMaxAt(building.Height);

            //Assert:
            Assert.Multiple(() =>
            {
                Assert.That(result[Field.A], Is.EqualTo(-0.754).Within(0.001));
                Assert.That(result[Field.B], Is.EqualTo(-0.503).Within(0.001));
                Assert.That(result[Field.D], Is.EqualTo(0.503).Within(0.001));
                Assert.That(result[Field.E], Is.EqualTo(-0.330).Within(0.001));
            });
        }
Ejemplo n.º 9
0
        public void ExternalWindPressureCalculationsTest_8_1a_Success()
        {
            //Arrange:
            var building = new EqualHeightWalls(
                length: 28.8, width: 42, height: 10.6);
            var terrain      = new TerrainCategoryIII();
            var buildingSite = new BuildingSite(175, WindZone.I, terrain);
            var windLoadData = new WindLoadData(buildingSite, building);
            var verticalWallOfRectangularBuilding = new WallsWindLoads(building, windLoadData);

            //Act:
            var result = verticalWallOfRectangularBuilding.GetExternalWindPressureMaxAt(building.Height);

            //Assert:
            Assert.Multiple(() =>
            {
                Assert.That(result[Field.A], Is.EqualTo(-0.704).Within(0.001));
                Assert.That(result[Field.B], Is.EqualTo(-0.470).Within(0.001));
                Assert.That(result[Field.C], Is.EqualTo(-0.294).Within(0.001));
                Assert.That(result[Field.D], Is.EqualTo(0.420).Within(0.001));
                Assert.That(result[Field.E], Is.EqualTo(-0.194).Within(0.001));
            });
        }
Ejemplo n.º 10
0
        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));
            });
        }
Ejemplo n.º 11
0
        public void GetReferenceHeightTest_Walls_Success()
        {
            var building = new EqualHeightWalls(length: 10, width: 15, height: 10);

            Assert.That(building.GetReferenceHeight(), Is.EqualTo(6));
        }
Ejemplo n.º 12
0
        public void EdgeDistanceTest_Walls_WidthIsSmaller_Success(double height, double expectedResult)
        {
            var building = new EqualHeightWalls(length: 10, width: 5, height: height);

            Assert.That(building.EdgeDistance, Is.EqualTo(expectedResult));
        }
Ejemplo n.º 13
0
        public void ExternalWindPressureForceCalculationsTest_Example2019_04_28_Success()
        {
            //Arrange:
            double   heightAboveSeaLevel = 123;
            double   length          = 40;
            double   width           = 50;
            double   height          = 30;
            WindZone windZone        = WindZone.II;
            double   referenceHeight = 30;

            double actualLengthUpwindSlope        = 20;
            double actualLengthDownwindSlope      = 10;
            double effectiveFeatureHeight         = 10;
            double horizontalDistanceFromCrestTop = 2;

            double windDirection = 220;

            var building = new EqualHeightWalls(
                length, width, height);
            var orographyFactor = new HillRidgeOrography(
                actualLengthUpwindSlope,
                actualLengthDownwindSlope,
                effectiveFeatureHeight,
                horizontalDistanceFromCrestTop);
            var terrain           = new TerrainCategoryIII(orographyFactor);
            var directionalFactor = new DirectionalFactor(windZone, windDirection);
            var buildingSite      = new BuildingSite(heightAboveSeaLevel, windZone, terrain,
                                                     directionalFactor: directionalFactor);
            var windLoadData = new WindLoadData(buildingSite, building);
            var verticalWallOfRectangularBuilding = new WallsWindLoads(building, windLoadData);

            var structuralFactorCalculator = new StructuralFactorCalculator(
                building, terrain, windLoadData, StructuralType.ReinforcementConcreteBuilding);

            var externalPressureWindForce =
                new ExternalPressureWindForce(
                    windLoadData,
                    verticalWallOfRectangularBuilding,
                    structuralFactorCalculator);

            //Act:
            var result = externalPressureWindForce.GetExternalPressureWindForceMaxAt(
                referenceHeight, calculateStructuralFactor: true);

            //Assert:
            Assert.Multiple(() =>
            {
                // e
                Assert.That(building.EdgeDistance, Is.EqualTo(50));
                // v_b,0
                Assert.That(buildingSite.FundamentalValueBasicWindVelocity, Is.EqualTo(26).Within(0.01));
                // c_dir
                Assert.That(directionalFactor.GetFactor(), Is.EqualTo(0.8));
                // v_b
                Assert.That(buildingSite.BasicWindVelocity, Is.EqualTo(20.8).Within(0.01));
                // z_e

                // c_r(z_e)
                Assert.That(terrain.GetRoughnessFactorAt(referenceHeight), Is.EqualTo(0.99).Within(0.01));
                // c_0(z_e)
                Assert.That(orographyFactor.GetFactorAt(referenceHeight), Is.EqualTo(1.11).Within(0.01));
                // v_m(z_e)
                Assert.That(windLoadData.GetMeanWindVelocityAt(referenceHeight),
                            Is.EqualTo(22.85).Within(0.01));
                // I_v(z_e)
                Assert.That(windLoadData.GetTurbulenceIntensityAt(referenceHeight),
                            Is.EqualTo(0.195).Within(0.001));
                // q_p(z_e)
                Assert.That(windLoadData.GetPeakVelocityPressureAt(referenceHeight),
                            Is.EqualTo(0.771).Within(0.001));
                // c_sc_d
                Assert.That(structuralFactorCalculator.GetStructuralFactor(true),
                            Is.EqualTo(0.817).Within(0.001));

                Assert.That(result[Field.A], Is.EqualTo(-0.756).Within(0.001));
                Assert.That(result[Field.B], Is.EqualTo(-0.504).Within(0.001));
                Assert.That(result[Field.D], Is.EqualTo(0.483).Within(0.001));
                Assert.That(result[Field.E], Is.EqualTo(-0.273).Within(0.001));
            });
        }