public static Dictionary <string, object> FilletWeldGroupCoefficient(string WeldGroupPattern, double l_Weld_horizontal, double l_Weld_vertical, double e_group, double theta, double w_weld, double F_EXX, bool IsLoadOutOfPlane = false, string Code = "AISC360-10") { //Default values double C_WeldGroup = 0; double phiR_n = 0; //Calculation logic: WeldGroupPattern pattern; bool IsValidString = Enum.TryParse(WeldGroupPattern, true, out pattern); if (IsValidString == true) { FilletWeldGroup wg = new FilletWeldGroup(pattern, l_Weld_horizontal, l_Weld_vertical, w_weld, F_EXX, IsLoadOutOfPlane); C_WeldGroup = wg.GetInstantaneousCenterCoefficient(e_group, theta);; phiR_n = 0.75 * wg.GetUltimateForce(e_group, theta); //0.75 is the phi factor } else { throw new Exception("Weld group strength calculation failed. Invalid weld group pattern designation."); } return(new Dictionary <string, object> { { "C_WeldGroup", C_WeldGroup }, { "phiR_n", phiR_n } }); }
public void WeldGroupAngleReturnsValue() { double L = 10; FilletWeldGroup wg = new FilletWeldGroup("L", 5.0, L, 1.0 / 16.0, 70.0); double C = wg.GetInstantaneousCenterCoefficient(5.0, 0); double refValue = 1.95; // from AISC Steel Manual double actualTolerance = EvaluateActualTolerance(C, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
public void WeldGroupRectangleReturnsValue() { double L = 10; FilletWeldGroup wg = new FilletWeldGroup("Rectangle", 5.0, L, 1.0 / 16.0, 70.0); double C = wg.GetInstantaneousCenterCoefficient(10, 0); double refValue = 2.45; // from AISC Steel Manual double actualTolerance = EvaluateActualTolerance(C, refValue); Assert.True(actualTolerance <= tolerance); }
public void WeldGroup2LinesHorizontalReturnsValue() { double L = 10; FilletWeldGroup wg = new FilletWeldGroup("ParallelHorizontal", L, 5.0, 1.0 / 16.0, 70.0); double C = wg.GetInstantaneousCenterCoefficient(5.0, 0); double refValue = 2.62; // from AISC Steel Manual double P_n = refValue * L; double actualTolerance = EvaluateActualTolerance(C, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
public void WeldGroup2LinesOutOfPlaneReturnsValue() { double L = 10; FilletWeldGroup wg = new FilletWeldGroup("ParallelVertical", 5.0, L, 1.0 / 16.0, 70.0, true); double C = wg.GetInstantaneousCenterCoefficient(10.0, 0); double refValue = 1.28; // from AISC Steel Manual double P_n = refValue * L; double actualTolerance = EvaluateActualTolerance(C, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
public void WeldGroup2LinesReturnsValue() { double L = 10; FilletWeldGroup wg = new FilletWeldGroup("ParallelVertical", 5.0, L, 1.0 / 16.0, 70.0); double C = wg.GetInstantaneousCenterCoefficient(5.0, 0); double refValue = 2.44; // from AISC Steel Manual double P_n = refValue * L; double spreadsheetPn = 18.34 / 0.75; //Yakpol.net version 2008.1 double actualTolerance = EvaluateActualTolerance(C, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
public void WeldGroupChannelReturnsValue() { double L = 10; FilletWeldGroup wg = new FilletWeldGroup("C", 5.0, L, 1.0 / 16.0, 70.0); double C = wg.GetInstantaneousCenterCoefficient(5.0, 0); double refValue = 2.85; // from AISC Steel Manual double P_n = refValue * L; double spreadsheetPn = 20.4 / 0.75; //Yakpol.net version 2008.1 double actualTolerance = EvaluateActualTolerance(C, refValue); Assert.True(actualTolerance <= tolerance); }