41
DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA RECONSTRUCCIÓN Y SIMULACIÓN DE PERMEABILIDAD EN ESTRUCTURAS 3D DE ESPONJAS HECHAS A PARTIR DE SUBMUCOSA INTESTINAL PORCINA Mateo Pineda Quintero Profesor Asesor: Andrés Leonardo González Mancera Universidad de los Andes Facultad de Ingeniería Departamento de Ingeniería Mecánica Bogotá D.C., Colombia Diciembre, 2014

DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA RECONSTRUCCIÓN Y SIMULACIÓN DE PERMEABILIDAD EN

ESTRUCTURAS 3D DE ESPONJAS HECHAS A PARTIR DE SUBMUCOSA INTESTINAL PORCINA

Mateo Pineda Quintero

Profesor Asesor: Andrés Leonardo González Mancera

Universidad de los Andes

Facultad de Ingeniería

Departamento de Ingeniería Mecánica

Bogotá D.C., Colombia

Diciembre, 2014

Page 2: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

2

Contenido

Nomenclatura ...................................................................................................................................... 3

Lista de figuras ..................................................................................................................................... 5

Lista de ecuaciones .............................................................................................................................. 6

Resumen .............................................................................................................................................. 7

1. Introducción ................................................................................................................................. 7

2. Objetivos .................................................................................................................................... 10

2.1. Objetivo general ................................................................................................................. 10

2.2. Objetivos específicos .......................................................................................................... 10

3. Marco teórico ............................................................................................................................ 10

3.1. Submucosa intestinal porcina ............................................................................................. 10

3.2. Métodos de reconstrucción de la estructura 3D ................................................................. 12

3.2.1. Poisson Lines Process [16] .......................................................................................... 12

3.2.2. Random Lines tessallations [17] ................................................................................. 12

3.2.3. Sequential Indicator Simulation .................................................................................. 14

3.3. Método de simulación de la permeabilidad........................................................................ 16

3.3.1. Medio poroso ............................................................................................................. 16

3.3.2. Flujo Darcy ................................................................................................................. 17

3.3.3. Flujo no Darcy ............................................................................................................ 17

3.3.4. Método de Lattice Boltzmann .................................................................................... 17

3.3.5. Condiciones de Frontera ............................................................................................ 20

4. Resultados y discusión ............................................................................................................... 21

4.1. Reconstrucción de la estructura 3D .................................................................................... 21

4.2. Comprobación de la porosidad ........................................................................................... 22

4.3. Simulación de la permeabilidad .......................................................................................... 23

5. Conclusiones .............................................................................................................................. 25

6. Referencias ................................................................................................................................ 26

7. Anexos ....................................................................................................................................... 27

Page 3: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

3

Nomenclatura

C Covarianza

c Parámetro de velocidad

Direcciones de movimiento

F Función de densidad de probabilidad condicionada

Función de distribución de partículas

Función de equilibrio

Indicador de clases

Tasa de flujo

K Permeabilidad

L Longitud característica

p Probabilidad

Probabilidad marginal de la fase k

Tiempo

Ubicación espacial

Velocidad del flujo

Viscosidad cinemática

Coeficientes función de equilibrio

x Ubicación espacial Lattice Boltzmann

Fase en la posición u

Fase k

Densidad

Longitud de la fibra

Altitud en coordenadas polares

Coeficiente de anisotropía

Factor de Forcheimer

Intensidad del proceso de poisson

Coeficientes de Kriging del indicador

Page 4: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

4

Viscosidad absoluta

Parámetro de relajación

Gradiente de presión

Intervalo de tiempo

Page 5: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

5

Lista de figuras

Figura 1: Principales causas de muerte en el mundo .................................................................... 8

Figura 2: Porcentajes de muertes según causa en Colombia año 2008 ....................................... 9

Figura 3: A) Material fibroso B) Modelo obtenido usando Poisson Lines Process...................... 12

Figura 4: Ejemplificación de las RLT ............................................................................................ 13

Figura 5: Características de las líneas en RLT .............................................................................. 13

Figura 6: A) Material fibroso B) Modelo obtenido usando Random Lines Tessallations ............ 14

Figura 7: Algoritmo para realizar la Sequential Indicator Simulation ......................................... 15

Figura 8: Ejemplo de medio poroso, el cual consiste en la estructura del hueso esponjoso humano

..................................................................................................................................................... 16

Figura 9: Flujos típicos en medios porosos ................................................................................. 17

Figura 10: Modelo D3Q19 ........................................................................................................... 18

Figura 11: Ejemplificación del proceso de propagación ............................................................. 19

Figura 12: Representación gráfica del fenómeno de colisión ..................................................... 19

Figura 13: Ejemplificación de la condición periódica .................................................................. 20

Figura 14: Ejemplificación de la condición de Bounce back ........................................................ 21

Figura 15: A) Microestructura de la esponja B) Imagen manipulada.......................................... 21

Figura 16: A) Realización con porosidad de 0.735 B) Realización con porosidad de 0.875 ........ 22

Figura 17: Porosidad obtenida vs porosidad esperada ............................................................... 22

Figura 18: Ejemplificación del proceso para definir nodos ......................................................... 23

Figura 19: Ejemplificación del flujo en A) el inicio de la esponja, B) en la mitad y C) en la geometría

3D ................................................................................................................................................ 24

Figura 20: Permeabilidad para las diferentes porosidades ......................................................... 24

Figura 21: Permeabilidad para diversos valores de número de Reynolds .................................. 25

Page 6: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

6

Lista de ecuaciones

Ecuación 1 Modelo de probabilidad del Poisson Lines Process ....................................... 12

Ecuación 2 Modelo de probabilidad del Random Lines Tessallations .............................. 14

Ecuación 3 Indicador de clases para el método de Sequential Indicator Simulation ....... 14

Ecuación 4 Demostración del kriging del indicador como ccdf......................................... 15

Ecuación 5 Kriging del indicador ...................................................................................... 15

Ecuación 6 Matriz de la covarianza para encontrar los λα ................................................ 15

Ecuación 7 Ley de Darcy .................................................................................................... 17

Ecuación 8 Ecuación de Forcheimer .................................................................................. 17

Ecuación 9 Densidad del fluido en función de la PDF ....................................................... 18

Ecuación 10 Velocidad del fluido en función de la PDF .................................................... 18

Ecuación 11 Proceso de propagación ............................................................................... 19

Ecuación 12 Modelo con la propagación y la colisión ....................................................... 19

Ecuación 13 Función de equilibrio .................................................................................... 20

Ecuación 14 Obtención de la porosidad ............................................................................ 22

Page 7: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

7

Resumen En la actualidad, el manejo de heridas profundas siempre ha sido un reto. Para el tratamiento de

estas lesiones han surgido diversos materiales entre los cuales se destacan los materiales hechos a

partir de submucosa intestinal porcina. Este material, debido a su riqueza en colágeno permite

generar un andamiaje propicio para la reparación celular [1].

Para la predicción del comportamiento el conocimiento de sus propiedades macroscópicas es

crucial. En primer lugar, estas propiedades pueden ser obtenidas a partir de numerosos ensayos

que generan alto costo a los investigadores. Otro método de obtención es a partir de simulaciones

computacionales que recrean la microestructura del material a partir de diferentes tipos de

imágenes, como lo son las tomografías computarizadas o las imágenes de microscopio electrónico

de barrido. Sin embargo, debido al alto costo de preparar la muestra y la generación de los

ensayos, en caso de la tomografía, surge la necesidad de generar métodos de simulación basados

en imágenes 2D que permitan la recreación de la microestructura [2].

El objetivo de este proyecto fue la generación de un algoritmo que permitiera la reconstrucción de

la estructura 3D de una matriz de SIS y la simulación de la permeabilidad del material. Para cumplir

con el objetivo, se estudiaron diversos métodos para generar la reconstrucción de la estructura.

Este estudio permitió seleccionar un método según diversos criterios, como el tipo de estructura

presente en el material, la viabilidad del método y la posibilidad de obtener resultados que se

acerquen a la matriz original. Utilizando el método escogido se recreó la estructura de la esponja

variando su porosidad para ver el efecto que tenía ésta en las realizaciones. Finalmente, se utilizó

el método de Lattice-Boltzmann, con ayuda de la librería Palabos, para predecir la permeabilidad

que tendrían las distintas esponjas en las tres direcciones de flujo.

1. Introducción En la actualidad, desde el punto de vista clínico, el manejo de heridas siempre ha sido un reto. En

especial en el caso de heridas abiertas. Estas consisten en lesiones que producen separación de

tejidos blandos, como en el caso de heridas por objetos cortopunzantes, quemaduras, úlceras,

entre otros. Según la organización mundial de la salud (WHO), en el 2011 el 9% de todas las

muertes fueron causadas por heridas [3]. En efecto, como se puede ver en la Figura 1, sólo las

heridas causadas en accidentes de tránsito causaron 1.3 millones de muertes y está catalogada

como una de las 10 principales causas de muerte del mundo.

En el caso colombiano, como se puede observar en la Figura 2, el 36 % de las muertes son

producidas por heridas, superando incluso las enfermedades infecciosas (21 % de las muertes) [4].

Además, existen otras causas de muerte como trauma por armas de fuego (6,4%), tumores

malignos (4,1%), diabetes mellitus (2,43%) y agresión con objeto cortante (1,62%) [5], las cuales

presentan heridas abiertas e involucran la necesidad del uso de apósitos para su sanación. Esto

demuestra el impacto, tanto local como global, que pueden llegar a tener estas complicaciones,

justificando la necesidad de innovar en el tratamiento de pacientes para la regeneración del tejido.

Page 8: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

8

Figura 1: Principales causas de muerte en el mundo [3]

En la actualidad, se emplean apósitos usados por los médicos para ayudar a que las heridas sanen

y se prevengan infecciones o complicaciones futuras. Los apósitos son diseñados para estar en

contacto con la herida. En los tratamientos existentes se destacan los hidrocoloides. Estos

permiten generar un ambiente húmedo que facilita el reclutamiento de las defensas del cuerpo,

así como de las células necesarias para promover el proceso de sanación. Sin embargo, la

humedad generada también puede incrementar el riesgo de infección en estos tratamientos [6].

Por otro lado, están los hidrogeles, los cuales son hechos a partir de polímeros hidrofílicos, como

el polietilenglicol (PEG), que pueden hincharse manteniendo un ambiente húmedo, permite el

desbridamiento autolítico de la herida y aligera el dolor que puede sentir el paciente. No obstante,

el estímulo del proceso de sanación es limitado en comparación con los otros tratamientos [7]. Por

otra parte, existen los apósitos basados en alginato, que consisten en fibras, ya sea entrecruzadas

o no, que al estar en contacto con la herida forman un gel, promoviendo una alta absorción y

permeabilidad. Esto lo hace susceptible a las infecciones [8]. Finalmente, están los apósitos

basados en colágeno. Estos, permiten absorber fluidos, crear barreras frente a posibles infecciones

y crear un ambiente húmedo que promueve la diferenciación celular y el crecimiento de tejido

propio [9].

Page 9: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

9

Figura 2: Porcentajes de muertes según causa en Colombia año 2008[4]

En vista de lo anterior, los apósitos fabricados a partir de colágeno son una alternativa para el

tratamiento de heridas. Esto ha llevado al uso de la submucosa intestinal porcina (SIS). Esta es una

matriz extracelular (MEC) natural rica en colágeno que ha sido utilizada de manera eficiente como

injerto en tejido blando [10]. El colágeno actúa como una estructura de proteínas que aglutina las

células y genera nuevos tejidos. Por lo cual, al degradarse el injerto, ya las células nativas del

cuerpo han generado colágeno nuevo y se han diferenciado permitiendo que no haya diferencia

histológica entre el tejido nativo y el injerto [10].

Es por esto que el grupo de ingeniería Biomédica de la Universidad de los Andes, durante estos

últimos años, ha realizado estudios con este material buscando la manera de crear injertos

funcionales. En efecto, se ha realizado una metodología para la elaboración de implantes de SIS

que permiten la regeneración de tejido vascular dañado [11]. Esto llevó a que se hicieran análisis

mecánicos de los injertos de colágeno en modelo in vivo y compararlos con las propiedades

mecánicas de los tejidos aórticos humanos. Se obtuvo que se mantuvieron las propiedades

funcionales del injerto así como unas propiedades mecánicas incluso mayores a las de la arteria

nativa [12]. Sin embargo, las propiedades regenerativas de MEC están limitadas por sus

geometrías laminares. En consecuencia, su uso actual está restringido a parches o geometrías

tubulares como los injertos vasculares, siendo ineficaces para el tratamiento de heridas abiertas.

No obstante, existe la posibilidad de métodos de procesamiento de MEC para desarrollar matrices

3D basadas en colágeno entrecruzado formando esponjas de SIS que permitiría generar apósitos

con geometrías complejas para el control, re-epitelización y regeneración del tejido en heridas

abiertas [9]. Por lo cual, el estudio y caracterización de las matrices desarrolladas es vital para

entender y predecir su posible comportamiento en el cuerpo humano.

Para la predicción del comportamiento, el conocimiento de sus propiedades macroscópicas es

crucial. En primer lugar, estas propiedades pueden ser obtenidas a partir de numerosos ensayos

que generan alto costo a los investigadores. Otro método de obtención es a partir de simulaciones

computacionales que recrean la microestructura del material a partir de diferentes tipos de

imágenes, como lo son las tomografías computarizadas o las imágenes de microscopio electrónico

de barrido. Esta microestructura recreada permite la predicción de las propiedades

Page 10: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

10

macroscópicas. Sin embargo, debido al alto costo de preparar la muestra y la generación de los

ensayos, en caso de la tomografía, surge la necesidad de generar métodos de simulación basados

en imágenes 2D que permitan la recreación de la microestructura [2].

Por lo anteriormente dicho, este proyecto consiste en la generación de un algoritmo que

permitiera la reconstrucción de la estructura 3D de una matriz de SIS y la comprobación de este

algoritmo. Para cumplir con el objetivo, se estudiaron diversos métodos para generar la

reconstrucción de la estructura. Este estudio permitió seleccionar un método según diversos

criterios, como el tipo de estructura presente en el material, la viabilidad del método y la

posibilidad de obtener resultados que se acerquen a la matriz original. Utilizando el método

escogido se recreó la estructura de la esponja variando su porosidad para ver el efecto que tenía

ésta en las realizaciones. Esta microestructura se comprobó a través del estudio de la porosidad

experimental y la obtenida en la recreación. Finalmente, se utilizó el método de Lattice-

Boltzmann, con ayuda de la librería Palabos, para predecir la permeabilidad que tendrían las

distintas esponjas en las tres direcciones de flujo.

2. Objetivos

2.1. Objetivo general Desarrollar un algoritmo computacional para la reconstrucción de matrices 3D fabricadas a partir

de SIS y generar la simulación de la permeabilidad.

2.2. Objetivos específicos • Seleccionar el algoritmo que se ajuste más al tipo de microestructura para poder realizar

una reconstrucción del material adecuada.

• Implementar del algoritmo para poder generar un código que permite a partir de una

micrografía generar la reconstrucción 3D

• Verificar los resultados obtenidos mediante simulaciones computacionales para

identificar la validez del algoritmo realizado

3. Marco teórico

3.1. Submucosa intestinal porcina En el estudio de biomateriales e ingeniería de tejidos el MEC se conoce por generar y mantener la

orientación, crecimiento y diferenciación celular [13]. Esto permite que en el diseño de MEC

artificiales se interactúen con propiedades como la generación de substrato de adhesión celular, el

control de la estructura 3-D del tejido, la presentación de factores de crecimiento, señales de

adhesión celular y señales mecánicas [14]. Estímulos necesarios para la regeneración tisular. A

parte de eso, para que la MEC pueda ser utilizada en ingeniería de tejidos debe tener

requerimientos tanto por el lado del material como por el lado biológico. En cuanto al material,

debe ser biocompatible, no tóxica, y poseer tasa de degradación, propiedades de superficie,

porosidad y propiedades mecánicas deseadas. En cuanto a la interacción biológica, debe no ser

inmunogénica, no causar respuestas a cuerpo extraño, permitir el acceso a nutrientes y a factores

de crecimiento. Estas propiedades las cumple, como se verá posteriormente, la SIS.

Page 11: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

11

La SIS es un soporte natural de MEC, obtenido a partir de la decelularización del intestino delgado

de mamíferos, en este caso de porcinos. El proceso de decelularización permite eliminar todos los

componentes celulares y antigénicos permitiendo minimizar cualquier tipo de respuesta

inmunogénica adversa [1]. Esta matriz está compuesta por colágeno en más de un 90%. La mayor

cantidad de colágeno es tipo I, con algunas cantidades de colágeno tipo III, IV, V y VI. Estas son

proteínas estructurales presentes en animales y vegetales que al interactuar con las células

provocan grandes efectos en la arquitectura tisular. También posee moléculas que promueven la

adhesión celular como la laminina y la fibronectina. Más aún, posee glicosaminoglicanos, los

cuales brindan integridad estructural a las células y permiten su migración, y diversos factores de

crecimiento como factor de crecimiento de transformación beta (TGF-ß), factor de crecimiento

básico de fibroblastos (b-FGF) y el factor de crecimiento vascular endotelial (VEGF)[1]. Por ende, se

puede ver que la compleja composición de la SIS permite tener el ambiente propicio para

promover el proceso de sanación y regeneración de tejidos.

Al presentarse heridas abiertas, debe existir un control de esta por un apósito que cumpla con tres

funciones principales. Debe remover los exudados de la herida, prevenir la entrada de bacterias

que puedan causar daño en el cuerpo a la herida (infección) y promover el mejor ambiente

húmedo natural que promueva la regeneración del epitelio y su sanación [15]. La SIS ha

demostrado poseer propiedades esenciales para su uso como apósito. Por un lado, su

composición, en gran parte de colágeno, le confiere propiedades trombogénicas que le permite

controlar la hemostasis de la herida. Su estructura porosa, le permite absorber humedad

permitiendo la remoción de la exudación de la herida. Además, debido a las diferentes proteínas

de adhesión, factores de crecimiento y estructura cuenta con la capacidad biológica para

promover la regeneración de tejidos, en el sentido que favorece los procesos de granulación y

epitalización.

Por otro lado, se han realizado diferentes estudios, tanto in vitro como estudios pre-clínicos in

vivo, que demuestran su capacidad en la regeneración tisular. En efecto, en un estudio realizado

por Kim et al [7] se demostró su aplicación como apósito en un defecto cutáneo en ratones. Esta

investigación, permitió la creación de esponjas de SIS con diámetros de poros de 100-200μm, la

cual presentaba una estructura porosa interconectada. Estas esponjas poseían una absorción de

agua de alrededor de 8000% y presentaron un cubrimiento de una capa de células epidérmicas, en

el sitio de la herida, cuatro semanas después de la intervención quirúrgica. Esto demostró que la

SIS podía presentar una gran absorción del exudado de las heridas y promover la regeneración

tisular, teniendo un uso potencial como apósito en heridas [7]. También se han desarrollado

diversas tesis que han demostrado la utilidad de la SIS en la remodelación y regeneración de tejido

epitelial en el caso de implantes vasculares [11][12]. En estos estudios se demostró, tanto in vivo

como in vitro, las propiedades que podrían llegar a tener injertos vasculares generados a partir de

SIS. Estos resultados demostraron una integración total del injerto en el cuerpo presentándose

propiedades similares a la vascularización humana y, al realizar estudios histológicos, una

regeneración tisular presentándose el mismo tipo de células que en el tejido nativo. Sin embargo,

se mostró una gran limitación en las posibles aplicaciones de este material al sólo poder usarlo en

capas laminares.

Page 12: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

12

3.2. Métodos de reconstrucción de la estructura 3D Se analizaron tres métodos de simulación para entender las ventajas y desventajas al utilizarlos en

la simulación de la microestructura de la esponja. Estos métodos han sido utilizados en diferentes

tipos de materiales cuyas características principales es que sean materiales fibrosos, cuya

microestructura pueda ser representada por un modelo.

3.2.1. Poisson Lines Process [16] Este método consiste en generar un modelo cilíndrico para la geometría de la microestructura. El

modelo se basa en un proceso de líneas de poisson estacionario. Este proceso está regido por una

distribución de poisson la cual se encarga de, a partir de un parámetro de ocurrencia, medir la

probabilidad de que ocurra un número de eventos en un tiempo dado. En este caso, se busca

determinar la probabilidad de encontrar una fibra en una orientación dada. Se tiene que la

probabilidad está determinada por la siguiente ecuación:

Ecuación 1: Modelo de probabilidad del Poisson Lines Process

Donde es la longitud y al ser el material isotrópico no se tiene que tener en cuenta; es la

altitud; es el coeficiente de anisotropía, determinado a partir de las imágenes.

Los principales supuestos de este modelo es que las fibras son largas, la curvatura es despreciable,

no hay interacción entre las fibras y que el sistema de fibras es homogéneo e isotrópico. Es por

esto, que se ha utilizado en materiales hechos a partir de fibras, como el que se puede observar en

la Figura 3, en los cuales se puede generar el modelo paramétrico como fibras cilíndricas.

Figura 3: A) Material fibroso B)Modelo obtenido usando Poisson Lines Process [16]

3.2.2. Random Lines tessallations [17] Para la realización de este modelo se sigue el método de Poisson Lines Tessallations o Random

Lines Tessallations. En este caso el mosaico es generado al intersectarse numerosas líneas en el

plano (ver Figura 4).

A B

Page 13: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

13

Figura 4: Ejemplificación de las RLT. La intersección de las líneas permiten la formación de la

celda , la combinación de celdas serán las que formen el mosaico1.

Las líneas pueden ser descritas a través de una distancia ortogonal desde el origen y una

dirección dada por un ángulo , como se puede observar en la figura 5. Estas variables se

pueden tomar como las realizaciones de variables aleatorias y , donde y

.Finalmente el conjunto de celdas formadas por estas líneas es lo que forma el mosaico.

Figura 5: Características de las líneas en RLT. Cada línea está caracterizada por una distancia y su

dirección [17]

Para la generación del modelo se tienen en cuenta dos características. El primero es el del tamaño

de las líneas que viene de un proceso de poisson descrito por su intensidad , donde es el

número de puntos esperados para una unidad dada (ver Ecuación 2). Esta puede ser obtenida

como el promedio de longitudes de los diferentes bordes por unidad de área. La segunda

característica es son las direcciones del proceso, las cuales son independientes e idénticamente

1 La imagen fue obtenida de [17] y posteriormente modificada.

Page 14: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

14

distribuidas en el intervalo [0, ]. A partir de esto se caracteriza las líneas que generarían la

reconstrucción.

Ecuación 2: Modelo de probabilidad del Random Lines Tessallations

Los principales supuestos son similares al anterior. En efecto, las fibras deben ser largas, la

curvatura despreciable, debe existir una dirección preferencial horizontal de las fibras y el sistema

de fibras debe homogéneo e isotrópico. En este caso se utiliza en materiales como el que se puede

observar en la Figura 6.

Figura 6: A) Material fibroso B) Modelo obtenido usando Random Lines Tessallations [17]

3.2.3. Sequential Indicator Simulation El último modelo que se estudió fue el Sequential Indicator Simulation. Este método estocástico

permite simular variables categóricas controladas por estadística de dos puntos. Este tipo de

estadísticas están controladas por un indicador el cual se puede describir por la siguiente ecuación

[18]:

{

Ecuación 3: Indicador de clases para el método de Sequential Indicator Simulation

Este indicador asignará el valor de 1 en la ubicación espacial si en esa posición se encuentra la

clase . A partir de este indicador se pueden obtener propiedades espaciales. Éstas serían

reproducidas en las simulaciones. Por lo cual se realizan simulaciones que se asemejen

estadísticamente a la imagen referencia. Para tener un modelo de la probabilidad de que la

categoría esté en la ubicación se utiliza el kriging del indicador y es a partir de este

que se asigna que fase va en cada ubicación[18].

El Kriging es una colección de técnicas generalizadas de regresiones lineales para minimizar una

estimación de la varianza de los datos definida previamente a partir de los valores espaciales de la

covarianza. En este caso, se utiliza el “Kriging indicator” (IK) como parámetros para generar la

simulación. Este consiste en generar el Kriging del indicador de la variable aleatoria definido

previamente ( ). Esto provee un estimador, que es el mejor estimador de mínimos

Page 15: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

15

cuadrados del valor esperado condicional de Este valor es igual a la distribución de

probabilidad condicionada (ccdf) de , como se demuestra a continuación [18]:

Se tiene que la ccdf está definida por:

| { | }

Teniendo en cuenta que el IK es el estimador de la variable en una ubicación espacial

{ | } { | } { | } { | } |

Ecuación 4: Demostración del kriging del indicador como ccdf

Por lo cual, este método provee un modelo de la ccdf de , dado por la Ecuación 5, el cual es la

base para aplicar el algoritmo de recreación de la microestructura, presentado en la Figura 7.

{ | } ∑

Ecuación 5: Kriging del indicador

∑ ( )

Ecuación 6: Matriz de la covarianza para encontrar los λα

Figura 7: Algoritmo para realizar la Sequential Indicator Simulation

Para emplear este método se utilizó la librería GSLIB, la cual tiene implementado el algoritmo en

el programa sisim.exe. Este programa utiliza la imagen de referencia y la distribución de

probabilidad conjunta de tipo escalón para generar la recreación de la estructura 3D. Para poder

utilizar este programa se debe procesar la imagen. Este procesamiento se realizó a través del

En nodo u realizar el kriging del indicador

Realizar una distribución de

probabilidad conjunta de tipo escalón

Generar un número aleatorio ,

uniformemente distribuido

El intervalo en el que p caiga determinará la

categoría asignada en u

Actualizar indicadores e ir a la siguiente

ubicación u’

Page 16: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

16

script ProcIm.m. Además, se debe crear un archivo con los parámetros del programa. Para escribir

estos parámetros se utilizó el script writeParSIS.m. Finalmente, para obtener un archivo VTK el

cual pudiera ser visto en el software Paraview se empleó el script VTKsubmucosa.m (ver anexos).

3.3. Método de simulación de la permeabilidad La permeabilidad es la capacidad que tiene un material de permitir que un flujo lo atraviese. El

fluido atraviesa el material gracias a que este es poroso. Para poder estudiar este fenómeno se

debe realizar el estudio del campo de flujo en el material. Esto se puede realizar a través del

método de Lattice Boltzmann.

3.3.1. Medio poroso Un medio poroso se puede definir como un material compuesto por una matriz sólida y un sistema

de poros en su interior ocupado por espacio vacío, como se puede observar en la Figura 8. Estos

poros pueden estar interconectados entre ellos lo cual afecta el comportamiento del material, ya

que al estar interconectados forman un camino por el cual el fluido puede filtrarse con mayor

libertad. En los biomateriales es común encontrar materiales porosos debido a que estos

favorecen que tanto las células como los nutrientes se infiltren y proliferen al interior del material

asegurando un ambiente propicio para la regeneración tisular [19].

Figura 8: Ejemplo de medio poroso, el cual consiste en la estructura del hueso esponjoso humano[20]

El flujo en estos materiales está dominado por la acción de fuerzas viscosas e inerciales. Esto

provoca que se produzcan dos tipos de flujos. El primero conocido como flujo Darcy, la

contribución viscosa es la que domina a bajos gradientes de presión. Esto provoca que se genere

una relación lineal entre el gradiente de presión y la velocidad del flujo. En el segundo, las fuerzas

inerciales provocan que la relación entre el gradiente de presión y la velocidad no sea lineal

creando el flujo No-Darcy.

Page 17: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

17

Figura 9: Flujos típicos en medios porosos [21]

3.3.2. Flujo Darcy Como se mencionó anteriormente. El flujo Darcy está dominado por la acción de fuerzas viscosas a

bajos gradientes de presión. Este tipo de flujo sigue la ley de Darcy, ilustrada en la Ecuación 7. Esta

ley indica que el medio poroso presenta una permeabilidad (K) constante permitiendo tener una

relación lineal entre el gradiente de presión y la tasa de flujo[22].

Ecuación 7: Ley de Darcy

3.3.3. Flujo no Darcy Este tipo de flujo se presenta a altas caídas de presión. En estas condiciones, las fuerzas inerciales

generan una caída de presión adicional debido a las interacciones que surgen entre la fase sólida

(material) y líquida (fluido), provocando una relación no lineal. Para caracterizar este flujo se tiene

la ecuación de Forcheimer (ver ecuación 8), la cual está en términos de un factor βF, que puede ser

obtenido a partir de simulaciones[21].

⟨ ⟩

⟨ ⟩|⟨ ⟩|

Ecuación 8: Ecuación de Forcheimer

3.3.4. Método de Lattice Boltzmann El método de Lattice Boltzmann (LBM) es una simplificación de la teoría de gases de Boltzmann. En

efecto, consiste fundamentalmente en resolver el campo de flujo discretizándolo en tiempo y en

espacio. Este método se puede considerar cómo un solucionador numérico de las ecuaciones de

Boltzmann, las cuales son el análogo a las ecuaciones de Navier-Stokes a un nivel molecular. Esto

presenta la necesidad de un análisis estadístico, por lo cual LBM hace uso de sus ecuaciones para

determinar las posiciones espaciales, las variaciones de volumen y densidad en el flujo total en

términos de momento e interacciones promedio, permitiendo así representar fenómenos de

interacción entre los fluidos y sus alrededores [23].

Page 18: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

18

En este caso se utilizó el modelo D3Q19. Éste consiste en tener 3 dimensiones con 19 posibles

direcciones de movimiento , como se ve en la Figura 10. En este caso las partículas poseen tres

velocidades posibles. En el medio la velocidad es 0Lu, en las direcciones ortogonales es 1Lu y en el

resto es √ Lu [24].

Figura 10: Modelo D3Q19

En la discretización, a cada una de las celdas les corresponde una función de distribución de

partículas (PDF) que viajan en cada dirección. La velocidad y la densidad del fluido son funciones

de estas distribuciones, como se puede ver en las Ecuaciones 9 y 10 [24].

Ecuación 9: Densidad del fluido en función de la PDF

Ecuación 10: Velocidad del fluido en función de la PDF

Para obtener la PDF el método se basa en dos pasos. En primer lugar está la propagación

(Streaming) el cual replica en promedio el flujo de las partículas dentro de la malla debido al

momentum de éstas, expresando el flujo de las densidades direccionales en el sentido en el que

están direccionadas (ver Figura 11) [25]. Este proceso está gobernado por la Ecuación 11.

Page 19: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

19

Figura 11: Ejemplificación del proceso de propagación [26]

Ecuación 11: Proceso de propagación

El siguiente paso es la colisión, el cual permite describir la dinámica del fluido al interpretar la

colisión de partículas una vez estas se hayan desplazado (ver Figura 12). Permitiendo tener el

modelo completo el cual está dado por la interacción de las colisiones y de la propagación. Esta

interacción se representa a través del modelo BGK, el cual enuncia que después de la interacción

las partículas tienden a un equilibrio.

Figura 12: Representación gráfica del fenómeno de colisión [26].

Ecuación 12: Modelo con la propagación y la colisión[25]

Page 20: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

20

{ ⁄ ⁄

Ecuación 13: Función de equilibrio

La librería Palabos permite el estudio de interacción de un fluido con estructura tanto 2D como

3D, por el método antes mencionado. Por ende, esta librería fue utilizada para realizar la

implementación del método que permita predecir la permeabilidad del material.

3.3.5. Condiciones de Frontera Las condiciones de frontera permiten calcular ciertos componentes de la función de distribución

de los nodos ubicados en la frontera del dominio, los cuales no se pueden calcular durante el

proceso de propagación y colisión. Estos nodos no se pueden calcular debido a que están

incompletos [25].

Periódica

En la frontera de malla los nodos son incompletos. En esta condición se busca que los nodos de

una frontera se relacionen con los de la frontera opuesta para crear un vecindario virtual. En la

Figura 13 se ejemplifica la relación entre nodos de frontera opuesta.

Figura 13: Ejemplificación de la condición periódica

Bounce back

El concepto fundamental del método es que la función de distribución saliente se refleja de

nuevo en el dominio en la dirección opuesta (ver Figura 14). Esto busca replicar las condiciones de

no deslizamiento y colisiones en el momento en el que las partículas del fluido interactúan con las

partículas del medio poroso, incluso aunque el medio poroso posea geometrías complejas.

Page 21: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

21

Figura 14: Ejemplificación de la condición de Bounce back

Dirichlet

En este caso se impone una fuerza volumétrica la cual permite establecer una velocidad inicial de

cero y que la presión decrezca linealmente en dirección del flujo.

4. Resultados y discusión

4.1. Reconstrucción de la estructura 3D En la figura 15a se puede observar la estructura original obtenida a partir de SEM. Se puede ver

que la estructura está compuesta de diferentes fibras de diversos tamaños y curvaturas. Además,

se observa que hay una interacción entre ellas debido al proceso de manufactura en el cual se

utiliza un agente entrecruzante. Es por esto que se decidió utilizar como método de recreación el

Sequential Indicator Simulation.

Figura 15: A) Microestructura de la esponja B) Imagen manipulada

A la micrografía se debió procesar para poder realizar la recreación. Esta manipulación consistió en

eliminar la leyenda de la imagen, disminuir su tamaño a una imagen de 100x100 píxeles y binarizar

(ver Figura 15b). La binarización permitía diferenciar entre la fase en la cual hay material (en

blanco) y la fase en el cual hay vacío (negro).

A partir de esta imagen procesada se generó diversas estructuras con porosidades entre 0.7326 y

0.95. Estas porosidades se utilizaron como la probabilidad marginal de la fase de vacío . Se

utilizaron estos valores debido a que son porosidades que se han encontrado experimentalmente

para este tipo de esponjas. En la Figura 16 se puede observar una visualización de la realización

3D. Para la figura 16a, se observa que hay una semejanza a la estructura original presentada en la

A B

Page 22: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

22

Figura 15. Esto se debe a que corresponden a la misma porosidad. En cuanto a la estructura de la

figura 16b, hay una disminución de la fase de la esponja, lo cual corresponde a un aumento de la

porosidad.

Figura 16: A) Realización con porosidad de 0.735 B) Realización con porosidad de

0.875

4.2. Comprobación de la porosidad Como se mencionó anteriormente, una porosidad en específico era uno de los objetivos de cada

una de las recreaciones de las estructuras. Esto permitió que se realizara una comprobación de la

fiabilidad del método de reconstrucción de la estructura 3D. La realización al estar compuesta por

100x100x100 píxeles se podían generar cortes en ésta, lo cual permitía tener una imagen 2D de la

microestructura. A esta imagen se le obtuvo la porosidad a través de la Ecuación 14.

(

)

Ecuación 14: Obtención de la porosidad

Se tomaron cortes de las estructuras 3D y a cada uno se le calculó la porosidad. A partir de estos

valores se calculó la porosidad promedio para cada realización. En la figura 17, se observa el

comportamiento de las porosidades en las diferentes recreaciones de la estructura. Se puede

observar que a medida que va aumentando el valor de la porosidad esperada, la porosidad

observada en las esponjas también aumenta.

Figura 17: Porosidad obtenida vs porosidad esperada

0,6

0,7

0,8

0,9

1

0,7 0,75 0,8 0,85 0,9 0,95 1

Po

rosi

dad

ob

ten

ida

Porosidad esperada

A B

Page 23: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

23

Por otro lado, se realizó una prueba t para cada porosidad. Es decir, cada porosidad observada se

comparó con la porosidad objetivo a través de una prueba t. Los resultados eran significativos si se

obtenía un valor p inferior a 0.05. Para todos los valores, el valor p fue superior a 0.05. Esto indica

que no hay evidencia estadística que permita diferenciar entre la porosidad de la estructura

recreada y la porosidad objetivo. Por lo tanto, el método que se utilizó para generar la

microestructura permitía reproducir la porosidad del material real.

4.3. Simulación de la permeabilidad Se predijo la permeabilidad para las diferentes porosidades en las tres direcciones de flujo (x, y, z)

a través del método de Lattice-Boltzmann. Para realizar esto, se realizó un procesamiento de la

geometría 3D. Cada una de las estructuras recreadas se dividió en 100 cortes que representaban la

figura 3D. Estos cortes se procesaron en Matlab usando el archivo createDAT.m. Éste permite

definir cuáles nodos son de la fase sólida (azul), cuáles son de interfaz sólido líquido (verde) y

cuáles son vacíos (rojo) que permitan pasar el fluido. En la Figura 18 se puede observar un ejemplo

de como se ve un corte de la esponja después de este procesamiento. Este procesamiento facilita

la ejecución de la simulación del flujo. En efecto, sólo se tendrán en cuenta los sitios en los que

hayan fase de vacío o interacción sólido líquido. Este algoritmo crea un archivo .dat el cual

contiene esta información y puede ser utilizado en la librería de Palabos.

Figura 18: Ejemplificación del proceso para definir nodos.

A continuación se utilizó la librería Palabos el cual tiene implementado un algoritmo que permite

simular el flujo y calcular la permeabilidad. Este algoritmo se denomina permeability.cpp y debe

ser compilado en un compilador de c++. En este caso se utilizó el compilador de uso libre

Code::Blocks. Se utilizó, en un principio, un gradiente de 0.00005 Lu, para asegurarse que se

cumpliera la ecuación de Darcy. En efecto, en cada realización se llevó a cabo varias veces la

simulación con el mismo gradiente y se obtuvo la misma permeabilidad. Esto indicó que si se

estaba llevando a cabo un flujo Darcy.

En la Figura 19, se puede observar una ejemplificación de cómo se observaba el flujo en la

estructura. En la Figura 19a, se tiene un corte 2D del inicio de la esponja y en la figura 19b en el

medio. Se tiene que las zonas de color rojo son en las que el flujo presenta mayor velocidad y las

zonas que tienden a ser de color azul son por las que el fluido no se mueve. En la figura 19c se

Page 24: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

24

tiene una vista del flujo en la geometría 3D de la esponja. Se puede observar que sólo se tiene una

dirección del flujo.

Figura 19: Ejemplificación del flujo en A) el inicio de la esponja, B) en la mitad y C) en la geometría 3D

Al utilizar el método de Lattice Boltzmann se tuvo que al variar la porosidad entre 0,73 y 0.95 el

rango de permeabilidades observadas era entre 5 y 90 μm2. En la Figura 20 se observa como la

permeabilidad aumenta al incrementar la porosidad. Fenómeno esperado, ya que hay menor

cantidad de material que se oponga al flujo. Por otro lado, se observa que la permeabilidad no es

la misma en las tres direcciones de flujo. En efecto, es menor en lo que se denominó como

dirección Z. Esto se debe a que se partía del supuesto que la imagen utilizada para generar la

reconstrucción era homogénea e isotrópica. Sin embargo este no es el caso. En efecto, al observar

la figura 15a, se tienen diferentes regiones. Hay zonas del material en el cual se observa gran

cantidad de fase sólida y otras en el cual sólo hay vacío. El método de generación de la estructura

al recrear la distribución estadística local producirá esta misma heterogeneidad de la estructura.

Por lo cual se produce una realización con zonas que poseen más fase sólida que otras,

provocando que la permeabilidad varíe dependiendo de la dirección de flujo que se observe.

Figura 20: Permeabilidad para las diferentes porosidades

0

20

40

60

80

100

0,73 0,78 0,83 0,88 0,93

Perm

eab

ilid

ad (

μm

2)

Porosidad

X

Y

Z

A B C

Page 25: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

25

Además se comparó los resultados obtenidos en las simulaciones con permeabilidades

experimentales. Para esponjas en base de colágeno se han encontrado valores que oscilan entre

los 53-420 [27]. Las permeabilidades obtenidas en la simulación están dentro de los rangos de

permeabilidades experimentales. Sin embargo, los valores experimentales no se reportaba la

porosidad del material. Por lo cual, a pesar de que los valores están en los rangos experimentales

no se puede concluir que sean los mismos.

Por otro lado, se realizó una comprobación que el material siguiera la ley de Darcy para diferentes

valores de Reynolds. En este caso, se obtuvo que la permeabilidad se mantenía constante para

valores de Reynolds de 0.0001 hasta 2.5, corroborando la ley de Darcy (ver Figura 21). Para valores

más altos la simulación divergía debido a la complejidad de la geometría. Por lo cual representa un

límite de este tipo de simulaciones.

Figura 21: Permeabilidad para diversos valores de número de Reynolds

5. Conclusiones Se llevó a cabo la implementación de un método que recrea estadísticamente la microestructura

de esponjas de SIS, a partir de micrografías de SEM. Este método permite reproducir indicadores

estadísticos de la imagen que dependen de la ubicación espacial de ésta. Esto implica que si la

imagen no es homogénea, las propiedades del material simulado cambien según la dirección en

que se evalúen.

Este algoritmo permitió generar microestructuras con diferentes porosidades. Estas porosidades

se usaron como la porosidad marginal de la fase de vacío permitiendo así recrearlas. El

funcionamiento del método se comprobó a través de las porosidades objetivo. Se obtuvo que en

todas las recreaciones no hubo diferencia estadística con la porosidad deseada. Por lo cual, se

puede decir que en términos de porosidad, el Sequential Indicator Simulation reprodujo la

microestructura de la esponja.

Por otro lado, se utilizó el método de Lattice Boltzmann a través de la librería Palabos para simular

el flujo en la esponja y obtener así la permeabilidad. Esta simulación se realizó para un rango de

0,00000

1,00000

2,00000

3,00000

4,00000

5,00000

6,00000

7,00000

0 0,5 1 1,5 2 2,5

Perm

eab

ilid

ad (𝜇𝑚

2)

REYNOLDS

Page 26: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

26

porosidades que variaba entre 0.73 hasta 0.95. La permeabilidad aumentó a medida que la

porosidad aumentó teniendo un rango de permeabilidad que iba desde 5 hasta 90 μm2. Debido al

tipo de recreación de la estructura que se utilizó, el flujo variaba dependiendo de la dirección en la

que este se estudiara.

Por último se llevó a cabo la comprobación de la ley de Darcy en el material. Se obtuvo que para

valores de Reynolds que variaban entre 0.0001 y 2.5 la permeabilidad se mantenía constante

siendo fiel a la ley de Darcy. Sin embargo, para valores más altos de Reynolds el método no

convergía debido a la complejidad de la estructura, siendo un limitante de este método.

Como trabajo futuro, se espera ajustar la simulación de la estructura utilizando cortes

transversales. Además, se propone continuar con la simulación del material frente a fluidos con

partículas, los cuales se acercan más al comportamiento del material frente a un fluido como la

sangre.

6. Referencias [1] S. F. Badylak, D. O. Freytes, and T. W. Gilbert, “Extracellular matrix as a biological scaffold

material: Structure and function,” Acta Biomater., vol. 5, no. 1, pp. 1–13, Jan. 2009. [2] A. Sheidaei, M. Baniassadi, M. Banu, P. Askeland, M. Pahlavanpour, N. Kuuttila, F.

Pourboghrat, L. T. Drzal, and H. Garmestani, “3-D microstructure reconstruction of polymer nano-composite using FIB–SEM and statistical correlation function,” Compos. Sci. Technol., vol. 80, pp. 47–54, May 2013.

[3] WHO, “WHO | The top 10 causes of death,” WHO. [Online]. Available: http://www.who.int/mediacentre/factsheets/fs310/en/. [Accessed: 08-Dec-2014].

[4] WHO, “Colombia: health profile 2012.” 2012. [5] DANE, “Defunciones por grupo de edad y sexo, según departamentos de ocurrencia y grupos

de causas de defunción, Tabla Nacional y Departamental.” 2010. [6] T. Shinohara, Y. Yamashita, K. Satoh, K. Mikami, Y. Yamauchi, S. Hoshino, A. Noritomi, and T.

Maekawa, “Prospective evaluation of occlusive hydrocolloid dressing versus conventional gauze dressing regarding the healing effect after abdominal operations: randomized controlled trial,” Asian J. Surg. Asian Surg. Assoc., vol. 31, no. 1, pp. 1–5, Jan. 2008.

[7] Y. Dong, W. U. Hassan, R. Kennedy, U. Greiser, A. Pandit, Y. Garcia, and W. Wang, “Performance of an in situ formed bioactive hydrogel dressing from a PEG-based hyperbranched multifunctional copolymer,” Acta Biomater., vol. 10, no. 5, pp. 2076–2085, May 2014.

[8] I. R. Sweeney, M. Miraftab, and G. Collyer, “Absorbent alginate fibres modified with hydrolysed chitosan for wound care dressings--II. Pilot scale development,” Carbohydr. Polym., vol. 102, pp. 920–927, Feb. 2014.

[9] M. S. Kim, K. D. Hong, H. W. Shin, S. H. Kim, S. H. Kim, M. S. Lee, W. Y. Jang, G. Khang, and H. B. Lee, “Preparation of porcine small intestinal submucosa sponge and their application as a wound dressing in full-thickness skin defect of rat,” Int. J. Biol. Macromol., vol. 36, no. 1–2, pp. 54–60, Jul. 2005.

[10] M. A. Cobb, S. F. Badylak, W. Janas, A. Simmons-Byrd, and F. A. Boop, “Porcine small intestinal submucosa as a dural substitute,” Surg. Neurol., vol. 51, no. 1, pp. 99–104, Jan. 1999.

[11] R. Beltrán, “Preparación y evaluación de soportes de colágeno a partir de submucosa intestinal porcina para tejido vascular,” Tesis de pregrado en Ingeniería Mecánica, Universidad de los Andes, Bogotá, 2005.

Page 27: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

27

[12] J. Navarro Rueda, S. Palencia, D. M, Q. Luque, L. M, B. Triana, and J. C, “A Pressure-Volume System for Measuring Mechanical Properties of Small Diameter Vessels,” Rev. Ing., no. 37, pp. 31–37, Dec. 2012.

[13] B. D. R. S. H. J. S. E. Lemons, Ed., “Front Matter,” in Biomaterials Science (Third Edition), Academic Press, 2013, p. iii.

[14] B.-S. Kim, I.-K. Park, T. Hoshiba, H.-L. Jiang, Y.-J. Choi, T. Akaike, and C.-S. Cho, “Design of artificial extracellular matrices for tissue engineering,” Prog. Polym. Sci., vol. 36, no. 2, pp. 238–268, Feb. 2011.

[15] Y.-H. Lee, J.-J. Chang, M.-C. Yang, C.-T. Chien, and W.-F. Lai, “Acceleration of wound healing in diabetic rats by layered hydrogel dressing,” Carbohydr. Polym., vol. 88, no. 3, pp. 809–819, Apr. 2012.

[16] K. Schladitz, S. Peters, D. Reinel-Bitzer, A. Wiegmann, and J. Ohser, “Design of Acoustic Trim Based on Geometric Modeling and Flow Simulation for Non-Woven,” Comput. Mater. Sci., vol. 38, no. I, pp. 56–66, 2006.

[17] R. Thiedmann, F. Fleischer, C. Hartnig, W. Lehnert, and V. Schmidt, “Stochastic 3D Modeling of the GDL Structure in PEMFCs Based on Thin Section Detection,” J. Electrochem. Soc., vol. 155, no. 4, pp. B391–B399, Apr. 2008.

[18] C. Deutsch and A. Journel, GSLIB: Geostatical software library and user’s guide. New York: Oxford University Press, 1998.

[19] T. M. Freyman, I. V. Yannas, and L. J. Gibson, “Cellular materials as porous scaffolds for tissue engineering,” Prog. Mater. Sci., vol. 46, no. 3–4, pp. 273–282, 2001.

[20] Random Heterogeneous Materials - Microstructure and Macroscopic Properties. . [21] C. Chukwudozie, “Pore-Scale Lattice Boltzmann simulations of inertial flows in realistic porous

media: A first principle analysis of the forchheimer relationship.,” Federal university of Technology, Minna, 2006.

[22] E. S. Boek and M. Venturoli, “Lattice-Boltzmann studies of fluid flow in porous media with realistic rock geometries,” Comput. Math. Appl., vol. 59, no. 7, pp. 2305–2314, Apr. 2010.

[23] FlowKit ltd, “Lattice Boltzmann Method - the kernel of Palabos.” 2012. [24] D. Duarte, “SIMULACIÓN DE FLUJOS MULTIFÁSICOS A TRAVÉS DE UN MEDIO POROSO

UTILIZANDO EL MÉTODO DE LATTICE-BOLTZMANN,” Universidad de los Andes, Bogotá, 2012. [25] M. Sukop and D. Thorne, Lattice Boltzmann Modeling - An Introduction for Geoscientists and

Engineers. Springer, 2006. [26] I. C. López, “Estudio de la interacción entre una gota de agua y una superficie libre,”

Universidad de los Andes, Bogotá, 2010. [27] M. L. Borene, V. H. Barocas, and A. Hubel, “Mechanical and Cellular Changes During

Compaction of a Collagen-Sponge-Based Corneal Stromal Equivalent,” Ann. Biomed. Eng., vol. 32, no. 2, pp. 274–283, Feb. 2004.

7. Anexos Código para procesar la imagen y obtener el archive .dat para usar la librería GSLIB. % ProcIm.m % Código para procesar la imagen %% Fase de eliminación %Se elimina los datos previos clear all close all clc %% Fase de cargado y visualización

Page 28: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

28

%Se carga y visualiza las imágenes de trabajo Im= imread('Im12.tif'); figure(1) subplot(1,3,1); imshow(Im); title('Estructura de la esponja obtenida a través de SEM') %% Corte de la imagen %Se realiza un corte de la imagen hasta 861 pixeles en la dirección y,

esto %se debe a que a partir de esta dimensión se tiene es el rotulo de la %imagen producida por el SEM Imw=Im(1:800,1:800); subplot(1,3,2) imshow(Imw); title('Estructura de la esponja, sin rotulo de SEM') %% Binarizacion de la imagen %Se realiza un proceso de binarizado para asegurarse que se tienen dos %fases. La primera es una fase en la cual estaría el material, la segunda %sería el vacío. binImw=im2bw(Imw,0.4); subplot(1,3,3) imshow(binImw); title('Estructura de la esponja binarizada') %% Escalado de la imagen para tratarla binImwWork=imresize(binImw,0.125); figure(2) imshow(binImwWork) imwrite(binImwWork,'ImagenReal.png') %% Se crea el archivo GEOEAS % Se genera el archivo GEOEAS de la imagen a partir de la imagen de la % micrografía writeGEOEAS(binImwWork,'submucosa.dat',1)

Función para crear el archive GEOEAS y usarlo en GSLIB %writeGEOEAS.m

%función que crea un archivo GEOEAS a partir de una matriz %array->arreglo del cual se va a hacer el archivo .dat %filename-> nombre del archivo de salida, debe finalizar en .dat %z valor de z para la reconstrucción function writeGEOEAS(array,filename,z)

[nx,ny]=size(array);

fid=fopen(filename,'wt'); fprintf(fid, 'Archivo GeoEas\n'); fprintf(fid, '4\n'); fprintf(fid, 'Xlocation\n'); fprintf(fid, 'Ylocation\n'); fprintf(fid, 'Zlocation\n'); fprintf(fid, 'Variable\n'); for i=1:nx for j=1:ny fprintf(fid, '%d %d %d %d\n', i, j, z, array(i,j)); end end

Page 29: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

29

fclose(fid);

end

Código para crear el archivo de parámetros que se utiliza en el método SISIM de GSLIB %writeParSIS.m

%Script que crea el archivo de parámetros para el Programa SISIM filename='Parametros.par'; fid=fopen(filename,'wt');

fprintf(fid,' Parameters for SISIM\n'); fprintf(fid,' ********************\n'); fprintf(fid,'\n'); fprintf(fid,'START OF PARAMETERS:\n'); fprintf(fid,'0\n');% 1=continuous(cdf), 0=categorical(pdf) fprintf(fid,'2\n');% number thresholds/categories fprintf(fid,'0 1\n');% thresholds / categories fprintf(fid,'0.001 0.999 \n');% global cdf / pdf (probabilidades

porosidad) una por treshold/categoría fprintf(fid,'submucosa.dat\n');% file with data GEOEAS fprintf(fid,'1 2 3 4\n');% columns for X,Y,Z, and variable in the

file fprintf(fid,'direct.ik\n');% file with soft indicator input fprintf(fid,'1 2 3 0\n');% columns for X,Y,Z, and indicators fprintf(fid,'0\n');% Markov-Bayes simulation (0=no,1=yes) fprintf(fid,'0.64 0.29 0.83 0.5 0.37\n');% calibration B(z) values fprintf(fid,'-100 100\n');%trimming limits (números mayor y menor) fprintf(fid,'0 1\n');% minimum and maximum data value fprintf(fid,'1 0.0\n');% lower tail option and parameter fprintf(fid,'1 0.5\n');% middle option and parameter fprintf(fid,'1 1\n');% upper tail option and parameter fprintf(fid,'submucosa.dat\n');% file with tabulated values fprintf(fid,'4 0\n');% columns for variable, weight fprintf(fid,'0\n');%debugging level: 0,1,2,3 fprintf(fid,'sisim.dbg\n');% file for debugging output fprintf(fid,'sisim.out\n');% file for simulation output fprintf(fid,'1\n');%number of realizations fprintf(fid,'100 0.5 1.0\n');% nx,xmn,xsiz fprintf(fid,'100 0.5 1.0\n');% ny,ymn,ysiz fprintf(fid,'100 0.5 1.0\n');% nz,zmn,zsiz fprintf(fid,'95743\n');%random number seed fprintf(fid,'30\n');%maximum original data for each kriging fprintf(fid,'15\n');%maximum previous nodes for each kriging fprintf(fid,'0\n');% maximum soft indicator nodes for kriging fprintf(fid,'1\n');% assign data to nodes? (0=no,1=yes) fprintf(fid,'0 0 \n');% multiple grid search? (0=no,1=yes),num fprintf(fid,'0\n');% maximum per octant (0=not used) fprintf(fid,'10.0 10.0 10.0\n');% maximum search radii fprintf(fid,' 45.0 90.0 135.0\n');% angles for search ellipsoid fprintf(fid,'50 50 50\n');% size of covariance lookup table fprintf(fid,'0 2.5\n');% 0=full IK, 1=median approx. (cutoff) fprintf(fid,'0\n');% 0=SK, 1=OK fprintf(fid,'1 0.08\n');%One nst, nugget effect fprintf(fid,'2 1.07 0 0 0\n');% it,cc,ang1,ang2,ang3 fprintf(fid,' 7.0 7.0 7.0\n');% a_hmax, a_hmin, a_vert fprintf(fid,'1 0.08\n');%Two nst, nugget effect

Page 30: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

30

fprintf(fid,'2 1.07 0 0 0\n');% it,cc,ang1,ang2,ang3 fprintf(fid,' 7.0 7.0 7.0\n');% a_hmax, a_hmin, a_vert fprintf(fid,'\n'); fclose(fid);

Código para la generación de un archive VTK para su visualización en Paraview %VTKsubmucosa.m

%%Creación del archivo VTK para meter en paraview close all clear all clc

load SISIMout.txt a=100; b=a; c=a;

array=zeros(a,b,c);

%creación del arreglo para generar el archivo VTK (1 es poro 0 es roca) for k=1:a for j=1:b for i=1:c

array(i,j,k)=SISIMout(i+(j-1)*a+(k-1)*a*b);

if array(i,j,k)==0 array(i,j,k)=0; else array(i,j,k)=1; end

end end end

writevtk(array,'submucosa1.vtk');

Función para generar el archive VTK %writevtk.m

%función que genera un archivo VTK a partir de un arreglo %array-> Arreglo base del cual se hará el VTK %filename nombre del archivo de salida debe terminar el .vtk function writevtk(array, filename)

[nx, ny, nz] = size(array); fid = fopen(filename, 'wt'); fprintf(fid, '# vtk DataFile Version 2.0\n');

Page 31: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

31

fprintf(fid, 'Comment goes here\n'); fprintf(fid, 'ASCII\n'); fprintf(fid, '\n'); fprintf(fid, 'DATASET STRUCTURED_POINTS\n'); fprintf(fid, 'DIMENSIONS %d %d %d\n', nx, ny, nz); fprintf(fid, '\n'); fprintf(fid, 'ORIGIN 0.000 0.000 0.000\n'); fprintf(fid, 'SPACING 1.000 1.000 1.000\n'); fprintf(fid, '\n'); fprintf(fid, 'POINT_DATA %d\n', nx*ny*nz); fprintf(fid, 'SCALARS scalars float\n'); fprintf(fid, 'LOOKUP_TABLE default\n'); fprintf(fid, '\n'); for c=1:nz for b=1:ny for a=1:nx fprintf(fid, '%d ', array(a,b,c)); end fprintf(fid, '\n'); end end fclose(fid); return

Función para obtener el archivo .dat para utilizar la librería Palabos %createDAT.m

function createDAT(numFiles,path,baseInput,baseOutput)

tic basename = [path '/' baseInput]; % base name of the bmp files fid = fopen(baseOutput, 'w'); % open the output file to write in

%%%%%%%%%%%%%%%%%%%%% INLET SLICE %%%%%%%%%%%%%%%%%%%%%%%% fname = [basename num2str(1, '%0.4i') '.bmp'];

fnameu = [basename num2str(2, '%0.4i') '.bmp'];

BB=imread(fname ,'BMP'); CC=imread(fnameu ,'BMP'); nx=size(BB,2) ny=size(BB,1) B=zeros(ny,nx);

wholeGeom=zeros(ny,nx,2);

wholeGeom(:,:,1)=BB; wholeGeom(:,:,2)=CC;

indexMin=find(wholeGeom==0); indexMax=find(wholeGeom>0);

Page 32: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

32

wholeGeom(indexMin)=255; wholeGeom(indexMax)=0;

%i rA = circshift(wholeGeom,[0,1, 0]); lA = circshift(wholeGeom,[0,-1, 0]); fA = circshift(wholeGeom,[1,0, 0]); bA = circshift(wholeGeom,[-1,0,0]);

rfA = circshift(wholeGeom,[1,1,0]); rbA = circshift(wholeGeom,[-1,1,0]); lfA = circshift(wholeGeom,[1,-1,0]); lbA = circshift(wholeGeom,[-1,-1,0]);

%i+1 uA=circshift(wholeGeom,[0,0, 1]);

urA = circshift(wholeGeom,[0,1, 1]); ulA = circshift(wholeGeom,[0,-1, 1]); ufA = circshift(wholeGeom,[1,0, 1]); ubA = circshift(wholeGeom,[-1,0,1]);

urfA = circshift(wholeGeom,[1,1,1]); urbA = circshift(wholeGeom,[-1,1,1]); ulfA = circshift(wholeGeom,[1,-1,1]); ulbA = circshift(wholeGeom,[-1,-1,1]);

for i=1:nx for j=1:ny

if (wholeGeom(j,i,1) == 255 && rA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && lA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && fA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && bA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,1) == 255 && rfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && rbA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && lfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && lbA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,1) == 255 && uA(j,i)==0) B(j,i) = 1;

Page 33: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

33

elseif (wholeGeom(j,i,1) == 255 && urA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && ulA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && ufA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && ubA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,1) == 255 && urfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && urbA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && ulfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,1) == 255 && ulbA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,1) == 0) B(j,i) = 0; else B(j,i)=2;

end

end end

image(30*B) axis equal drawnow

'printing first slice' fprintf(fid, '%i\n', B);

%%%%%%%%%%%%%%%%%%%%% INTERNAL SLICES %%%%%%%%%%%%%%%%%%%%%%%%

for ii=2:numFiles-1 ii fname = [basename num2str(ii, '%0.4i') '.bmp']; fnamed =[basename num2str(ii-1, '%0.4i') '.bmp']; fnameu = [basename num2str(ii+1, '%0.4i') '.bmp']; AA=imread(fnamed ,'BMP'); BB=imread(fname ,'BMP'); CC=imread(fnameu ,'BMP');

wholeGeom=zeros(ny,nx,3);

wholeGeom(:,:,1)=AA; wholeGeom(:,:,2)=BB; wholeGeom(:,:,3)=CC;

Page 34: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

34

indexMin=find(wholeGeom==0); indexMax=find(wholeGeom>0);

wholeGeom(indexMin)=255; wholeGeom(indexMax)=0;

%i rA = circshift(wholeGeom,[0,1, 0]); lA = circshift(wholeGeom,[0,-1, 0]); fA = circshift(wholeGeom,[1,0, 0]); bA = circshift(wholeGeom,[-1,0,0]);

rfA = circshift(wholeGeom,[1,1,0]); rbA = circshift(wholeGeom,[-1,1,0]); lfA = circshift(wholeGeom,[1,-1,0]); lbA = circshift(wholeGeom,[-1,-1,0]);

%i-1 dA=circshift(wholeGeom,[0,0, -1]);

drA = circshift(wholeGeom,[0,1, -1]); dlA = circshift(wholeGeom,[0,-1, -1]); dfA = circshift(wholeGeom,[1,0, -1]); dbA = circshift(wholeGeom,[-1,0,-1]);

drfA = circshift(wholeGeom,[1,1,-1]); drbA = circshift(wholeGeom,[-1,1,-1]); dlfA = circshift(wholeGeom,[1,-1,-1]); dlbA = circshift(wholeGeom,[-1,-1,-1]);

%i+1 uA=circshift(wholeGeom,[0,0, 1]);

urA = circshift(wholeGeom,[0,1, 1]); ulA = circshift(wholeGeom,[0,-1, 1]); ufA = circshift(wholeGeom,[1,0, 1]); ubA = circshift(wholeGeom,[-1,0,1]);

urfA = circshift(wholeGeom,[1,1,1]); urbA = circshift(wholeGeom,[-1,1,1]); ulfA = circshift(wholeGeom,[1,-1,1]); ulbA = circshift(wholeGeom,[-1,-1,1]);

for i=1:nx for j=1:ny if (wholeGeom(j,i,2) == 255 && rA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && lA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && fA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && bA(j,i)==0) B(j,i) = 1;

Page 35: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

35

elseif (wholeGeom(j,i,2) == 255 && rfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && rbA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && lfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && lbA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && dA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && drA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dlA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dbA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && drfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && drbA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dlfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dlbA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && uA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && urA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && ulA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && ufA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && ubA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && urfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && urbA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && ulfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && ulbA(j,i)==0) B(j,i) = 1;

Page 36: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

36

elseif (wholeGeom(j,i,2) == 0) B(j,i) = 0; else B(j,i)=2;

end

end end

image(30*B) axis equal drawnow

fprintf(fid, '%i\n', B); end

%%%%%%%%%%%%%%%%%%%%% OUTLET SLICES %%%%%%%%%%%%%%%%%%%%%%%%

fname = [basename num2str(numFiles, '%0.4i') '.bmp']; fnamed =[basename num2str(numFiles-1, '%0.4i') '.bmp'];

AA=imread(fnamed ,'BMP'); BB=imread(fname ,'BMP');

wholeGeom=zeros(ny,nx,2);

wholeGeom(:,:,1)=AA; wholeGeom(:,:,2)=BB;

indexMin=find(wholeGeom==0); indexMax=find(wholeGeom>0);

wholeGeom(indexMin)=255; wholeGeom(indexMax)=0;

%i rA = circshift(wholeGeom,[0,1, 0]); lA = circshift(wholeGeom,[0,-1, 0]); fA = circshift(wholeGeom,[1,0, 0]); bA = circshift(wholeGeom,[-1,0,0]);

rfA = circshift(wholeGeom,[1,1,0]); rbA = circshift(wholeGeom,[-1,1,0]); lfA = circshift(wholeGeom,[1,-1,0]); lbA = circshift(wholeGeom,[-1,-1,0]);

Page 37: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

37

%i-1 dA=circshift(wholeGeom,[0,0, -1]);

drA = circshift(wholeGeom,[0,1, -1]); dlA = circshift(wholeGeom,[0,-1, -1]); dfA = circshift(wholeGeom,[1,0, -1]); dbA = circshift(wholeGeom,[-1,0,-1]);

drfA = circshift(wholeGeom,[1,1,-1]); drbA = circshift(wholeGeom,[-1,1,-1]); dlfA = circshift(wholeGeom,[1,-1,-1]); dlbA = circshift(wholeGeom,[-1,-1,-1]);

for i=1:nx for j=1:ny if (wholeGeom(j,i,2) == 255 && rA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && lA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && fA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && bA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && rfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && rbA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && lfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && lbA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && dA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && drA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dlA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dbA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 255 && drfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && drbA(j,i)==0)

Page 38: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

38

B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dlfA(j,i)==0) B(j,i) = 1; elseif (wholeGeom(j,i,2) == 255 && dlbA(j,i)==0) B(j,i) = 1;

elseif (wholeGeom(j,i,2) == 0) B(j,i) = 0; else B(j,i)=2;

end

end end

image(30*B) axis equal drawnow

'printing last slice' fprintf(fid, '%i\n', B);

fclose(fid);

toc

Código para obtener las porosidades de las muestras %porosidades.m

%Código para calcular las porosidades de las diferentes muestras clear all close all clc %% Importación de las imágenes %Imágenes para porosidad de 0.735 XY submucosa=imread('submucosa0735XY1.bmp'); [N,M]=size(submucosa); %Dimensiones de la imagen s0735=zeros(N,M,10); s0735(:,:,1)=im2bw(submucosa,0.5); s0735(:,:,2)=im2bw(imread('submucosa0735XY2.bmp'),0.5); s0735(:,:,3)=im2bw(imread('submucosa0735XY3.bmp'),0.5); s0735(:,:,4)=im2bw(imread('submucosa0735XY4.bmp'),0.5); s0735(:,:,5)=im2bw(imread('submucosa0735XY5.bmp'),0.5); s0735(:,:,6)=im2bw(imread('submucosa0735XY6.bmp'),0.5); s0735(:,:,7)=im2bw(imread('submucosa0735XY7.bmp'),0.5); s0735(:,:,8)=im2bw(imread('submucosa0735XY8.bmp'),0.5); s0735(:,:,9)=im2bw(imread('submucosa0735XY9.bmp'),0.5); s0735(:,:,10)=im2bw(imread('submucosa0735XY10.bmp'),0.5);

%Imágenes para porosidad de 0.75

Page 39: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

39

s075=zeros(N,M,10); s075(:,:,1)=im2bw(imread('submucosa0751.bmp'),0.5); s075(:,:,2)=im2bw(imread('submucosa0752.bmp'),0.5); s075(:,:,3)=im2bw(imread('submucosa0753.bmp'),0.5); s075(:,:,4)=im2bw(imread('submucosa0754.bmp'),0.5); s075(:,:,5)=im2bw(imread('submucosa0755.bmp'),0.5); s075(:,:,6)=im2bw(imread('submucosa0756.bmp'),0.5); s075(:,:,7)=im2bw(imread('submucosa0757.bmp'),0.5); s075(:,:,8)=im2bw(imread('submucosa0758.bmp'),0.5); s075(:,:,9)=im2bw(imread('submucosa0759.bmp'),0.5); s075(:,:,10)=im2bw(imread('submucosa07510.bmp'),0.5);

%Imágenes para porosidad de 0.775 s0775=zeros(N,M,10); s0775(:,:,1)=im2bw(imread('submucosa07751.bmp'),0.5); s0775(:,:,2)=im2bw(imread('submucosa07752.bmp'),0.5); s0775(:,:,3)=im2bw(imread('submucosa07753.bmp'),0.5); s0775(:,:,4)=im2bw(imread('submucosa07754.bmp'),0.5); s0775(:,:,5)=im2bw(imread('submucosa07755.bmp'),0.5); s0775(:,:,6)=im2bw(imread('submucosa07756.bmp'),0.5); s0775(:,:,7)=im2bw(imread('submucosa07757.bmp'),0.5); s0775(:,:,8)=im2bw(imread('submucosa07758.bmp'),0.5); s0775(:,:,9)=im2bw(imread('submucosa07759.bmp'),0.5); s0775(:,:,10)=im2bw(imread('submucosa077510.bmp'),0.5);

%Imágenes para porosidad de 0.8 s08=zeros(N,M,10); s08(:,:,1)=im2bw(imread('submucosa081.bmp'),0.5); s08(:,:,2)=im2bw(imread('submucosa082.bmp'),0.5); s08(:,:,3)=im2bw(imread('submucosa083.bmp'),0.5); s08(:,:,4)=im2bw(imread('submucosa084.bmp'),0.5); s08(:,:,5)=im2bw(imread('submucosa085.bmp'),0.5); s08(:,:,6)=im2bw(imread('submucosa086.bmp'),0.5); s08(:,:,7)=im2bw(imread('submucosa087.bmp'),0.5); s08(:,:,8)=im2bw(imread('submucosa088.bmp'),0.5); s08(:,:,9)=im2bw(imread('submucosa089.bmp'),0.5); s08(:,:,10)=im2bw(imread('submucosa0810.bmp'),0.5);

%Imágenes para porosidad de 0.85 s085=zeros(N,M,10); s085(:,:,1)=im2bw(imread('submucosa0851.bmp'),0.5); s085(:,:,2)=im2bw(imread('submucosa0852.bmp'),0.5); s085(:,:,3)=im2bw(imread('submucosa0853.bmp'),0.5); s085(:,:,4)=im2bw(imread('submucosa0854.bmp'),0.5); s085(:,:,5)=im2bw(imread('submucosa0855.bmp'),0.5); s085(:,:,6)=im2bw(imread('submucosa0856.bmp'),0.5); s085(:,:,7)=im2bw(imread('submucosa0857.bmp'),0.5); s085(:,:,8)=im2bw(imread('submucosa0858.bmp'),0.5); s085(:,:,9)=im2bw(imread('submucosa0859.bmp'),0.5); s085(:,:,10)=im2bw(imread('submucosa08510.bmp'),0.5);

%Imágenes para porosidad de 0.875 s0875=zeros(N,M,10); s0875(:,:,1)=im2bw(imread('submucosa08751.bmp'),0.5); s0875(:,:,2)=im2bw(imread('submucosa08752.bmp'),0.5); s0875(:,:,3)=im2bw(imread('submucosa08753.bmp'),0.5);

Page 40: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

40

s0875(:,:,4)=im2bw(imread('submucosa08754.bmp'),0.5); s0875(:,:,5)=im2bw(imread('submucosa08755.bmp'),0.5); s0875(:,:,6)=im2bw(imread('submucosa08756.bmp'),0.5); s0875(:,:,7)=im2bw(imread('submucosa08757.bmp'),0.5); s0875(:,:,8)=im2bw(imread('submucosa08758.bmp'),0.5); s0875(:,:,9)=im2bw(imread('submucosa08759.bmp'),0.5); s0875(:,:,10)=im2bw(imread('submucosa087510.bmp'),0.5);

%Imágenes para porosidad de 0.9 s09=zeros(N,M,10); s09(:,:,1)=im2bw(imread('submucosa091.bmp'),0.5); s09(:,:,2)=im2bw(imread('submucosa092.bmp'),0.5); s09(:,:,3)=im2bw(imread('submucosa093.bmp'),0.5); s09(:,:,4)=im2bw(imread('submucosa094.bmp'),0.5); s09(:,:,5)=im2bw(imread('submucosa095.bmp'),0.5); s09(:,:,6)=im2bw(imread('submucosa096.bmp'),0.5); s09(:,:,7)=im2bw(imread('submucosa097.bmp'),0.5); s09(:,:,8)=im2bw(imread('submucosa098.bmp'),0.5); s09(:,:,9)=im2bw(imread('submucosa099.bmp'),0.5); s09(:,:,10)=im2bw(imread('submucosa0910.bmp'),0.5);

%Imágenes para porosidad de 0.925 s0925=zeros(N,M,10); s0925(:,:,1)=im2bw(imread('submucosa09251.bmp'),0.5); s0925(:,:,2)=im2bw(imread('submucosa09252.bmp'),0.5); s0925(:,:,3)=im2bw(imread('submucosa09253.bmp'),0.5); s0925(:,:,4)=im2bw(imread('submucosa09254.bmp'),0.5); s0925(:,:,5)=im2bw(imread('submucosa09255.bmp'),0.5); s0925(:,:,6)=im2bw(imread('submucosa09256.bmp'),0.5); s0925(:,:,7)=im2bw(imread('submucosa09257.bmp'),0.5); s0925(:,:,8)=im2bw(imread('submucosa09258.bmp'),0.5); s0925(:,:,9)=im2bw(imread('submucosa09259.bmp'),0.5); s0925(:,:,10)=im2bw(imread('submucosa092510.bmp'),0.5);

%Imágenes para porosidad de 0.95 s095=zeros(N,M,10); s095(:,:,1)=im2bw(imread('submucosa0951.bmp'),0.5); s095(:,:,2)=im2bw(imread('submucosa0952.bmp'),0.5); s095(:,:,3)=im2bw(imread('submucosa0953.bmp'),0.5); s095(:,:,4)=im2bw(imread('submucosa0954.bmp'),0.5); s095(:,:,5)=im2bw(imread('submucosa0955.bmp'),0.5); s095(:,:,6)=im2bw(imread('submucosa0956.bmp'),0.5); s095(:,:,7)=im2bw(imread('submucosa0957.bmp'),0.5); s095(:,:,8)=im2bw(imread('submucosa0958.bmp'),0.5); s095(:,:,9)=im2bw(imread('submucosa0959.bmp'),0.5); s095(:,:,10)=im2bw(imread('submucosa09510.bmp'),0.5); %% Cálculo de porosidad %Inicialización de vectores por07325=zeros(10,1); por075=zeros(10,1); por0775=zeros(10,1); por08=zeros(10,1); por085=zeros(10,1); por0875=zeros(10,1); por09=zeros(10,1); por0925=zeros(10,1);

Page 41: DESARROLLO DE ALGORITMO COMPUTACIONAL PARA LA

41

por095=zeros(10,1); %Cálculo de Porosidad

for i=1:10 por07325(i)=sum(sum(s0735(:,:,i)))/(N*M); por075(i)=sum(sum(s075(:,:,i)))/(N*M); por0775(i)=sum(sum(s0775(:,:,i)))/(N*M); por08(i)=sum(sum(s08(:,:,i)))/(N*M); por085(i)=sum(sum(s085(:,:,i)))/(N*M); por0875(i)=sum(sum(s0875(:,:,i)))/(N*M); por09(i)=sum(sum(s09(:,:,i)))/(N*M); por0925(i)=sum(sum(s0925(:,:,i)))/(N*M); por095(i)=sum(sum(s095(:,:,i)))/(N*M); end desvpor07325=std(por07325); Mpor07325=mean(por07325);

desvpor075=std(por075); Mpor075=mean(por075);

desvpor0775=std(por0775); Mpor0775=mean(por0775);

desvpor08=std(por08); Mpor08=mean(por08);

desvpor085=std(por085); Mpor085=mean(por085);

desvpor0875=std(por0875); Mpor0875=mean(por0875);

desvpor09=std(por09); Mpor09=mean(por09);

desvpor0925=std(por0925); Mpor0925=mean(por0925);

desvpor095=std(por095); Mpor095=mean(por095);