private void InitValidations(IElementGeometry geometry, IMaterial material) { if (geometry.b <= 0) { throw new Exception("b must be greater 0"); } if (geometry.h < 0) { throw new Exception("h must be greater or equal to 0"); } if (geometry.d1 <= 0) { throw new Exception("d1 must be greater 0"); } if (geometry.d2 <= 0) { throw new Exception("d2 must be greater 0"); } if (2 * geometry.d1 >= geometry.h && geometry.h != 0) { throw new Exception("2 x d1 must be smaller then h"); } if (material.beton == null) { throw new Exception("Concrete not defined!"); } if (material.armatura == null) { throw new Exception("Reinforcement not defined!"); } }
public SymmetricalReinfByClassicMethod(IMaterial material, IElementGeometry geometry) { _material = material ?? throw new ArgumentNullException(nameof(material)); _geometry = geometry ?? throw new ArgumentNullException(nameof(geometry)); coeffService = new CoeffService(material, geometry); SetMinimumOf_ω_and_Max(); }
public μSd_And_νSdCollection(IElementGeometry geometry, IMaterial material, ICoeffService coeffService, double ω) { if (geometry == null) { throw new ArgumentNullException(nameof(geometry)); } if (material == null) { throw new ArgumentNullException(nameof(material)); } this.coeffService = coeffService ?? throw new ArgumentNullException(nameof(coeffService)); for (double i = material.beton.εcu2; i <= -0.1; i += 0.1) { var item = new μSd_And_νSd(geometry, material); Add(item.GetFromKof(coeffService.GetNew(i, material.armatura.eps_ud), ω)); } for (double i = material.armatura.eps_ud; i > -1.5; i -= 0.1) { var item = new μSd_And_νSd(geometry, material); Add(item.GetFromKof(coeffService.GetNew(material.beton.εcu2, i), ω)); } var t = this; }
public CoeffForCalcRectCrossSectionModelEC(IMaterial material, IElementGeometry geomerty) { this.material = material ?? throw new ArgumentNullException(nameof(material)); this.geomerty = geomerty ?? throw new ArgumentNullException(nameof(geomerty)); }
public Generate_ω_LineForDiagram(IMaterial material, IElementGeometry geometry, ICoeffService coeffService, double ω, double αcc = 0.85) { _material = material ?? throw new ArgumentNullException(nameof(material)); _geometry = geometry ?? throw new ArgumentNullException(nameof(geometry)); this.coeffService = coeffService ?? throw new ArgumentNullException(nameof(coeffService)); this.ω = ω; this.αcc = αcc; ListOfDotsInLineOfDiagram = new μSd_And_νSdCollection(_geometry, _material, coeffService, ω); }
public static double NA(IMaterial material, IElementGeometry geometry, double As1, double As2) { var alfa_e = material.armatura.Es * 1000 / material.beton.Ecm; var A = geometry.b * 0.5; var B = alfa_e * As2 + alfa_e * As1; var C = alfa_e * As2 * (-geometry.d1) + alfa_e * As1 * (-geometry.d); var x1 = (-B + Math.Sqrt(Math.Pow(B, 2) - 4 * A * C)) / (2 * A); var x2 = (-B - Math.Sqrt(Math.Pow(B, 2) - 4 * A * C)) / (2 * A); return(Math.Max(x1, x2)); }
public BendingRectangularCrossSectionEC2( IForcesBendingAndCompressison forces, IElementGeometry geometry, IMaterial material, CoeffForCalcRectCrossSectionModelEC kof = null) { InitValidations(geometry, material); this.Forces = forces; this.Geometry = geometry; this.Material = material; coeffService = new CoeffService(Material, Geometry); Kof_lim = coeffService.GetByξ(material.beton.ξ_lim); if (kof != null) { KofZaProracunPravougaonogPreseka = kof; μSd = kof.μRd; } Start(); }
public CoeffService(IMaterial material, IElementGeometry geometry) { Material = material ?? throw new ArgumentNullException(nameof(material)); Geometry = geometry ?? throw new ArgumentNullException(nameof(geometry)); }
public μSd_And_νSd(IElementGeometry geometry, IMaterial material) { this.geometry = geometry ?? throw new ArgumentNullException(nameof(geometry)); this.material = material ?? throw new ArgumentNullException(nameof(material)); }
public SymmetricalReinfByMaxAndMinPercentageReinf(IMaterial material, IElementGeometry geomety) { ratio_d_and_h = (geomety as ElementGeometry).d / geomety.h; _material = material; SetMinimumOf_ρ_and_Max(); }