public static double TorsionalConstant(this FabricatedISectionProfile profile) { if (profile.IsNull()) { return(0); } double b1 = profile.TopFlangeWidth; double b2 = profile.BotFlangeWidth; double height = profile.Height; double tf1 = profile.TopFlangeThickness; double tf2 = profile.BotFlangeThickness; double tw = profile.WebThickness; return((b1 * Math.Pow(tf1, 3) + b2 * Math.Pow(tf2, 3) + (height - (tf1 + tf2) / 2) * Math.Pow(tw, 3)) / 3); }
public static double WarpingConstant(this FabricatedISectionProfile profile) { if (profile.IsNull()) { return(0); } double b1 = profile.TopFlangeWidth; double b2 = profile.BotFlangeWidth; double height = profile.Height; double tf1 = profile.TopFlangeThickness; double tf2 = profile.BotFlangeThickness; double tw = profile.WebThickness; if (tf1 == tf2 && b1 == b2) { return(tf1 * Math.Pow(height - tf1, 2) * Math.Pow(b1, 3) / 24); } else { return(tf1 * Math.Pow(height - (tf1 + tf2) / 2, 2) / 12 * (Math.Pow(b1, 3) * Math.Pow(b2, 3) / (Math.Pow(b1, 3) + Math.Pow(b2, 3)))); } }