protected virtual double GetCriticalStressFcr(double Fe, double Q = 1.0) { double Fcr = 0.0; double Fy = Section.Material.YieldStress; FlexuralBucklingCriticalStressCalculator fcalc = new FlexuralBucklingCriticalStressCalculator(); return(fcalc.GetCriticalStressFcr(Fe, Fy, Q)); //if (Fe != double.PositiveInfinity) //{ // double stressRatio = Q * Fy / Fe; // if (stressRatio > 2.25) // { // Fcr = 0.877 * Fe; // (E3-3) if Q<1 then (E7-3) // } // else // { // Fcr = Q * Math.Pow(0.658, stressRatio) * Fy; //(E3-2) if Q<1 then (E7-2) // } //} //else //{ // Fcr = Fy; //} //return Fcr; }
protected virtual double GetF_e(double E, double SlendernessKLr) { double Fe = 0; double Slenderness = SlendernessKLr; FlexuralBucklingCriticalStressCalculator fcalc = new FlexuralBucklingCriticalStressCalculator(); Fe = fcalc.GetF_e(E, Slenderness); //if (Slenderness != 0) //{ // //(E3-4) // Fe = Math.Pow(Math.PI, 2) * E / Math.Pow(Slenderness, 2); //} //else //{ // return double.PositiveInfinity; //} return(Fe); }