Sei sulla pagina 1di 17

UNIVERSIDAD DE TARAPACÁ

ESCUELA UNIVERSITARIA DE INGENIERÍA MECÁNICA;


EUDIM

Ingeniería Civil Mecánica

“PROYECTO 1: TEST DE CONVERGENCIA”

Alumno:
Hugo Muñoz Valdivia

Correo electrónico:
Hugo.gamv@gmail.com

Profesor:
Cristóbal Castro

Asignatura:
EFP: “MECANICA COMPUTACIONAL”

Fecha de entrega:
23 de Mayo del 2019

ARICA – CHILE
2019
INDICE

INTRODUCCION ........................................................................................................................ 3
OBJETIVOS ................................................................................................................................ 4
1. Objetivo general:............................................................................................................. 4
2. Objetivos específicos: .................................................................................................... 4
PROBLEMATICA....................................................................................................................... 5
DESARROLLO ........................................................................................................................... 7

2
INTRODUCCION

En el presente proyecto se realiza el análisis de convergencia para una ecuación


diferencial mediante un método numérico. El análisis es realizado mediante el
software para programación “Python”, utilizando códigos generados en clases
llamados “PostProcess” y “DiferenciasFinitas”.

De la ejecución de los programas mencionados anteriormente, se obtienen


gráficos de dispersión, tablas comparativas y el error de cálculo, para así obtener
el orden de convergencia.

Para una mejor comparación de datos, se realiza un segundo análisis de


convergencia, utilizando la ecuación diferencial de segundo grado, así logrando
identificar que método obtiene un costo computacional más óptimo, según los
requisitos requeridos.

3
OBJETIVOS

1. Objetivo general:

- Verificar el orden de convergencia de un método número aplicado a


una ecuación diferencial.

2. Objetivos específicos:

- Obtener la solución exacta de la ecuación modelo para un tiempo y


dominio especifico.
- Medir el error de la solución numérica utilizando las normas 𝐿1 , 𝐿2 𝑦 𝐿∞ .
- Extender el orden de convergencia con una aproximación espacial de
segundo grado.
- Medir el error de la solución numérica de la ecuación de segundo
grado, utilizando las normas 𝐿1 , 𝐿2 𝑦 𝐿∞ .
- Comparar el tiempo de cálculo para ambos modelos.

4
PROBLEMATICA

En el proyecto presente se busca verificar el orden de convergencia de un


método numérico aplicado a una ecuación diferencial, en este caso la ecuación
modelo es:

𝑑𝑢(𝑥, 𝑡) 𝑑𝑢(𝑥, 𝑡)
+𝑎∗( )=0
𝑑𝑡 𝑑𝑥

La solución numérica FTBS construida con diferencias finitas para la ecuación 1,


se expresa como:

∆𝑡 𝑛
𝑢𝑖𝑛+1 = 𝑢𝑖𝑛 − 𝑎 𝑛
[ 𝑢 − 𝑢𝑖−1 ]
∆𝑥 𝑖

Con “i” perteneciente al intervalo [1, N] y N es el número de celda o puntos de


discretizacion en el espacio.

El dominio de cálculo está definida por x perteneciente a [0,5] y t perteneciente


al intervalo [0, 3], siendo su constante a = 1,0. La condición inicial está dada por:

(𝑥 − 1)2
𝑢(𝑥, 0) = exp (− )
0,08

Para el desarrollo del proyecto se abarcan los siguientes puntos:

A. Solución exacta
Construir la solución exacta de la ecuación modelo (1) para el tiempo t =
3,0 y en x perteneciente [0,5]

B. Orden de convergencia
Utilizando la definición de norma, medir el error de la solución numérica
utilizando las normas 𝐿1 , 𝐿2 𝑦 𝐿∞ .para 5 mallas de cálculo. Comparar estos
errores para calcular el orden de convergencia.

5
C. Extender orden de convergencia
Utilizando las diferencias finitas, resolver la ecuación (1) con una
aproximación espacial de segundo grado. Desarrollar el método y escribir
el esquema numérico final.

D. Orden de convergencia
Utilizando la definición de norma, medir el error de la nueva solución
numérica utilizando las normas 𝐿1 , 𝐿2 𝑦 𝐿∞ , para 5 mallas de cálculo.
Comparar estos errores para calcular el orden de convergencia.

E. Tiempo de calculo
Defina un dominio computacional y un tiempo final para la solución
numera y compare el tiempo de cálculo. La idea es entender si es más
eficiente en costo computacional un método de primer orden con malla
fina o un método de segundo orden y malla gruesa.

6
DESARROLLO

1. .

Para encontrar la solución exacta de la ecuación modelo (1), fue necesario


modificar el software desarrollado en clases “DiferenciasFinitas” (Figura 1),
donde se puede observar que para trabajar esta ecuación fue necesario
cambiar la condición inicial para la línea de código 15 y 23. Además, fue
necesario implementar el dominio del espacio que se encuentra entre los
intervalos [0,5] los cuales están presente en la línea 30 y 31
correspondientemente. Lo mismo para la definición tiempo la cual esta
expresada en la línea 36 bajo el nombre “FinalTime”, todas las líneas
expresadas en este punto se encuentran en la Figura 1.

Figura 1.

7
Una vez definida las condiciones iniciales, se procede a iterar para valores
de malla (N) de 51, 101, 201, 401 y 801, para esto se realizaron la secuencia
de comandos presente en la figura 2, donde la línea de comandos 45, 46 y
47 define los vectores. En las líneas 49 hasta 54 se definen las condiciones
del grafico a generar y los bloques 56 a 81, define el proceso de desarrollo
del modelo matemático para cada iteración necesaria.

Figura 2.

Ya insertadas todas líneas de comando, se ejecuta la secuencia de códigos


presente en la figura 1, 2 y 3. De esa forma obteniéndose un archivo de
lectura, el cual almacena todo los datos registrados para cada iteración (Línea
94 a 128), Una vez terminada la ejecución de la secuencia de códigos, se
obtienen las curvas correspondiente a su solución exacta y a su solución
iterada, estas están definidas por la líneas de comando 84 a 90. La curva
obtenida se encuentra presente en el grafico 1.

8
Figura 3.

9
Grafico 1. Solución exacta en azul en comparación a la solución iterada (en rojo) con N = 51

2.
El proceso anterior, se repite 5 veces para distintos número de nodos
(51, 101, 201, 401 y 801) datos que quedan registrados en formato “block
de texto” con el nombre de “Solution_N=X_CFL=0.9.txt”. Una vez
desarrollados todos los archivos de texto, con los datos registrados por el
programa “DiferenciasFinitas”, se procede a ejecutar “PostProcess”
(Figura 4 y 5), código encargado de realizar la medición del error numérico
para las normas 𝐿1 , 𝐿2 𝑦 𝐿∞ .

10
Figura 4. Secuencia de códigos “PostProcess” Parte 1.

11
Figura 5. Secuencia de códigos “PostProcess” Parte 2.

El código inicial de “PostProcess” abarca el análisis de 4 mallas, por lo cual, fue


necesario agregar nuevas líneas de comandos para analizar la quinta malla. La
secuencia 84 a 86 corresponde a una malla de 800 nodos por consecuencia de
esto, es necesario añadir las líneas 99 y 111 para la lectura del archivo de texto.
Una vez realizado lo anterior, se procede a ejecutar el programa, obteniéndose
las siguientes tablas de resultados:

12
Tabla 1. Tabla con los resultados de error obtenidos para cada malla.

Tabla 2. Tabla con los resultados del orden de convergencia para cada malla.

De los datos obtenidos anteriormente, se puede generar la tabla de


convergencia, siendo esta:

k ∆𝑥 𝐸1 𝜗1 𝐸1 𝜗1 𝐸1 𝜗1
1 1/50 0,2534 - 0,141383 - 0,139409 -
2 1/100 0,1505 0,751653 0,0791133 0,837616 0,0806706 0,789213
3 1/200 0,0834 0,851644 0,0422009 0,906647 0,0438864 0,878269
4 1/400 0,0441 0,919269 0,0218537 0,949396 0,0229714 0,933932
5 1/800 0,0227 0,969228 0,0112092 0,974397 0,0118038 0,971762
Tabla 3. Tabla de convergencia

13
3.

De la misma forma que en el punto 1, se definen las variables iniciales, a


diferencia que las líneas de comando 70 a 82 (Figura 6) se utiliza la
ecuación de segundo grado definida a continuación:

𝑎 𝑑𝑡
𝑢𝑖𝑛+1 = 𝑢𝑖+1
𝑛 𝑛
− ( ) ∗ ( ) ∗ (𝑢𝑖+1 𝑛
− 𝑢𝑖−1 )
2 𝑑𝑥

La ecuación de segundo grado, es planteada en el siguiente esquema


numérico:

Figura 6. Ecuación de segundo grado aplicado a la línea de comandos

Siguiendo los pasos realizados en el punto 1, se obtienen los distintos


documentos de textos para N = 51, 101, 201,401 y 801.

4.
Una vez registrado los datos con el nombre de
“Solution_N=X_CFL=0.9.txt”, se procede a ejecutar el programa
“PostProcess” (Figura 4 y 5), código encargado de realizar la medición del
error numérico para las normas 𝐿1 , 𝐿2 𝑦 𝐿∞ , obteniéndose las siguientes
tablas y gráficos:

14
Grafico 2. Dispersión de los errores registrados

Grafico 3. Gráficos obtenidos para distintos puntos de malla.

15
Tabla 4. Tabla con los resultados de error obtenidos para cada malla.

Tabla 5. Tabla con los resultados del orden de convergencia para cada malla.

De los datos obtenidos anteriormente, se puede generar la tabla de


convergencia, siendo esta:

k ∆𝑥 𝐸1 𝜗1 𝐸1 𝜗1 𝐸1 𝜗1
1 1/50 0,6771 - 0,479935 - 0,400732 -
2 1/100 0,5603 0,273169 0,374325 0,358549 0,326814 0,294166
3 1/200 0,4304 0,380521 0,265519 0,495475 0,245583 0,412259
4 1/400 0,2988 0,526498 0,17034 0,640397 0,165588 0,568616
5 1/800 0,1881 0,675445 0,101556 0,754814 0,102071 0,706144
Tabla 6. Tabla de convergencia de segundo grado

16
5.
Para el desarrollo de esta comparación, se establecieron los mismos
tiempos, y además se realizaron el mismo número de iteraciones para la
ecuación de primer y segundo grado. Debido a que el tiempo estimado
para el análisis es definido por el número de iteraciones realizadas, solo
se tomó en cuenta este valor para el grafico, ya que, es proporcional al
tiempo de cálculo.

Error vs nº iteraciones
0,8

0,7

0,6

0,5

0,4 Primer grado

0,3 Segundo grado

0,2

0,1

0
0 100 200 300 400 500 600

Grafico 4. Gráficos obtenidos para distintos puntos de malla.

El gráfico se puede observar que para un análisis de malla pequeña, la


ecuación de primer grado es mucho más eficiente en costo
computacional, ya que, al tratarse de un análisis simple, el cálculo del
error logra aproximarse para pequeños nodos.

En caso de someterse el análisis a una malla más grande, la ecuación de


segundo grado logra suplir el costo computacional, ya que, esta disminuye
los errores de forma considerable para iteraciones de alto rango, estos
casos son de suma utilidad para sistemas de grandes escalas, el cual
justifica el costo computacional.

17

Potrebbero piacerti anche