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; }
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; }
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; }
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); }