private IShapeCompactness GetCompactness() { ISectionI Isec = section as ISectionI; if (Isec != null) { compactness = new ShapeCompactness.IShapeMember(section, IsRolledMember, compressionFiberPosition); } else { throw new ShapeTypeNotSupportedException(" flexural calculation of I-beam"); } return(compactness); }
public double GetCompressionFlangeLocalBucklingCapacity() { // compactness criteria is selected by the most slender flange bool LimitStateApplicable = DetermineIfFLBLimitStateIsApplicable(); double Mn = 0; CompactnessResult compactnessResult = GetShapeCompactness(); IShapeCompactness thisShapeCompactness = compactnessResult.ShapeCompactness; CompactnessClassFlexure flangeCompactness = compactnessResult.FlangeCompactness; double b = compactnessResult.b; double tf = compactnessResult.tf; double lambda = compactnessResult.lambda; double Mp = Z_y * F_y; double lambdapf = thisShapeCompactness.GetFlangeLambda_p(StressType.Flexure); double lambdarf = thisShapeCompactness.GetFlangeLambda_r(StressType.Flexure); switch (flangeCompactness) { case CompactnessClassFlexure.Compact: Mn = double.PositiveInfinity; break; case CompactnessClassFlexure.Noncompact: Mn = Mp - (Mp - 0.7 * F_y * S_y) * ((lambda - lambdapf) / (lambdarf - lambdapf)); //(F6-2) break; case CompactnessClassFlexure.Slender: double Fcr = 0.69 * E / Math.Pow(b / tf, 2.0); //(F6-4) Mn = Fcr * S_y; //(F6-3) break; } double phiM_n = 0.9 * Mn; return(phiM_n); }
private IShapeCompactness GetCompactness() { ISectionI Isec = section as ISectionI; if (Isec != null) { compactness = new ShapeCompactness.IShapeMember(section, IsRolledMember, compressionFiberPosition); } else { throw new ShapeTypeNotSupportedException(" flexural calculation of I-beam"); } return compactness; }