private CompositeBeamSection GetBeamForTests(double SumQ_n) { double Y_2 = 5; double f_cPrime = 4; double h_solid = 3; double b_eff; double h_rib = 3; b_eff = SumQ_n / ((h_rib + h_solid - Y_2) * 2 * 0.85 * f_cPrime); //Back calculate b_eff to get the round number from AISC manual double Y_2T = h_solid - (SumQ_n / (0.85 * f_cPrime * b_eff) / 2) + h_rib; //test AiscShapeFactory factory = new AiscShapeFactory(); ISection section = factory.GetShape("W18X35", ShapeTypeSteel.IShapeRolled); PredefinedSectionI catI = section as PredefinedSectionI; SectionIRolled secI = new SectionIRolled("", catI.d, catI.b_fTop, catI.t_f, catI.t_w, catI.k); CompositeBeamSection cs = new CompositeBeamSection(secI, b_eff, h_solid, h_rib, 50.0, f_cPrime); return cs; }
public static Dictionary<string, object> BeamEffectiveSlabWidth(double L, double L_centerLeft, double L_centerRight, double L_edgeLeft, double L_edgeRight, string Code = "AISC360-10") { //Default values double b_eff = 0; //Calculation logic: CompositeBeamSection cs = new CompositeBeamSection() ; b_eff= cs.GetEffectiveSlabWidth(L, L_centerLeft, L_centerRight, L_edgeLeft, L_edgeRight); return new Dictionary<string, object> { { "b_eff", b_eff } }; }
public static Dictionary<string, object> LowerBoundMomentOfInertia(CustomProfile Shape, double b_eff, double h_solid, double h_rib, double F_y, double fc_prime, double SumQ_n, string Code = "AISC360-10") { //Default values double I_LB = 0; //Calculation logic: if (Shape.Section is ISliceableShapeProvider) { ISliceableShapeProvider prov = Shape.Section as ISliceableShapeProvider; ISliceableSection sec = prov.GetSliceableShape(); CompositeBeamSection cs = new CompositeBeamSection(sec, b_eff, h_solid, h_rib, F_y, fc_prime); I_LB = cs.GetLowerBoundMomentOfInertia(SumQ_n); } else { if (Shape.Section is ISliceableSection) { ISliceableSection sec = Shape.Section as ISliceableSection; CompositeBeamSection cs = new CompositeBeamSection(sec, b_eff, h_solid, h_rib, F_y, fc_prime); I_LB = cs.GetLowerBoundMomentOfInertia(SumQ_n); } else { throw new Exception("Shape type not supported. Please provide a shape object of standard geometry"); } } return new Dictionary<string, object> { { "I_LB", I_LB } }; }
public static Dictionary<string, object> PositiveMomentFlexuralStrength(CustomProfile Shape, double b_eff, double h_solid, double h_rib, double F_y, double fc_prime, double SumQ_n, string Code = "AISC360-10") { //Default values double phiM_n = 0; //Calculation logic: if (Shape.Section is ISliceableShapeProvider) { ISliceableShapeProvider prov = Shape.Section as ISliceableShapeProvider; ISliceableSection sec = prov.GetSliceableShape(); CompositeBeamSection cs = new CompositeBeamSection(sec, b_eff, h_solid, h_rib, F_y, fc_prime); phiM_n = cs.GetFlexuralStrength(SumQ_n); } else { if (Shape.Section is ISliceableSection) { ISliceableSection sec = Shape.Section as ISliceableSection; CompositeBeamSection cs = new CompositeBeamSection(sec, b_eff, h_solid, h_rib, F_y, fc_prime); phiM_n = cs.GetFlexuralStrength(SumQ_n); } else { throw new Exception("Shape type not supported. Please provide a shape object of standard geometry"); } } return new Dictionary<string, object> { { "phiM_n", phiM_n } }; }