Exemplo n.º 1
0
        public void ExampleTest3_CalculateSnowLoad_Success()
        {
            var buildingSite = new BuildingSite(Zones.FirstZone, Topographies.Normal, 127);

            buildingSite.CalculateExposureCoefficient();
            var snowLoad = new SnowLoad(buildingSite, DesignSituation.B2, true);

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

            building.CalculateThermalCoefficient();

            var roofAbuttingToTallerConstruction5Degrees = new ExceptionalRoofAbuttingToTallerConstruction(building, 12, 14.6, 4.5, 5);

            roofAbuttingToTallerConstruction5Degrees.CalculateDriftLength();
            roofAbuttingToTallerConstruction5Degrees.CalculateSnowLoad();

            var roofAbuttingToTallerConstruction35Degrees = new ExceptionalRoofAbuttingToTallerConstruction(building, 12, 14.6, 4.5, 35);

            roofAbuttingToTallerConstruction35Degrees.CalculateDriftLength();
            roofAbuttingToTallerConstruction35Degrees.CalculateSnowLoad();

            Assert.AreEqual(14.6, Math.Round(roofAbuttingToTallerConstruction5Degrees.DriftLength, 3),
                            "Drift length is not calculated properly.");
            Assert.AreEqual(1.4, Math.Round(roofAbuttingToTallerConstruction5Degrees.SnowLoadNearTheTop, 3),
                            "Snow load for roof is not calculated properly.");
            Assert.AreEqual(1.4, Math.Round(roofAbuttingToTallerConstruction5Degrees.SnowLoadNearTheEdge, 3),
                            "Snow load for roof is not calculated properly.");
            Assert.AreEqual(0, Math.Round(roofAbuttingToTallerConstruction35Degrees.SnowLoadNearTheTop, 3),
                            "Snow load for roof is not calculated properly.");
            Assert.AreEqual(1.167, Math.Round(roofAbuttingToTallerConstruction35Degrees.SnowLoadNearTheEdge, 3),
                            "Snow load for roof is not calculated properly.");
        }
Exemplo n.º 2
0
        public IResult Calculate()
        {
            BuildingSite buildingSite = GetBuildingSite();
            SnowLoad     snowLoad     = GetSnowLoad(buildingSite);
            Building     building     = GetBuilding(snowLoad);
            ExceptionalSnowBehindParapet exceptionalSnowBehindParapet
                = GetExceptionalSnowBehindParapet(building);

            if (!ExposureCoefficient.HasValue)
            {
                buildingSite.CalculateExposureCoefficient();
            }
            snowLoad.CalculateSnowLoad();
            building.CalculateThermalCoefficient();
            exceptionalSnowBehindParapet.CalculateDriftLength();
            exceptionalSnowBehindParapet.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("l_s_", exceptionalSnowBehindParapet.DriftLength);
            result.Properties.Add("μ_1_", exceptionalSnowBehindParapet.ShapeCoefficient);
            result.Properties.Add("s", exceptionalSnowBehindParapet.SnowLoad);

            return(result);
        }
        public IResult Calculate()
        {
            BuildingSite             buildingSite             = GetBuildingSite();
            SnowLoad                 snowLoad                 = GetSnowLoad(buildingSite);
            Building                 building                 = GetBuilding(snowLoad);
            ExceptionalMultiSpanRoof exceptionalMultiSpanRoof = GetExceptionalMultiSpanRoof(building);

            if (!ExposureCoefficient.HasValue)
            {
                buildingSite.CalculateExposureCoefficient();
            }
            snowLoad.CalculateSnowLoad();
            building.CalculateThermalCoefficient();
            exceptionalMultiSpanRoof.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("b_3_", exceptionalMultiSpanRoof.HorizontalDimensionOfThreeSlopes);
            result.Properties.Add("μ_1_", exceptionalMultiSpanRoof.ShapeCoefficient);
            result.Properties.Add("s", exceptionalMultiSpanRoof.SnowLoad);

            return(result);
        }
        public IResult Calculate()
        {
            BuildingSite buildingSite = GetBuildingSite();
            SnowLoad     snowLoad     = GetSnowLoad(buildingSite);
            Building     building     = GetBuilding(snowLoad);
            DriftingAtProjectionsObstructions driftingAtProjectionsObstructions = GetDriftingAtProjectionsObstructions(building);

            if (!ExposureCoefficient.HasValue)
            {
                buildingSite.CalculateExposureCoefficient();
            }
            snowLoad.CalculateSnowLoad();
            building.CalculateThermalCoefficient();
            driftingAtProjectionsObstructions.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_", driftingAtProjectionsObstructions.FirstShapeCoefficient);
            result.Properties.Add("μ_2_", driftingAtProjectionsObstructions.SecondShapeCoefficient);
            result.Properties.Add("l_s_", driftingAtProjectionsObstructions.DriftLength);
            result.Properties.Add("s_2_", driftingAtProjectionsObstructions.SnowLoadOnRoofValue);
            result.Properties.Add("s_1_", driftingAtProjectionsObstructions.SnowLoadOnRoofValueAtTheEnd);

            return(result);
        }
Exemplo n.º 5
0
        public void CalculateExposureCoefficientTest_NoneTopography_Success()
        {
            var buildingSite = new BuildingSite(currentTopography: Topographies.None);

            buildingSite.CalculateExposureCoefficient();

            Assert.AreEqual(1.2, buildingSite.ExposureCoefficient, "Exposure coefficient is wrong.");
        }
Exemplo n.º 6
0
        public void CalculateExposureCoefficientTest_ShelteredTopography_Success()
        {
            var buildingSite = new BuildingSite();

            buildingSite.CurrentTopography = TopographyEnum.Sheltered;

            buildingSite.CalculateExposureCoefficient();

            Assert.AreEqual(1.2, buildingSite.ExposureCoefficient, "Exposure coefficient is wrong.");
        }
Exemplo n.º 7
0
        public void CalculateExposureCoefficientTest_WindsweptTopography_Success()
        {
            var buildingSite = new BuildingSite();

            buildingSite.CurrentTopography = TopographyEnum.Windswept;

            buildingSite.CalculateExposureCoefficient();

            Assert.AreEqual(0.8, buildingSite.ExposureCoefficient, "Exposure coefficient is wrong.");
        }
Exemplo n.º 8
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.º 9
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.º 10
0
        public void ExampleTest1_CalculateSnowLoad_Success()
        {
            var buildingSite = new BuildingSite(Zones.FirstZone, Topographies.Normal, 127);

            buildingSite.CalculateExposureCoefficient();
            var snowLoad = new SnowLoad(buildingSite);

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

            building.CalculateThermalCoefficient();

            var pitchedRoof = new PitchedRoof(building, 35, 5);

            pitchedRoof.CalculateSnowLoad();
            Assert.AreEqual(0.467, Math.Round(pitchedRoof.LeftRoof.SnowLoadOnRoofValue, 3),
                            "Snow load for left roof is not calculated properly.");
            Assert.AreEqual(0.56, Math.Round(pitchedRoof.RightRoof.SnowLoadOnRoofValue, 3),
                            "Snow load for right roof is not calculated properly.");
        }
Exemplo n.º 11
0
        public void ExampleTest2_CalculateExceptionalSnowLoad_Success()
        {
            var buildingSite = new BuildingSite(ZoneEnum.ThirdZone, TopographyEnum.Normal, 360);

            buildingSite.CalculateExposureCoefficient();
            var snowLoad = new SnowLoad(buildingSite, DesignSituation.B2, true);

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

            building.CalculateThermalCoefficient();

            var exceptionalSnowBehindParapetAtEaves = new ExceptionalSnowBehindParapetAtEaves(building, 6, 12, 1);

            exceptionalSnowBehindParapetAtEaves.CalculateDriftLength();
            exceptionalSnowBehindParapetAtEaves.CalculateSnowLoad();

            Assert.AreEqual(5, Math.Round(exceptionalSnowBehindParapetAtEaves.DriftLength, 3),
                            "Drift length is not calculated properly.");
            Assert.AreEqual(2, Math.Round(exceptionalSnowBehindParapetAtEaves.SnowLoad, 3),
                            "Snow load for roof is not calculated properly.");
        }
Exemplo n.º 12
0
        public IResult Calculate()
        {
            BuildingSite buildingSite = GetBuildingSite();
            SnowLoad     snowLoad     = GetSnowLoad(buildingSite);
            Building     building     = GetBuilding(snowLoad);
            PitchedRoof  pitchedRoof  = GetPitchedRoof(building);

            if (!ExposureCoefficient.HasValue)
            {
                buildingSite.CalculateExposureCoefficient();
            }
            snowLoad.CalculateSnowLoad();
            building.CalculateThermalCoefficient();
            pitchedRoof.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("μ_l,1_", pitchedRoof.LeftRoof.ShapeCoefficient);
            result.Properties.Add("μ_r,1_", pitchedRoof.RightRoof.ShapeCoefficient);
            result.Properties.Add("s_l,I_", pitchedRoof.LeftRoofCasesSnowLoad[1]);
            result.Properties.Add("s_r,I_", pitchedRoof.RightRoofCasesSnowLoad[1]);
            result.Properties.Add("s_l,II_", pitchedRoof.LeftRoofCasesSnowLoad[2]);
            result.Properties.Add("s_r,II_", pitchedRoof.RightRoofCasesSnowLoad[2]);
            result.Properties.Add("s_l,III_", pitchedRoof.LeftRoofCasesSnowLoad[3]);
            result.Properties.Add("s_r,III_", pitchedRoof.RightRoofCasesSnowLoad[3]);

            return(result);
        }
Exemplo n.º 13
0
        public IResult Calculate()
        {
            BuildingSite buildingSite = GetBuildingSite();
            SnowLoad     snowLoad     = GetSnowLoad(buildingSite);
            Building     building     = GetBuilding(snowLoad);
            RoofAbuttingToTallerConstruction roofAbuttingToTallerConstruction = GetRoofAbuttingToTallerConstruction(building);

            if (!ExposureCoefficient.HasValue)
            {
                buildingSite.CalculateExposureCoefficient();
            }
            snowLoad.CalculateSnowLoad();
            building.CalculateThermalCoefficient();
            roofAbuttingToTallerConstruction.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("μ_s_", roofAbuttingToTallerConstruction.ShapeCoefficientSlidingSnow);
            result.Properties.Add("μ_w_", roofAbuttingToTallerConstruction.ShapeCoefficientWind);
            result.Properties.Add("μ_2_", roofAbuttingToTallerConstruction.ShapeCoefficient);
            result.Properties.Add("μ_1_", roofAbuttingToTallerConstruction.ShapeCoefficientAtTheEnd);
            result.Properties.Add("l_s_", roofAbuttingToTallerConstruction.DriftLength);
            result.Properties.Add("s_I_", roofAbuttingToTallerConstruction.SnowLoadsNearTallerBuilding[1]);
            result.Properties.Add("s_l,II_", roofAbuttingToTallerConstruction.SnowLoadsNearTallerBuilding[2]);
            result.Properties.Add("s_r,II_", roofAbuttingToTallerConstruction.SnowLoadOnRoofValueAtTheEnd);

            return(result);
        }
Exemplo n.º 14
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.");
        }
Exemplo n.º 15
0
        public IResult Calculate()
        {
            BuildingSite  buildingSite  = GetBuildingSite();
            SnowLoad      snowLoad      = GetSnowLoad(buildingSite);
            Building      building      = GetBuilding(snowLoad);
            MultiSpanRoof multiSpanRoof = GetMultiSpanRoof(building);

            if (!ExposureCoefficient.HasValue)
            {
                buildingSite.CalculateExposureCoefficient();
            }
            snowLoad.CalculateSnowLoad();
            building.CalculateThermalCoefficient();
            multiSpanRoof.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_(α_1_)", multiSpanRoof.LeftRoof.ShapeCoefficient);
            result.Properties.Add("μ_1_(α_2_)", multiSpanRoof.RightRoof.ShapeCoefficient);
            result.Properties.Add("μ_2_(α)", multiSpanRoof.ShapeCoefficient);
            result.Properties.Add("s(α_1_)", multiSpanRoof.LeftRoof.SnowLoadOnRoofValue);
            result.Properties.Add("s(α_2_)", multiSpanRoof.RightRoof.SnowLoadOnRoofValue);
            result.Properties.Add("s_middle_", multiSpanRoof.SnowLoadOnMiddleRoof);

            return(result);
        }