public ConcreteSectionFlexure GetRectangularSectionFourSidesDistributed(double b, double h, double A_sTopBottom, double A_sLeftRight, double c_centTopBottom, double c_centLeftRight, IConcreteMaterial mat, IRebarMaterial rebarMaterial) { double YTop = h / 2.0 - c_centTopBottom; double YBottom = -h / 2.0 + c_centTopBottom; double XLeft = -b / 2.0 + c_centLeftRight; double XRight = b / 2.0 - c_centLeftRight; Point2D P1 = new Point2D(XLeft, YTop); Point2D P2 = new Point2D(XRight, YTop); Point2D P3 = new Point2D(XRight, YBottom); Point2D P4 = new Point2D(XLeft, YBottom); RebarLine topLine = new RebarLine(A_sTopBottom, P1, P2, rebarMaterial, false); RebarLine bottomLine = new RebarLine(A_sTopBottom, P3, P4, rebarMaterial, false); RebarLine leftLine = new RebarLine(A_sLeftRight, P2, P3, rebarMaterial, true); RebarLine rightLine = new RebarLine(A_sLeftRight, P4, P1, rebarMaterial, true); List<RebarPoint> LongitudinalBars = new List<RebarPoint>(); LongitudinalBars.AddRange(topLine.RebarPoints); LongitudinalBars.AddRange(bottomLine.RebarPoints); LongitudinalBars.AddRange(leftLine.RebarPoints); LongitudinalBars.AddRange(rightLine.RebarPoints); CrossSectionRectangularShape section = new CrossSectionRectangularShape(mat, null, b, h); CalcLog log = new CalcLog(); ConcreteSectionFlexure sectionFlexure = new ConcreteSectionFlexure(section, LongitudinalBars, log); return sectionFlexure; }
public ConcreteSectionFlexure GetRectangularSectionFourSidesDistributed(double b, double h, double A_sTopBottom, double A_sLeftRight, double c_centTopBottom, double c_centLeftRight, IConcreteMaterial mat, IRebarMaterial rebarMaterial) { double YTop = h / 2.0 - c_centTopBottom; double YBottom = -h / 2.0 + c_centTopBottom; double XLeft = -b / 2.0 + c_centLeftRight; double XRight = b / 2.0 - c_centLeftRight; Point2D P1 = new Point2D(XLeft, YTop); Point2D P2 = new Point2D(XRight, YTop); Point2D P3 = new Point2D(XRight, YBottom); Point2D P4 = new Point2D(XLeft, YBottom); RebarLine topLine = new RebarLine(A_sTopBottom, P1, P2, rebarMaterial, false); RebarLine bottomLine = new RebarLine(A_sTopBottom, P3, P4, rebarMaterial, false); RebarLine leftLine = new RebarLine(A_sLeftRight, P2, P3, rebarMaterial, true); RebarLine rightLine = new RebarLine(A_sLeftRight, P4, P1, rebarMaterial, true); List <RebarPoint> LongitudinalBars = new List <RebarPoint>(); LongitudinalBars.AddRange(topLine.RebarPoints); LongitudinalBars.AddRange(bottomLine.RebarPoints); LongitudinalBars.AddRange(leftLine.RebarPoints); LongitudinalBars.AddRange(rightLine.RebarPoints); CrossSectionRectangularShape section = new CrossSectionRectangularShape(mat, null, b, h); CalcLog log = new CalcLog(); ConcreteSectionFlexure sectionFlexure = new ConcreteSectionFlexure(section, LongitudinalBars, log); return(sectionFlexure); }
public ConcreteSectionFlexure GetNonPrestressedDoublyReinforcedRectangularSection(double b, double h, double A_s1, double A_s2, double c_cntr1, double c_cntr2, double A_s_prime1, double A_s_prime2, double c_cntr_prime1, double c_cntr_prime2, ConcreteMaterial concrete, IRebarMaterial rebar) { CrossSectionRectangularShape Section = new CrossSectionRectangularShape(concrete, null, b, h); List <RebarPoint> LongitudinalBars = new List <RebarPoint>(); Rebar bottom1 = new Rebar(A_s1, rebar); RebarPoint pointBottom1 = new RebarPoint(bottom1, new RebarCoordinate() { X = 0, Y = -h / 2.0 + c_cntr1 }); LongitudinalBars.Add(pointBottom1); if (A_s2 != 0) { Rebar bottom2 = new Rebar(A_s2, rebar); RebarPoint pointBottom2 = new RebarPoint(bottom2, new RebarCoordinate() { X = 0, Y = -h / 2.0 + c_cntr2 }); LongitudinalBars.Add(pointBottom2); } if (A_s_prime1 != 0) { Rebar top1 = new Rebar(A_s_prime1, rebar); RebarPoint pointTop1 = new RebarPoint(top1, new RebarCoordinate() { X = 0, Y = h / 2.0 - c_cntr_prime1 }); LongitudinalBars.Add(pointTop1); } if (A_s_prime2 != 0) { Rebar top2 = new Rebar(A_s_prime2, rebar); RebarPoint pointTop2 = new RebarPoint(top2, new RebarCoordinate() { X = 0, Y = h / 2.0 - c_cntr_prime2 }); LongitudinalBars.Add(pointTop2); } CalcLog log = new CalcLog(); ConcreteSectionFlexure beam = new ConcreteSectionFlexure(Section, LongitudinalBars, log); return(beam); }
internal RectangularSectionSinglyReinforced(double b, double h, double A_s, double c_cntr, ConcreteMaterial ConcreteMaterial, RebarMaterial LongitudinalRebarMaterial, bool hasTies=false) { CrossSectionRectangularShape shape = new CrossSectionRectangularShape(ConcreteMaterial.Concrete, null, b, h); base.ConcreteMaterial = ConcreteMaterial; //duplicate save of concrete material into base Dynamo class List<wosadAci.RebarPoint> LongitudinalBars = new List<wosadAci.RebarPoint>(); wosadAci.Rebar thisBar = new wosadAci.Rebar(A_s, LongitudinalRebarMaterial.Material); wosadAci.RebarPoint point = new wosadAci.RebarPoint(thisBar, new wosadAci.RebarCoordinate() { X = 0, Y = -h / 2.0 + c_cntr }); LongitudinalBars.Add(point); wosadAci.IConcreteFlexuralMember fs = new wosadAci14.ConcreteSectionFlexure(shape, LongitudinalBars, new CalcLog()); this.FlexuralSection = fs; }
public static Dictionary<string, object> OneWayShearStrengthProvidedByConcrete(Concrete.ACI318.General.Concrete.ConcreteMaterial ConcreteMaterial, double b_w, double d, double h, double N_u = 0.0, double rho_w = 0.0, double M_u = 0.0, double V_u = 0.0, string Code = "ACI318-14") { //Default values double phiV_c = 0; //Calculation logic: IConcreteMaterial mat = ConcreteMaterial.Concrete; CrossSectionRectangularShape shape = new CrossSectionRectangularShape(mat,null, b_w, h); ConcreteSectionOneWayShearNonPrestressed section = new ConcreteSectionOneWayShearNonPrestressed(d,shape); phiV_c = section.GetConcreteShearStrength(N_u, rho_w, M_u, V_u)/1000.0; //default ACI units are psi. Convert to ksi, consistent with Dynamo nodes return new Dictionary<string, object> { { "phiV_c", phiV_c } }; }
public static Dictionary<string, object> UpperLimitOnShearStrength(Concrete.ACI318.General.Concrete.ConcreteMaterial ConcreteMaterial, double b_w, double d, double phiV_c, string Code = "ACI318-14") { //Default values double phiV_nMax = 0; //Calculation logic: IConcreteMaterial mat = ConcreteMaterial.Concrete; CrossSectionRectangularShape shape = new CrossSectionRectangularShape(mat,null, b_w, d); ConcreteSectionOneWayShearNonPrestressed section = new ConcreteSectionOneWayShearNonPrestressed(d,shape); phiV_nMax = section.GetUpperLimitShearStrength(phiV_c*1000.0) / 1000.0; //default ACI units are psi. Convert to ksi, consistent with Dynamo nodes return new Dictionary<string, object> { { "phiV_nMax", phiV_nMax } }; }
public ConcreteSectionFlexure GetNonPrestressedDoublyReinforcedRectangularSection(double b, double h, double A_s1,double A_s2,double c_cntr1,double c_cntr2, double A_s_prime1,double A_s_prime2, double c_cntr_prime1, double c_cntr_prime2, ConcreteMaterial concrete, IRebarMaterial rebar) { CrossSectionRectangularShape Section = new CrossSectionRectangularShape(concrete, null, b, h); List<RebarPoint> LongitudinalBars = new List<RebarPoint>(); Rebar bottom1 = new Rebar(A_s1, rebar); RebarPoint pointBottom1 = new RebarPoint(bottom1, new RebarCoordinate() { X = 0, Y = -h / 2.0 + c_cntr1 }); LongitudinalBars.Add(pointBottom1); if (A_s2!=0) { Rebar bottom2 = new Rebar(A_s2, rebar); RebarPoint pointBottom2 = new RebarPoint(bottom2, new RebarCoordinate() { X = 0, Y = -h / 2.0 + c_cntr2 }); LongitudinalBars.Add(pointBottom2); } if (A_s_prime1 != 0) { Rebar top1 = new Rebar(A_s_prime1, rebar); RebarPoint pointTop1 = new RebarPoint(top1, new RebarCoordinate() { X = 0, Y = h / 2.0 - c_cntr_prime1 }); LongitudinalBars.Add(pointTop1); } if (A_s_prime2 != 0) { Rebar top2 = new Rebar(A_s_prime2, rebar); RebarPoint pointTop2 = new RebarPoint(top2, new RebarCoordinate() { X = 0, Y = h / 2.0 - c_cntr_prime2 }); LongitudinalBars.Add(pointTop2); } CalcLog log = new CalcLog(); ConcreteSectionFlexure beam = new ConcreteSectionFlexure(Section, LongitudinalBars, log); return beam; }
public IConcreteSection GetRectangularSection(double Width, double Height, double fc) { IConcreteMaterial mat = GetConcreteMaterial(fc); CrossSectionRectangularShape section = new CrossSectionRectangularShape(mat, null, Width, Height); return section; }