private double GetWarmRoofCs(double slope, data.SnowRoofSurfaceType surface, ICalcLogEntry CsEntry) { double Cs = 1.0; if (surface == data.SnowRoofSurfaceType.Slippery) { if (slope <= 5.0) { Cs = 1.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorWarmSlippery.docx"; } else { if (slope > 70) { Cs = 0.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorWarmSlippery.docx"; } else { Cs = 1.0 - (slope - 5.0) / 65.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorWarmSlipperyInterp.docx"; } } } else { if (slope <= 30.0) { Cs = 1.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorWarmNonSlippery.docx"; } else { if (slope > 70) { Cs = 0.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorWarmNonSlippery.docx"; } else { Cs = 1.0 - (slope - 30.0) / 40.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorWarmSlipperyInterp.docx"; } } } return Cs; }
public double GetSnowSlopeFactor(double RoofSlopeAngle, data.SnowRoofSurfaceType surface, double ThermalFactor) { double Ct=ThermalFactor; double Cs; #region Cs ICalcLogEntry CsEntry = new CalcLogEntry(); CsEntry.ValueName = "Cs"; CsEntry.AddDependencyValue("s", Math.Round(RoofSlopeAngle, 3)); CsEntry.AddDependencyValue("Ct", Math.Round(ThermalFactor, 3)); CsEntry.Reference = ""; CsEntry.FormulaID = null; //reference to formula from code #endregion if (Ct<=1.0) { Cs =GetWarmRoofCs(RoofSlopeAngle, surface, CsEntry); } else { if (Ct>=1.2) { Cs = GetColdRoofCs(RoofSlopeAngle, surface, CsEntry); } else { Cs = GetIntermediateColdRoofCs(RoofSlopeAngle, surface, CsEntry); } } CsEntry.VariableValue = Math.Round(Cs, 3).ToString(); this.AddToLog(CsEntry); return Cs; }
private double GetIntermediateColdRoofCs(double slope, data.SnowRoofSurfaceType surface, ICalcLogEntry CsEntry) { double Cs = 1.0; if (surface == data.SnowRoofSurfaceType.Slippery) { if (slope <= 10.0) { Cs = 1.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorIntermediateColdSlippery.docx"; } else { if (slope > 70) { Cs = 0.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorIntermediateColdSlippery.docx"; } else { Cs = 1.0 - (slope - 10.0) / 60.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorIntermediateColdSlipperyInterp.docx"; } } } else { if (slope <= 37.5) { Cs = 1.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorIntermediateColdNonSlippery.docx"; } else { if (slope > 70) { Cs = 0.0; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorIntermediateColdNonSlippery.docx"; } else { Cs = 1.0 - (slope - 37.5) / 32.5; CsEntry.DescriptionReference = "/Templates/Loads/ASCE7_10/Snow/SnowSlopeFactorIntermediateColdNonSlipperyInterp.docx"; } } } return Cs; }