Exemplo n.º 1
0
        public IResult Calculate()
        {
            BuildingSite  buildingSite  = GetBuildingSite();
            SnowLoad      snowLoad      = GetSnowLoad(buildingSite);
            Building      building      = GetBuilding(snowLoad);
            MonopitchRoof monopitchRoof = GetMonopitchRoof(building);

            if (!ExposureCoefficient.HasValue)
            {
                buildingSite.CalculateExposureCoefficient();
            }
            snowLoad.CalculateSnowLoad();
            building.CalculateThermalCoefficient();
            monopitchRoof.CalculateSnowLoad();

            var result = new Result();

            result.Properties.Add("C_e_", buildingSite.ExposureCoefficient);
            result.Properties.Add("s_k_", snowLoad.DefaultCharacteristicSnowLoad);
            result.Properties.Add("V", snowLoad.VariationCoefficient);
            result.Properties.Add("C_esl_", snowLoad.ExceptionalSnowLoadCoefficient);
            result.Properties.Add("s_n_", snowLoad.SnowLoadForSpecificReturnPeriod);
            result.Properties.Add("s_Ad_", snowLoad.DesignExceptionalSnowLoadForSpecificReturnPeriod);
            result.Properties.Add("t_i_", building.InternalTemperature);
            result.Properties.Add("∆_t_", building.TempreatureDifference);
            result.Properties.Add("U", building.OverallHeatTransferCoefficient);
            result.Properties.Add("C_t_", building.ThermalCoefficient);
            result.Properties.Add("μ_1_", monopitchRoof.ShapeCoefficient);
            result.Properties.Add("s", monopitchRoof.SnowLoadOnRoofValue);

            return(result);
        }
Exemplo n.º 2
0
        public void MonopitchRoofTest_CalculateSnowLoad_Success()
        {
            var building = BuildingImplementation.CreateBuilding();

            var monopitchRoof = new MonopitchRoof(building, 15);

            monopitchRoof.CalculateSnowLoad();
            Assert.AreEqual(0.72, Math.Round(monopitchRoof.SnowLoadOnRoofValue, 3), "Snow load is not calculated properly.");
        }
Exemplo n.º 3
0
        public void ExampleTest4_CalculateSnowLoad_Success()
        {
            var buildingSite  = new BuildingSite(Zones.SecondZone, Topographies.Normal, altitudeAboveSea: 175);
            var snowLoad      = new SnowLoad(buildingSite);
            var building      = new Building(snowLoad);
            var monopitchRoof = new MonopitchRoof(building, 10);

            buildingSite.CalculateExposureCoefficient();
            snowLoad.CalculateSnowLoad();
            building.CalculateThermalCoefficient();
            monopitchRoof.CalculateSnowLoad();
            Assert.AreEqual(0.72, Math.Round(monopitchRoof.SnowLoadOnRoofValue, 3),
                            "Snow load is not calculated properly.");
        }
Exemplo n.º 4
0
        public void ExampleTest2_CalculateSnowLoad_Success()
        {
            var buildingSite = new BuildingSite(Zones.ThirdZone, Topographies.Normal, 360);
            var snowLoad     = new SnowLoad(buildingSite);
            var building     = new Building(snowLoad);

            var monopitchRoof = new MonopitchRoof(building, 5);

            buildingSite.CalculateExposureCoefficient();
            snowLoad.CalculateSnowLoad();
            building.CalculateThermalCoefficient();
            monopitchRoof.CalculateSnowLoad();
            Assert.AreEqual(1.248, Math.Round(monopitchRoof.SnowLoadOnRoofValue, 3),
                            "Snow load for roof is not calculated properly.");
        }
Exemplo n.º 5
0
        public void ExampleTest2_CalculateSnowOverhanging_Success()
        {
            var buildingSite = new BuildingSite(Zones.ThirdZone, Topographies.Normal, 360);

            buildingSite.CalculateExposureCoefficient();
            var snowLoad = new SnowLoad(buildingSite, snowDensity: 3);

            snowLoad.CalculateSnowLoad();
            var building = new Building(snowLoad);

            building.CalculateThermalCoefficient();

            var monopitchRoof = new MonopitchRoof(building, 5);

            monopitchRoof.CalculateSnowLoad();

            var snowOverhanging = new SnowOverhanging(building, monopitchRoof.SnowLoadOnRoofValue);

            snowOverhanging.CalculateSnowLoad();

            Assert.AreEqual(0.648, Math.Round(snowOverhanging.SnowLoad, 3),
                            "Snow overhanging is not calculated properly.");
        }