//Compression Flange Local Buckling F4.3 public double GetCompressionFlangeLocalBucklingCapacity(FlexuralCompressionFiberPosition compressionFiberPosition) { double Mn = 0.0; double bf = GetCompressionFlangeWidthbfc(compressionFiberPosition); double tf = GetCompressionFlangeThicknesstfc(compressionFiberPosition); ShapeCompactness.IShapeMember compactness = new ShapeCompactness.IShapeMember(Section, IsRolledMember, compressionFiberPosition); CompactnessClassFlexure flangeCompactness = compactness.GetFlangeCompactnessFlexure(); double lambda = compactness.GetCompressionFlangeLambda(); double Sxc = GetSectionModulusCompressionSxc(compressionFiberPosition); switch (flangeCompactness) { case CompactnessClassFlexure.Compact: throw new LimitStateNotApplicableException("Compression Flange Local buckling"); case CompactnessClassFlexure.Noncompact: double Rpc = GetRpc(compressionFiberPosition); double Myc = GetCompressionFiberYieldMomentMyc(compressionFiberPosition); double lambdapf = compactness.GetFlangeLambda_p(StressType.Flexure); double lambdarf = compactness.GetFlangeLambda_r(StressType.Flexure); double FL = GetStressFL(compressionFiberPosition); Mn = Rpc * Myc - (Rpc * Myc - FL * Sxc) * ((lambda - lambdapf) / (lambdarf - lambdapf)); //(F4-13) break; case CompactnessClassFlexure.Slender: double kc = Getkc(); double E = this.Section.Material.ModulusOfElasticity; Mn = 0.9 * E * kc * Sxc / Math.Pow(lambda, 2); break; } double phiM_n = 0.9 * Mn; return(phiM_n); }
protected virtual double GetLambdapf(FlexuralCompressionFiberPosition compressionFiberPosition) { compactness = new ShapeCompactness.IShapeMember (this.Section, this.isRolledMember, compressionFiberPosition); return(compactness.GetFlangeLambda_p(StressType.Flexure)); }