Table Of ContentUniversidad de Las Palmas de Gran Canaria
Instituto Universitario de Sistemas Inteligentes y
Aplicaciones Num´ericas en Ingenier´ıa
Tesis Doctoral
Implementaci´on de un algoritmo de
refinamiento/desrefinamiento para
mallas de tetraedros
Jos´e Mar´ıa Gonz´alez Yuste
Las Palmas de Gran Canaria, mayo de 2007
Universidad de Las Palmas de Gran Canaria
Programa de Doctorado en Sistemas Inteligentes y Aplicaciones
Num´ericas en Ingenier´ıa
Instituto Universitario de Sistemas Inteligentes y
Aplicaciones Num´ericas en Ingenier´ıa
Tesis Doctoral
Implementaci´on de un algoritmo de
refinamiento/desrefinamiento para
mallas de tetraedros
Autor Director Director
Jos´e Ma Gonz´alez Yuste Rafael Montenegro Armas Jos´e Ma Escobar S´anchez
Las Palmas de Gran Canaria, mayo de 2007
A Mila y Javier
Agradecimientos
Hay muchas personas que me han apoyado y han contribuido para que este
trabajo llegara a buen t´ermino.
En primer lugar, quiero mencionar a mi director Rafael Montenegro. Han
sido innumerables las tardes que hemos pasado comentando infinidad de temas
(y no s´olo de investigaci´on). Su paciencia conmigo y sus actos de fe cuando yo
le propon´ıa alguna locura no tienen precio.
Tambi´en quiero agradecer el entusianmo de Jos´e Ma Escobar, mi otro direc-
tor, y de Gustavo Montero, director de la divisi´on GANA del IUSIANI. Jos´e
Ma siempre anda buscando algo nuevo, siempre proponiendo alguna aplica-
ci´on...deber´ıa descansar un poco. Gustavo siempre aportaba alguna soluci´on
cuando nos atasc´abamos en un problema y nos daba una salida f´acil y elegante.
A mi compan˜ero (ya doctor) Eduardo Rodr´ıguez Barrera, le debo m´as de lo
que puedo agradecerle en estas l´ıneas. Me ha facilitado much´ısimo las cosas y
siempre ha estado a mi disposici´on cuando lo he necesitado.
A mi mujer, Mila...por fin! Siempre ha estado anim´andome, empuj´andome
y hasta persigui´endome para que continuara con la labor investigadora. Si mi
ocupaci´on laboral y familiar me llevaban el 110% del tiempo, has conseguido
aligerarme much´ısimo la carga para que siguiera adelante. Gracias por tu pa-
ciencia y tu comprensi´on en todas esa jornadas at´ıpicas en las que el dormir era
un suen˜o. Y por encargarte de nuestro hijo, Javier, que antes de cumplir los dos
an˜os ya distingu´ıa perfectamente lo que era un tri´angulo. Afortunadamente au´n
no sabe lo que es un tetraedro.
Tambi´en quiero mencionar a mis padres, hermanos, familiares y amigos que
han estado siempre interes´andose y anim´andome para que concluyera este tra-
bajo. Gracias a todos.
vi
Esta tesis ha sido desarrollada en el marco de los proyecto subvencionados
porelMinisteriodeCienciayTecnolog´ıayFEDER,REN2001-0925-C03-02/CLI
tituladoModelizacio´n num´erica de transporte de contaminantes en la atmo´sfera,
y CGL2004-06171-C03-02/CLI titulado Modelizacio´n y simulacio´n num´erica de
campos de viento orientados a procesos atmosf´ericos.
´
Indice general
1. Introducci´on 1
1.1. Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Justificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. Metodolog´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Desarrollo 9
2.1. Programaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1. Tipos de datos y clases . . . . . . . . . . . . . . . . . . . 10
2.1.2. Plantillas . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3. Punteros . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2. La Standard Template Library . . . . . . . . . . . . . . . . . . . 11
2.3. POSIX threads . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1. Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2. Mutex y Secciones cr´ıticas . . . . . . . . . . . . . . . . . 16
2.3.3. Variables de condici´on . . . . . . . . . . . . . . . . . . . 17
2.4. Modelo de objetos . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.1. Objetos de la malla . . . . . . . . . . . . . . . . . . . . . 20
2.4.2. Clases para la resoluci´on de problemas . . . . . . . . . . 22
2.4.3. Clases que dan soporte a estructuras de datos . . . . . . 22
2.4.3.1. Iterador . . . . . . . . . . . . . . . . . . . . . . 23
2.4.3.2. Threads y secciones cr´ıticas . . . . . . . . . . . 23
2.4.3.3. Acceso a ficheros . . . . . . . . . . . . . . . . . 23
2.4.4. Agregaci´on y uso . . . . . . . . . . . . . . . . . . . . . . 24
2.5. Estructuras de datos . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.1. Carga inicial de una malla . . . . . . . . . . . . . . . . . 25
2.5.2. Relaci´on entre elementos . . . . . . . . . . . . . . . . . . 26
´
viii Indice general
2.5.3. Operadores de conjuntos . . . . . . . . . . . . . . . . . . 27
2.5.4. Generaci´on/Eliminaci´on de elementos . . . . . . . . . . . 28
2.5.5. Iteraciones sobre elementos . . . . . . . . . . . . . . . . . 29
3. Algoritmo de Refinamiento 31
3.1. Presentaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1. Divisi´on en 8 tetraedros . . . . . . . . . . . . . . . . . . 35
3.1.2. Propagaci´on del algoritmo . . . . . . . . . . . . . . . . . 36
3.2. Implementaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3. Proceso de Marcado . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.1. Clasificaci´on de tetraedros . . . . . . . . . . . . . . . . . 38
3.3.2. Estudio de transitorios . . . . . . . . . . . . . . . . . . . 39
3.3.3. Eliminaci´on de transitorios . . . . . . . . . . . . . . . . . 41
3.4. Proceso de divisi´on . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.1. Paralelizaci´on del proceso de divisi´on . . . . . . . . . . . 43
3.4.2. Lanzamiento de procesos . . . . . . . . . . . . . . . . . . 43
3.4.3. M´odulo principal de divisi´on . . . . . . . . . . . . . . . . 44
3.4.4. Procesos paralelos . . . . . . . . . . . . . . . . . . . . . . 46
3.4.5. Finalizaci´on de procesos . . . . . . . . . . . . . . . . . . 46
3.4.6. Etiquetado de elementos . . . . . . . . . . . . . . . . . . 47
3.4.6.1. Notaci´on . . . . . . . . . . . . . . . . . . . . . 47
3.4.7. Divisi´on de aristas . . . . . . . . . . . . . . . . . . . . . 48
3.4.8. Divisi´on de caras . . . . . . . . . . . . . . . . . . . . . . 49
3.4.8.1. Cara con una arista marcada . . . . . . . . . . 49
3.4.8.2. Cara con dos aristas marcadas . . . . . . . . . 50
3.4.8.3. Cara con tres aristas marcadas . . . . . . . . . 50
3.4.9. Divisi´on de tetraedros . . . . . . . . . . . . . . . . . . . 52
3.4.9.1. Tetraedro con una arista marcada . . . . . . . . 52
3.4.9.2. Tetraedro con dos aristas marcadas en la misma
cara . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.9.3. Tetraedro con dos aristas marcadas en distinta
cara . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.9.4. Tetraedrocon tres aristasmarcadasen la misma
cara . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.9.5. Tetraedro con las seis aristas marcadas . . . . . 57
3.5. Proceso de Compactaci´on . . . . . . . . . . . . . . . . . . . . . 60
Description:Aplicaciones Numéricas en Ingenier´ıa. Tesis Doctoral. Implementación de un algoritmo de refinamiento/desrefinamiento para mallas de tetraedros.