public void ShearWallCalculatesPMMDiagram() { double f_c_prime = 6; double f_c_prime_psi = f_c_prime * 1000; RebarMaterialFactory factory = new RebarMaterialFactory(); string RebarSpecificationId = "A615Grade60"; IRebarMaterial LongitudinalRebarMaterial = factory.GetMaterial(RebarSpecificationId); double h_total = 20 * 12; double t_w = 12; double N_curtains = 2; double s = 12; double c_edge = 0; BoundaryZone BoundaryZoneTop = new BoundaryZone(3, 3, "No8", 6, 3, 3); BoundaryZone BoundaryZoneBottom = new BoundaryZone(3, 3, "No8", 6, 3, 3); string WallRebarSizeId = "No4"; FlexuralCompressionFiberPosition p = FlexuralCompressionFiberPosition.Top; ConcreteMaterial Concrete = new ConcreteMaterial(f_c_prime_psi, ConcreteTypeByWeight.Normalweight, null); ConfinementReinforcementType ConfinementReinforcementType = KodestructAci.ConfinementReinforcementType.Ties; CrossSectionRectangularShape shape = new CrossSectionRectangularShape(Concrete, null, t_w, h_total); List <KodestructAci.RebarPoint> LongitudinalBars = GetLongitudinalBars(shape.SliceableShape as ISectionRectangular, h_total, t_w, WallRebarSizeId, N_curtains, s, c_edge, BoundaryZoneTop, BoundaryZoneBottom, LongitudinalRebarMaterial); KodestructAci.IConcreteFlexuralMember fs = new KodestructAci14.ConcreteSectionFlexure(shape, LongitudinalBars, null, ConfinementReinforcementType); IConcreteSectionWithLongitudinalRebar Section = fs as IConcreteSectionWithLongitudinalRebar; ConcreteSectionCompression column = new ConcreteSectionCompression(Section, ConfinementReinforcementType, null); //Convert axial force to pounds List <PMPair> Pairs = column.GetPMPairs(p); var PairsAdjusted = Pairs.Select(pair => new PMPair(pair.P / 1000.0, pair.M / 1000.0 / 12.0)); string Filename = Path.Combine(Path.GetTempPath(), "PMInteractionShearWall.csv"); using (CsvFileWriter writer = new CsvFileWriter(Filename)) { foreach (var pair in PairsAdjusted) { CsvRow row = new CsvRow(); row.Add(pair.M.ToString()); row.Add(pair.P.ToString()); writer.WriteRow(row); } } }
public void RectangularBeamReturnsRequiredShearRebarAreaValue() { double h = 24.0; double d = 21.5; double b = 14.0; double N_u = 0.0; double phiV_s = 43100.0 * 0.75; double fc = 3000.0; double s = 1.0; double c_center = 1.75; bool IsLightWeight = false; RebarMaterialFactory rmf = new RebarMaterialFactory(); IRebarMaterial rm = rmf.GetMaterial(); OneWayShearReinforcedSectionNonPrestressed section = new OneWayShearReinforcedSectionNonPrestressed(d, rm, s); double A_v = section.GetRequiredShearReinforcementArea(phiV_s); double refValue = 0.0334; double actualTolerance = EvaluateActualTolerance(A_v, refValue); Assert.True(actualTolerance <= tolerance); }
internal RebarMaterial(string RebarSpecificationId) { RebarMaterialFactory factory = new RebarMaterialFactory(); Material = factory.GetMaterial(RebarSpecificationId); }