public static double TorsionalConstant(this RectangleProfile profile) { if (profile.IsNull()) { return(0); } if (Math.Abs(profile.Height - profile.Width) < Tolerance.Distance) { return(2.25 * Math.Pow(profile.Height / 2, 4)); } else { double a = Math.Max(profile.Height, profile.Width) / 2; double b = Math.Min(profile.Height, profile.Width) / 2; return(a * Math.Pow(b, 3) * (16 / 3 - 3.36 * b / a * (1 - Math.Pow(b, 4) / (12 * Math.Pow(a, 4))))); } }
public static double WarpingConstant(this RectangleProfile profile) { return(profile.IsNull() ? 0 : 0); }