monografia metodos finitos - grupo epm
Post on 16-Oct-2021
10 Views
Preview:
TRANSCRIPT
METODOS FINITOS
JOSE FERNANDO BOSCH MORENO
Trabajo de grado para optar al título de: Especialista en Modelación, Simulación,
y Optimización de Sistemas
Director WHADY FELIPE FLORES ESCOBAR
Ph.D Mecánica Computacional
UNIVERSIDAD PONTIFICIA BOLIVARIANA INSTITUTO DE ENERGIA Y TERMODINAMICA
MEDELLIN 2006
CONTENIDO
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 dominio 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 condiciones. .................................................................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
En la solución de problemas de ingeniería se utilizan técnicas de modelación,
simulación y optimización de sistemas mediante la aplicación de métodos
numéricos en programas de computador. Los métodos numéricos para la
modelación y simulación de sistemas físicos que se tratan en este trabajo son
diferencias finitas (FDM), volúmenes finitos (FVM), elementos finitos (FEM) y
elementos de frontera (BEM).
En este trabajo se pretende implementar un programa de computador para cada
uno de los métodos mencionados y resolver un mismo problema con cada uno de
los métodos. Este trabajo permitirá entender el proceso de formulación de cada
método, como se aplica a un problema especifico y como se puede programar en
un lenguaje de computador.
Aunque en la formulación de los distintos métodos se mostrarán sus fundamentos
matemáticos básicos, no se pretende realizar un análisis matemático completo el
cual incluiría solución analítica, análisis de error y de convergencia. Para el autor,
el propósito de este trabajo esta en entender cada método, sus fundamentos,
similitudes, diferencias, aplicación y forma de programación.
2 ANTECEDENTES
A continuación se reseñan algunos hechos importantes en la historia de los métodos
finitos.
Leonhard Euler (1707-1783) desarrolla un método de diferencias finitas conocido como
método de Euler para hallar la solución aproximada de ecuaciones diferenciales. Sentó
las bases del calculo variacional inventado por los hermanos Bernoulli.
George Green (1793-1841), en 1828 publicó An Essay on the Application of Mathematical
Análisis to the Theories of Electricity and Magnetism . En este ensayo se presenta por
primera vez la expresión “función de potencial” y se presentan las tres identidades del
Teorema de Green, el cual fue utilizado inicialmente para resolver problemas de
electroestática y magnetismo de forma tan exitosa que su uso se extendió para resolver
muchos otros problemas físicos en las áreas de la acústica, elasticidad, dilatación y otras.
Carl Friedrich Gauss (1777-1855), a la edad de 22 años publicó su tesis doctoral
“Fundamental Theorem of Álgebra”, inventó el método de los mínimos cuadrados y lo
utilizó para calcular las orbitas de los planetas. Hizo aportes en la teoría matemática,
electromagnética, óptica, probabilidad, astronomía y geofísica.
Boris Grigorievich Galerkin (1871-1945), desarrolló un Método para realizar
integraciones aproximadas de ecuaciones diferenciales, el cual es conocido como Método
de Galerkin. En 1915 publicó su método del elemento finito basado en el Método de
Galerkin.
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.
El profesor Eduard Kansa ha escrito numerosos artículos sobre la solución de
ecuaciones diferenciales mediante métodos numéricos sin grilla basados en funciones de
base radial. A la fecha continua expandiéndose las aplicaciones de los métodos finitos y
anualmente se publican numerosos artículos sobre el tema.
3 CONCEPTOS
3.1 FUNDAMENTOS MATEMÁTICOS
3.1.1 Operadores Gradiente
∧∧∧
∂∂
+∂∂
+∂∂
=∇ kzf
jyf
ixf
f Con f función escalar
Divergencia
zf
y
f
xf
F zyx
∂∂
+∂
∂+
∂∂
=⋅∇ Con F función vectorial
Laplaciano
2
2
2
2
2
22
zf
y
f
xf
f zyx
∂∂
+∂
∂+
∂∂
=∇ Con f función escalar
3.1.2 Series de Taylor.
Las series de Taylor son importantes en los métodos de Diferencias Finitas y de
Volúmenes Finitos. Cuando solo se toman los primeros términos de una serie de Taylor
se denominan polinomios de Taylor. Una serie de Taylor permite aproximar el valor de
una función en un punto cercano x alrededor de un punto conocido 0x mediante una
suma de términos obtenidos de la forma:
( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ...!
...!3!2
)( 3'''
2''
' +−++−+−+−+= no
on
oo
oo
ooo xxn
xfxx
xfxx
xfxxxfxfxf
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.
Se tiene la siguiente expresión inicial:
∫∫Ω ∂
∂dxdy
xψ
φ
Mediante la regla de integración por partes:
( ) ( ) ∫∫ −−= ==
b
aaxbx
b
avduuvuvudv
La integral interna se puede expresar de la siguiente forma:
( ) ( )∫ ∫ ∂∂
−−=∂
∂==
b
a
b
aaxbx dxx
dxx
ψφ
φψφψψ
φ
Reemplazando en la expresión inicial como se observa a continuación:
( ) ( )[ ] dydxx
dydxdyx
d
c
b
a
d
c axbx ∫ ∫∫∫∫ ∂∂
−−=∂
∂==
Ω
ψφ
φψφψψ
φ
Sea Γ el contorno o frontera del dominio Ω , para un diferencial de frontera Γd se tiene:
Γ=Γ⋅=>−∧>−
dndindy x
El término ( ) ( )[ ]∫ == −d
c axbx dyφψφψ se puede expresar como una integral de línea sobre la
frontera Γ así: ( ) ( )[ ] Γ⋅=−∧>−
Γ== ∫∫ dindy
d
c axbx φψφψφψ y la expresión general queda:
dydxx
dindxdyx
d
c
b
a∫ ∫∫∫∫ ∂∂
−Γ⋅=∂
∂ ∧>−
ΓΩ
ψφ
φψψ
φ
Para la variable y se tiene:
dydxy
djndxdyy
d
c
b
a∫ ∫∫∫∫ ∂∂
−Γ⋅=∂
∂ >−>−
ΓΩ
ψφ
φψψ
φ
Sumando las dos ecuaciones anteriores:
dydxyx
djnindxdyyx
d
c
b
a∫ ∫∫∫∫
∂∂+
∂∂−Γ
⋅+⋅=
∂∂+
∂∂
Γ
>−>−>−>−
Ω
ψφψφφψψφψφ
Partiendo del Teorema de la Divergencia de Gauss se puede obtener la primera identidad
o Teorema de Green y la segunda identidad o Teorema Simétrico. Sea el siguiente
Teorema de Gauss donde F es una función vectorial.
∫∫∫∫∫>−
⋅=⋅∇SV
dSnFdVF
Se toma ψφ∇=F con ψφ , funciones escalares y se aplica la propiedad de la
divergencia de un escalar por un vector:
( ) ( ) ( )ψφψφψφψφψφ 2∇+∇⋅∇=∇⋅∇+∇⋅∇=∇⋅∇
Se reemplaza en el Teorema de Gauss y se obtiene la expresión
( )( ) ( )∫∫∫∫∫>−
⋅∇=∇+∇⋅∇SV
dSndV ψφψφψφ 2
Conocida como la primera identidad de Green.
Realizando el mismo procedimiento con φψ∇=F se obtiene:
( )( ) ( )∫∫∫∫∫>−
⋅∇=∇+∇⋅∇SV
dSndV φψφψψφ 2
Se restan las dos últimas ecuaciones y se obtiene el teorema simétrico de Green.
( ) ( )( ) ( )∫∫∫∫∫>−
⋅∇−∇=∇−∇SV
dSndV φψψφφψψφ 22
3.1.4 Integración Gaussiana.
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.
( ) ( ) ( ) ∑∫=−
=+++≅=npg
iiinn wffwfwfwdfI
12211
1
1
)(....)( ξξξξξξ
Donde:
La variable npg indica el número de puntos de Gauss.
Las variables iξ y iw representan respectivamente los puntos de Gauss y los pesos de
Gauss.
Para el caso en que se requiera integrar una función con respecto a x entre límites
generales a y bse puede emplear el cambio de variable:
( ) ( )ξξ ++−= 12
12
bax
( ) ( ) ( )( )∫∫−
−=
1
12ξξ dxf
abdxxf
b
a
Un tratamiento más profundo de este tema se puede consultar en textos de métodos
numéricos (Ver CHAPRA).
3.2 CONCEPTOS FÍSICOS En esta parte se presentan los conceptos físicos fundamentales asociados a los
problemas de ingeniería que se pretenden resolver mediante los métodos numéricos
finitos.
3.2.1 Propiedades específicas
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
m3/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:
[ ]33 mkgm
kg φφρφ == Donde φ conserva sus unidades originales.
Entonces la cantidad total dada de una propiedad F se puede expresar de varias formas:
φm=Φ Para una masa m dada.
dVV∫=Φ ρφ Para un volumen dado.
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.
( )( )AreaVelocidadFlujo coVolumentri =
( )( )( )AreaVelocidadDensidadFlujomasico =
( )( )( )AreaVelocidadricaiónVolumetConcentracFlujoGeneral =
( )( )( )( )AreaVelocidadDensidadFlujo opiedad φ=Pr
La concentración volumétrica se refiere a cualquier propiedad específica φ que sea de
interés.
Si se tiene un campo de velocidad sobre una frontera Γ el flujo sobre la frontera esta
dado por la integral:
Γ⋅=Γ= ∫∫Ω
>−
Γ
dndFlujo noVolumetric υυ
Γ= ∫Γ
dFlujo nMásico ρυ
Donde nυ es la componente normal de la velocidad sobre la frontera Γ .
Para una propiedad especifica su flujo masico esta dado por:
Γ= ∫Γ
dFlujo nMásico ρφυ
3.3 FUNCIONES DE FORMA E INTERPOLACIÓN Los métodos numéricos se refieren a las funciones de forma e interpolación en muchos
casos de forma indistinta. La diferencia entre estos términos puede ser sutil y en algunos
casos contextos pueden ser equivalentes, sin embargo, son conceptos distintos. Debido
al uso común de estas funciones en los métodos numéricos se explicará la diferencia
entre estas y se mostrará dos casos básicos. En términos de solución numérica de
ecuaciones diferenciales, se puede decir que las funciones de forma se utilizan para
aproximar la solución de la ecuación diferencial, mientras que las funciones de
interpolación se utilizan para calcular el valor de una variable entre valores conocidos.
Las funciones de forma se utilizan cuando se aproxima una función desconocida mediante
una combinación de funciones se trata de que la forma de la combinación de funciones se
asemeje a la forma de la función desconocida en un dominio dado.
Sea la función desconocida f(x) la cual será aproximada por:
( ) nnaaaxf ϕϕϕ +++= ...2211
Las funciones nϕϕϕ ,...,, 21 son llamadas funciones de forma.
Las constantes naaa ,...., 21 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.
Una función de interpolación supone un comportamiento de la variable entre los extremos
del dominio. Este comportamiento se puede suponer:
a) Constante, El valor de la función en cada punto del dominio es igual al valor de un
punto conocido en el dominio.
b) Lineal, El valor de la función en cada punto del dominio varía linealmente entre los
valores conocidos de dos puntos en el dominio.
c) Polinomial. En general, se utiliza la interpolación con polinomios para determinar
los valores de la función en cualquier parte del dominio. Sin que esto quiera decir,
que no se puedan utilizar funciones de otro tipo para interpolar.
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.
3.3.1 Interpolación lineal
Figura 1. Interpolación lineal.
Se utiliza un polinomio de primer grado para aproximar el comportamiento de la función U:
xaaxu 10)( +=
La función debe pasar a través de los valores de )(xu en los puntos 1x y 2x , entonces se
debe cumplir:
1101 xaau +=
2102 xaau +=
Resolviendo este sistema se obtiene:
12
12210 xx
xuxua
−−
= 12
121 xx
uua
−−
=
Sustituyendo 0a y 1a en xaaxu 10)( += se tiene:
xxxuu
xxxuxu
xu12
12
12
1221)(−−
+−−
=
Reorganizando los términos:
2211212
11
12
2
12
121221)( uNuNuxxxx
uxxxx
xxxuxuxuxu
xu +=−
−+
−−
=−
−+−=
Donde 12
21 xx
xxN
−−
= y 12
12 xx
xxN
−−
= son las funciones de interpolación.
3.3.2 Interpolación lineal bidimensional
Figura 2. Interpolación lineal bidimensional.
ycxccyxU 321),( ++= . En forma matricial: [ ]
=
3
2
1
1ccc
yxU
Para cada punto se debe cumplir:
131211 ycxccu ++= 232212 ycxccu ++= 333213 ycxccu ++=
Con lo cual se obtiene el sistema:
=
3
2
1
3
2
1
33
22
11
111
uuu
ccc
yxyxyx
Por lo tanto: [ ] UCX =
Resolviendo se obtiene: [ ] UXC 1−=
Dado que ( ) [ ]
=
3
2
1
1,
c
cc
yxyxU se tiene: ( ) [ ][ ]
= −
3
2
111,
u
uu
XyxyxU
Haciendo [ ] [ ][ ] 11 −= XyxN Es decir [ ] [ ][ ] 1321 1 −= XyxNNN
Resolviendo el sistema anterior se obtiene:
( ) ( ) ( )A
xxyyyxyxyxN
223322332
1
−+−+−=
( ) ( ) ( )A
xxyyyxyxyxN
231133113
2
−+−+−=
( ) ( ) ( )A
xxyyyxyxyxN
212211221
3
−+−+−=
Donde: ( ) ( ) ( ) [ ]XyyxyyxyyxA det2 213132321 =−+−+−=
Se pueden obtener funciones de interpolación generalizadas a partir de los polinomios de
Lagrange:
( ) Χn
ijj ji
ji xx
xxxL
≠= −
−=
0
Para un tratamiento detallado sobre este tema se puede consultar el texto de O.C.
Zienkiewicz.
3.4 MÉTODO DE GALERKIN.
El método de Galerkin es un método para resolver ecuaciones diferenciales. Se basa en
la integración de los residuos ponderados sobre un intervalo. Este método se fundamenta
en la teoría de funciones ortogonales.
Uno de los métodos para resolver ecuaciones diferenciales consiste en suponer que su
solución se puede aproximar mediante los términos de una suma de funciones. El método
de Galerkin se aplica de la siguiente manera:
Por ejemplo sea la siguiente ecuación:
bu =∇2
Se elige una función de la forma: nnyxu φαφαφα +++=−
...),( 2211 que aproxima u .
Donde los coeficientes nααα ,...,, 21 son coeficientes por determinar.
Las funciones nφφφ ,...,, 21 llamadas funciones de forma, deben satisfacer las condiciones
de frontera impuestas al problema.
Como ( )yxu ,_
aproxima la solución de la ecuación, entonces Rbu =−∇−
2 es igual aun
residuo R diferente de cero. Si la función representa adecuadamente la solución este será
muy cercano a cero y para algunos casos podrá ser cero.
A continuación se pondera el residuo R multiplicándolo por una función de peso iφ y se
integra sobre el dominio.
0_
2 =Ω
−∇=Ω ∫∫
ΩΩ
dbudR ii φφ Para i = 1,2, …, n.
Por esta razón en un método de residuos ponderados.
Por cada función de peso se obtiene una ecuación integral así:
( )( ) 0... 122112 =Ω−+++∇∫
Ω
dbnn φφαφαφα
( )( ) 0... 222112 =Ω−+++∇∫
Ω
dbnn φφαφαφα
…
( )( ) 0...22112 =Ω−+++∇∫
Ω
db nnn φφαφαφα
Con lo cual después de realizar las operaciones necesarias se obtiene un sistema de
ecuaciones algebraicas simultaneas que puede ser resuelto por cualquier procedimiento
estándar, para hallar los coeficientes: nααα ,...,, 21 .
El método de Galerkin es solo uno de los métodos residuales que pueden ser aplicados.
Entre otros métodos residuales se mencionan como referencia el método de colocación,
el método de mínimos cuadrados y el método de subdominios. Ver KAPLAN.
3.5 ECUACIONES DE LAPLACE Y POISSON
El problema del potencial se presenta cuando se requiere resolver problemas de
transferencia de calor, procesos de difusión, movimiento de fluidos, etc. Generalmente
estos problemas se pueden describir mediante la ecuación bu =∇ 2 , la cual es conocida
como ecuación de Poisson. Cuando se tiene el término 0=b , entonces se llama ecuación
de Laplace: 02 =∇ u
La solución teórica de la ecuación de Laplace es sencilla de obtener, mientras que para la
ecuación de Poisson su solución teórica es muy dispendiosa y en muchas ocasiones solo
se puede hallar para casos sencillos. La solución de estas ecuaciones consisten en hallar
el valor del potencial u (sea temperatura, presión, concentración, voltaje, etc.) en cada
punto del espacio para el dominio considerado. Una vez que se conoce el potencial se
puede calcular el flujo correspondiente. A continuación se muestran algunas
transformaciones útiles de la ecuación de Poisson :
bu =∇2 en O (3.5.1)
( ) 02 =Ω−∇∫Ω
wdbu (3.5.2.)
( ) 02 =Ω−Ω∇ ∫∫ΩΩ
bwdwdu (3.5.3.)
Integrando por partes el primer termino utilizando la primera identidad de Green vista en el
numeral 3.1.3 se obtiene:
∫∫∫ΩΓΩ
Ω∇∇−Γ∇=Ω∇ wduudwwdu)( 2 (3.5.4.) sustituyendo en (3.5.3.)
0=Ω−Ω∇∇−Γ∇ ∫∫∫ΩΩΓ
bwdwduudw (3.5.5.)
Reordenando la expresión (3.5.5) se obtiene la ecuación inicial para el desarrollo de los
elementos finitos:
∫∫∫ΩΓΩ
Ω−Γ∇=Ω∇∇ bwdudwwdu (3.5.6.)
Integrando nuevamente por partes el término ∫Ω
Ω∇∇ wdu se tiene:
( ) ( ) Ω∇−Γ∇=Ω∇∇ ∫ ∫∫Γ ΩΩ
udwudwwdu 2 (3.5.7.)
Reemplazando en la ecuación (3.5.5.) se tiene:
( ) ( ) 02 =Ω−Ω∇+Γ∇−Γ∇ ∫∫ ∫∫ΩΓ ΩΓ
bwdudwudwudw (3.5.8.)
La expresión (3.5.8.) es equivalente a la (3.5.3.) por lo que
( ) ( ) ( ) ∫∫ ∫∫∫∫ΩΓ ΩΓΩΩ
Ω−Ω∇+Γ∇−Γ∇=Ω−Ω∇ bwdudwudwudwbwdwdu 22 (35.9.)
Se cancelan los términos iguales a ambos lados
( ) ( ) ( ) Ω∇+Γ∇−Γ∇=Ω∇ ∫ ∫∫∫Γ ΩΓΩ
udwudwudwwdu 22 (3.5.10)
Reorganizando y agrupando se obtiene la segunda identidad de Green:
( ) ( )∫∫ΓΩ
Γ∇−∇=Ω∇−∇ dwuuwdwuuw 22 (3.5.11.)
La cual es el punto de partida para el desarrollo de los métodos de integrales de frontera.
4 MÉTODOS FINITOS
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 solución de problemas mediante técnicas de métodos finitos normalmente existen
varios pasos que son comunes: Preparación del problema (Preprocesamiento), Solución
del sistema (Procesamiento) y Análisis y presentación de resultados (Postprocesamiento)
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.
La preparación del problema tiene como resultado un sistema algebraico de ecuaciones
que sirve como insumo de entrada para el procesamiento o solución del sistema, el cual
se puede realizar por métodos directos o iterativos. Cuando se trata de problemas de
poco tamaño, los métodos directos son inmediatos. Sin embargo para problemas de gran
tamaño a menudo la única alternativa viables son los métodos iterativos. El método de
solución también depende de la forma de almacenamiento de la matriz del sistema
algebraico de ecuaciones resultante. La matriz se puede almacenar en forma compacta o
como una matriz dispersa. El número de variaciones a este respecto resulta muy grande.
En el procesamiento posterior, se toma como insumo la solución obtenida en el paso
anterior y se efectúan cálculos adicionales. Incluso puede repetirse todo el proceso de
solución variando las condiciones para realizar análisis de sensibilidad u optimizar el
sistema. Los sistemas de post procesamiento cuentan con facilidades que permite desde
imprimir un simple reporte con los datos hasta diagramas y visualizaciones animadas y
gráficas para la solución del sistema.
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
El problema de trabajo es el ejemplo que permitirá comparar los distintos métodos. Se
desea determinar la distribución de temperaturas de una placa rectangular metálica en
condiciones de estado estable sometida a condiciones de temperatura y flujo de calor en
sus fronteras. Las dimensiones de la placa son 6.0 m x 6.0 m . El material de la placa es
isotrópico y su coeficiente de conductividad es k = 1.0 KmW ⋅/ . En el lado izquierdo se
tiene una temperatura de 300° C y en el lado derecho 0° C. En la parte superior e inferior
se tiene un flujo de calor de 10.0 mW / . Se puede asumir que la placa tiene una unidad
de profundidad, en cuyo caso el flujo de calor sería 10.0 2/ mW .
q = 10
Placa metalicaT = 300 °C T = 0 °C
b = -5
q = 10(0,0)
(0,6)
(6,0)
(6,6)
Figura 3. Problema de trabajo.
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:
byT
kxT
kyxTk yx =∂∂
+∂∂
=∇ 2
2
2
22 ),( Tal que: 5−=b y 1=== xx kkk
Con condiciones de frontera: 300),0( =yT , 0),6( =yT , 100
=
∂∂
=xyT , 10
6
=
∂∂
=xyT
Para 60 ≤≤ x y 60 ≤≤ y
4.2 DIFERENCIAS FINITAS
4.2.1 Formulación El método de diferencias finitas se basa en asignar puntos espaciados de manera
apropiada sobre el dominio y aplicar las ecuaciones constitutivas correspondientes del
fenómeno a cada punto. El método de diferencias finitas tiene como punto de partida las
series de Taylor. Sea x un punto cercano al punto ix , tal que x = hxi + , y sea ( )xf el
valor de una función en el punto x . Entonces ( )xf se puede aproximar mediante una
serie de Taylor alrededor del punto ix , de la siguiente manera:
( ) ( ) ( ) ( ) ( ) ...!
1...
!31
!21
)( 33221 ++++++=+ ni
niiiii hxf
nhxfhxfhxfxfhxf (1)
Donde ( )ik xf representa la k-esima derivada de la función f(x) evaluada en el punto ix .
Si se evalúa ( )xf en hxx i −= , se obtiene:
( ) ( ) ( ) ( ) ( ) ( ) ...!
1...
!31
!21
)( 33221 +−
++−+−=− ni
nn
iiiii hxfn
hxfhxfhxfxfhxf (2)
Tomando las ecuaciones (1) y (2) hasta el segundo termino se llega a (3) y (4):
( ) ( )hxfxfhxf iii1)( +=+ (3) ( ) ( )hxfxfhxf iii
1)( −=− (4)
Se despeja ( )ixf 1 en (3) y (4) se obtiene:
( ) ( )h
xfhxfxf ii
i
)(1 −+= (5) Ecuación diferencia finita hacia adelante
( ) ( )h
hxfxfxf ii
i
−−=
)(1 (6) Ecuación diferencia finita hacia atrás.
Si se resta (3) y (4) se obtiene:
( ) ( ) ( )hxfhxfhxf iii12=−−+
Despejando ( )ixf 1 :
( ) ( ) ( )h
hxfhxfxf ii
i 21 −−+
= (7) Ecuación diferencia finita central.
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):
( ) ( ) ( ) 221
!21
)( hxfhxfxfhxf iiii ++=+ (8)
( ) ( ) ( ) 221
!21
)( hxfhxfxfhxf iiii +−=− (9)
Sumando (8) y (9):
( ) ( ) ( ) 22)(2 hxfxfhxfhxf iiii +=−++
Despejando ( )ixf 2 se tiene la aproximación de la segunda derivada en diferencias
finitas:
( ) ( ) ( )2
2 )(2h
hxfxfhxfxf iii
i
−+−+=
En el caso de dos dimensiones la ecuación de Laplace es:
0),(2
2
2
22 =
∂∂+
∂∂=∇
yTk
xTkyxTk
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 1=k .
0),(2
2
2
22 =
∂∂+
∂∂=∇
yT
xTyxT
Se aproxima el término 2
2
xT
∂∂
y 2
2
yT
∂∂
mediante diferencias finitas:
( ) ( )22
2 )(2h
hxTxThxTxT iii −+−+
=∂∂
( ) ( )22
2 )(2h
hyTyThyTyT iii −+−+
=∂∂
( ) ( ) ( ) ( )0
)(2)(2222
2
2
2
=−+−+
+−+−+
=∂∂
+∂∂
y
iii
x
iii
hhyTyThyT
hhxTxThxT
yT
xT
( ) ( ) ( ) ( )0
)(2)(222 =
−+−++
−+−+
y
iii
x
iii
h
hyTyThyT
h
hxTxThxT
Para el caso de la ecuación de Poisson:
byT
kxT
kyxTk yx =∂∂
+∂∂
=∇ 2
2
2
22 ),(
Si el material es isotrópico los coeficientes de conductividad térmica son iguales kx = ky y
la ecuación se puede expresar:
kb
yT
xTyxT =
∂∂+
∂∂=∇
2
2
2
22 ),(
Su expresión en diferencias finitas esta dada por:
( ) ( ) ( ) ( )
kb
h
hyTyThyT
h
hxTxThxT
y
yiiyi
x
xiixi =−+−+
+−+−+
22
)(2)(2
Si se toman incrementos hx y hy de igual tamaño h se tiene:
( ) ( ) ( ) ( )kb
hxThyThyThxThxT iiiii2)(4 =−−+++−++
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í:
( )hxx ie += , ( )hxx iw −= , ( )hyy in += , ( )hyy is −= y
( )ee xTT = ( )ww xTT = ( )nn yTT = ( )ss yTT = )( ii xTT =
Entonces para un punto i dado su ecuación sería:
kb
hTTTTT iwnes24 =−+++
4.2.2 Aplicación.
q = 10
T = 300 °C b = -5 T = 0 °C
q = 10
1 432
8 7
6
512
11
10 9
13 14
1516
Figura 4. División del dominio en diferencias finitas.
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.
Las ecuaciones para los nodos son las siguientes:
Nodo 1: 3001 =T Temperatura conocida.
Nodo 2: bhTTTTT wnes2
24 =−+++
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:
qhTT sn =
−2
==> hqTT ns 2*−=
Remplazando Ts en la ecuación inicial del nodo 2:
bhTTTThT wnen2
242*10 =−+++−
Entonces la ecuación para el nodo 2 queda:
hqbhTTTTT wnen 2*4 22 +=−+++
Reemplazando valores:
)2(2*10)5(242 22 +−=−++ TTTT wen
Nodo 3: )2(2*10)5(242 23 +−=−++ TTTT wen Caso similar al del nodo 2.
Nodo 4: 04 =T Temperatura conocida.
Nodo 5: 05 =T Temperatura conocida.
Nodo 6: 06 =T Temperatura conocida.
Nodo 7: 07 =T Temperatura conocida.
Nodo 8: )2(2*10)5(242 28 +−=−++ TTTT wes Caso similar al del nodo 2.
Nodo 9: )2(2*10)5(242 29 +−=−++ TTTT wes Caso similar al del nodo 2.
Nodo 10: 30010 =T Temperatura conocida.
Nodo 11: 30011 =T Temperatura conocida.
Nodo 12: 30012 =T Temperatura conocida.
Nodo 13: bhTTTTT wnes2
134 =−+++
Nodo 14: bhTTTTT wnes2
144 =−+++
Nodo 15: bhTTTTT wnes2
154 =−+++
Nodo 16: bhTTTTT wnes2
164 =−+++
El anterior sistema de ecuaciones produce el siguiente problema matricial:
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T1 300
1 -4 1 0 0 0 0 0 0 0 0 0 2 0 0 0 T2 20
0 1 -4 1 0 0 0 0 0 0 0 0 0 2 0 0 T3 20
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 T4 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 T5 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 T6 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 T7 0
0 0 0 0 0 0 1 -4 1 0 0 0 0 0 2 0 T8 20
0 0 0 0 0 0 0 1 -4 1 0 0 0 0 0 2 T9 20
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 T10 300
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 T11 300
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 T12 300
0 1 0 0 0 0 0 0 0 0 0 1 -4 1 0 1 T13 -20
0 0 1 0 1 0 0 0 0 0 0 0 1 -4 1 0 T14 -20
0 0 0 0 0 1 0 1 0 0 0 0 0 1 -4 1 T15 -20
0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 -4 T16 -20
Figura 5. Sistema matricial para diferencias finitas.
El cual al ser resuelto entrega los siguientes valores para las temperaturas T:
T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16300 200 100 0 0 0 0 100 200 300 300 300 210 110 110 210
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.
El siguiente es el código del programa que implementa el método de las diferencias
finitas:
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
Este se puede obtener de la ponderación de residuos con la función de pesos w = 1 y
aplicar el teorema de la divergencia de Gauss. Lo cual es equivalente a dividir el dominio
en volúmenes de control y aplicar un balance de conservación a cada volumen.
bu =∇2 Ecuación de Poisson.
( )∫Ω
=Ω−∇ 02 wdbu Ponderación de residuos.
Para el método de los volúmenes finitos se toma w = 1 como función de ponderación.
( ) ∫∫ΩΩ
Ω=Ω∇ bddu2
Por definición del Laplaciano el término del lado izquierdo se puede expresar:
( ) ( )∫∫ΩΩ
Ω∇⋅∇=Ω∇ udu2
Por el teorema de la divergencia de Gauss:
( ) dsnudus∫∫
⋅∇=Ω∇⋅∇
>−
Ω
Por definición de derivada direccional: dsn
udsnu
ss∫∫
∂
∂=
⋅∇
>−
>−Hasta el momento se
tiene:
∫∫Ω
>−Ω=
∂
∂ bddsn
u
s
Debido a que el dominio se dividió en volúmenes rectangulares se separa la integral en i
dominios, para cada uno de los cuales su frontera consta de cuatro segmentos j = 1, 2, 3,
4.
∑ ∫∫= Γ
>−>−
∂
∂=
∂
∂ 4
1,
jii
s
dsn
uds
n
u
jii
( )jiij
i Lh
uuds
n
u
ji
,
,
Γ−
=
∂
∂∫
Γ>− Con j = W, E, N, S.
Para la región bidimensional i la ecuación de balance queda así:
i
S
N
W E ?y
?x
Figura 6. Convención para los nodos.
yxbxy
uux
yuu
yxuu
yx
uu iNiSiEiW ∆∆=∆∆−
+∆∆−
+∆∆−
+∆∆−
Donde b es la generación interna por unidad del dominio en la región i.
4.3.2 Aplicación
q = 10
T = 300 °C b = -5 T = 0 °C
q = 10
1 432
8 7
6
512
11
10 9
13 14
1516
Figura 7. División del dominio en volúmenes finitos.
En este caso los nodos han pasado a ser el centro de una región del dominio para cada
una de las cuales se aplica la ecuación de balance.
Volumen 1: 3001 =T Temperatura conocida (Condición de frontera).
Volumen 2:
( ) ( ) ( )
∆
∆−=∆
∆−
+∆−∆
∆−
+∆
∆−
222222 y
xbTT
qTTTT x
y
nx
y
x
ey
x
w
∆=∆=∆ yx Malla uniforme
( ) ( ) ( )
∆
∆−=−
+∆−−
+−
221
21 222 y
xbTT
qTTTT n
xew
221
21
21
21 2
222∆+∆=−+−+− bqTTTTTT xnew
22
21
21 2
2∆+∆=−++ bqTTTT new
Volumen 3: 2
221
21 2
3
∆+∆=−++ bqTTTT new
Volumen 4: 04 =T Temperatura conocida (Condición de frontera).
Volumen 5: 2
221
21 2
5∆+∆=−++ bqTTTT nws
Volumen 6: 2
221
21 2
6∆+∆=−++ bqTTTT nws
Volumen 7: 07 =T Temperatura conocida (Condición de frontera).
Volumen 8: 2
221
21 2
8
∆+∆=−++ bqTTTT wes
Volumen 9: 2
221
21 2
9∆+∆=−++ bqTTTT wes
Volumen 10: 010 =T Temperatura conocida (Condición de frontera).
Volumen 11: 2
221
21 2
11∆+∆=−++ bqTTTT nes
Volumen 12: 2
221
21 2
12
∆+∆=−++ bqTTTT nes
Volumen 13: 2134 ∆=−+++ bTTTTT wnes
Volumen 14: 2144 ∆=−+++ bTTTTT wnes
Volumen 15: 2154 ∆=−+++ bTTTTT wnes
Volumen 16: 2164 ∆=−+++ bTTTTT wnes
Al sustituir los valores se obtiene el siguiente sistema de ecuaciones:
C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C10 C11 C12 C13 C14 C15 C16R 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T1 300R 2 0.5 -2 0.5 0 0 0 0 0 0 0 0 0 1 0 0 0 T2 10
R 3 0 0.5 -2 0.5 0 0 0 0 0 0 0 0 0 1 0 0 T3 10
R 4 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 T4 0R 5 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 T5 0
R 6 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 T6 0R 7 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 T7 0
R 8 0 0 0 0 0 0 0.5 -2 0.5 0 0 0 0 0 1 0 T8 10R 9 0 0 0 0 0 0 0 0.5 -2 0.5 0 0 0 0 0 1 T9 10
R10 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 T10 300R11 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 T11 300
R12 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 T12 300
R13 0 1 0 0 0 0 0 0 0 0 0 1 -4 1 0 1 T13 -20R14 0 0 1 0 1 0 0 0 0 0 0 0 1 -4 1 0 T14 -20
R15 0 0 0 0 0 1 0 1 0 0 0 0 0 1 -4 1 T15 -20R16 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 -4 T16 -20
Figura 8. Sistema matricial para volúmenes finitos.
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 ELEMENTOS FINITOS
4.4.1 Formulación
Consiste en un método de Garlerkin, en el cual las funciones de forma son funciones
polinómicas por tramos (“Piecewise”). Para discretizar la ecuación de Poisson según el
método de los elementos finitos se procede de la siguiente manera:
bu =∇2 en O (4.4.1)
( ) 02 =Ω−∇∫Ω
wdbu (4.4.2.)
( ) 02 =Ω−Ω∇ ∫∫ΩΩ
bwdwdu (4.4.3.)
Integrando por partes el primer termino utilizando la primera identidad de Green
∫∫∫ΩΓΩ
Ω∇⋅∇−Γ⋅∇=Ω∇ wduduwwdu)( 2 (4.4.4.) sustituyendo en (4.4.3.)
0=Ω−Ω∇⋅∇−Γ⋅∇ ∫∫∫ΩΩΓ
bwdwduduw (4.4.5.) reordenando se obtiene la ecuación
inicial para el desarrollo de los elementos finitos:
∫∫∫ΩΓΩ
Ω−Γ⋅∇=Ω∇⋅∇ bwdduwwdu (4.4.6.)
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.
Se supone que la solución para u admite la siguiente forma:
332211 NuNuNuu ++=
Las funciones de peso w corresponden a:
11 Nw = 22 Nw = 33 Nw =
Para un elemento triangular las funciones de interpolación
( ) ( ) ( )A
xxyyyxyxyxN
223322332
1
−+−+−=
( ) ( ) ( )A
xxyyyxyxyxN
231133113
2
−+−+−=
( ) ( ) ( )A
xxyyyxyxyxN
212211221
3
−+−+−=
Como x1, x2, x3, y1, y2, y3 son permanecen constantes para cada elemento se puede
remplazar:
( ) ( ) ( )23132123321 xxcyybyxyxa −=−=−=
( ) ( ) ( )31213231132 xxcyybyxyxa −=−=−=
( ) ( ) ( )12321312213 xxcyybyxyxc −=−=−=
Con lo cual:
( ) ( )AycxbaN 2/1111 ++=
( ) ( )AycxbaN 2/2222 ++=
( ) ( )AycxbaN 2/3333 ++=
Expresado en forma matricial: [ ] [ ]
=
321
321
321
121
ccc
bbbaaa
yxA
N
La expresión ∫∫∫ΩΓΩ
Ω−Γ⋅∇=Ω∇⋅∇ bwdduwwdu entonces se obtiene una ecuación
integral por cada función de peso, así:
( ) ( ) ∫∫∫ΩΓΩ
Ω−Γ++∇=Ω∇++∇ dbNdNuNuNuNdNNuNuNu 133221111332211 (4.4.7)
( ) ( ) ∫∫∫ΩΓΩ
Ω−Γ++∇=Ω∇++∇ dbNdNuNuNuNdNNuNuNu 233221122332211 (4.4.8)
( ) ( ) ∫∫∫ΩΓΩ
Ω−Γ++∇=Ω∇++∇ dbNdNuNuNuNdNNuNuNu 333221133332211 (4.4.9)
4.4.1.1 Desarrollo de lado izquierdo Se calcula el gradiente para la función u:
( ) ( ) ( )
++
∂∂
++∂∂
=++∇ 332211332211332211 , NuNuNuy
NuNuNux
NuNuNu
( ) ( )11111
111 21
2bu
AAycxba
xuNu
x=
++
∂∂
=∂∂
( ) ( )22222
222 21
2bu
AAycxba
xuNu
x=
++∂∂=
∂∂
( ) ( )33333
333 21
2bu
AAycxba
xuNu
x=
++
∂∂
=∂∂
( ) ( )332211332211 21
bububuA
NuNuNux
++=++∂∂
De forma similar:
( ) ( )332211332211 21 cucucuA
NuNuNuy
++=++∂∂
Por lo tanto el gradiente para la función u:
( ) ( ) [ ]
=++++=++∇
3
2
1
3
2
1
321332211332211332211 21
21
c
cc
b
bb
uuuA
cucucubububuA
NuNuNu
Ahora se calculan los gradientes para las funciones de peso N1, N2, N3:
( )11111111
1 21
22cb
AAycxba
yAycxba
xN =
++∂∂
++∂∂=∇
( )222 21
cbA
N =∇ y ( )333 21
cbA
N =∇
Sustituyendo las expresiones en las ecuaciones integrales para cada función de peso:
Para la primera ecuación integral
( ) ( ) ( ) ∫∫∫ΩΓΩ
Ω−Γ⋅++∇=Ω∇⋅++∇ dbNdNuNuNuNdNNuNuNu 133221111332211
Sustituyendo los respectivos gradientes en el lado izquierdo de las tres ecuaciones se
obtiene:
[ ] [ ] [ ]∫∫ΩΩ
Ω
+++=Ω⋅
d
u
uu
ccbbccbbcbA
dcb
c
cc
b
bb
uuuA
3
2
1
3131212121
21211
3
2
1
3
2
1
3212 41
41
[ ] [ ] [ ]∫∫ΩΩ
Ω
+++=Ω⋅
d
u
uu
ccbbcbccbbA
dcb
c
cc
b
bb
uuuA
3
2
1
323222
222121222
3
2
1
3
2
1
3212 41
41
[ ] [ ] [ ]∫∫ΩΩ
Ω
+++=Ω⋅
d
uuu
cbccbbccbbA
dcbccc
bbb
uuuA
3
2
123
2332313131233
3
2
1
3
2
1
3212 41
41
Puesto que todos los elementos dentro de las integrales son constantes la integral de
dominio corresponde al área del elemento: Ad =Ω∫Ω
. Las anteriores expresiones quedan
así:
[ ] [ ]
+++=
+++
3
2
1
3131212121
21
3
2
1
3131212121
212 4
14
u
uu
ccbbccbbcbA
u
uu
ccbbccbbcbAA
[ ] [ ]
+++=Ω
+++∫
Ω3
2
1
323222
222121
3
2
1
323222
2221212 4
14
1
uuu
ccbbcbccbbA
duuu
ccbbcbccbbA
[ ] [ ]
+++=Ω
+++∫
Ω3
2
123
2332313131
3
2
123
23323131312 4
141
u
uu
cbccbbccbbA
d
u
uu
cbccbbccbbA
Reuniendo los tres resultados anteriores en una sola expresión matricial el lado izquierdo
de las tres ecuaciones integrales se resume en:
+++++++++
3
2
1
23
2332313131
323222
222121
3131212121
21
41
uuu
cbccbbccbbccbbcbccbbccbbccbbcb
A
Expresada en forma matricial se tiene: KU
La matriz
+++
++++++
=23
2332313131
323222
222121
3131212121
21
41
cbccbbccbb
ccbbcbccbbccbbccbbcb
AK es llamada matriz de rigidez del
elemento o matriz local de rigidez.
4.4.1.2 Desarrollo del lado derecho
Para la ecuación integral (4.4.7) se tiene:
( ) ( ) ( ) ∫∫∫ΩΓΩ
Ω−Γ⋅++∇=Ω∇⋅++∇ dbNdNuNuNuNdNNuNuNu 133221111332211
Se ha demostrado que la integración sobre elementos unidimensionales que tienen
funciones de forma 1N y 2N elevadas a las potencias α y β se puede calcular mediante
la formula (Ver FAGAN):
( ) LdLNNL !1
!!21 ++
=∫ βαβαβα Donde L es la longitud del elemento.
Para elementos bidimensionales con funciones de forma elevadas a las potencias α , β y
γ ; su integración se puede realizar mediante la siguiente formula:
( ) AdLNNL
2!2
!!!21 +++
=∫ γβαγβαβα Donde A es el área del elemento.
Para el término de conducción de calor en la frontera se tiene la ecuación:
( )∫Γ
Γ⋅++∇ dNuNuNuN 3322111 Donde ( )332211 NuNuNu ++∇ es el gradiente del
potencial o flujo, el cual es una condición de frontera dada por el problema. Por lo tanto se
puede expresar como: ( )332211 NuNuNuq ++∇= y la ecuación queda:
( ) 2!101!0!1
11
qLLqdNqqdN =
++=Γ=Γ ∫∫
ΓΓ
Donde L es la longitud de Γ .
Similarmente se procede para ∫Γ
ΓdqN 2 y ∫Γ
ΓdqN3 .
4.4.1.3 Calculo del término de generación de calor Para el término de generación de calor:
( ) 362
2!2001
!0!0!11
bAbAAbdbN ==
+++=Ω∫
Ω
Donde b es constante.
Similarmente se procede para ∫Ω
ΩdbN2 y ∫Ω
ΩdbN3 .
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:
q
b
k
j
−
=
110
2111
3qLbA
KU
Figura 9. Elemento finito triangular.
4.4.2 Aplicación
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
b = - 5T = 300 °C T = 0 °C
q = 10
1 432
8 7
6
512
11
10 9
13 14
1516
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Figura 10. División del dominio en elementos finitos.
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).
La ecuación
−
=
1
10
21
11
3qLbAKU , produce los siguientes resultados.
( ) ( ) ( ) 02222040222 23132123321 =−=−=−=−=−==⋅−⋅=−= xxcyybyxyxa
( ) ( ) ( ) 22020202002 31213231132 −=−=−==−=−==⋅−⋅=−= xxcyybyxyxa
( ) ( ) ( ) 20200000200 12321312213 =−=−==−=−==⋅−⋅=−= xxcyybyxyxc
22
22=
⋅=A
( )( ) ( ) ( )( )
( )( )
−−−+⋅−
⋅−−
⋅=
+++++++++
=2
22
2
23
2332323131
323222
222121
3131212121
21
2220222222
0222
241
41
cbccbbccbbccbbcbccbbccbbccbbcb
AK
−
−−
−
=
21
21
0
21
121
021
21
K
=
⋅=
67.6
67.667.6
1
11
3210
1
11
3bA
=
⋅=
0
1010
0
11
2210
1
10
2qL
La conducción se da en el lado i, j
Donde i, j, k corresponden respectivamente a los nodos 1,2 y 13.
La ecuación para el elemento 1 entonces queda:
−
=
−
−−
−
01010
67.667.667.6300
21
21
0
21
121
021
21
3
2
uu
El valor de 1u es conocido por ser condición de frontera 3001 =u
Matriz rigidez elemento 1 Matriz rigidez elemento 7 Matriz rigidez elemento 131 2 13 14 6 15 11 9 10
1 0.5 -0.5 0 14 0.5 0 -0.5 11 0.5 0 -0.52 -0.5 1 -0.5 6 0 0.5 -0.5 9 0 0.5 -0.5
13 0 -0.5 0.5 15 -0.5 -0.5 1 10 -0.5 -0.5 1
Matriz rigidez elemento 2 Matriz rigidez elemento 8 Matriz rigidez elemento 142 14 13 15 6 7 12 16 11
2 0.5 0 -0.5 15 0.5 -0.5 0 12 0.5 0 -0.514 0 0.5 -0.5 6 -0.5 1 -0.5 16 0 0.5 -0.513 -0.5 -0.5 1 7 0 -0.5 0.5 11 -0.5 -0.5 1
Matriz rigidez elemento 3 Matriz rigidez elemento 9 Matriz rigidez elemento 152 3 14 15 7 8 12 13 16
2 0.5 -0.5 0 15 0.5 0 -0.5 12 0.5 -0.5 03 -0.5 1 -0.5 7 0 0.5 -0.5 13 -0.5 1 -0.5
14 0 -0.5 0.5 8 -0.5 -0.5 1 16 0 -0.5 0.5
Matriz rigidez elemento 4 Matriz rigidez elemento 10 Matriz rigidez elemento 163 5 14 16 15 8 1 13 12
3 0.5 0 -0.5 16 0.5 -0.5 0 1 0.5 0 -0.55 0 0.5 -0.5 15 -0.5 1 -0.5 13 0 0.5 -0.5
14 -0.5 -0.5 1 8 0 -0.5 0.5 12 -0.5 -0.5 1
Matriz rigidez elemento 5 Matriz rigidez elemento 11 Matriz rigidez elemento 173 4 5 16 8 9 13 14 15
3 0.5 -0.5 0 16 0.5 0 -0.5 13 0.5 -0.5 04 -0.5 1 -0.5 8 0 0.5 -0.5 14 -0.5 1 -0.55 0 -0.5 0.5 9 -0.5 -0.5 1 15 0 -0.5 0.5
Matriz rigidez elemento 6 Matriz rigidez elemento 12 Matriz rigidez elemento 1814 5 6 11 16 9 13 15 16
14 0.5 -0.5 0 11 0.5 -0.5 0 13 0.5 0 -0.55 -0.5 1 -0.5 16 -0.5 1 -0.5 15 0 0.5 -0.56 0 -0.5 0.5 9 0 -0.5 0.5 16 -0.5 -0.5 1
Figura 11. Matrices locales de rigidez para cada elemento
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16R1 1 -0.5 0 0 0 0 0 0 0 0 0 -0.5 0 0 0 0R2 -0.5 2 -0.5 0 0 0 0 0 0 0 0 0 -1 0 0 0R3 0 -0.5 2 -0.5 0 0 0 0 0 0 0 0 0 -1 0 0R4 0 0 -0.5 1 -0.5 0 0 0 0 0 0 0 0 0 0 0R5 0 0 0 -0.5 2 -0.5 0 0 0 0 0 0 0 -1 0 0R6 0 0 0 0 -0.5 2 -0.5 0 0 0 0 0 0 0 -1 0R7 0 0 0 0 0 -0.5 1 -0.5 0 0 0 0 0 0 0 0R8 0 0 0 0 0 0 -0.5 2 -0.5 0 0 0 0 0 -1 0R9 0 0 0 0 0 0 0 -0.5 2 -0.5 0 0 0 0 0 -1R10 0 0 0 0 0 0 0 0 -0.5 1 -0.5 0 0 0 0 0R11 0 0 0 0 0 0 0 0 0 -0.5 2 -0.5 0 0 0 -1R12 -0.5 0 0 0 0 0 0 0 0 0 -0.5 2 -1 0 0 0R13 0 -1 0 0 0 0 0 0 0 0 0 -1 4 -1 0 -1R14 0 0 -1 0 -1 0 0 0 0 0 0 0 -1 4 -1 0R15 0 0 0 0 0 -1 0 -1 0 0 0 0 0 -1 4 -1R16 0 0 0 0 0 0 0 0 -1 0 -1 0 -1 0 -1 4 Figura 12. Matriz de rigidez global
4.4.3 Programación
La subrutina Elementos Finitos utiliza la matriz H como matriz de rigidez. El calculo de
esta se realiza mediante el calculo de la matriz local de rigidez para cada elemento
directamente en la matriz de rigidez global. Para esto la matriz H se inicia en ceros y en
cada término se van acumulando los valores correspondientes a la matriz de rigidez
global. Para recorrer los elementos se utiliza la variable K. El total de elementos es NCI el
cual es leído del archivo de entrada. Observe que la matriz de rigidez global se calcula en
un solo ciclo DO. En el mismo ciclo se acumulan en el vector B los términos de
generación para cada elemento finito. Después de este se procede a incorporar las
condiciones de conducción de calor en la frontera para cada nodo aprovechando el hecho
de que estos se encuentran en la frontera.
Debido a que se conoce el valor de las variables en algunos nodos por ser condiciones de
frontera, la matriz de rigidez contiene columnas que corresponden a variables conocidas.
Estas variables conocidas deben ser reemplazadas por las variables que no se conocen
mediante la multiplicación del valor conocido por la columna y su adición algebraica en el
lado izquierdo. Todos los términos de la columna reemplazada deben quedar con valor
cero excepto el que corresponde a la variable desconocida que queda con valor uno. Esta
operación con las columnas se efectúa al incorporar las condiciones de frontera de
temperatura para lo cual se debe leer el vector de condiciones de frontera CF.
Obsérvese que una vez calculadas las matrices del sistema su resolución es inmediata
mediante el empleo de la función Resolver Sistema.
SUBROUTINE ElementosFinitos
INTEGER K,I,J,Nodo1,Nodo2,Nodo3,nElem REAL N1,N2,N3,Ai,Aj,Ak,Bi,Bj,Bk,Ci,Cj,Ck,Xi,Xj,Xk,Yi,Yj,Yk, pX,pY,Area,Longitud ALLOCATE(H(nn,nn),Q(nn),B(nn),X(nn)) ALLOCATE(Conexion(NNF,2)) WRITE(Salida,*) 'Elementos Finitos' H = 0.0 B = 0.0 ! Generación de calor X = 0.0 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) ! Ensamblar matriz de rigidez para el elemento H(Nodo1,Nodo1) = H(Nodo1,Nodo1) + (Bi**2 + Ci**2)/(4*Area) H(Nodo1,Nodo2) = H(Nodo1,Nodo2) + (Bi*Bj + Ci*Cj)/(4*Area) H(Nodo1,Nodo3) = H(Nodo1,Nodo3) + (Bi*Bk + Ci*Ck)/(4*Area) H(Nodo2,Nodo2) = H(Nodo2,Nodo2) + (Bj*Bj + Cj*Cj)/(4*Area) H(Nodo2,Nodo3) = H(Nodo2,Nodo3) + (Bj*Bk + Cj*Ck)/(4*Area) H(Nodo3,Nodo3) = H(Nodo3,Nodo3) + (Bk*Bk + Ck*Ck)/(4*Area) H(Nodo2,Nodo1) = H(Nodo1,Nodo2) H(Nodo3,Nodo1) = H(Nodo1,Nodo3) H(Nodo3,Nodo2) = H(Nodo2,Nodo3) ! Ensamblar vector generación de calor B(Nodo1) = B(Nodo1) - Constante*Area/3 B(Nodo2) = B(Nodo2) - Constante*Area/3 B(Nodo3) = B(Nodo3) - Constante*Area/3
END DO WRITE(Salida,*) 'Matriz de rigidez sin Condiciones frontera' CALL ImprimirMatriz(H) !Imprimir vector B WRITE(Salida,*) 'Vector B' CALL WRRRN ('B', 1, UBOUND(B), B, 1, 0) !Imprime el vector B !Conexion de los elementos de frontera DO nNodo = 1,nnf Conexion(nNodo,1) = nNodo Conexion(nNodo,2) = nNodo+1 END DO Conexion(nnf,2) = 1 !Agregar condiciones de frontera de calor DO K = 1,NEF IF (CF(K*2-1) == 1) THEN Longitud = fCalcularLongitud(Conexion(K,1),Conexion(K,2)) B(Conexion(K,1)) = B(Conexion(K,1)) - Longitud*VF(K*2-1)/2 B(Conexion(K,2)) = B(Conexion(K,2)) - Longitud*VF(K*2)/2 END IF END DO !Agregar condiciones de frontera de temperatura DO K = 1,NNF IF (Condicion(K) == 0) THEN DO I = 1,NN B(I) = B(I) - V(K)*H(I,K) H(I,K) = 0 END DO H(K,K) = 1 END IF END DO !Imprimir vector B WRITE(Salida,*) 'Vector B + Condiciones frontera' CALL WRRRN ('B', 1, UBOUND(B), B, 1, 0) !Imprime el vector B WRITE(Salida,*) 'Matriz H de rigidez mas Condiciones frontera' CALL ImprimirMatriz(H) CALL ResolverSistema(H,X,B) END SUBROUTINE
4.5 ELEMENTOS DE FRONTERA
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
bu =∇2 en O
( ) 02 =Ω−∇∫Ω
wdbu
( ) 02 =Ω−Ω∇ ∫∫ΩΩ
bwdwdu
Integrando por partes el primer termino utilizando la primera identidad de Green
∫∫∫ΩΓΩ
Ω∇∇−Γ∇=Ω∇ wduudwwdu)( 2 Sustituyendo en la anterior
0=Ω−Ω∇∇−Γ∇ ∫∫∫ΩΩΓ
bwdwduudw
Reordenando se obtiene:
∫∫∫ΩΓΩ
Ω−Γ∇=Ω∇∇ bwdudwwdu
Integrando nuevamente por partes el término ∫Ω
Ω∇∇ wdu se tiene:
( ) ( ) Ω∇−Γ∇=Ω∇∇ ∫ ∫∫Γ ΩΩ
udwudwwdu 2
Reemplazando en la ecuación se tiene:
( ) ( ) 02 =Ω−Ω∇+Γ∇−Γ∇ ∫∫ ∫∫ΩΓ ΩΓ
bwdudwudwudw
Si de divide la frontera Γ del dominio Ω en las fronteras 1Γ y 2Γ tales que en 1Γ se
conoce el valor de _
uu = y en 2Γ _
qq = donde nu
q∂∂
=
Ω
1Γ2Γ
_
uu =_
qq =
Figura 13. Dominio, frontera y condiciones.
La ecuación anterior se puede escribir así:
( ) ( ) ( ) 02 =Γ∇−Γ∇+Ω−Ω∇∫ ∫ ∫∫Ω Ω ΓΓ
dwuduwbwdudw
( ) ( ) ( ) ( ) 02121
21
_
2
_
12 =Γ∇−Γ∇−Γ
+Γ∇+Ω−Ω∇∫ ∫ ∫∫∫∫
Ω Ω ΓΓΓΓ
dwudwudqwduwbwdudw
Integrando por partes el término ( )∫Ω
Ω∇ udw2 se obtiene:
( ) Γ∇+Ω∇∇−=Ω∇ ∫∫∫ΓΩΩ
dwuduwudw2
Se separa la última integral en dos términos:
( ) 212
21
Γ∇+Γ∇+Ω∇∇−=Ω∇ ∫∫∫∫ΓΓΩΩ
dwudwuduwudw
Reemplazando en la ecuación y cancelando el término ( )∫Γ
Γ∇2
2dwu se obtiene:
( ) ( ) 01211
1
_
2
_
11 =Γ∇−Γ
+Γ∇+Ω−Γ∇+Ω∇∇− ∫ ∫∫∫∫∫
Ω ΓΓΓΓΩ
dwudqwduwbwddwuduw
Integrando por partes el término Ω∇∇∫Ω
duw se tiene:
∫ ∫∫Ω ΓΩ
Γ∇+Ω∇−=Ω∇∇ udwudwduw 2
Separando la integral de frontera en sus componentes:
∫ ∫∫∫Ω ΓΓΩ
Γ∇+Γ∇+Ω∇−=Ω∇∇21
212 udwudwudwduw
Sustituyendo en la ecuación y cancelando el término ( )∫Γ
Γ∇1
1duw se tiene:
( ) 01212
1
_
2
_
122 =Γ∇−Γ
+Ω−Γ∇+Γ∇−Ω∇ ∫ ∫∫∫∫ ∫
Ω ΓΓΓΩ Γ
dwudqwbwddwuudwudw
Integrando por partes dos veces el término ∫Ω
Ω∇ udw 2 se obtiene:
( ) ∫∫∫∫∫∫ΓΓΩΓΩΩ
Γ∇+Γ∇−Ω∇=Γ∇+Ω∇∇−=Ω∇ udwwduudwudwudwudw 22
Separando las integrales de frontera:
( ) ( ) ∫∫∫∫∫∫∫∫ΓΓΓΓΩΓΓΩ
Γ∇+Γ∇+Γ∇−Γ∇−Ω∇=Γ∇+Γ∇−Ω∇2121
212122 udwudwwduwduudwudwwduudw
Remplazando y cancelando los términos 1
1
Γ∇∫Γ
dwu y ∫Γ
Γ∇2
2udw se obtiene:
( ) ( ) 01212
1
_
2
_
122 =Γ∇−Γ
+Ω−Γ∇+Γ∇−Ω∇ ∫ ∫∫∫∫∫
Ω ΓΓΓΓΩ
dwudqwbwdudwwduudw
Reorganizando los términos:
( ) ( )∫∫∫∫∫∫ΓΓΓΓΩΩ
Γ∇+Γ∇+Γ∇−Γ
−=Ω−Ω∇
1212
1
_
212
_2 dwuwduudwdqwbwdudw
Reuniendo nuevamente términos se tiene la expresión inicial para el método de los
elementos de frontera:
( ) ∫∫∫∫ΓΩΓΩ
Γ∇=Ω−Γ∇+Ω∇ wdubwdudwudw2
En este punto se introduce la función radial *u , la cual será utilizada en la ecuación
anterior para obtener las ecuaciones del método elementos de frontera:
La ecuación
=
ru
1ln
21
*π
, *u representa el campo generado por una unidad de carga
concentrada en el punto i , y tiene la propiedad de ( ) 0*2 =+∇ iu δ
Donde iδ : .0 casootroen
Lim i
xx i
=
∞==>−
δ
iδ es la función delta de Dirac. r es la distancia desde el punto ix 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:
( ) iu δ−=∇ *2
En la integral ( )∫Ω
Ω∇ udw2 se toma *uw =
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:
( ) ( ) ( ) iii ucududuudw −=Ω−=Ω∇=Ω∇ ∫∫∫ΩΩΩ
δ*22 El superíndice i significa evaluada en el
punto i. ic es un factor que permite modificar el valor de la función de acuerdo con la
ubicación punto donde se evalúa respecto a la frontera. Si el punto i se encuentra en
medio del dominio, es decir es un punto interior 1=ic . Si se encuentra en una frontera es
proporcional al área de un circulo unitario (Con centro en i) entre los lados de la frontera
que tienen el punto i como punto de unión, como se muestra en la figura.
1=ic
5.0=ic
25.0=ic 125.0=ic
Figura 14. Valores para la constante Ci.
Como se menciono anteriormente se toma la función radial y se sustituye en la ecuación:
( ) ∫∫∫∫ΓΩΓΩ
Γ∇=Ω−Γ∇+Ω∇ wdubwdudwudw2
Para lo cual se emplean las siguientes equivalencias:
( ) iiucudw −=Ω∇∫Ω
2 *uw = *qw =∇ qu =∇
Con lo cual se llega a la ecuación integral para el método de elementos de frontera:
∫∫∫ΓΩΓ
Γ=Ω−Γ+− duqdbuqduuc ii ***
Reordenando los términos:
∫∫∫ΓΩΓ
Γ=Ω+Γ+ dqudbuduquc ii ***
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
j
jijiN
j
iijii qGDuHuc11
Donde ∫Γ
Γ=j
jij duqH * sobre la frontera j desde el punto i ,
∫Ω
Ω= dbuDi * , integral de superficie desde el punto i sobre todo el dominio
∫Γ
Γ= dquG ij * , sobre la frontera j desde el punto i.
Si se toman N puntos sobre la frontera entonces se obtiene el sistema matricial:
GQDHU =+
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í:
=
ru
1ln
21
*π
Para un medio bidimensional isotrópico.
y
ru
π41
* = Para un medio tridimensional isotrópico.
r es la distancia desde punto de origen a la frontera considerada.
>−
∂
∂=
n
uq
**
Para un nodo i se cumple la siguiente integral de frontera:
∫ ∫Γ Γ
Γ=Γ+ dquduquc ii **
Para una frontera dividida en n elementos lineales se tiene para cada nodo:
∫ ∫∫∫Γ ΓΓΓ
Γ++Γ=Γ++Γ+n n
nnii dqudquduqduquc *...**...*
11
11
Para evaluar las integrales se debe tener presente que:
=
ru
1ln
21
*π
, >−
∂
∂=
n
uq
** , ( )εφ −= 1
21
1 , ( )εφ += 121
2
Sea ? la frontera comprendida entre los puntos A y B.
Figura 15. Puntos para la función radial.
Las coordenadas del elemento se pueden obtener mediante la siguiente expresión:
( ) ( )22
)( ABBA XXXXX
−+
+= εε , ( ) ( )
22)( ABBA YYYY
Y−
++
= εε con 11 ≤≤− ε
Para el radio se tiene: ( ) ( )[ ]222II YYXXr −+−=
El radio en función de ε : ( ) ( )( ) ( )( )[ ]222
II YYXXr −+−= εεε La frontera Γ expresada en función del parámetro ε se puede expresar de la forma:
i
3
(XA
? j
(X ,Y)
(XI ,YI)
r
(XB ,YB)
( ) ( ) ( )
−
++−
++
=Γ22
)(,
22)( ABBAABBA YYYYXXXX
εεε
Su derivada ( )ε'Γ y magnitud de la derivada son respectivamente:
( ) ( ) ( )
−−=Γ
2,
2' ABAB YYXXε y ( ) ( ) ( )22'
21
ABAB YYXX −+−=Γ ε
Esta última constituirá más adelante el Jacobiano para el cambio de variable en la
expresión integral que se obtendrá.
4.5.1.1 Calculo integral de la integral que contiene el termino u*
Sea la integral: ∫Γ
Γdqu *
22
11 qqq φφ += y
=
ru
1ln
21
*π
Reemplazando q y u* en la integral
( ) ( ) ( )∫∫∫ΓΓΓ
Γ
+Γ
=Γ
+ d
rqd
rqd
rqq 1ln
21ln
21ln
21
2
2
1
12
21
1 φπ
φππ
φφ
Del cálculo integral para un cambio de variable se tiene:
( ) ( )( ) ( ) εεεε
dxfdxf 'Γ=Γ ∫∫Γ
Por lo tanto haciendo el cambio de variable:
( ) ( )( )( )
( )∫∫ΓΓ
Γ
=Γ
εε
εεφ
πφ
πd
rqd
rq '
1
1
1
1 1ln2
1ln2
Se tiene:
( )( ) ( ) ( ) ( )( )( ) ( )( )
( ) ( )∫∫ΓΓ
−+−
−+−−=Γ
ε
εεεεε
εεφ dYYXX
YYXXd
r ABAB
II
22
22
'1 2
11ln1211ln
4.5.1.2 Calculo de la integral que contiene el termino q*
Sea la integral: ∫Γ
Γduq *
Para >−
∂
∂=n
uq ** se tiene >−
>−•∇=
∂
∂= nun
uq ***
En dos dimensiones se tiene:
∂
∂∂
∂=
∇=∇
yu
xu
ru
*,
*1ln
21
*π
, xr
ru
xu
∂∂
∂∂
=∂
∂ ** y
yr
ru
yu
∂∂
∂∂=
∂∂ **
Se determinan el gradiente y las derivadas parciales de la función radial
( ) ( )[ ]222II YYXXr −+−= Derivando implícitamente:
rXX
xr I−
=∂∂
rYY
yr I−
=∂∂
−=
∂∂
=∂
∂rrrr
u 1211
ln21*
ππ
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 ( )1,0,0=>−
k . El producto de un
vector en el plano xy con el vector ( )1,0,0=>−
k produce otro vector normal en el plano xy
perpendicular a ambos vectores.
( ) ( )1,0,00,, ×−−=>−
ABAB YYXXn
( ) ( ) jikji
n ABBA
ABAB
XXYYYYXX
>−>−
>−>−>−
>−
−+−=−−
=0100
Reemplazando los términos anteriores en >−
>−•∇=
∂
∂= nun
uq *** se tiene:
( )ABBAII XXYY
rYY
rXX
nun
uq −−⋅
−
−−
−=•∇=∂
∂=>−
>−,
2,
2***
22 ππ
El valor de u en un punto del elemento en función ε de esta dado por:
( ) ( ) ( ) BABA uuuuu εεφφε ++−=+= 121
121
21
( )( )
( )( ) ( )ABBA
II XXYYr
YYr
XXnu
n
uq −−⋅
−−
−−=•∇=
∂
∂=
>−
>− ,2
,2
**
* 22 επε
επε
( )( )( ) ( )( )( )( )
−−+−−−=•∇=
∂
∂=
>−
>− επεε
22*
**
rXXYYYYXX
nun
uq ABIBAI
Introduciendo las expresiones anteriores en la integral y teniendo en cuenta el cambio de
variable r por ε :
( ) ( ) ( ) ( ) ( )( )( ) ( )( )( )( ) Γ
−−+−−
++−−=Γ∫ ∫
Γ
dr
XXYYYYXXuudqu ABIBAIBA
επεε
εεεε 221
21
121
*
Del cálculo integral para un cambio de variable se tiene:
( ) ( )( ) ( ) εεεε
dxfdxxf 'Γ= ∫∫Γ
Para este caso se tiene:
( ) ( ) ( ) ( ) ( )( )( ) ( )( )( )( )
( ) εεεπ
εεεεεε d
r
XXYYYYXXuudqu ABIBAIBA '
221
21
121
* Γ
−−+−−
++−−=Γ∫ ∫
Γ
Donde:
( ) ( ) ( )
−+
+−+
+=Γ
22)(
,22
)( ABBAABBA YYYYXXXXεεε
( ) ( ) ( )
−−
=Γ2
,2
' ABAB YYXXε y ( ) ( ) ( )22'
21
ABAB YYXX −+−=Γ ε
Cada integral de la forma ∫
Γ
Γ1
1* duq por lo tanto se puede separar en dos integrales:
∫∫∫ΓΓΓ
Γ+Γ=Γ1
111221
111111
1 *** dqudquduq φφ
Donde:
( ) ( )( )( ) ( )( )( )( )
( ) ( ) εεπ
εεεφ dYYXX
rXXYYYYXX
udqu ABABABIBAIAA 22
2111 21
21
21* −+−
−−+−−
−−=Γ∫ ∫
Γ
( ) ( )( )( ) ( )( )( )( )
( ) ( ) εεπ
εεεφ dYYXX
r
XXYYYYXXudqu ABAB
ABIBAIBB 222112 2
12
121
* −+−
−−+−−
+−=Γ∫ ∫
Γ
4.5.1.3 Calculo de la integral de dominio con generación b de calor Ahora se procede a evaluar la integral que contiene el término b de generación de calor:
Sea la integral: ∫Ω
Ωdbu *
∫∫ΩΩ
Ω
=Ω d
rbdbu 1ln
21*π
El término ∫Ω
Ωdbu * 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.
e
M
e
r
ki AbudbuD ∑ ∑∫
= =Ω=
=Ω1 1
**
Donde:
e = Número de celda
M = Número de celdas o regiones internas
Ae = Área de la celda e
Di = 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:
Punto Peso Coordenada 1 Coordenada 2 Coordenada 31 0.225 0.33333333 0.33333333 0.333333332 0.12592918 0.79742699 0.10128651 0.101286513 0.12592918 0.10128651 0.79742699 0.101286514 0.12592918 0.10128651 0.10128651 0.797426995 0.13239416 0.05971587 0.47014206 0.470142066 0.13239416 0.47014206 0.05971587 0.470142067 0.13239416 0.47014206 0.47014206 0.05971587
Tabla 1. Puntos y pesos de gauss para integración con siete puntos.
4.5.2 Aplicación 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.
Figura 16. Fronteras y división dominio triangular
Para un nodo i se cumple la siguiente integral de frontera:
∫ ∫∫Γ Γ
Γ=Ω+Γ+ dqudbuduquc ii ***
Se separa la frontera en tres elementos correspondientes a cada lado del triangulo:
∫ ∫∫∫∫∫Γ ΓΓΓΓΓ
Γ+Γ+Γ=Γ+Γ+Γ+2 3
32
21
13
321
1 ****** dqudqudquduqduqduquc ii
El lado izquierdo de la ecuación queda de la siguiente forma:
∫ ∫∫Γ ΓΓ
Γ+Γ++Γ+2 3
321
1 *** duqduqduquc ii
∫∫∫∫∫∫ΓΓΓΓΓΓ
Γ+Γ+Γ+Γ+Γ+Γ+3
313213
313132
212232
212121
111221
1111111 ****** dqudqudqudqudqudquuc φφφφφφ
1
3
2
4
?1
? 3 ?2
∫∫∫∫∫∫ΓΓΓΓΓΓ
Γ+Γ+Γ+Γ+Γ+Γ+3
323213
323132
222232
222121
121221
1211122 ****** dqudqudqudqudqudquuc φφφφφφ
∫∫∫∫∫∫ΓΓΓΓΓΓ
Γ+Γ+Γ+Γ+Γ+Γ+3
333213
333132
232232
232121
131221
1311111 ****** dqudqudqudqudqudquuc φφφφφφ
Reorganizando los elementos se obtiene:
∫∫∫∫∫∫ΓΓΓΓΓΓ
Γ+Γ+Γ+Γ+Γ+Γ+2
212233
313131
111222
212123
313211
1111111 ****** dqudqudqudqudqudquuc φφφφφφ
∫∫∫∫∫∫ΓΓΓΓΓΓ
Γ+Γ+Γ+Γ++Γ+Γ2
222233
323131
121222
2221222
332321
112111 ****** dqudqudqudquucdqudqu φφφφφφ
∫∫∫∫∫∫ΓΓΓΓΓΓ
Γ+Γ++Γ+Γ+Γ+Γ2
232233
3331333
113122
223212
333321
113111 ****** dqudquucdqudqudqudqu φφφφφφ
Lo cual se puede expresar como un producto matricial:
Γ+Γ+Γ+ΓΓ+Γ
Γ+ΓΓ+Γ+Γ+Γ
Γ+ΓΓ+ΓΓ+Γ+
∫∫∫∫∫∫∫∫∫∫∫∫
∫∫∫∫∫ ∫
ΓΓΓΓΓΓ
ΓΓΓΓΓΓ
ΓΓΓΓΓ Γ
3
2
1
22322
33331
3
11312
22321
33332
11311
22222
33231
11212
22221
2
33232
11211
22122
33131
11112
22121
1 331321111
1
******
******
******
uuu
dqdqcdqdqdqdq
dqdqdqdqcdqdq
dqdqdqdqdqdqc
φφφφφφ
φφφφφφ
φφφφφφ
Para el lado derecho de la ecuación:
∫∫∫ΓΓΓ
Γ+Γ+Γ3
32
21
1 *** dqudqudqu
Se tiene:
∫∫∫∫∫∫ΓΓΓΓΓΓ
Γ+Γ+Γ+Γ+Γ+Γ3
3132133
3131332
2122322
2121221
1112211
111111 ****** duqduqduqduqduqduq φφφφφφ
∫∫∫∫∫∫ΓΓΓΓΓΓ
Γ+Γ+Γ+Γ+Γ+Γ3
3232133
3231332
2222322
2221221
1212211
121111 ****** duqduqduqduqduqduq φφφφφφ
∫∫∫∫∫∫ΓΓΓΓΓΓ
Γ+Γ+Γ+Γ+Γ+Γ3
3332133
3331332
2322322
2321221
1312211
131111 ****** duqduqduqduqduqduq φφφφφφ
Expresado en forma matricial se tiene:
ΓΓΓΓΓΓ
ΓΓΓΓΓΓ
ΓΓΓΓΓΓ
∫∫∫∫∫∫
∫∫∫∫∫∫
∫∫∫∫∫∫
ΓΓΓΓΓΓ
ΓΓΓΓΓΓ
ΓΓΓΓΓΓ
13
33
32
22
21
11
33332
33331
22322
22321
11312
11311
33232
33231
22222
22221
11212
11211
33132
33131
22122
22121
11112
11111
******
******
******
qqq
qqq
dudududududu
dudududududu
dudududududu
φφφφφφ
φφφφφφ
φφφφφφ
Para el problema de la placa rectangular se tiene:
q = 10
b = -5T = 300 °C T = 0 °C
q = 10
1 432
8 7
6
512
11
10 9
13 14
1516
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1 2 3
4
5
6
789
10
12
11
5
5
Nodo
Celda
Elemento de frontera
Figura 17. División dominio para elementos de frontera.
La matriz H queda como sigue:
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12R1 -0.250 0.000 0.000 0.026 0.047 0.037 0.030 0.037 0.047 0.026 0.000 0.000R2 0.070 -0.500 0.000 0.038 0.063 0.041 0.035 0.047 0.052 0.035 0.034 0.085R3 0.038 0.000 -0.500 0.070 0.085 0.034 0.035 0.052 0.047 0.035 0.041 0.063R4 0.026 0.000 0.000 -0.250 0.000 0.000 0.026 0.047 0.037 0.030 0.037 0.047R5 0.035 0.034 0.085 0.070 -0.500 0.000 0.038 0.063 0.041 0.035 0.047 0.052R6 0.035 0.041 0.063 0.038 0.000 -0.500 0.070 0.085 0.034 0.035 0.052 0.047R7 0.030 0.037 0.047 0.026 0.000 0.000 -0.250 0.000 0.000 0.026 0.047 0.037R8 0.035 0.047 0.052 0.035 0.034 0.085 0.070 -0.500 0.000 0.038 0.063 0.041R9 0.035 0.052 0.047 0.035 0.041 0.063 0.038 0.000 -0.500 0.070 0.085 0.034R10 0.026 0.047 0.037 0.030 0.037 0.047 0.026 0.000 0.000 -0.250 0.000 0.000R11 0.038 0.063 0.041 0.035 0.047 0.052 0.035 0.034 0.085 0.070 -0.500 0.000R12 0.070 0.085 0.034 0.035 0.052 0.047 0.035 0.041 0.063 0.038 0.000 -0.500
La matriz G:
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12R1 0.12 -0.03 -0.15 -0.19 -0.24 -0.27 -0.29 -0.29 -0.30 -0.31 -0.32 -0.33R2 -0.03 0.12 0.12 -0.03 -0.15 -0.19 -0.22 -0.23 -0.25 -0.26 -0.29 -0.30R3 -0.19 -0.15 -0.03 0.12 0.12 -0.03 -0.12 -0.14 -0.19 -0.22 -0.26 -0.28R4 -0.27 -0.24 -0.19 -0.15 -0.03 0.12 0.12 -0.03 -0.15 -0.19 -0.24 -0.27R5 -0.28 -0.26 -0.22 -0.19 -0.14 -0.12 -0.03 0.12 0.12 -0.03 -0.15 -0.19R6 -0.30 -0.29 -0.26 -0.25 -0.23 -0.22 -0.19 -0.15 -0.03 0.12 0.12 -0.03R7 -0.33 -0.32 -0.31 -0.30 -0.29 -0.29 -0.27 -0.24 -0.19 -0.15 -0.03 0.12R8 -0.31 -0.30 -0.29 -0.29 -0.29 -0.29 -0.28 -0.26 -0.22 -0.19 -0.14 -0.12R9 -0.29 -0.29 -0.29 -0.29 -0.30 -0.31 -0.30 -0.29 -0.26 -0.25 -0.23 -0.22R10 -0.29 -0.29 -0.30 -0.31 -0.32 -0.33 -0.33 -0.32 -0.31 -0.30 -0.29 -0.29R11 -0.22 -0.23 -0.25 -0.26 -0.29 -0.30 -0.31 -0.30 -0.29 -0.29 -0.29 -0.29R12 -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 C24R1 -0.33 -0.32 -0.31 -0.30 -0.29 -0.29 -0.27 -0.24 -0.19 -0.15 -0.03 0.12R2 -0.31 -0.30 -0.29 -0.29 -0.29 -0.29 -0.28 -0.26 -0.22 -0.19 -0.14 -0.12R3 -0.29 -0.29 -0.29 -0.29 -0.30 -0.31 -0.30 -0.29 -0.26 -0.25 -0.23 -0.22R4 -0.29 -0.29 -0.30 -0.31 -0.32 -0.33 -0.33 -0.32 -0.31 -0.30 -0.29 -0.29R5 -0.22 -0.23 -0.25 -0.26 -0.29 -0.30 -0.31 -0.30 -0.29 -0.29 -0.29 -0.29R6 -0.12 -0.14 -0.19 -0.22 -0.26 -0.28 -0.29 -0.29 -0.29 -0.29 -0.30 -0.31R7 0.12 -0.03 -0.15 -0.19 -0.24 -0.27 -0.29 -0.29 -0.30 -0.31 -0.32 -0.33R8 -0.03 0.12 0.12 -0.03 -0.15 -0.19 -0.22 -0.23 -0.25 -0.26 -0.29 -0.30R9 -0.19 -0.15 -0.03 0.12 0.12 -0.03 -0.12 -0.14 -0.19 -0.22 -0.26 -0.28R10 -0.27 -0.24 -0.19 -0.15 -0.03 0.12 0.12 -0.03 -0.15 -0.19 -0.24 -0.27R11 -0.28 -0.26 -0.22 -0.19 -0.14 -0.12 -0.03 0.12 0.12 -0.03 -0.15 -0.19R12 -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
La solución del sistema formado es:
Nodo T Qd Qa
1 300.00 10.00 -57.452 198.76 10.00 10.003 98.01 10.00 10.004 0.00 42.74 10.005 0.00 61.94 61.946 0.00 61.97 61.977 0.00 10.00 42.668 98.02 10.00 10.009 198.75 10.00 10.00
10 300.00 -57.37 10.0011 300.00 -39.63 -39.6312 300.00 -39.60 -39.60
4.5.3 Programación En la subrutina Elementos Frontera se ejecuta una llamada a MATRICES la cual produce
como salida el sistema AX = B. Este sistema se resuelve llamando a Resolver Sistema y
coloca la solución en el vector X. El vector X debe ser interpretado debido a que contiene
información de temperaturas y flujo de calor. La forma de saber a que corresponde
consiste en leer el vector de condiciones CF. Este vector tiene dos condiciones por cada
elemento de frontera. Una para el nodo al inicio del elemento y otra para el nodo al final
del elemento. La condición es 0 cuando se conoce la temperatura y 1 cuando se conoce
el flujo. Para este caso existe un nodo de frontera entre dos elementos de frontera, en
ese nodo la temperatura es única pero el flujo de calor puede ser distinto en cada
elemento.
Gi+1 Gi
qaqd
u
Figura 18. Flujos de calor y potencial alrededor de un nodo.
NEF es el número de elementos de frontera, NNF es el número de nodos de
frontera, nNodo es el número del nodo que se esta procesando y nElem es el
número del elemento de frontera. Entonces se recorren los elementos de frontera
y para cada uno se halla la condición del nodo común en el elemento anterior y en
el elemento actual. Se hace nNodo = nElem. Actual = nElem*2 - 1 esto da la
posición de la condición del nodo común del elemento de frontera en el vector de
condiciones CF. Y Anterior = nElem*2-2 es la posición del mismo nodo en el
elemento de frontera anterior. Es decir que se revisa la condición del mismo nodo
en los dos elementos actual y anterior. Si el elemento es el primer elementos de
frontera, entonces el mismo nodo es compartido con el último elemento y por eso
varia el calculo de la posición del nodo Anterior para el primer elemento: IF (Actual
.EQ. 1) THEN Anterior = nef*2.
Las condiciones para un nodo dado pueden ser:
U(nNodo) Conocido Q(Actual) Desconocido Q(Anterior) Desconocido U(nNodo) Conocido Q(Actual) Desconocido Q(Anterior) Conocido U(nNodo) Conocido Q(Actual) Conocido Q(Anterior) Desconocido U(nNodo) Desconocido Q(Actual) Conocido Q(Anterior) Conocido
Por lo tanto el vector X contiene el valor desconocido y los valores conocidos se
llevan al vector correspondiente. Sí la condición del nodo indica que el flujo de
calor Q(Anterior) es desconocido, entonces X contiene el valor del flujo de calor Q
para el nodo sobre el elemento anterior. En el caso de que ambos flujos de calor
Q(Anterior) y Q(Actual) sean desconocidos, entonces se asume que son iguales.
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)) !Conexion de los elementos de frontera DO nNodo = 1,nnf Conexion(nNodo,1) = nNodo Conexion(nNodo,2) = nNodo+1 END DO Conexion(nnf,2) = 1 CALL MATRICES CALL ResolverSistema(A,X,B) WRITE(Salida,*) " nNodo "," X "," U "," QActual "," QAnterior" 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) Q(Actual) = X(nNodo) Q(Anterior) = X(nNodo) END IF !U(nNodo) Conocido, Q(Actual) Desconocido Q(Anterior) Conocido IF (CF(Actual) .EQ. 0 .AND. CF(Anterior) .EQ. 1) THEN U(nNodo) = VF(Actual) Q(Anterior) = VF(Anterior) Q(Actual) = X(nNodo) END IF !U(nNodo) Conocido, Q(Actual) Conocido Q(Anterior) Desconocido IF (CF(Actual) .EQ. 1 .AND. CF(Anterior) .EQ. 0) THEN U(nNodo) = VF(Anterior) Q(Actual)= VF(Actual) Q(Anterior) = X(nNodo) END IF !U(nNodo) DesConocido, Q(Actual) Conocido Q(Anterior) Conocido IF (CF(Actual) .EQ. 1 .AND. CF(Anterior) .EQ. 1) THEN Q(Anterior) = VF(Anterior) Q(Actual)= VF(Actual) U(nNodo) = X(nNodo) END IF WRITE(Salida,"(I7,4F10.2)") nNodo,X(nNodo),U(nNodo), Q(Actual),Q(Anterior) END DO CALL CalcularPuntosInternos END SUBROUTINE ElementosFrontera
En la subrutina MATRICES se elaboran las matrices H, Q y se llama la rutina CALL
IntegralesArea para calcular las integrales de dominio a partir de los datos de entrada.
Para calcular integrales que componen cada número de la matriz se llaman las funciones
correpondientes: CalcularHij, CalcularHii, IntegralG1, IntegralG2. Para cada nodo se
recorren todos los elementos y se calculan las integrales de frontera.
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 En la función CalcularHij se calcula el valor de la integral de frontera o de línea desde un
nodo prmNodo sobre un elemento prmElem.
∫∫ Γ+Γ=+= prmElemprmElemij dqdqhhh ** 2121 φφ
REAL FUNCTION CalcularHij(prmNodo,prmElem,prm_nef)
INTEGER, INTENT(IN) :: prmNodo INTEGER, INTENT(IN) :: prmElem INTEGER, INTENT(IN) :: prm_nef REAL h1,h2
h1 = 0 h2 = 0 h1 = IntegralH1(prmNodo,prmElem) IF (prmElem .EQ. 1) THEN h2 = IntegralH2(prmNodo,prm_nef) ELSE h2 = IntegralH2(prmNodo,prmElem-1) END IF CalcularHij = h1 + h2 END FUNCTION CalcularHij En IntegralH1 se calcula la expresión ∫ Γ= prmElemdqh *11 φ
REAL FUNCTION IntegralH1(prmNodo,prmElem) INTEGER, INTENT(IN) :: prmNodo INTEGER, INTENT(IN) :: prmElem INTEGER I REAL fResultado, fTotal fResultado = 0.0 fTotal = 0.0 DO I = 1,4
fResultado = fPhi1(PGauss(I))*fQRadial(prmNodo,prmElem,PGauss(I))* FPeso(I)*fJacobiano(prmElem)
fTotal = fTotal + fResultado END DO IntegralH1 = -fTotal
END FUNCTION IntegralH1 En la función IntegralH2 se calcula ∫ Γ= prmElemdqh *22 φ
REAL FUNCTION IntegralH2(prmNodo,prmElem) REAL fResultado, fTotal INTEGER prmNodo,prmElem,I,J fResultado = 0.0 fTotal = 0.0 DO I = 1,4
fResultado = fPhi2(PGauss(I))*fQRadial(prmNodo,prmElem,PGauss(I))* FPeso(I)*fJacobiano(prmElem)
fTotal = fTotal + fResultado END DO IntegralH2 = -fTotal
END FUNCTION IntegralH2
La función fPhi1 corresponde a la función de interpolación Isoparamétrica ( )εφ −= 121
1 .
REAL FUNCTION fPhi1(PGauss) REAL,INTENT(IN) :: PGauss
fPhi1 = (1-PGauss)/2 END FUNCTION fPhi1
La función fPhi2 corresponde a la función de interpolación Isoparamétrica ( )εφ += 121
2 .
REAL FUNCTION fPhi2(PGauss) REAL,INTENT(IN) :: PGauss
fPhi2 = (1+PGauss)/2 END FUNCTION fPhi2
La función fQRadial evalúa la función radial *q en el punto PG desde el nodo prmNodo.
( )( )
( )( ) ( )ABBA
II XXYYr
YYr
XXnu
n
uq −−⋅
⋅
−−
⋅−
−=•∇=∂
∂=
>−
>− ,2
,2
**
* 22 επε
επε
Los arreglos xf y yf son variables globales que indican las coordenadas x y y del nodo. REAL FUNCTION fQRadial(prmNodo,prmElem,PG)
INTEGER prmNodo,prmElem REAL XA, XB, YA, YB, XI, YI, X, Y, R2, fNum, fDen, PG
XI = xf(prmNodo) YI = yf(prmNodo) XA = xf(Conexion(prmElem,1)) XB = xf(Conexion(prmElem,2)) YA = yf(Conexion(prmElem,1)) YB = yf(Conexion(prmElem,2)) X = (XA + XB)/2 + PG*(XB - XA)/2 Y = (YA + YB)/2 + PG*(YB - YA)/2 R2 = (X - XI)*(X - XI) + (Y - YI)*(Y - YI) fNum = (X - XI)*(YA - YB) + (Y - YI)*(XB - XA) fDen = 2*3.141592654*R2 fQRadial = fNum/fDen END FUNCTION fQRadial La función fJacobiano calcula corresponde a un medio de la longitud del elemento de frontera.
( ) ( ) ( )22'
21
ABAB YYXX −+−=Γ ε
REAL FUNCTION fJacobiano(prmElem)
REAL XA,XB,YA,YB INTEGER prmElem
XA = xf(Conexion(prmElem,1)) XB = xf(Conexion(prmElem,2)) YA = yf(Conexion(prmElem,1)) YB = yf(Conexion(prmElem,2)) fJacobiano = SQRT((XB - XA)**2 + (YB - YA)**2)/2 END FUNCTION fJacobiano
La función IntegralG1 corresponde a la integral de frontera, evaluada mediante el uso de
integración gaussiana de cuatro puntos.
( )( )( )
( )∫Γ
Γ
εε
εεφ d
r'
1
1ln
( )( )( ) ( )( )
( ) ( )∫Γ
−+−
−+−− ε
εεε dYYXX
YYXXABAB
II
22
22 211ln1
21
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.
( )( )( )
( )∫Γ
Γ
εε
εεφ d
r'
2
1ln
REAL FUNCTION IntegralG2(prmNodo,prmElem)
INTEGER prmNodo,prmElem,I,J REAL f1,f2,f3,f4,fResultado IntegralG2 = 0.0 f1 = 0.0 f2 = 0.0 f3 = 0.0 f4 = 0.0 fResultado = 0.0 DO I = 1,4 f1 = fPhi2(PGauss(I)) f2 = fURadial(prmNodo,prmElem,PGauss(I)) f3 = FPeso(I) f4 = fJacobiano(prmElem) fResultado = (f1*f2*f3*f4) IntegralG2 = IntegralG2 + fResultado END DO
END FUNCTION IntegralG2 La función fURadial evalua la función radial *u en con base en el nodo prmNodo hasta el punto de gauss PG del elemento prmElem.
( )( )( ) ( )( )
−+−=
22
* 1ln21
II YYXXu
εεπε
REAL FUNCTION fURadial(prmNodo,prmElem,PG)
REAL XA,XB,YA,YB,XI,YI,X,Y,R, PG INTEGER prmNodo,prmElem
XI = xf(prmNodo) YI = yf(prmNodo) XA = xf(Conexion(prmElem,1)) XB = xf(Conexion(prmElem,2)) YA = yf(Conexion(prmElem,1)) YB = yf(Conexion(prmElem,2)) X = (XA + XB)/2 + PG*(XB - XA)/2 Y = (YA + YB)/2 + PG*(YB - YA)/2 R = SQRT((X - XI)**2 + (Y - YI)**2) fURadial = (1/(2*3.141592654))*ALOG(1/R) END FUNCTION fURadial
En la subrutina CalcularMatricesAF se toman las matrices H y G como variables de
entrada y a partir de estas se construyen las matrices A y F. Este cambio es necesario
debido a que en las matrices H y G existen columnas que corresponden a valores de
frontera conocidos y columnas que corresponden a valores desconocidos. Por lo tanto en
el sistema HQ + D = GU existen valores conocidos en los vectores Q y de U. Para poder
resolver este sistema se debe llevar a la forma AX = B, donde la matriz A contendrá todas
las columnas que corresponden a las variables desconocidas y el vector B contendrá el
valor de todas las valores conocidos multiplicados por su fila columna correspondiente.
Esto requiere un intercambio de columnas entre las matrices H y G. Para realizar este
intercambio se crean dos matrices auxiliares A y F donde A contendrá las columnas
correspondientes a las variables desconocidas y F contendrá los valores de las columnas
correspondientes a las variables conocidas. En el vector C se calculara el resultado de
multiplicar la matriz F por los valores conocidos y se colocará el resultado en el vector B.
Con lo cual se obtiene el sistema AX = B.
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 !U(nNodo) Conocido, Q(Actual) Desconocido Q(Anterior) Conocido IF (CF(Actual) .EQ. 0 .AND. CF(Anterior) .EQ. 1) THEN U(nNodo) = VF(Actual)
Q(Anterior) = VF(Anterior) DO J=1,nnf A(J,nElem) = -G(J,Actual) F(J,Actual) = -H(J,nElem) F(J,Anterior) = G(J,Anterior) END DO END IF !U(nNodo) Conocido, Q(Actual) Conocido Q(Anterior) Desconocido IF (CF(Actual) .EQ. 1 .AND. CF(Anterior) .EQ. 0) THEN U(nNodo) = VF(Anterior) Q(Actual)= VF(Actual) DO J=1,nnf A(J,nElem) = -G(J,Anterior) F(J,Anterior) = -H(J,nElem) F(J,Actual) = G(J,Actual) END DO END IF !U(nNodo) DesConocido, Q(Actual) Conocido Q(Anterior) Conocido IF (CF(Actual) .EQ. 1 .AND. CF(Anterior) .EQ. 1) THEN Q(Anterior) = VF(Anterior) Q(Actual)= VF(Actual) DO J=1,nnf A(J,nElem) = H(J,nElem) F(J,Anterior) = G(J,Anterior) F(J,Actual) = G(J,Actual) END DO END IF END DO WRITE(Salida,*) "Matriz A" CALL ImprimirMatriz(A) WRITE(Salida,*) "Matriz F" CALL ImprimirMatriz(F) !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,
e
M
e
r
ki AbudbuD ∑ ∑∫
= =Ω=
=Ω1 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 !Al completarse la integración sobre el dominio completo !desde el punto i el resultado se coloca en el vector D D(I) = IntegralDominio WRITE(Salida,*) I," ",D(I) END DO END SUBROUTINE INTEGRALESAREA La subrutina CalcularPuntosInternos calcula el potencial de los puntos interiores del
dominio, es decir los puntos que no están en la frontera. Para esto se aprovecha el hecho
de que las matrices H, la matriz G y el vector D ya están calculados y también se conocen
los valores del potencial y del flujo de calor en cada uno de los puntos de la frontera, por
lo tanto solo es necesario calcular la expresión:
∫ ∫∫ΓΓ
Ω−Γ−Γ= dbuduqdquuc ii ***
La cual expresada en forma matricial para obtener iu queda así:
∑ ∑=
−−=1j
ijijjiji DuHqGu
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 END SUBROUTINE CalcularPuntosInternos
4.6 SOLUCION MEDIANTE SOFTWARE DE ELEMENTOS FINITOS ANSYS 8.0 Para resolver el problema con el programa ANSYS 8.0 se planteo un modelo
tridimensional con 12 elementos por lado.
Figura 19. Malla empleada.
Figura 20. Distribución de nodos clave para lectura de resultados.
Figura 21. Temperaturas.
4.7 RESULTADO COMPARATIVO
En la tabla siguiente se muestra el resumen de los resultados obtenidos por cada método.
Metodo FDM FVM FEM BEM ANSYS 8.0Nodo T T T Q T Qd Qa T
1 300.00 300.00 300.00 -53.30 300.00 10.00 -57.45 300.002 200.00 200.00 200.00 198.76 10.00 10.00 197.573 100.00 100.00 100.00 98.01 10.00 10.00 97.574 0.00 0.00 0.00 43.30 0.00 42.74 10.00 0.005 0.00 0.00 0.00 120.00 0.00 61.94 61.94 0.006 0.00 0.00 0.00 120.00 0.00 61.97 61.97 0.007 0.00 0.00 0.00 46.70 0.00 10.00 42.66 0.008 100.00 100.00 100.00 98.02 10.00 10.00 97.579 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.0011 300.00 300.00 300.00 -80.00 300.00 -39.63 -39.63 300.0012 300.00 300.00 300.00 -80.00 300.00 -39.60 -39.60 300.0013 210.00 210.00 210.00 210.39 209.6514 110.00 110.00 110.00 109.77 109.6515 110.00 110.00 110.00 109.77 109.6516 210.00 210.00 210.00 210.39 209.65
Tabla 2. Resultado comparativo métodos finitos.
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:
300 200 100 0
20 20 20-56.7 46.7
-80 210 110 120
T = 300 °C B= -180 T = 0 °C
-80 210 110 120
-53.3 43.320 20 20
1 432
8 7
6
512
11
10 9
13 14
1516
Figura 22. Resultado por el método de elementos finitos.
Cuyo balance es como sigue:
Por la cara W ingresan 56.7 + 80 + 80 + 53.3 = 270 julios.
El calor generado es 5x6x6 = 180 julios.
El aumento de calor en el sistema es 270 + 180 = 450 julios.
La salida de calor por la cara N es 10 x 6 = 60 julios.
La salida de calor por la cara S es 10 x 6 = 60 julios.
Por la cara E salen: 46.7 + 120 + 120 + 43.3 = 330 julios.
Total calor que abandona el sistema: 60 + 60 + 330 = 450 julios.
Se cumple en condiciones de flujo estable que el aumento de calor es igual a la
disminución en el sistema: 270 + 180 = 60 + 60 + 330 = 450 julios.
Para el método de los elementos de frontera se tiene el siguiente resultado:
300 198.75 98.02 0
10 10 10 10 10 10-57.37 42.66
-39.63 210.39 109.77 61.97-39.63 61.97
T = 300 °C B= -180 T = 0 °C
-39.6 210.39 109.77 61.94-39.6 61.94
-57.45 42.7410 10 10 10 10 10
300 198.76 98.01 0
1 432
8 7
6
512
11
10 9
13 14
1516
Figura 23. Resultado por el método de elementos de frontera.
Cuyo balance es como sigue:
Por la cara W ingresan 57.37+39.63x2+39.2x2+57.45 = 273.28 julios.
El calor generado es 5x6x6 = 180 julios.
El aumento de calor en el sistema es 273.28 + 180 = 453.28 julios.
La salida de calor por la cara N es 10 x 6 = 60 julios.
La salida de calor por la cara S es 10 x 6 = 60 julios.
Por la cara E salen: 42.74+61.94x2+61.97x2+42.66 = 333.22 julios.
Total calor que abandona el sistema: 60 + 60 + 330 = 453.22 julios.
Se cumple en condiciones de flujo estable que el aumento de calor es igual a la
disminución en el sistema: 273.28 + 180 = 60 + 60 + 333.22 ≅ = 453.2 julios.
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.
5.1 ESQUEMA GENERAL
Figura 24. Estructura del programa.
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.
ModuloGlobales
ModuloPrincipal
ModuloDiferencias
Finitas
ModuloVolumenes
Finitos
ModuloElementos
Finitos
ModuloElementos de Frontera
ModuloLectura
ModuloRutinas
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 coordenadas 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.
5.3 MODULO LECTURAS
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 OPEN(Entrada, FILE = 'Problema.inp', STATUS='OLD') OPEN(Salida, FILE = 'Salida.txt', STATUS='REPLACE') 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) !Leer los nodos de las celdas internas triangulares WRITE(Salida,*) 'Conexión de los nodos de las celdas internas' READ(Entrada,*)(nCelda,(NodosDeCeldas(nCelda,nNodo),nNodo=1,3),nCelda=1,nci) WRITE(Salida,"(4I4)")(nCelda,(NodosDeCeldas(nCelda,nNodo),nNodo=1,3),nCelda=1,nci)
!Leer las condiciones de frontera para el método elementos de frontera write(Salida,*) "Condiciones frontera" READ(Entrada,*) (CF(I),VF(I),I=1,2*NNF) WRITE(Salida,"(I4,F7.2)") (CF(I),VF(I),I=1,2*NNF) write(Salida,*) "Fin Lectura" RETURN END SUBROUTINE LECTURA
5.4 MODULO PRINCIPAL
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 SELECT CASE (Opcion) CASE (1) CALL DiferenciasFinitas CASE (2) CALL VolumenesFinitos CASE (3) CALL ElementosFinitos CASE (4) CALL ElementosFrontera END SELECT END DO
END PROGRAM Principal
Su función es enlazar y coordinar los distintos componentes de la aplicación.
5.5 MODULO RUTINAS Este modulo contiene las siguientes funciones y subrutinas:
Subrutina ResolverSistema(Matriz,X,B)
Resuelve el sistema AX = B
Donde: A es la matriz de entrada.
X es el vector solución del sistema.
B es el vector del lado derecho del sistema.
Para resolver el sistema la subrutina realiza una llamada a la función LSARG de la librería
IMSL de Fortran:
CALL LSARG (N, Matriz, LDA, B, IPATH, X)
Para mostrar el vector solución se utiliza la función WRRRN de la misma librería.
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.
Los métodos finitos requieren la división del sistema en regiones, su descripción
geométrica, topológica y condiciones que afectan al sistema. Dependiendo del tipo de
sistema estos aspectos pueden variar considerablemente. La descripción geométrica se
refiere a la ubicación de los puntos de acuerdo con el sistema de coordinas utilizado. La
descripción topológica se refiere a que puntos conforman cada elemento del dominio. Y
las condiciones se refieren a cualquier conjunto de variables o medidas dadas para
puntos o elementos dados.
El modelo de un sistema elaborado mediante elementos discretos puede variar
notablemente de acuerdo con el número de puntos elegido, el número y forma de
elementos, el sistema de coordenadas, el número de grados de libertad o variables para
cada punto y las funciones de forma e interpolación seleccionadas. Mediante una
definición adecuada del sistema que se desea modelar, eligiendo un sistema de
coordenadas apropiado y aprovechando las propiedades de la simetría, el tamaño,
complejidad y dimensionalidad del problema se puede reducir.
El tiempo de preparación de un modelo y su tiempo de ejecución aumenta
exponencialmente con el número de puntos y elementos utilizados para construir el
modelo. Un error muy común consiste en tratar de modelar un sistema con más exactitud
de la requerida, lo cual ocasiona retrasos, aumento de costos para la obtención de los
resultados o vuelve la solución impractica por la cantidad de información que se debe
recoger y analizar.
La estrategia de solución del sistema de ecuaciones resultante del modelo incide en el
tiempo de solución del problema y en la cantidad de almacenamiento necesaria para
realizar los cálculos internos. Por lo cual para problemas pequeños y de propósito
ilustrativo la solución directa del sistema y la representación completa de la matriz puede
ser apropiado, pero esto no sucede en problemas grandes los cuales requieren otro tipo
de procesamiento del modelo y de almacenamiento de la matriz.
La reducción del orden de las ecuaciones diferenciales asociadas a un sistema, mediante
la integración por partes basada en el uso del teorema de Green facilita notablemente el
tratamiento matemático de los métodos finitos.
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.
Cuando se requiera construir un modelo nuevo es recomendable iniciar con un modelo
pequeño que se pueda verificar y validar fácilmente y solo aumentar su tamaño en la
medida que se requiera para obtener los resultados apropiados con la resolución
requerida.
Existen gran cantidad de programas comerciales y académicos basados en algunos de
los métodos finitos. Sin embargo, estos en su mayoría están escritos para aplicaciones o
problemas específicos. Por lo cual al intentar resolver un problema mediante métodos
numéricos es conveniente revisar si los programas existentes satisfacen la necesidad.
Solo en casos muy específicos y para aplicaciones particulares se recomendaría escribir
un programa.
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. BREBBIA, Carlos Alberto, DOMINGUEZ, J. Boundary elements. An introductory course. 2ed. Boston: Southampton, 1992. 206p. (Computational mechanics publications) BREBBIA, Carlos Alberto, PARTRIDGE, P.W.,WROBEL,L.C. The dual reciprocity boundary element method. 2ed. Boston: Southampton, 1992. 276p. (Computational mechanisc Publications) 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. HSU, Hwei P. Analisis vectorial. Delaware: Addison-Wesley Iberoamericana, 1987. 286p. KAPLAN, Wilfred. Matemáticas avanzadas. Para estudiantes de ingeniería. Mexico: Fondo Educativo Interamericano, 1985. 874p. 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. GALERKIN, Boris Grigorievich. [En línea]. <http://www.history.mcs.st- andrews.ac.uk/ Mathematicians/Galerkin.html>
top related