internal double GetRpc(FlexuralCompressionFiberPosition compressionFiberPosition) { double Rpc = 0; double Mp = GetMajorNominalPlasticMoment(); double Myc = GetCompressionFiberYieldMomentMyc(compressionFiberPosition); double hc = Gethc(compressionFiberPosition); double tw = this.Gettw(); ShapeCompactness.IShapeMember compactness = new ShapeCompactness.IShapeMember(Section, IsRolledMember, compressionFiberPosition); double lambdaWeb = compactness.GetWebLambda(); double lambdapw = compactness.GetWebLambda_p(StressType.Flexure); double lambdarw = compactness.GetWebLambda_r(StressType.Flexure); double Iyc = GetIyc(compressionFiberPosition); double Iy = Section.Shape.I_y; if (Iyc / Iy > 0.23) { if (hc / tw > lambdapw) { Rpc = Mp / Myc; //(F4-9a) } else { Rpc = Mp / Myc - (Mp / Myc - 1.0) * ((lambdaWeb - lambdapw) / (lambdarw - lambdapw)); //(F4-9b) Rpc = Rpc > Mp / Myc ? Mp / Myc : Rpc; } } else { Rpc = 1.0; //(F4-10) } return(Rpc); }
public double GetWebPlastificationFactorForTensionRpt(FlexuralCompressionFiberPosition compressionFiberPosition) { double Rpt = 0.0; double Mp = GetMajorNominalPlasticMoment(); double Myt = GetTensionFiberYieldMomentMyt(compressionFiberPosition); double hc = Gethc(compressionFiberPosition); double tw = this.Gettw(); ShapeCompactness.IShapeMember compactness = new ShapeCompactness.IShapeMember(Section, IsRolledMember, compressionFiberPosition); double lambdaWeb = compactness.GetWebLambda(); double lambdapw = compactness.GetWebLambda_p(StressType.Flexure); double lambdarw = compactness.GetWebLambda_r(StressType.Flexure); //double lambda = hc / tw; double lambda = compactness.GetWebLambda(); if (lambda <= lambdapw) { Rpt = Mp / Myt; //(F4-16a) } else { Rpt = Mp / Myt - (Mp / Myt - 1) * ((lambda - lambdapw) / (lambdarw - lambdapw)); //(F4-16b) } return(Rpt); }