Claudio Lobos
     
Temas de memoria

Nota sobre conocimientos previos

Dado que no existe en la actualidad un curso sobre mallas geométricas para pregrado, el profesor entregará los conocimientos necesarios y específicos para un buen desarrollo de cada una de las siguientes memorias.

Para mayor conocimiento de los temas se recomienda venir a hablar directamente conmigo.

Nota sobre trabajo previo

Si bien la mayoría de los trabajos presentados se ven "muy complejos" para una memoria de ingeniería, se cuenta con una gran biblioteca que permite visualizar, leer distintos tipos de formato de mallas, realizar cálculos tridimensionales básicos, alamacenamiento de puntos 3D, caras, elementos etc. y que estará a disposición de los memoristas.

Temas propuestos
Propagación de la superficie hacia el interior del dominio para producir una malla de volumen

Dada una malla de superficie se enterderá por frentes el conjunto de caras que deben ser añdidas a un elemento de volumen. En un comienzo, toda cara del dominio input es considerada como un frente. Al ser "expandida" o "propagada" hacia el interior, ésta deja de ser considerada como un frente y las nuevas caras añdidas, que no son compartidas por otros elementos, pasan a ser "frentes". El proceso finaliza cuando no queda ningún frente (lo que es equivalente a que toda cara pertenece a un elemento volumétrico).
Esta técnica es conocida como Advancing Front y existe trabajo previo que es necesario retomar, adaptar, mejorar y proponer nuevas soluciones a casos bien específicos.
Perfectamente este tema da para una memoria y tesis de magíster (ambas partes no son vinculantes).

Representación de regiones internas en una malla 3D

Actualmente se cuenta con un generador de mallas 3D que ha sido largamente desarollado y utilizado. Este generador est´ preparado para recibir varias mallas de superficie que describen el dominio 3D (cascarón) que se necesita mallar. Una vez producida la malla es necesario que las estructuras internas sean claramente identificables y para ello es necesario desarrollar una estrategia de desplazamiento de nodos internos con tal de que cada elemento pertenezca a una sola región interna. Por ejemplo, si un cilindro atraviesa una caja, es necesario poder identificar los elementos 3D dentro de la caja que pertenecen al cilindro.

Generador de mallas de poliedros basado en Octree

Actualmente se cuenta con un generador de mallas 3D basado en el Octree y que permite contar con diferentes niveles de refinamiento. Por otro lado se cuenta con un generador de mallas de poliedros cuando se le provee de una nube de puntos que definen una zona convexa. El objetivo de esta memoria es mezclar ambos procesos en donde las transiciones de la malla Octree entre zonas de diferente nivel de refinamiento sea manejada mediante el generador de mallas de poliedro. Finalmente es necesario establecer comparaciones entre las mallas Octree actuales y aquellas de poliédricas.

Detección de problemas en la proyección de vértices sobre la superficie de un dominio

Se cuenta con una malla de volumen que aproxima medianamente un cierto dominio (definido por una malla de superficie). El último paso que queda por hacer es proyectar los vértices que aún residen al exterior del dominio sobre éste. Aquí se pueden dar dos casos complejos: (a) uno o más vértices deberían proyectarse sobre más de una sección de la superficie para representar correctamente el dominio y (b) un elemento tiene todos los nodos dentro del dominio, sin embargo uno o más arcos del elemento salen y vuelven a entrar al dominio. La forma más fácil de imaginar este problema es con la malla de un pie o una mano. Para el caso (a) supongamos que hay un elemento x que tiene nodos al interior del dedo d1 y otros fuera del dominio, que al mismo tiempo son compartidos por otro elemento y que tiene nodos al interior del dedo d2. En este caso, los nodos externos serán proyectados sobre el dedo más cercano, pero en realidad deberín dejar de ser nodos compartidos entre x,y y ser proyectados de forma independiente sobre d1,d2. Para el caso (b), hay un elemento que solo tiene nodos internos, pero unos están dentro de d1 y otros dentro de d2. Esta memoria debe detectar y proponer soluciones para ambos casos.

Extensión de patrones de transición Octree27

Se cuenta con una gama de patrones de transición para la técnica Octree27 y que debe ser ampliada para evitar el refinamiento innecesario entre zonas finas y gruesas. Para esto es necesario definir la distribución de hexaedros al interior de un hexaedro mayor que impone restricciones sobre sus caras. Existe harto trabajo avanzando y es necesario expandirlo para considerar todos los casos posibles.

Generador de mallas mixtas con árbol 248

Se cuenta con un generador de mallas 3D que permite sub-dividir el dominio recursivamente en 8 sub-dominios (Octree). Sin embargo, existen variadas aplicaciones donde dicha estrategia es excesiva y por lo tanto algunas veces solo se debería sub-dividir en solo 2 o 4 hijos un cubo. La presente memoria tiene por objetivo incorporar este tipo de refinamiento y asegurar ser capaz de producir una malla congruente al final del proceso.

Tesis de Magister terminadas
Maximizando el Uso de Hexaedros de Buena Calidad para Representar Características Finas en Mallas de Volumen Tipo Octree

Alumno: Cristopher Arenas.
Septiembre 2019

En los métodos que utilizan elementos mixtos, varios tipos de elementos son utilizados para representar la superficie de dominios geométricos, de acuerdo a la aplicación de patrones de superficie. Sin embargo, en ciertas regiones de los dominios llamadas regiones finas se han identificado problemas de representación al utilizar este tipo de patrones.

En este trabajo, se apostará por maximizar el uso de hexaedros de buena calidad en regiones del dominio identificadas como características finas, de modo de obtener una mejor representación del dominio, mejorar la calidad de la malla resultante y mantener congruencia topológica entre elementos.

Repairing Octree Boundary Transition Regions Composed of Different Types of Elements

Alumno: Esteban Daines.
October 2018

Octree–based algorithms recursively divide the space in 8 or 27 hexahedra (octants). The number of times the split process is applied over an octant is the Refinement Level (RL). When a mesh presents octants of different RL, it is required to manage the transition between fine and coarse regions of the mesh. To do this, transition patterns are applied over octants with neighbors of different RL.

The validity of the elements in the transition is ensured when the octant is a regular hexahedron. However, this may not be true when the octant is at the boundary of the domain, specially in concave regions.

In this work we introduce a novel node projection technique in order to repair the boundary elements of transition regions in the mesh. Tests results show that, in general, invalid elements can be eliminated without impacting adjacent elements.

Memorias en desarrollo
Mejoramiento de la calidad mediante redistribución de nodos

Alumno: Diego Salazar.

Una vez generada una malla, la calidad de los elementos puede no ser la mejor. Muchas veces es necesario contar con algoritmos que permitan mejorar los índices de calidad geométricos, pero sin dejar de representar correctamente el dominio. Para esto existen filtros como un Laplaciano, pero se busca implementar algoritmos más complejos que permitan mejorar sobre todo los peores elementos de la malla. Para ello se pueden re-localizar los puntos internos en función de generar mejoras. Esta memoria busca mejorar la calidad de los peores elementos de una malla sin perder nivel representación de la malla original.

Patrones de transición en la superficie de una malla Octree

Alumno: María Paz Vergara.

Los patrones de transición en una malla tipo Octree permiten generar zonas más densas que otras al interior del dominio. Sin embargo, cuando las transiciones se producen en la superficie estos patrones tienden a generar elementos inválidos o de mala calidad ya que se ven deformados producto de buscar representar el borde del dominio. Esta memoria busca generar una nueva serie de patrones que, al mismo tiempo de poder realizar una transición entre una zona fina y otra gruesa, logre representar correctamente el borde del dominio sin producir elementos inválidos. Se deben determinar los casos más comunes de este tipo de problemas y entregar la mayor cantidad de patrones posibles.

Reparación de Elementos de Transición de Mala Calidad en la superficie de una Malla Tipo Octree

Alumno: Víctor Franchis.

Los patrones de transición en una malla tipo Octree permiten generar zonas más densas que otras al interior del dominio. Sin embargo, cuando las transiciones se producen en la superficie estos patrones tienden a generar elementos inválidos o de mala calidad ya que se ven deformados producto de buscar representar el borde del dominio. Esta memoria busca integrar una etapa a posteriori para ubicarlos, refinarlos y continuar expandiendo automáticamente el refinamiento hasta que no existan elementos de mala calidad.

Uso Eficiente de Memoria Secundaria en un Generador de Mallas

Alumno: Diego Concha.

Esta memoria contempla el uso eficiente de memoria secundaria para generar mallas de un alto nivel de refinamiento. En otras palabras, permite manejar mallas con millones de puntos en vez de cientos de miles. Además se realizan otras mejoras en el generador de mallas que apunta a un mejor uso de la memoria principal.

Memorias finalizadas


[ mostrar memorias finalizadas ].



Total de Patrones de Transición para Técnicas Octree

Alumno: Javier Henríquez.
Septiembre de 2020

Existe una cantidad finita de patrones de transición en las técnicas de generación de mallas volumétricas basadas en Octree. El conocimiento de éstas, se debe al uso empírico y a métodos de generación aleatorios. Frente a esto se genera la siguiente duda, ¿Son todos estos, los patrones de transición existentes?

Con el fin de responder esta pregunta, y respaldar previos y futuros estudios, se ha realizado este trabajo, donde se obtendrá por medio de algoritmos de fuerza bruta, todos los patrones de transición existentes para las técnicas Octree 8 y Octree 27. Con estos resultados, se podrá concluir si se han estudiado todos los posibles casos o situaciones en documentos previos y futuros.

Extensión de Patrones de Transición para Mallas Hexaédricas tipo Octree

Alumno: Miguel Ibáñez.
Mayo de 2020

Los patrones actuales de la técnica de Octree27 produce refinamiento en cascada en situaciones que la zona de refinamiento contiene un subdominio hexaédrico. En este trabajo se propone un set de patrones nuevo que resuelve este problema. Además, se extiende el mapa de nodos internos para soportar los nuevos patrones. También, se realiza un análisis de la técnica Octree27 para determinar la cantidad de patrones posibles. Se realizan mejoras al programa mesher usado y se crea un proyecto open source.

Comparación Inicial de Refinamiento entre Mallas Mixtas y Hexaédricas

Alumno: Esteban Hernández.
Julio de 2018

Esta memoria contempla la implementación de la técnica Octree que divide recursivamente los octantes en 27 nuevos sub-octantes. Este tipo de acercamiento permite generar una malla de hexaedros con zonas finas y gruesas de refinamiento. Una vez implementada se comprará con técnica Octree que divide recursivamente los octantes en 8 nuevos sub-octantes. La comparación será a nivel de calidad de elementos y control sobre la cantidad de nodos y elementos de la malla resultante.

Representación de Características Internas en una Malla de Volumen

Alumno: Javier Figueroa.
Septiembre de 2017

Se desea desarrollar un conjunto de patrones que permitar aproximar de forma correcta, el conjunto de características internas producidas por la intersección de una o más superficies. Estos patrones deben reconocer y ser capaces de representar automáticamente todas las configuraciones posibles en un dominio 3D.

Integración de Código a Plataformas de Modelaro Open-Source

Alumno: Victor Cifuentes.
Agosto de 2017

La idea de esta memoria es integrar el código que permite generar una malla 3D de elementos mixtos a las plataformas: CamiTK y ArtiSynth. Para ello será necesario traspasar el código actual de C++ a Java y probar una correcta integración con ambas plataformas que son de tipo open-source y mundialmente utilizadas.

Uso de Patrones de Transición de Poliedros no Regulares

Alumno: Rodrigo Fuentes.
Junio de 2017

Esta memoria corresponde a integrar patrones de transición entre zonas gruesas y finas de una malla con un código ya existente, pero que genera elementos mixtos poco comunes para lograrlo. Estos elementos no son regulares, pero tienen la particularidad de ser co-esféricos, lo que los convierte en patrones ideales para simulaciones mediante Volúmenes Finitos.

Inclusión de Características Topológicas en Mallas de Superficie tras su Intersección

Alumno: Sebastián Faure.
Enero de 2017

Cuando se produce una intersección no nula entre dos superficies, sus respectivas condiciones topológicas no están consideradas mutuamente. Es decir, si la intersección de dos triángulos es un segmento, dichos trinángulos naturalmente no son capaces de respresntar dicho segmento. El objetivo de esta memoria es modificar las mallas de superficie que se intersectan con el fin de actulaizarlas dependiendo del tipo de intersecci´n que se produce. En el ejemplo anterior donde la intersección de dos triángulos es un segmento, el resultado debería ser que cada triángulo es reemplazado por 4 nuevos. En la actualidad existen algunos algoritmos que permiten realizar esto, sin embargo mediante esta memoria se busca producir mejores resultados y, a diferencia de otros trabajos, producir un nueva malla (superficie) cerrada que surja producto de la intersección de las mallas de entrada.

Mejoramiento de la Mantenibilidad y Extensibilidad de una Herramienta de Generación de Mallas Volumétricas

Alumno: Sebastián Tobar.
Abril de 2016

Por lo general, las aplicaciones que implementan algoritmos de alta complejidad son diseñadas descartando características relacionadas con la calidad del software, para obtener el mejor desempeño posible en términos de tiempo de ejecución y uso de memoria. En este trabajo, se realiza el rediseño de una aplicación de generación de mallas volumétricas, buscando mejorar su mantenibilidad y extensibilidad. Para esto, se rediseñó un componente del programa que es accedido con gran frecuencia, y que realiza una gran cantidad de labores, integrando el patrón de diseño "visitante" de Gamma et al. Las pruebas de desempeño realizadas demuestran que las diferencias en tiempo de ejecución son aceptables y las diferencias de uso de memoria son despreciables. La aplicación de métricas de calidad de software a las implementaciones realizadas demuestran una mejora en los atributos de calidad de extensibilidad y flexibilidad, a costa de la entendibilidad del diseño.

Detección de Características de un Dominio para Generar una Malla de Volumen que las Considere

Alumno: Cristopher Arenas.
Noviembre de 2015

Existen un conjunto de patrones de superficie que, en función de los nodos internos y externos que tiene un elemento que intersecta dicha superficie, permiten que un hexaedro sea reemplazado por otros tipos de elementos con el fin de mejorar la representación externa del dominio. Esto funciona bien para dominios que son más bien curvos, pero si el dominio presenta claramente bordes o esquinas, los patrones no son capaces de representar bien dichas características. El primer paso para solucionar esto consiste en detectar cuando (y sobre todo donde) existen claramente bordes y esquinas en el dominio input. Con esta información, los patrones de superficie pueden ser "alertados" y considerar por ende dichas características.

Mejoramiento de la Calidad de Elementos Mixtos en Patrones de Transición para un Octree

Alumno: Esteban Daines.
Noviembre de 2015

En la actualidad un conjunto de patrones de transición permiten concentrar nodos en una cierta región de interés para una simulación. Con esta mayor concentración de nodos, la simulación entrega resultados más precisos en dichas áreas, y al haber menos nodos en el resto del dominio, el conjunto de ecuaciones a resolver se logra en un menor tiempo. Por otro lado, cuando la malla posee elementos de mala calidad (según indicadores claramento establecidos), se pueden producir inestabilidades numéricas, las que pueden afectar los resultados de la simulación. El objetivo de esta memoria es detectar aquellos patrones que poseen elementos de menor de calidad y, mediante alguna estrategia, mejorar la calidad de estos.

Algoritmo de Transformaciones Geométricas Automático para Mallas Tipo Octree

Alumno: Sebastián Durán.
Octubre 2014

Si se tiene un dominio cualquiera representado por su superficie S, es posible generar una malla de volumen mediante un método como el Octree; sin mayores problemas. Sin embargo, si previo a utilizar el Octree, el dominio original S es rotado, por ejemplo en 90° con respecto al eje z, el resultado del Octree no será el mismo. Esta memoria busca generar un algoritmo que automáticamente rote el dominio S de forma de generar la menor cantidad de elementos posibles y potenciando la calidad de la malla final. Para ello será necesario desarrollar un estudio previo, por ejemplo, de la dirección predominante de las normales de las caras de S.

Framework Modular para Visión Estéreo Computacional

Alumno: Javier Ronda.
Octubre 2013

La Visión Computacional es un área de las Ciencias de la Computación que se dedica a estudiar el cómo las máquinas visualizan el mundo. La Visión Estéreo consiste en la obtención de información acerca de la profundidad de los objetos a través de 2 o más imágenes. El objetivo principal de esta memoria es aplicar ingeniería de software (en particular las relacionadas con la documentación y diseño del mismo) para implementar el prototipo de un Framework que permita combinar distintos algoritmos que se utilizan en la Visión Estéreo. Este Framework se transformará en una herramienta tanto para desarrolladores que implementen sus propias aplicaciones como para investigadores que quieran probar sus propios algoritmos.

Expansión de Frente para Generar una Malla Parcial de Volumen

Alumno: Matías Valdés.
Julio 2013

Generardor de mallas de volumen utilizando elementos mixtos. Propaga un subconjunto de caras de la malla de superficie input hacia el interior del dominio. Esta memoria busca generar una primera aproximación del problema de generar una malla conforme bajo un algoritmo que sigue la idea de Advancing Front. En particular, se tratará de resolver el problema para dominios convexos y se propondrá, dentro de lo posible, soluciones para tratar dominios cóncavos.

Diseño de Patrones de Transición entre Zonas Refinadas y Gruesas de una Malla de Volumen de Elementos Mixtos

Alumno: Eugenio González.
Abril de 2013

Se tiene una malla de volumen que representa adecuadamente un dominio, sin embargo esta malla cuenta con una cantidad excesiva de elementos que podría ser disminuido si se contara con un conjunto de patrones que permitan hacer una transición entre zonas donde se necesita un alto nivel de refinamiento y las zonas en que no. Actualmente existen algunos patrones, pero no son suficientes para considerar todos los casos. Además se cuenta con una implementación vieja que debe ser actualizada para considerar más casos de forma eficiente. Este tema es complejo y da fácilmente para un alumno que desee seguir desarrollándolo en un magíster.

Generación Eficiente de Mallas de Superficie a partir de Imágenes Médicas

Alumno: Joe Cabezas.
Noviembre de 2012

Se tiene un conjunto de imágenes en 2D, pero que están equi-distantes en una dirección ortogonal a las anteriores, de forma que es posible generar un cuerpo tridimensional discreto en una de sus dimensiones. En la actualidad existen algoritmos como Marching Cubes que permiten generar una primera malla de superficie, sin embargo en muchos casos estas mallas presentan problemas topológicos que pueden ser evitados mediante una implementación que considere más casos de borde. Mediante esta memoria se busca implementar de forma eficiente los pasos que permitirán obtener una malla de calidad sin pasar por varios algoritmos de mejoramiento de calidad y topología.

Optimización de un Algoritmo Geométrico por GPU

Alumno: Pablo Riedemann.
Noviembre de 2012

Se cuenta con un algoritmo que permite generar mallas de volumen. En la medida que la malla de superficie input contiene más triángulos, el algoritmo se vuelve muy costoso debido, principalmente, a dos funciones geométricas que se utilizan recurrentemente: (a) saber si un punto cualquiera está dentro o fuera del dominio y (b) dando un punto cualquiera, ser capaz de proyectarlo sobre la superficie input, sujeto a la condición de mínimo desplazamiento de éste. Esta memoria busca implementar estas dos funciones críticas en GPU a modo de optimizar el tiempo de generación total de la malla.

Rediseño y Programación de un Algoritmo Geométrico

Alumno: Sebastián Bravo.
Agosto de 2012

Se cuenta con un conjunto de clases en C++ que constituyen un algoritmo de generación de mallas geométricas 3D de volumen y se desea mejorar su orientación a objetos, además de desarrollar una interfaz para lectura, escritura, visualización y display de resultados estadísticos que actualmente se hacen sólo por consola. Este trabajo implica realizar el análisis mediante UML y luego reprogramar el código según sea necesario (C++).

Visualizador para Debugging Geométrico

Alumno: Andrés Almarza.
Junio de 2011

Una malla geométrica es un conjunto de nodos, arcos, caras y elementos que se relacionan entre sí. En ocasiones se detectan errores de una forma no visual y resulta muy complicado comprenderlos ya que se deben "imaginar" en función de las coordenadas la configuración del elemento. El motivo de este trabajo es entonces realizar este proceso de forma automática y visual. Por ejemplo, dado un elemento visualizar los índices de sus nodos, aislar un elemento de la malla, aislar todos los elementos de que compartan un nodo, superposición de mallas y varias otras operaciones.

Paralelización de un Octree

Alumno: Ignacio Lillo.
Junio de 2011

El algoritmo de generación de mallas conocido como Octree, consiste en tomar la "caja" o cubo mas grande que contenga al dominio que desea ser mallado y luego dividir este elemento recursivamente en ocho nuevos cubos hasta cumplir cierto requisito. El algoritmo ya esta implementado (en C++), pero se desea paralelizar así como también otros procesos asociados. Este trabajo se guiará de forma conjunta con el profesor Mauricio Solar.

Todos los temas serán dirigidos sólo en campus San Joaquín. Si algún tema no tiene interesados, será propuesto en Valparaíso.