Está en la página 1de 14

1.

Método de elementos finitos:

Este método también conocido como MEF por sus iniciales es una técnica numérica muy
conocida que facilita a encontrar soluciones aproximadas a distintos problemas que se tiene
hoy en día en los campos de la ingeniería y la física. El MEF consiste en la división de un
dominio complicado en elementos más simples dependiendo de la dimensión de estos, dichos
elementos se conectan entre sí en nodos y sus ecuaciones diferenciales que describen su
comportamiento del sistema y así teniendo una solución para cada elemento individualmente.

2. Introducción:
El Método de Elementos Finitos es una herramienta importante ya que es un pilar
fundamental en diversas disciplinas este sirve para la resolución de problemas complejos en
distintos campos de la ingeniería, pero no solo en este campo, sino que también en las
ciencias aplicadas. La evolución de este llega a mediados del siglo XX , que primeramente se
utilizaba para desafíos en la mecánica estructural.
Sus inicios ocurrieron en la década de 1940 , cuando distintos ingenieros y matemáticos
empezaron una búsqueda de métodos numéricos para simplificar ecuaciones diferenciales en
el análisis de estructuras . Sin embargo este llega para la década de los 1950 y 1960 cuando
distintos personajes como Richard Courant , Ray W. Clough ,entre otros tuvieron un papel
importante en darle forma y formalizarlo a esta idea .Dichos visionarios aportaron
significativamente al desarrollo temprano del MEF , teniendo una rápida evolución y
aplicación en la resolución de problemas de ingeniería y ciencias aplicadas.
Desde aquellos años el MEF ha seguido teniendo una evolución , aportando avances a la
teoría de la matemática , la computación y la ingeniería.Hoy en día es una herramienta que
aborda un gran campo de problemas , desde análisis estructurales hasta simulaciones en
distintos campos como la mecánica de fluidos , la transferencia de calor y la
electromagnética.
3. Fundamentos

3.1 Discretización del dominio:

El método de los elementos finitos (MEF) implica la discretización del dominio de un


problema en elementos finitos más pequeños. Durante este proceso, se seleccionan
funciones de forma que sean continuas y diferenciables en todo el dominio del
elemento, al tiempo que cumplen con las condiciones de contorno del problema. En
muchos casos, se emplean elementos isoperimétricos, donde las mismas funciones de
forma se utilizan tanto para describir la geometría del elemento como para aproximar
la variación de la solución dentro de él. Los nodos se colocan en los vértices de cada
elemento, y las variables de interés, como temperatura o desplazamiento, se definen
en estos nodos. La solución aproximada se expresa como una combinación lineal de
las funciones de forma en términos de las variables nodales.
El primer paso para resolver este tipo de ejercicio es dividir el dominio del problema
en una colección de subdominios más pequeños llamados elementos finitos, esta
división se realiza para facilitar la aproximación numérica de las soluciones a
ecuaciones diferenciales parciales. Estos elementos son regiones geométricas simples,
como triángulos y cuadriláteros en el caso del problema bidimensional, tetraedros, o
hexaedros en el caso tridimensional.

3.2 Selección de funciones formales.

En el método de elementos finitos, las selecciones de funciones formales desempeñan


un papel fundamental en la aproximación de soluciones de problema de ingeniería y
física. Las aproximaciones de las soluciones se realizan mediante funciones de forma
o funciones de interpolación, que son funciones matemáticas que describen la
variación de las cantidades desconocidas a lo largo del problema.
Las elecciones de funciones formales son esenciales para garantizar la convergencia y
precisión del análisis. Para ello, deben cumplir con los requisitos de continuidad en
todo el dominio y en las interfaces entre elementos adyacentes. También, deben ser
capaces de interpolan de manera efectiva los valores desconocidos en los nodos del
elemento, garantizando una representación fiel de la solución.

3.3 Definición de variables nodales

Las variables nodales se refieren a las incógnitas o valores desconocidos que se


buscan en los nodos de la malla del elemento finito. El MEF es una técnica numérica
utilizada para resolver ecuaciones diferenciales parciales y problemas de ingeniería en
general.
Cuando se discretiza un dominio físico en elementos finitos, la malla se compone de
nodos que definen los vértices de los elementos. En cada nodo, se busca hallar las
variables asociadas al problema físico que se está modelando. Estas variables pueden
incluir, desplazamientos, temperaturas, tensiones, velocidades, y dependiendo del
problema que se presente.

3.4 Fórmula de las ecuaciones del sistema

Las fórmulas que se van utilizar dependen del tipo de problema que se está
resolviendo. La ecuación general se deriva de las leyes de conservación relevantes
para el problema físico y se expresa en términos de las variables nodales.
tomando en cuenta un problema de elasticidad lineal para una estructura. La ecuación
general se expresa en forma matricial como:

K.U = F

● K es la matriz de rigidez global del sistema


● U es el vector de desplazamientos nodales desconocidos
● F es el vector de fuerzas aplicadas al sistema
La matriz de rigidez K y el vector de fuerzas F se obtienen mediante la
aplicación de las condiciones de contorno y las propiedades del material a
nivel de cada elemento finito. Luego, estas contribuciones locales se
ensamblan para formar la matriz y el vector globales.

La relación entre las deformaciones nodales Ɛ y los desplazamientos nodales


U se puede expresar mediante la matriz de deformación B.
Ɛ = B. U
La relación entre las fuerzas nodales Q y las tensiones nodales σ se pueden
expresar mediante la matriz de esfuerzo D
Q= D. σ
Estas matrices y vectores se utilizan para ensamblar la matriz de rigidez global
K y el vector de fuerzas F del sistema.

3.5 Resolución del sistema de ecuaciones

Existe varios métodos numéricos para resolver sistemas lineales, y el método


que elijamos dependerá de las características en específica del problema y de
las propiedades de la matriz de rigidez
● Método de eliminación Gaussiana
● Factorización LU
● Método de gradiente conjugado
● Descomposición QR
● Método de Jacobi o Gauss- Seidel

4. Análisis del elemento finito

4.1 Mallado de una y dos dimensiones.

4.1.1 Una dimensión

En el análisis de elementos finitos en una dimensión, el dominio se divide en


elementos unidimensionales. Cada elemento tiene nodos en sus extremos. Así mismo
el mallado implica la creación de nodos y la conexión de estos nodos para formar
elementos finitos.
Código de una dimensión en matlab:
import numpy as np
import matplotlib.pyplot as plt

# Mallado en 1D
def generar_mallado(nodos_iniciales, elementos):
nodos = np.linspace(nodos_iniciales[0], nodos_iniciales[1], elementos + 1)
return nodos

# Funciones de forma para elementos lineales en 1D


def funciones_forma(xi):
N1 = 0.5 * (1 - xi)
N2 = 0.5 * (1 + xi)
return np.array([N1, N2])

# Matriz de rigidez local para elemento lineal en 1D


def matriz_rigidez_local(E, A, L):
k_local = np.array([[1, -1], [-1, 1]]) * (E * A / L)
return k_local

# Ensamblaje de la matriz de rigidez global


def ensamblar_matriz_rigidez_global(nodos, elementos):
K_global = np.zeros((len(nodos), len(nodos)))

for e in range(elementos):
nodos_elemento = [e, e + 1]
L = nodos[nodos_elemento[1]] - nodos[nodos_elemento[0]]
k_local = matriz_rigidez_local(E=1.0, A=1.0, L=L)

for i in range(2):
for j in range(2):
K_global[nodos_elemento[i], nodos_elemento[j]] += k_local[i, j]

return K_global
# Aplicación de condiciones de borde
def aplicar_condiciones_de_borde(K, nodos, desplazamientos_restringidos):
for nodo_restringido in desplazamientos_restringidos:
K[nodo_restringido, :] = 0
K[:, nodo_restringido] = 0
K[nodo_restringido, nodo_restringido] = 1

return K

# Resolución del sistema de ecuaciones


def resolver_sistema(K, F):
U = np.linalg.solve(K, F)
return U

# Visualización de la solución
def visualizar_solucion(nodos, U):
plt.plot(nodos, U, marker='o')
plt.xlabel('Posición en el eje X')
plt.ylabel('Desplazamiento')
plt.title('Solución del análisis de elementos finitos en 1D')
plt.show()

# Parámetros del mallado


nodos_iniciales = [0, 1]
elementos = 5

# Generar mallado
nodos = generar_mallado(nodos_iniciales, elementos)

# Ensamblar matriz de rigidez global


K_global = ensamblar_matriz_rigidez_global(nodos, elementos)

# Condiciones de borde
desplazamientos_restringidos = [0, -1]
K_global_restringida = aplicar_condiciones_de_borde(K_global.copy(), nodos,
desplazamientos_restringidos)

# Vector de fuerzas
F = np.zeros(len(nodos))

# Resolver el sistema de ecuaciones


U = resolver_sistema(K_global_restringida, F)

# Visualizar la solución
visualizar_solucion(nodos, U)

4.1.2 Dos dimensiones

En el análisis de elementos finitos en dos dimensiones, el dominio se divide en


elementos bidimensionales. Los nodos se distribuyen en el plano, y los elementos se
forman conectando nodos adyacentes. Para utilizarse en diferentes tipos de elementos
finitos como es en triangulares y cuadriláteros para aproximar la geometría
Código de dos dimensiones en Matlab:
import numpy as np
import matplotlib.pyplot as plt
from scipy.linalg import solve

def funciones_forma(xi, eta):


N1 = 1 - xi - eta
N2 = xi
N3 = eta
return np.array([N1, N2, N3])

def derivadas_forma(xi, eta):


dN1_dxi, dN1_deta = -1, -1
dN2_dxi, dN2_deta = 1, 0
dN3_dxi, dN3_deta = 0, 1
return np.array([[dN1_dxi, dN2_dxi, dN3_dxi],
[dN1_deta, dN2_deta, dN3_deta]])

def matriz_rigidez_local(E, nu, h, coord_nodos):


D = (E / (1 - nu**2)) * np.array([[1, nu, 0],
[nu, 1, 0],
[0, 0, (1 - nu) / 2]])

B = np.zeros((3, 6))
K_local = np.zeros((6, 6))

for i in range(3):
xi, eta = coord_nodos[i]
Ni = funciones_forma(xi, eta)
dNi = derivadas_forma(xi, eta)

B[0, 2*i] = dNi[0, 0]


B[1, 2*i + 1] = dNi[1, 1]
B[2, 2*i] = dNi[1, 0]
B[2, 2*i + 1] = dNi[0, 1]

K_local += h * np.dot(B.T, np.dot(D, B))

return K_local

def ensamblar_matriz_rigidez_global(nodos, elementos, E, nu, h):


num_nodos = len(nodos)
K_global = np.zeros((2 * num_nodos, 2 * num_nodos))

for e in elementos:
nodos_elemento = e
coord_nodos = nodos[nodos_elemento]

K_local = matriz_rigidez_local(E, nu, h, coord_nodos)

for i in range(3):
for j in range(3):
I = 2 * nodos_elemento[i]
J = 2 * nodos_elemento[j]

K_global[I:I+2, J:J+2] += K_local[2*i:2*(i+1), 2*j:2*(j+1)]

return K_global

def aplicar_condiciones_de_borde(K, nodos, desplazamientos_restringidos):


for nodo_restringido in desplazamientos_restringidos:
K[nodo_restringido, :] = 0
K[:, nodo_restringido] = 0
K[nodo_restringido, nodo_restringido] = 1

return K

def resolver_sistema(K, F):


U = solve(K, F)
return U

def visualizar_solucion(nodos, U):


x = nodos[:, 0] + U[::2]
y = nodos[:, 1] + U[1::2]

plt.triplot(x, y, color='black')
plt.plot(x, y, 'o', label='Nodos')
plt.xlabel('Coordenada x')
plt.ylabel('Coordenada y')
plt.title('Deformación de la malla después de aplicar carga')
plt.legend()
plt.show()

# Parámetros del mallado


nodos = np.array([[0, 0], [1, 0], [0.5, 1]])
elementos = [[0, 1, 2]]

# Ensamblar matriz de rigidez global


E = 1.0
nu = 0.3
h = 1.0 # Espesor del elemento
K_global = ensamblar_matriz_rigidez_global(nodos, elementos, E, nu, h)

# Condiciones de borde
desplazamientos_restringidos = [0, 1, 2] # Fijamos los tres primeros nodos en x e y
K_global_restringida = aplicar_condiciones_de_borde(K_global.copy(), nodos,
desplazamientos_restringidos)

# Vector de fuerzas (por simplicidad, asumimos fuerzas nulas)


F = np.zeros(2 * len(nodos))

# Resolver el sistema de ecuaciones


U = resolver_sistema(K_global_restringida, F)

# Visualizar la solución
visualizar_solucion(nodos, U)

4.2 Condiciones de borde


Las condiciones de borde especifican restricciones en los desplazamientos o valores de
ciertas variables nodales:
● Desplazamientos prescritos: Fijar los desplazamientos en ciertos nodos.
● Fuerzas prescritas: Imponer fuerzas en ciertos nodos.
● Condición térmica: Fijar temperatura en ciertos nodos.

4.2.1 Condiciones 1D.

Fija los desplazamientos en los extremos de las barras


4.2.2 Condiciones 2D.

Fija el desplazamiento en uno o más nodos de la estructura 2D


4.3 Ecuación
La ecuación del sistema global es K.U = F
4.3.1 Aplicado al electromagnetismo

• Ecuación de partida

• Operador rotacional - ∇x
• Operador divergencia - ∇
• Vector intensidad de campo magnético
• Vector densidad de corriente fuente
• Vector densidad de corriente de perdidas inducidas
• Vector densidad de corriente de velocidad
• Vector desplazamiento o densidad de flujo eléctrico
• Tiempo
• Vector intensidad de campo eléctrico
• Vector densidad de flujo magnético
• Densidad de carga eléctrica

4.4 Solución
La solución del sistema de ecuaciones implica el ensamblaje de matrices de rigidez locales, la
aplicación de condición de borde y la resolución del sistema de ecuación resultante se obtiene
utilizando métodos numéricos. Así mismo, puede emplearse métodos directos(eliminación
gaussiana) o métodos iterativos ( gradiente conjugado)

4.5 Resultado

La presentación de resultados es crucial para interpretar y comunicar los hallazgos del


análisis. Esto incluye visualizar desplazamientos, tensiones, fuerzas internas y otros
parámetros relevantes para el problema.

5. conclusión

El análisis de elementos finitos (AEF) ha sido una valiosa herramienta en mi formación como
estudiante de ingeniería. A través de este informe, he adquirido habilidades clave en el
mallado efectivo, la aplicación de condiciones de borde, la formulación de ecuaciones
matriciales, la resolución numérica y la presentación de resultados. La introducción al uso de
software especializado ha mejorado mi capacidad para abordar problemas prácticos de
ingeniería. Este aprendizaje fortalece mi preparación para enfrentar desafíos futuros en el
campo de la ingeniería.

Link de los códigos

https://colab.research.google.com/drive/1ZhVekHd4rtYU3eYqNCTFRcrJq28m2bth?usp=sha
ring

También podría gustarte