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); }
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."); }
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."); }
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."); }
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."); }