Exemplo n.º 1
0
        public static double MomentOfInertia(Plate botFlange, Plate web, Plate topFlange, Plate bolster, Plate slab, double modRatio, bool composite,
                                             bool positiveMoment)
        {
            double[] array = CompositeAndPositiveMoment(composite, positiveMoment);
            double   NA    = NeutralAxis(botFlange, web, topFlange, bolster, slab, modRatio, composite, positiveMoment);

            return(botFlange.I_x() + botFlange.Area() * Math.Pow(botFlange.CG - NA, 2)
                   + web.I_x() + web.Area() * Math.Pow(web.CG - NA, 2)
                   + topFlange.I_x() + topFlange.Area() * Math.Pow(topFlange.CG - NA, 2)
                   + (bolster.I_x(modRatio) + bolster.Area(modRatio) * Math.Pow(bolster.CG - NA, 2)                   // need to add modRatio to bolster.I_x()
                      + slab.I_x(modRatio) + slab.Area(modRatio) * Math.Pow(slab.CG - NA, 2)) * array[0] * array[1]); // need to add modRatio to slab.I_x()
        }
Exemplo n.º 2
0
        public static double MomentOfInertia(Plate botFlange, Plate web, Plate topFlange, Plate bolster, Plate slab, List <Reinforcing> reinforcing, double modRatio, bool composite,
                                             bool positiveMoment)
        {
            double[] array   = CompositeAndPositiveMoment(composite, positiveMoment);
            double   NA      = NeutralAxis(botFlange, web, topFlange, bolster, slab, reinforcing, modRatio, composite, positiveMoment);
            double   reinf_I = 0;

            foreach (Reinforcing reinf in reinforcing)
            {
                reinf_I += reinf.Area * (1 - array[1] / modRatio) * Math.Pow(reinf.Location - NA, 2);
            }
            return(botFlange.I_x() + botFlange.Area() * Math.Pow(botFlange.CG - NA, 2)
                   + web.I_x() + web.Area() * Math.Pow(web.CG - NA, 2)
                   + topFlange.I_x() + topFlange.Area() * Math.Pow(topFlange.CG - NA, 2)
                   + (bolster.I_x(modRatio) + bolster.Area(modRatio) * Math.Pow(bolster.CG - NA, 2)                 // need to add modRatio to bolster.I_x()
                      + slab.I_x(modRatio) + slab.Area(modRatio) * Math.Pow(slab.CG - NA, 2)) * array[0] * array[1] // need to add modRatio to slab.I_x()
                   + reinf_I * array[0]);
        }