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)))));
            }
        }
Exemple #2
0
 public static double WarpingConstant(this RectangleProfile profile)
 {
     return(profile.IsNull() ? 0 : 0);
 }