70
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

Algoritmo para la fase de empaquetamiento del Método de

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmo para la fase de empaquetamiento del Método de

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

Page 2: Algoritmo para la fase de empaquetamiento del Método de

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

Page 3: Algoritmo para la fase de empaquetamiento del Método de

Pensamiento

Pensamiento

We can't solve problems by using the same kind of thinking we used

when we created them.

Albert Einstein.

Page 4: Algoritmo para la fase de empaquetamiento del Método de

Dedicatoria

Dedicatoria

A mi madre.

A mis hermanos.

A mi padre.

Page 5: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 6: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 7: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 8: Algoritmo para la fase de empaquetamiento del Método de

Í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

Page 9: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 10: Algoritmo para la fase de empaquetamiento del Método de

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

Page 11: Algoritmo para la fase de empaquetamiento del Método 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

Page 12: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 13: Algoritmo para la fase de empaquetamiento del Método de

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

Page 14: Algoritmo para la fase de empaquetamiento del Método de

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

Page 15: Algoritmo para la fase de empaquetamiento del Método de

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

Page 16: Algoritmo para la fase de empaquetamiento del Método de

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

Page 17: Algoritmo para la fase de empaquetamiento del Método de

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).

Page 18: Algoritmo para la fase de empaquetamiento del Método de

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

Page 19: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 20: Algoritmo para la fase de empaquetamiento del Método de

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).

Page 21: Algoritmo para la fase de empaquetamiento del Método de

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

Page 22: Algoritmo para la fase de empaquetamiento del Método de

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

Page 23: Algoritmo para la fase de empaquetamiento del Método de

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

Page 24: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 25: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 26: Algoritmo para la fase de empaquetamiento del Método de

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

Page 27: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 28: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 29: Algoritmo para la fase de empaquetamiento del Método de

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

Page 30: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 31: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 32: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 33: Algoritmo para la fase de empaquetamiento del Método de

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).

Page 34: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 35: Algoritmo para la fase de empaquetamiento del Método de

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).

Page 36: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 37: Algoritmo para la fase de empaquetamiento del Método de

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

Page 38: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 39: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 40: Algoritmo para la fase de empaquetamiento del Método de

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).

Page 41: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 42: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 43: Algoritmo para la fase de empaquetamiento del Método de

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

Page 44: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 45: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 46: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 47: Algoritmo para la fase de empaquetamiento del Método de

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

Page 48: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 49: Algoritmo para la fase de empaquetamiento del Método de

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 ).

Page 50: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 51: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 52: Algoritmo para la fase de empaquetamiento del Método de

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

Page 53: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 54: Algoritmo para la fase de empaquetamiento del Método de

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

Page 55: Algoritmo para la fase de empaquetamiento del Método de

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]

Page 56: Algoritmo para la fase de empaquetamiento del Método de

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]

Page 57: Algoritmo para la fase de empaquetamiento del Método de

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

Page 58: Algoritmo para la fase de empaquetamiento del Método de

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

Page 59: Algoritmo para la fase de empaquetamiento del Método de

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

Page 60: Algoritmo para la fase de empaquetamiento del Método de

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í

Page 61: Algoritmo para la fase de empaquetamiento del Método de

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í

Page 62: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 63: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 64: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 65: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 66: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 67: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 68: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 69: Algoritmo para la fase de empaquetamiento del Método de

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.

Page 70: Algoritmo para la fase de empaquetamiento del Método de

Anexo 1: Diagramas de Clases 62

Figura 4. 6 Clases para la representación de los frentes de generación.