public static Dictionary <string, object> BearingStrengthAtBoltHole(string BoltHoleType, double l_c, double F_u, double F_y, double d_b, double t, string BoltHoleDeformationType = "ConsideredUnderServiceLoad", bool IsUnstiffenedHollowSection = false, string Code = "AISC360-10") { //Default values double phiR_nv = 0; BoltHoleType holeType; bool IsValidString = Enum.TryParse(BoltHoleType, true, out holeType); if (IsValidString == true) { BoltHoleDeformationType deformationType; bool IsValidDeformationType = Enum.TryParse(BoltHoleDeformationType, true, out deformationType); if (IsValidDeformationType == true) { AffectedElementWithHoles element = new AffectedElementWithHoles(); phiR_nv = element.GetBearingStrengthAtBoltHole(l_c, d_b, t, F_y, F_u, holeType, deformationType, IsUnstiffenedHollowSection); } else { throw new Exception("Invalid Bolt Hole Deformation Type string"); } } else { throw new Exception("Invalid bolt hole type string"); } return(new Dictionary <string, object> { { "phiR_nv", phiR_nv } }); }
public void BoltBearingEndBoltsReturnsValue() { AffectedElementWithHoles element = new AffectedElementWithHoles(); double phiR_n = element.GetBearingStrengthAtBoltHole(1.03, 7.0 / 8.0, 1, 50.0, 65.0, BoltHoleType.STD, BoltHoleDeformationType.ConsideredUnderServiceLoad, false); double refValue = 60.3; double actualTolerance = EvaluateActualTolerance(phiR_n, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
public void BoltBearingInnerBoltsReturnsValue() { AffectedElementWithHoles element = new AffectedElementWithHoles(); double phiR_n = element.GetBearingStrengthAtBoltHole(2.06, 7.0 / 8.0, 1, 50.0, 65.0, BoltHoleType.STD, BoltHoleDeformationType.ConsideredUnderServiceLoad, false); double refValue = 102.0; double actualTolerance = EvaluateActualTolerance(phiR_n, refValue); Assert.True(actualTolerance <= tolerance); }
public static Dictionary <string, object> BoltGroupBearingStrength(double N_BoltRowParallel, double N_BoltRowPerpendicular, double phiR_nFirstRow, double phiR_nInnerRow, string Code = "AISC360-10") { //Default values double phiR_n = 0; //Calculation logic: AffectedElementWithHoles el = new AffectedElementWithHoles(); phiR_n = el.GetBoltGroupBearingStrength(N_BoltRowParallel, N_BoltRowPerpendicular, phiR_nFirstRow, phiR_nInnerRow); return(new Dictionary <string, object> { { "phiR_n", phiR_n } }); }