// Retorna (Ne (0), Nex (1), Ney(2), Nez(3), Nexz(4)) public static List <double> forcaAxialFlambagemGlobal(Perfil perfil, string simetria) { double pi2 = Math.Pow(Math.PI, 2); double Ne = 0; double comp = perfil.PegarComprimento(); double iPerfilX = perfil.PegarIx(); double iPerfilY = perfil.PegarIy(); double ro = perfil.PegarRo(); double xo = perfil.PegarXo(); double cw = perfil.PegarCW(); double J = perfil.PegarJ(); //dupla simetria double Nex = pi2 * Form1.E * iPerfilX / (Math.Pow(comp, 2)); double Ney = pi2 * Form1.E * iPerfilY / (Math.Pow(comp, 2)); double Nez = 1 / Math.Pow(ro, 2) * ((pi2 * Form1.E * cw) / (Math.Pow(comp, 2)) + (Form1.G * J)); //monossimetricos double _1xoro = 1 - Math.Pow(xo / ro, 2); double Nexz = (Nex + Nez) / (2 * _1xoro) * (1 - Math.Sqrt(1 - (4 * Nex * Nez * _1xoro) / (Math.Pow(Nex + Nez, 2)))); //assimetricos // A ser desenvolvido... equação de 3 grau // Retorna o menor valor if (simetria == "MONOSSIMETRICO") { Ne = Math.Min(Ney, Nexz); } else { Ne = Math.Min(Ney, Math.Min(Nex, Nez)); } List <double> retorno = new List <double>(); retorno.Add(Ne); retorno.Add(Nex); retorno.Add(Ney); retorno.Add(Nez); retorno.Add(Nexz); return(retorno); }