Director
WHADY FELIPE FLORES ESCOBAR
Ph.D Mecánica Computacional
1 INTRODUCCION .......................................................................................................... 4
2 ANTECEDENTES ................................ ................................ ................................ ......... 5
3 CONCEPTOS ............................................................................................................... 7
3.1 FUNDAMENTOS MATEMÁTICOS ................................ ................................ ................. 7
3.1.1 Operadores ................................................................................................................... 7
3.1.2 Series de Taylor. ........................................................................................................... 7
3.1.3 Teoremas de Green e Integración por partes. ................................ ................................ . 8
3.1.4 Integración Gaussiana. .................................................................................................. 9
3.2 CONCEPTOS FÍSICOS................................ ................................ ................................ 10
3.2.1 Propiedades específicas ............................................................................................... 10
3.2.2 Flujo ............................................................................................................................ 11
3.3 FUNCIONES DE FORMA E INTERPOLACIÓN .............................................................. 12
3.3.1 Interpolación lineal ................................ ................................ ................................ ........13
3.3.2 Interpolación lineal bidimensional .................................................................................. 14
3.4 MÉTODO DE GALERKIN. ............................................................................................ 16
3.5 ECUACIONES DE LAPLACE Y POISSON .....................................................................17
4 MÉTODOS FINITOS ....................................................................................................19
4.1 PROBLEMA DE TRABAJO........................................................................................... 21
4.2 DIFERENCIAS FINITAS ............................................................................................... 22
4.2.1 Formulación ................................................................................................................. 22
4.2.2 Aplicación. ................................................................................................................... 25
4.2.3 Programación ............................................................................................................... 27
4.3 VOLÚMENES FINITOS ................................ ................................ ................................ 29
4.3.1 Formulación ................................................................................................................. 29
4.3.2 Aplicación .................................................................................................................... 30
4.3.3 Programación ............................................................................................................... 32
4.4 ELEMENTOS FINITOS.................................................................................................34
4.4.1 Formulación ................................................................................................................. 34
4.4.2 Aplicación .................................................................................................................... 40
4.4.3 Programación ............................................................................................................... 43
4.5 ELEMENTOS DE FRONTERA ...................................................................................... 46
4.5.1 Formulación ................................................................................................................. 46
4.5.2 Aplicación .................................................................................................................... 57
4.5.3 Programación ............................................................................................................... 61
4.6 SOLUCION MEDIANTE SOFTWARE DE ELEMENTOS FINITOS ANSYS 8.0................. 74
4.7 RESULTADO COMPARATIVO ..................................................................................... 76
5 ESTRUCTURA DEL PROGRAMA................................................................................. 79
5.1 ESQUEMA GENERAL..................................................................................................79
5.2 MODULO GLOBALES ..................................................................................................80
5.3 MODULO LECTURAS ..................................................................................................80
5.4 MODULO PRINCIPAL ..................................................................................................82
5.5 MODULO RUTINAS .....................................................................................................83
6 CONCLUSIONES......................................................................................................... 84
7 BIBLIOGRAFIA ............................................................................................................87
LISTA DE FIGURAS
Figura 1. Interpolación lineal. ..........................................................................................13
Figura 2. Interpolación lineal bidimensional. ................................................................14
Figura 3. Problema de trabajo........................................................................................21
Figura 4. División del dominio en diferencias finitas. ..................................................25
Figura 5. Sistema matricial para diferencias finitas.....................................................27
Figura 6. Convención para los nodos............................................................................30
Figura 7. División del d ominio en volúmenes finitos. ..................................................30
Figura 8. Sistema matricial para volúmenes finitos.....................................................32
Figura 9. Elemento finito triangular................................................................................39
Figura 10. División del dominio en elementos finitos..................................................40
Figura 11. Matrices locales de rigidez para cada elemento ......................................42
Figura 12. Matriz de rigidez global.................................................................................42
Figura 13. Dominio, frontera y condicione s..................................................................47
Figura 14. Valores para la constante C i. .......................................................................49
Figura 15. Puntos para la función radial. ......................................................................51
Figura 16. Fronteras y división dominio triangular .....................................................57
Figura 17. División dominio para elementos de frontera............................................59
Figura 18. Flujos de calor y potencial alrededor de un nodo.....................................62
Figura 19. Malla empleada.............................................................................................74
Figura 20. Distribución de nodos clave para lectura de resultados..........................75
Figura 21. Temperaturas.................................................................................................75
Figura 22. Resultado por el método de elementos finitos..........................................77
Figura 23. Resultado por el método de elementos de frontera.................................78
Figura 24. Estructura del programa. ..............................................................................79
1 INTRODUCCION
Lord Rayleigh (1842 – 1919), Walter Ritz (1879 – 1909) establecieron la aplicación del
método variacional conocido como método Rayleigh-Ritz a problemas de sólidos
elásticos.
A partir de 1940 numerosos investigadores realizan aportes que llevan al desarrollo y uso
difundido del método de los elementos finitos. Hrennikoff en 1941 utilizó el método de
trabajo del marco para solucionar problemas de elasticidad. Courant publicó un artículo
en 1943 donde utiliza la interpolación lineal por partes sobre regiones triangulares para
modelar problemas de torsión. En 1955, Argyris presenta teoremas de energía y métodos
matriciales que permiten expandir la teoría del elemento finito. En 1956, Turner y otros
investigadores obtuvieron matrices de rigidez para armaduras y vigas. Clough retoma el
término elemento finito en 1960. En 1967, Zienkiewicz publica el primer libro sobre
elementos finitos. Alrededor de 1970 se inicio su aplicación a modelos no lineales, se
afianzaron sus bases matemáticas y estudios de convergencia.
Carlos Alberto Brebbia (1948-). El término “Boundary Element” surgió en 1977 al ser
utilizado por simultáneamente por varios autores en la universidad de Southampton.
Brebbia presentó el método de elementos de frontera utilizando la formulación de residuos
ponderados. Brebbia también ha publicado numerosos textos en el tema de elementos
finitos.
En el 2004, una revisión de las referencias a los métodos finitos que se encontraron en
Internet arrojo como resultado 66.237 entradas para el método de los elementos finitos
(FEM); 19.531, para el método de diferencias finitas (FDM); 10.126, para el método de
elementos de frontera (BEM); 1.695, para el método de volúmenes finitos (FVM) y 1.615
para el método de colocación (CM). Con lo cual se observa que el método de mayor
difusión es el método de los elementos finitos.
3.1.1 Operadores
Gradiente
∂f ∧ ∂f ∧ ∂f ∧
∇f = i+ j+ k Con f función escalar
∂x ∂y ∂z
Divergencia
∂f x ∂f y ∂f z
∇⋅ F = + + Con F función vectorial
∂x ∂y ∂z
Laplaciano
∂ 2 f x ∂ f y ∂ 2 fz
2
∇ f =
2
+ + Con f función escalar
∂x 2 ∂y 2 ∂z 2
2! 3! n!
3.1.3 Teoremas de Green e Integración por partes.
Los teoremas o identidades Green permiten reducir la dimensionalidad del problema. Esto
lo hace de dos formas: La primera al permitir transformar una integral de volumen a una
de área y/o una de área a una de línea. La segunda al reducir el orden de las derivadas.
Los teoremas de Green pueden considerarse como casos de integración por partes,
puesto que una integral se descompone en integrales que deben ser más simples de
resolver. Así los teoremas de Green permiten expresar ecuaciones integro diferenciales
de forma más apropiada para su manipulación y solución utilizando métodos numéricos
y/o analíticos.
∫ [(φψ ) − (φψ )x =a ]dy se puede expresar como una integral de línea sobre la
d
El término x= b
c
−> ∧
∂ψ −> ∧ d b ∂φ
∫∫ φ
Ω
∂x
dxdy = ∫ φψ n ⋅ i dΓ − ∫ ∫
Γ
c a ∂x
ψ dxdy
Para la variable y se tiene:
∂ψ −> −> d b ∂φ
∫∫ φ
Ω
∂y
dxdy = ∫ φψ n ⋅ j dΓ − ∫ ∫
Γ
c a ∂y
ψ dxdy
∫∫∫ ∇ ⋅ FdV = ∫∫ F ⋅ n dS
V S
V S
V S
V S
Existen varios métodos de integración numérica para calcular una integral definida de una
función. Entre estos se puede mencionar la regla trapezoidal, las reglas de Simpson y
otras, las cuales están basadas en la división del intervalo de integración en segmentos
iguales y el cálculo de la función en los extremos de cada segmento. Esto conduce a
expresiones conformadas por sumatorias de la evaluación de la función en distintos
puntos del intervalo ponderadas por un valor de peso. Estos métodos aún cuando son
muy fáciles de implementar en muchos casos son ineficientes.
El método de Integración utilizando cuadraturas de Gauss es similar a los anteriores
siendo a la vez eficiente y fácil de implementar. La extensión de este método a dos y tres
dimensiones se puede obtener fácilmente.
1 npg
I = ∫ f (ξ ) dξ ≅ w1 f (ξ1 ) + w 2 f (ξ 2 ) + .... + wn f (ξ n ) = ∑ f (ξ i ) wi
−1 i =1
Donde:
La variable npg indica el número de puntos de Gauss.
x=
a
(1 − ξ ) + b (1 + ξ )
2 2
f (x )dx =
(b − a ) 1 f (x (ξ ))dξ
∫ ∫
b
a 2 −1
Una propiedad especifica expresa una cantidad contenida por unidad de masa. Las
propiedades específicas también se llaman propiedades intensivas, en contraposición a
las propiedades extensivas, las cuales expresan la cantidad contenida total. Entre las
propiedades específicas se pueden mencionar las siguientes: volumen específico (v en
m 3/Kg.), entalpía específica (h en KJ/Kg.), entropía específica (s en KJ/Kg.). Las
propiedades específicas generalmente se denotan mediante letras minúsculas.
Si se tiene una propiedad específica f para una sustancia y se multiplica por la densidad
? de la sustancia se obtiene la concentración volumétrica de la propiedad, es decir, la
cantidad contenida por unidad de volumen:
kg φ φ
ρφ[= ] = Donde φ conserva sus unidades originales.
m 3 kg m 3
Entonces la cantidad total dada de una propiedad F se puede expresar de varias formas:
3.2.2 Flujo
El flujo volumétrico consiste en el volumen que atraviesa una superficie dada en la unidad
de tiempo, sus unidades son por lo tanto metros cúbicos por segundo. Sin embargo,
cuando se refiere al flujo por unidad de área se habla de flux. El flux volumétrico es el
volumen que atraviesa una unidad de área en la unidad de tiempo. Si el volumen contiene
una propiedad, se puede calcular el flujo y el flux de esta propiedad. Para el caso
presente se consideraran el flujo volumétrico y el flujo masico.
FlujoVolumentrico = (Velocidad )( Area )
FlujoMásico = ∫ ρυ n dΓ
Γ
FlujoMásico = ∫ ρφυn dΓ
Γ
Las constantes a1 , a 2 ,....a n son constantes por determinar. La forma como se determinan
estas constantes depende del método numérico empleado, lo cual será visto más
adelante.
Mientras que las funciones de interpolación, son funciones que se utilizan para
determinar el valor de una variable conociendo los valores en los extremos de un dominio
en cualquier número de dimensiones. Por ejemplo, si el dominio es una línea se requiere
conocer dos valores, si el dominio es un plano se requieren al menos tres valores.
En este texto se utilizarán dos clases de interpolación. La interpolación lineal entre dos
puntos e interpolación bidimensional Isoparamétrica. La interpolación lineal entre dos
puntos se aplica en el método de elementos finitos y de elementos de frontera para
evaluar integrales de línea. La interpolación bidimensional se utiliza para calcular
integrales de dominio.
u 2 = a0 + a1 x 2
Resolviendo este sistema se obtiene:
u1 x 2 − u 2 x1 u − u1
a0 = a1 = 2
x2 − x1 x 2 − x1
Sustituyendo a 0 y a1 en u( x ) = a0 + a1 x se tiene:
u1 x 2 − u 2 x1 u 2 − u1
u ( x) = + x
x2 − x1 x 2 − x1
Reorganizando los términos:
u1 x2 − u 2 x1 + u 2 x − u1 x x −x x − x1
u ( x) = = 2 u1 + u 2 = N 1u1 + N 2 u2
x2 − x1 x 2 − x1 x2 − x1
x2 − x x − x1
Donde N 1 = y N2 = son las funciones de interpolación.
x2 − x1 x2 − x1
1 x1 y1 c1 u1
1 x y 2 c2 = u 2
2
c1 u1
u
Dado que U ( x, y ) = [1 x y ]c 2 se tiene: U ( x, y ) = [1 x y][X ]
−1
2
c u 3
3
Haciendo [N ] = [1 x y][X ] Es decir [N 1 N 3 ] = [1 x y ][ X ]
−1 −1
N2
N1 =
( x 2 y3 − x3 y 2 ) + x ( y 2 − y 3 ) + y( x3 − x2 )
2A
N2 =
( x3 y1 − x1 y3 ) + x( y 3 − y1 ) + y( x1 − x3 )
2A
(x1 y 2 − x2 y1 ) + x ( y1 − y2 ) + y( x2 − x1 )
N3 =
2A
Donde: 2 A = x1 ( y2 − y3 ) + x2 ( y 3 − y1 ) + x3 ( y1 − y 2 ) = det [X ]
Las funciones φ1 ,φ 2 ,...,φ n llamadas funciones de forma, deben satisfacer las condiciones
de frontera impuestas al problema.
−
Como u (x, y ) aproxima la solución de la ecuación, entonces ∇ 2 u− b = R es igual aun
_
∫ (∇ (α φ ) )
+ α 2 φ 2 + ... + α n φ n − b φ1 dΩ = 0
2
1 1
Ω
∫ (∇ (α φ ) )
+ α 2φ 2 + ... + α nφ n − b φ 2dΩ = 0
2
1 1
Ω
…
∫ (∇ (α φ ) )
+ α 2φ 2 + ... + α nφ n − b φ n dΩ = 0
2
1 1
Ω
de Laplace: ∇ 2u = 0
∇ 2 u = b en O (3.5.1)
∫ (∇ u − b )wdΩ = 0
2
(3.5.2.)
Ω
∫ ∇ (u )wdΩ − ∫ bwdΩ = 0
2
(3.5.3.)
Ω Ω
Integrando por partes el primer termino utilizando la primera identidad de Green vista en el
numeral 3.1.3 se obtiene:
En este punto se puede preguntar por que son necesarios los métodos finitos para
resolver un problema. La respuesta reside en que a menudo es la única forma de resolver
el sistema sin tener que construirlo físicamente. Las soluciones analíticas exactas para las
ecuaciones que gobiernan muchos fenómenos solo se pueden obtener para problemas en
los cuales se hacen supuestos y se simplifican algunas restricciones con relación a la
geometría, propiedades del material y condiciones de frontera. Por lo cual no queda otra
opción que recurrir a métodos numéricos de solución en situaciones donde tales
simplificaciones no son posibles.
En la preparación del problema se debe decidir una forma de representar el objeto de tal
manera que se pueda verificar el planteamiento del problema, que permita su
manipulación mediante rutinas de computador, que reduzca el número de calculo
necesarios mediante el aprovechamiento de simetrías y que su procesamiento sea
eficiente. Los métodos finitos implican una discretización del sistema u objeto del estudio
en el cual la naturaleza continúa e infinitos grados de libertad del mismo es representada
por un conjunto finito de elementos cada uno con un número limitado de grados de
libertad. La representación discreta del problema implica una descripción precisa de la
geometría del sistema, las propiedades del mismo y las condiciones a las cuales esta
sometido, para lo cual se utilizan elementos geométricos tales como puntos, líneas ,
polígonos y volúmenes. Las líneas, superficies y volúmenes se determinan con sus
puntos, sus coordenadas, matrices de conectividad y propiedades. Existen programas que
permiten tomar dibujos o esquemas del sistema para convertirlos en una malla de puntos
y a partir de ellos generar automáticamente la descripción del sistema incluyendo,
geometría, conectividad o topología, condiciones del sistema, propiedades de los
materiales, etc. Estos programas se conocen con el nombre de malladores.
En el comercio se pueden encontrar desde aplicaciones que incluyen todos las etapas de
preparación, solución y procesamiento posterior hasta programas especializados en una
sola de estas etapas. Desde aplicaciones que solo reciben formatos texto hasta
aplicaciones que reciben y entregan imágenes en formato gráfico.
4.1 PROBLEMA DE TRABAJO
q = 10
(0,6) (6,6)
Placa metalica
T = 300 °C T = 0 °C
b = -5
(0,0) (6,0)
q = 10
Los flujos de calor en los lados o fronteras superior e inferior es de 10 unidades por
unidad y sus signos positivos significan que este calor esta saliendo de la placa. El valor
de la generación interna b significa que por cada unidad de área se generan 10 unidades
de calor y este debe salir de la placa. En términos matemáticos se tiene:
∂ 2T ∂ 2T
k∇ 2T ( x, y) = k x + k = b Tal que: b = −5 y k = k x = k x = 1
∂x 2 ∂y 2
y
4.2.1 Formulación
Si se evalúa f ( x ) en x = xi − h , se obtiene:
f ( xi − h ) = f ( xi ) − f 1 (xi )h +
1
f 2
( xi )h 2 − 1 f 3 (x i )h 3 + ... +
(− 1)n f n
(x i )h n + ... (2)
2! 3! n!
Tomando las ecuaciones (1) y (2) hasta el segundo termino se llega a (3) y (4):
f ( xi + h) = f ( xi ) + f 1 ( xi )h (3) f ( xi − h ) = f ( xi ) − f 1
(xi )h (4)
f (x i + h ) − f ( xi )
f 1 ( xi ) = (5) Ecuación diferencia finita hacia adelante
h
f ( xi ) − f (x i − h )
f 1 ( xi ) = (6) Ecuación diferencia finita hacia atrás.
h
Si se resta (3) y (4) se obtiene:
f ( xi + h) − f ( xi − h) = 2 f 1 ( xi )h
Despejando f 1 ( xi ):
f ( xi + h) − f (x i − h )
f 1 ( xi ) = (7) Ecuación diferencia finita central.
2h
Para hallar la ecuación en diferencias finitas de la segunda derivada se toma el polinomio
de Taylor hasta el término de segundo orden en las ecuaciones (1) y (2):
1
f ( xi + h) = f ( xi ) + f 1 ( xi )h + f 2
(xi )h 2 (8)
2!
f ( xi − h) = f ( xi ) − f 1 (xi )h + ( xi )h 2
1 2
f (9)
2!
Sumando (8) y (9):
f ( xi + h) + f (xi − h) = 2 f ( xi ) + f 2
(xi )h 2
Despejando f 2
( xi ) se tiene la aproximación de la segunda derivada en diferencias
finitas:
f ( xi + h ) − 2 f ( xi ) + f ( xi − h )
f 2 ( xi ) =
h2
En el caso de dos dimensiones la ecuación de Laplace es:
∂ 2T ∂ 2T
k∇ 2T ( x, y ) = k + k =0
∂x 2 ∂y 2
El coeficiente de conductividad térmica k para un material isotrópico es igual en ambas
direcciones. Este desaparece al ser tomado como factor común y pasado al lado derecho.
Otra interpretación es que este coeficiente toma el valor de unitario k = 1 .
∂ 2T ∂ 2T
∇ 2 T ( x, y ) = + =0
∂x 2 ∂y 2
∂ 2T ∂ 2T
Se aproxima el término y mediante diferencias finitas:
∂x 2 ∂y 2
∂ 2 T T (x i + h ) − 2T ( x i ) + T ( xi − h)
=
∂x 2 h2
∂ 2T T ( yi + h ) − 2T ( yi ) + T ( yi − h)
=
∂y 2 h2
∂ 2T ∂ 2T T (xi + h ) − 2T ( xi ) + T ( xi − h) T ( y i + h) − 2T ( y i ) + T ( yi − h)
+ = + =0
∂x 2 ∂y 2 hx
2
hy
2
T ( xi + h) − 2T ( xi ) + T (xi − h) T ( y i + h) − 2T ( y i ) + T ( yi − h)
2
+ 2
=0
hx hy
Para el caso de la ecuación de Poisson:
∂ 2T ∂ 2T
k∇ T ( x, y) = k x
2
+ ky =b
∂x 2 ∂y 2
Si el material es isotrópico los coeficientes de conductividad térmica son iguales kx = ky y
la ecuación se puede expresar:
∂ 2T ∂ 2T b
∇ 2 T ( x, y ) = + =
∂x 2 ∂y 2 k
Su expresión en diferencias finitas esta dada por:
T ( xi + hx ) − 2T ( x i ) + T ( xi − hx ) T (y i + hy ) − 2T ( yi ) + T ( yi − hy ) b
2
+ 2
=
hx hy k
Si se toman incrementos hx y hy de igual tamaño h se tiene:
T ( xi + h) + T (xi − h) + T ( y i + h ) + T ( yi − h) − 4T ( xi ) = h 2
b
k
En este punto se introduce una convención para simplificar la notación. Para cada punto o
nodo del dominio se debe establecer una ecuación. En el caso bidimensional cada punto
esta rodeado máximo por cuatro nodos vecinos los cuales se denominaran con
subíndices de acuerdo a su posición relativa al nodo de referencia, con los subíndices n –
norte, w- oeste, s – sur, e – este.
Así:
xe = (x i + h ) , x w = (xi − h) , y n = ( y i + h ), y s = ( yi − h ) y
Te = T ( xe ) Tw = T (xw ) Tn = T ( yn ) T s = T ( ys ) Ti = T ( xi )
10 9 8 7
11 16 6
15
T = 300 °C b = -5 T = 0 °C
12 13 14 5
2 3 4
1
q = 10
Observe que S, E, N, W son relativos para cada nodo. Como ilustración para el nodo 5; S
es el nodo 4, W es el nodo14, N es el nodo 6. Como el nodo 5 es un nodo de frontera en
el lado derecho el nodo E relativo al nodo 5 no existe. Mientras que para el nodo 12, es un
nodo de frontera en el lado izquierdo por lo tanto el nodo W no existe, S es el nodo 1, E es
el nodo 13 y N es el nodo 11.
Nodo 2: T s + Te + T n + T w − 4T2 = h 2 b
Observe que para el nodo 2 se especifica una condición de flujo y que el nodo en la
posición s es un nodo virtual por no existir. En este caso se aplica la Ley de Fourier del
calor entre el nodo norte y sur con el fin de despejar Ts y reemplazarlo en la ecuación. Por
lo tanto aproximando se tiene:
Tn − Ts
=q ==> Ts = Tn − q * 2h
2h
Remplazando Ts en la ecuación inicial del nodo 2:
Tn − 10 * 2h + Te + Tn + Tw − 4T2 = h 2b
Entonces la ecuación para el nodo 2 queda:
T n + T e + Tn + Tw − 4T 2 = h 2 b + q * 2h
Reemplazando valores:
2T n + Te + T w − 4T 2 = 2 2 ( −5) + 10 * 2( 2)
4.2.3 Programación
En esta subrutina el ciclo externo se utiliza para recorrer todos los nodos Do I = 1,nn
Por cada nodo existe una fila y una columna en la matriz H, de acuerdo con la condición y
ubicación de cada nodo se establecen los coeficientes de la matriz H y los coeficientes del
lado derecho en el vector B.
Las condiciones del nodo pueden ser 0 - Potencial conocido, 1 - Flujo conocido, 2 - No se
conoce el flujo ni el potencial. Estas condiciones fueron leídas del archivo de entrada y se
colocaron en el vector Condición.
Las instrucciones Select Case e If colocan los coeficientes correspondientes para cada
nodo de acuerdo con la ecuación planteada para cada nodo como se muestra
anteriormente.
Una vez que se procesan todos los nodos la matriz H y el vector B contienen los valores
del problema para formar el sistema HX = B, el cual se resuelve mediante la llamada de la
función ResolverSistema(H,X,B), donde los valores calculados de las temperaturas
quedan en el vector X.
Los arreglos S(I), E(I), N(I) y W(I), indican respectivamente el nodo que se encuentra al
sur, al este, al norte y al oeste del nodo I, el cual es el nodo que se esta procesando. Esta
información se lee del archivo de datos de entrada.
SUBROUTINE DiferenciasFinitas
INTEGER I,J
REAL Delta
WRITE(*,*) "Método de Diferencias Finitas"
ALLOCATE(H(nn,nn),B(nn),X(nn))
H=0
B=0
X=0
Delta = XF(2) - XF(1) !Se supone una malla uniforme
DO I = 1,nn
SELECT CASE (Condicion(I))
CASE (0) !Potencial conocido
H(I,I) = 1
B(I) = V(I)
CASE (1) !Flujo conocido
IF (S(I) == 0) THEN
H(I,I) = -4.0
H(I,N(I)) = 2.0
H(I,W(I)) = 1.0
H(I,E(I)) = 1.0
B(I) = 2*V(I)*Delta + Constante*(Delta**2)
END IF
IF (N(I) == 0) THEN
H(I,I) = -4.0
H(I,S(I)) = 2.0
H(I,W(I)) = 1.0
H(I,E(I)) = 1.0
B(I) = 2*V(I)*Delta + Constante*(Delta**2)
END IF
IF (E(I) == 0) THEN
H(I,I) = -4
H(I,W(I)) = 2.0
H(I,S(I)) = 1.0
H(I,N(I)) = 1.0
B(I) = 2*V(I)*Delta + Constante*(Delta**2)
END IF
IF (W(I) == 0) THEN
H(I,I) = -4
H(I,E(I)) = 2.0
H(I,S(I)) = 1.0
H(I,N(I)) = 1.0
B(I) = 2*V(I)*Delta + Constante*(Delta**2)
END IF
CASE (2) !Valor desconocido
H(I,I) = -4.0
H(I,S(I)) = 1.0
H(I,E(I)) = 1.0
H(I,N(I)) = 1.0
H(I,W(I)) = 1.0
B(I) = Constante*(Delta**2)
END SELECT
END DO
CALL ImprimirMatriz(H)
CALL WRRRN ('B', 1, UBOUND(B), B, 1, 0) !Imprime el vector solución B
CALL ResolverSistema(H,X,B)
DEALLOCATE(S,E,N,W,XF,YF,Condicion,V,H,B)
END SUBROUTINE
4.3 VOLÚMENES FINITOS
4.3.1 Formulación
∫ (∇ u − b )wdΩ = 0
2
Ponderación de residuos.
Ω
∫ (∇ u )dΩ = ∫ bdΩ
2
Ω Ω
Por definición del Laplaciano el término del lado izquierdo se puede expresar:
∫ (∇ u )dΩ = ∫ ∇ ⋅ (∇u )Ω
2
Ω Ω
−>
∫Ω ∇ ⋅ (∇u )d Ω = ∫s n ds
∇ u ⋅
−>
∂u
ds Hasta el momento se
Por definición de derivada direccional: ∫s
∇u ⋅ n
ds = ∫ −>
s∂ n
tiene:
∂u
∫s −> ds = ∫Ω bdΩ
∂ n
∂u
ds = ∑ ∂u ds
4
∫s −> i j=1 Γ∫ −> i
i ∂ n i,j ∂ n
∂u
ds = u j − ui L(Γ )
∫ −> i h
Γi , j ∂ n
i, j Con j = W, E, N, S.
W E ?y
i
uW − u i u − ui u − ui u − ui
∆y + E ∆y + S ∆x + N ∆x = b∆x∆y
∆x ∆x ∆y ∆y
Donde b es la generación interna por unidad del dominio en la región i.
4.3.2 Aplicación
q = 10
10 9 8 7
11 16 15 6
T = 300 °C b = -5 T = 0 °C
12 13 14 5
1 2 3 4
q = 10
(Tw − T2 ) ∆ y + (Te − T2 ) ∆ y − q∆ x +
(Tn − T2 ) ∆ x ∆y
= −b∆x
∆x 2 ∆x 2 ∆y 2
∆ x = ∆ y = ∆ Malla uniforme
1 1 1 1 ∆2
Tw − T2 + Te − T2 + Tn − T2 = q∆ x + b
2 2 2 2 2
1 1 ∆2
Tw + Te + Tn − 2T2 = q∆ + b
2 2 2
1 1 ∆2
Volumen 3: Tw + Te + T n − 2T3 = q∆ + b
2 2 2
Volumen 4: T4 = 0 Temperatura conocida (Condición de frontera).
1 1 ∆2
Volumen 5: Ts + Tw + Tn − 2T5 = q∆ + b
2 2 2
1 1 ∆2
Volumen 6: Ts + Tw + Tn − 2T6 = q∆ + b
2 2 2
Volumen 7: T7 = 0 Temperatura conocida (Condición de frontera).
1 1 ∆2
Volumen 8: T s + Te + Tw − 2T8 = q∆ + b
2 2 2
1 1 ∆2
Volumen 9: Ts + Te + Tw − 2T9 = q∆ + b
2 2 2
Volumen 10: T10 = 0 Temperatura conocida (Condición de frontera).
1 1 ∆2
Volumen 11: Ts + Te + Tn − 2T11 = q∆ + b
2 2 2
1 1 ∆2
Volumen 12: Ts + Te + Tn − 2T12 = q∆ + b
2 2 2
Volumen 13: T s + Te + T n + Tw − 4T13 = b∆2
4.3.3 Programación
Esta subrutina es muy similar al método anterior debido a que el número de puntos,
geometría y ecuaciones también resultan ser similares. El número de instrucciones
condicionales para tener en cuenta las condiciones de frontera aumenta. Con estos se
pretende saber si el volumen se encuentra ubicado en una esquina, en un lado o en el
medio, en cuyo caso los coeficientes asignados a cada variable son diferentes.
SUBROUTINE VolumenesFinitos
INTEGER I,J
REAL Delta
WRITE(*,*) "Metodo de Diferencias Finitas"
ALLOCATE(H(nn,nn),B(nn),X(nn))
H=0
B=0
X=0
Delta = XF(2) - XF(1) !Se supone una malla uniforme
DO I = 1,nn
SELECT CASE (Condicion(I))
CASE (0) !Potencial conocido
H(I,I) = 1
B(I) = V(I)
CASE (1) !Flujo conocido
IF (S(I) == 0 .AND. W(I) == 0) THEN
H(I,I) = -1.0
H(I,N(I)) = 0.5
H(I,E(I)) = 0.5
B(I) = V(I)*Delta + Constante*(Delta**2)/4
END IF
IF (S(I) == 0 .AND. E(I) == 0) THEN
H(I,I) = -1.0
H(I,N(I)) = 0.5
H(I,W(I)) = 0.5
B(I) = V(I)*Delta + Constante*(Delta**2)/4
END IF
IF (N(I) == 0 .AND. W(I) == 0) THEN
H(I,I) = -1.0
H(I,S(I)) = 0.5
H(I,E(I)) = 0.5
B(I) = V(I)*Delta + Constante*(Delta**2)/4
END IF
IF (N(I) == 0 .AND. E(I) == 0) THEN
H(I,I) = -1.0
H(I,S(I)) = 0.5
H(I,W(I)) = 0.5
B(I) = V(I)*Delta + Constante*(Delta**2)/4
END IF
IF (E(I) == 0 .AND. S(I) /= 0 .AND. N(I) /= 0 .AND. W(I) /= 0) THEN
H(I,I) = -2
H(I,W(I)) = 1.0
H(I,S(I)) = 0.5
H(I,N(I)) = 0.5
B(I) = V(I)*Delta + Constante*(Delta**2)/2
END IF
IF (E(I) /= 0 .AND. S(I) == 0 .AND. N(I) /= 0 .AND. W(I) /= 0) THEN
H(I,I) = -2
H(I,W(I)) = 0.5
H(I,E(I)) = 0.5
H(I,N(I)) = 1.0
B(I) = V(I)*Delta + Co nstante*(Delta**2)/2
END IF
IF (E(I) /= 0 .AND. S(I) /= 0 .AND. N(I) == 0 .AND. W(I) /= 0) THEN
H(I,I) = -2
H(I,W(I)) = 0.5
H(I,S(I)) = 1.0
H(I,E(I)) = 0.5
B(I) = V(I)*Delta + Constante*(Delta**2)/2
END IF
IF (E(I) /= 0 .AND. S(I) /= 0 .AND. N(I) /= 0 .AND. W(I) == 0) THEN
H(I,I) = -2
H(I,E(I)) = 1.0
H(I,S(I)) = 0.5
H(I,N(I)) = 0.5
B(I) = V(I)*Delta + Constante*(Delta**2)/2
END IF
CASE (2) !Valor desconocido
H(I,I) = -4.0
H(I,S(I)) = 1.0
H(I,E(I)) = 1.0
H(I,N(I)) = 1.0
H(I,W(I)) = 1.0
B(I) = Constante*(Delta**2)
END SELECT
END DO
CALL ImprimirMatriz(H)
CALL ResolverSistema(H,X,B)
DEALLOCATE(S,E,N,W,XF,YF,Condicion,V,H,B)
END SUBROUTINE
4.4.1 Formulación
∫ (∇ u − b )wdΩ = 0
2
(4.4.2.)
Ω
∫ ∇ (u )wdΩ − ∫ bwdΩ = 0
2
(4.4.3.)
Ω Ω
∫ (∇ u) wd Ω = ∫ w ∇u ⋅ dΓ − ∫ ∇u ⋅ ∇wd Ω
2
(4.4.4.) sustituyendo en (4.4.3.)
Ω Γ Ω
El método de los elementos finitos requiere por ser un método de Galerkin que las
funciones de peso sean iguales a las de forma. Para que sea un método de elementos
finitos se requiere que sean polinómicas por tramos. Las funciones de interpolación
cumplen estas condiciones. En este caso se utilizaran funciones lineales de interpolación
para elementos lineales triangulares.
N1 =
( x 2 y3 − x3 y 2 ) + x ( y 2 − y 3 ) + y (x3 − x2 )
2A
( x3 y1 − x1 y3 ) + x( y 3 − y1 ) + y( x1 − x3 )
N2 =
2A
N3 =
(x1 y 2 − x2 y1 ) + x ( y1 − y2 ) + y( x2 − x1 )
2A
Como x1, x2, x3 , y1, y2, y3 son permanecen constantes para cada elemento se puede
remplazar:
a1 = ( x2 y 3 − x 3 y2 ) b1 = ( y 2 − y 3 ) c1 = (x3 − x 2 )
a 2 = (x3 y1 − x1 y 3 ) b2 = ( y3 − y1 ) c2 = ( x1 − x3 )
c3 = (x1 y 2 − x 2 y1 ) b3 = ( y1 − y 2 ) c3 = ( x2 − x1 )
Con lo cual:
N 1 = (a1 + b1 x + c1 y ) / (2 A )
N 2 = (a2 + b2 x + c2 y ) / (2 A )
N 3 = (a3 + b3 x + c3 y ) / (2 A )
a1 a2 a3
Expresado en forma matricial: [N ] = 1 [1 x y] b1 b2 b3
2A
c1 c2 c3
La expresión ∫ ∇u ⋅ ∇ wdΩ = ∫ w ∇u ⋅ dΓ − ∫ bwd Ω
Ω Γ Ω
entonces se obtiene una ecuación
∫ ∇(u N
Ω
1 1 + u 2 N 2 + u 3 N 3 )∇N 1 dΩ = ∫ N 1 ∇(u1 N 1 + u 2 N 2 + u3 N 3 )dΓ − ∫ bN1 dΩ (4.4.7)
Γ Ω
∫ ∇(u N
Ω
1 1 + u 2 N 2 + u 3 N 3 )∇ N 2 dΩ = ∫ N 2∇ (u1 N 1 + u 2 N 2 + u3 N 3 )dΓ − ∫ bN 2dΩ (4.4.8)
Γ Ω
∫ ∇(u N
Ω
1 1 + u 2 N 2 + u 3 N 3 )∇N 3 dΩ = ∫ N 3 ∇(u1 N 1 + u 2 N 2 + u 3 N 3 )dΓ − ∫ bN 3 dΩ (4.4.9)
Γ Ω
∂
(u1 N1 ) = u1 ∂ a1 + b1 x + c1 y = 1 u1 (b1 )
∂x ∂x 2A 2A
∂
(u2 N 2 ) = u2 ∂ a2 + b2 x + c 2 y = 1 u 2 (b2 )
∂x ∂x 2A 2A
∂
(u 3 N 3 ) = u3 ∂ a3 + b3 x + c 3 y = 1 u 3 (b3 )
∂x ∂x 2A 2A
∂
(u1 N 1 + u 2 N 2 + u 3 N 3 ) = 1 (u1b1 + u 2b2 + u3b3 )
∂x 2A
De forma similar:
∂
(u1 N 1 + u 2 N 2 + u 3 N 3 ) = 1 (u1c1 + u 2 c2 + u3 c3 )
∂y 2A
Por lo tanto el gradiente para la función u:
b1 c1
∇(u1N 1 + u2 N 2 + u3 N 3 ) =
1
(u1b1 + u2b2 + u3b3 u1c1 + u 2c2 + u3c3 ) = [u1 u2 u3 ]b2 c2
1
2A 2A
b3 c3
Ahora se calculan los gradientes para las funciones de peso N1, N2, N 3:
∂ a + b x + c1 y ∂ a1 + b1 x + c1 y 1
∇N 1 = 1 1 = (b1 c1 )
∂x 2A ∂y 2A 2A
∇N 2 =
1
(b2 c2 ) y ∇N 3 =
1
(b3 c3 )
2A 2A
Sustituyendo las expresiones en las ecuaciones integrales para cada función de peso:
Para la primera ecuación integral
∫ ∇(u N
Ω
1 1 + u 2 N 2 + u 3 N 3 ) ⋅ (∇N 1 )dΩ = ∫ N 1∇(u1 N 1 + u 2 N 2 + u 3 N 3 ) ⋅ dΓ − ∫ bN1dΩ
Γ Ω
b1 c1 u1
1
[u1 u 2 u3 ]b2 c2 ⋅ [b1 c1 ]dΩ = ∫ [b ]
b1 b3 + c1 c3 u2 dΩ
1
4 A 2 ∫Ω
2
+c 2
b1 b2 + c1c 2
4 A2
1 1
b3 c3 Ω
u3
b1 c1 u1
1
[u1 u 2 u3 ]b2 c2 ⋅ [b2 c 2 ]dΩ = ∫ [b b ]
b2 b3 + c2 c3 u 2 dΩ
1
4 A 2 ∫Ω
+ c1 c2 b +c 2 2
4A2
1 2 2 2
b3 c3 Ω
u 3
b1 c1 u1
1
[u1 u3 ]b2 c2 ⋅ [b3 c3 ]dΩ = ∫ [b b ]
b + c u 2 dΩ
1
4 A 2 ∫Ω
u2 1 3 + c1 c3 b1b3 + c2 c 3 2
3
2
3
4 A2
b3 c3 Ω
u 3
Puesto que todos los elementos dentro de las integrales son constantes la integral de
así:
u1 u1
A 2
[
b1 + c12 b1b2 + c1c2 ]
b1b3 + c1c3 u 2 =
4A 1
1 2
b + c12 [ b1b2 + c1c2
]
b1b3 + c1c3 u 2
4 A2
u3 u3
u1 u 1
∫ [b b ]
b 2 b3 + c 2 c 3 u 2 dΩ = [ ]
b2 b3 + c 2 c 3 u 2
1 1
1 2 + c1 c 2 b +c
2
2
2
2 b1 b2 + c1 c 2 b +c
2
2
2
2
4 A2 4A
Ω
u 3 u 3
u1 u1
1
2 ∫ 1 3
4A Ω
[
b b + c1c3 b1b3 + c2c3 b3 + c3 u2 dΩ =
2 2 1
4A
] [
b1b3 + c1c3 b1b3 + c2 c3 b32 + c32 ]u
2
u3 u3
Reuniendo los tres resultados anteriores en una sola expresión matricial el lado izquierdo
de las tres ecuaciones integrales se resume en:
∫ ∇(u N
Ω
1 1 + u 2 N 2 + u 3 N 3 ) ⋅ (∇N 1 )dΩ = ∫ N 1∇(u1 N 1 + u 2 N 2 + u 3 N 3 ) ⋅ dΓ − ∫ bN1dΩ
Γ Ω
potencial o flujo, el cual es una condición de frontera dada por el problema. Por lo tanto se
puede expresar como: q = ∇(u1 N1 + u2 N 2 + u3 N 3 ) y la ecuación queda:
1!0! qL
∫ N qdΓ = q∫ N dΓ = q (1 + 0 + 1)! L =
Γ
1
Γ
1
2
Donde L es la longitud de Γ .
Para un elemento triangular con generación interna b y conducción en el lado entre los
nodos i y j se tendría la siguiente ecuación:
k
b
1 0
bA qL
j KU = 1 − 1
3 2
1 1
En este método se debe resaltar que ya no se requiere solamente numerar los nodos,
también es necesario numerar los elementos. Del orden de numeración de nodos y
elementos dependerá la forma que adopte la matriz de rigidez.
q = 10
10 9 8 7
13 11 9
12 10 8
11 16 15 6
b=-5
T = 300 °C 14 18 7 T = 0 °C
15 17 6
12 13 14 5
16 2 4
1 3 5
1 2 3 4
q = 10
Para el elemento 1 ubicado entre los nodos 1,2 y 13. El nodo 1 con coordenadas (0,0), el
nodo 2 con coordenadas (2,0) y el nodo 13 con coordenadas (2,2).
1 0
bA qL
La ecuación KU = 1 − 1 , produce los siguientes resultados.
3 2
1 1
a1 = ( x2 y 3 − x3 y 2 ) = 2 ⋅ 2 − 2 ⋅ 0 = 4 b1 = ( y 2 − y3 ) = 0 − 2 = −2 c1 = (x 3 − x 2 ) = 2 − 2 = 0
a 2 = (x3 y1 − x1 y 3 ) = 2 ⋅ 0 − 0 ⋅ 2 = 0 b2 = ( y 3 − y1 ) = 2 − 0 = 2 c2 = ( x1 − x3 ) = 0 − 2 = −2
c3 = ( x1 y2 − x 2 y1 ) = 0 ⋅ 0 − 2 ⋅ 0 = 0 b3 = ( y1 − y 2 ) = 0 − 0 = 0 c3 = (x 2 − x1 ) = 2 − 0 = 2
2⋅2
A= =2
2
b12 + c12 b1 b 2 + c1 c 2 b1 b 3 + c 1 c 3 (− 2) 2 − 2⋅2 0
1
K =
1
b1 b2 + c 1 c 2 b 22 + c 22 b2 b 3 + c 2 c 3 = − 2⋅2 (2 ) + (− 2)2
2
(− 2 )(2 )
4A 4 ⋅ 2
b1 b 3 + c 1 c 3 b 2 b3 + c 2 c 3 b32 + c 32
0
(− 2 )(2 ) 22
1 1
2 − 0
2
1 1
K = − 1 −
2 2
0 −
1 1
2 2
DO K = 1,NCI
Nodo1 = NodosDeCeldas(K,1)
Nodo2 = NodosDeCeldas(K,2)
Nodo3 = NodosDeCeldas(K,3)
Xi = xf(Nodo1)
Xj= xf(Nodo2)
Xk = xf(Nodo3)
Yi = yf(Nodo1)
Yj = yf(Nodo2)
Yk = yf(Nodo3)
Ai = Xj*Yk - Xk*Yj
Aj = Xk*Yi - Xi*Yk
Ak = Xi*Yj - Xj*Yi
pX = (Xi + Xj + Xk)/3
pY = (Yi + Yk + Yk)/3
Bi = Yj - Yk
Bj = Yk - Yi
Bk = Yi - Yj
Ci = Xk - Xj
Cj = Xi - Xk
Ck = Xj - Xi
Area = fCalcularAreaCelda(K)
H(Nodo2,Nodo1) = H(Nodo1,Nodo2)
H(Nodo3,Nodo1) = H(Nodo1,Nodo3)
H(Nodo3,Nodo2) = H(Nodo2,Nodo3)
!Imprimir vector B
WRITE(Salida,*) 'Vector B'
CALL WRRRN ('B', 1, UBOUND(B), B, 1, 0) !Imprime el vector B
!Imprimir vector B
WRITE(Salida,*) 'Vector B + Condiciones frontera'
CALL WRRRN ('B', 1, UBOUND(B), B, 1, 0) !Imprime el vector B
Resuelve el problema del potencial mediante el cálculo de integrales sobre la frontera del
dominio, las cuales se derivan de la minimización de residuos ponderados.
4.5.1 Formulación
∇ 2 u = b en O
∫ (∇ u − b )wdΩ = 0
2
∫ ∇ (u )wdΩ − ∫ bwd Ω = 0
2
Ω Ω
Reordenando se obtiene:
Ω Γ Ω
Γ Γ Ω Ω
Ω Ω Γ Γ
∫ (∇ w)udΩ se obtiene:
2
Integrando por partes el término
Ω
Ω Ω Γ
_ _
− ∫ ∇ w∇ ud Ω + ∫ u ∇wd Γ1 − ∫ bwdΩ + ∫ w(∇ u )d Γ1 + ∫ w q d Γ2 − ∫ u (∇ w)d Γ1 = 0
Ω Γ1 Ω Γ1 Γ2 Γ1
Ω Ω Γ
∫ ∇ Ω − ∫ ∇ Γ + ∫ ∇ Γ − ∫Ω Ω + ∫ Γ − ∫ (∇w)dΓ1 = 0
2
w ud w ud 2 u wd 1 bwd w q d 2 u
Ω Γ2 Γ1 Γ2 Γ1
∫ w∇ udΩ se obtiene:
2
Integrando por partes dos veces el término
Ω
Ω Ω Γ Ω Γ Γ
2 1 2 1
Ω Ω Γ2 Γ1 Γ2 Γ1
Ω Γ Ω Γ
= 0 en otro caso.
δ i es la función delta de Dirac. r es la distancia desde el punto xi de aplicación de la
función delta de Dirac hasta cualquier otro punto en consideración. El efecto de esta carga
se propaga desde el punto i hasta el infinito sin considerar las condiciones de frontera.
De la propiedad anterior se obtiene:
( )
∇ 2 u * = −δ i
∫ (∇ w)udΩ se toma w = u
2 *
En la integral
Ω
Por la propiedad del delta de Dirac mediante la cual la integral de una función delta de
Dirac multiplicada por otra función es igual a la función evaluada en el punto i se tiene:
c i
= 0 .5
ci = 1
c i
= 0 . 25 c i = 0 . 125
i
Figura 14. Valores para la constante C .
Ω Γ Ω Γ
∫ (∇ w)udΩ = −c u w = u* ∇w = q * ∇u = q
2 i i
c i u i + ∫ uq * dΓ + ∫ bu * dΩ = ∫ qu * dΓ
Γ Ω Γ
Esta ecuación esta formulada para el dominio y la frontera completos. Ahora la tarea que
falta consiste en dividir la frontera en varias partes y aplicar la ecuación en cada una de
ellas. La anterior ecuación se cumple para cada punto que este en la frontera. Si la
frontera se divide en N segmentos o elementos entonces para cada punto i del dominio
se cumplirá la siguiente ecuación expresada en forma de sumatoria.
N N
c i u i + ∑ H iju i + D i = ∑ G ij q j
j =1 j =1
HU + D = GQ
La cual es la ecuación de partida para la discretización del método de los elementos de
frontera, la cual permite calcular el potencial para un punto dado del dominio.
A continuación se muestra como se efectúa su discretización. En donde, u* representa la
función radial y q* representa su derivada con respecto al vector normal en la frontera,
así:
1 1
u* = ln Para un medio bidimensional isotrópico.
2π r
1
u* = Para un medio tridimensional isotrópico.
4πr
∂u *
q* = −>
∂n
Para un nodo i se cumple la siguiente integral de frontera:
c i u i + ∫ uq * dΓ = ∫ qu * dΓ
Γ Γ
Para una frontera dividida en n elementos lineales se tiene para cada nodo:
1 1 ∂u *
u* = ln , q* = −>
, φ1 =
1
(1 − ε ) , φ2 =
1
(1 + ε )
2π r ∂n 2 2
3
(XB ,YB)
(X ,Y)
?j
r
(XA
i (XI ,YI)
X (ε ) =
(X A + X B )
+ε
(X B − X A ) , Y (ε ) =
(YA + YB ) (Y − YA )
+ε B con − 1 ≤ ε ≤ 1
2 2 2 2
[
Para el radio se tiene: r 2 = ( X − X I )2 + (Y − Y I )2 ]
[
El radio en función de ε : r 2 (ε ) = ( X (ε ) − X I ) 2 + (Y (ε ) − YI )2 ]
La frontera Γ expresada en función del parámetro ε se puede expresar de la forma:
(X + X B )
Γ (ε ) = A +ε
( X B − X A ) , (Y A + YB ) + ε (YB − YA )
2 2 2 2
Su derivada Γ (ε ) y magnitud de la derivada son respectivamente:
'
( X − X A ) (YB − YA )
Γ ' (ε ) = B y Γ ' (ε ) = ( X B − X A ) 2 + (YB − YA )2
1
,
2 2 2
Esta última constituirá más adelante el Jacobiano para el cambio de variable en la
expresión integral que se obtendrá.
Sea la integral: ∫ qu * dΓ
Γ
1 1
q = φ1 q 1 + φ 2 q 2 y u* = ln
2π r
Reemplazando q y u* en la integral
∫ (φ q )1 1 q1 1 1
2
∫ f ( x )dΓ = ∫ f ( x(ε )) Γ (ε ) dε
'
Γ ε
q1 1
1
1 ´'
∫ (φ1 ) ln dΓ = ∫ (φ1 (ε )) ln Γ (ε ) dε
q
2π Γ r 2π Γ r (ε )
Se tiene:
1 ´' 1
∫ (φ1(ε )) ln Γ (ε ) dε = ∫ (1− ε ) ln ( X − X ) 2 + (Y − Y )2 dε
1 1
r(ε )
( ( ) ) ( ( ) ) 2 B A B A
2 ε − + ε −
2 2
Γ Γ
X X I Y YI
4.5.1.2 Calculo de la integral que contiene el termino q*
Sea la integral: ∫ uq * dΓ
Γ
∂u * ∂u * −>
Para q* = −>
se tiene q* = −>
= ∇u * • n
∂n ∂n
1 1 ∂u * ∂u * ∂ u * ∂u * ∂ r ∂u * ∂u * ∂r
∇u* = ∇ ln = , , = y =
2π r ∂x ∂y ∂x ∂r ∂ x ∂y ∂r ∂y
[
r 2 = ( X − X I ) + (Y − YI )
2 2
] Derivando implícitamente:
∂r X − X I
∂x
=
r
∂r Y − Y I
∂y
=
r
∂u * ∂ 1 1 1 1
= ln = −
∂r ∂r 2π r 2π r
−>
Ahora se determina el vector normal n al vector de recta determinado por los puntos
−>
(XA,YA) y (XB,YB) mediante su producto cruz con el vector k = (0,0,1) . El producto de un
−>
vector en el plano xy con el vector k = (0,0,1) produce otro vector normal en el plano xy
perpendicular a ambos vectores.
−>
n = (X B − X A , YB − YA ,0) × (0,0,1)
n= 0 0 1 = (YA − YB ) i + ( X B − X A ) j
X B − X A YB − Y A 0
∂u * −>
Reemplazando los términos anteriores en q* = −>
= ∇u * • n se tiene:
∂n
∂u * −>
X − X I Y − YI
q* = −>
= ∇u * • n = − ,− ⋅ (YA − YB , X B − X A )
∂n 2πr 2
2πr 2
El valor de u en un punto del elemento en función ε de esta dado por:
1 1
u(ε ) = φ1 u A + φ 2 u B = (1 − ε )u A + (1 + ε )u B
2 2
∂u * −> X (ε ) − X I Y (ε ) − Y I
q* = = ∇u * • n = − ,− ⋅ (Y A − Y B , X B − X A )
∂n
−>
2πr 2
(ε ) 2πr 2 (ε )
∂u * −> ( X (ε ) − X I )(Y A − YB ) + (Y (ε ) − Y I )( X B − X A )
q* = = ∇u * • n = −
∂n
−>
2π r 2
(ε )
( ( ) )( ) ( ( ) )( )
1
∫ u(ε )q * (ε )dΓ = −∫ 2 (1 − ε )u
A
+
1
(1+ ε )u B X ε − X I YA − YB +2 Y ε − YI X B − X A dΓ
Γ
2 2πr (ε )
Del cálculo integral para un cambio de variable se tiene:
∫ f ( x )dx = ∫ f ( x(ε )) Γ (ε ) dε
'
Γ ε
Donde:
(X + X B )
Γ (ε ) = A
( X − X A ) , (Y A + YB ) + ε (YB − YA )
+ε B
2 2 2 2
( X − X A ) (Y B − Y A )
Γ ' (ε ) = B
1
, y Γ ' (ε ) = ( X B − X A ) 2 + (YB − Y A )2
2 2 2
∫
Cada integral de la forma uq * dΓ1 por lo tanto se puede separar en dos integrales:
Γ1
∫ uq * dΓ
Γ1
1 = u1 ∫ φ1q11 * dΓ1 + u2 ∫ φ 2 q11 * dΓ1
Γ1 Γ1
Donde:
1 ( X (ε ) − X I )(YA − YB ) + (Y(ε ) − YI )( X B − X A ) 1
u A ∫φ1 q11 * dΓ = −u A ∫ (1 − ε ) ( XB − X A ) 2 + (YB − YA )2 dε
Γ 2 2πr 2 (ε ) 2
1 ( X(ε ) − X I )(YA − YB ) + (Y(ε ) − YI )( X B − X A ) 1
u B ∫φ2 q11 * dΓ = −u B ∫ (1 + ε ) 2 ( X B − X A )2 + (YB − YA )2 dε
Γ 2 2πr 2 (ε )
Sea la integral: ∫ bu * dΩ
Ω
1 1
∫ bu * dΩ = ∫ b 2π ln r dΩ
Ω Ω
El término ∫ bu * dΩ
Ω
implica que se debe calcular una integral de dominio. Si la forma del
dominio es simple se puede efectuar una integración sobre todo el dominio. En otros
casos se recomienda dividir el dominio en regiones de integración llamadas celdas. Al
seleccionar los puntos de integración se debe tener cuidado de que estos no queden
sobre la frontera ya que esto causaría que la distancia r del punto a la frontera empleada
en la función radial u * sea cero y su valor infinito con lo cual la integral se vuelva
impropia. Una forma de evaluar las integrales impropias consiste en eliminar la
singularidad mediante su cambio en otra integral utilizando la Transformación de Telles.
(Ver BREBBIA, The Dual Reciprocity Boundary Element Method). La función contenida
dentro del símbolo de integral se puede evaluar mediante diversos métodos de
integración numérica: Romberg, Simpson, Regla del Trapecio, Cuadraturas Gaussianas,
etc. (Ver CHAPRA). Por sencillez y eficiencia se opta por la integración gaussiana, en la
cual se tomaran puntos de evaluación de la función radial que no estén sobre la frontera.
M
r
Di = ∫ bu * dΩ = ∑ ∑ bu * Ae
Ω e=1 k =1
Donde:
e = Número de celda
M = Número de celdas o regiones internas
Ae = Área de la celda e
D i = Resultado de la integración para cada punto i
r = Número de puntos de integración en cada celda
Al unir todos los términos de las ecuaciones integrales para los elementos de frontera se
tiene el siguiente sistema de ecuaciones:
Hu + B = Gq
Para las celdas triangulares se utilizó integración con siete puntos de gauss de acuerdo
con la siguiente tabla:
Debido al tamaño de las ecuaciones para el caso de la placa rectangular con 16 nodos y
12 elementos de frontera, se presenta el desarrollo de las ecuaciones para un modelo que
consta de tres elementos de frontera y cuatro nodos.
?3 ?2
1 ?1 2
c i u i + ∫ uq * dΓ + ∫ bu *dΩ = ∫ qu * dΓ
Γ Γ
c1u1 + u1 ∫ φ1 q11 * dΓ1 + u2 ∫ φ2 q11 * dΓ1 + u2 ∫ φ1 q12 * dΓ2 + u3 ∫ φ2 q12 *dΓ2 + u3 ∫ φ1q13 * dΓ3 + u1 ∫ φ2 q13 * dΓ3
Γ1 Γ1 Γ2 Γ2 Γ3 Γ3
c2u 2 + u1 ∫ φ1 q21 * dΓ1 + u 2 ∫φ2q 21 * dΓ1 + u2 ∫ φ1 q22 * dΓ2 + u3 ∫φ2 q22 * dΓ2 + u3 ∫φ1q23 * dΓ3 + u1 ∫φ2 q23 * dΓ3
Γ1 Γ1 Γ2 Γ2 Γ3 Γ3
c u + u1 ∫φ1q31 * dΓ1 + u2 ∫φ2 q31 * dΓ1 + u2 ∫φ1q32 * dΓ2 + u3 ∫φ2 q32 *dΓ2 + u3 ∫ φ1 q33 *dΓ3 + u1 ∫ φ2 q33 * dΓ3
1 1
Γ1 Γ1 Γ2 Γ2 Γ3 Γ3
c1u1 + u1 ∫ φ1 q11 *dΓ1 + u1 ∫ φ2 q13 *dΓ3 + u2 ∫ φ1q12 *dΓ2 + u2 ∫ φ2 q11 * dΓ1 + u3 ∫ φ1q13 *dΓ3 + u3 ∫φ2 q12 *dΓ2
Γ1 Γ3 Γ2 Γ1 Γ3 Γ2
u1 ∫ φ1q21 * dΓ1 + u1 ∫φ2 q23 * dΓ3 + c2u 2 + u2 ∫φ1q22 * dΓ2 + u2 ∫ φ2 q21 * dΓ1 + u 3 ∫φ1q23 * dΓ3 + u3 ∫φ2 q22 * dΓ2
Γ1 Γ3 Γ2 Γ1 Γ3 Γ2
u1 ∫ φ1q31 *dΓ1 + u1 ∫ φ2 q33 *dΓ3 + u2 ∫ φ1q32 *dΓ2 + u2 ∫φ2 q31 * dΓ1 + c u + u3 ∫φ1q33 *dΓ3 + u3 ∫φ2q32 *dΓ2
3 3
Γ1 Γ3 Γ2 Γ1 Γ3 Γ2
Γ1 Γ3 Γ2 Γ1 Γ3 Γ2
∫ qu * dΓ + ∫ qu * dΓ + ∫ qu * dΓ
Γ1
1
Γ2
2
Γ3
3
Se tiene:
q11 ∫ φ1u11 *dΓ1 + q21 ∫ φ2 u11 *dΓ1 + q22 ∫ φ1u12 *dΓ2 + q32 ∫ φ2 u12 *dΓ2 + q33 ∫ φ1u13 *dΓ3 + q13 ∫φ2 u13 *dΓ3
Γ1 Γ1 Γ2 Γ2 Γ3 Γ3
q11 ∫ φ1u21 *dΓ1 + q21 ∫ φ2 u21 *dΓ1 + q22 ∫φ1 u22 *dΓ2 + q32 ∫ φ2 u22 *dΓ2 + q33 ∫ φ1u23 *dΓ3 + q13 ∫ φ2 u23 *dΓ3
Γ1 Γ1 Γ2 Γ2 Γ3 Γ3
q11 ∫ φ1 u31 *dΓ1 + q21 ∫ φ2 u31 *dΓ1 + q22 ∫ φ1 u32 * dΓ2 + q32 ∫ φ2 u32 *dΓ2 + q33 ∫ φ1u33 *dΓ3 + q13 ∫ φ2 u33 *dΓ3
Γ1 Γ1 Γ2 Γ2 Γ3 Γ3
Expresado en forma matricial se tiene:
q11
∫ φ1u11 * dΓ1 ∫φ u 2 11 * dΓ1 ∫φ u 1 12 * dΓ2 ∫φ u2 12 * dΓ2 ∫φ u 1 13 * dΓ3 ∫Γ3φ2u13 * dΓ3 q21
Γ1 Γ1 Γ2 Γ2 Γ3
q22
∫ φ1u21 * dΓ1 ∫φ u 2 21 * dΓ1 ∫φ u 1 22 * dΓ2 ∫φ u 2 22 * dΓ2 ∫φ u 1 23 * dΓ3 ∫ 2 23 3 q32
φ u * d Γ
Γ1 Γ1 Γ2 Γ2 Γ3 Γ3
q33
∫ φ1u31 * dΓ1 ∫φ u 2 31 * dΓ1 ∫φ u 1 32 * dΓ2 ∫φ u 2 32 * dΓ2 ∫φ u 1 33 * dΓ3 ∫ φ 2 u 33 * d Γ3
Γ1 Γ1 Γ2 Γ2 Γ3 Γ3 q13
10 13 11 9
6
12 10 8
11 16 15 6
b = -5
T = 300 °C 11
14 18 7 T = 0 °C
5
15 17 6
12 13 14 5 Nodo
16 5
12 2 4
4 Celda
1 3 5
1 2 3 4 5 Elemento de frontera
1 2 3
q = 10
La matriz G:
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12
R1 0.12 -0.03 -0.15 -0.19 -0.24 -0.27 -0.29 -0.29 -0.30 -0.31 -0.32 -0.33
R2 -0.03 0.12 0.12 -0.03 -0.15 -0.19 -0.22 -0.23 -0.25 -0.26 -0.29 -0.30
R3 -0.19 -0.15 -0.03 0.12 0.12 -0.03 -0.12 -0.14 -0.19 -0.22 -0.26 -0.28
R4 -0.27 -0.24 -0.19 -0.15 -0.03 0.12 0.12 -0.03 -0.15 -0.19 -0.24 -0.27
R5 -0.28 -0.26 -0.22 -0.19 -0.14 -0.12 -0.03 0.12 0.12 -0.03 -0.15 -0.19
R6 -0.30 -0.29 -0.26 -0.25 -0.23 -0.22 -0.19 -0.15 -0.03 0.12 0.12 -0.03
R7 -0.33 -0.32 -0.31 -0.30 -0.29 -0.29 -0.27 -0.24 -0.19 -0.15 -0.03 0.12
R8 -0.31 -0.30 -0.29 -0.29 -0.29 -0.29 -0.28 -0.26 -0.22 -0.19 -0.14 -0.12
R9 -0.29 -0.29 -0.29 -0.29 -0.30 -0.31 -0.30 -0.29 -0.26 -0.25 -0.23 -0.22
R10 -0.29 -0.29 -0.30 -0.31 -0.32 -0.33 -0.33 -0.32 -0.31 -0.30 -0.29 -0.29
R11 -0.22 -0.23 -0.25 -0.26 -0.29 -0.30 -0.31 -0.30 -0.29 -0.29 -0.29 -0.29
R12 -0.12 -0.14 -0.19 -0.22 -0.26 -0.28 -0.29 -0.29 -0.29 -0.29 -0.30 -0.31
C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24
R1 -0.33 -0.32 -0.31 -0.30 -0.29 -0.29 -0.27 -0.24 -0.19 -0.15 -0.03 0.12
R2 -0.31 -0.30 -0.29 -0.29 -0.29 -0.29 -0.28 -0.26 -0.22 -0.19 -0.14 -0.12
R3 -0.29 -0.29 -0.29 -0.29 -0.30 -0.31 -0.30 -0.29 -0.26 -0.25 -0.23 -0.22
R4 -0.29 -0.29 -0.30 -0.31 -0.32 -0.33 -0.33 -0.32 -0.31 -0.30 -0.29 -0.29
R5 -0.22 -0.23 -0.25 -0.26 -0.29 -0.30 -0.31 -0.30 -0.29 -0.29 -0.29 -0.29
R6 -0.12 -0.14 -0.19 -0.22 -0.26 -0.28 -0.29 -0.29 -0.29 -0.29 -0.30 -0.31
R7 0.12 -0.03 -0.15 -0.19 -0.24 -0.27 -0.29 -0.29 -0.30 -0.31 -0.32 -0.33
R8 -0.03 0.12 0.12 -0.03 -0.15 -0.19 -0.22 -0.23 -0.25 -0.26 -0.29 -0.30
R9 -0.19 -0.15 -0.03 0.12 0.12 -0.03 -0.12 -0.14 -0.19 -0.22 -0.26 -0.28
R10 -0.27 -0.24 -0.19 -0.15 -0.03 0.12 0.12 -0.03 -0.15 -0.19 -0.24 -0.27
R11 -0.28 -0.26 -0.22 -0.19 -0.14 -0.12 -0.03 0.12 0.12 -0.03 -0.15 -0.19
R12 -0.30 -0.29 -0.26 -0.25 -0.23 -0.22 -0.19 -0.15 -0.03 0.12 0.12 -0.03
El vector de integrales de dominio con el término de generación da como
resultado:
-40.80
-33.65
-33.65
-40.78
-33.65
-33.65
-40.80
-33.65
-33.65
-40.78
-33.65
-33.65
-23.40
-23.40
-23.40
-23.40
4.5.3 Programación
qd qa
u
Gi+1 Gi
SUBROUTINE ElementosFrontera
INTEGER nn,I,J,nNodo
WRITE(*,*) "Elementos Frontera"
ALLOCATE(H(nnf,nnf),G(nnf,nnf*2),A(nnf,nnf),F(nnf,nnf*2),B(nnf),C(nnf),X(nnf),U(nnf*2),Q(nnf*2))
ALLOCATE(Conexion(nnf,2),D(nnf+nni))
SUBROUTINE MATRICES
INTEGER Nodo,Elem,I,prmElem
H = 0.0
G = 0.0
¡ Calcular los elementos de la matriz H
DO Nodo = 1,nnf
DO Elem = 1,nef
IF (Nodo .NE. Elem) THEN
H(Nodo,Elem) = CalcularHij(Nodo,Elem,nef)/2
END IF
END DO
! Calcular elemento diagonal de la matriz H
H(Nodo,Nodo) = CalcularHii(Nodo,nef)
END DO
CALL ImprimirMatriz(H)
! Calcular los elementos de la matriz G
DO Nodo = 1,nnf
DO Elem = 1,nef
!IF (Nodo .NE. Elem) THEN
G(Nodo,Elem*2-1) = IntegralG1(Nodo,Elem)
G(Nodo,Elem*2) = IntegralG2(Nodo,Elem)
!END IF
END DO
END DO
CALL ImprimirMatriz(G)
CALL IntegralesArea
CALL CalcularMatricesAF
END SUBROUTINE MATRICES
La función CalcularHii calcula los valores de la diagonal principal de la matriz H mediante
la suma de todos los valores de la fila que no pertenecen a la diagonal.
REAL FUNCTION CalcularHii(I,prm_nef)
INTEGER, INTENT(IN) :: I
INTEGER, INTENT(IN) :: prm_nef
INTEGER prmNodo,prmElem
REAL fValor
fValor = 0.0
DO prmElem = 1,prm_nef
IF (prmElem .NE. I) THEN
fValor = fValor + H(I,prmElem)
END IF
END DO
CalcularHii = -fValor
END FUNCTION CalcularHii
∂u * −> X (ε ) − X I Y (ε ) − Y I
q* = = ∇ u * • n = − ,− ⋅ (Y A − YB , X B − X A )
2π ⋅ r (ε ) 2π ⋅ r (ε )
−> 2 2
∂n
Los arreglos xf y yf son variables globales que indican las coordenadas x y y del nodo.
Γ ' (ε ) = ( X B − X A ) 2 + (YB − YA )2
1
2
1
1
∫Γ 2 (1 − ε ) ln
1
2
( X B − X A )2 + (YB − YA )2 dε
( X (ε ) − X I ) + (Y (ε ) − YI )
2 2
REAL FUNCTION IntegralG1(prmNodo,prmElem)
INTEGER, INTENT(IN) :: prmNodo,prmElem
INTEGER I,J
REAL f1,f2,f3,f4,fResultado
IntegralG1 = 0.0
f1 = 0.0
f2 = 0.0
f3 = 0.0
f4 = 0.0
fResultado = 0.0
DO I = 1,4
f1 = fPhi1(PGauss(I))
f2 = fURadial(prmNodo,prmElem,PGauss(I))
f3 = FPeso(I)
f4 = fJacobiano(prmElem)
fResultado = (f1*f2*f3*f4)
IntegralG1 = IntegralG1 + fResultado
END DO
END FUNCTION IntegralG1
La función IntegralG2 corresponde a la integral de frontera, evaluada mediante el uso de
integración gaussiana de cuatro puntos.
1
∫ (φ (ε )) ln r(ε ) Γ (ε ) dε
´'
2
Γ
1
u * (ε ) =
1
ln
2π ( X (ε ) − X I )2 + (Y (ε ) − YI )2
SUBROUTINE CalcularMatricesAF
INTEGER Actual,Anterior,nElem,nNodo, I,J
A = 0.0
F = 0.0
!A = H
!F = G
! Ab = c = FV
DO nElem=1,nef
nNodo = nElem
Actual = nElem*2-1
IF (Actual .EQ. 1) THEN
Anterior = nef*2
ELSE
Anterior = nElem*2-2
END IF
!U(nNodo) Conocido, Q(Actual) Desconocido, Q(Anterior) Desconocido
IF (CF(Actual) .EQ. 0 .AND. CF(Anterior) .EQ. 0) THEN
U(nNodo) = VF(Actual)
DO J=1,nnf
A(J,nElem) = -G(J,Actual) -G(J,Anterior)
F(J,Actual) = -H(J,nElem)
END DO
END IF
END DO
!Calcular vector c
WRITE(Salida,*) "Vector c"
DO I=1,nnf
c(I) = 0.0
DO J=1,nef*2
c(I) = c(I) + F(I,J)*VF(J)
END DO
c(I) = c(I) - D(I)
WRITE(Salida,*) c(I)
END DO
b=c
END SUBROUTINE CalcularMatricesAF
En la subrutina INTEGRALESAREA se calculan los valores correspondientes a la integral
de dominio,
M
r
Di = ∫ bu * d Ω = ∑ ∑ bu * Ae
Ω e=1 k =1
Para lo cual se evalúa la función u * utilizando integración gaussiana de siete puntos. NN
es el total de nodos del sistema.
SUBROUTINE INTEGRALESAREA
INTEGER Nodo1,Nodo2,Nodo3,K,PG,I
REAL XA,XB,XC,YA,YB,YC,XI,YI,XP,YP,IntegralDominio
REAL C1,C2,C3,DX,DY,R,LE,LJ
!Calcular area celdas internas
WRITE(Salida,*) "Area Celdas"
DO K = 1,nci
AreaCelda(K) = fCalcularAreaCelda(K)
WRITE(Salida,*) K," ",AreaCelda(K)
END DO
DO I = 1,nn
!Integración sobre todo el dominio desde el punto i
XI = xf(I)
YI = yf(I)
IntegralDominio = 0.0
DO K=1,nci
!Nodo1,Nodo2,Nodo3 Conectividad de la celda
!XA,XB,XC,YA,YB,YC Coordenadas de los vértices de las celdas
Nodo1 = NodosDeCeldas(K,1)
Nodo2 = NodosDeCeldas(K,2)
Nodo3 = NodosDeCeldas(K,3)
XA = xf(Nodo1)
XB = xf(Nodo2)
XC = xf(Nodo3)
YA = yf(Nodo1)
YB = yf(Nodo2)
YC = yf(Nodo3)
DO PG = 1,7
C1 = PGauss7(PG,1)
C2 = PGauss7(PG,2)
C3 = PGauss7(PG,3)
! XY YP Coordenadas del punto de integración
XP = XA*C1 + XB*C2 + XC*C3
YP = YA*C1 + YB*C2 + YC*C3
! DX, DY Componentes de R
DX = XI - XP
DY = YI - YP
R = SQRT(DX*DX + DY*DY)
IntegralDominio = IntegralDominio - FPeso7(PG)*
AreaCelda(K)*ALOG(1.0/R)*Constante/(2.0*PI)
END DO
END DO
c i u i = ∫ qu * dΓ − ∫ uq * dΓ − ∫ bu *dΩ
Γ Γ
ui = ∑G ij
q j − ∑ H ij u j − D i
j =1
Esta se cumple para cada punto interior, puesto que es valida para cada punto del
dominio.
SUBROUTINE CalcularPuntosInternos
INTEGER I,J
REAL G,H
G = 0.0
H = 0.0
DO I = NNF+1,NNF+NNI
U(I) = 0.0
DO J = 1,NNF
U(I) = U(I) - (IntegralG1(I,J)*Q(J*2-1) +
IntegralG2(I,J)*Q(J*2)) + (CalcularHij(I,J,nef)/2)*U(J)
END DO
U(I) = U(I) + D(I)
WRITE(Salida,*) I, U(I)
END DO
En la tabla siguiente se muestra el resumen de los resultados obtenidos por cada método.
Metodo FDM FVM FEM BEM ANSYS 8.0
Nodo T T T Q T Qd Qa T
1 300.00 300.00 300.00 -53.30 300.00 10.00 -57.45 300.00
2 200.00 200.00 200.00 198.76 10.00 10.00 197.57
3 100.00 100.00 100.00 98.01 10.00 10.00 97.57
4 0.00 0.00 0.00 43.30 0.00 42.74 10.00 0.00
5 0.00 0.00 0.00 120.00 0.00 61.94 61.94 0.00
6 0.00 0.00 0.00 120.00 0.00 61.97 61.97 0.00
7 0.00 0.00 0.00 46.70 0.00 10.00 42.66 0.00
8 100.00 100.00 100.00 98.02 10.00 10.00 97.57
9 200.00 200.00 200.00 198.75 10.00 10.00 197.57
10 300.00 300.00 300.00 -56.70 300.00 -57.37 10.00 300.00
11 300.00 300.00 300.00 -80.00 300.00 -39.63 -39.63 300.00
12 300.00 300.00 300.00 -80.00 300.00 -39.60 -39.60 300.00
13 210.00 210.00 210.00 210.39 209.65
14 110.00 110.00 110.00 109.77 109.65
15 110.00 110.00 110.00 109.77 109.65
16 210.00 210.00 210.00 210.39 209.65
Se observa que los valores hallados para la temperatura coinciden. En los métodos de
diferencias y volúmenes finitos solo se obtuvieron valores para la temperatura, los valores
para los flujos de calor se deben hallar mediante un post procesamiento. En el método de
elementos finitos se calcularon los valores faltantes no incluidos en las condiciones de
frontera. En el método de elementos de frontera se calcularon los valores desconocidos
para los nodos de frontera (Del 1 al 12): temperatura del nodo, calor en el nodo del
elemento anterior, calor en el nodo del elemento posterior. Para obtener los valores de
temperatura en los nodos interiores (Del 13 al 16) se realizo un cálculo posterior.
Para verificar si los resultados son consistentes se debe hacer un balance de calor en los
distintos modelos. El calor ingresa al sistema por dos medios por la frontera oeste (W)
que tiene una temperatura de 300° C y por generación de calor en su interior. El calor sale
por todas las demás fronteras (S, E, N) .
Para el método de los elementos finitos se tiene el siguiente resultado:
20 20 20
-56.7 10 9 8 7 46.7
T = 300 °C B= -180 T = 0 °C
-53.3 1 2 3 4 43.3
20 20 20
10 10 10 10 10 10
-57.37 10 9 8 7 42.66
-57.45 1 2 3 4 42.74
10 10 10 10 10 10
Los resultados obtenidos por elementos finitos y por elementos de frontera son
consistentes para cada método y entre sí.
5 ESTRUCTURA DEL PROGRAMA
En este aparte solo se presenta el código compartido por los distintos métodos. El detalle
de cada método se puede consultar en la sección dedicada a cada método en capítulos
anteriores.
Modulo
Globales
Modulo
Lectura
Modulo
Principal
Modulo
Rutinas
Comunes
En este esquema se aprecia que existe un solo modulo de variables globales y un solo
modulo de lectura. Cada método se implemento en un modulo independiente. Las rutinas
que pueden ser utilizadas por dos o mas módulos se agruparon en un solo modulo de
rutinas comunes.
5.2 MODULO GLOBALES
En este modulo, se declaran todas las variables y constantes utilizadas por el programa,
entre ellas:
NN Numero Nodos = NNF + NNI
NNF Numero Nodos Frontera
NNI Numero Nodos Internos
NEF Numero Elementos Frontera
NCI Numero Celdas Internas
XF Vector coordenadas X de nodos
YF Vector c oordenadas Y de los nodos
Conexion Arreglo bidimensional indica la conexión de los elementos de
frontera.
NodosDeCeldas Arreglo indica los nodos que conforman una celda interna.
AreaCelda Vector que indica el área de las celdas internas
U Vector para almacenar el valor del Potencial
Q Vector para almacenar el valor de la derivada del potencial o flujo
Las variables son declaradas en este modulo pero solo se le asigna espacio y son
iniciadas con su valores antes de ser utilizadas. Las variables que contienen datos de
entrada son iniciadas en el modulo de lectura, las que contienen resultados son iniciadas
en el modulo respectivo, para lo cual primero se les debe asignar espacio en memoria
utilizando la instrucción ALLOCATE y a continuación se inician sus valores según se
requiera.
La rutina de lectura debe estar en concordancia con el formato del archivo de entrada de
datos, el cual es un archivo texto con el nombre Problema.inp. El archivo de entrada tiene
el siguiente formato que es el mismo para todos los métodos:
Primera línea: b Valor constante de generación
Segunda línea: NF Número nodos de frontera
NNI Numero nodos internos
NEF Número de líneas de frontera
NCI Número de celdas internas o elementos
Tercera línea: Línea de encabezados para las líneas siguientes
Siguientes NN líneas, una línea por cada nodo con la siguiente información:
P Numero nodo
S Nodo Sur
E Nodo Este
N Nodo Norte
W Nodo Oeste
X Coordenada X
Y Coordenada Y
C Código condición del nodo
V Valor condición nodo
Observe que NN se calcula con los valores leídos en la segunda línea: NN = NNF + NNI
Siguientes NCI líneas. Una línea por cada celda interna o elemento:
Numero de la celda o elemento
Primer nodo local de la celda o nodo 1 o nodo i
Segundo nodo local de la celda o nodo 2 o nodo j
Tercer nodo local de de la celda o nodo 3 o nodo k
Siguientes 2*NEF líneas. Dos líneas por cada elemento de frontera para indicar la
condición frontera y su valor para cada elemento de frontera:
Código de la condición
Valor de la condición
Cada dato dentro del archivo de entrada esta separado por tabuladores y cada línea esta
separada de la siguiente por un retorno de línea.
SUBROUTINE LECTURA
USE GLOBALES
INTEGER nNodo,nElem
Entrada = 5 ! Archivo de entrada
Salida = 6 ! Archivo de salida
READ(Entrada,*) Constante,NNF,NNI,NEF,NCI
WRITE(Salida,"(F7.3,4I4)") Constante,NNF,NNI,NEF,NCI
READ(Entrada,*) !Saltar linea de encabezados
NN = NNF + NNI
ALLOCATE(S(nn),E(nn),N(nn),W(nn),YF(nn),XF(nn),Condicion(nn),V(nn))
ALLOCATE(NodosDeCeldas(NCI,3),AreaCelda(NCI) ,CF(2*NNF),VF(2*NNF))
READ(Entrada,*) (S(I),S(I),E(I),N(I),W(I),XF(I),YF(I),Condicion(I),V(I),I=1,nn)
WRITE(Salida,"(5I4,2F7.2,I3,F7.2)")
(I,S(I),E(I),N(I),W(I),XF(I),YF(I),Condicion(I),V(I),I=1,nn)
PROGRAM Principal
USE Globales
USE Lecturas
USE MetodoDiferencias
USE MetodoVolumenes
USE MetodoElementos
USE MetodoFrontera
USE Rutinas
IMPLICIT NONE
INTEGER Opcion
PI = 3.141592654
Opcion = "0"
CALL Lectura
DO WHILE (Opcion<>5)
WRITE(*,*) "METODOS FINITOS"
WRITE(*,*) "1-Diferencias Finitas"
WRITE(*,*) "2-Volúmenes Finitos"
WRITE(*,*) "3-Elementos Finitos"
WRITE(*,*) "4-Elementos de Frontera"
WRITE(*,*) "5-Salir"
WRITE(*,*) "Elija una opción"
READ(*,*) Opcion
Función fCalcularAreaCelda(nCelda)
Esta función recibe el código o número de la celda (nCelda). Con este valor mediante el
uso de la función NodosDeCelda() determina los tres nodos que conforman la celda y
mediante la magnitud del producto cruz de dos vectores determinados por los tres puntos
calcula el área de la celda. Esta es una propiedad muy conocida del producto cruz.
Función fCalcularLongitud(nNodo1,nNodo2)
Esta función recibe dos puntos y calcula la distancia entre ellos utilizando la formula de la
distancia entre dos puntos.
Subrutina ImprimirMatriz(Matriz)
Utiliza la función WRRRL de la librería IMSL de Fortran. Esta función permite imprimir la
matriz en el archivo de salida utilizando un formato de presentación compacto, legible y
organizado.
Subrutina EnteroATexto(Numero,Texto)
Esta subrutina convierte un numero entero en una cadena de texto que puede ser
concatenada e impresa con otro texto para propósitos de presentación de los datos de los
encabezados de la matriz impresa.
6 CONCLUSIONES
Aunque la teoría de los métodos finitos es una campo de las matemáticas cuya
elaboración tomo aproximadamente dos siglos, su aplicación prác tica a la solución de
problemas de ingeniería es relativamente reciente y continúa aumentando el número y
variedad de problemas que se pueden resolver con ellos.
Uno de los aspectos que más dificultad ofrece al escribir los programas para cada uno de
los métodos es tener en cuenta apropiadamente las condiciones de frontera de forma que
estas se puedan procesar automáticamente. Esta dificultad debe ser tenida en cuenta al
definir el formato del archivo de entrada del problema, para lo cual se debería definir un
estándar que pueda ser procesado por varios métodos.
Para modelar, simular, validar e interpretar los resultados de un sistema cada sistema se
requiere entender el comportamiento físico subyacente del mismo.
Para cada una de las etapas de solución de problemas de ingeniería mediante el uso de
métodos finitos: Preparación, solución del sistema y procesamiento posterior existen
programas de aplicación que se pueden utilizar independientemente. Lo cual diminuye el
tiempo total para la solución del problema lo que permite dedicar mayor tiempo y esfuerzo
al análisis y optimización del sistema.
7 BIBLIOGRAFIA
AKIN, J.E., Finite Element Análisis With Error Estimators. Butterwoth Heinemann: Elservier,
2005. 447p.
BUCHANAN, George R. Finite element análisis. Theory and problems. Estados Unidos:
McGrawHill, 1994. 280p.
CHAPRA, Steven C., CANALE, Raymond P. Métodos numéricos para ingenieros. 3ed. Mexico:
Mc Graw Hill, 1999. 982p.
FAGAN, M. J., Finite element analysis. Theory and practice. England: Longman. 1992. 315p.
FERZIGER, Joel H., PERIC, Milovan. computational methods for fluid dynamics. Germany:
Springer, 1996. 364p.
LEWIS, R.W. MORGAN, K., THOMAS, H.R., SEETHARAMU, K.N. The finite element method
in heat transfer a nalysis. . England: John Wiley & Sons , 1996. 279p.
NORRIE, Douglas H., DE VRIES, Gerard. The finite element method. Fundamentals and
applications. . New Yorik: Academic Press, 1973. 322p.
ZIENKIEWICZ, O. C. El método de los elementos finitos. . España: Reverte, S.A, 1980. 484p.
ZILL, Dennos G., CULLEN, Michael R. Ecuaciones diferenciales con problemas de valores en la
frontera. 5ed. Boston: Thomson Learning, 2002. 631p.