Upload
others
View
16
Download
0
Embed Size (px)
Citation preview
Universidad Central “Marta Abreu” de Las Villas.
Facultad Matemática, Física y Computación Licenciatura en Ciencia de la Computación
Algoritmo para la fase de empaquetamiento del
Método de Elementos Distintos
AUTOR: Yusnel Rojas García
TUTORES: Lic. Yordanis Pérez Brito
Lic. Irvin Pablo Pérez Morales
Dictamen. Hago constar que el presente trabajo fue realizado en la Universidad Central
“Marta Abreu” de Las Villas como parte de la culminación de los estudios de la
especialidad de Ciencia de la Computación, autorizando a que el mismo sea
utilizado por la institución, para los fines que estime conveniente, tanto de forma
parcial como total y que además no podrá ser presentado en eventos ni
publicado sin la autorización de la Universidad.
Firma del autor
Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según
acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos
que debe tener un trabajo de esta envergadura referido a la temática señalada.
Firma del tutor Firma del tutor
Firma del jefe del
Laboratorio
Pensamiento
Pensamiento
We can't solve problems by using the same kind of thinking we used
when we created them.
Albert Einstein.
Dedicatoria
Dedicatoria
A mi madre.
A mis hermanos.
A mi padre.
Agradecimientos
A mi madre por su infito cariño y confianza en todos estos años.
A mis hermanos por estar siempre a mi lado.
A Mery por su constante preocupación.
A mi familia toda que siempre ha mostrado su afecto y apoyo.
A todos mis amigos por hacer de todos estos años valgan la pena…
En especial:
A mi hermano Yunier con quien siempre tuve el honor de contar.
Al Möver por su ayuda en todo momento.
A Honey, mi amiga y consejera.
Al Curra, Michel, Alexander (Sasha), Raimel (el quake), Dayron y Yoandy (el
Chino) de quienes recibí apoyo en disímiles ocasiones.
A Lisette por toda la ayuda prestada.
A todos los compañeros de estudio del Laboratorio VLIR.
A Roberto, el Muke, Recarey y especialmente a mis tutores Yordanis e Irvin que siempre me apoyaron durante la realización de este trabajo.
A Amaury que a pesar de estar lejos siempre brindo su ayuda.
A los ex integrantes del grupo IZEL y especialmente a Alcides que fue mi guía e
inspiración en todos estos años.
Resumen I
Resumen
Se presenta un código para la fase de empaquetamiento del Método de
Elementos Distintos, método que en el mundo cobra cada vez más fuerza en lo
que se refiere al trabajo con materiales discontinuos. Dicho código tiene
implementados algoritmos geométricos de avance frontal, los cuales son
eficientes.
En la presente investigación se muestran solamente resultados para partículas
circulares y esféricas, aunque el código se puede extender fácilmente a
cualquier otro tipo de partícula; con lo cual esta biblioteca alcanza un alto nivel
de generalidad y posibilidades de aplicación en problemas de la mecánica
computacional y en la ingeniería. Adicionalmente se realiza un estudio
estadístico de algunos parámetros que caracterizan las geometrías obtenidas.
Abstract II
Abstract
A code for the packing generation phase of the Distinct Element Method is
presented, being this method extensively used throughout the world when
dealing with discontinuous materials. Such code has implemented geometrical
advancing front algorithms which are efficient. In the present research are shown
only results for circular and spherical particles, although the code can easily be
extended to any other kind of particle. That’s why this library has a high level of
generality and possibilities of application in problems of the computational
mechanics and the engineering. Additionally a statistical study of some
parameters has been performed, characterizing the geometries obtained.
Índice III
Índice Introducción .................................................................................................................................................. 1
Capítulo 1: Marco Teórico. ................................................................................................................... 5
1.1. Estado del arte de la modelación de medios discontinuos. ........................................................... 5
1.2. Introducción. ................................................................................................................................. 5
1.3. Enfoques de modelación de los medios discretos. ........................................................................ 6
1.4. Método de elementos discretos: parte geométrica. ....................................................................... 8
1.5. Algoritmos de generación del Método de Elementos Discretos.................................................... 9
1.6. Algoritmos de Búsqueda de Contactos. ...................................................................................... 16
1.7. Estudios estadísticos de los empaquetamientos .......................................................................... 18
1.8. Conclusiones Parciales ................................................................................................................ 20
Capítulo 2: Algoritmo de generación de partículas ........................................................................... 21
2.1. Algoritmo general ....................................................................................................................... 21
2.2. Estimado de cantidad de partículas para una geometría. ............................................................. 23
2.3. Estructura de datos para el almacenamiento de las partículas. .................................................... 25
2.4. Algoritmo de búsqueda de vecindad. .......................................................................................... 27
2.4.1. Algoritmo No Binary Search(NBS). ....................................................................................... 27
2.4.2. Definición de las celdas. ......................................................................................................... 29
2.4.3. Ubicación de la geometría dentro del espacio de celdas. ........................................................ 29
2.5. Obtención de una nueva partícula. .............................................................................................. 33
2.6. Herramientas Desarrolladas. ....................................................................................................... 36
2.7. Conclusiones Parciales ................................................................................................................ 42
Capítulo 3: Análisis de Resultados ...................................................................................................... 43
3.1. Desempeño del algoritmo implementado .................................................................................... 43
3.1.1. Comparación en cuanto a la fracción de volumen del empaquetamiento ............................... 43
3.1.2. Comparación en cuanto a la velocidad de generación ............................................................ 45
3.1.3. Curvas de tiempo de los empaquetamientos ........................................................................... 48
3.2. Caracterización estadística de los empaquetamientos obtenidos. ............................................... 49
3.2.1. Distribución espacial de los centros de las partículas ............................................................. 49
3.2.2. Comprobación de la Aleatoriedad de los empaquetamientos ................................................. 50
3.2.3. Comprobación de la Homogeneidad de los empaquetamientos ............................................. 52
3.2.4. Comprobación de la Isotropía micro y macro de los empaquetamientos ............................... 52
3.3. Conclusiones Parciales ................................................................................................................ 53
Conclusiones ................................................................................................................................................ 54
Recomendaciones ........................................................................................................................................ 55
Bibliografía.................................................................................................................................................. 56
Anexo 1: Diagramas de Clases ............................................................................................................. 57
Introducción 1
Introducción
Antecedentes
En el accionar del Centro de Estudio de Métodos Numéricos para la Ingeniería
se ha investigado en la fase de empaquetamiento del Método de Elementos
Distintos y se han desarrollando varias formulaciones matemáticas. Como
resultado está formulado un algoritmo de generación o llenado de un cuerpo
geométrico con partículas para dos dimensiones utilizando una variante del
conocido Método de la cuerda (Valera, 2007) (Brito, 2007).
Planteamiento del Problema
El Método de Elementos Distintos consta de varias fases. Entre ellas es de
particular interés para el presente trabajo la fase de empaquetamiento, donde se
procede al llenado de los cuerpos geométricos con partículas de diferentes
formas, las cuales deben encontrarse lo más cercanas posible y no debiendo
solaparse ningún par de ellas.
Preguntas de investigación
¿Es posible la implementación de forma eficiente del algoritmo de la fase de
empaquetamiento del MED?
¿Puede dicha implementación ser empleada en estudios prácticos de materiales
desde el punto de vista micro-estructural?
Hipótesis Es posible obtener empaquetamientos densos con algoritmos de avance frontal
que puedan ser empleados en estudios prácticos de materiales desde el punto
de vista micro-estructural.
Introducción 2
Objetivo General
Desarrollar una implementación computacional para la fase de
empaquetamiento del MED, que pueda ser empleada en estudios sistémicos del
comportamiento físico-matemático sobre el estado tenso-deformacional de un
material desde un punto de vista micro-estructural; para dar solución a distintos
problemas ingenieriles.
Objetivos específicos
Extender e implementar de manera eficiente el mencionado algoritmo de
generación para 2-dimensiones y 3-dimensiones que garanticen robustez
y generalización para poder ir incorporando y experimentar con diferentes
tipos de partículas.
Realizar un estudio estocástico de los empaquetamientos de partículas
obtenidos con el método implementado.
Implementar el algoritmo para el caso de empaquetamiento de círculos y
esferas en 2D y 3D respectivamente.
Motivaciones de carácter Teórico.
Recientemente se cuenta con algoritmos constructivos de empaquetamiento de
partículas como (Brito, 2007), en cuya investigación se logra un alto grado de
generalización en cuanto al tipo de partícula. Sin embargo los métodos que
generan las nuevas partículas para el empaquetamiento dependen de la
dimensión del espacio, lo mismo sucede con los predicados de interioridad de
partículas, de los que se podría contar con un método más óptimo que si bien no
afecta el empaquetamiento resultante, sí aumenta el tiempo de ejecución del
algoritmo. En la presente tesis se hace una nueva propuesta de este tipo de
algoritmo. Otro de los aportes teóricos de la investigación se centra en el hecho
de que la mayoría de las formulaciones actuales no presentan un algoritmo de
Introducción 3
avance frontal, con un enfoque puramente geométrico, que sea independiente
del tipo de partículas.
Además con dichas implementaciones se podrán estudiar de forma más precisa
los estados tensionales y deformacionales a un nivel microscópico, posibilitando
detectar la aparición de micro-fisuras y discontinuidades en los materiales que
son el comienzo de las cadenas de fallos estructurales y la formación de micro-
zonas de plastificación que culminan desafortunadamente a nivel macroscópico
en el fallo estructural. Este tipo de estudio no se puede realizar con los métodos
clásicos convencionales, aspecto que delimita el valor científico de la
investigación.
Motivaciones de carácter Metodológico.
El valor metodológico de la investigación se evidencia a través de dos aspectos
fundamentales:
El desarrollo de una implementación de generación del medio con un
carácter general que posibilita empaquetar por el mismo procedimiento
diversos tipos de partículas.
Contribución a la evolución del método de elementos de partículas donde
se establecen las peculiaridades para emplear diversos tipos, aspecto
que sienta la bases para nuevas geometrías.
Motivaciones de carácter práctico
El valor práctico de esta investigación está fundamentado porque se dispondrá
de una implementación que permitirá el llenado de cuerpos geométricos con la
finalidad de empaquetar partículas basadas en modelos matemáticos estudiados
en el grupo de investigación en cuestión. Desde el punto de vista práctico
ingenieril este aspecto es de singular importancia ya que la obtención de los
empaquetamientos de partículas es una fase importante del MED, el cual
permite estudiar los mecanismos de fallos geotécnicos y estructurales a escala
Introducción 4
micro-mecánica y a su vez posibilita resolver, bajo estas condiciones, diversos
problemas de ingeniería.
Existen productos de software del Método de Elementos Distintos que tienen ya
incorporada la fase de generación del medio de partículas, sin embargo estos
pueden mejorar en su eficiencia. En la presente tesis se implementa una
solución computacional para la simulación del llenado de cuerpos geométricos
con círculos (caso 2D) y esferas (caso 3D), con la ventaja de que el código
puede extenderse cómodamente a cualquier otro tipo de partícula.
Viabilidad de la investigación
Los primeros métodos de la fase de empaquetamiento en el MED se realizaban
mediante la propia simulación física del conjunto de elementos discretos sin que
existiera un método especializado en lograr el empaquetamiento. Recientemente
se han desarrollado métodos que simulan la generación del medio en una fase
previa lo que es mucho menos costoso como se puede constatar en [1,2,3,5,6].
Estos métodos tienen como inconveniente que no son lo suficientemente
eficientes.
Estructura del Documento
Este Trabajo de Diploma esta dividido en 3 que describen las características del
proyecto a realizar. El primer capítulo recoge los antecedentes de los métodos
de empaquetamientos, sus características y deficiencias. En el segundo capítulo
se detalla la implementación del algoritmo y los componentes fundamentales de
su estructura interna. En el tercer capítulo se hace una validación del algoritmo
mediante una serie de pruebas estadísticas. Los anexos estarán dirigidos a
brindar detalles la estructura interna de las clases empleadas en la
implementación del algoritmo.
Capítulo 1: Marco Teórico 5
Capítulo 1: Marco Teórico.
1.1. Estado del arte de la modelación de medios
discontinuos.
1.2. Introducción.
Tradicionalmente, la ciencia de los materiales estudia el comportamiento de los
materiales a diferentes escalas con el objetivo de observar y cuantificar los
procesos químico-físicos a niveles micro-mecánicos, moleculares y atómicos.
La modelación multi-escala del material se encarga de representar estos
procesos hasta el nivel microscópico. El primer paso consiste en descomponer
el espectro en varios sub-rangos. Desde el punto de vista de la caracterización y
del diseño de materiales ingenieriles, se distinguen las siguientes cuatro escalas:
Nivel métrico:
A este nivel se resuelven problemas prácticos de ingeniería civil,
mecánica y aeroespacial tales como el análisis y diseño de
edificaciones, presas y de elementos de contención, elementos
mecánicos, etc.
Nivel milimétrico
La mayoría de las propiedades de los materiales se obtienen a partir de
pruebas de laboratorio que se realizan a este nivel. Esto constituye la
macro escala, un nivel en el cual los materiales se pueden considerar
homogéneos después de haber homogeneizado el efecto de los
elementos micro-estructurales en dichas propiedades “efectivas”.
Nivel micrométrico
Procesos micro-estructurales tales como micro-defectos, el tamaño de
grano de poli-cristales y los productos de la hidratación de materiales
cementosos se observan a esta escala. En la terminología corriente,
esto constituye la meso-escala, un nivel en el cual se pueden
considerar los materiales como compuestos heterogéneos. Ejemplos
Capítulo 1: Marco Teórico 6
de esto son la matriz del metal y la mezcla de hormigón, en las cuales
las partículas se unen a la matriz mediante interfases cohesivos-
friccionales.
Nivel nanométrico
Procesos moleculares y atómicos tienen lugar a este nivel. Varios
mecanismos de difusión de humedad y de compuestos químicos
agresivos se consideran activos a este nivel (transporte de iones y
compuestos químicos,…). Se debe señalar que las relaciones causa-
efecto llegan en algunos casos más allá de la mecánica Newtoniana,
especialmente cuando procesos sub-atómicos se consideran a nivel de
la mecánica cuántica.
Generalmente, los materiales ingenieriles se consideran microscópicamente
homogéneos y con frecuencia isotrópicos. En la mayoría de los casos son
adecuadas estas suposiciones, ya que los procesos de degradación progresiva
solo pueden ser explicados considerando características micro-estructurales del
material. De ahí la necesidad de caracterizar cada constituyente y las
condiciones de enlace en las interfases, además de la morfología de las meso y
micro-estructuras específicas.
Estos tipos de estudios son muy complejos y costosos computacionalmente, a
pesar del desarrollo alcanzado por los medios de cómputo y de la búsqueda de
algoritmos eficientes para lograr rapidez en las simulaciones numéricas que se
emplean para investigar estos procesos a niveles micro, meso, y macroscópicos
en tres dimensiones y en el dominio del tiempo.
1.3. Enfoques de modelación de los medios discretos.
Se pueden considerar dos grandes campos de estudio en el análisis de los
medios discontinuos: por una parte los métodos de cálculo para simular dichos
medios y por otra la creación de modelos constitutivos para las juntas o
interfases. Dada la complejidad de estos problemas es necesario recurrir a
Capítulo 1: Marco Teórico 7
métodos aproximados para la resolución de los mismos. Los métodos de cálculo
más empleados son el Método de los Elementos Finitos (MEF), el Método de los
Elementos de Contorno (MEC), el Método de los Elementos Distintos (MED) o
métodos que incluyen combinaciones de los anteriores.
Los métodos ideados originalmente para el análisis de medios continuos se han
extendido para tener en cuenta las discontinuidades. En el MEF se consideran
elementos especiales para representar las juntas o interfase. En este método
otra vertiente de trabajo ha sido el desarrollo de elementos finitos especiales que
se insertan dentro del campo de las discontinuidades fuertes y que emplean
funciones de interpolación especiales. La otra vertiente de trabajo ha sido el
desarrollo de la mecánica de la fractura. El MEC modela discontinuidades
embebidas en un medio continuo. En cualquiera de estos dos métodos se
asumen generalmente pequeñas deformaciones. Si se considera un
comportamiento no lineal del material se requiere el uso de técnicas iterativas.
Las técnicas del MED son las formulaciones que mejor describen el
comportamiento de los medios discontinuos. La génesis de estas técnicas fue
desarrollada por (Cundall, 1971) y estaba enfocada a la resolución de
problemas de geomecánica y discontinuidades en medios rocosos abordados
con los conceptos de bloques y juntas. La tendencia actual de estas técnicas
(Método de los Elementos Discretos o Distintos) está enfocada a posibilitar el
estudio del micro-mundo y la esencia micro-estructural de los problemas de la
mecánica computacional empleando modelos de partículas y micro-
estructurales. El hecho de poder estudiar el estado tenso deformacional
existente entre partículas, posibilita detectar la aparición de microfisuras, las
cuales son la génesis de la formación de micro zonas de falla que al final de su
evolución y desarrollo culminan en los fallos estructurales o geotécnicos de una
estructura u obra de ingeniería. Esta delimitación permite afirmar que las últimas
tendencias de los MED posibilitan estudiar la evolución y desarrollo de las
Capítulo 1: Marco Teórico 8
microfisuras y micro grietas conjuntamente con la metamorfosis de las mismas a
fisuras y grietas macro estructurales.
La modelación y simulación numérica de medios discontinuos o continuos
empleando el MED o una combinación de este con el MEF u otro método
numérico, es uno de los temas que está de boga en el campo de la ingeniería.
Originalmente, este enfoque de modelación ha estado dirigido a resolver
problemas de ingeniería a una escala macro-estructural. En la actualidad, ha
surgido una tendencia de estudiar las leyes del micro-mundo, por lo cual, la
modelación y la simulación numérica se han extendido a una escala micro-
estructural. Estas dos tendencias de trabajo posibilitan clasificar los métodos
empleados para la modelación y simulación numérica en dos grandes grupos
que toman en cuenta la escala o nivel de estudio (Véase Figura 1.1).
Figura 1. 1 Tendencias de la modelación numérica.
1.4. Método de elementos discretos: parte geométrica.
El método de los elementos discretos simula el comportamiento mecánico de un
medio formado por un conjunto de partículas, las cuales interaccionan entre sí a
través de sus puntos de contacto. La disposición de las partículas dentro del
ModelaciónNúmerica
Medios continuos(MEF, MEC, MDF)
Medios discontinuos(MED)
Enfoque Macro estructural
Enfoque Micro estructural
Capítulo 1: Marco Teórico 9
conjunto global del sistema o medio es aleatoria, por lo que se pueden formar
medios con diferentes tamaños de partículas distribuidas a lo largo del conjunto,
idealizando de este modo la naturaleza granular de los medios que usualmente
se analizan y se simulan mediante esta técnica numérica. Principalmente se
pueden distinguir las siguientes propiedades básicas que definen de forma
global a grandes rasgos este método de análisis numérico:
Las partículas como elementos discretos que en su conjunto conforman el
sistema complejo de partículas.
Estos elementos distintos como también se les conoce se desplazan
independientemente unos de otros e interaccionan entre sí en las zonas
de contacto.
En este método a nivel de cada partícula se hace uso de la mecánica del
cuerpo rígido y los elementos discretos se consideran elementos rígidos
en sí.
1.5. Algoritmos de generación del Método de Elementos
Discretos
Antes de comenzar la simulación, es necesario tener un conjunto inicial de
partículas (empaquetamiento), las cuales deben encontrarse lo más
cercanamente posible sin solaparse ningún par de ellas. Son deseables además
determinadas características en los empaquetamientos que describan la realidad
física de los diferentes medios o materiales que existen en la naturaleza. Para
esto es necesario obtener conjuntos iniciales de partículas donde exista control
de la fracción de volumen, el tipo, la forma, la posición y distribución estadística
que pueden seguir las diferentes partículas que conforman el medio o material
que se modele. Con este fin se han desarrollado los denominados algoritmos de
empaquetamiento, los cuales tienen para el MED tanta importancia como los
métodos utilizados para el mallado en el Método de Elementos Finitos (MEF).
Capítulo 1: Marco Teórico 10
Figura 1. 2 Categorías de los métodos de generación.
Con el propósito de generar un conjunto de partículas con las características
anteriormente señaladas se han desarrollado varias investigaciones. En (Feng et
al., 2003) se presenta un algoritmo de avance frontal sencillo y eficiente para el
caso de discos, pudiéndose generalizar para otras partículas en 2 dimensiones.
Dos variantes del algoritmo son tratadas. El avance frontal cerrado donde las
nuevas partículas son generadas a partir de un frente activo y las partículas que
no forman parte del frente están contenidas dentro de este. El algoritmo
comienza con dos discos y dos frentes. Una nueva partícula es generada por el
frente activo (dos discos), el cual es eliminado de la lista de frentes y en caso de
ser válida la partícula generada se crean dos nuevos frentes. El algoritmo
concluye cuando no existan frentes activos. El segundo caso, el avance de
frente abierto, va generando los discos por capas donde los límites del medio
son considerados discos de tamaño infinito. El algoritmo permite obtener una
densidad óptima solo localmente, y permite generar los empaquetamientos a
una gran velocidad. Se menciona un ejemplo en el que se obtuvieron 106 discos
en 3.77s en una PC con un procesador de 1GHz. Se plantea también que se
pueden realizar aumentos posteriores de la fracción de área mediante la
compresión de la frontera y compactación gravitacional, sirviendo esta última
también para eliminar posibles inestabilidades en la posición de algunos discos.
Métodos de Generación
Dinámicos
Puramentegeométricos
Físicos
Constructivos
Pseudo –Constructivos
Dependientes del estado anterior
Capítulo 1: Marco Teórico 11
Ambas variantes tienen como ventaja que la cantidad de partículas involucradas
en la generación de una nueva es pequeña aunque el modo que son tratados los
discos cuando colisionan dificulta su extensión a 3 dimensiones.
En (Albert-Ferrez, 2001) se formula un problema de empaquetamiento ligado a
la optimización que tiene sus orígenes de un problema industrial que consiste en
determinar la proporción óptima entre tres tamaños de partículas esféricas que
permita generar una configuración de llenado del medio con densidad máxima.
Este problema se intenta resolver a través de un conjunto de simulaciones con el
MED, en cada una de las cuales las esferas se dejan caer en un contenedor y
luego se les aplica una vibración para aumentar la densidad.
Se presenta además un modelo matemático del problema de empaquetar
esferas logrando la densidad máxima posible, en forma de problema de
optimización no convexa con restricciones cuadráticas y función objetivo lineal.
Como aclara el autor, dicho modelo solo tiene valor teórico, dado que su
complejidad no permite aplicarlo a una gran cantidad de esferas.
El objetivo del artículo (Feng et al., 2002) es extender la metodología para el
empaquetamiento de discos de (Feng et al., 2003) a otras partículas, que en este
caso son polígonos, elipses y esferas. Después de exponer el algoritmo para
cualquier tipo de partícula, solo es necesario formular el procedimiento para
construir una partícula en contacto exterior con otras dos y la manera de
detectar la intersección entre dos partículas, estando formulados los elementos
anteriores para el caso de polígonos y elipses. Se explican las dificultades que
aparecen en los algoritmos de empaquetamiento para 3 dimensiones y se
declara poder obtener la fracción de volumen en el intervalo [0.58, 0.6], aunque
no se especifica con qué distribución estadística de los radios se obtuvieron
dichas fracciones de volumen.
Capítulo 1: Marco Teórico 12
Los propios autores han desarrollado otro algoritmo en 3D para el
empaquetamiento de esferas (Han et al., 2005), que no presenta las dificultades
mencionadas y es fácilmente adaptable a otros tipos de partícula.
En (Han et al., 2005) se presenta un algoritmo para obtener empaquetamientos
de esferas, basado en una idea geométrica de compresión que combina tres
estrategias diferentes: compresión global, compresión aleatoria y sacudimiento y
empleando un eficiente algoritmo dinámico de búsqueda de contactos diseñado
para objetos de tamaños significativamente diferentes basado en células ha sido
empleado para alcanzar un buen rendimiento en el proceso de empaquetado.
La idea general del algoritmo formulado consiste en generar capas de esferas
que se comprimen hasta llenar la geometría deseada. Se presenta un ejemplo
numérico en el cual se generaron 26787 esferas en 181s con una fracción de
volumen del 52.89%.
Aunque el algoritmo formulado es sencillo y eficiente, se puede plantear la
hipótesis de que colocar directamente a las partículas en su posición definitiva
es un método mucho más eficiente si se logra formular a través de un algoritmo
adecuado.
Para lograr un empaquetamiento inicial de objetos discretos en el MED, existen
otras variantes que no son necesariamente la constructiva y que también son
eficientes. En el artículo (Löhner and Oñate, 2004) de Löhner y Oñate se hace
una exposición al respecto. En dicho trabajo se desarrolla una técnica de avance
frontal para el llenado del espacio con objetos arbitrarios. La entrada necesaria
consiste en la especificación de la distancia media puntual en el espacio y una
triangulación inicial de la superficie. En esta formulación cada objeto es quitado
del frente activo uno a uno y, si es posible, rodeado por nuevos objetos
admisibles. Esta operación es repetida hasta que no queden objetos activos.
En esta investigación dos técnicas para obtener empaquetamiento máximo son
discutidas:
Colocación del objeto más próximo (durante la generación).
Mover y agrandar (después de la generación).
Capítulo 1: Marco Teórico 13
Diferentes patrones de deposición pueden ser logrados mediante la selección
del orden en el que los objetos son eliminados del frente activo. Los tiempos
muestran que para objetos simples como esferas el esquema es
considerablemente más rápido que con generadores de volumen de malla
basados en la técnica del avance frontal, haciendo posible generar grandes (>
106) y aun óptimas nubes de puntos en cuestión de minutos en una PC. Para
objetos más generales, el desempeño puede decaer dependiendo en la
complejidad de los chequeos de penetración. En esta publicación (Hogue)
algunos ejemplos están incluidos, aspectos que demuestran las capacidades de
la técnica desarrollada.
Este algoritmo tiene la desventaja de afectar la distribución con que se generan
las partículas y del medio en general ya que al aplicar la técnica de mover y
agrandar cada partícula hasta que se ponga en contacto con la más vecina
variará la distribución inicialmente concebida en la generación.
Otra variante de algoritmo de generación ha sido el desarrollado por Viamontes
en (Esquivel, 2007).
El algoritmo procede en tres etapas fundamentales.
La primera es el particionamiento en celdas, con este paso se hace el
preproceso necesario para trabajar el dominio por fragmentos, e influye
tanto sobre el dominio como su frontera.
La segunda etapa tiene que ver con la generación inicial de esferas para
cada celda. Durante esta etapa se generan unos pocos “lotes”
predeterminados de esferas empacados en celdas, que ya cumplen con
las restricciones sobre la distribución de los radios y las distancias. Estos
se estampan sobre las celdas del particionamiento en el paso anterior.
Tanto la construcción de los lotes como el estampado se hacen
simultáneamente, por lo que esto se considera una sola etapa. El
resultado es un cubrimiento del cuerpo con esferas, cuya principal
desventaja es la existencia de “espacios vacíos” sobre las junturas de las
Capítulo 1: Marco Teórico 14
celdas. Desde otro punto de vista, la segunda etapa ejecuta una
operación de calibración para la tercera.
La tercera etapa tiene dos funciones: Eliminar las esferas exteriores al
dominio y eliminar los “espacios vacíos” en las junturas.
Este algoritmo tiene como desventaja su poca flexibilidad ante su adaptación
para trabajar con otros tipos de partículas ya que el propio autor asegura que su
fundamento matemático es funcionalmente rígido.
Una investigación de gran generalidad en cuanto al tipo de partícula es (Brito,
2007), en la que se presenta un código para generar empaquetamientos de
varias formas de partícula, aunque los resultados solo se muestran para
partículas esféricas. El diseño de clases implementado permite agregar
cualquier nuevo tipo de partícula para ser empaquetada, para lo cual basta
solamente conocer un procedimiento para colocar una en contacto con otras dos
(caso 2D) o con otras tres (caso 3D) y un procedimiento de detección de
intersección. Se presentan ejemplos de conjuntos de esferas generados a
velocidades superiores a las 1000 por segundo con fracción de volumen global
superior al 51%, además de ejemplos de más de 2*106 esferas.
Paralelamente a esta investigación fue desarrollada (Valera, 2007), en la cual se
implementó una biblioteca de clases destinada a ser usada en el código
presentado en (Brito, 2007). Están implementados algoritmos para empaquetar
en 2D colisiones de círculos, elipses aproximadas con círculos, polígonos, y en
3D colisiones de esferas. El algoritmo de generación es independiente del tipo
de partícula y el diseño de clases permite fácilmente agregar otros nuevos tipos
de estas.
En (Labra and Oñate, 2008) se propone un nuevo algoritmo que minimiza la
distancia entre las partículas de un empaquetamiento, aumentando así la
fracción de volumen. Se introduce una restricción de limite de frontera, como
Capítulo 1: Marco Teórico 15
aplicación de esta se fuerza la generación a una buena definición de la
superficie que ocupa.
El algoritmo tiene como entrada un empaquetamiento generado preferentemente
por un método rápido. Se plantea la reducción de la porosidad como un
problema no lineal de minimización donde la función objetivo es la distancia
entre las partículas vecinas, lo que permite la inclusión de las restricciones de
frontera. Como función de distancia se usa .
Se necesita minimizar donde es la matriz de
adyacencia de las partículas de la generación.
Como resultado se obtienen porosidades de 10% en el caso 2D y 30% en 3D.
En (2008, A.Benabbou) se presenta un nuevo algoritmo de generación para 2 y
3 dimensiones basado en el método de avance frontal, se propone también un
algoritmo de relocalización de partículas para evitar las áreas vacías que deja el
método de avance frontal.
El algoritmo consiste en generar primeramente un rociada de partículas en la
parte interna del medio a generar, siendo este el nivel 0 del frente, luego se va
generando partículas en este nivel hasta que no queden frentes activos en él, las
partículas generadas en el nivel 0 conformaran el nivel 1, que será el próximo
que se genere. De esta forma no solo se logra una buena definición del medio,
lo que incrementa la fracción de volumen, sino que se evitan colisiones de
partículas innecesarias.
Este algoritmo, como lo exponen los autores es como sigue.
1- Crear un frente inicial. 2- Mientras queden elementos activos en el frente
a) Generar radio aleatorio b) Determinar el nivel l del frente (primer elemento activo) c) Hacer para el nivel l del frente:
i - Seleccionar elemento activo con nivel le<=l ii – Ubicar la partícula Pnueva usando elemento es seleccionado del frente iii – Validar Pnueva (que no se intercepte y que este dentro del medio) iv – Si es válida entonces:
Desactivar frente es
Capítulo 1: Marco Teórico 16
Conectar Pnueva con las partículas de es e ir al paso a) v – Si la posición de Pnueva no es válida y todos los elementos activos con nivel <= l han sido probados para ubicar a Pnueva entonces:
Desactivar el primer elemento activo ef en el frente
Determinar la partícula que maximiza la densidad local en ef
Adicionar los posibles elementos nuevos al frente e ir al paso b) d) Terminar Hacer
3 – Terminar Mientras Para reducir el impacto de las áreas vacías, generadas por el método de avance
frontal, en las simulaciones físicas se propone un algoritmo de relocalización de
partículas (triangulación pesada de Delaunay)
Como resultado del algoritmo se obtuvieron empaquetamientos con radios de
distribución uniforme U[2,8] para 2 y 3 dimensiones, en el primero se generaron
1330 discos en 0.02s con una densidad de 0.80 y en el caso 3D se generaron
33738 esferas en 3s con densidad 0.494.
Se generaron empaquetamientos con radio constante con el fin de comparar con
la densidad óptima en el caso de 3D cuyo valor es, según la conjetura de
Kepler, de (Donev et al., 2004). Para este caso particular se
generaron 39061 esferas con densidad 0.606.
La principal desventaja es que el algoritmo está enfocado a generar medios de
forma parelepípeda y extender el algoritmo a otros contornos irregulares no
resulta trivial.
1.6. Algoritmos de Búsqueda de Contactos.
Reducir el número de operaciones a realizar para obtener un programa más
rápido es el objetivo del desarrollo de los algoritmos de detección de contacto.
Para ello se deben resolver dos problemas principales:
Determinar rápidamente los vecinos de una partícula, los cuales pueden estar
en contacto con ella.
Determinar rápidamente el punto de contacto para después calcular las
interacciones.
Capítulo 1: Marco Teórico 17
Munjiza y Andrews proponen un algoritmo de contacto llamado NBS (No Binary
Search) que presenta un tiempo total de detección proporcional al número de
cuerpos separados N mientras que la mayoría de los algoritmos presentaban un
tiempo total de detección proporcional a N*ln(N).
Esta eficiencia se logra porque este algoritmo no está basado en el proceso de
búsqueda binaria. Los requerimientos de memoria son insignificantes y el tiempo
total de detección no se ve afectado por cambios en la densidad particular del
modelo.
Perkins y otros investigadores presentan un nuevo algoritmo de detección de
contacto llamado DESS basado en la clasificación de los extremos de la
proyección de las partículas sobre los ejes ortogonales. Desarrollado para
responder a los problemas encontrados al utilizar elementos no esféricos y de
tamaño variable en el MED este algoritmo es mucho más conveniente
comparado con el NBS cuando hay una variación significativa de los tamaños de
las partículas, como demostraron las simulaciones realizadas.
En la formulación desarrollada por Burrel la búsqueda de contactos se basa en
estructuras Quadtree en 2D y Octree en 3D combinadas con la técnica de
agrupación basada en las celdas centradas en el cuerpo. De este modo el costo
computacional pasa a ser proporcional a N*ln(N), lo que le permite ser usado en
sistemas de mayor tamaño.
La construcción de estructuras QuadTree y Octree en cada paso de tiempo sería
muy cara. Para pasos de tiempo muy pequeños la mayoría de los contactos
pueden ser los mismos que en los pasos anteriores. La utilización de la
información sobre los pares de contactos existentes en el paso anterior puede
agilizar la búsqueda de contactos. Por este motivo el algoritmo consta de 2
etapas: una primera consistente en la búsqueda de pares de elementos
potencialmente en contacto basado en estructuras QuadTree y Octree; y una
búsqueda local verificando la lista de contactos potenciales basada en el método
de las celdas centradas en el cuerpo.
Capítulo 1: Marco Teórico 18
1.7. Estudios estadísticos de los empaquetamientos
En (Bezrukov et al., 2001) se presenta un análisis estadístico espacial para
conjuntos de esferas con radio y posición aleatoria, empleando dos algoritmos
diferentes de generación, en los cuales, para las distintas generaciones, los
diámetros de las esferas siguen la distribución constante, la bimodal o la
logonormal.
Se plantea que para el caso de la distribución logonormal, con parámetros μ y
σ2, la fracción de volumen depende muy poco del parámetro de valor medio μ,
pero en gran medida de la varianza σ, aumentando con esta.
Se estudian además, características comunes de estadística espacial tales como
la fracción de volumen, la función de correlación de pares del sistema de centros
de esferas y la función de distribución de contactos del conjunto unión de todas
las esferas, así como el número de coordinación.
Basado en lo que se expone se puede plantear la hipótesis de que para
cualquier distribución estadística que sigan los diámetros de las esferas, la
fracción de volumen aumenta a medida que aumenta la varianza.
Nuevas técnicas de evaluación de la aleatoriedad de empaquetamientos de
partículas con radio constante y con radios de una distribución determinada son
tratados en (He et al., 2001).
En la investigación se muestra que trazando planos cortantes en el medio
generado y hallando la sección de área de las partículas que el plano interseca
se llega a que la razón de área de estas partículas con respecto al área del
plano se aproxima a la razón de volumen (densidad geométrica) del
empaquetamiento y tiende a ella a medida que el número de planos cortantes
tienda al infinito. Estas razones de áreas son un indicador de la distribución
espacial de las partículas en la generación.
Para comprobar el grado de aleatoriedad de los empaquetamientos se emplea la
técnica de muestreo temporal sobre las densidades de área de los planos
cortantes, esto es, el coeficiente de auto-correlación, que mide la correlación
Capítulo 1: Marco Teórico 19
entre observaciones a una distancia k y que es igual a
debe cumplir en el 95% de los casos y para k≠0
que su valor se encuentre entre . En la misma m es la cantidad de planos
cortantes, k es la distancia de separación, es la densidad de área del plano j y
la media de las observaciones o la densidad del empaquetamiento.
Se examina la homogeneidad dividiendo el medio en subregiones de igual
tamaño y comprobando que la cantidad de partículas en cada subregión se
ajuste a una distribución uniforme. Como aclaran los autores, el resultado de
una prueba X2 indica si se rechaza o no la hipótesis, pero en caso de no
rechazarse no implica que se ajuste a la distribución uniforme, aunque en la
práctica se acepta si no se rechaza la hipótesis. Se aclara que las subregiones
deben ser lo suficientemente grandes como para contener un razonable número
de partículas que reflejen la distribución total de los radios de estas para no
incurrir en errores estadísticos.
Dos técnicas estadísticas para comprobar la isotropía de la generación son
abordadas. La primera, que es aplicada al micro-nivel, prueba que las
proyecciones de las líneas centro-centro entre las partículas tangentes se
ajusten a una distribución uniforme. La segunda, aplicada al macro-nivel,
examina las varianzas de las densidades de áreas de los planos cortantes
perpendiculares a cada eje.
En (Sakaguchi and Murakami, 2002) se plantea que existe una estrecha relación
entre el empaquetamiento inicial de partículas y el comportamiento físico del
sistema, y que es necesario investigar los mecanismos de empaquetamiento de
sistemas de partículas con determinada forma y tamaño.
Capítulo 1: Marco Teórico 20
1.8. Conclusiones Parciales
Los algoritmos de empaquetamientos de partículas tienen una gran importancia
en el MED, por lo cual estos deben ser desarrollados y estudiados. Es decir, se
debe tratar de obtener algoritmos de generación de partículas que sean veloces
y permitan obtener conjuntos densos de partículas. Además, dichos conjuntos
de partículas presentan patrones geométricos que deben ser estudiados, ya que
influyen directamente en el comportamiento físico del sistema.
Capítulo 2: Algoritmo de Generación de Partículas 21
Capítulo 2: Algoritmo de generación de partículas
En el presente capítulo se describe el algoritmo general para el método de
generación de partículas que se presenta.
2.1. Algoritmo general
El algoritmo que se presenta está basado en la técnica de avance frontal, uno de
los principales inconvenientes a la hora de implementar esta técnica en 2D y
especialmente en el caso 3D es cuando se produce una colisión de la partícula
generada con las que se encuentran previas en el empaquetamiento. Una
solución a este problema sería establecer un orden espacial entre las partículas
generadas y eliminar todas las partículas que se encuentren desde el frente que
generó la última partícula hasta la que fue interceptada como es el caso de (Feng
et al., 2003). La variante que se propone intenta mejorar estos resultados
evitando en alguna medida las intercepciones de partículas y usando una
solución diferente cuando se producen estas colisiones.
La primera fase del algoritmo propuesto es la inicialización, en el que se ubica el
punto más interior de la geometría y se colocan 3 partículas tangentes entre sí.
Dado que en 3 dimensiones se requiere de 3 partículas para generar una cuarta,
y se pueden generar partículas en 2 direcciones, siendo estas las posibles
soluciones para el sistema de ecuaciones que se forma, se optó por limitar este
sistema a una solución de acuerdo a la localización espacial de las partículas, de
modo que para lograr ambas soluciones importe el orden en que se tomen las
mismas (ver fig. 2.2). Para reducir las colisiones de partículas a la hora de
generarlas se emplea un ángulo de inclinación que está asociado a cada trío de
partículas, si este ángulo es menor que el ángulo permitido (en la presente
investigación se tomó como valor 90o) se resuelve el sistema de ecuaciones
correspondiente para determinar las coordenadas de la próxima partícula, se
Capítulo 2: Algoritmo de Generación de Partículas 22
chequea que se encuentre en el interior la geometría, de ser así se pues en caso
contrario se descarta, y de no haber colisiones con alguna otra se incluye esta
en el conjunto de partículas y 3 nuevos tríos de partículas se forman, en caso de
existir colisiones, si colisiona con una sola partícula se crea un nuevo trío de
partículas uniendo la partícula colisionada con las dos más cercanas del trío de
partículas que la generó. El proceso concluye cuando no existan tríos de
partículas disponibles. El algoritmo anteriormente expuesto se puede apreciar en
el diagrama de actividades que se muestra en la siguiente figura (Figura 2.1).
Figura 2 1 Esquema del Algoritmo General.
Capítulo 2: Algoritmo de Generación de Partículas 23
2.2. Estimado de cantidad de partículas para una geometría.
El estimado de la cantidad de partículas para una geometría es conveniente ya
que se puede estimar el tiempo que demorará todo el proceso y permite además
hacer cálculos relacionados con el nivel de porosidad con el que quedará el
empaquetamiento. Aspecto muy interesante considerando que todos los
materiales no cuentan con el mismo nivel de porosidad.
Esto se calcula distribuyendo una nube de puntos siguiendo la distribución
uniforme por toda la geometría a partir de los límites máximos y mínimos. Luego
se cuentan todos los puntos interiores a la geometría y la proporción que existe
entre estos y los distribuidos es aproximadamente la misma que la existente
entre el área o volumen formado por los límites máximos y mínimos, así como el
área o volumen de la geometría, a continuación la clase relacionada (Véase
Figura 2.2 ).
Figura 2 2 Clase Predictor.
Función relacionada con la predicción de la cantidad de elementos para una
geometría.
Nombre de la función: getCountPartGenerar.
Tipo de valor de retorno: int.
Capítulo 2: Algoritmo de Generación de Partículas 24
Significado del valor de retorno: Cantidad de partículas aproximadas a
generar en la figura o cuerpo.
Definición: int Predictor::getCountPartGenerar.
Función relacionada con el cálculo de la porosidad de la generación.
Nombre de la función: calPorocidad.
Tipo de valor de retorno: MY_DOUBLE.
Significado del valor de retorno: Un número real menor que uno, que
expresado en porciento representa la densidad del empaquetamiento.
Definición: MY_DOUBLE Predictor::calPorocidad().
Esta clase cuenta además con algunos procedimientos destinados a calcular y
escribir en fichero diversos datos de las partículas como son la porosidad local
de cada partícula, el grafo de contactos del empaquetamiento y la curva de
tiempo donde se conoce en que intervalo del tiempo de generación se generó
cada partícula. Estos procedimientos se detallan a continuación.
Procedimiento de escritura de la porosidad local de cada partícula.
Nombre de la función: writeLocalPorosity.
Uso: Escribir en fichero la fracción de área local de cada partícula del
empaquetamiento.
Definición: void Predictor::writeLocalPorosity();
Procedimiento de escritura de la matriz de contacto del empaquetamiento.
Nombre de la función: writeContactGraph.
Uso: Escribir en fichero para cada partícula las partículas que están en
contacto con ella.
Definición: void Predictor::writeContactGraph();
Procedimiento de escritura de la curva de tiempo de las partículas.
Nombre de la función: writeTimeCurve.
Capítulo 2: Algoritmo de Generación de Partículas 25
Uso: Escribir en fichero el tiempo en que se generó cada partícula del
empaquetamiento.
Definición: void Predictor::writeTimeCurve();
2.3. Estructura de datos para el almacenamiento de las
partículas.
Es evidente que para el almacenamiento de los datos de cada partícula es
necesario algún tipo de estructura que lo permita. Todos los algoritmos que se
exponen en los siguientes epígrafes hacen uso de esta estructura, por lo que es
importante considerar que cualquier cambio en la forma de interacción prevista
para el almacenamiento de las partículas puede afectar a todo el diseño.
Se conoce por las descripciones hasta este punto que se trabaja con partículas
que pueden ser pivotes por ser interiores a la geometría y otras que no lo son o
ya lo fueron en algún momento. Por otra parte se debe considerar que
relacionado con las partículas pivotes existen una serie de criterios de
búsqueda, por lo que se considera que una lista donde las partículas candidatas
a pivotes y las demás se encuentren como un todo único, no es buena idea.
Pensando de este modo se decide tener dos listas de referencias a las
partículas, la primera de ellas contará con las referencias a todas las partículas
generadas, y la segunda se encargará de tener solo las referencias a cada
partícula candidata a pivote. Se debe tener en cuenta que una vez culminado el
proceso, liberar cada espacio de memoria reservada para el almacenamiento de
cada partícula.
El diseño propuesto está basado en uso de las bibliotecas estándares de la STL
mencionada varias veces en esta investigación (Véase Figura 2.3).
Capítulo 2: Algoritmo de Generación de Partículas 26
Figura 2 3 Clase DatosParticulas.
Atributo relacionado con el almacenamiento de las referencias a las partículas
pivotes:
Nombre del atributo: partspiv.
Tipo del atributo: std::list<iparticula *>.
Significado del atributo: Lista de todas las referencias a partículas
candidatas a pivotes.
Atributo relacionado con el almacenamiento de las referencias a todas las
partículas.
Nombre del atributo: particls.
Tipo del atributo: std::list<iparticula *>.
Significado del atributo: Lista de todas las partículas generadas.
Atributo relacionado con el almacenamiento de los tiempos de generación de las
partículas.
Nombre del atributo: time_curve.
Tipo del atributo: std::list<int>.
Significado del atributo: Lista de los tiempos en que se generaron las
partículas.
Capítulo 2: Algoritmo de Generación de Partículas 27
2.4. Algoritmo de búsqueda de vecindad.
Haciendo referencia al algoritmo general, cuando se genera una partícula debe
comprobarse que esta no intercepte con alguna de las partículas previamente
generadas. Esto se pudiera acometer comprobando con todas y cada una de las
partículas existentes pero el procedimiento sería muy costoso en tiempo.
Numerosos algoritmos de búsqueda de vecinos se han enunciado en
investigaciones previas y dado que están fuera de los objetivos de la presente
tesis no fueron abordados con anterioridad.
En los subsiguientes sub-epígrafes tomados de la investigación (Brito, 2007) se
detalla una implementación del algoritmo de búsqueda de vecinos No Binary
Search, el cual se optó por utilizar para nuestro propósito.
2.4.1. Algoritmo No Binary Search(NBS).
La idea seguida es tratar de agrupar familias de partículas por su ubicación
espacial, de manera que conociendo la ubicación espacial de una partícula se
puedan resolver todas las que pertenecen a su familia.
Dado que el criterio seguido para definir una familia de partículas está basado en
su ubicación espacial se debe pensar en relacionar el espacio geométrico con
grupos de partículas que se encuentren cercanas entre sí. La clase que
implementa toda la funcionalidad de búsqueda de vecindades es SearchContact
(Véase Figura 2.3).
Capítulo 2: Algoritmo de Generación de Partículas 28
Figura 2 4 Diagrama de herencia de la clase SearchContact.
Se propone una generalización para este tipo de algoritmos ya que en la
literatura consultada existen varios criterios orientados a resolver estos
problemas. En el presente trabajo se implementó el algoritmo NBS, el cual es
muy rápido aunque para un óptimo funcionamiento utiliza una gran cantidad de
memoria. Por esta razón se decide una implementación abstracta básica que
cuenta con las mínimas funcionalidades que debe tener alguna implementación
para ajustarse al proyecto en caso que en futuras investigaciones se desearán
implementar otros criterios para resolver los problemas de vecindad. Esta clase
es independiente de la dimensión en la que se trabaje, ya sea un espacio
bidimensional o tridimensional. Los detalles relacionados con la funcionalidad de
los atributos y métodos de la clase iSearchContact se precisan en los epígrafes
que siguen.
Capítulo 2: Algoritmo de Generación de Partículas 29
2.4.2. Definición de las celdas.
El algoritmo NBS se basa en la descomposición del espacio. Este se divide en
celdas cuadradas de tamaño 4r donde r representa el radio máximo que puede
tomar una partícula.
A cada celda se le asigna un par de números (enteros) de identificación ,x yi i ,
donde 0,1,2,3,... 1x celxi n y 0,1,2,..., 1y celyi n con ncelx y ncely. Como el
número total de celdas en las direcciones x e y respectivamente para el espacio
bidimensional, se agrega la componente z de igual manera para el espacio
tridimensional. Por lo que siempre se podrá construir todo el espacio de celdas
conociendo el radio máximo que pueden tomar las partículas y los límites
máximos y mínimos de toda la geometría.
Función relacionada con la inicialización.
Nombre de la función: inicialice.
Definición: void iSearchContact::inicialice().
Detalles: Esta función se encarga de formar todo el espacio de celdas
definidos por los límites máximos y mínimos de la geometría. Esto no se
realiza en el constructor de la clase, ya que la geometría no tiene que
conocerse inmediatamente después de comenzar la ejecución del
programa. Es decir, una vez que se ha cargado la geometría, debe
llamarse a esta función.
2.4.3. Ubicación de la geometría dentro del espacio de celdas.
Toda la geometría debe de estar dentro del espacio de celdas ya que las
partículas que se encuentren en la superficie de la geometría deben tener
también una ubicación dentro del espacio de celdas. Partiendo de esta idea se
analizarán las siguientes figuras en las cuales se ilustran algunos casos a tener
en cuenta para la formulación de una estructura de datos para este problema.
Suponiendo que ABCD (Véase Figura 2.5) sea un polígono el cual se dividirá en
celdas, está claro que se debe crear un mecanismo que permita identificar cada
Capítulo 2: Algoritmo de Generación de Partículas 30
celda. Para esto se sugiere que se utilice la división entera por el lado máximo
que ocupará una celda, no obstante no pueden aparecer identificadores de celda
negativos por lo que es necesario hacer una traslación de la geometría hacia los
ejes positivos. De esa manera se podría almacenar dichas estructuras de celda
en una lista indexada como las soportadas por la mayoría de los lenguajes de
programación. Para esto es necesario trasladar la geometría diferenciando cada
caso y guardar la configuración, ya que las partículas tendrán coordenadas
reales de la posición exacta donde se encuentran, razón por la que también
deben trasladarse hasta la celda que le corresponde y ubicarlas.
En el primer caso (a) es necesario guardar las mínimas coordenadas X e
Y, para luego restárselas a las coordenadas reales de la partícula que se
desea colocar en su celda correspondiente.
En el segundo caso (b) es necesario guardar la mínima coordenada Y y la
máxima coordenada X registrada en la geometría, para luego restar la
mínima coordenada Y y sumar la máxima coordenada X a las
coordenadas reales de la partícula que se desea colocar en su celda
correspondiente.
En el tercer caso (c) es necesario guardar la mínima coordenada X y la
máxima coordenada Y registrada en la geometría, para luego restar la
mínima coordenada X y sumar la máxima coordenada Y a las
coordenadas reales de la partícula que se desea colocar en su celda
correspondiente.
En el cuarto caso (d) es necesario guardar el módulo de las máximas
coordenadas X e Y, para luego sumárselas a las coordenadas reales de
la partícula que se desea colocar en su celda correspondiente.
Y en el último caso (e) es necesario guardar las mínimas coordenadas X
e Y, para luego restárselas a las coordenadas reales de la partícula que
se desea colocar en su celda correspondiente igual al primer caso.
Una vez analizado cada caso hay que hallar la parte entera del resultado
obtenido después de la transformación para obtener un índice entero de cada
coordenada X e Y.
Capítulo 2: Algoritmo de Generación de Partículas 31
Figura 2 5 Cuadrados espaciales.
Generalizando los casos anteriores se puede realizar el proceso descrito para
cada coordenada X, Y e Z aplicando solo dos reglas siguientes.
Si la componente i toma valores solo negativos en toda la geometría
entonces el índice entero buscado para esa componente se calcula
sumando el módulo de la componente i de la coordenada de la partícula y
el valor mínimo tomado por la componente i en la geometría.
En cualquier otro caso el índice entero buscado para esa componente se
calcula restando la componente i de la coordenada de la partícula y el
valor mínimo tomado por la componente i en la geometría.
Capítulo 2: Algoritmo de Generación de Partículas 32
Donde i representa la coordenada X, Y o Z.
Aún se deben tener en cuenta algunas consideraciones respecto a las partículas
exteriores ya que alguna de ellas pudiera caer fuera del espacio de celdas. Este
problema pudiera solucionarse de varias maneras, lo más sencillo pudiera ser
colocar celdas por defecto y por exceso. Otro problema surge al subdividir el
espacio de celdas por un tamaño fijo, pues siempre sobra un intervalo en el cual
no cabe una celda, por lo que las partículas que deberían estar ubicadas
geométricamente en este lugar estarían en otro o quizás fuera del espacio de
celdas, por lo que se recomienda adicionar siempre otra celda para evitar esto.
Método relacionado a la ubicación de una partícula en el espacio de celdas.
Nombre del método: setball.
Tipo de parámetro de entrada: iParticula*.
Significado del parámetro bl de entrada: Es una referencia a una instancia
de la clase abstracta iParticula, la cual será adicionada al espacio de
celdas como una referencia.
Descripción: Ubica una referencia de la partícula de entrada bl en el
espacio de celdas definido.
Definición: void iSearchContact::setball(iParticula * bl).
Función relacionada a la búsqueda de vecindades de una partícula.
Nombre de la función: getListContact.
Tipo de parámetro de retorno: VectPart*.
Tipo del parámetro bl de entrada: const iParticula *.
Significado del parámetro de retorno: Es una lista de todas las partículas
vecinas a la partícula de entrada bl.
Significado del parámetro bl de entrada: Es una referencia a una
partícula.
Definición: VectPart * iSearchContact ::getListContact(const iParticula*
bl).
Capítulo 2: Algoritmo de Generación de Partículas 33
2.5. Obtención de una nueva partícula.
Analizando un espacio tridimensional considérese el problema de hallar el centro
(x, y, z) de una esfera de radio r4, tangente exteriormente a otras tres de centro
ci = (ci1, ci2, ci3), y radio ri respectivamente, 3,1i .
La tangencia entre E((x, y, z), r4) y E(ci ri), 3,1i , implica que
),(),,( 4rrcEzyx ii :
lo cual equivale a que
3,1,)()()()( 2
4
2
3
2
2
2
1 irrczcycx iiii (2.8.2)
Resolviendo el sistema anterior de tres ecuaciones en las incógnitas x, y, z, se
obtiene la solución deseada. Nótese que en el caso general existen dos
soluciones (Véase Figura 2.6, Figura 2.7 y Figura 2.8).
Figura 2 6 Construcción de una esfera tangente a otras tres.
Capítulo 2: Algoritmo de Generación de Partículas 34
Figura 2 7 Construcción de una esfera tangente a otras tres.
Figura 2 8 Representación esquemática de posibles soluciones. Se evidencia que el sistema (2.8.2) tiene dos soluciones en el caso general.
Capítulo 2: Algoritmo de Generación de Partículas 35
Todo lo expuesto en este epígrafe hasta el momento fue tomado del la
investigación (Morales, 2006) .
Como se explicó en epígrafes anteriores el frente activo genera solo una de las
soluciones posibles de acuerdo al orden en que fue tomado el mismo. Para tener
una idea geométrica de lo que esto significa se muestra la siguiente figura
(Figura 2.9).
Figura 2 9 Orden de las partículas para obtener ambas soluciones del sistema de ecuaciones.
Cuando se va a generar una nueva partícula se debe tener esto en cuenta pues
en caso contrario la nueva partícula puede quedar en contacto con otras
previamente generadas dado que se encuentra en la posición incorrecta.
Una vez decidido cuál de las dos soluciones generar es necesario estimar la
posición en la que se encontrará la nueva partícula. Esta aproximación influye en
cual solución se genera, pues el sistema de ecuaciones que se necesita resolver
convergerá más rápido a la solución estimada, aumentando así la velocidad de
generación. El procedimiento de estimar las coordenadas de la nueva partícula
se hace tomando la dirección de una recta perpendicular al plano que intercepta
los centros de las partículas del frente en un punto interior al triangulo que forma
Capítulo 2: Algoritmo de Generación de Partículas 36
y con el sentido del producto de los vectores normales que forman el frente
activo como se muestra en la figura siguiente (Figura 2.10).
Figura 2 10 Procedimiento para estimar la posición de la nueva partícula.
2.6. Herramientas Desarrolladas.
Para facilitar el trabajo en la presente investigación, así como su prueba y
puesta a punto, se desarrollaron algunas herramientas.
La primera de ellas es utilizada para la visualización de empaquetamientos de
discos y esferas en 2 y 3 dimensiones respectivamente con el formato de fichero
Yerva que tiene en su definición el medio como un conjunto de caras y la
cantidad de esferas con sus coordenadas y radios. Teniendo la opción de
mostrar las partículas en el orden en que se generaron y la posibilidad de
moverse y rotar en 3 dimensiones esta herramienta resultó útil a la hora de
depurar y validar el algoritmo.
Capítulo 2: Algoritmo de Generación de Partículas 37
Esta herramienta es una aplicación de consola, lo que implica necesita el pase
de parámetros para su funcionamiento. La definición de los mismos es el
siguiente: program.exe [-d] [-l] yervaFile
El parámetro “-d” se especifica cuando se necesita depurar el empaquetamiento.
Esto va mostrando incrementalmente cada esfera o disco en la posición y orden
que se generó. Con la opción “-l” se muestran además los números de las
esferas o discos que representan el orden en que se generaron.
Para la navegación del empaquetamiento se emplea el botón derecho del mouse
para mover la cámara con lo que se logra la rotación del empaquetamiento, con
ambos botones del mouse o con el tercer botón se acerca o aleja el
empaquetamiento. La Figura 2.11 muestra la aplicación en ejecución.
Figura 2 11 Herramienta para visualizar empaquetamientos de esferas y discos.
La segunda herramienta (fig. 2.12) fue pensada para llevar a cabo las pruebas
estadísticas que se verán reflejadas en el Capítulo 3. Dado que los algoritmos
que involucran números aleatorios no son deterministas.
Capítulo 2: Algoritmo de Generación de Partículas 38
Esta herramienta cuenta con varios tipos de parámetros definibles por el usuario,
los mismos serán utilizados para crear los directorios en que se almacenarán los
resultados, crear una línea de comandos que se le pasará al programa que se
desea ejecutar y para crear el fichero de captura de salida estándar en caso que
se especifique. El programa puede ser ejecutado con el mismo conjunto de
parámetros las veces que se estime necesario, además de contar con soporte
para multiprocesamiento, lo que disminuye el tiempo total de la ejecución (que
es estimado por el software) en caso en que el tiempo no sea un factor a medir.
Figura 2 12 Herramienta para la ejecución de aplicaciones parametrizadas.
Capítulo 2: Algoritmo de Generación de Partículas 39
A continuación se detalla el uso de esta herramienta.
El campo Programa (Program) es obligatorio dado que es el programa que se
desea ejecutar. Para cambiar este valor se debe presionar el botón para explorar
ficheros (…). Al cambiar este valor si el campo del Directorio de Trabajo está
vacío, este se cambia para el directorio donde reside el ejecutable seleccionado.
Un concepto fundamental son las cadenas parametrizadas que no son más que
cadenas de caracteres que pueden incluir uno o más parámetros en su
definición. Los parámetros se especifican encerrando el nombre del mismo entre
llaves, así para hacer referencia al parámetro n se debe escribir {n}. Estas
cadenas parametrizadas son generadores de cadenas de caracteres [regulares]
en tiempo de ejecución pues cada parámetro que contenga será mapeado a su
valor correspondiente. Es importante que cada parámetro usado en estas
cadenas sea definido antes de comenzar la ejecución para evitar errores.
El Directorio de Trabajo (Working Directory) es usando cuando el programa crea
o lee ficheros desde donde este se encuentra. De esta forma se pueden
mantener los ficheros de una forma ordenada. El contenido de este campo es
una cadena parametrizada que representa un camino que será usado para leer
o escribir resultados con caminos relativos al programa que se desea ejecutar.
Un ejemplo de su utilización es el siguiente: D:\output\{size}\{distribution}\{i}\
La lista de parámetros contiene los parámetros por defecto así como los
definibles por el usuario. Los parámetros por defecto juegan el roll de generar
cadenas de caracteres únicas que son deseables para no sobrescribir resultados
previos. Actualmente se cuenta con dos de estos parámetros: {n} que toma
valores entre 0 y la cantidad total de ejecuciones menos uno e {i} que toma
valores entre 0 y la cantidad de ejecuciones con el mismo conjunto de
parámetros menos uno. Estos parámetros no se pueden redefinir ni modificar
puesto que son usados internamente por el software. Entre los parámetros
definibles se encuentran los incrementales (autoincrement) que tiene un índice
inferior y superior con un incremento, tomando valores desde el límite inferior e
incrementando en el incremento hasta que el valor no sobrepase el límite
Capítulo 2: Algoritmo de Generación de Partículas 40
superior. Otro parámetro es el conjunto (set) al que se le define los valores que
puede tomar mediante una lista de cadenas. En el menú contextual de la lista de
parámetros encontramos las opciones para su manipulación, para insertar un
nuevo parámetro se selecciona Insert en este menú lo que muestra una ventana
para la definición de este como se muestra en la Figura 2.13.
Figura 2 13 Ventana de diálogo para la creación de un nuevo parámetro.
Luego de especificar el nombre, el tipo y las propiedades particulares del
parámetro seleccionado se presiona el botón OK para agregarlo a la lista de
parámetros. Para eliminar un parámetro simplemente se selecciona este y se
presiona la tecla DELETE, también se puede lograr el mismo objetivo
seleccionando la opción Delete en el menú contextual.
La Línea de Comando (Command Line) son los parámetros que se le pasan al
programa que se desea ejecutar y dependen del mismo. El formato de este
campo es una cadena parametrizada que representa la línea de comandos que
se le pasa al programa. Un ejemplo de esto es: -s {size} -f "c:\temp\file_{i}.txt"
La Configuración de Ejecución (Run Config) son las veces que se deberá
ejecutar el programa con el mismo conjunto de parámetros. Este valor está
estrechamente relacionado con los valores que tomará el parámetro {i} ya que
este tomará valores desde 0 hasta el valor que se especifique en este campo
menos uno.
Capítulo 2: Algoritmo de Generación de Partículas 41
La Configuración Multiproceso (Thread Config) es usada si se especifica en
computadoras con más de un procesador. La configuración por defecto se
puede utilizar en todos los casos, pero cuando no se tiene en cuenta el tiempo
de cada ejecución y se cuenta con más de un procesador es preferible usar el
multiprocesamiento para disminuir el tiempo total de las ejecuciones. La cantidad
de procesadores a usar se especifica en Cantidad de Hilos (Thread Count) así
como la prioridad de los mismos en Prioridad de los Hilos (Thread Priority).
Si el programa imprime datos por la salida estándar se puede considerar usar la
Captura de Salida (Capture Output) que se activa chequeando el cuadro de
chequeo que se encuentra a la izquierda del campo lo que habilita los controles
correspondientes. Semejante al Directorio de Trabajo, este campo cuenta con
un botón de selección (…) y un cuadro de texto. El botón de selección
selecciona un fichero del sistema de archivos, lo que representa la base de las
capturas pues dado que se realizarán muchas ejecuciones este valor debe ser
único para cada una de ellas para no sobrescribir los resultados. Luego de
seleccionar un fichero la dirección de este pasa al cuadro de texto donde se le
deben agregar los parámetros para formar una cadena parametrizada que
representa la dirección absoluta del fichero que contendrá la salida estándar de
cada ejecución. Ejemplo de esto es: D:\output\{size}\{distribution}\{i}\output.txt
El próximo grupo es la Información de Ejecución que muestra el tiempo de
ejecución (Elapsed Time), el tiempo restante (Remain Time), la memoria usada
por todos los Hilos que se encuentran en ejecución (Memory Used) y la cantidad
de los mismos (Active Threads).
El único campo que es obligatorio para una ejecución es el campo Programa
(Program) que de especificarlo con la configuración por defecto será ejecutado
una sola vez sin línea de comando y sin captura de salida estándar. Para
detener la ejecución en cualquier momento, se debe presionar el botón Cancelar
(Cancel ).
Capítulo 2: Algoritmo de Generación de Partículas 42
2.7. Conclusiones Parciales
Se ha logrado extender e implementar una variante del método de avance frontal
en 3 dimensiones, la misma puede ser extendida a otros tipos de partículas y
medios para los cuales generarlas. Modificaciones del método general como la
aproximación de las partículas a su posición final y el tratamiento de las
colisiones entre ellas posibilitan una mayor velocidad de generación. Se ha
desarrollado además una herramienta que permitirá realizar una mayor cantidad
de corridas del algoritmo con una gran facilidad y de esta forma obtener una
mayor confiabilidad en las pruebas que se efectuarán en el capítulo siguiente.
Capítulo 3: Análisis de Resultados 43
Capítulo 3: Análisis de Resultados
Luego de haber desarrollado e implementado el algoritmo de generación
expuesto, se procede al análisis de los resultados del mismo. Para tener un
cierto grado de confiabilidad en las pruebas y gráficas que se mostrarán en los
epígrafes que siguen se realizaron con la media de 50 corridas para cada uno de
los parámetros a analizar con cada una de las distribuciones tratadas y con
radios con valores [1.0, 2.0] y [1.0, 5.0] para un total de 700 ejecuciones del
algoritmo donde se generó un paralepípedo regular de 260 unidades de arista.
3.1. Desempeño del algoritmo implementado
Para el análisis del desempeño del algoritmo implementado, se comprueban las
fracciones de volumen de los empaquetamientos para las distintas
distribuciones, así como las velocidades medias de generación. Se analizarán
también las curvas de tiempo, buscando la linealidad de las mismas.
3.1.1. Comparación en cuanto a la fracción de volumen del empaquetamiento
La fracción de volumen es un factor importante a la hora de decidirse a utilizar
cierta distribución estadística pues cada material se caracteriza por una fracción
de volumen determinada. En la siguiente gráfica se muestra el comportamiento
de las fracciones de volumen en cada una de las distribuciones.
Capítulo 3: Análisis de Resultados 44
Figura 3. 1 Gráfico del comportamiento de las fracciones de volumen.
Como se puede apreciar no existen grandes diferencias entre las fracciones de
volumen en los empaquetamientos con radios de las esferas de [1.0, 2.0],
alcanzando los valores máximos en las distribuciones Rayleigh, Laplace y
Logística en ese orden. En el caso de los radios de [1.0, 5.0] se puede constatar
una mayor variación de las fracciones de volumen dando como resultado que la
distribución con mayor rendimiento es Laplace.
Unas gráficas asociadas con las fracciones de volumen se muestran en las
figuras 3.2 y 3.3 para radios de [1.0, 2.0] y [1.0, 5.0] respectivamente, donde se
puede apreciar los intervalos de confianza para este indicador en cada una de
las distribuciones. Esto no es más que el intervalo en que, con una probabilidad
de al menos 95%, se puede asegurar que se encontrará el valor de la fracción
de volumen para dicha distribución.
Rayleigh Gauss Logistica Uniforme Exponencial Laplace T
Radio [1-2] 0.503235 0.4989586 0.500218 0.4939732 0.4944866 0.5009616 0.491132
Radio [1-5] 0.4576404 0.4557628 0.4586648 0.4398952 0.4430964 0.461666 0.4491394
0.4
0.41
0.42
0.43
0.44
0.45
0.46
0.47
0.48
0.49
0.5
0.51Fr
acci
on
es
de
Vo
lum
en
Capítulo 3: Análisis de Resultados 45
Figura 3. 2 Intervalos de confianza de la fracción de volumen para esferas de radio [1.0, 2.0]
Figura 3. 3 Intervalos de confianza de la fracción de volumen para esferas de radio [1.0, 5.0]
3.1.2. Comparación en cuanto a la velocidad de generación
Si se desea generar empaquetamientos en el orden de los millares de partículas
se debe tener también en cuenta la velocidad a la que se generan las partículas
pues el tiempo de una simulación de este tipo debe ser relativamente corto. Es
por ello que se toma la velocidad como un parámetro para medir la eficiencia del
algoritmo.
Capítulo 3: Análisis de Resultados 46
Figura 3. 4 Velocidad media de generación de las distribuciones.
La gráfica muestra que exceptuando las distribuciones Rayleigh y Exponencial,
ambas para el caso de radios en el intervalo [1.0, 5.0], la velocidad media de
generación de partículas para las distribuciones, se encuentra por encima de
3000 por segundo.
Otra gráfica de importancia en lo que al tiempo respecta es la que se muestra a
continuación donde se establece una razón entre la fracción de volumen logrado
en el empaquetamiento y el tiempo total que se empleó para lograr el mismo. La
misma da la medida de cuanto aumenta la densidad respecto al tiempo en cada
una de las distribuciones, lo que no significa que al aumentar el tiempo
indefinidamente la fracción de volumen tienda a 1.
Rayleigh Gauss Logistica Uniforme Exponencial Laplace T
Radio [1-2] 3368.022 3647.808 3600.142 3835.038 3840.402 3625.04 3972.096
Radio [1-5] 2653.796 3426.472 3321.624 3730.362 2513.858 3181.9 3840.356
0500
10001500200025003000350040004500
Par
tícu
las/
segu
nd
o
Capítulo 3: Análisis de Resultados 47
Figura 3. 5 Razón entre la fracción de volumen y el tiempo de generación.
En esta gráfica se muestra que existen marcadas diferencias entre la razón
hallada, donde la distribución con mayor valor de la razón es la Logística para el
caso de los radios [1.0, 2.0] y la distribución T para los radios [1.0, 5.0].
La gráfica de los intervalos de confianza de las velocidades de las distribuciones
que se mostrará a continuación da la medida, con una probabilidad de acierto de
0.95, de que la velocidad de la distribución en cuestión esté en el intervalo
calculado.
Figura 3. 6 Intervalos de confianza de la velocidad media para esferas de radio [1.0, 2.0]
0
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
Radio [1-2]
Radio [1-5]
Capítulo 3: Análisis de Resultados 48
3.1.3. Curvas de tiempo de los empaquetamientos
Las curvas de tiempo se construyen asignándole a cada partícula el tiempo en
que esta fue generada. De de esta forma se puede conocer si los tiempos en
que se generan las mismas describen funciones lineales, polinomiales o
exponenciales.
Figura 3. 7 Curva del tiempo con respecto a la cantidad de partículas para radios [1.0, 2.0]
Capítulo 3: Análisis de Resultados 49
Figura 3. 8 Curva del tiempo con respecto a la cantidad de partículas para radios [1.0, 5.0]
Las curvas de la cantidad de partículas con respecto al tiempo, mostradas
anteriormente, ponen de manifiesto la linealidad del algoritmo implementado
para los radios [1.0, 2.0] y [1.0, 5.0].
3.2. Caracterización estadística de los empaquetamientos
obtenidos.
3.2.1. Distribución espacial de los centros de las partículas
Para que los espacios en el empaquetamiento generado se distribuyan
uniformemente por todo el medio las coordenadas de los centros de las
partículas deben seguir una distribución uniforme. La siguiente Figura 3.9
muestra el valor del estadístico D del test de Kolmogorov-Smirnov, el cual debe
ser menor que 1.358 para asegurar con una confiabilidad del 95% que se está
en presencia de una distribución uniforme, en la misma las celdas señaladas
indican que la coordenada no se distribuye uniformemente
Capítulo 3: Análisis de Resultados 50
Figura 3. 9 Distribución espacial de los centros de las partículas.
Como conclusión de esta tabla se puede decir que solo la distribución Rayleigh
para radios [1.0, 2.0] se distribuye uniformemente en cada uno de los ejes de su
centro.
3.2.2. Comprobación de la Aleatoriedad de los empaquetamientos
La aleatoriedad de los empaquetamientos se muestra en la siguiente tabla.
Figura 3. 10 Aleatoriedad de los empaquetamientos.
Se puede concluir que solo las distribuciones T y Uniforme no son aleatorias.
3.2.2.1. Comportamiento de la fracción de volumen local
El comportamiento de la fracción de volumen local (FVL) es un indicador de la
homogeneidad de un conjunto de partículas. Si la varianza de esta es grande, se
puede inferir que las partículas están distribuidas de una manera “irregular” por
toda la geometría y que pueden haber huecos grandes. En la gráfica se
compara además la FVL con la fracción de volumen global (FVG).
X Y Z X Y Z X Y Z
Radios [1-2] 1.196 1.291 1.477 1.797 1.77 1.911 1.562 1.419 1.341
Radios [1-5] 1.691 1.304 1.559 1.66 1.482 1.308 1.991 1.742 1.447
X Y Z X Y Z X Y Z X Y Z
Radios [1-2] 1.663 1.636 1.463 1.541 1.671 1.59 1.326 1.272 1.318 1.493 1.353 1.392
Radios [1-5] 1.837 2.167 2.055 1.465 1.775 2.041 1.694 1.768 1.959 1.61 1.567 1.495
Uniforme Exponencial Rayleigh Laplace
Logistica T Gauss
Radios [1,2] Radios [1,5]
Distribución Aleatorio Aleatorio
Exponencial Sí Sí
Gauss Sí Sí
Laplace Sí Sí
Logistica Sí Sí
Rayleigh Sí Sí
T Sí No
Uniforme Sí No
Capítulo 3: Análisis de Resultados 51
Figura 3. 11 Varianza de las FVL para las distribuciones con radios [1.0, 2.0]
Figura 3. 12 Varianza de las FVL para las distribuciones con radios [1.0, 5.0]
De los datos que muestra la tabla podemos decir que las varianzas son
aproximadamente iguales para todas las distribuciones estadísticas analizadas.
Figura 3. 13 Gráfica del gradiente de color para la distribución Rayleigh.
Distribución FVG Media FVL Varianza FVL
Exponencial 0.494318 0.435771162 0.013691902
Gauss 0.498976 0.433630299 0.012987697
Laplace 0.500942 0.433088655 0.012742308
Logistica 0.500178 0.433298275 0.012834811
Rayleigh 0.503159 0.433777492 0.013382248
T 0.491038 0.43496427 0.012941477
Uniforme 0.493598 0.435725345 0.013595728
Distribución FVG Media FVL Varianza FVL
Exponencial 0.443134 0.452310216 0.015983579
Gauss 0.455827 0.442071704 0.013839881
Laplace 0.463089 0.438799447 0.013317074
Logistica 0.457088 0.439799365 0.013574135
Rayleigh 0.458368 0.445195058 0.014753865
T 0.450153 0.443083749 0.013772344
Uniforme 0.4382 0.454501 0.014420629
Capítulo 3: Análisis de Resultados 52
3.2.3. Comprobación de la Homogeneidad de los empaquetamientos
En la siguiente tabla se muestra el comportamiento de la homogeneidad de los
empaquetamientos generados con las distintas distribuciones.
Figura 3. 14 Homogeneidad de los empaquetamientos.
Se puede apreciar que ninguna distribución es homogénea, tanto para los radios
[1.0, 2.0] como para los radios [1.0, 5.0]
3.2.4. Comprobación de la Isotropía micro y macro de los empaquetamientos
La isotropía a nivel micro y macro es una propiedad de los materiales en los
cuales las propiedades físicas se manifiestan de igual modo a lo largo de todo el
empaquetamiento. Este comportamiento se muestra en las siguientes tablas.
Figura 3. 15 Micro-Isotropía de los empaquetamientos.
Las distribuciones que cumplen ser micro-Isótropas son la distribución Logística,
T y Uniforme.
Radios [1,2] Radios [1,5]
Distribución Homogéneo Homogéneo
Exponencial No No
Gauss No No
Laplace No No
Logistica No No
Rayleigh No No
T No No
Uniforme No No
Radios [1,2] Radios [1,5]
DistribuciónMicro
Isótropo
Micro
Isótropo
Exponencial No No
Gauss No No
Laplace No No
Logistica No Sí
Rayleigh No Sí
T No Sí
Uniforme No Sí
Capítulo 3: Análisis de Resultados 53
Figura 3. 16 Macro-Isotropía de los empaquetamientos.
De tabla se puede concluir que todas las distribuciones probadas para ambos
intervalos de los radios son macro-Isótropas.
3.3. Conclusiones Parciales
Los resultados obtenidos en la presente investigación son satisfactorios en
cuanto a la fracción de volumen lograda y la velocidad media de generación de
partículas, esto teniendo en cuenta que el algoritmo desarrollado tiene un
comportamiento lineal en la cantidad de partículas que genera respecto al
tiempo. En cuanto a la aleatoriedad de los medios generados, para algunas
distribuciones no hay ajuste a la distribución uniforme de las coordenadas de los
centros, y en algunos casis tampoco hay ajuste a dicha distribución para la
cantidad de centros por unidad de volumen.
Radios [1,2] Radios [1,5]
DistribuciónMacro
Isótropo
Macro
Isótropo
Exponencial Sí Sí
Gauss Sí Sí
Laplace Sí Sí
Logistica Sí Sí
Rayleigh Sí Sí
T Sí Sí
Uniforme Sí Sí
Conclusiones 54
Conclusiones
Se ha formulado e implementado un nuevo algoritmo constructivo de avance
frontal para empaquetar partículas, probándose para el caso de las esferas. El
mismo es extensible a otros tipos de partículas en 3D y es independiente de la
geometría que delimita el conjunto de elementos discretos. Se ha estudiado el
desempeño de los empaquetamientos que el algoritmo puede generar usando
algunas distribuciones estadísticas, así como algunas propiedades de la
aleatoriedad geométrica de los mismos.
Recomendaciones 55
Recomendaciones
Para aumentar la fracción de volumen de los empaquetamientos generados con
este algoritmo se debe mejorar el desempeño del mismo en las zonas próximas
a la frontera del medio que se está generando pues en el presente se puede
constatar que existen áreas con poca fracción de volumen local en estos
lugares. Se deben implementar nuevos métodos de búsquedas de vecinos que
sean más eficientes y que tengan un mejor desempeño para cuerpos de
dimensiones significativamente diferentes, así como métodos más eficientes que
permitan determinar la interioridad de un punto en una malla, debido a que si la
malla compone muchos elementos, el tiempo de ejecución aumenta
considerablemente.
Bibliografía 56
Bibliografía 1. ALBERT-FERREZ, J. (2001) Dynamic Triangulations for efficient 3D simulation
of granular materials. These, 2432.
2. BEZRUKOV, A., STOYAN, D. & BARGIEL, M. (2001) Spatial Statistics for
Simulated Packing of Spheres.
3. BRITO, Y. P. (2007) Implementación del empaquetamiento en el Método de
Elementos Distintos para diferentes tipos de partícula. Matematica Física
Computación. Santa Clara, Universidad "Martha Abreu" de las Villas.
4. CUNDALL, P. A. (Ed.) (1971) A computer model for simulating progressive,
large scale movements in blocky rock systems Symposium Soc. Internat.
Mécanique des Roches
5. DONEV, A., STILLINGER, F. H., CHAIKIN, P. M. & TORQUATO, S. (2004)
Unusually Dense Crstal Packings of Ellipsoids. PHYSICAL REVIEW LETTERS,
25, 1-4.
6. ESQUIVEL, A. V. (2007) Plataforma para métodos de partículas sin mallas.
Ciencia de la Computación. Santa Clara, Universidad "Martha Abreu" de Las
Villas.
7. FENG, Y. T., HAN, K. & OWEN, D. R. J. (2002) An Advancing Front Packing
of Polygons, Ellipses and Spheres. Discrete Element Methods. Santa Fe, New
Mexico, USA, GEOTHECNICAL.
8. FENG, Y. T., R., K. H. D. & OWEN, J. (2003) Filling domains with disks: an
advancing front approach
9. INTERNATIONAL JOURNAL FOR NUMERICAL METHODS IN ENGINEERING, 56:699–713.
10. HAN, K., FENG, Y. T. & OWEN, D. R. J. (2005) Sphere packing with a
geometric based compression algorithm.
11. HE, D., EKERE, N. N. & CAI, L. (2001) New statistic techniques for structure
evaluation of particle packing. Materials Science and Engineering, A298, 209-
215.
12. HOGUE, C. (1998) Shape representation and contact detection for discrete
element simulations of arbitrary geometries. Engineering Computations, Vol. 15
No. 3, 374-390.
13. LABRA, C. & OÑATE, E. (2008) High-density sphere packing for discrete
element method simulations. Communications in Numerical Methods in
Engineering. InterScience.
14. LÖHNER, R. & OÑATE, E. (2004) A general advancing front technique for
filling space with arbitrary objects. International Journal For Numerical Methods
In Engineering.
15. MORALES, I. P. P. (2006) Método de Elementos Distintos. Licenciatura en
Matemática. Santa Clara, Universidad "Martha Abreu" de Las Villas.
16. SAKAGUCHI, H. & MURAKAMI, A. (2002) Initial packing in discrete element
modelling. Discrete Element Methods. ASCE: New York, Jensen RP (eds).
17. VALERA, R. R. (2007) Biblioteca de clases para su uso en la fase de
empaquetamiento en el Método de Elementos Distintos. Santa Clara, Universidad
"Martha Abreu" de Las Villas.
Anexo 1: Diagramas de Clases 57
Anexo 1: Diagramas de Clases
La jerarquía de clases tiene varias categorías entre las que se destacan la
jerarquía de los medios a generar, las de generación de partículas, las de
predicados de interioridad y búsqueda de contactos, de representación de
frentes y las clases de control del algoritmo que usan cada una de las
mencionadas anteriormente.
Las clases que encapsulan las distintas representaciones de los medios que se
pueden generar son mostradas en la siguiente figura.
Figura 4. 1 Jerarquía de clases para los medios para la generación.
Anexo 1: Diagramas de Clases 58
A continuación se muestran los contenedores para las distintas representaciones
de los medios a generar.
Figura 4. 2 Clases para la encapsulación de los medios a generar.
Las clases involucradas en la generación de nuevas partículas para 3
dimensiones tienen su clase base en Factory3D y se muestran a continuación.
Anexo 1: Diagramas de Clases 59
Figura 4. 3 Diagrama para las clases generadoras de partículas.
Los predicados de interioridad, que son utilizados para comprobar que un punto
del espacio se encuentre dentro del medio que se quiere generar tiene el
siguiente diagrama de clases.
Anexo 1: Diagramas de Clases 60
Figura 4. 4 Diagrama de clases de predicados de interioridad.
A continuación se muestra la jerarquía de clases para las partículas a
empaquetar.
Anexo 1: Diagramas de Clases 61
Figura 4. 5 Herencia de clases para las partículas
Las estructuras que contienen la representación de los frentes de generación
para el caso del algoritmo implementado se muestran a continuación.
Anexo 1: Diagramas de Clases 62
Figura 4. 6 Clases para la representación de los frentes de generación.