Пример #1
0
        public static Dictionary <string, object> RequiredTransverseTorsionAndShearRebar(ConcreteFlexureAndAxiaSection ConcreteSection, double T_u, RebarMaterial RebarMaterial,
                                                                                         double c_transv_ctr, double s, double theta = 45, string Code = "ACI318-14")
        {
            //Default values
            double A_v = 0;


            //Calculation logic:

            TorsionShapeFactory     tss   = new TorsionShapeFactory();
            ConcreteSectionFlexure  sec   = (ConcreteSectionFlexure)ConcreteSection.FlexuralSection;
            IConcreteTorsionalShape shape = tss.GetShape(sec.Section.SliceableShape, ConcreteSection.ConcreteMaterial.Concrete, c_transv_ctr);
            ConcreteSectionTorsion  secT  = new ConcreteSectionTorsion(shape);
            double T_u_lb_in = T_u * 1000.0; //internally Kodestruct uses lb - in units for concrete

            A_v = secT.GetRequiredTorsionTransverseReinforcementArea(T_u_lb_in, s, RebarMaterial.Material.YieldStress, theta);

            return(new Dictionary <string, object>
            {
                { "A_v", A_v }
            });
        }
        public void RectangularBeamReturnsRequiredTransverseRebarValue()
        {
            double h             = 24.0;
            double d             = 21.5;
            double b             = 14.0;
            double N_u           = 0.0;
            double V_u           = 57100.0;
            double T_u           = 28.0 * 12000.0;
            double fc            = 3000.0;
            double s             = 1.0;
            double c_center      = 1.75;
            bool   IsLightWeight = false;


            ConcreteSectionTorsion tb = GetConcreteTorsionBeam(b, h, fc, d, false, c_center);

            double A_s = tb.GetRequiredTorsionTransverseReinforcementArea(T_u, s, 60000.00); //Conversion from ACI psi units to ksi units

            double refValue        = 0.0204;                                                 //Example 7-2
            double actualTolerance = EvaluateActualTolerance(A_s, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }