コード例 #1
0
ファイル: GeneralCase.cs プロジェクト: Wosad/Wosad.Design
        protected double GetFcrGeneral()
        {
            SectionRectangular r = new SectionRectangular(t_w, h_o);
            SteelMaterial mat = new SteelMaterial(Material.YieldStress);
            CalcLog log = new CalcLog();

            AffectedElementInFlexure flexuralElement = new AffectedElementInFlexure(r, mat, log);
            return flexuralElement.GetPlateBucklingCriticalStress(c);

            #region Obsolete
            //double lambda = GetLambda();
            //double F_y = Material.YieldStress;

            //double Q;
            //if (lambda<=0.7)
            //{
            //    Q = 1.0;
            //}
            //else if (lambda<=1.41)
            //{
            //    Q = (1.34 - 0.468 * lambda);
            //}
            //else
            //{
            //    Q = ((1.3) / (Math.Pow(lambda, 2)));
            //}
            //double F_cr = F_y * Q;
            //return F_cr; 
            #endregion
        }
コード例 #2
0
 public void ConnectedPlateReturnsFlexuralStrength()
 {
     ICalcLog log = new  CalcLog();
     SectionRectangular Section = new SectionRectangular(0.5, 8);
     ISteelMaterial Material = new SteelMaterial(50);
     AffectedElementInFlexure element = new AffectedElementInFlexure(Section, Material, log);
     double phiM_n = element.GetFlexuralStrength();
     Assert.AreEqual(360.0, phiM_n);
 }
コード例 #3
0
        public static Dictionary<string, object> ConnectedElementStrengthInFlexure(CustomProfile Shape,
            double L_b, double F_y, double F_u, bool HasHolesInTensionFlange = false, double A_fg = 0, double A_fn = 0, bool IsCompactDoublySymmetricForFlexure = true, double C_b = 1,
            string Code = "AISC360-10")
        {
            //Default values
            double phiM_n = 0;


            //Calculation logic:
            ICalcLog log = new CalcLog();
            ISection Isec = Shape.Section as ISection;
            ISteelMaterial Material = new SteelMaterial(F_y, F_u, SteelConstants.ModulusOfElasticity, SteelConstants.ShearModulus);
            AffectedElementInFlexure element = new AffectedElementInFlexure(Isec, F_y, F_u, HasHolesInTensionFlange, A_fg, A_fn, IsCompactDoublySymmetricForFlexure);
            phiM_n = element.GetFlexuralStrength();

            return new Dictionary<string, object>
            {
                { "phiM_n", phiM_n }
 
            };
        }
コード例 #4
0
        public void ExtendedPlateBucklingFlexuralStrength()
        {
            double phiR_n;
            double h_o = 9.0;
            double t_w = 0.5;
            SectionRectangular r = new SectionRectangular(t_w, h_o);
            SteelMaterial mat = new SteelMaterial(36);
            CalcLog log = new CalcLog();

            AffectedElementInFlexure flexuralElement = new AffectedElementInFlexure(r, mat, log);
            double lambda = flexuralElement.GetLambda(10);
            double refValue = 0.408;

            double actualTolerance = EvaluateActualTolerance(lambda, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);

        }