Example #1
0
 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;
            }
Example #4
0
 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, ω);
 }
Example #6
0
        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));
        }
Example #7
0
        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));
 }
Example #10
0
 public SymmetricalReinfByMaxAndMinPercentageReinf(IMaterial material, IElementGeometry geomety)
 {
     ratio_d_and_h = (geomety as ElementGeometry).d / geomety.h;
     _material     = material;
     SetMinimumOf_ρ_and_Max();
 }