예제 #1
0
        public double GetSteelShearStrength()
        {
            double f_yt = rebarMaterial.YieldStress;
            double V_s  = ((A_v * f_yt * d) / (s));
            StrengthReductionFactorFactory f = new StrengthReductionFactorFactory();
            double phi = f.Get_phi_ShearReinforced();

            return(phi * V_s);
        }
        public double GetMaximumShearStrength(double phiV_c)
        {
            StrengthReductionFactorFactory f = new StrengthReductionFactorFactory();
            double phi = f.Get_phi_ShearReinforced();

            //Section 22.5.1.2 
            double phiV_nMax = phiV_c + phi * 8 * Section.Material.Sqrt_f_c_prime * b_w * d;
            return phiV_nMax;
        }
예제 #3
0
        public double GetMaximumShearStrength(double phiV_c)
        {
            StrengthReductionFactorFactory f = new StrengthReductionFactorFactory();
            double phi = f.Get_phi_ShearReinforced();

            //Section 22.5.1.2
            double phiV_nMax = phiV_c + phi * 8 * Section.Material.Sqrt_f_c_prime * b_w * d;

            return(phiV_nMax);
        }
        public ConcreteFlexuralStrengthResult GetDesignFlexuralStrength(FlexuralCompressionFiberPosition FlexuralCompressionFiberPosition,
            ConfinementReinforcementType ConfinementReinforcementType)
        {
            IStrainCompatibilityAnalysisResult nominalResult = this.GetNominalFlexuralCapacity(FlexuralCompressionFiberPosition);
            ConcreteFlexuralStrengthResult result = new ConcreteFlexuralStrengthResult(nominalResult, FlexuralCompressionFiberPosition, this.Section.Material.beta1);
            StrengthReductionFactorFactory f = new StrengthReductionFactorFactory();
            FlexuralFailureModeClassification failureMode = f.GetFlexuralFailureMode(result.epsilon_t, result.epsilon_ty);
            double phi = f.Get_phiFlexureAndAxial(failureMode, ConfinementReinforcementType, result.epsilon_t, result.epsilon_ty);
            double phiM_n = phi * nominalResult.Moment;
            result.phiM_n = phiM_n; result.FlexuralFailureModeClassification = failureMode;
            return result;

        }
        public double GetUpperLimitShearStrength(double phiV_c)
        {
            double h = Section.SliceableShape.YMax - Section.SliceableShape.YMin;

            this.A_g   = Section.SliceableShape.A;
            this.N_u   = N_u;
            this.rho_w = rho_w;
            double V_max;
            double f_c = Section.Material.SpecifiedCompressiveStrength;

            double lambda = Section.Material.lambda;
            StrengthReductionFactorFactory f = new StrengthReductionFactorFactory();
            double phi = f.Get_phi_ShearReinforced();

            V_max = phiV_c + phi * (10.0 * lambda * Section.Material.Sqrt_f_c_prime * b_w * d); // (22.5.1.2)


            return(V_max);
        }
        public double GetUpperLimitShearStrength(double phiV_c)
        {

            double h = Section.SliceableShape.YMax - Section.SliceableShape.YMin;
            this.A_g = Section.SliceableShape.A;
            this.N_u = N_u;
            this.rho_w = rho_w;
            double V_max;
            double f_c = Section.Material.SpecifiedCompressiveStrength;

            double lambda = Section.Material.lambda;
            StrengthReductionFactorFactory f = new StrengthReductionFactorFactory();
            double phi = f.Get_phi_ShearReinforced();

            V_max = phiV_c + phi*(10.0 * lambda * Section.Material.Sqrt_f_c_prime * b_w * d); // (22.5.1.2)
  

            return V_max;
        }
        public  ConcreteCompressionStrengthResult GetDesignMomentWithCompressionStrength( double P_u,
            FlexuralCompressionFiberPosition FlexuralCompressionFiberPosition,
            ConfinementReinforcementType ConfinementReinforcementType)
        {
            double P_o = GetMaximumForce();
            StrengthReductionFactorFactory ff = new StrengthReductionFactorFactory();
            double phiAxial = ff.Get_phiFlexureAndAxial(FlexuralFailureModeClassification.CompressionControlled, ConfinementReinforcementType, 0, 0);
            double phiP_n = phiAxial * P_o;

            if (P_u > phiP_n)
            {
                throw new Exception("Axial forces exceeds maximum axial force.");
            }
            IStrainCompatibilityAnalysisResult nominalResult = this.GetNominalMomentResult(P_u,FlexuralCompressionFiberPosition);
            ConcreteCompressionStrengthResult result = new ConcreteCompressionStrengthResult(nominalResult, FlexuralCompressionFiberPosition, this.Section.Material.beta1);
            StrengthReductionFactorFactory f = new StrengthReductionFactorFactory();
            FlexuralFailureModeClassification failureMode = f.GetFlexuralFailureMode(result.epsilon_t, result.epsilon_ty);
            double phi = f.Get_phiFlexureAndAxial(failureMode, ConfinementReinforcementType, result.epsilon_t, result.epsilon_ty);
            double phiM_n = phi * nominalResult.Moment;
            result.phiM_n = phiM_n; result.FlexuralFailureModeClassification = failureMode;
            return result;
        }
예제 #8
0
        public ConcreteCompressionStrengthResult GetDesignMomentWithCompressionStrength(double P_u,
                                                                                        FlexuralCompressionFiberPosition FlexuralCompressionFiberPosition,
                                                                                        ConfinementReinforcementType ConfinementReinforcementType)
        {
            double P_o = GetMaximumForce();
            StrengthReductionFactorFactory ff = new StrengthReductionFactorFactory();
            double phiAxial = ff.Get_phiFlexureAndAxial(FlexuralFailureModeClassification.CompressionControlled, ConfinementReinforcementType, 0, 0);
            double phiP_n   = phiAxial * P_o;

            if (P_u > phiP_n)
            {
                throw new Exception("Axial forces exceeds maximum axial force.");
            }
            IStrainCompatibilityAnalysisResult nominalResult = this.GetNominalMomentResult(P_u, FlexuralCompressionFiberPosition);
            ConcreteCompressionStrengthResult  result        = new ConcreteCompressionStrengthResult(nominalResult, FlexuralCompressionFiberPosition, this.Section.Material.beta1);
            StrengthReductionFactorFactory     f             = new StrengthReductionFactorFactory();
            FlexuralFailureModeClassification  failureMode   = f.GetFlexuralFailureMode(result.epsilon_t, result.epsilon_ty);
            double phi    = f.Get_phiFlexureAndAxial(failureMode, ConfinementReinforcementType, result.epsilon_t, result.epsilon_ty);
            double phiM_n = phi * nominalResult.Moment;

            result.phiM_n = phiM_n; result.FlexuralFailureModeClassification = failureMode;
            return(result);
        }
        public double GetConcreteShearStrength(double N_u, double rho_w, double M_u, double V_u)
        {

            double h = Section.SliceableShape.YMax - Section.SliceableShape.YMin;
            this.A_g = Section.SliceableShape.A;
            this.N_u = N_u;
            this.rho_w = rho_w;
            double V_c;
            double f_c = Section.Material.SpecifiedCompressiveStrength;

            double lambda = Section.Material.lambda;

            if (N_u == 0)
            {
                if (rho_w == 0  || M_u == 0 || V_u == 0)
                {
                    V_c = 2 * lambda * Section.Material.Sqrt_f_c_prime * b_w * d; // (22.5.5.1)
                }
                else
                {
                    //use detailed formula
                    //Table 22.5.5.1
                    double V_c_a = (1.9 * lambda * Section.Material.Sqrt_f_c_prime + 2500.0 * rho_w * ((V_u * d) / (M_u))) * b_w * d;
                    double V_c_b = (1.9 * lambda * Section.Material.Sqrt_f_c_prime + 2500.0 * rho_w) * b_w * d;
                    double V_c_c = 3.5 * lambda * Section.Material.Sqrt_f_c_prime * b_w * d;
                    List<double> V_cList = new List<double>() { V_c_a, V_c_b, V_c_c };
                    V_c = V_cList.Min();
                }

            }
            else
            {
                if (N_u > 0) //compression
                {
                    if (rho_w == 0 || h == 0)
                    {
                        //Use simplified formula
                        V_c = 2.0 * (1 + ((N_u) / (2000.0 * A_g))) * lambda * Section.Material.Sqrt_f_c_prime * b_w * d;
                    }
                    else
                    {
                        //Table 22.5.6.1

                        double V_c_b = 3.5 * lambda * Section.Material.Sqrt_f_c_prime * b_w * d * Math.Sqrt(1 + ((N_u) / (500.0 * A_g)));

                        if (M_u - N_u * (((4.0 * h - d) / (8.0))) <= 0)
                        {
                            V_c = V_c_b;
                        }
                        else
                        {
                            double V_c_a = (1.9 * lambda * Section.Material.Sqrt_f_c_prime + 2500.0 * rho_w * ((V_u * d) / (M_u - N_u * (((4.0 * h - d) / (8.0)))))) * b_w * d;
                            V_c = Math.Min(V_c_a, V_c_b);
                        }
                    }
                }
                else //tension 
                {
                    V_c = 2.0 * (1.0 + ((N_u) / (500.0 * A_g))) * lambda * Section.Material.Sqrt_f_c_prime * b_w * d;  //(22.5.7.1)
                }
            }

            V_c = V_c < 0 ? 0 : V_c;
            StrengthReductionFactorFactory f = new StrengthReductionFactorFactory();
            double phi = f.Get_phi_ShearReinforced();
            return phi * V_c;
        }
예제 #10
0
        public double GetConcreteShearStrength(double N_u, double rho_w, double M_u, double V_u)
        {
            double h = Section.SliceableShape.YMax - Section.SliceableShape.YMin;

            this.A_g   = Section.SliceableShape.A;
            this.N_u   = N_u;
            this.rho_w = rho_w;
            double V_c;
            double f_c = Section.Material.SpecifiedCompressiveStrength;

            double lambda = Section.Material.lambda;

            if (N_u == 0)
            {
                if (rho_w == 0 || M_u == 0 || V_u == 0)
                {
                    V_c = 2 * lambda * Section.Material.Sqrt_f_c_prime * b_w * d; // (22.5.5.1)
                }
                else
                {
                    //use detailed formula
                    //Table 22.5.5.1
                    double        V_c_a   = (1.9 * lambda * Section.Material.Sqrt_f_c_prime + 2500.0 * rho_w * ((V_u * d) / (M_u))) * b_w * d;
                    double        V_c_b   = (1.9 * lambda * Section.Material.Sqrt_f_c_prime + 2500.0 * rho_w) * b_w * d;
                    double        V_c_c   = 3.5 * lambda * Section.Material.Sqrt_f_c_prime * b_w * d;
                    List <double> V_cList = new List <double>()
                    {
                        V_c_a, V_c_b, V_c_c
                    };
                    V_c = V_cList.Min();
                }
            }
            else
            {
                if (N_u > 0) //compression
                {
                    if (rho_w == 0 || h == 0)
                    {
                        //Use simplified formula
                        V_c = 2.0 * (1 + ((N_u) / (2000.0 * A_g))) * lambda * Section.Material.Sqrt_f_c_prime * b_w * d;
                    }
                    else
                    {
                        //Table 22.5.6.1

                        double V_c_b = 3.5 * lambda * Section.Material.Sqrt_f_c_prime * b_w * d * Math.Sqrt(1 + ((N_u) / (500.0 * A_g)));

                        if (M_u - N_u * (((4.0 * h - d) / (8.0))) <= 0)
                        {
                            V_c = V_c_b;
                        }
                        else
                        {
                            double V_c_a = (1.9 * lambda * Section.Material.Sqrt_f_c_prime + 2500.0 * rho_w * ((V_u * d) / (M_u - N_u * (((4.0 * h - d) / (8.0)))))) * b_w * d;
                            V_c = Math.Min(V_c_a, V_c_b);
                        }
                    }
                }
                else //tension
                {
                    V_c = 2.0 * (1.0 + ((N_u) / (500.0 * A_g))) * lambda * Section.Material.Sqrt_f_c_prime * b_w * d;  //(22.5.7.1)
                }
            }

            V_c = V_c < 0 ? 0 : V_c;
            StrengthReductionFactorFactory f = new StrengthReductionFactorFactory();
            double phi = f.Get_phi_ShearReinforced();

            return(phi * V_c);
        }