Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Dedicado a Silvia y a mi familia. Gracias por vuestro apoyo y cariño. 1 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ÍNDICE 1.- INTRODUCCIÓN ............................................................................................. 6 1.1.- Conservación de órganos en frío .......................................................... 6 1.2.- Grupo de investigación ......................................................................... 10 1.2.1.- El personal ......................................................................................... 11 1.2.2.- Objetivos ........................................................................................... 11 1.2.3.- Método .............................................................................................. 13 1.2.4.- Las instalaciones ............................................................................... 16 1.2.5.- El equipamiento ................................................................................ 16 1.3.- Aportación del Proyecto Fin de Carrera al trabajo global del grupo de investigación ............................................................................... 1.4.- 17 Otros trabajos de investigación relacionados ..................................... 18 2.- HISTOLOGÍA Y FISIOLOGÍA DEL CORAZÓN ....................................... 20 2.1.- El corazón y las coronarias ................................................................... 20 2.2.- El miocardio y su estructura celular ................................................... 22 3.- MODELIZACIÓN ............................................................................................ 27 3.1.- Bases y hipótesis del estudio ................................................................. 2 27 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 3.2.- Estudios y modelos previos ................................................................... 29 3.3.- Estrategia de estudio: concepto de subestructura .............................. 33 4.- FUNDAMENTOS FÍSICOS Y MATEMÁTICOS ........................................ 37 4.1.- Revisión de métodos de caracterización de tejidos ............................ 37 4.1.1.- Métodos numéricos con discretización en tiempo y en espacio ....... 38 4.1.2.- Método de autovalores ...................................................................... 39 4.2.- Modelos de estado aplicados a la conducción en régimen transitorio ................................................................................................... 40 4.2.1.- Descripción interna de un sistema dinámico ..................................... 41 4.2.2.- Aplicación al problema de conducción en régimen transitorio ......... 42 4.2.3.- Desarrollo de un modelo de conducción bidimensional ................... 51 4.2.4.- Balance de calor en un elemento del tejido ....................................... 52 4.2.5.- Obtención de las matrices del sistema .............................................. 56 4.2.6.- Fuentes de error ................................................................................. 62 4.3.- Observaciones a la resolución directa mediante el planteamiento en autovalores ............................................................................................. 63 5.- SUBESTRUCTURACIÓN ............................................................................... 64 5.1.- Resolución mediante subestructuración ............................................. 3 64 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 5.2.- Estrategias de acoplamiento ................................................................. 67 5.2.1.- Subestructuración usando como variables de acoplamiento las temperaturas superficiales y flujos de calor .......................................... 68 5.2.2.- Subestructuración usando como variables de acoplamiento las temperaturas superficiales en los nodos adyacentes a los contornos .... 71 5.2.3.- Características del método de la subestructuración iterativa con acoplamiento en temperaturas equivalentes ......................................... 5.3.- 76 Subestructuración utilizando acoplamiento de superficies que abarquen más de un nodo de contorno .................................................... 78 6.- IMPLEMENTACIÓN INFORMÁTICA: CRYOJAB ................................... 80 6.1.- Diagrama e bloques de CRYOJAB ....................................................... 83 6.2.- Código de subestructura.h ..................................................................... 85 6.3.- Código de subestructura.cpp ................................................................. 89 6.4.- Código de main.cpp ............................................................................... 126 6.5.- CRYOJAB-color ..................................................................................... 147 7.- EJEMPLO Y RESULTADOS ......................................................................... 156 7.1.- Ejemplo .................................................................................................. 156 7.2.- Resultados .............................................................................................. 167 7.3.- Conclusiones .......................................................................................... 173 4 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ANEXO 1.- Datos sobre trasplantes de órganos: Situación actual ..................... 176 ANEXO 2.- Principios físico-químicos de la preservación en frío ...................... 182 ANEXO 3.- Diseño y ensayo de sistema computerizado para la perfusión de órganos con crioprotectores y almacenamiento a temperaturas subcero .......... 203 BIBLIOGRAFÍA ..................................................................................................... 212 1.- Información sobre histología y fisiología .................................................... 212 2.- Información sobre desarrollo matemático, subestructuración e implementación informática ........................................................................ 213 3.- Información sobre modelos y estudios de campos de temperatura analíticos y numéricos .................................................................................. 216 4.- Información genérica sobre criopreservación ........................................... 219 5 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 1.- INTRODUCCIÓN 1.1.- CONSERVACIÓN DE ÓRGANOS EN FRÍO El frío tiene el poder de preservar y el poder de destruir. Los mamuts encontrados en Siberia datan del Pleistoceno. Su estado de conservación es tan bueno que hemos podido extraer de ellos intactas sus proteínas y su ADN tras más de 50.000 años de almacenamiento en frío; ese mismo frío que quizá fue también la razón de su muerte. El almacenamiento de material biológico (células, tejidos, etc.) juega un papel esencial dentro de muchas parcelas de la actividad humana: agricultura (semillas) y ganadería (semen), trasplantes (piel, córneas, huesos, válvulas, órganos), injertos, tejidos artificiales, sangre, medicamentos, material reproductor en casos infertilidad, alimentos, etc. Sin embargo, el almacenamiento a largo plazo requiere de muy bajas temperaturas, típicamente entre –140ºC y –180ºC. En efecto, existe una relación directa entre la temperatura de almacenamiento y el tiempo durante el que se puede conservar la muestra. Fue el sueco premio Nobel Svante August Arrhenius quien en 1898 derivó la ecuación que establece que las reacciones químicas ocurren más lentamente a medida que la temperatura desciende. Por ejemplo, la catálisis por encimas, que se encuentra en células humanas y de distinto tipo, reacciona a un quinto de su valor normal cuando la temperatura desciende a 0ºC [Sakaguchi et al., 1996]. Cuando la temperatura está por debajo de –140ºC toda actividad metabólica se detiene y sólo entonces podemos hablar de preservación efectiva. 6 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Una de las aplicaciones fundamentales, y en la que nos vamos a centrar, es la conservación de órganos para los transplantes de órganos. En el Anexo 1 se puede encontrar información genérica sobre la situación actual de los trasplantes de órganos. En un trasplante de órganos, la conservación de éstos desde que son extraídos del donante hasta que son implantados en el receptor juega un papel de vital importancia para el éxito de dicho transplante. Aun siendo un punto decisivo, las investigaciones en este terreno no han avanzado suficientemente, y por lo tanto sigue habiendo una dependencia de los factores tiempo-distancia a la hora de establecer la posibilidad de un transplante. Así, si la distancia entre el donante y receptor es grande se complica la conservación del órgano, y si el espacio de tiempo se amplía por alguna circunstancia, el transplante llega a ser un fracaso. El almacenamiento a corto plazo es el método que se utiliza hoy por hoy en el caso de trasplante de órganos (corazón, riñón, hígado, pulmón, páncreas...). Actualmente, los órganos se conservan en unos recipientes con hielo estéril y otros aditivos, manteniendo el órgano en frío pero sin bajar la temperatura de los cuatro grados centígrados. Esta temperatura es un requisito necesario porque la congelación del órgano, o para ser más exactos, la congelación del agua que contiene y conforma el órgano, conlleva la formación de cristales de hielo que perjudica y rompe literalmente la estructura interna de los tejidos del órgano. A esta temperatura el órgano se conserva en buen estado sólo unas horas, doce horas a lo sumo, con lo que deja un margen de actuación muy estrecho para el transplante. Como ejemplo del interés que tiene perfeccionar la técnica actual podemos tomar el caso más conocido: el trasplante de corazón. Actualmente el tiempo máximo con ciertas garantías de almacenamiento del corazón es de tan sólo 4 horas. Este tiempo tan limitado 7 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 se traduce en altos costes del trasplante (transporte aéreo del órgano y numeroso personal sanitario) y en la reducción de la calidad y longevidad del órgano. Existen dos procedimientos que en principio pueden evitar la formación de hielo: a) usar velocidades de enfriamiento de decenas de miles de grados por minuto, lo que es totalmente irrealista y fuera de las posibilidades actuales de la técnica en la mayor parte de los casos, o b) añadir al sistema algún tipo de agente “anticongelante” (técnicamente llamados crioprotectores), con frecuencia utilizado en otros campos de la industria. Esta segunda posibilidad se viene aplicando desde hace tiempo en los laboratorios de todo el mundo con un éxito increíble. En la Universidad de Sevilla se usa de forma cotidiana cuando se trata de preservar células madre, embriones de ratón, etc..., en nitrógeno líquido. El anticongelante utilizado es glicerol, polietilenglicol o dimetilsulfóxido, generalmente. Dicha técnica fue descubierta hace 50 años por C. Polge y J. Lovelock y recibe el nombre de vitrificación. Lamentablemente, el problema de la preservación de material biológico de mayores dimensiones, como tejidos u órganos, aún no ha podido ser resuelto satisfactoriamente mediante la utilización de agentes crioprotectores. El motivo principal es la toxicidad de estos productos a las concentraciones requeridas (entorno a 8 molar) para una preservación efectiva. Existen otros muchos problemas derivados en cierto modo del anterior: la diversidad citológica de un órgano, la elección de la velocidad óptima de enfriamiento y del tipo de crioprotector, la conductividad térmica finita del medio, la lenta distribución del crioprotector, problemas en la desvitrificación (formación de hielo durante la vuelta a temperatura ambiente), etc. 8 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 A la vista de estas limitaciones, es vital un estudio completo de nuevas formas de conservación de los órganos. Con este espíritu de lograr mejoras en este campo, se ha creado un grupo de investigación en la Universidad de Sevilla para estudiar una de las técnicas más innovadoras y potentes en este campo. Se trata de conservar los órganos en frío a temperaturas inferiores a –40ºC, de forma que se paralicen toda actividad biológica posible en el tejido y pueda conservarse intacto durante semanas o meses. Para ello, como se ha comentado, el enfriamiento se realizará en unas condiciones específicas de manera que el corazón se transforme en un cuerpo vítreo, pero no congelado, sin existencia de hielo. Hay varias ramas de investigación con este fin: el enfriamiento mediante ondas electromagnéticas, o el enfriamiento controlado con ultrasonidos para impedir el crecimiento de los cristales de hielo que pueda formarse en el órgano. Una de las ramas más prometedoras, que es donde se enmarca este Proyecto Fin de Carrera, es la perfusión de líquido crioprotector por la red de vasos sanguíneos del órgano en cuestión. Esta técnica consiste en perfundir, es decir, introducir por los vasos que riegan el interior del órgano, un líquido que vaya enfriando de forma gradual a los tejidos internos. Este líquido crioprotector se introduce por la red arterial de forma continua con bombas peristálticas y controlada por sensores de caudal y temperatura. El líquido se introduce desde una temperatura inicial de 36ºC hasta la temperatura que queremos lograr de unos -40ºC, en un intervalo total de unos 20 minutos aproximadamente. Se elige como temperatura objetivo – 40ºC porque aunque realmente tengamos que enfriar hasta –196ºC para su conservación completa, el enfriamiento a partir de esa temperatura no conlleva riesgos para la conservación del órgano, ya que se encuentra vitrificado. Este líquido está formado por componentes orgánicos entre los cuales se encuentran sustancias anticongelantes que 9 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ayudan, junto al equilibrio termodinámico y osmótico, a evitar la formación de hielo en el interior de los tejidos. Por tanto, la funcionalidad del crioprotector es doble: ir enfriando al órgano y a la vez protegerlo de la formación de hielo. El futuro de esta técnica está en poner en marcha unos bancos de órganos donde sea posible conservar los órganos en estado vítreo, intactos para su uso en trasplantes en cualquier momento y para cualquier lugar. Aunque este hecho está aun lejano, el esfuerzo y la dedicación de muchas personas en este proyecto hacen que esté más cercano ese futuro esperanzador en la medicina y, por tanto, en la vida de muchas personas. El almacenamiento a largo plazo, la posibilidad de bancos de órganos y tejidos, es actualmente sólo un sueño. Dotaría a la medicina de recursos fabulosos, inimaginables hoy en día. La mera posibilidad de su existencia, algo que de seguro empezará a plantearse en breve, supondrá de por sí una gran revolución en la medicina y la sociedad. 1.2.- GRUPO DE INVESTIGACIÓN: Existe un grupo de investigación llamado CryoBioTech, en el que el autor de este Proyecto Fin de Carrera está incluido, que trabaja en la puesta a punto de nuevas técnicas de conservación de órganos en frío. 10 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 1.2.1.- El personal Somos un equipo de médicos, físicos, informáticos, químicos, y estudiantes de Proyecto Fin de Carrera de Ingeniería Superior de distintas especialidades: Química, electrónica, organización, e ingeniería en telecomunicación. Dada la complejidad que entraña la preservación en frío de un órgano, sólo un proyecto multidisciplinar puede pretender unos progresos reales en la materia. Hace algo más de un año decidimos reorientar nuestra investigación desde la Física Teórica hacia la investigación aplicada a la preservación de tejidos y órganos para trasplantes. Entonces tuvimos claro que una parte importante de nuestro esfuerzo debía invertirse en organizar una cooperación efectiva entre profesionales con distintas formaciones y un interés común en este tema y la formación de jóvenes en esta materia. 1.2.2.- Objetivos 1. A corto plazo (un año): a) Mejorar el almacenamiento en hipotermia para trasplantes mediante la adición controlada de crioprotectores. b) Agrupar investigadores europeos con intereses compartidos en la conservación en frío para bancos de tejidos y órganos. c) Solicitar ayuda a la UE para la formación de una red Europea de Investigación en conservación en frío para bancos de tejidos y órganos. 11 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 d) Elaboración de una página web como medio de transmisión de conocimientos, medio para compartir información entre profesionales y para acercar jóvenes investigadores. 2. A medio plazo (tres años): a) Almacenamiento en frío: llegar a temperaturas próximas a la criogénica controlando composición, concentración , viscosidad y toxicidad. b) Introducir y desarrollar tres técnicas novedosas en este campo, a saber: I- Destrucción de cristales de hielo formados eventualmente durante el proceso de enfriamiento mediante aplicación de ultrasonidos. II- Recalentamiento ultrarrápido de la muestra criopreservada mediante la aplicación de microondas. III- Diseño de técnicas de enfriamiento mediante campos electromagnéticos. c) Con la ayuda de la UE, organizar la cooperación para abordar el largo plazo. Encuentros anuales de los grupos integrantes de la red. 3. A largo plazo (de cinco a diez años): a) Criopreservación efectiva de órganos y tejidos. 12 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 1.2.3.- Método Para conseguir nuestro objetivo, la conservación efectiva de tejidos y órganos en frío, quizá lo más destacable sea nuestro empeño en la organización de los recursos de que disponemos: en la Universidad de Sevilla (Escuela Superior de Ingenieros, Departamento de Fisiología Médica y Biofísica y Hospital Virgen del Rocío) y los grupos que están interesados en la temática en Europa (Universidad de Coimbra, Universidad Joseph Fourier de Grenoble). Cuidamos al máximo los aspectos de organización, lo que pasa por afianzar la red y fomentar la movilidad de estudiantes. Para todo ello son necesarios resultados concretos e investigaciones que sirvan de aliciente y aval. Tenemos actualmente abiertas dos líneas de investigación, una teórica y otra experimental. La investigación teórica se centra en el estudio termodinámico de las propiedades de los órganos al enfriarse, el papel de los crioprotectores y los diseños de protocolos efectivos (teórico). El trabajo experimental está centrado en el diseño, la construcción y el ensayo de un dispositivo de perfusión con agentes crioprotectores de órganos. A continuación se detallan las características de estos estudios que estamos llevando a cabo. Investigación teórica Cuando enfriamos la célula se pierde agua y se concentran los solutos. Lo importante es que aunque se enfríe linealmente en el tiempo por la superficie del órgano o mediante su sistema vascular, esto no implica que se esté enfriando linealmente todo el órgano. Estos perfiles no lineales en cada punto del órgano dan lugar a distintas probabilidades de formación de hielo dentro del mismo. Para disminuir esta probabilidad 13 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 de manera uniforme en todo el órgano es necesario enfriar siguiendo un perfil no lineal en la periferia (o en su sistema vascular). Nos proponemos: 1. Estudiar la probabilidad de formación de hielo intracelular bajo perfiles no lineales. (Trabajo aceptado para publicación en la revista Cryobiology). 2. Estudiar la transmisión de calor/frío por conducción dentro de la célula. (Trabajo presentado en la XXVII Reunión Bienal de la Real Sociedad Española de Física, 2001). 3. Estudiar la forma de enfriar la célula de forma que se uniformice y minimice la formación de hielo intracelular. 4. Estudiar la transmisión de calor/frío por conducción desde la periferia de un órgano. 5. Estudiar la transmisión de calor/frío por conducción desde el sistema vascular: Este estudio es el que se recoge en este Proyecto Fin de Carrera (Trabajo presentado en el Congreso Nacional de Biotecnología BIOTEC’2002). 6. Estudiar la transmisión de calor/frío por conducción (periferia y sistema vascular) y transporte de masa (sistema vascular). 7. Estudiar la probabilidad de formación de hielo dentro del órgano. 14 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 En una fase posterior bañaremos el órgano durante la perfusión con ultrasonidos capaces de destruir los cristales de hielo que eventualmente se vayan formando. En esta línea se está comenzando a hacer unos estudios previos al abordaje del trabajo. Un estudio detallado de la Termodinámica de la Formación de Hielo durante la Preservación de Órganos en Frío se recoge en el Anexo 2. Investigación experimental Se sabe que los agentes crioprotectores son tanto menos tóxicos cuanto más frío está el órgano. Por ello se realizará una perfusión controlando temperatura y concentraciones. Nos centraremos inicialmente en el corazón porque podemos realizar pruebas sencillas de funcionalidad (esfuerzo, electrocardiograma). La idea es que se complementen la investigación teórica y experimental. El sistema experimental, grosso modo, consiste en lo siguiente. En un ordenador se establece la temperatura a la que queremos que esté el órgano en cada instante y la concentración de crioprotector que debe contener en ese instante. El ordenador se encargará de dar las debidas instrucciones al sistema de perfusión para que inyecte en el órgano la solución con las características de temperatura y concentración definidas en el paso anterior. Un sistema de sensores continuamente monitorizan los parámetros que definen estas propiedades sobre el órgano. Esta información es enviada de vuelta al ordenador, que comparándolas con las definidas teóricamente hará las modificaciones adecuadas para ajustarse a lo establecido por el experimentador. 15 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Con este sistema de “feed-back” (bucle cerrado) esperamos poder bajar la temperatura de órgano al menos hasta –10ºC utilizando los crioprotectores convencionales (polietilenglicol, dimetilsulfóxido). Tras el almacenamiento durante 20 horas del órgano en estas condiciones (sin prefundir), lo volveremos a la normalidad mediante el proceso contrario (lavado de crioprotector y recalentamiento). Tras ello le medimos el grado de funcionalidad mediante pruebas de tensión y electrocardiográficas. Por último hacemos un estudio histológico para ver el grado de recuperación del tejido cardiaco. Existe una exposición más detallada del apartado práctico en el Anexo 3. 1.2.4.- Las instalaciones Afortunadamente contamos con la colaboración de cinco centros y sus correspondiente laboratorios y facilidades: tres en la Universidad de Sevilla (Escuela Superior de Ingenieros, Facultad de Medicina y Hospital Universitario Virgen del Rocío), uno en Grenoble (Francia; CNCR: Profs. Pierre Boutron y Anne Baudot) y otro en Coimbra (Univ. Coimbra, Portugal: Profs. Fausto y Gacela). 1.2.5.- El equipamiento Actualmente contamos con un material en gran parte cedido para comenzar nuestro trabajo. Este material proviene de las siguientes instituciones: Departamento de 16 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Física Aplicada III (E.S.I., Univ. Sevilla), Departamento de Fisiología Médica y Biofísica (Fac. de Medicina, Univ. Sevilla), Departamento de Farmacología, Radiología y Pediatría (Fac. de Medicina, Univ. de Sevilla), Servicio de Electromedicina (Hospital Virgen Macarena, S.A.S.), Animalario de la Universidad de Sevilla. El material en líneas generales está constituido por: Animales de laboratorio, sistema Langendorff de perfusión ex vivo de corazón, medidores ECG y presión, galga extensiométrica, baños térmicos, reactivos, bombas peristálticas, laboratorio de electrónica, generador pulsos, PCs, tarjeta conversora analógico-digital, material de cirugía, etc... 1.3.- APORTACIÓN DEL PROYECTO FIN DE CARRERA AL TRABAJO GLOBAL DEL GRUPO DE INVESTIGACIÓN. Este Proyecto Fin de Carrera, dentro del grupo de investigación, trata de estudiar el campo de temperatura en cada punto de los tejidos que forman el órgano cuando disminuímos la temperatura, de forma que sea la base teórica para la implantación de esta técnica. Así, el resultado de este trabajo podrá aportar los siguientes puntos: • Base teórica a la técnica de perfusión de crioprotectores. • Modelo teórico para orientar al grupo que implanta empíricamente la técnica: puntos problemáticos, zonas de mayor control, velocidad de perfusión... 17 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 • Resultado teórico para comprobar los resultados empíricos obtenidos. El estudio de este trabajo va a ceñirse a un órgano en concreto: el corazón. Se ha elegido el corazón por ser un órgano de gran importancia dentro del conjunto de los trasplantes de órganos. Además, no es posible realizar un estudio genérico que englobe a todos los órganos existentes, ya que cada uno tiene una estructura y unas características muy diferentes. No obstante, este proyecto establece las bases para posibles estudios posteriores de otros órganos, sin más que hacer unos someros cambios dependiendo de la fisiología del órgano a tratar. 1.4.- OTROS TRABAJOS DE INVESTIGACIÓN RELACIONADOS. Existen trabajos y publicaciones relacionados con este proyecto fin de carrera, si bien ninguno de ellos tratan de forma directa el tema de la conservación de órganos y el problema de la formación de hielo. La mayoría de los estudios se centran en la criocirugía y el posterior calentamiento de los tejidos. Entre estas publicaciones de criocirugía podemos destacar el estudio numérico durante el recalentamiento en criocirugía [Zhang, 2002], donde hace un modelo del tejido en forma de sandwich y compara numéricamente (con el método de diferencias finitas) las técnicas que existen para recalentar un tejido. Zhang estudia un recalentamiento, y no entra en temperaturas críticas de enfriamiento, y por lo tanto el estudio se realiza a nivel de tejido, no a nivel celular. 18 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Otros estudios se centran en el estudio teórico del campo de temperaturas en un tejido. De nuevo emerge el problema de que no se llega a estudiar el nivel celular. Además estos estudios, mucho de ellos anteriores a 1990, son analíticos, y los modelos usados son sencillos y lejanos al detalle que se necesita y se expone en este Proyecto Fin de Carrera. Entre estos estudios se puede destacar la técnica de medida de temperatura en un tejido perfundido desarrollada por Newman y Lele [Newman, 1985], la generalización de una ecuación de bio-calor aplicada a un sistema arteria-vena-tejido de forma cilíndrica [Zhu, 1988], la solución analítica en un enfriamiento de un sistema lineal axial modelado como dos tubos paralelos [Wissler, 1988], un modelo macro y microvascular para la transferencia de calor [Song, 1988], etc. Por último, hay estudios más actuales que tratan el enfriamiento de tejidos y órganos y la simulación de los campos de temperatura de forma numérica, pero no llegan a plantear el problema de la formación de hielo y la velocidad de enfriamiento. Por tanto, la resolución del modelo es muy grande, y el estudio celular no se acomete. Es el caso de la simulación por el método de diferencias finitas del campo de temperaturas durante un enfriamiento tópico (no por perfusión, sino por el exterior del órgano), donde la resolución es tan sólo de 1 mm (el tamaño de los capilares es menor de 10 micras) [Trunk, 2001]. Otro estudio de estas características es el análisis térmico de vasos sanguíneos mediante un modelo híbrido elementos finitos-diferencias finitas [Blanchard, 2000]. 19 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 2.- HISTOLOGÍA Y FISIOLOGÍA DEL CORAZÓN 2.1.- EL CORAZÓN Y LAS CORONARIAS El corazón es el músculo más fuerte del cuerpo. Late unas 100.000 veces al día. Pesa menos de 450 gramos y bombea la sangre por unos 95.000 Km. de vasos sanguíneos [Berne-Levy, 1998]. En la figura 2.1 podemos observar la fotografía de un corazón humano indicando las partes más significativas. Figura 2.1: Fotografía real de un corazón humano 20 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Al igual que todos los órganos del cuerpo, el corazón necesita un suministro de sangre para el aporte de oxígeno. No puede obtener oxígeno de la sangre contenida en sus cámaras dado que pasa a través de ellas rápidamente y a una presión muy elevada. En su lugar, el músculo que constituye la pared del corazón, el miocardio, recibe sangre oxigenada de un sistema de pequeñas arterias que se ramifica desde la aorta. Estas arterias se denominan coronarias. Cruzan sobre la superficie del corazón, dividiéndose y enviando diminutos ramos al músculo del corazón. Las dos arterias coronarias no son más anchas que una pajita de refresco. La arteria coronaria derecha rodea el borde inferior y la parte posterior del corazón como una corona. De ahí viene el nombre de coronaria. Esta arteria suministra sangre al grueso músculo del ventrículo derecho. Por otro lado, la arteria coronaria izquierda se divide en Figura 2.2: Las coronarias y su recorrido. dos grandes ramos, que suministran sangre al resto del corazón. Podemos observar estas coronarias y su recorrido alrededor del corazón en la fig.2.2. Desde los grandes vasos coronarios salen ramos menores, los capilares, que se dividen y se insertan en el músculo del corazón, suministrando los nutrientes necesarios. 21 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Estos capilares, de tan sólo unas 10 micras de diámetro, están repartidos regando todo el músculo cardiaco. Por ello, será en estos minúsculos vasos donde prefundamos el líquido crioprotector, para que llegue a todas las partes del miocardio de una manera uniforme. Así introduciremos el frío uniformemente en todo el tejido. En la figura 2.3 se observa una radiografía de un corazón, en el que se observa el riego capilar en el interior del corazón. Figura 2.3: Radiografía del corazón y sus vasos sanguíneos 2.2.- EL MIOCARDIO Y SU ESTRUCTURA CELULAR La parte del corazón que vamos a estudiar con más detalle es el músculo más grueso y predominante: el miocardio. En la figura 2.4 observamos donde se sitúa el 22 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 miocardio. En la siguiente ilustración, la figura 2.5, se observa cortes del corazón donde se aprecia perfectamente el sistema muscular del corazón. Figura 2.4: Ubicación del miocardio dentro del corazón. 23 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Figura 2.5: Sistema muscular del corazón: el músculo más grueso es el miocárdio. Este músculo tiene unas características especiales que lo hace único en el cuerpo humano. Tiene una contracción involuntaria, de manera que las células están dispuestas para esta función. El miocardio es un músculo formado por células cardiacas, de aspecto distinto a las células pseudoesféricas que conforman la mayoría de nuestro cuerpo. Como se puede observar en la figura 2.6, Figura 2.6: Forma trontocilíndrica de las células cardíacas las células que forman el músculo cardiaco tienen una forma tronco cilíndrica dispuestas en línea, una a continuación de otra, unidas entre ellas por una fina membrana, el disco intercalar [Ferre, 1988]. Crean una 24 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 especie de fibra celular. Estas líneas de células se apilan compactamente formando el músculo miocárdico. Alrededor de ellas hay un tejido intercelular, compuesto en su mayoría por agua, sales y colágeno. Este medio es el que separa a las líneas de células unas de otras, y el que transporta toda sustancia desde los vasos sanguíneos hasta las membranas celulares. Además de células y tejido intercelular están los capilares, los vasos sanguíneos que riegan a todo el músculo, como antes hemos comentado. Las figuras 2.7.a y 2.7.b muestran un corte longitudinal del músculo cardíaco. Las fibras musculares se disponen horizontalmente en la ilustración. Las bandas transversales pronunciadas son los discos intercalares (ID). Suelen aparecer como una banda recta o escalonados. Los discos intercalares son contactos entre los extremos enfrentados de dos células distintas, creando fibras musculares de extremo a extremo. A veces se pueden encontrar ramificaciones (indicadas con flechas en la figura). En color más oscuro podemos observar los capilares que riegan al tejido. [Ross, Romrell y Kaye, 1997] [ Wheater, 2000]. 25 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Figura 2.7: a) Corte longitudinal del músculo cardíaco; b) Detalle a 30 micras del tejido. Las figuras 2.8.a y 2.8.b muestran fibras musculares cardíacas en corte transversal. Muchas tienen contornos poligonales redondeados. No obstante, algunas fibras son más irregulares y tienen un contorno más alargado. Las fibras musculares están rodeadas por el tejido intercelular, el medio que contiene a las células, en las figuras de color blanco. Éste contiene capilares (C, en color amarillento) y, en ocasiones, vasos de mayor tamaño como una vénula (V), o incluso una arteria (A). [Ross, Romrell y Kaye, 1997] [Fawcett, 1989]. 26 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Figura 2.8: a) Corte transversal del músculo cardíaco; b) Detalle de los capilares y forma de las células. 27 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 3.- MODELIZACIÓN 3.1.- BASES Y HIPÓTESIS DEL ESTUDIO Vamos a transformar el tejido a estudiar en un sistema donde se va a producir una transferencia de calor / frío (usar transferencia de calor y transferencia de frío es indistinto, ya que la transferencia de frío es una transferencia de calor negativa). La primera hipótesis que realizamos es que sólo vamos a considerar transferencia de calor, en ningún caso de masa. Este hecho no es estrictamente cierto, ya que los crioprotectores ceden parte de sus aditivos al tejido intercelular que rodea a las células para evitar su congelación y mejorar la conservación del tejido. No obstante, la cantidad de materia que se transfiere es muy pequeña, de manera que no hace variar la cantidad de calor transportado. Tampoco variará notablemente las constantes térmicas que nos harán falta en las ecuaciones utilizadas. Otra hipótesis que haremos es que la transferencia de calor será exclusivamente por conducción, hipótesis muy válida si observamos que el sistema tiene unas dimensiones muy pequeñas, y no hay ningún fluido (plasma...) con un movimiento como para considerar convección. Además, las temperaturas a las que vamos a llegar (bajo cero) confirman lo improbable que es una transferencia por cualquier otro mecanismo que no sea conducción. 28 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Como se ha visto en el apartado anterior, el miocardio es un tejido como el expuesto en la figura 2.6. Por tanto, el estudio se va a ceñir a un corte transversal, ya que hay una clara simetría longitudinal. Desarrollaremos un estudio en dos dimensiones y se podrá ampliar a toda su longitud. Es decir, calcularemos el campo de temperatura en el plano transversal, y a continuación podríamos calcular el plano 2D de atrás tan sólo variando la condición de contorno de la entrada (el líquido crioprotector del capilar se va calentando cuanto más capas lo hagamos pasar). Se dice, pues, que realizamos un estudio 2D+1D. Congruentemente, estamos imponiendo una hipótesis adicional, y es que el transporte de calor entre dos capas sólo se realiza a través de los capilares, y no entre las células que se ven entre las dos capas. Esta hipótesis se sostiene si observamos dos hechos: el primero es que el transporte de calor por los capilares es mucho más rápido que de célula a célula debido al movimiento del fluido crioprotector y a su alta conductividad (por su movilidad); y el segundo, el gran número de capilares que hay en la estructura (hay casi un capilar por célula en cada capa). Por tanto, la velocidad de transferencia de calor desde el capilar hasta el tejido intercelular y las células es mucho mayor que la transferencia célula-célula. Una última hipótesis es relativa a la estructura interna de las células. Consideraremos las células como elementos continuos, homogéneos e isótropos en masa y en propiedades. Igualmente haremos con el tejido intercelular. Todas las propiedades de estos elementos (conductividad térmica, densidad, capacidad calorífica, etc.) han sido calculadas como promedios en función de la estructura celular miocárdica y los componentes que la integran [Holmes, 1998]. 29 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 3.2.- ESTUDIOS Y MODELOS PREVIOS Una vez que se ha estudiado la forma y las características de las células cardíacas, y establecidas las hipótesis básicas para el desarrollo del proyecto, se van a mostrar varios estudios de modelos que inicialmente se plantearon como base del presente trabajo. Los modelos que se presentan se basan en discretizar de forma manual las fotografías que tenemos, y encontrar una concordancia matemática y física más o menos uniforme para utilizar analíticamente las ecuaciones de transferencia de calor. Adelantando acontecimientos, los resultados de la resolución de estos modelos iniciales dan errores que, al estar usando dimensiones extremadamente pequeñas, hacen inservibles estos resultados, ya que no es posible concretar con certeza la posibilidad de formación de hielo intracelular. No obstante, nos sirven de preámbulo del modelo final. El primer modelo que se presenta, figura 3.1, se basa en unir los capilares mediante líneas para intentar buscar una posible alineación. Al final podríamos aproximar el sistema de capilares a un sistema de hileras de tubos (banco de tubos) por donde se transporta el líquido enfriador (crioprotector). Entre los tubos, formando triángulos, irían las células en forma circular. Por tanto, el sistema célula-tejido intercelular-capilar se traduce en un sistema bien estudiado en termotecnia, que consiste en un banco de tubos (capilares) que lleva frío a otro medio (tejido intercelular), y éste a su vez transporta el frío a unos determinados puntos (células), con unas distancias espaciales constantes y 30 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 uniformes. Este modelo podría calcularse de forma analítica asumiendo planos de simetría ya que todo el sistema es triangular. Figura 3.1: Estudio previo y modelo nº 1: Aproximación a un banco de tubos. Un segundo modelo fue creado al unir los capilares mediante líneas que no cortaran a las células, líneas que circunscriban aproximadamente a las células, figura 3.2. Se comprueba que aproximadamente hay el mismo número de capilares que de células. Además, cada célula es regada por cuatro capilares, y por lo tanto cada capilar riega a cuatro células. Se intentó modelizar el sistema, pero no se conseguía ninguna forma regular. Entonces se pensó que si había un sistema de cuatro células por cada cuatro capilares, lo más sencillo era suponer un sistema rectangular que se alternara células y capilares. También se propusieron varias hipótesis adicionales. Una de ellas es que las células, al igual que en el caso anterior, serían de forma circular 31 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Figura 3.2: Estudio previo y modelo nº 2: Inscribir las células por líneas de unión entre capilares. para simplificar el estudio. Además, los capilares serían puntuales, es decir, puntos de generación de frío sin dimensión (ya que el tamaño relativo célula-capilar es muy elevado). Por supuesto, habría una simetría en este caso total, que se puede plantear de diferente formas: o bien hay una sola célula con cuatro focos fríos, bien un solo capilar con cuatro células, o un cuarto de célula con un solo foco frío. Los casos se representan en las figuras 3.3.a, 3.3.b, y 3.3.c respectivamente. 32 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Figura 3.3.a.b.c: Diferentes formas de estudiar el modelo nº 2 (células en rojo, capilares en azul). Un tercer modelo posible nace de una simplificación adicional del modelo anterior. Consiste en considerar las células no como circulares, sino como rectangulares, ya que, como se puede observar en las fotografías, la aproximación a formas rectangulares tiene tan poca precisión como la aproximación a formas circulares, dada la irregularidad de las células. Esta simplificación se hace sólo para que la resolución de las ecuaciones analíticamente sea más sencilla. Así obtenemos un sistema totalmente simétrico, con los contornos adiabáticos (la simetría impone que no haya flujo de calor por los contornos, ya que si todas las estructuras simétricas son iguales, todas serán autosuficientes en el consumo / gasto de calor neto). Este sistema se representa en la figura 3.4. 33 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Figura 3.4: Estudio previo y modelo nº 3: Aproximación cartesiana. 34 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 3.3.-ESTRATEGIA DE ESTUDIO: CONCEPTO DE SUBESTRUCTURA Los estudios preliminares enseñaron que los modelos anteriores no eran capaces de modelar de forma satisfactoria el tejido, y los errores en el campo de temperatura serían excesivamente altos. Se estableció entonces una nueva modelización final del tejido a estudiar. A continuación se va a exponer la estrategia adoptada para conseguir nuestro objetivo. Los pasos a seguir son los siguientes: 1. El estudio se va a realizar utilizando directamente la fotografía del miocardio. Para ello, vamos a coger la fotografía y la digitalizamos para llevarla a un soporte informático. Esta fotografía, generalmente una microfotografía teñida con hematoxilina eoxina, hay que tratarla digitalmente para un óptimo contraste entre los diferentes materiales que nos encontraremos (células, tejido intercelular y capilares). Deberá corresponder cada sustancia a un color único. El tratamiento digital se realizará a base de difuminados, tinciones, cambios de color y fuertes contrastes. 2. A continuación vamos a dividir la fotografía. A esto se le llama subestructurar, y cada una de estas subdivisiones se resolverá por separado. La subestructuración se realiza para que la resolución de la transferencia de calor en ecuaciones acopladas no sea inabordable desde el punto de vista matemático. Las bases de la subestructuración se explicarán en apartados siguientes. 35 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 3. A cada una de estas particiones (subestructuras) vamos a aplicarle una nueva malla sobre la fotografía digitalizada. Este mallado será lo grueso o fino que nosotros queramos. Además podremos elegir entre un mallado uniforme o no uniforme, dependiendo de las necesidades de cada zona de la fotografía. Así, si en una zona hay más elementos a ser tratados con más detalle, podemos poner una malla más fina, y si en otra hay menos elementos a estudiar, se pondrá una malla más gruesa. Vemos que se ha hecho una doble subdivisión. Tenemos pues una fotografía con varias subestructuras, y cada una de ellas está compuesta de múltiples divisiones, que a partir de ahora denominaremos nodos. Figura 3.5: Doble partición del espacio: La malla más gruesa origina las subestructuras, la más fina genera los nodos. 36 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 4. El siguiente paso es inicializar un programa informático, CRYOJAB-color, que asigne a cada cuadrícula de la malla un código según el material que contenga. Así, si la fotografía del tejido tiene los capilares de color azul, se asignará a todos los nodos de color azul un código específico, y entonces se habrán caracterizado todos los capilares con dicho código mediante la identificación del color. Así se hará sucesivamente con todos los componentes de la fotografía. El error que se comete en este punto es la aproximación de una figura a cuadrículas, que a su vez está relacionado con el tamaño de las subdivisiones o número de nodos. CRYOJABcolor determina el color predominante que existe en una cuadrícula en el caso de que ésta contenga dos materiales con dos colores diferentes. Se asignará esa cuadrícula al material predominante. 5. A continuación se iniciará un programa informático, CRYOJAB, creado exclusivamente para este Proyecto por el autor con la colaboración del departamento de Física Aplicada III y el grupo de Termotecnia, ambos pertenecientes a la Escuela Superior de Ingenieros de Sevilla. El programa CRYOJAB resuelve la transferencia de calor en cada nodo y en cada subestructura por un método de iteración, y luego acopla todas las subestructuras entre sí. La creación de este programa informático es el núcleo central de este Proyecto Fin de Carrera. Así obtendremos el conjunto de los campos de temperaturas. 6. Creación de un visor automático de soluciones en forma tabulada y gráfica. El programa CRYOJAB proporciona unas tablas con las temperaturas en cada nodo de la fotografía, y en cada paso de tiempo. Estas tablas son guardadas como archivos 37 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 de texto, y con ayuda de Matlab, se ha representado tridimensionalmente los resultados. También se ha creado una rutina informática que crea una animación de los resultados gráficamente. El resultado de todo este proceso será la obtención del campo de temperatura exacto en cada uno de los puntos de la fotografía que hemos escaneado, es decir, del miocardio. Es por tanto un método exacto y real, sin más simplificación que el error que pueda dar la asignación de las celdas a cada material. Además, esta herramienta creada para el estudio del campo de temperaturas en el corazón es muy potente, porque si en vez de escanear una fotografía del miocardio se procesa una fotografía de otro órgano, también podremos ver la evolución de la temperatura en estado transitorio, ya que la herramienta es general. Es más, no sólo se ciñe al ámbito de la conservación de órganos, sino que es aplicable a muchos otros campos. Por ejemplo, se puede hallar el campo de temperatura en una estructura metálica, en un cerramiento, o simplemente en un intercambiador de calor por conducción. De hecho, se puede estudiar cualquier sistema sea cual sea la forma que tenga. Lo único que se impone es que el problema tenga una simetría longitudinal para poder hacer el estudio en dos dimensiones, para luego hacer una extrapolación a la tercera dimensión. Únicamente habrá que retocar algunas etapas simples del programa informático, como pueda ser el tipo de condiciones de contorno a imponer, pero poco más. Así pues, hemos conseguido poner a punto una herramienta general, si bien en este Proyecto Fin de Carrera se va a aplicar exclusivamente a nuestro caso, el miocardio. 38 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 4.- FUNDAMENTOS FÍSICOS Y MATEMÁTICOS 4.1.- REVISIÓN DE MÉTODOS DE CARACTERIZACIÓN DE TEJIDOS El tejido cardíaco que vamos a estudiar (miocardio) está integrado por distintas sustancias, como ya se ha descrito, que confieren al conjunto una gran heterogeneidad e inercia térmica. Esta inercia, junto con el hecho de que el órgano se enfría de forma progresiva (condiciones de contorno variables con el tiempo), y unido a la heterogeneidad mencionada por la naturaleza del problema a tratar, da lugar a que el régimen de conducción sea esencialmente no estacionario, y se hace necesario un tratamiento que, sin sacrificar precisión, sea versátil y rápido en una simulación efectiva. Para resolver el régimen térmico del tejido miocárdico tenemos varios procedimientos: • Resolución analítica: Sólo es operativamente ventajosa cuando el tejido sea uniforme, lo cual en la práctica es inusual. • Resolución numérica: Puede aplicarse siguiendo dos vías bien diferenciadas. La primera vía numérica de resolución se fundamenta en la aplicación del 39 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 principio de superposición, discretizando las condiciones del sistema y obteniendo relaciones directas entre excitaciones elementales y respuestas. Entre los métodos basados en esta alternativa está el de los factores de respuesta o el de las funciones de transferencia. La segunda vía se basa en la discretización del medio objeto de estudio, dando lugar a los métodos de diferencias finitas [Marcellán, 1990], volúmenes finitos o elementos finitos [Oñate, 1995] [Zienkiewicz, 1994] en los cuales la precisión obtenida en los resultados depende del grado de discretización que se adopte. Será esta segunda vía la que nosotros adoptemos. Todo lo que se dirá a continuación para el problema de transferencia de calor es análogo a lo que se podría decir para el problema de transferencia de masa, aunque este último problema no se va a tratar en el presente Proyecto. 4.1.1.- Métodos numéricos con discretización en tiempo y en espacio Estos métodos discretizan el espacio en cualquiera de las configuraciones anteriormente indicadas, junto con la discretización en el tiempo en diferencias finitas. Este tipo de resolución también permite plantear problemas de conducción unidimensional y multidimensional con propiedades variables, y paso de tiempo variable. Además, este tipo de métodos permite la resolución de problemas en los que se da cambio de fase, aunque ya hemos comentado que en nuestro caso no se producirá cambio de fase alguno 40 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 por la acción de los crioprotectores y la velocidad de enfriamiento a la que estamos interesados. También permite incluir una generación interna debida a la absorción o a la producción de calor, hecho que en nuestro caso hay que tener muy en cuenta. Sin embargo, presentan como principal desventaja el problema de la estabilidad de la solución, que puede provocar errores que se propaguen en el tiempo de forma inestable. Se dice que un método de diferencias finitas es estable cuando la diferencia entre la solución teórica y numérica de la ecuación discretizada, en una etapa genérica de la resolución, no se incrementan al progresar el proceso de cálculo sino que permanecen acotadas y pueden llegar a desaparecer. La estabilidad depende del esquema de discretización temporal que se realiza, así como del paso de tiempo elegido y también de la densidad de la malla espacial elegida. Esto requiere que para realizar la resolución del problema en paso de tiempo variable se deban realizar reajustes en el mallado para garantizar la estabilidad, aumentando el tiempo y la complejidad de los cálculos. 4.1.2.- Método de autovalores. El método de autovalores resuelve el problema de conducción discretizando en el espacio el dominio de cálculo (unidimensional o multidimensional) en diferencias, volúmenes 41 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 o elementos finitos, manteniendo la variación del campo de temperaturas con el tiempo en forma diferencial. Un método numérico de este tipo presenta como principal ventaja el tratamiento de condiciones de contorno no lineales y variables con el tiempo, así como la posibilidad de resolver problemas con excitaciones cualesquiera y la posibilidad de considerar la dependencia de las propiedades termofísicas con la temperatura. Así mismo, son capaces de tratar los problemas con paso de tiempo variable, de tal manera que se ajusten a la realidad de los fenómenos físicos que toman parte en el proceso de enfriamiento, con las consecuentes ventajas de ahorro de tiempo de cálculo y precisión en los resultados. 4.2.- MODELOS DE ESTADO APLICADOS A LA CONDUCCIÓN EN RÉGIMEN TRANSITORIO En los apartados 4.2.1 y 4.2.2 se va a desarrollar un modelo de estado, es decir, una forma de representación matemática de un conjunto de ecuaciones diferenciales de primer orden respecto el tiempo. En los siguientes apartados, 4.2.3 y 4.2.4 se estudia la ecuación clásica del calor, y se discretiza en el espacio. Este estudio es necesario para 42 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 poder hacer una correspondencia entre el modelo de ecuaciones de estado y la ecuación clásica del calor (apartado 4.2.5). 4.2.1.- Descripción interna de un sistema dinámico. Los modelos de estado se basan en el Análisis de Sistemas Lineales mediante el Espacio de Estado, estudiado en Teoría de Control Moderna [Rodríguez, 1990] [Dorf, 1986], que permiten definir la evolución de un sistema lineal e invariante mediante un conjunto de variables, llamadas variables de estado {E}. Esta evolución está provocada por la acción de un conjunto independiente de acciones, denominadas entradas o excitaciones {U}. Para observar la evolución del sistema, se utiliza otro conjunto de variables llamado vector de salidas {S}, que se puede escribir en función del vector de estados {E}, y del vector de entradas {U}, a través del sistema de ecuaciones siguiente: {E& } = [ A]{E} + [B ]{U } {S } = [C ]{E} + [D]{U } {E (0)} = {E 0 } (4.1) donde {E}, {U} e {S} son, respectivamente, los vectores de variables de estado, de entradas y de salidas, y {E0} son las condiciones iniciales del sistema. Las matrices [A], [B], [C] y [D] son las que definen la descripción interna del sistema, y serán supuestas de coeficientes constantes. Estas matrices se definirán en el apartado 4.2.5. 43 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 4.2.2.- Aplicación al problema de conducción en régimen transitorio. Para resolver un problema de conducción utilizando esta descripción del sistema, se discretizará espacialmente el elemento sólido a tratar en un número de nodos, de tal manera que las temperaturas de cada nodo constituirán los elementos del vector de variables de estado del sistema; por tanto, el vector anteriormente llamado {E} será ahora el vector de temperaturas {Tn}, donde el subíndice n indica que se trata de temperaturas nodales; el orden de este vector es el del número de nodos, genéricamente i. Por otra parte, se tomará como vector de excitaciones del sistema a las temperaturas en los contornos del elemento; por tanto, el vector {U} será ahora el vector compuesto por las condiciones de contorno {Tcc}, donde el subíndice cc indica que se tratan de temperaturas en el contorno. El orden de este vector será el número de contornos, nc. Finalmente, como conjunto de salidas del sistema, consideraremos los flujos de calor a través de los contornos del sistema, y así el vector {S} será ahora {Qcc} (también orden nc). Aunque se ha tomado aquí los flujos de calor como variables de salida, las temperaturas de los nodos también podrán ser conocidas, que es realmente el objeto de nuestro estudio. El sistema será en nuestro caso: {T& }= [A]{T } + [B]{T } + [I ]{G} = [A]{T } + [B]({T } + {G'}) n n cc n {Qcc } = [C ]{Tn } + [D]{Tcc } {Tn (0)} = {Tn 0 } 44 cc Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 (4.2) {Tn} Temperaturas nodales (variables de estado). Orden i. {Tcc} Temperaturas en los contornos del elemento (excitaciones). Orden nc. {Qcc} Flujos de calor a través de los contornos del elemento (respuesta del sistema). Orden nc. {Tn0} Valores iniciales de las temperaturas nodales. Orden i. {G} Generación de calor / frío. Además: {G} = [B]{G’}. Orden i. La generación de frío {G} se establecerá como una imposición de la temperatura en aquellos nodos que correspondan a capilares. Por tanto, será un sumando más en la ecuación de las temperaturas. No obstante, la temperatura debida a la generación es una información conocida en cada momento y, a efectos de cálculo, la incluiremos dentro del término de condiciones de contorno, expresada de la forma: {G} = [B]{G’}. Así, {G’} es una generación ficticia, sin sentido físico. Es {G} el vector con significado físico (temperaturas impuestas en los capilares generadores de frío). La forma de obtener las matrices de la descripción interna del sistema ([A] y [D] cuadradas, [B] y [C] rectangulares) será descrita más adelante, si bien adelantaremos que se consigue discretizando el sólido en un número de nodos y planteando balances de 45 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 energía en cada nodo. Supongamos por el momento conocidas las matrices de la descripción interna del sistema. El sistema de ecuaciones diferenciales a resolver y las condiciones de contorno, sin tener en cuenta por el momento los flujos de calor, será el siguiente: {T& }= [A]{T } + [B]({T } + {G'}) n n cc {Tn (0)} = {Tn 0 } (4.2b) La resolución de este sistema de ecuaciones diferenciales lineal de primer orden se obtendrá descomponiendo el sistema en un problema homogéneo y otro no homogéneo. En primer lugar, para la resolución del sistema vamos a expresar el sistema en una base modal. Este cambio de base nos permitirá desacoplar las ecuaciones en cada nodo, y podremos resolver fácilmente el problema homogéneo. La matriz [A] se puede descomponer en matrices de autovectores y autovalores de la siguiente forma: [P]·[L]·[P]-1, donde la matriz de autovectores [P], y de autovalores [L], nos servirán para expresar nuestro sistema en base modal. Si expresamos el problema original en la base modal, con {Tn } = [P ]{X }, tenemos {X& } = [L]{X }+ [P] [B]({T }+ {G '}) −1 n n cc {X n (0)} = {X n 0 } 46 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 (4.3) [L] Matriz diagonal de autovalores del sistema. [L] = [P]-1[A][P]. [P] Matriz de autovectores del sistema (matriz de cambio de base). {Xn} Variables de estado en la base modal de los autovectores. Vamos a resolver el sistema como suma de la solución general del problema homogéneo más una solución particular del sistema completo. Analicemos en primer lugar la solución general del problema homogéneo. El problema homogéneo será (en la base original y en la modal): {T& }= [A]{T } n n {X& }= [L]{X } n n (4.4) La solución general del problema homogéneo de la base modal se obtiene de forma inmediata, ya que la matriz de autovalores es por definición diagonal, y por tanto tenemos un sistema de ecuaciones desacopladas. La solución será: {X n (t + ∆t )} = [e l (i )·( ∆t ) ]{X n (t )} 47 0 < i < nn − 1 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 (4.4b) donde l(i) representan los elementos de la matriz [L] (matriz diagonal), y nn es el número de nodos totales. l(i) serán los autovalores del sistema para cada uno de los nodos i en el caso de los elementos diagonales de la matriz, y cero en el resto de los elementos. La solución al problema completo, no homogéneo, en la base de los autovectores se consigue sumando la solución del sistema homogéneo hallada y una solución particular, que se consigue aplicando la integral de Duhamel [Nagle, 1992] [Marcellán, 1990]. La solución en la base de los autovalores es: {X n (t + ∆t )} = [e l ( i )·( ∆t ) ]{X n (t )} + ∆t ∫ [e l ( i )·( ∆t −τ ) ][P ] [B ]({T −1 cc (τ )} + {G '})dτ 0 < i < nn − 1 0 (4.5) Para resolver la integral anterior, es necesario suponer una evolución de las temperaturas de las condiciones de contorno. Para ello, se aproxima linealmente la evolución de las temperaturas en el contorno con el tiempo, entre el instante t y el instante siguiente t+∆t, conocidos los valores de las temperaturas en esos dos instantes. En este supuesto, la temperatura de contorno será dada por : {Tcc (τ )} = {Tcc (t )} + {Tcc (t + ∆t )} − {Tcc (t )} τ ∆t 48 0 < τ < ∆t . Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 (4.6) Al introducir esta ecuación en la expresión (4.5), obtenemos la integral ∆t {X n (t + ∆t )} = [e l (i)·(∆t ) ]{X n (t )}+ ∫ [e l (i)(∆t −τ ) ][P]−1 [B]{Tcc (t )} + 0 {Tcc (t + ∆t )} − {Tcc (t )} τ + {G'}dτ ∆t 0 < i < nn − 1 (4.7) Se pueden agrupar los sumandos que dependen de la temperatura en el contorno en un instante de tiempo y en el instante siguiente. ∆t l (i )·( ∆t −τ ) {X n (t + ∆t )} = e {X n (t )} + ∫ e [P]−1 [B]1 − τ dτ {Tcc (t )} + ∆t 0 ∆t l (i )·( ∆t −τ ) ∆t l (i )·( ∆t −τ ) τ −1 −1 ∫ e ∫ e {G '} τ τ [ ] [ ] { ( + ∆ )} + [ ] [ ] P B d T t t P B d cc ∆ t 0 0 [ [ l ( i )·( ∆t ) ] [ ] ] [ ] 0 < i < nn − 1 (4.8) Resolvemos cada integral por separado ([P] y [B] son constantes respecto t ): 49 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ∆t l ( i )·( ∆t −τ ) τ l (i )·∆t ·e l (i )·∆t · + 1 − e l (i )·∆t · ∫ e − = e(i ) 1 dτ = ∆t l (i ) 2 ·∆t 0 [ ] ∆t l (i )·( ∆t −τ ) τ − l (i )·∆t − 1 + e l (i )·∆t · ∫ e = f (i ) dτ = 2 ∆ t ∆ l ( i ) · t 0 [ ] ∆t l (i )·( ∆t −τ ) e l (i )·∆t · − 1 ∫ e = τ = h(i ) d l (i ) 0 [ ] 0 < i < nn − 1 (4.9) Ahora analicemos los resultados de las integrales. Observamos que existe un valor para cada i, ya que l(i) va variando. Pero los valores importantes de l(i) son los valores de la diagonal de la matriz [L]. Por tanto, l(i) tendrá valor nulo en aquellas posiciones que no sean las diagonales. Con los resultados de las integrales vamos a construir las matrices [E], [F] y [H]. Con las tres expresiones de arriba calculamos de forma inmediata los valores de las diagonales de [E], [F] y [H], ya que introduciendo los l(i) distinto de cero (los elementos de la diagonal de [L]) las integrales nos dan valores fácilmente calculables. Sin embargo, el resto de elementos que no son los diagonales, los l(i)=0. Para calcular estos elementos debemos tomar límite cuando l(i) tiende a cero en las expresiones anteriores. El resultado no es otro que todos los elementos de las matrices [E], [F] y [H] son nulos, excepto los elementos de las diagonales. Por tanto, las matrices [E], [F] y [H] son también matrices diagonales. Insertando las matrices [E], [F] y [H] en la ecuación (4.8) tendremos: 50 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 {X n (t + ∆t )} = [e l (i )·( ∆t ) ]{X n (t )} + [E ][P]−1 [B]{Tcc (t )} + [F ][P]−1{Tcc (t + ∆t )} + [H ][P]−1 [B]{G'} 0 < i < nn − 1 (4.10a) y volviendo a la base original: {Tn (t + ∆t )} = [P][e l (i )·(∆t ) ][P]−1 {Tn (t )}+ [P][E ][P]−1 [B]{Tcc (t )} −1 −1 + [P][F ][P] [B]{Tcc (t + ∆t )} + [P][H ][P] [B]{G'} 0 < i < nn − 1 (4.10b) donde los términos de las matrices [E], [F] y [H] son dependientes de los autovalores y del paso de tiempo. Recordemos que {Tn} representa un vector de temperaturas nodales, {Tcc} un vector de temperaturas de contorno, y l(i) son los elementos de una matriz diagonal con los autovalores de la matriz [A] de la descripción interna del sistema. Por otro lado, dada la ecuación que relaciona la salida con la entrada y con el vector de variables de estado, al sustituir la solución de la ecuación diferencial anterior, resulta la relación: 51 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Qcc (t + ∆t ) = = C ·Tn (t + ∆t ) + D·Tcc (t + ∆t ) [ ] [ ] [P ] e l (i )·( ∆t ) [P ]−1 {Tn (t )} + [P ][E ][P ]−1 [B ]{Tcc (t )} + = C · + D·Tcc (t + ∆t ) −1 −1 + [P ][F ][P ] [B ]{Tcc (t + ∆t )} + [P ][H ][P ] [B ]{G '} = [C ][P ] e l ( i )·( ∆t ) [P ] {Tn (t )} + [C ][P ][E ][P ] [B ]{Tcc (t )} + [C ][P ][H ][P ] {G} + [ −1 −1 −1 ] + [C ][P ][F ][P ] + [D ] ·Tcc (t + ∆t ) −1 = VP(t ) + [MA]·Tcc (t + ∆t ) siendo : [ ] VP(t ) = [C ][P ] e l ( i )·( ∆t ) [P ] {Tn (t )} + [C ][P ][E ][P ] [B ]{Tcc (t )} + [C ][P ][H ][P ] {G} −1 −1 −1 [MA] = [C ][P][F ][P]−1 + [D] 0 < i < nn − 1 (4.11) Esta ecuación es la utilizada para resolver el acoplamiento térmico con otros elementos, relacionando el flujo de calor por conducción a través de las superficies del elemento con las temperaturas superficiales, que serán valores conocidos. Este flujo de calor, en un instante, dependerá del producto de una matriz de acoplamiento [MA] y las temperaturas de excitaciones en ese mismo instante, y de un vector principal {VP} que contiene información sobre el vector de estado y la excitación en el instante anterior; por lo tanto este vector varía con el tiempo. La matriz [MA] contiene información acerca de la dinámica del sistema, dada por las propiedades del material y su geometría. Si éstas 52 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 permanecen constantes con el tiempo, los autovalores del sistema y la matriz del sistema también lo harán. 4.2.3.-Desarrollo de un modelo de conducción bidimensional. La obtención de las matrices de la descripción interna del sistema pasa por la discretización del sistema y la ecuación de Fourier con unas condiciones de contorno a especificar más adelante. ∂ 2T ∂ 2 T 1 ∂T + = ∂x 2 ∂y 2 α ∂t (4.12) donde: α= k : difusividad térmica (m2/s). ρ ·cp k: conductividad térmica. ?: densidad específica. cp: capacidad calorífica. 53 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 La discretización del sólido y de la ecuación de conservación de la energía se puede realizar siguiendo varios esquemas: mediante diferencias finitas, elementos finitos o volúmenes finitos. En general la mayoría de los elementos se pueden definir de manera simple mediante coordenadas cartesianas, y la exactitud proporcionada por las diferencias finitas es suficiente, siendo más simple su implementación que la de un esquema de elementos o volúmenes finitos. De modo que estos últimos no se usarán, aunque hay otro alumno en este momento que lleva un proyecto fin de carrera que trata este mismo problema con el uso de elementos finitos. El método elegido para la discretización en el presente estudio y para implementar los métodos descritos en los apartados venideros es el de diferencias finitas, puesto que es el método más cómodo a la hora de plantear las ecuaciones de acoplamiento en temperatura superficial. Todas las temperaturas nodales serán variables de estado, mientras que las temperaturas superficiales o de contorno nunca serán nodos como tales, y sí excitaciones del sistema, ya que todos los nodos están en el interior de los elementos. 4.2.4.- Balance de calor en un elemento del tejido. Sea pues un tejido formado por un número n·n de elementos de propiedades: k (i,j) ? (i,j) conductividad en cada nodo. densidad en cada nodo. 54 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 cp (i,j) capacidad calorífica en cada nodo. dz espesor del tejido. dx, dy anchura y altura del tejido. Para obtener las matrices del sistema que ligan la evolución de las variables de estado con las entradas, matrices que hemos llamado [A] y [B], plantearemos balance de energía en cada uno de los elementos. Para hallar las matrices [C] y [D] tan sólo hay que desarrollar e identificar la ecuación del calor (apartado 4.2.5). En el balance de energía, supongamos flujos positivos los flujos de calor salientes. En tal caso, de la ecuación de balance (4.12) resultará aplicando diferencias finitas: ∂T (i, j ) T (i − 1, j ) − T (i, j ) T (i + 1, j ) − T (i, j ) ρ (i, j )cp(i, j )dx·dy·dz· = dy·dz· + dx(i − 1, j ) dx(i, j ) dx(i + 1, j ) dx(i, j ) ∂t + + 2k (i − 1, j ) 2k (i, j ) 2k (i + 1, j ) 2k (i, j ) T (i, j − 1) − T (i, j ) T (i, j + 1) − T (i, j ) + dx·dz· + dy (i, j − 1) dy (i, j ) dy (i, j + 1) dy (i, j ) + + 2k (i, j − 1) 2k (i, j ) 2k (i, j + 1) 2k (i, j ) (4.13) donde T(i,j) representa la temperatura en cada nodo, y dx(i,j) ó dy(i,j) representa el tamaño de cada nodo específico (recordemos que el mallado no tiene que ser uniforme, aunque lo más sencillo es que sí lo sea). 55 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 La energía térmica almacenada en un nodo, dada por la expresión (4.13), es igual al balance de calor proveniente o cedido de los nodos adyacentes. El flujo de calor intercambiado de un elemento a otro adyacente será el incremento de temperatura dividido por la resistencia térmica entre los dos elementos. La resistencia térmica entre dos nodos será la que aporten dos mitades de los elementos implicados en la transferencia (la media de la resistencia térmica de los dos elementos colindantes). Para obtener la energía que almacena el tejido por unidad de tiempo, se aplica el teorema del valor medio [Larson, 1999], resultando: dx ( i , j ) dy ( i , j ) ρ (i, j )cp(i, j )·dz ∫ ∫ 0 0 ∂T ( x, y ) ∂T (i, j ) dxdy = ρ (i, j )·cp(i, j )·dz·dx(i, j )·dy (i, j )· ∂t ∂t (4.14) En el caso en que los nodos sean extremos limitarán con los capilares y, por ejemplo para el extremo derecho, la ecuación se transformará en: ∂ T (i, j ) T ( i − 1, j ) − T ( i , j ) Tcc − T ( i , j ) ρ ( i , j ) cp ( i , j ) dx · dy · dz · = dy · dz · + dx ( i − 1, j ) dx ( i , j ) dx ( i , j ) ∂t + 2 k ( i − 1, j ) 2 k ( i , j ) 2 k (i, j ) T ( i , j − 1) − T ( i , j ) T ( i , j + 1) − T ( i , j ) + dx · dz · + dy ( i , j − 1 ) dy ( i , j ) dy ( i , j + 1 ) dy ( i , j ) + + 2 k ( i , j + 1) 2 k ( i , j ) 2 k ( i , j − 1) 2 k ( i , j ) (4.15) 56 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Los nodos del sólido se numerarán por columnas empezando por el elemento de la esquina inferior izquierda, avanzando hacia arriba y hacia la derecha respectivamente, y siempre comenzando por el nodo (0,0). Por tanto, la posición cartesiana definida por (i,j) sobre una malla, será el elemento i+ny·j, donde ny será el número de nodos en la dirección de las ordenadas. Esta formulación es adoptada para ordenar los nodos de una matriz en un vector, y es totalmente arbitraria. Para facilitar la lectura en las expresiones que a continuación se exponen, algunos de los paréntesis se han puesto como subíndices. De la ecuación de balance (4.13) resulta: ρ i + nyj ·cp i + nyj ·dx ·dy ·dz· ∂Ti + nyj ∂t Ti + nyj +1 − Ti + nyj Ti −1+ nyj − Ti+ nyj = dy ·dz· + dx dx d x i +1+ nyj d x i+ nyj i+ nyj −1 + i+ ny + 2k k k 2 2 2k i+ nyj − + + + + i nyj i nyj i nyj 1 1 Ti+ ny ( j +1) − Ti + nyj Ti+ ny ( j −1) − Ti+ nyj + dx ·dz · + dy dy dy i +ny ( j − 1) dy i+ nyj i + ny ( j −1) + i+ nyj + 2k k k 2 2 2k i+ nyj i+ nyj i +ny ( j − 1) i + ny ( j −1) + (4.16) Llamaremos β (i ) a la inversa de la resistencia térmica entre dos nodos adyacentes (conductancia térmica). La conductancia térmica en cada dirección está dada por las ecuaciones (4.17.a ) y (4.17.b). 57 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 β 2 x (i + nyj ) = 2 , 0 < i ≤ NY , 0 < j ≤ NX dx(i + 1 + nyj ) dx(i + nyj ) + k (i + nyj + 1) k (i + nyj ) (4.17.a) expresión que es análoga para la otra dirección β 2 y (i + nyj ) = 2 , 0 < i ≤ NY , 0 < j ≤ NX dy (i + ny ( j + 1)) dy (i + nyj ) + k (i + ny ( j + 1)) k (i + nyj ) (4.17.b) Para los términos correspondientes a los nodos de los extremos, que no tienen nodo adyacente en esa dirección, se tomará la mitad del elemento (dx/2 ó dy/2). En los elementos del borde sólo hay que considerar la mitad de la resistencia. 4.2.5.- Obtención de las matrices del sistema. El montaje de las matrices se realizará mediante el ensamblaje de matrices correspondientes a particiones del sólido completo en forma de rectángulos (subestructura). Una vez obtenidas las matrices de estas subestructuras, se acoplan formando las matrices completas para el sólido conductor. 58 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 La matriz [A] de la descripción interna de uno de los rectángulos que componen este sistema, de dimensiones igual al número de nodos al cuadrado, está formada por una tridiagonal de elementos no nulos, más una subdiagonal y una superdiagonal alejadas de la diagonal central tantas posiciones como nodos en dirección vertical existan. La matriz [A] se va a almacenar completa, aunque haya muchos ceros, para poder utilizar las rutinas informáticas de cálculo de autovalores y autovectores. De las otras de matrices [B], [C] y [D] se almacenarán sólo los elementos no nulos, pues es posible encontrar relaciones entre los subíndices de las matrices que permitan utilizar en el cálculo sólo los elementos no nulos, sin necesidad de almacenar los nulos, mejorando la rapidez de ejecución del programa y reduciendo la memoria necesaria. Construcción de las matrices [A] y [B]: Las matrices de la descripción interna del sistema serán obtenidas a partir de las ecuaciones de balance anteriormente descritas (4.16). Observándolas, si despejamos las derivadas de las temperaturas nodales, vemos la similitud que existe entre las ecuaciones de balance y el sistema de ecuaciones en variables de estado (ecuación 4.2b). Así obtendremos por filas el sistema de ecuaciones representado por la ecuación diferencial de las variables de estado del sistema, es decir, comparamos las ecuaciones (4.18a) y (4.18b). 59 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ∂Ti + nyj ∂t dy ·dz Ti + nyj +1 − Ti + nyj Ti −1+ nyj − Ti+ nyj = · + d x i +1+ nyj d x i+ nyj ρ i + nyj ·cp i + nyj ·dx ·dy ·dz d x i+ nyj −1 d xi+ ny + + 2k 2 k 2 k 2k i+ nyj i − 1 + nyj i + nyj i + 1 + nyj dx ·dz Ti+ ny ( j +1) − Ti + nyj Ti+ ny ( j −1) − Ti+ nyj + + · dy i +ny ( j − 1) dy i+ nyj ρ i + nyj ·cp i + nyj ·dx ·dy ·dz dy i + ny ( j −1) dy i+ nyj + + 2k 2 k 2 k 2k i+ nyj i+ nyj i +ny ( j − 1) i + ny ( j −1) + (4.18a) {T& }= [A]{T } + [B]({T } + {G'}) n n {Tn (0)} = {Tn 0 } cc (4.18b) Ahora podemos identificar los elementos de la matriz [A]. Si nos fijamos en la expresión (4.18a), observamos que existen ocho sumandos. Cuatro de ellos pertenecen al mismo subíndice i+ny·j, que corresponde también al subíndice de la derivada respecto al tiempo. Por tanto, estos sumandos formarán los términos de la diagonal principal de [A]. Los otros sumandos, definidos por sus índices, corresponden a: subdiagonal, supradiagonal, diagonal inferior respecto a la tridiagonal, diagonal superior respecto a la tridiagonal, y diagonal principal de la tridiagonal (antes se describió como era la forma de la matriz [A]). El resto de elementos son nulos. 60 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 diagonal − principal : a((1 + nn)·(i + ny· j )) = + − β 2 y (i − 1, j ) ρ i + nyj cp i + nyj dy i + nyj + − β 2 x (i, j − 1) − β 2 x (i, j + 1) + + ρ i + nyj cp i + nyj dx i + nyj ρ i + nyj cp i + nyj dxi + nyj − β 2 y (i + 1, j ) ρ i + nyj cp i + nyj dy i + nyj subdiagonal, supradiagonal, diagonal inferior respecto a la tridiagonal y diagonal superior respecto a la tridiagonal: a((1 + nn)·(i + ny· j ) − nn·ny ) = β 2 x (i, j − 1) , j≠ 0 ρ i + nyj cp i + nyj dxi + nyj a((1 + nn)·(i + ny· j ) + nn·ny ) = β 2 x (i, j + 1) , j≠ nx − 1 ρ i + nyj cp i + nyj dxi + nyj a((1 + nn)·(i + ny· j ) − nn) = a((1 + nn)·(i + ny· j ) + nn) = β 2 y (i − 1, j ) ρ i + nyj cp i + nyj dy i + nyj β 2 y (i + 1, j ) ρ i + nyj cp i + nyj dy i + nyj , i≠ 0 , i≠ ny − 1 (4.19) Por otro lado, los elementos de la matriz [B] no nulos se obtienen también del balance de calor, de forma similar. Lo único que varía es que utilizamos la expresión de las temperaturas de contorno, (4.15): 61 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ρ i + nyj ·cp i + nyj ·dx ·dy ·dz· ∂Ti + nyj ∂t Tcc − Ti + nyj Ti −1+ nyj − Ti+ nyj = dy ·dz· + dx dx d x i+ nyj i+ nyj −1 + i+ ny 2k 2k i+ nyj i −1+ nyj 2k i+ nyj Ti+ ny ( j +1) − Ti + nyj Ti+ ny ( j −1) − Ti+ nyj + dx ·dz · + dy dy dy i +ny ( j − 1) dy i+ nyj i + ny ( j −1) + i+ nyj + 2k 2 k 2 k 2k i+ nyj i+ nyj i +ny ( j − 1) i + ny ( j −1) + (4.20) La matriz [B], que sería de tamaño número de nodos por número de contornos, en realidad sólo tiene no nulos un número de elementos igual al de contornos, y por tanto sólo se almacenarán los elementos de no nulos, puesto sabemos qué relación guardan los índices de los nodos con los de los contornos. Los elementos no nulos son los siguientes: b(i ) = β 2 x (0, j ) ,0 < i ≤ nx ρ nyi cp nyi dx nyi b(i + nx) = β 2 x (ny, j ) ,0 < i ≤ nx ρ ny ( i +1) −1 cp ny (i +1) −1 dx ny ( i +1) −1 b(i + 2nx) = β 2 y (i,0) ρ i cp i dy i b(i + 2nx + ny ) = ,0 < i ≤ ny β 2 y (i, nx) ρ i + nn − ny cp i + nn − ny dy i + nn − ny ,0 < i ≤ ny (4.21) 62 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Construcción de las matrices [C] y [D]: Para la construcción de estas matrices nos basamos en la ecuación del calor: T (i , j) - Tcc(i , j) Qcc(i, j) = 2·k(i, j)·dz· n dy (i, j )·dx(i , j) (4.22) Como vimos anteriormente, las matrices [C] y [D] determinan la relación de las temperaturas nodales y superficiales respectivamente con los flujos de calor a través de los contornos. La matriz [D] es diagonal y cuadrada, de tamaño el número de contornos, y la matriz [C] tiene de tamaño el número de contornos por el numero de nodos. Sin embargo, en esta matriz sólo serán significativos los elementos que posean relación con el contorno, y el resto de elementos serán nulos. Ambas se almacenan en forma de vector: c(i·nn) = 2k nyi dx nyi dz dy nyi c(i·nn + nx) = ,0 < i ≤ nx 2k ny (i +1) −1 dx ny ( i +1) −1 dz c(i·nn + 2nx) = dy ny ( i +1) −1 ,0 < i ≤ nx 2k i dy i dz ,0 < i ≤ ny dx i c(i·nn + 2nx + ny ) = 2k i + nn − ny dy i + nn − ny dz dxi + nn − ny ,0 < i ≤ ny (4.23) 63 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 d (i ) = 2k nyi dx nyi dz dy nyi d (i + nx) = ,0 < i ≤ nx 2k ny (i +1) −1 dx ny (i +1) −1 dz d (i + 2nx) = dy ny ( i +1) −1 ,0 < i ≤ nx 2k i dy i dz ,0 < i ≤ ny dx i d (i + 2nx + ny ) = 2k i + nn − ny dy i + nn − ny dz dx i + nn − ny ,0 < i ≤ ny (4.24) dx, que es el ancho del nodo en la dirección x. dy, que es el ancho del nodo en la dirección y. nx, el número de nodos en la dirección x. ny, el número de nodos en la dirección y. nn, número de nodos totales, nx·ny. 4.2.6.- Fuentes de error. Las fuentes de error que se pueden enumerar al resolver el problema de conducción en régimen transitorio utilizando el método desarrollado son las siguientes: i) Error debido a la discretización espacial del elemento, siguiendo un esquema de diferencias finitas para expresar las derivadas que aparecen al plantear el balance energético en cada elemento, supuestos a temperatura constante e igual a la de los nodos. 64 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ii) Error debido a aplicar la linealización de las temperaturas en el interior de la integral de Duhamel, suponiendo que las temperaturas en el contorno del tejido siguen una evolución lineal entre dos instantes de tiempo (ecuación 4.6) 4.3.- OBSERVACIONES A LA RESOLUCIÓN DIRECTA MEDIANTE EL PLANTEAMIENTO EN AUTOVALORES En la mayoría de los casos, el número de nodos necesarios para resolver un problema con la aproximación suficiente es muy grande, siendo por tanto inviable el uso de este esquema de resolución, ya que el tiempo de cálculo de autovalores, autovectores y resolución de sistema de ecuaciones es ingente. En nuestro caso, este hecho es más acusado, ya que tenemos un número de nodos muy elevado para que la asignación inicial materiales-códigos sea lo más precisa posible. Por tanto, el tiempo de cálculo es elevadísimo y casi inabordable. En nuestro caso ocurre este hecho. Si estudiásemos el tejido completo de una sola vez (con una sola subestructura), el tamaño del sistema (y de las matrices) sería enorme por la cantidad tan elevada de nodos que son necesarios. Por ello se hace necesario el uso de las subestructuras, de forma que se calcula cada una de ellas independientemente, y luego se acoplan entre sí para obtener el resultado completo. En el capítulo siguiente se exponen nuevos conceptos para conseguir estos sistemas más manejables. 65 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 5.- SUBESTRUCTURACIÓN 5.1.- RESOLUCIÓN MEDIANTE SUBESTRUCTURACIÓN El planteamiento desarrollado en el capítulo anterior es válido para cualquier tipo de problema, si bien cuenta con una importante limitación práctica. Esto es debido a que tenemos que calcular los autovalores y autovectores del problema utilizando rutinas matemáticas que aplican algoritmos numéricos. Por tanto, la dimensión de las matrices, directamente relacionada con la propia dimensión del problema y el número de nodos en que discretizamos el sólido para su correcta modelización, no puede ser ilimitado. El límite no será sólo impuesto por la memoria del ordenador, sino también por el excesivo tiempo de computación que se requiere. Esto último puede hacer inoperativo el método explicado en el apartado anterior, reduciendo además el interés del usuario por la herramienta. Por lo tanto, es recomendable reducir el tiempo de computación reduciendo el tamaño de los sistemas de ecuaciones a resolver y del número de autovalores y autovectores a calcular, sin reducir la densidad de la malla necesaria para obtener resultados acordes con la realidad. La Resistencia de Materiales y Teoría de Estructuras utiliza frecuentemente modelos numéricos en los cuales se divide la estructura en múltiples subestructuras que son modeladas por separado imponiendo unas ligaduras entre los grados de libertad de 66 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 cada una de ellas, de tal manera que se obtiene conjuntamente la estructura global. Estos métodos son aplicables tanto a análisis estáticos de estructuras como a análisis dinámicos. Por tanto, el sistema se puede dividir en N subconjuntos estando cada uno de ellos ligado de alguna forma al resto de subconjuntos de modo que entre todos conforman el sistema completo. A este hecho se le conoce como Subestructuración. [Allen, 1988] La idea anterior se aplica fácilmente a un modelo de conducción bidimensional expresado de la forma vista en el capítulo anterior, puesto que la descripción interna es también válida para un subconjunto del modelo, de manera que tenemos N sistemas del tipo: {T& } = [A] {T } + [B ] {U } n s s n s s s + {G } s {Q cc }s = [C ]s {Tn }s + [D ]s {U }s {T n (0)}s = {T n 0 }s s = 0,1, 2,... N (5.1) donde el subíndice s indica la subestructura correspondiente, el vector {U}s representa las excitaciones del subsistema s, y el vector {G}s son las generaciones en cada subsistema. 67 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Figura 5.1: Representación esquemática de la idea de la subestructuración de un sistema. Es posible además obtener para cada uno de ellos un conjunto de ecuaciones de acoplamiento del tipo de la (4.11) relacionando los flujos de calor a través de cada contorno con el vector de excitaciones Qcc , s (t + ∆t ) = VPs (t ) + [MA]s ·{U s (t + ∆t )} s =0,1,..., N (5.2) El acoplamiento entre cada subsistema y los demás que conforman el modelo se realiza a través del vector de excitaciones {U}s, el cual impone al subsistema 68 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 correspondiente unas restricciones que le hacen comportarse como parte integrante del sistema global. Los procedimientos de subestructuración presentan como ventaja el ahorro de tiempo de cálculo, puesto que es menos costoso realizar varias inversas de matrices de dimensiones reducidas que una única de dimensión suma de aquéllas. Sin embargo, tienen también desventajas, como puede ser que al no montar nunca el sistema completo, los autovalores de éste no se pueden obtener de modo directo, hecho que sería muy interesante a la hora de obtener los polos de la función de transferencia del sistema multidimensional. Habrá que recurrir a un método tradicional de obtención a través de la serie infinita, en caso que necesitemos esta información adicional. No obstante, este tipo de información no va a ser necesario en nuestro caso, ya que hemos desechado la resolución del problema por funciones de transferencia (estamos resolviendo por diferencias finitas). 5.2.- ESTRATEGIAS DE ACOPLAMIENTO Existe un gran número de formas de realizar el acoplamiento. Se pueden clasificar en función del tipo de discretización que se halla elegido para realizar el modelo; del tipo de subestructura utilizado (sea de propiedades homogéneas o heterogéneas, o bien de forma rectangular o de cualquier forma); del tipo de acoplamiento (si se realiza nodo a nodo o entre grupos de nodos); de la magnitud física que se tomó como grado de libertad 69 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 de acoplamiento y como excitación del subsistema (bien flujo de calor, bien temperatura superficiales o nodales); etc. En este apartado se explicarán las estrategias más interesantes: la subestructuración usando como variables de acoplamiento las temperaturas superficiales y flujos de calor, y la subestructuración utilizando como variables de acoplamiento las temperaturas en los nodos adyacentes a los contornos. 5.2.1.- Subestructuración usando como variables de acoplamiento las temperaturas superficiales y flujos de calor. En este tipo de discretización, además de los nodos que existen en la subestructura, suponemos la existencia de otros puntos en la superficie de la subestructura en los que vamos a definir su temperatura. Dichas temperaturas serán tomadas como excitaciones del subsistema, de tal manera que la condición de acoplamiento será que la temperatura superficial sea igual en cada interfase entre subestructuras, al igual que el flujo de calor que atraviesa de una subestructura a la otra debe también ser igual, puesto que no existe acumulación de calor en ella. Se debe plantear para cada subestructura ecuaciones del tipo de la (5.1) donde se seleccionen como excitaciones {U}s las temperaturas superficiales, que se pueden relacionar con las temperaturas nodales con dicha ecuación. Como ejemplo, supongamos dos subestructuras acopladas, que denotaremos con los superíndices 0 y 1, en régimen transitorio, de tal manera que se cumplan las restricciones anteriormente descritas. 70 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 [ ]{ } [ ]{ } Qcc1 (t + ∆t ) = VP 1 (t ) + MA1 · U 1 (t + ∆t ) {U (t )}= {T 1 1 cc } (t ) Q (t + ∆t ) = VP 0 (t ) + MA 0 · U 0 (t + ∆t ) 0 cc {U 0 } { } (t ) = Tcc (t ) 0 (5.3) Denotando por el subíndice a las superficies de acoplamiento (aquellas que están unidas a otra subestructura), y por el subíndice e las superficies exteriores (aquellas que no están unidas a otra subestructura, y que tienen como condiciones las condiciones de contorno), tenemos: Qas (t ) MAaas s = s Qe (t ) MAea s = 0,1 MAaes Tas (t ) VPas (t ) + MAees Tes (t ) VPes (t ) (5.4) En la superficie de contacto se cumple igualdad de temperaturas y que el flujo de calor neto es nulo: {Q {T 0 cc , a cc , a 0 } { } (t ) + Qcc1 , a (t ) = 0 } { } (t ) = Tcc ,a (t ) 1 (5.5) 71 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 En las superficies exteriores se impondrán las condiciones de contorno. Utilizando estas condiciones, junto con las ecuaciones anteriores, se puede obtener el sistema de ecuaciones siguiente: Qe0 MAea0 1 0 1 Qa + Qa = MAae Q1 0 e MAea0 1 0 + MAaa MAaa 1 MAea 0 Tcc0 ,e VPe0 Qcc0 ,e (t ) MAae0 Tcc , a + VPa0 + VPa1 = 0 MAee1 Tcc1 ,e VPe1 Qcc1 ,e (t ) (5.6) Con este procedimiento se obtendrían en cada instante de tiempo las temperaturas superficiales, a partir de las que se pueden obtener las temperaturas nodales en el interior de cada subestructura y los flujos de calor. Desde el punto de vista del ahorro de tiempo de computación, este procedimiento sólo afecta a la obtención de los autovalores y autovectores, pues sólo hay que calcularlos para cada subelemento, sin tener que obtenerlos para el sistema completo, de dimensiones excesivas. Sin embargo presenta la problemática de que el sistema de ecuaciones a resolver tiene de dimensión el número de nodos exteriores del sistema global, con lo cual podemos exceder el límite de operatividad de la máquina en el caso de tratar con modelos muy complejos o que requieran un mallado muy fino. Por tanto, se conseguirían resultados más prácticos utilizando otro procedimiento de cálculo iterativo como el que se presentará a continuación. 72 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 5.2.2.- Subestructuración utilizando como variables de acoplamiento las temperaturas en los nodos adyacentes a los contornos. En el apartado anterior, se obtenía el sistema de ecuaciones a partir de las ecuaciones de acoplamiento del sistema, junto con un conjunto de condiciones de contorno y condiciones de acoplamiento entre subestructuras, de tal manera que una misma subestructura presentaba dos tipos de condiciones de contorno muy diferentes a lo largo de su superficie (una de acoplamiento, otra exterior). Sin embargo, es posible representar el acoplamiento entre dos subestructuras adyacentes de una manera idéntica a cómo se impondría una condición de contorno. Efectivamente, como se puede ver en la figura 5.2, si aislamos al bloque i del resto del sistema, éste vería en dos de sus superficies sendas condiciones de contorno exteriores, en color verde; mientras que en las dos superficies de contacto con los otros dos bloques se pueden imponer también condiciones de contorno Figura 5.2: Sólido conductor dividido en tres bloques o subestructuras. Para el bloque i, en color ocre, los otros dos bloques son vistos como dos condiciones de contorno a través de una conductancia equivalente. 73 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 equivalentes, siendo la temperatura equivalente la temperatura en el interior del bloque adyacente (la temperatura en el nodo contiguo o un valor promedio de varios nodos contiguos a este bloque). Es decir, todas las superficies de contacto se expresan de la misma forma; la diferencia entre ellas es que en unas se impone las condiciones de contorno exteriores, y en otras las condiciones de temperatura equivalente. Así evitamos tener dos clases distintas de superficies (una de condiciones de contornos externas y otra de contacto superficial), y sólo tenemos una clase (condición de contorno en temperatura, bien externa o bien equivalente de contacto). Por tanto, se considerará un sólido conductor estructurado en bloques o subestructuras, cada uno de ellos descrito por un sistema de ecuaciones del tipo (5.7), {T& } = [A] {T } + [B] {U } n s s n s s s {Qcc }s = [C ]s {Tn }s + [D]s {U }s {Tn (0)}s = {Tn 0 }s s = 0,1,2,...N (5.7) El vector de excitaciones {U}s se tomará como la temperatura del fluido crioprotector en el caso de ser un contorno pegado al capilar (condición de contorno externa Uk=Tcc), y la temperatura del nodo contiguo en el caso de ser una superficie de contacto (Ti,j-1, Ti+1,j, ...), figura 5.3. 74 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Figura 5.3: Detalle de un nodo en un modelo bidimensional con condición de contorno Uk=Tcc y rk como resistencia térmica equivalente. La obtención de las matrices de las ecuaciones dadas en (5.7) se consigue planteando la ecuación de balance de calor en los nodos al igual que en el modelo del capítulo anterior, teniendo en cuenta la condición de temperatura en los nodos adyacentes a las superficies de contacto. ∂T i , j Ti , j −1 − Ti+ nyj U k − Ti + nyj ρ i , j cp i , j dx i , j dy i , j ·dz· = dy i , j dz· + dxi, j d xi, j ∂t d x i , j −1 + + r k 2k − 1 2 k 2k i , j i, j i, j Ti +1, j − Ti , j Ti −1, j − Ti , j + + dx i , j dz i , j · dy dy dy i +1, j dy i , j i − 1 , j i , j + + 2k i −1, j 2ki , j 2ki +1, j 2ki , j 75 + Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 (5.8) La resistencia térmica equivalente rk que aparece en la ecuación (resistencia térmica equivalente en un contorno exterior) se tomará como cero si la condición es de temperatura impuesta, infinito si es de flujo nulo impuesto. En el caso de estar en contacto con otra subestructura conductiva (resistencia térmica en un contorno de contacto), se toma la resistencia correspondiente al trozo de material entre la superficie de contacto y el nodo adyacente. La temperatura Uk será la temperatura de contorno o excitación Tcc. A partir de la ecuación (5.8) se obtienen los coeficientes de las matrices [A]s y [B]s, y los coeficientes de las matrices [C]s y [D]s se obtienen del flujo de calor a través de los contornos de la subestructura al igual que en el apartado 4.2.5. En el caso de ser un problema de conducción en régimen permanente, el sistema de ecuaciones (5.7) quedará reducido al siguiente 0 = [ A]s {Tn }s + [B ]s {U }s + {G} s {Qcc }s = [C ]s {Tn }s + [D]s {U }s s = 0,1,2,...N (5.9) De donde podemos obtener fácilmente el campo de temperaturas para cada subestructura a partir del vector de excitaciones: 76 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 {Tn }s = −[A]s −1 ·([B]s {U }s + {G}s ) s = 0,1,2,...N (5.10) En el caso de ser un problema de conducción en régimen transitorio, obtendremos una relación entre las temperaturas nodales y las excitaciones del sistema para cada instante de tiempo, expresadas en la ecuación {T n, s [ ] (t + ∆t )} = [P ]s e l s (i )·( ∆t ) [P ]s {Tn, s (t )} + [P ]s [E ]s [P ]s [B ]s {U s (t )} + −1 −1 + [P ]s [F ]s [P ]s [B ]s {U s (t + ∆t )} + [P ]s [H ]s [P ]s {G s (t )} −1 −1 s = 0,1,...N (5.11) Donde [P]s es la matriz de autovectores de la subestructura s, y ls(i) son los autovalores del mismo. Las matrices [E]s , [F]s y [H]s son diagonales, cuyos elementos están expresados en función de los autovalores y del paso de tiempo, ∆t. es (i ) = l s (i )·∆t ··els (i )·∆t · + 1 − els (i )·∆t · · l s (i ) 2 ·∆t f s (i ) = − ls (i )·∆t − 1 + els (i )·∆t · · l s (i ) 2 ·∆t els ( i )·∆t · − 1 hs (i ) = ls (i ) (5.12) 77 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Las hipótesis realizadas para obtener esta relación son las mismas que las dichas en el capítulo anterior, siendo la más importante de ellas que las excitaciones del sistema seguirán una evolución lineal entre un instante de tiempo y el siguiente. Si el nodo no tiene generación (es decir, si el nodo no es un capilar), en estas ecuaciones habrá que excluir el vector de generación {G}s y las componentes hs(i), simplemente introduciendo en ese nodo la condición hs(i)=0. Para saber si un elemento en un capilar o no (y por tanto, si tiene generación), el programa informático leerá la velocidad de circulación del fluido crioprotector por dicho elemento de un archivo de texto preparado con anterioridad. Se ha establecido que si la velocidad es nula estaremos hablando de células o tejido intercelular (no pasa líquido crioprotector); si la velocidad no es cero, estaremos en un capilar (la velocidad del crioprotector al pasar por el elemento es un dato conocido). 5.2.3. Características del método de la subestructuración iterativa con acoplamiento en temperaturas equivalentes. El procedimiento de cálculo será iterativo para evitar trabajar con sistemas de ecuaciones de tamaño muy elevado, de tal manera que partiendo de una solución inicial del campo de temperaturas, se vayan resolviendo una a una las subestructuras, y cada vez que una subestructura se resuelva se utilizará su campo de temperaturas en las proximidades del contacto con otra subestructura como temperaturas equivalentes para resolver la siguiente subestructura. 78 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 El problema podría formularse tanto utilizando subestructuras de propiedades heterogéneas como utilizando subestructuras de propiedades homogéneas, si bien en este último caso se podrían requerir excesivas subestructuras para definir el modelo (ya que se requiere mayor número de subestructuras para discretizar el tejido en rectángulos con propiedades homogéneas). Además la convergencia en este caso puede ser más lenta, debido a que al incrementar el número de subestructuras muchas de ellas pueden no estar en contacto directo con las condiciones de superficie, y la propagación de estas condiciones se realizaría más despacio. Se tomará por tanto subestructuras de propiedades heterogéneas. Para considerar propiedades distintas dentro de una subestructura, se hará un mallado más fino de forma que se asigne a cada nodo una sola propiedad, pero la subestructura en sí estará formada por nodos de distinto material (subestructura heterogénea). En cualquier caso, tanto para subestructuras homogéneas como para subestructuras heterogéneas, se pueden elaborar estrategias de barrido que aceleren el proceso de convergencia al propagar con mayor eficacia las condiciones de contorno a lo largo del sólido. Se entiende por barrido el proceso de calcular una tanda de subestructuras (una iteración), y por estrategia de barrido el orden en el que éste se efectúa. Su importancia se destaca en casos en los que el número de subestructuras sea elevado, debido a geometrías complejas en los que es necesario analizar la situación de las subestructuras frente a las condiciones de contorno existentes, tratando de elegir una estrategia de barrido que prime como direcciones de barrido aquéllas en las que con más probabilidad se producirán los mayores gradientes. Sin embargo, puesto que en los casos de conducción multidimensional las soluciones son complejas y es necesario tratar todos los casos con 79 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 generalidad, para la resolución de los casos presentados en apartados posteriores se ha elegido un barrido lo más isótropo posible, sin premiar ninguno de ellos frente a los demás. 5.3.- SUBESTRUCTURACIÓN UTILIZANDO ACOPLAMIENTO DE SUPERFICIES QUE ABARQUEN MÁS DE UN NODO DE CONTORNO. El método descrito en el apartado anterior, que realiza el acoplamiento entre dos subestructuras nodo a nodo, presenta como limitación el hecho de que en el caso de haber subestructuras que requieran un mallado muy fino, pueden estar pegadas a otras subestructuras que no necesiten un mallado tan fino por sus características propias. Si se pone en todo el tejido una malla fina, se eleva el número de nodos en zonas donde puede no ser necesario, lo que ralentiza el problema. Para evitar este problema, el acoplamiento puede realizarse a través de grupos de nodos de las subestructuras de distinto número, es decir, en acoplamiento entre subestructuras con un mallado con distinto número de nodos. Esto significa que cada subestructura dispone de un mallado diferente según sus necesidades. Al resolver el problema, de nuevo con un método iterativo, cuando se calcule una de las subestructuras se tendrán que combinar las temperaturas del conjunto de nodos del otro subsistema asociados al contorno común de algún modo tal que todos los nodos de la subestructura que se está resolviendo vean la misma temperatura ficticia. En la figura 5.4 se observa un 80 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ejemplo de dos conjuntos de nodos asociados a la frontera de dos subestructuras. Los nodos “A” y “B” de la subestructura A toman un valor medio ponderado de las temperaturas “1”,”2” y “3” de la subestructura B como temperatura ficticia, al igual que para la resistencia térmica. Es decir, se hace una ponderación de las temperaturas y resistencias de una superficie para imponérsela a la siguiente superficie cuando ésta sea calculada. Figura 5.4: Acoplamiento de dos subestructuras entre grupos de nodo: Los nodos A y B de la subestructura A toman un valor medio ponderado de las temperaturas 1,2 y 3 de la subestructura B como temperatura ficticia, al igual que de la resistencia térmica entre 1,2 y 3. 81 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 6.- IMPLEMENTACIÓN INFORMÁTICA En capítulos anteriores se ha expuesto toda la teoría necesaria para implementar las ecuaciones y rutinas matemáticas en un programa informático. En este capítulo se va a explicar la estructura de este programa informático, cómo se ha realizado, sus componentes, sus funciones principales, y el desarrollo del programa. Pasar de la teoría a la programación no es un paso sencillo ni inmediato, y este hecho encripta y desfigura el problema físico que se está estudiando. No obstante, detrás de todo el entramado que este programa informático tiene se puede descubrir todas y cada una de las ecuaciones antes expuestas, y cómo se cogen los datos necesarios de los archivos de partida, cómo se usan esos datos, cómo se va resolviendo las ecuaciones y se va obteniendo las temperaturas en nuevos archivos de texto, que es en definitiva lo que vamos buscando con este proyecto: encontrar una herramienta para resolver el problema de conducción del frío en el interior de un tejido vivo. Para este proyecto se han realizado dos programas. Uno de ellos, denominado CRYOJAB, es el más extenso e importante, y sobre el que se ha dedicado la mayor parte del tiempo de la realización de este proyecto. El otro programa, CRYOJAB-color, es un pequeño programa realizado como apéndice para la conversión desde una imagen tal y como la recogemos del laboratorio de histología (cortes de tejido a estudiar), a un archivo con un código (información del tejido en forma alfanumérica) que el programa principal 82 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 CRYOJAB necesita. En el último apartado de este capítulo (apartado 6.5) se describirá la función de CRYOJAB-color. El programa CRYOJAB ha sido realizado con el sistema C++, usando librerías de Fortran para el cálculo matemático [Kernighan, 1992]. CRYOJAB tiene la estructura estándar usada en programación C++. Primero se ha creado una librería, llamada subestructura.h, que incluye todas las variables y funciones que el programa va a utilizar. Es como el diccionario de donde están definidas las variables y funciones. A continuación está el programa subestructura.cpp, que es donde se desarrollan y describen todas y cada una de las funciones que luego usaremos. Por último está el main.cpp, que es quien organiza y ejecuta las funciones y da los resultados. Por ejemplo, si queremos rellenar una matriz de temperaturas Temp: en subestructura.h tendremos que declarar la matriz para que el programa sepa que esa matriz existe, y que tiene el nombre “Temp”. Luego, en subestructura.cpp programaremos los comandos para que la matriz sea rellenada de la forma correcta con los datos que deseemos. Por tanto, en subestructura.cpp tendremos, por ejemplo, una función llamada rellenar_Temp, que nos calcula la matriz Temp. Por último, en main.cpp llamaremos a la función rellenar_Temp las veces que nos haga falta para que se ejecute. Además, también en main.cpp es donde es necesario imponer el orden que debe seguir el programa al ejecutarse, ya que subestructura.cpp es como un saco con muchas funciones, pero es el main.cpp el que manda sobre ellas y le dice en qué momento hay que actuar y qué parámetros o datos hay que dar para que se ejecute correctamente la función. 83 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 A continuación se va a desarrollar el código del programa completo CRYOJAB. Dentro del código se va explicando qué significa cada paso o cada variable, y sobre todo, el objetivo de cada función. Además se adjunta un diagrama de bloques. 84 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 6.1.- DIAGRAMA DE BLOQUES DE CRYOJAB Definir variables, vectores, matrices y auxiliares Lectura de datos a partir de los archivos de texto for t<ntDat (número de pasos de tiempo) for i<ns (número de subestructuras) Leer el tipo de condiciones de contorno del fichero3_i ¿Condición de contorno externa o de contacto? Externa De contacto Rellenar condiciones de contorno externas de cada nodo Rellenar condiciones de contacto de cada nodo con los datos de los otros nodos adyacentes Interpolamos las condiciones de contorno o de contacto Leer datos de generación Calcular Matrices [A],[B],[C],[D] Cálculo de autovalores y autovectores: matrices [P] y [L] Realizar la inversa de la matriz [P] Calcular la matrices [E],[F] y [H] 85 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Calcular matrices auxiliares correspondientes a la ecuación (4.10) Calculamos las temperaturas de los nodos Añadimos la generación en cada nodo Calculamos y actualizamos las nuevas condiciones de contorno Calculamos la matriz [MA] y el vector {VP} de acoplamiento Calculamos el flujo de calor Q Almacenamos las temperaturas nodales y los flujos de calor No ¿Se han calculado todas las subestructuras? Sí No ¿Se han calculado todos los pasos de tiempo? Sí Escribimos los resultados en los archivos de texto 86 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 6.2.- CÓDIGO DE SUBESTRUCTURA.H #if !defined subestructura_hpp #define subestructura_hpp #include "stdio.h" #include "stdlib.h" #include "math.h" #include "maths.h" class Subestructura { //Declaracion de variables y funciones privadas, solo accesibles a la clase subestructura private: //Numero de nodos en direccion x e y int indice[4]; long nx,ny; long ipath; //parametros del mallado del bloque long nc; long nn; //Longitud en direccion x e y float *dxNod,*dyNod; float dx,dy; float dz; //numero de materiales int nMat; //Flotante para las temperaturas iniciales float tini; //Materiales float *kMat; float *roMat; 87 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 float *cpMat; float *velMat; //Materiales de los nodos float *kNod; float *roNod; float *cpNod; float *rocpNod; //Numero de material int **numeroMaterial; //vector de resistencias superficiales float *r; //Matrices del sistema float *a,*b,*c,*d; //matrices con autovalores float *e,*f,*p,*l,*invp,*h; //matrices para el calculo de las temperaturas nodales float *st,*su,*n,*s,*sg; //Matrices para el calculo del vector VP float *spt,*spu,*spg; //Matriz MA,VP y Q del acoplamiento float *ma,*vp, *q; //Vectores con las coordenadas x,y de los nodos y de los contornos float *xNod,*yNod,*xcon,*ycon; //posicion del vertice inferior izquierda float x,y; //Tamaño del bloque float lx; float ly; 88 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //Paso de tiempo en segundos float dt; float deltat; //Numero de pasos de tiempo int nt; //Numero de contornos totales del problema int n_con; //Numero de elementos de contorno (inicializacion a cero) int n_elemcontorno; //Vector con temperaturas nodales en los nodos y en el tiempo (nt*nn) //TN (t,nodo) = TN(t+nt*nodo) float *tnNod; //Vector de generacion nodal (W/m3) float *gNod; //Vector de generacion nodal modificada por 1/ro*cp float *gNod_rocp; //Vector con temperaturas superficiales (excitaciones) tcc (0 a 2*nx+2ny-1) (0 a nc-1) float *tcc; //vector de temp de los nodos float *tnn; //vectores rcontorno y tcontorno float *tcontorno; float *rcontorno; float *scontorno; //coordenadas de los nodos //coordenadas incial y final el elemento del bloque (0,0) float x1,x2; //Resistencia termica adyacente en caso de condicion de simetria float R_SIM; //Resistencia termica adyacente en caso de condicion de temperatura impuesta 89 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 float R_TIM; //Numero PI float PI; //Declaracion de variables y funciones publicas, accesibles a todas las clases public: //declaracion del constructor 1 Subestructura(float); Subestructura(int nMatDat, float tiniDat, float *kMatDat, float *roMatDat, float *cpMatDat, float *velMatDat, int **numeroMaterialDat, int nxDat, int nyDat, int ntDat, float deltatDat, float lxDat, float lyDat); //destructor ~Subestructura(void); //Funciones de calculo float resistencia(float k,float d,float r); void calcularMatrices2D(float dt, int t); void calcularMatricesTemperaturas(void); void calcularMatricesMAVP(void); void posicionNodos(float *xNod,float *yNod); void calcularTnNod(int t); void calcularVp(int t); void calcularQ(int t); void dameCondContorno(int posicion, float *tnn, float *Rtemp,float *coord_nodos, int t); void ponCondContorno(int posicion, float *tnn, float *Rtemp, float *coord_nodos,int t); void resolverTcc(float *tcc_real,int t); void igualarTccTcontorno(int t); void devolverTnNod(float *temp,int nt,int nn); void ponIndice(int posicion, int indice); void dameIndice(int posicion, int &indice); void ponGeneracion (float *gen, int t); void ponTGeneracion (float *gen, int t); void devolverq(float *fluq); int interpolador(float *x,float *tx,int nx,float *s,float *ts,int ns); }; #endif 90 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 6.3.- CÓDIGO DE SUBESTRUCTURA.CPP #include "stdio.h" #include "stdlib.h" #include "math.h" #include "maths.h" #include "subestructura.h" ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Implementacion del constructor nº1 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Subestructura::Subestructura(int nMatDat,float tiniDat,float *kMatDat,float *roMatDat, float *cpMatDat,float *velMatDat,int **numeroMaterialDat, int nxDat,int nyDat,int ntDat,float deltatDat, float lxDat,float lyDat) { //Lectura de los datos int i,j; nt = ntDat; nx = nxDat; ny = nyDat; lx = lxDat; ly = lyDat; tini = tiniDat; dx = lx/nx; dy = ly/ny; dz = float(1); deltat = deltatDat; dt = deltat; nMat = nMatDat; numeroMaterial = new int *[ny]; for(i=0;i<ny;i++) numeroMaterial[i] = new int [nx]; for(i=0;i<ny;i++) for(j=0;j<nx;j++) numeroMaterial[i][j] = numeroMaterialDat[i][j]; 91 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 kMat = new float [nMat]; roMat = new float [nMat]; cpMat = new float [nMat]; velMat = new float [nMat]; for(i=0;i<nMat;i++) { kMat[i] = kMatDat[i]; roMat[i] = roMatDat[i]; cpMat[i] = cpMatDat[i]; velMat[i] = velMatDat[i]; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Valores para las constantes //Resistencia termica adyacente en caso de condicion de simetria R_SIM = -1; //Resistencia termica adyacente en caso de condicion de temperatura impuesta R_TIM = -2; //Numero PI PI = float(3.141592); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Declaracion de variables del metodo constructor //Contadores int a; //Coordenadas del sistema de referencia de la subestructura respecto del stma global x1 = 0; x2 = 0; x = 0; y = 0; ipath =long(1); //Numero total de nodos 92 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 nc=2*nx+2*ny; nn=nx*ny; //Mallado dxNod = new float [nn]; dyNod = new float [nn]; for(i=0;i<nn;i++) { dxNod[i]= dx; dyNod[i]= dy; } //Reservar las matrices de kNod, cpNod, roNod rocpNod kNod = new float[nn]; roNod = new float[nn]; cpNod = new float[nn]; rocpNod= new float[nn]; //Coordenadas de los nodos xNod = new float[nn]; yNod = new float[nn]; //Reservar los vectores de las matrices de calculo de la TN y los Q n = new float [nn*nc]; su = new float [nn*nc]; sg = new float [nn*nn]; st = new float [nn*nn]; ma = new float [nc*nc]; vp = new float [nc]; q = new float [nc*nt]; tnNod = new float [nt*nn]; gNod = new float [nt*nn]; gNod_rocp = new float [nt*nn]; tcc = new float [nt*nc]; spt = new float [nc*nn]; spu = new float [nc*nc]; spg = new float [nc*nn]; tcontorno = new float [nc]; rcontorno = new float [nc]; scontorno = new float [nc]; //Poner los vectores a 0 for(i=0;i<nn*nc;i++) { 93 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 n[i] = float(0); su[i] = float(0); spt[i]= float(0); spg[i] = float(0); } for(i=0;i<nn*nn;i++) { st[i] = float(0); sg[i] = float(0); } for(i=0;i<nc*nc;i++) { ma[i] = float(0); spu[i] = float(0); } for(i=0;i<nc;i++) { vp[i] = float(0); tcontorno[i] = float(0); rcontorno[i] = float(0); } for(i=0;i<nt*nc;i++) { q[i] = float(0); tcc[i] = tini; } for(i=0;i<nt*nn;i++) { tnNod[i] = float(0); gNod_rocp[i]=float(0); gNod[i]=float(0); } //La temperatura de los nodos en t=0 es la tini; for(i=0;i<nn;i++) { tnNod[0+nt*i] = tini; } //Escribir las matrices de propiedades. 94 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 for(i=0;i<ny;i++) { for(j=0;j<nx;j++) { //a es el tipo de material expresado como un entero de 0 a N a = numeroMaterial[i][j]; //Asignamos a la k,ro,cp de los nodos, la k ro cp del material correspondiente kNod[i+ny*j] = kMat[a]; roNod[i+ny*j] = roMat[a]; cpNod[i+ny*j] = cpMat[a]; rocpNod[i+ny*j]=roNod[i+ny*j]*cpNod[i+ny*j]; } } //Al final tendremos todos los nodos con sus propiedades agrupados en matrices. } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Destructor para liberar la memoria dinamica del sistema /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Subestructura::~Subestructura(void) { int i; //Borrar la memoria reservada sobrante. delete [] a; delete [] b; delete [] c; delete [] d; delete [] e; delete [] f; delete [] h; delete [] p; delete [] l; delete [] invp; delete[] dxNod; delete[] dyNod; for(i=0;i<ny;i++) 95 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 delete[] numeroMaterial[i]; delete[] numeroMaterial; delete[] kMat; delete[] roMat; delete[] cpMat; delete[] velMat; delete[] kNod; delete[] roNod; delete[] cpNod; delete[] rocpNod; delete[] xNod; delete[] yNod; delete[] n; delete[] sg; delete[] su; delete[] st; delete[] ma; delete[] vp; delete[] q; delete[] tnNod; delete[] gNod; delete[] gNod_rocp; delete[] tcc; delete[] spt; delete[] spu; delete[] spg; delete[] rcontorno; delete[] scontorno; delete[] tcontorno; } 96 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Finalidad : resistencia termica asociada a un nodo // Entrada : k, conductividad del nodo , d tamaño del nodo en la // direccion deseada, r resistencia asociada a contorno // o nodo adyacente. // Salida : por valor, resistencia asociada al nodo // Notas : utiliza las constantes definidas al comienzo del // fichero R_SIM, R_TIM. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// float Subestructura::resistencia(float k,float d,float r) { //Si es condicion de simetria if(r == R_SIM) { return 0.; } //Si es condicion de temperatura impuesta if(r == R_TIM) { return 2*k/d; } //Si es condicion de conveccion o nodo adyacente, cuya resistencia sera dx/2k return 2*k/(2*k*r+d); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Finalidad : Descripcion de cada bloque, calculo de las matrices A y B // Notas : utiliza una rutina de inversion de matrices general // de la biblioteca I.M.S.L. en FORTRAN. (LINRG) // Si las propiedades no son cosntantes, en cada paso de tiempo // habrán de calcularse las conductividades nodales y todas las matrices. // Datos : incremento de tiempo, dt. Instante de tiempo, t. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 97 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 void Subestructura::calcularMatrices2D(float dt, int t) { //Contadores, i direccion vertical, j direccion horizontal long i = 0,k = 0,j = 0; //Resistencia de un nodo adyacente float R_INT; //Marices complejas paralos autovalores y autovectores f_complex *lcom; f_complex *pcom; //Reserva de memoria para las matrices a y b a = new float [nn*nn]; b = new float [nc]; c = new float [nc]; d = new float [nc]; e = new float [nn]; h = new float [nn]; f = new float [nn]; l = new float [nn]; p = new float [nn*nn]; invp = new float [nn*nn]; lcom = new f_complex [nn]; pcom = new f_complex [nn*nn]; //Inicializar las matrices a y b for(i=0;i<nn;i++) { for(j=0;j<nn;j++) { a[i+nn*j] = 0; } } for(i=0;i<nc;i++) { b[i]=0; } 98 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 for(i=0;i<nn;i++) { h[i]=0; } R_INT=float(0); //Rellenar la matriz A, matriz de rigidez for(j=0;j<nx;j++) { for(i=0;i<ny;i++) { //si no es un nodo extremo if(j!=0) { R_INT = (float)0.5*dxNod[(i+ny*(j-1))]/kNod[(i+ny*(j-1))]; a[(i+ny*j)+nn*(i+ny*(j-1))]+=resistencia(kNod[(i+ny*j)],dxNod[(i+ny*j)], R_INT)*dyNod[(i+ny*j)]/(rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); a[(i+ny*j)+nn*(i+ny*j)]-=resistencia(kNod[(i+ny*j)],dxNod[(i+ny*j)], R_INT)*dyNod[(i+ny*j)]/(rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); } //si es un nodo extremo else { //Para j=0; a[(i+ny*0)+nn*(i+ny*0)]-=resistencia(kNod[(i+ny*0)],dxNod[(i+ny*0)], rcontorno[i+2*nx])*dyNod[(i+ny*0)]/ (rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); } //si no es un nodo extremo if((j!=nx-1)) { R_INT = (float)0.5*dxNod[(i+ny*(j+1))]/kNod[(i+ny*(j+1))]; a[(i+ny*j)+nn*(i+ny*(j+1))]+=resistencia(kNod[(i+ny*j)],dxNod[(i+ny*j)], R_INT)*dyNod[(i+ny*j)]/(rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); a[(i+ny*j)+nn*(i+ny*j)]-=resistencia(kNod[(i+ny*j)],dxNod[(i+ny*j)], R_INT)*dyNod[(i+ny*j)]/(rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); } //si es un nodo extremo 99 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 else { //Para j=nx-1; a[(i+ny*(nx-1))+nn*(i+ny*(nx-1))]-=resistencia(kNod[(i+ny*(nx-1))], dxNod[(i+ny*(nx-1))],rcontorno[i+2*nx+ny])*dyNod[(i+ny*(nx-1))]/ (rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); } //si no es un nodo extremo if(i!=0) { R_INT = (float)0.5*dyNod[(i-1+ny*j)]/kNod[(i-1+ny*j)]; a[(i+ny*j)+nn*((i-1)+ny*j)]+=resistencia(kNod[(i+ny*j)],dyNod[(i+ny*j)], R_INT)*dxNod[(i+ny*j)]/(rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); a[(i+ny*j)+nn*(i+ny*j)]-=resistencia(kNod[(i+ny*j)],dyNod[(i+ny*j)], R_INT)*dxNod[(i+ny*j)]/(rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); } //si es un nodo extremo else { //Para i=0; a[(0+ny*j)+nn*(0+ny*j)]-=resistencia(kNod[(0+ny*j)],dyNod[(0+ny*j)], rcontorno[j])*dxNod[(0+ny*j)]/(rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); } //si no es un nodo extremo if(i!=(ny-1)) { R_INT = (float)0.5*dyNod[(i+1+ny*j)]/kNod[(i+1+ny*j)]; a[(i+ny*j)+nn*((i+1)+ny*j)]+=resistencia(kNod[(i+ny*j)],dyNod[(i+ny*j)], R_INT)*dxNod[(i+ny*j)]/(rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); a[(i+ny*j)+nn*(i+ny*j)]-=resistencia(kNod[(i+ny*j)],dyNod[(i+ny*j)], R_INT)*dxNod[(i+ny*j)]/(rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); } //si es un nodo extremo else { //Para i=ny-1; a[((ny-1)+ny*j)+nn*((ny-1)+ny*j)]-=resistencia(kNod[((ny-1)+ny*j)], dyNod[((ny-1)+ny*j)],rcontorno[j+nx])*dxNod[(ny-1+ny*j)]/ (rocpNod[i+ny*j]*dxNod[i+ny*j]*dyNod[i+ny*j]); } 100 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //Incluir los terminos de generacion. a[(i+ny*j)+nn*(i+ny*j)] += gNod_rocp[t+nt*(i+ny*j)]; } } //Matriz B, C y D almacenada como vector for(j=0;j<nx;j++) { b[j]=resistencia(kNod[(0+ny*j)],dyNod[(0+ny*j)], rcontorno[j])*dxNod[(0+ny*j)]/(rocpNod[0+ny*j]*dxNod[0+ny*j]*dyNod[0+ny*j]); b[nx+j]=resistencia(kNod[(ny-1+ny*j)],dyNod[(ny-1+ny*j)], rcontorno[j+nx])*dxNod[(ny-1+ny*j)]/(rocpNod[ny-1+ny*j]*dxNod[ny-1+ny*j] *dyNod[ny-1+ny*j]); } for(i=0;i<ny;i++) { b[2*nx+i]=resistencia(kNod[(i+ny*0)],dxNod[(i+ny*0)],rcontorno[i+2*nx])* dyNod[(i+ny*0)]/(rocpNod[i+ny*0]*dxNod[i+ny*0]*dyNod[i+ny*0]); b[2*nx+ny+i]=resistencia(kNod[(i+ny*(nx-1))],dxNod[(i+ny*(nx-1))], rcontorno[i+2*nx+ny])*dyNod[(i+ny*(nx-1))]/ (rocpNod[i+ny*(nx-1)]*dxNod[i+ny*(nx-1)]*dyNod[i+ny*(nx-1)]); } for(j=0;j<nx;j++) { c[j]=(2*kNod[ny*j]*dxNod[ny*j]*dz)/dyNod[ny*j]; c[nx+j]=(2*kNod[ny*(j+1)-1]*dxNod[ny*(j+1)-1]*dz)/dyNod[ny*(j+1)-1]; } for(j=0;j<ny;j++) { c[2*nx+j]=(2*kNod[j]*dyNod[j]*dz)/dxNod[j]; c[2*nx+ny+j]=(2*kNod[j+nn-ny]*dyNod[j+nn-ny]*dz)/dxNod[j+nn-ny]; } for(j=0;j<nx;j++) { d[j]=(2*kNod[ny*j]*dxNod[ny*j]*dz)/dyNod[ny*j]; d[nx+j]=(2*kNod[ny*(j+1)-1]*dxNod[ny*(j+1)-1]*dz)/dyNod[ny*(j+1)-1]; } 101 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 for(j=0;j<ny;j++) { d[2*nx+j]=(2*kNod[j]*dyNod[j]*dz)/dxNod[j]; d[2*nx+ny+j]=(2*kNod[j+nn-ny]*dyNod[j+nn-ny]*dz)/dxNod[j+nn-ny]; } //calculo de los autovalores y autovectores EVCRG(&nn,a,&nn,lcom,pcom,&nn); //Tomar la parte real de los autovectores y autovalores for(i=0;i<nn;i++) { for(j=0;j<nn;j++) { p[i+nn*j]=pcom[i+nn*j].re; } l[i]=lcom[i].re; } delete [] lcom; delete [] pcom; //Calcular la inversa de la matriz P de autovectores. Se almacenara en la misma //direccion. LINRG(&nn,p,&nn,invp,&nn); printf("\nt = %d : ", t); printf("Realizada la inversa"); //Matrices E y F y H for(i=0;i<nn;i++) { if(l[i]==0) { e[i]=float(0.5)*dt; f[i]=float(0.5)*dt; h[i]=float(0); } 102 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 else { e[i]=(float)(exp(l[i]*dt)*l[i]*dt+(float)1-exp(l[i]*dt))/(l[i]*l[i]*dt); f[i]=(float)(-l[i]*dt-(float)1+exp(l[i]*dt))/(l[i]*l[i]*dt); h[i]=(float)(exp(l[i]*dt)-(float)1)/(l[i]); } } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Obtención de las matrices ST,SU,N,SG // La solucion del campo de temperatura nodal viene dado a partir de las // cuatro matrices ST,SU,N,SG: // Tn(t+Dt) = ST*Tn(t) + SU*Tcc(t) + N*Tcc(t+Dt) + SG*{g/rocp}(t+Dt) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::calcularMatricesTemperaturas(void) { //Contadores, i direccion vertical, j direccion horizontal long i = 0,k = 0,j = 0,u,v,w; for(i=0;i<nn*nn;i++) { st[i]=0; } for(i=0;i<nn*nc;i++) { su[i]=0; n[i]=0; } //matriz N for(u=0;u<nn;u++) 103 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 { for(v=0;v<nn;v++) { //abajo v for(w=0;w<nx;w++) { //abajo w n[u+nn*(w)]+=p[u+nn*v]*f[v]*invp[v+nn*(0+ny*w)]*b[w]; //arriba w n[u+nn*(w+nx)]+=p[u+nn*v]*f[v]*invp[v+nn*((ny-1)+ny*w)]*b[w+nx]; } for(w=0;w<ny;w++) { //izda w n[u+nn*(w+2*nx)]+=p[u+nn*v]*f[v]*invp[v+nn*(w+ny*0)]*b[w+2*nx]; //dcha w n[u+nn*(w+2*nx+ny)]+=p[u+nn*v]*f[v]*invp[v+nn*(w+ny*(nx-1))]*b[w+2*nx+ny]; } } } //Matriz SU for(u=0;u<nn;u++) { for(v=0;v<nn;v++) { for(w=0;w<nx;w++) { //abajo w su[u+nn*(w)]+=p[u+nn*v]*e[v]*invp[v+nn*(0+ny*w)]*b[w]; //arriba w su[u+nn*(w+nx)]+=p[u+nn*v]*e[v]*invp[v+nn*((ny-1)+ny*w)]*b[w+nx]; } for(w=0;w<ny;w++) { //izda w su[u+nn*(w+2*nx)]+=p[u+nn*v]*e[v]*invp[v+nn*(w+ny*0)]*b[w+2*nx]; //dcha w su[u+nn*(w+2*nx+ny)]+=p[u+nn*v]*e[v]*invp[v+nn*(w+ny*(nx-1))]*b[w+2*nx+ny]; 104 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 } } } //Matriz ST for(u=0;u<nn;u++) { for(w=0;w<nn;w++) { for(v=0;v<nn;v++) { st[u+nn*w]+=p[u+nn*v]*(float)exp(l[v]*dt)*invp[v+nn*w]; } } } //MATRIZ SG for(u=0;u<nn;u++) { for(w=0;w<nn;w++) { for(v=0;v<nn;v++) { sg[u+nn*v]+=p[u+nn*v]*h[v]*invp[v+nn*w]; } } } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Calcular las matrices del flujo de calor //expresado como Qcc(t) = MA·Tcc(t) //Crear la matriz MA = [C]·[P]·[F]·[P-1]+[D] //Calcular un conjunto de matrices que proporcione el vector VP de terminos //independientes en funcion de las temperaturas. 105 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //VP(t) = SPT*TN(t)+SPU*Tc(t) + SPG*{g/rocp}(t) //terminos que dependen de las temperaturas nodales //puesta a cero en el programa principal /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::calcularMatricesMAVP(void) { //Contadores, i direccion vertical, j direccion horizontal long i = 0,k = 0,j = 0; //Se inicializa a cero. for(i=0;i<nc*nc;i++) ma[i]=float(0); for(j=0;j<nc;j++) { ma[(1+nc)*j]+=-c[j]; } for(j=0;j<nx;j++) { for(i=0;i<nn;i++) { for(k=0;k<nx;k++) { ma[j+nc*k]+=c[j]*p[ny*j+nn*i]*f[i]*invp[i+nn*ny*k]*b[k]; ma[j+nc*(nx+k)]+=c[j]*p[ny*j+nn*i]*f[i]*invp[i+nn*(ny*(1+k)-1)]*b[nx+k]; } for(k=0;k<ny;k++) { ma[j+nc*(2*nx+k)]+=c[j]*p[ny*j+nn*i]*f[i]*invp[i+nn*k]*b[2*nx+k]; ma[j+nc*(2*nx+ny+k)]+=c[j]*p[ny*j+nn*i]*f[i]* invp[i+nn*(nn-ny+k)]*b[2*nx+ny+k]; } } } for(j=0;j<nx;j++) { for(i=0;i<nn;i++) { for(k=0;k<nx;k++) 106 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 { ma[(nx+j)+nc*k]+=c[nx+j]*p[(ny*(j+1)-1)+nn*i]*f[i]*invp[i+nn*ny*k]*b[k]; ma[(nx+j)+nc*(nx+k)]+=c[nx+j]*p[(ny*(j+1)-1)+nn*i]*f[i]* invp[i+nn*(ny*(1+k)-1)]*b[nx+k]; } for(k=0;k<ny;k++) { ma[(nx+j)+nc*(2*nx+k)]+=c[nx+j]*p[(ny*(j+1)-1)+nn*i]*f[i]* invp[i+nn*k]*b[2*nx+k]; ma[(nx+j)+nc*(2*nx+ny+k)]+=c[nx+j]*p[(ny*(j+1)-1)+nn*i]*f[i]* invp[i+nn*(nn-ny+k)]*b[2*nx+ny+k]; } } } for(j=0;j<ny;j++) { for(i=0;i<nn;i++) { for(k=0;k<nx;k++) { ma[(2*nx+j)+nc*k]+=c[2*nx+j]*p[j+nn*i]*f[i]*invp[i+nn*ny*k]*b[k]; ma[(2*nx+j)+nc*(nx+k)]+=c[2*nx+j]*p[j+nn*i]*f[i]* invp[i+nn*(ny*(1+k)-1)]*b[nx+k]; } for(k=0;k<ny;k++) { ma[(2*nx+j)+nc*(2*nx+k)]+=c[2*nx+j]*p[j+nn*i]*f[i]*invp[i+nn*k]*b[2*nx+k]; ma[(2*nx+j)+nc*(2*nx+ny+k)]+=c[2*nx+j]*p[j+nn*i]*f[i]* invp[i+nn*(nn-ny+k)]*b[2*nx+ny+k]; } } } for(j=0;j<ny;j++) { for(i=0;i<nn;i++) { for(k=0;k<nx;k++) { ma[(2*nx+ny+j)+nc*k]+=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*f[i]* 107 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 invp[i+nn*ny*k]*b[k]; ma[(2*nx+ny+j)+nc*(nx+k)]+=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*f[i]* invp[i+nn*(ny*(1+k)-1)]*b[nx+k]; } for(k=0;k<ny;k++) { ma[(2*nx+ny+j)+nc*(2*nx+k)]+=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*f[i]* invp[i+nn*k]*b[2*nx+k]; ma[(2*nx+ny+j)+nc*(2*nx+ny+k)]+=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*f[i]* invp[i+nn*(nn-ny+k)]*b[2*nx+ny+k]; } } } //fin ma for(i=0;i<nn;i++) { for(k=0;k<nn;k++) { for(j=0;j<nx;j++) { spt[j+nc*k]=c[j]*p[ny*j+nn*i]*(float)exp(l[i]*dt)*invp[i+nn*k]; spt[(nx+j)+nc*k]=c[nx+j]*p[ny*(j+1)-1+nn*i]* (float)exp(l[i]*dt)*invp[i+nn*k]; } for(j=0;j<ny;j++) { spt[(2*nx+j)+nc*k]=c[2*nx+j]*p[j+nn*i]*(float)exp(l[i]*dt)*invp[i+nn*k]; spt[(2*nx+j+ny)+nc*k]=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*(float)exp(l[i]*dt)* invp[i+nn*k]; } } } //terminos que dependen de las temperaturas en los contornos for(j=0;j<nx;j++) { for(i=0;i<nn;i++) 108 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 { for(k=0;k<nx;k++) { spu[j+nc*k]=c[j]*p[ny*j+nn*i]*e[i]*invp[i+nn*ny*k]*b[k]; spu[j+nc*(nx+k)]=c[j]*p[ny*j+nn*i]*e[i]*invp[i+nn*(ny*(1+k)-1)]*b[nx+k]; } for(k=0;k<ny;k++) { spu[j+nc*(2*nx+k)]=c[j]*p[ny*j+nn*i]*e[i]*invp[i+nn*k]*b[2*nx+k]; spu[j+nc*(2*nx+k+ny)]=c[j]*p[ny*j+nn*i]*e[i]* invp[i+nn*(nn-ny+k)]*b[2*nx+ny+k]; } } } for(j=0;j<nx;j++) { for(i=0;i<nn;i++) { for(k=0;k<nx;k++) { spu[(nx+j)+nc*k]=c[nx+j]*p[ny*(1+j)-1+nn*i]*e[i]*invp[i+nn*ny*k]*b[k]; spu[nx+j+nc*(k+nx)]=c[nx+j]*p[ny*(1+j)-1+nn*i]*e[i]* invp[i+nn*(ny*(1+k)-1)]*b[nx+k]; } for(k=0;k<ny;k++) { spu[(nx+j)+nc*(2*nx+k)]=c[nx+j]*p[ny*(1+j)-1+nn*i]*e[i]* invp[i+nn*k]*b[2*nx+k]; spu[(nx+j)+nc*(2*nx+ny+k)]=c[nx+j]*p[ny*(1+j)-1+nn*i]*e[i]* invp[i+nn*(nn-ny+k)]*b[2*nx+ny+k]; } } } for(j=0;j<ny;j++) { for(i=0;i<nn;i++) { for(k=0;k<nx;k++) 109 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 { spu[(2*nx+j)+nc*(k)]=c[2*nx+j]*p[j+nn*i]*e[i]*invp[i+nn*ny*k]*b[k]; spu[(2*nx+j)+nc*(k+nx)]=c[2*nx+j]*p[j+nn*i]*e[i]* invp[i+nn*(ny*(1+k)-1)]*b[nx+k]; } for(k=0;k<ny;k++) { spu[(2*nx+j)+nc*(2*nx+k)]=c[2*nx+j]*p[j+nn*i]*e[i]*invp[i+nn*k]*b[2*nx+k]; spu[(2*nx+j)+nc*(2*nx+ny+k)]=c[2*nx+j]*p[j+nn*i]*e[i]* invp[i+nn*(nn-ny+k)]*b[2*nx+ny+k]; } } } for(j=0;j<ny;j++) { for(i=0;i<nn;i++) { for(k=0;k<nx;k++) { spu[(2*nx+ny+j)+nc*k]=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*e[i]* invp[i+nn*ny*k]*b[k]; spu[(2*nx+ny+j)+nc*(k+nx)]=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*e[i]* invp[i+nn*(ny*(1+k)-1)]*b[nx+k]; } for(k=0;k<ny;k++) { spu[(2*nx+ny+j)+nc*(2*nx+k)]=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*e[i]* invp[i+nn*k]*b[2*nx+k]; spu[(2*nx+ny+j)+nc*(2*nx+ny+k)]=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*e[i]* invp[i+nn*(nn-ny+k)]*b[2*nx+ny+k]; } } } //MATRIZ SPG for(i=0;i<nn;i++) { for(k=0;k<nn;k++) { 110 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 for(j=0;j<nx;j++) { spg[j+nc*k]=c[j]*p[ny*j+nn*i]*h[i]*invp[i+nn*k]; spg[(nx+j)+nc*k]=c[nx+j]*p[ny*(j+1)-1+nn*i]*h[i]*invp[i+nn*k]; } for(j=0;j<ny;j++) { spg[(2*nx+j)+nc*k]=c[2*nx+j]*p[j+nn*i]*h[i]*invp[i+nn*k]; spg[(2*nx+j+ny)+nc*k]=c[2*nx+ny+j]*p[nn-ny+j+nn*i]*h[i]*invp[i+nn*k]; } } } //fin vp } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Construcción de la matriz tnNod, las temperaturas nodales, dando como entrada //el instante de tiempo t y como salida los valores de tnNod por referencia. //tnNod[tiempo+nt*num de nodo]. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::calcularTnNod(int t) { int m, k; for(k=0;k<nn;k++) { tnNod[t+nt*k] = float(0); for(m=0;m<nn;m++) { tnNod[t+nt*k]+=st[k+nn*m]*tnNod[(t-1)+nt*m]; tnNod[t+nt*k]+=sg[k+nn*m]*gNod_rocp[(t)+nt*m]; } for(m=0;m<nc;m++) { tnNod[t+nt*k]+=su[k+nn*m]*tcc[(t-1)+nt*m]; } for(m=0;m<nc;m++) 111 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 { tnNod[t+nt*k]+=n[k+nn*m]*tcc[(t)+nt*m]; } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Construcción de la matriz vp, matriz de acoplamiento, dando como entrada el //instante de tiempo t y como salida los valores de vp por referencia. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::calcularVp(int t) { int m,k; for(k=0;k<nc;k++) { vp[k]=float(0); for(m=0;m<nn;m++) { //Temperatura nodal vp[k]+=spt[k+nc*m]*tnNod[(t-1)+nt*m]; //Generacion nodal vp[k]+=spg[k+nc*m]*gNod_rocp[(t-1)+nt*m]; } for(m=0;m<nc;m++) { vp[k]+=spu[k+nc*m]*tcc[(t-1)+nt*m]; } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Construcción de la matriz q, flujo de calor dando como entrada el instante //de tiempo t y como salida los valores de q por referencia. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 112 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 void Subestructura::calcularQ(int t) { int m,k; for(k=0;k<nc;k++) { q[t+nt*k]=float(0); for(m=0;m<nc;m++) { q[t+nt*k]+= ma[k+nc*m]*tcc[t+nt*m]; } for(m=0;m<nc;m++) { q[t+nt*k]+= vp[k]; } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // devolver las condiciones de contorno segun la // posicion de contorno // Abajo =1 // Arriba =2 // Izquierda = 3 // Derecha =4 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::dameCondContorno(int posicion, float *tnn, float *Rtemp, float *coord_nodos, int t) { int i,k; if(posicion==1) { for(i=0;i<nx;i++) { for(k=0;k<nx;k++) 113 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 { tnn[i] = tnNod[t+nt*ny*k]; if(kNod[ny*k]!=0) { Rtemp[i] = (dyNod[ny*k]) / (2*kNod[ny*k]); } else { Rtemp[i] = (float)100000000000000; } } } } else if(posicion==2) { for(i=0;i<nx;i++) { for(k=0;k<nx;k++) { tnn[i] = tnNod[t+nt*(ny*k+ny-1)]; if(kNod[(ny*k+ny-1)]!=0) { Rtemp[i] = (dyNod[(ny*k+ny-1)]) / (2*kNod[(ny*k+ny-1)]); } else { Rtemp[i] = (float)100000000000000; } } } } else if(posicion==3) { for(i=0;i<ny;i++) { for(k = 0;k < ny;k++) 114 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 { tnn[i] = tnNod[t+nt*k]; if(kNod[k]!=0) { Rtemp[i] = (dyNod[k]) / (2*kNod[k]); } else { Rtemp[i] = (float)100000000000000; } } } } else { for(i=0;i<ny;i++) { for(k=0;k<ny;k++) { tnn[i] = tnNod[t+nt*(nn-ny+k)]; if(kNod[(nn-ny+k)]!=0) { Rtemp[i] = (dyNod[(nn-ny+k)]) / (2*kNod[(nn-ny+k)]); } else { Rtemp[i] = (float)100000000000000; } } } } posicionNodos(xNod,yNod); if(posicion==1) { 115 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 for(k=0;k<nx;k++) { coord_nodos[k] = xNod[ny*k]; } } else if(posicion==2) { for(k=0;k<nx;k++) { coord_nodos[k] = xNod[ny*k+ny-1]; } } else if(posicion==3) { for(k=0;k<ny;k++) { coord_nodos[k] = yNod[(k)]; } } else { for(k=0;k<ny;k++) { coord_nodos[k] = yNod[nn-ny+k]; } } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // poner las condiciones de contorno segun la // posicion de contorno // Abajo =1 // Arriba =2 // Izquierda = 3 // Derecha = 4 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 116 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 void Subestructura::ponCondContorno(int posicion, float *tnn, float *Rtemp, float *coord_nodos,int t) { int k; if(posicion==1) { for(k=0;k<nx;k++) { tcontorno[k] = tnn[(k)]; } } else if(posicion==2) { for(k=0;k<nx;k++) { tcontorno[k+nx] = tnn[(k)]; } } else if(posicion==3) { for(k=0;k<ny;k++) { tcontorno[k+2*nx] = tnn[(k)]; } } else { for(k=0;k<ny;k++) { tcontorno[k+2*nx+ny] = tnn[(k)]; } } if(posicion==1) { for(k=0;k<nx;k++) { rcontorno[k] = Rtemp[k]; 117 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 } } else if(posicion==2) { for(k=0;k<nx;k++) { rcontorno[k+nx] = Rtemp[k]; } } else if(posicion==3) { for(k=0;k<ny;k++) { rcontorno[k+2*nx] = Rtemp[k]; } } else { for(k=0;k<ny;k++) { rcontorno[k+2*nx+ny] = Rtemp[k]; } } if(posicion==1) { for(k=0;k<nx;k++) { scontorno[k] = coord_nodos[k]; } } else if(posicion==2) { for(k=0;k<nx;k++) { scontorno[k+nx] = coord_nodos[k]; } 118 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 } else if(posicion==3) { for(k=0;k<ny;k++) { scontorno[k+2*nx] = coord_nodos[k]; } } else { for(k=0;k<ny;k++) { scontorno[k+2*nx+ny] = coord_nodos[k]; } } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Funcion destinada a crear un vector dependiente del tiempo tcc para guardar las // temperaturas de los contonos incluídos en tcontorno, ya que tcontorno se escribe // y borra para cada paso de tiempo /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::igualarTccTcontorno(int t) { int i; for(i=0;i<nc;i++) tcc[t+nt*i]=tcontorno[i]; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Finalidad : Calculo de la posicion de los nodos // Efecto : rellena los vectores xNod,yNod, usados en dameCondCont // Entrada : punteros a los // // vectores de resultados xNod e yNod. Salida : por referencia, vectores de resultados xNod e yNod. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 119 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 void Subestructura::posicionNodos(float *xNod,float *yNod) { //Declaraciones //Contadores int g,j; //Calculo de la posicion de los nodos //incializacion a (x,y) para todos los nodos for(g=0;g<ny;g++) { for(j=0;j<nx;j++) { xNod[(g+ny*j)]=x; yNod[(g+ny*j)]=y; } } //calculo de la posicion for(g=0;g<ny;g++) { for(j=0;j<nx;j++) { //Si es el primer nodo en direccion horizontal if(j==0) { xNod[(g+ny*0)]+=(float).5*dxNod[(g+ny*0)]; } else { xNod[(g+ny*j)]=xNod[(g+ny*(j-1))]+(float)0.5*dxNod[(g+ny*j)]+ (float)0.5*dxNod[(g+ny*(j-1))]; } //Si es el primer nodo en direccion vertical if(g==0) { yNod[(0+ny*j)]+=(float).5*dyNod[(0+ny*j)]; } else { 120 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 yNod[(g+ny*j)]=yNod[(g-1+ny*j)]+(float)0.5*dyNod[(g+ny*j)]+ (float)0.5*dyNod[(g-1+ny*j)]; } } } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Función que calcula la temperatura en los nodos donde hay generacion (nodos con // velocidad del material distinta de cero). /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::ponGeneracion (float *gen, int t) { int i; int j; int nMater; for(j=0;j<nx;j++) { for(i=0;i<ny;i++) { nMater = numeroMaterial[i][j]; if(velMat[nMater]!=0) { gNod[t+nt*(i+ny*j)]=gen[(i+ny*j)]; gNod_rocp[t+nt*(i+ny*j)]=gNod[t+nt*(i+ny*j)]/(roNod[i+ny*j]*cpNod[i+ny*j]); } else { gNod[t+nt*(i+ny*j)] = float(0); gNod_rocp[t+nt*(i+ny*j)] = float(0); } } } } 121 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Funcion que interpola de entre una serie de valores //datos s,ts,ns,x,nx //resultados tx (debe estar reservado) ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int Subestructura::interpolador(float *x,float *tx,int nx,float *s,float *ts,int ns) { int i,j; for(i=0;i<nx;i++) { if(x[i]<=s[0]) { if((s[1]-s[0])!=float(0)) { tx[i] = ts[0]; tx[i] += (x[i]-s[0])*(ts[1]-ts[0])/(s[1]-s[0]); } else { tx[i] = (float)0.5*(ts[0]+ts[1]); } // break; } for(j=0;j<ns;j++) { if((s[j]<=x[i])&&(x[i]<=s[j+1])) { if((s[j+1]-s[j])!=float(0)) { tx[i] = ts[j]; tx[i] += (x[i]-s[j])*(ts[j+1]-ts[j])/(s[j+1]-s[j]); } else { tx[i] = (float)0.5*(ts[j]+ts[j+1]); } break; } } 122 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 if(x[i]>=s[ns-1]) { if((s[ns-1]-s[ns-2])!=float(0)) { tx[i] = ts[ns-2]; tx[i] += (x[i]-s[ns-2])*(ts[ns-1]-ts[ns-2])/(s[ns-1]-s[ns-2]); } else { tx[i] = float(0.5)*(ts[ns-2]+ts[ns-1]); } break; } } return int(0); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Funcion que iguala las temperaturas de todos los nodos tnNod a un vector auxiliar // temp, para pasarlo al main. Una vez allí, será el vector temp el que se escriba // en los archivos de temperaturas nodales. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::devolverTnNod(float *temp,int nt,int nn) { int i, t; for(t=0;t<nt;t++) { for(i=0;i<nn;i++) { temp[t+nt*(i)] = tnNod[t+nt*(i)]; } } } 123 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Funcion que pone indices a las subestructuras segun su ubicacion dentro del sistema // posicion: 1 = abajo, // 2 = arriba // 3 = izda. // 4 = dcha. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::ponIndice(int posicion, int indiceDat) { if(posicion<1||posicion>4) { printf("\nLa posicion debe estar entre 1 y 4."); exit(78); } indice[posicion-1]=indiceDat; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Funcion que pide indices a las subestructuras segun su ubicacion dentro del sistema // posicion: 1 = abajo, // 2 = arriba // 3 = izda. // 4 = dcha. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::dameIndice(int posicion, int &indiceDat) { if(posicion<1||posicion>4) { printf("\nLa posicion debe estar entre 1 y 4."); exit(78); } indiceDat=indice[posicion-1]; } 124 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Función destinada a escribir un vector que nos proporcione las temperaturas de //contorno reales, no las temperaturas de contorno equivalentes (son las utilizadas //para calcular las temperaturas nodales). Por ello se llama tcc_real. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::resolverTcc(float *tcc_real,int t) { int i,j; for(i=0;i<nx;i++) { if(tcc[t+nt*i]==0&&rcontorno[i]!=0) { tcc_real[t+nt*i] = (((dx*kNod[i])/(2*rcontorno[i]))*tcc[t+nt*i]+ tnNod[t+nt*(ny*i)])/(1+(dx*kNod[i])/(2*rcontorno[i])); } else { tcc_real[t+nt*i] = tcc[t+nt*i]; } } for(i=0;i<nx;i++) { if(tcc[t+nt*(i+nx)]==0&&rcontorno[(i+nx)]!=0) { tcc_real[t+nt*(i+nx)] = (((dx*kNod[(i+nx)])/(2*rcontorno[(i+nx)]))* tcc[t+nt*(i+nx)]+tnNod[t+nt*((ny*(i+1))-1)])/(1+(dx*kNod[(i+nx)])/ (2*rcontorno[(i+nx)])); } else { tcc_real[t+nt*(i+nx)] = tcc[t+nt*(i+nx)]; } } for(j=0;j<ny;j++) { 125 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 if(tcc[t+nt*(j+2*nx)]==0&&rcontorno[(j+2*nx)]!=0) { tcc_real[t+nt*(j+2*nx)] = (((dx*kNod[(j+2*nx)])/ (2*rcontorno[(j+2*nx)]))*tcc[t+nt*(j+2*nx)]+tnNod[t+nt*j])/ (1+(dx*kNod[(j+2*nx)])/(2*rcontorno[(j+2*nx)])); } else { tcc_real[t+nt*(j+2*nx)] = tcc[t+nt*(j+2*nx)]; } } for(j=0;j<ny;j++) { if(tcc[t+nt*(j+2*nx+ny)]==0&&rcontorno[(j+2*nx+ny)]!=0) { tcc_real[t+nt*(j+2*nx+ny)] = (((dx*kNod[(j+2*nx+ny)])/ (2*rcontorno[(j+2*nx+ny)]))*tcc[t+nt*(j+2*nx+ny)]+ tnNod[t+nt*(ny*(nx-1)+j)])/(1+(dx*kNod[(j+2*nx+ny)])/ (2*rcontorno[(j+2*nx+ny)])); } else { tcc_real[t+nt*(j+2*nx+ny)] = tcc[t+nt*(j+2*nx+ny)]; } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Funcion que pone en el nodo de generacion la temperatura de dicha generacion ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::ponTGeneracion (float *gen, int t) { int i; int j; int nMat; 126 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 for(j=0;j<nx;j++) { for(i=0;i<ny;i++) { nMat = numeroMaterial[i][j]; if(velMat[nMat]!=0) { tnNod[t+nt*(i+ny*j)]=gen[(i+ny*j)]; } } } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Funcion para llevar al main los flujos de calor de cada contorno, para poder // escribirlos por fichero. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Subestructura::devolverq(float *fluq) { for(int t=0;t<nt;t++) { for( int k=0;k<nc;k++) { fluq[t+nt*k] = q[t+nt*k]; } } } 127 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 6.4.- CÓDIGO DE MAIN.CPP #include "stdio.h" #include "stdlib.h" #include "math.h" #include "subestructura.h" #include "string.h" #include "assert.h" void main(void) { //Punteros a utilizar. int t,i,j,u,aux,k,p; //Punteros de ficheros FILE *pf1,*pf2,*pf3,*pf4,*pf5,*pf6,*pf, *pff; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //numero de subestructuras, a leer del fichero6.txt int ns; //Datos de tiempo, a leer del archivo6.txt int ntDat; float deltatDat; //El ficrero6.txt lleva informacion del numero de subestructuras y de variables de tiempo char * nombreFicheroTiempo; nombreFicheroTiempo = new char[200]; strcpy(nombreFicheroTiempo,"fichero6.txt"); pf6 = fopen(nombreFicheroTiempo,"r"); fscanf(pf6,"%d",&ns); fscanf(pf6,"%ld",&ntDat); fclose(pf6); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 128 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //Numero de material (una matriz para cada subestructura) int ***numeroMaterialDat; numeroMaterialDat = new int ** [ns]; //Numero de nodos, uno para cada subestructura int *nxDat; int *nyDat; //Longitud de los lados. float *lxDat,*lyDat; //dx=lxDat/nxDat; float *dx,*dy; //Reserva de memoria para cada subestructura nxDat = new int [ns]; nyDat = new int [ns]; lxDat = new float [ns]; lyDat = new float [ns]; dx = new float [ns]; dy = new float [ns]; //Vector Flotante para las temperaturas iniciales de las subestructuras float *tiniDat; tiniDat = new float [ns]; for(i=0;i<ns;i++) tiniDat[i]=float(0); //Los ficheros que nos dan la informacion de cada subestructura //se van a llamar fichero1_0.txt, fichero1_1.txt, etc... char ** nombreFicheroNodos; nombreFicheroNodos = new char *[ns]; char *caena; caena = new char [7]; for(i=0;i<ns;i++) { nombreFicheroNodos[i] = new char[200]; strcpy(nombreFicheroNodos[i],"fichero1"); sprintf(caena,"_%d.txt",i); strcat(nombreFicheroNodos[i],caena); } 129 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 for(u=0;u<ns;u++) { pf1 = fopen(nombreFicheroNodos[u],"r"); //Leer los datos de los nodos y paso de tiempo fscanf(pf1,"%ld",&nxDat[u]); fscanf(pf1,"%ld",&nyDat[u]); fscanf(pf1,"%f",&lxDat[u]); fscanf(pf1,"%f",&lyDat[u]); fscanf(pf1,"%f",&tiniDat[u]); numeroMaterialDat[u] = new int *[nyDat[u]]; for(i=0;i<nyDat[u];i++) numeroMaterialDat[u][i] = new int [nxDat[u]]; for(i=0;i<nyDat[u];i++) for(j=0;j<nxDat[u];j++) fscanf(pf1,"%d %d %d",&aux,&aux,&(numeroMaterialDat[u][i][j])); fclose(pf1); } float sumax; sumax=0; float sumay; sumay=0; float sumaxy; for(i=0;i<ns;i++) { dx[i] = lxDat[i]/nxDat[i]; dy[i] = lyDat[i]/nyDat[i]; sumax += dx[i]/ns; sumay += dy[i]/ns; } sumaxy=(sumax+sumay)/2; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //numero de materiales int nMatDat; //Materiales 130 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 float *kMatDat; float *roMatDat; float *cpMatDat; float *velMatDat; //El fichero2.txt llevara informacion generica de los tipos de materiales. char * nombreFicheroMateriales; nombreFicheroMateriales = new char[200]; strcpy(nombreFicheroMateriales,"fichero2.txt"); pf2 = fopen(nombreFicheroMateriales,"r"); fscanf(pf2,"%d",&nMatDat); kMatDat = new float [nMatDat]; roMatDat = new float [nMatDat]; cpMatDat = new float [nMatDat]; velMatDat = new float [nMatDat]; for(i=0;i<nMatDat;i++) fscanf(pf2,"%f %f %f %f",&(kMatDat[i]),&(roMatDat[i]),&(cpMatDat[i]),&(velMatDat[i])); fclose(pf2); float sumak; sumak=0; float sumaro; sumaro=0; float sumacp; sumacp=0; for(i=0;i<nMatDat;i++) { sumak+=kMatDat[i]/nMatDat; sumaro+=roMatDat[i]/nMatDat; sumacp+=cpMatDat[i]/nMatDat; } float alfa; alfa=sumak/(sumaro*sumacp); //deltat es el tiempo que se pone al resolver la integral de Duhamel deltatDat= (sumaxy*sumaxy)/alfa; 131 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //El archivo fichero4.txt tiene: ntDat, deltat, numero de tipos de contorno //(numeroTipoContorno) y todos los tipos de contorno de la forma siguiente: // primero = indice de tipo de contorno. IMPORTANTE el primer tipo es el uno, NO el cero // segundo y tercero = temperatura del contorno de la forma T=a+b*t. // cuarto = resistencia del contorno. //Solo se cogeran y guardaran los tres últimos en la matriz tipoContorno //tipoContorno[1][1] será el coeficiente "a" del tipo 1 de contorno. //tipoContorno[1][2] será el coeficiente "b" del tipo 1 de contorno. //tipoContorno[1][3] será el rc del tipo 1 de contorno. //tipoContorno[2][1] será el coeficiente "a" del tipo 2 de contorno..... char * nombreFicheroBD; nombreFicheroBD = new char [200]; strcpy(nombreFicheroBD,"fichero4.txt"); float **tipoContorno; int numeroTipoContorno; float auxiliar; pf4 = fopen(nombreFicheroBD,"r"); fscanf(pf4,"%d",&numeroTipoContorno); tipoContorno = new float *[numeroTipoContorno]; for(i=1;i<numeroTipoContorno+1;i++) { tipoContorno[i] = new float[3]; for (j=1;j<4;j++) { tipoContorno[i][j] = float(0.0); } fscanf(pf4, "%f %f %f %f", &auxiliar, &tipoContorno[i][1],&tipoContorno[i][2], &tipoContorno[i][3]); } fclose (pf4); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Leemos la generacion desde fichero5.txt. Suponemos que sólo hay una loncha de espesor. //Por tanto, solo se utiliza ponGeneracion, y toda la generacion se coge 132 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //del fichero de generacion.También supondremos que en cada subestructura, //la generación es la misma para toda la subestructura. //El fichero de generacion contendrá una generacion constante //o lineal con el tiempo, de la forma gen=a+bt. Si es constante, b=0. //IMPORTANTE: en el fichero5 se ordenaran los a's y b's desde la subestructura //cero a la ultima siguiendo un orden consecutivo. float *a,*b; float **genDat; a=new float[ns]; b=new float[ns]; char* FicheroGeneracion; FicheroGeneracion="fichero5.txt"; genDat = new float*[ns]; for(i=0;i<ns;i++) { genDat[i] = new float[nxDat[i]*nyDat[i]]; } pf5 = fopen(FicheroGeneracion,"r"); for(i=0;i<ns;i++) { fscanf(pf5,"%f %f",&a[i],&b[i]); } fclose (pf5); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Preparamos la lectura de las condiciones de contorno //Las condiciones de contorno dependen de la subestructura //por tanto estaran incluidas en el bucle principal. //Vamos a crear ns archivos, uno por cada subestructura. //El archivo fichero3_0.txt será el archivo de las cond de cont de la subestructura 0. //El archivo fichero3_1.txt será el archivo de las cond de cont de la subestructura 1... char ** nombreFicheroContorno; nombreFicheroContorno = new char *[ns]; char *cadena; cadena = new char [7]; for(i=0;i<ns;i++) { nombreFicheroContorno[i] = new char[200]; 133 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 strcpy(nombreFicheroContorno[i],"fichero3"); sprintf(cadena,"_%d.txt",i); strcat(nombreFicheroContorno[i],cadena); } //Declaracion y reserva de memoria de las condiciones de contorno float ***tcc1; float ***tcc2; float ***tcc3; float ***tcc4; float **rcc1; float **rcc2; float **rcc3; float **rcc4; float **xcc1; float **xcc2; float **xcc3; float **xcc4; tcc1 = new float **[ns]; tcc2 = new float **[ns]; tcc3 = new float **[ns]; tcc4 = new float **[ns]; rcc1 = new float *[ns]; rcc2 = new float *[ns]; rcc3 = new float *[ns]; rcc4 = new float *[ns]; xcc1 = new float *[ns]; xcc2 = new float *[ns]; xcc3 = new float *[ns]; xcc4 = new float *[ns]; for(i=0;i<ns;i++) { tcc1[i] = new float *[ntDat]; tcc2[i] = new float *[ntDat]; tcc3[i] = new float *[ntDat]; tcc4[i] = new float *[ntDat]; rcc1[i] = new float [nxDat[i]]; rcc2[i] = new float [nxDat[i]]; 134 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 rcc3[i] = new float [nyDat[i]]; rcc4[i] = new float [nyDat[i]]; xcc1[i] = new float [nxDat[i]]; xcc2[i] = new float [nxDat[i]]; xcc3[i] = new float [nyDat[i]]; xcc4[i] = new float [nyDat[i]]; for(j=1;j<ntDat;j++) { tcc1[i][j] = new float [nxDat[i]]; tcc2[i][j] = new float [nxDat[i]]; tcc3[i][j] = new float [nyDat[i]]; tcc4[i][j] = new float [nyDat[i]]; for(p=0;p<nxDat[i];p++) { tcc1[i][j][p] = float(0); tcc2[i][j][p] = float(0); rcc1[i][p] = float(0); rcc2[i][p] = float(0); xcc1[i][p] = float(0); xcc2[i][p] = float(0); } for(p=0;p<nyDat[i];p++) { tcc3[i][j][p] = float(0); tcc4[i][j][p] = float(0); rcc3[i][p] = float(0); rcc4[i][p] = float(0); xcc3[i][p] = float(0); xcc4[i][p] = float(0); } } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Preparamos los archivos de resultados de temperaturas nodales, de contorno y flujos. //Los resultados dependen de la subestructura y del paso de tiempo, //por tanto estaran incluidas en el bucle principal. //Vamos a crear ns*ntDat archivos, uno por cada subestructura y por cada paso de tiempo. 135 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //El archivo resultad_0_1.txt será: //el archivo de los resultados de la subestructura 0 en el paso de tiempo 1. //El archivo resultad_3_5.txt será: //el archivo de los resultados de la subestructura 3 en el paso de tiempo 5. char ** resultadosNodos; resultadosNodos = new char *[ns]; char *cadenab; cadenab = new char [7]; for(i=0;i<ns;i++) { resultadosNodos[i] = new char[200]; } for(i=0;i<ns;i++) { strcpy(resultadosNodos[i],"resultad"); sprintf(cadenab,"_%d.txt",i); strcat(resultadosNodos[i],cadenab); } char ** resultadosContornos; resultadosContornos = new char *[ns]; char *cadenac; cadenac = new char [7]; for(i=0;i<ns;i++) { resultadosContornos[i] = new char[200]; } for(i=0;i<ns;i++) { strcpy(resultadosContornos[i],"resultadCont"); sprintf(cadenac,"_%d.txt",i); strcat(resultadosContornos[i],cadenac); } char ** resultadosFlujos; resultadosFlujos = new char *[ns]; 136 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 char *cadenad; cadenad = new char [7]; for(i=0;i<ns;i++) { resultadosFlujos[i] = new char[200]; } for(i=0;i<ns;i++) { strcpy(resultadosFlujos[i],"resultadFlujos"); sprintf(cadenad,"_%d.txt",i); strcat(resultadosFlujos[i],cadenad); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Vectores auxiliares para escribir las temperaturas de los nodos, las temperaturas de //los contornos, y los flujos por cada contorno. float **temp; temp = new float *[ns]; for(i=0;i<ns;i++) temp[i] = new float[nxDat[i]*nyDat[i]*ntDat]; float **tcc_real; tcc_real = new float *[ns]; for(i=0;i<ns;i++) tcc_real[i] = new float[(2*nxDat[i]+2*nyDat[i])*ntDat]; float **fluq; fluq = new float *[ns]; for(i=0;i<ns;i++) fluq[i] = new float[(2*nxDat[i]+2*nyDat[i])*ntDat]; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Declaracion de variables entre las cuales están las clases Subestructura **s; s=new Subestructura *[ns]; //Crear las subestructuras. for(i=0; i<ns;i++) 137 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 { s[i] = new Subestructura(nMatDat,tiniDat[i],kMatDat,roMatDat,cpMatDat,velMatDat, numeroMaterialDat[i],nxDat[i],nyDat[i],ntDat,deltatDat,lxDat[i],lyDat[i]); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Borramos memoria dinamica hasta ahora. for(i=0;i<ns;i++) delete nombreFicheroNodos[i]; delete[] nombreFicheroNodos; delete[] nombreFicheroMateriales; delete[] nombreFicheroTiempo; delete[] tiniDat; delete[] numeroMaterialDat; delete[] lxDat; delete[] lyDat; delete[] kMatDat; delete[] roMatDat; delete[] cpMatDat; delete[] velMatDat; delete[] nombreFicheroBD; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Comenzamos bucle de tiempo y de subestructura. //Comenzamos en t=1 porque en 0 las temperaturas son las tiniDat. for(t=1;t<ntDat;t++) { for(i=0; i<ns;i++) { //Leer las condiciones de contorno del fichero3_i.txt //van a almacenar 4 filas:cada fila se corresponde con una condicion //de contorno en el siguiente orden: abajo, arriba, izqda, dcha. //Y el numero sera la cond de contorno segun el criterio siguiente: // menor o igual a cero es el indice de la subestructura colindante 138 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 // mayor o igual a uno es el tipo de la condicion de contorno exterior almacenada // en la base de datos de cond contorno (fichero 4) pf3 = fopen(nombreFicheroContorno[i],"r"); int *indiceDat; indiceDat = new int[4]; //"indiceDat" va de cero a tres; almacena la informacion codificada de //la cond contorno. "indice" por contra va de 1 a 4 de forma que cuando //lo pongamos o lo pidamos habra que poner un numero entre 1 y 4. for(k=0; k<4;k++) { indiceDat[k] = int (0); fscanf(pf3,"%d",&(indiceDat[k])); } rewind( pf3 ); fclose( pf3 ); for(k=1; k<5;k++) { s[i]->ponIndice(k,indiceDat[k-1]); } //Comenzamos a asignar valores a tc, rc y xc.de acuerdo a //las cond contorno que se hayan leido for(int kk=0;kk<4;kk++) { s[i]->dameIndice(kk+1,indiceDat[kk]); //si es de temperatura o flujo (>=1) if (indiceDat[kk] > 0) { if (kk == 0) { //Abajo for(k=0;k<nxDat[i];k++) { tcc1[i][t][k] = float(tipoContorno[indiceDat[0]][1]+ 139 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 tipoContorno[indiceDat[0]][2]*t); rcc1[i][k] = float(tipoContorno[indiceDat[0]][3]); xcc1[i][k] = k*dx[i]; } s[i]->ponCondContorno(1,tcc1[i][t],rcc1[i],xcc1[i],t); } else if (kk == 1) { //Arriba for(k=0;k<nxDat[i];k++) { tcc2[i][t][k] = float(tipoContorno[indiceDat[1]][1]+ tipoContorno[indiceDat[1]][2]*t); rcc2[i][k] = float(tipoContorno[indiceDat[1]][3]); xcc2[i][k] = k*dx[i]; } s[i]->ponCondContorno(2,tcc2[i][t],rcc2[i],xcc2[i],t); } else if (kk == 2) { //Izda for(k=0;k<nyDat[i];k++) { tcc3[i][t][k] = float(tipoContorno[indiceDat[2]][1]+ tipoContorno[indiceDat[2]][2]*t); rcc3[i][k] = float(tipoContorno[indiceDat[2]][3]); xcc3[i][k] = k*dy[i]; } s[i]->ponCondContorno(3,tcc3[i][t],rcc3[i],xcc3[i],t); } else //kk == 3 { //Dcha for(k=0;k<nyDat[i];k++) { tcc4[i][t][k] = float(tipoContorno[indiceDat[3]][1]+ tipoContorno[indiceDat[3]][2]*t); 140 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 rcc4[i][k] = float(tipoContorno[indiceDat[3]][3]); xcc4[i][k] = k*dy[i]; } s[i]->ponCondContorno(4,tcc4[i][t],rcc4[i],xcc4[i],t); } } // se cierra el bucle if de temperaturas o flujos en el contorno //condicion de contorno de contacto (<=0) else { // nos aseguramos que es menor o igual de cero assert (indiceDat[kk]<1); //toca con la otra subestructura por abajo if(kk == 0) { p=abs(indiceDat[kk]); //primer paso PEDIR COND CONTORNO if(t==1) { s[i]->dameCondContorno(1,tcc2[p][t],rcc2[p],xcc2[p],0); } else { s[i]->dameCondContorno(1,tcc2[p][t],rcc2[p],xcc2[p],t-1); } //segundo paso INTERPOLAR s[i]->interpolador(xcc1[i],tcc1[i][t],nxDat[i], xcc2[abs(indiceDat[kk])],tcc2[abs(indiceDat[kk])][t], nxDat[abs(indiceDat[kk])]); //tercer paso PONER COND CONTORNO s[i]->ponCondContorno(1,tcc1[i][t],rcc1[i],xcc1[i],t); } //toca con la otra subestructura por arriba else if (kk == 1) { p=abs(indiceDat[kk]); 141 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //primer paso PEDIR COND CONTORNO if(t==1) { s[i]->dameCondContorno(2,tcc1[p][t],rcc1[p],xcc1[p],0); } else { s[i]->dameCondContorno(2,tcc1[p][t],rcc1[p],xcc1[p],t-1); } //segundo paso INTERPOLAR s[i]->interpolador(xcc2[i],tcc2[i][t],nxDat[i], xcc1[abs(indiceDat[kk])],tcc1[abs(indiceDat[kk])][t], nxDat[abs(indiceDat[kk])]); //tercer paso PONER COND CONTORNO s[i]->ponCondContorno(2,tcc2[i][t],rcc2[i],xcc2[i],t); } //toca con la otra subestructura por izqda else if (kk == 2) { p=abs(indiceDat[kk]); //primer paso PEDIR COND CONTORNO if(t==1) { s[i]->dameCondContorno(3,tcc4[p][t],rcc4[p],xcc4[p],0); } else { s[i]->dameCondContorno(3,tcc4[p][t],rcc4[p],xcc4[p],t-1); } //segundo paso INTERPOLAR s[i]->interpolador(xcc3[i],tcc3[i][t],nyDat[i], xcc4[abs(indiceDat[kk])],tcc4[abs(indiceDat[kk])][t], nyDat[abs(indiceDat[kk])]); //tercer paso PONER COND CONTORNO s[i]->ponCondContorno(3,tcc3[i][t],rcc3[i],xcc3[i],t); 142 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 } //kk==3 toca con la otra subestructura por derecha else { p=abs(indiceDat[kk]); //primer paso PEDIR COND CONTORNO if(t==1) { s[i]->dameCondContorno(4,tcc3[p][t],rcc3[p],xcc3[p],0); } else { s[i]->dameCondContorno(4,tcc3[p][t],rcc3[p],xcc3[p],t-1); } //segundo paso INTERPOLAR s[i]->interpolador(xcc4[i],tcc4[i][t],nyDat[i], xcc3[abs(indiceDat[kk])],tcc3[abs(indiceDat[kk])][t], nyDat[abs(indiceDat[kk])]); //tercer paso PONER COND CONTORNO s[i]->ponCondContorno(4,tcc4[i][t],rcc4[i],xcc4[i],t); } } }//fin del for kk (indice de las cond de contorno) //A continuacion se escribe la generacion en el paso de tiempo actual en gendat. for(j=0;j<nxDat[i]*nyDat[i];j++) { // como empieza en t=1 en el primer paso de tiempo la generacion //valdra A y se incrementara con B*t en pasos posteriores genDat[i][j] = a[i] + b[i] * (t); } //A continuacion se pone la generacion. s[i]->ponGeneracion(genDat[i],t); 143 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //Crear las matrices de la descripción interna de la subestructura s[i]->calcularMatrices2D(deltatDat,t); //Devuelve las matrices que dan el campo de temperaturas nodal en un instante en //función de los campos de temps de los instantes anteriores y de los contornos. s[i]->calcularMatricesTemperaturas(); //Devuelve las matrices del sistema s[i]->calcularMatricesMAVP(); //igualarTccTcontorno crea un vector Tcc que sí depende del tiempo, mientras que //Tcontorno no depende del tiempo, sólo ha sido cogido de los archivos de texto. if ( t == 1) { //para el primer paso de tiempo se toma t=0 porque en //t=1 no tenemos una estimacion de las temperaturas. s[i]->igualarTccTcontorno(0); } else { s[i]->igualarTccTcontorno(t); } //Calculamos las temperaturas Nodales. s[i]->calcularTnNod(t); s[i]->ponTGeneracion(genDat[i],t); //no se si falta aqui la siguiente funcion s[i]->resolverTcc(tcc_real[i],t); //Calculo final de las temperaturas y los flujos de calor. s[i]->calcularVp(t); s[i]->calcularQ(t); //Devuelve un vector de temperaturas por cada subestructura para poder //escribirla en los correspondientes archivos de resultados s[i]->devolverTnNod(temp[i],ntDat,nxDat[i]*nyDat[i]); s[i]->devolverq(fluq[i]); 144 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 }//fin del ns }//fin del ntDat //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Escribir en archivo de soluciones las temperaturas nodales for(i=0;i<ns;i++) { pf = fopen(resultadosNodos[i],"w"); fprintf(pf,"\nTemperaturas Nodales"); fprintf(pf,"\nNumerosubest = %d",i); fprintf(pf,"\n"); for(t=1;t<ntDat;t++) { fprintf(pf,"\ntDat = %d",t); fprintf(pf,"\n"); for(k=0;k<nyDat[i];k++) { fprintf(pf,"\n"); for(j=0;j<nxDat[i];j++) { fprintf(pf," %f",temp[i][t+ntDat*(k+nyDat[i]*j)]); } } fprintf(pf,"\n"); fprintf(pf,"\n"); } pff = fopen(resultadosContornos[i],"w"); fprintf(pff,"\nTemperaturas Contornos"); fprintf(pff,"\nNumerosubest = %d",i); fprintf(pff,"\n"); for(t=1;t<ntDat;t++) { fprintf(pff,"\ntDat = %d",t); fprintf(pff,"\n"); fprintf(pff,"\nabajo"); 145 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 for(j=0;j<nxDat[i];j++) fprintf(pff,"\n %d %f",j,tcc_real[i][t+ntDat*j]); fprintf(pff,"\narriba"); for(j=nxDat[i];j<(2*nxDat[i]);j++) fprintf(pff,"\n %d %f",j,tcc_real[i][t+ntDat*j]); fprintf(pff,"\nizquierda"); for(k=(2*nxDat[i]);k<(2*nxDat[i]+nyDat[i]);k++) fprintf(pff,"\n %d %f",k,tcc_real[i][t+ntDat*k]); fprintf(pff,"\nderecha"); for(k=(2*nxDat[i]+nyDat[i]);k<(2*nxDat[i]+2*nyDat[i]);k++) fprintf(pff,"\n %d %f",k,tcc_real[i][t+ntDat*k]); fprintf(pff,"\n"); fprintf(pff,"\n"); } FILE *pff; pfff = fopen(resultadosFlujos[i],"w"); fprintf(pfff,"\nFlujos Contornos"); fprintf(pfff,"\nNumerosubest = %d",i); fprintf(pfff,"\n"); for(t=1;t<ntDat;t++) { fprintf(pfff,"\ntDat = %d",t); fprintf(pfff,"\n"); fprintf(pfff,"\nabajo"); for(j=0;j<nxDat[i];j++) fprintf(pfff,"\n %d %f",j,fluq[i][t+ntDat*j]); fprintf(pfff,"\narriba"); for(j=nxDat[i];j<(2*nxDat[i]);j++) fprintf(pfff,"\n %d %f",j,fluq[i][t+ntDat*j]); fprintf(pfff,"\nizquierda"); for(k=(2*nxDat[i]);k<(2*nxDat[i]+nyDat[i]);k++) fprintf(pfff,"\n %d %f",k,fluq[i][t+ntDat*k]); fprintf(pfff,"\nderecha"); for(k=(2*nxDat[i]+nyDat[i]);k<(2*nxDat[i]+2*nyDat[i]);k++) fprintf(pfff,"\n %d %f",k,fluq[i][t+ntDat*k]); fprintf(pfff,"\n"); } 146 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 fclose(pfff); fclose(pf); fclose(pff); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Borramos memoria dinamica. for(p=0;p<ns;p++) { delete rcc1[p]; delete rcc2[p]; delete rcc3[p]; delete rcc4[p]; delete xcc1[p]; delete xcc2[p]; delete xcc3[p]; delete xcc4[p]; for(t=1;t<ntDat;t++) { delete tcc1[p][t]; delete tcc2[p][t]; delete tcc3[p][t]; delete tcc4[p][t]; } delete tcc1[p]; delete tcc2[p]; delete tcc3[p]; delete tcc4[p]; delete nombreFicheroContorno[p]; } delete[] rcc1; delete[] rcc2; delete[] rcc3; delete[] rcc4; delete[] xcc1; delete[] xcc2; delete[] xcc3; 147 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 delete[] xcc4; delete[] dx; delete[] dy; delete[] tcc1; delete[] tcc2; delete[] tcc3; delete[] tcc4; delete[] nombreFicheroContorno; for(p=0;p<ns;p++) { delete s[p]; delete temp[p]; delete genDat[p]; delete tcc_real[p]; delete fluq[p]; } delete[] s; delete[] temp; delete[] tcc_real; delete[] fluq; delete[] nxDat; delete[] nyDat; delete[] a; delete[] b; delete[] genDat; delete[] resultadosNodos; delete[] resultadosContornos; delete[] resultadosFlujos; delete[] caena; delete[] cadenab; delete[] cadenac; delete[] cadenad; delete[] cadena; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }//fin del main 148 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 6.5.- CRYOJAB-color Este programa se creó por la necesidad de tener un archivo especial que CRYOJAB necesitaba. Este archivo contiene los datos del tejido a estudiar, indicando posiciones, material de cada nodo, etc. en un código específico para que main.ccp lo pudiese leer. La primera intención fue realizar a mano este archivo, pero posteriormente se vio que tal tarea era ardua y llevaba demasiado tiempo. Por ejemplificarlo, si tenemos un tejido con 30x30 nodos, algo muy común, estamos hablando de 900 nodos. El tratamiento manual supondría realizar a mano las divisiones de los nodos, ir nodo por nodo viendo el color predominante en cada nodo e ir escribiendo el código específico de cada nodo en un archivo de texto. Se comprobó que tal tarea consumía un elevado tiempo. Así se gestó este programa, CRYOJAB-color, que hace todo de forma automática. Lo primero que hay que hacer es tomar la fotografía del tejido a estudiar en un formato BMP, y pixelizarla en el número de nodos que deseamos. A continuación se pasa a un código alfanumérico (C-source). En este código, cada color de cada píxel viene definido por tres números: intensidad de rojos, de verdes y de azules. CRYOJAB-color lee esta información y va recorriendo uno por uno los nodos o píxeles, y va discriminando estas intensidades según los colores que queramos distinguir. En nuestro caso, por ejemplo, nuestro objetivo es distinguir tres tipos de materiales (célula, tejido intercelular y capilares), que vienen dados en la fotografía por diferentes colores. Pues lo que se hace es programar CRYOJAB-color de tal forma que cogiendo la información “rojo-verde-azul” de cada nodo, identifique el color resultante en la fotografía, y clasifique todos los nodos 149 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 en tres clases, las tres clases de materiales. A continuación, crea una base de datos que posiciona a los nodos y a cada nodo lo hace corresponder con un código, según el color que tenía en la fotografía y, por tanto, según el material. El programa necesita algunos datos, que se dan a través de un archivo llamado datos, que contiene el número de subestructuras total, el número de subestructuras en cada dirección (no es igual 12 subestructuras dispuestas en 2x6 que en 3x4), y el número de nodos en cada dirección. El programa creará tantas bases de datos como subestructuras tengamos. Los nombres de estos ficheros de datos resultados serán fichero1_i, donde i representa el número de la subestructura. Así tendremos unos archivos con la descripción del tejido según los materiales y según los nodos y subestructuras que hallamos deseado. El diagrama de bloques y el código de este programa CRYOJAB-color se recogen a continuación: 150 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Abrir archivo de texto llamado datos Leer las variables de la geometría del problema. Mientras contador de nodos < número de nodos. Abrir archivo de texto pixel que contiene el código numérico de los colores de los nodos. Leer caracteres hasta el primer número. Inicio de secuencia de lectura de caracteres. Lectura de los colores y almacenar en tres vectores: rojo, azul y verde. No ¿El proceso se ha repetido para todos los nodos? Sí Según el valor de los números que definen los colores (intensidad de los colores), identificar cada nodo con un código del material. Almacenar los códigos de colores en tantos archivos de texto como subestructuras haya fichero1_i 151 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include "stdio.h" #include "stdlib.h" #include "math.h" #include "maths.h" #include "string.h" void main(void) { //Punteros de ficheros FILE *pf1pixel,*pfpixel,*pfdatos; int nsDat; int nxDat; int nyDat; int nx; int ny; int svert; int shor; char auxpixel; int ww; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Abrir ficheros y leer datos char * datos; datos = new char[200]; strcpy(datos,"datos.txt"); pfdatos = fopen(datos,"r"); fscanf(pfdatos,"%d",&nsDat); fscanf(pfdatos,"%d",&nxDat); fscanf(pfdatos,"%d",&nyDat); fscanf(pfdatos,"%d",&shor); fscanf(pfdatos,"%d",&svert); nx=nxDat/shor; ny=nyDat/svert; //Apertura de los ficheros char * pixel; pixel = new char[200]; strcpy(pixel,"pixel.txt"); 152 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 pf1pixel = fopen(pixel,"r"); //Lee hasta los datos de pixel while(auxpixel!='$') { fscanf(pf1pixel,"%c",&auxpixel); } //Leer el archivo de pixel int *rojo; rojo = new int [nxDat*nyDat]; int *verde; verde = new int [nxDat*nyDat]; int *azul; azul = new int [nxDat*nyDat]; int nopasanada; int contadorpixel; contadorpixel = int(0); int contadorbarras; contadorbarras = int(1); int contadornodos; contadornodos = int(0); char *pruebapixel; pruebapixel = new char [3]; while(contadornodos<nxDat*nyDat) { if(contadorbarras<4) { //primer posible numero: o es un número, o está mal(=error) fscanf(pf1pixel, "%c", &auxpixel); if(auxpixel=='0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9') { pruebapixel[0] = auxpixel; contadorpixel++; } else { printf("\nError en archivo: uno de los pixel no tiene código RGB"); exit(34); } 153 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 //segundo posible numero: puede ser un numero, o un signo, o una barra inversa fscanf(pf1pixel, "%c", &auxpixel); if(auxpixel=='0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9') { pruebapixel[1] = auxpixel; contadorpixel++; } else { while(auxpixel!='$') { fscanf(pf1pixel, "%c", &auxpixel); } } if(auxpixel=='$') { nopasanada = int(0); } else { //posible tercer numero fscanf(pf1pixel, "%c", &auxpixel); if(auxpixel=='0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9') { pruebapixel[2] = auxpixel; contadorpixel++; } else { while(auxpixel!='$') { fscanf(pf1pixel, "%c", &auxpixel); } } if(auxpixel!='$') { while(auxpixel!='$') { fscanf(pf1pixel, "%c", &auxpixel); } 154 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 } else { nopasanada = int(0); } } char *meterpixel; meterpixel= new char [contadorpixel]; for(ww=0;ww<contadorpixel;ww++) { meterpixel[ww]=pruebapixel[ww]; } if(contadorbarras==1) { rojo[contadornodos]=atoi(meterpixel); } else if(contadorbarras==2) { verde[contadornodos]=atoi(meterpixel); } else { azul[contadornodos]=atoi(meterpixel); } contadorbarras++; } else { contadorbarras=int(1); contadorpixel=int(0); } contadornodos++; printf("\ncontadornodos = %d : ", contadornodos); } int inicio; inicio=int(0); int qq; int colorrojo; int *verdadero; 155 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 verdadero = new int[nxDat*nyDat]; for(qq=0;qq<nxDat*nyDat;qq++) { colorrojo=rojo[qq]; if(colorrojo>350) { verdadero[qq]=int(1); } else if(colorrojo==0) { verdadero[qq]=int(2); } else { verdadero[qq]=int(0); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int puntshor, puntsvert,xx,yy; char ** pixelNodos; pixelNodos = new char *[nsDat]; char *cadete; cadete = new char [7]; for(yy=0;yy<nsDat;yy++) { pixelNodos[yy] = new char[200]; } for(xx=0;xx<nsDat;xx++) { strcpy(pixelNodos[xx],"fichero1"); sprintf(cadete,"_%d.txt",xx); strcat(pixelNodos[xx],cadete); } for(puntsvert=0;puntsvert<svert;puntsvert++) { for(puntshor=0;puntshor<shor;puntshor++) { pfpixel = fopen(pixelNodos[puntshor+puntsvert*shor],"w"); for(xx=0;xx<nx;xx++) 156 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 { for(yy=ny-1;yy>(-1);yy--) { fprintf(pfpixel,"%d %d %d",xx,ny-1-yy, verdadero[((xx +puntshor*nx)+yy*(shor*nx)) +puntsvert*ny]); fprintf(pfpixel,"\n"); } } } } fclose(pfpixel); fclose(pf1pixel); } 157 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 7.- EJEMPLO Y RESULTADOS 7.1.- EJEMPLO Tenemos la siguiente fotografía de un miocardio, y deseamos conocer su campo de temperaturas: Lo primero que hay que hacer es tratar la fotografía digitalmente. Para ello, se pone el tamaño deseado de píxel, y se hace una serie de contrastes y modificaciones de color hasta conseguir unas fotografías parecidas a las siguientes: 158 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 De esta forma, una vez tratada la fotografía, tendremos los colores de los materiales bien diferenciados. Ahora ponemos el tamaño y número de píxel que nos interesa, y esa será nuestra discretización. En nuestro caso, hemos cogido 36 píxeles a lo ancho por 48 a lo alto; y hemos subdividido el tejido en 12 subestructuras. Por tanto, habrá 12 subestructuras (3 a lo ancho por 4 en altura) con 12x12 nodos cada una. El tamaño de los nodos sale 5.7x5.7 micras (se obtiene con la escala de la fotografía inicial). 159 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 A continuación debemos ejecutar el programa CRYOJAB-color, que identifica los colores de la fotografía y asigna cada color con un código según el tipo de material que existe. El código de CRYOJAB-color se ha descrito en el apartado anterior. Como se ha explicado con anterioridad, el programa creará tantas bases de datos como subestructuras tengamos. El nombre de estos ficheros de datos será fichero1_i, donde i representa el número de la subestructura. CRYOJAB-color utiliza los siguientes archivos: ? datos: nos indica el número de subestructuras, el número total de nodos en horizontal, el número total de nodos en vertical, el número de subestructuras en horizontal y el número de subestructuras en vertical. 160 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ? pixel: es un archivo generado de forma automática al pasar de BMP a csource (la foto pixelizada debe tener extensión BMP, en nuestro caso "pixel.bmp"). Se ha usado el programa GIMP para hacer este cambio, aunque cualquier programa con herramientas gráficas trae esta forma de archivar la foto (archivar como c-source). Así se obtiene el archivo "pixel.c".Originalmente, entre número de color y número de color traía una bara invertida \ pero se ha cambiado a $ para evitar errores en el programa en C++. Esto hay que hacerlo en el archivo de texto. Así obtendremos el archivo necesario "pixel.txt". Se muestran los archivos pixel.c original y pixel.txt con la modificación. 161 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Cuando ya tenemos la base de datos que CRYOJAB-color calcula, fichero1_i, tenemos que introducir otras variables en otros ficheros que también lo utilizará CRYOJAB. Estos ficheros son: ? Fichero0_i: Hay un fichero por cada subestructura. Se introduce el número de nodos en dirección x e y en dicha subestructura. Además se introduce la longitud de la subestructura i en cada dirección. Por último, se introduce la temperatura inicial en esa subestructura. 162 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ? Fichero1_i: Proviene de CRYOJAB-color, y nos da el tipo de material que hay en cada nodo. Viene expresado como: x y caso, 0 es célula, 1 es tejido intercelular, y 2 capilar. 163 tipo_material. En nuestro Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ? Fichero2: se introduce el número de materiales distintos que tenemos. Además aquí es donde se introduce las constantes de los materiales: conductividad térmica, densidad, capacidad calorífica, y velocidad. El valor de la velocidad será tan sólo 0 ó 1, depende si es un capilar o no (así se reconocerá la existencia de generación) ? Fichero3_i: hay tantos ficheros3 como subestructuras, y aquí se asigna un código dependiendo de la posición de las subestructuras. Cada fichero está integrado por 4 números. El primer número nos indica qué tiene la subestructura i debajo de ella. Si el número es 0 ó menor que cero, significará que por abajo está en contacto con la subestructura que indique el número en sí. 164 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Si es positivo, indica que por abajo tiene una condición de contorno, y el tipo de condición de contorno que es. Por ejemplo, si el número es –3, significa que está tocando por abajo con la subestructura 3. Si el número es 2, significa que tiene abajo la condición de contorno número 2. El segundo, tercer y cuarto número es el código para los contornos de arriba, izquierda y derecha respectivamente. ? Fichero4: Nos indica el número de condiciones de contorno que existen. A continuación se exponen las condiciones de contorno con tres valores: a, b y r. Los valores a y b representan la temperatura en el contorno según T = a + b · tpo, de forma que se puede aproximar a una función lineal. Para temperaturas 165 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 constantes en el contorno, b=0. El valor r es la resistencia térmica equivalente en el contorno. Para el caso adiabático (simetría), r>10000000000; y para temperatura impuesta, r=0. ? Fichero5: es el archivo de generación. Da el valor según una ecuación lineal del tipo: G=M+N·tpo, y se introduce todas las M y N de cada subestructura. En nuestro caso, pondremos M=36 (igual a la temperatura inicial), y N=-0.1 (va bajando 0.1 ºC por segundo). 166 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ? Fichero6: en este fichero figuran dos datos. El primero indica el número de subestructuras que existen. El segundo el número de pasos de tiempo (segundos) que queremos. 167 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 En el directorio del programa CRYOJAB se adjunta el archivo leeme, que contiene estas mismas instrucciones para rellenar los archivos de texto. Asímismo, en el directorio del programa CRYOJAB-color existe un archivo llamado leeme pixel que contiene las instrucciones para este último programa. En nuestro ejemplo tendremos los siguientes datos: Temperatura inicial = 36 ºC. Número de materiales diferentes = 3. Características de los materiales: Materiales Célula Propiedades Tejido Capilar/crio- interconect protector Conductividad térmica 0.533 0.570 0.627 Densidad 1100 1050 1000 Capacidad Calorífica 3712 3920 4180 0 0 1 Velocidad (existencia de generación) [Holmes, 1998] Número de condiciones de contorno = 1 Resistencia = 10000000000, Temperatura = 0. Generación à G = 36 – 0.1 · tpo. 168 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Número de subestructuras = 12, con 12x12 nodos cada una (1728 nodos en total), con un tamaño de 5.7x5.7 µm cada nodo. Un número excesivo de subestructuras hace aumentar el número de ecuaciones a resolver (al subestructurar hay que hacer más cálculos, pero son más simples). Pero un número bajo de subestructuras hace que las matrices sean excesivamente grandes. Ambos extremos ralentizan el proceso. Se escoge un número de subestructuras intermedio. Número de pasos de tiempo = 460, de forma que llegaremos hasta los –10 ºC. 7.2.- RESULTADOS A continuación se adjunta el resultado para dos subestructuras de las estudiadas. Se expone los resultados en un tiempo intermedio y en el tiempo final, tanto de forma tabulada (temperaturas en cada uno de los 12x12 nodos de la subestructura) como de forma gráfica (en 3D y 2D). Subestructura 0: Tiempo intermedio 240 (temperatura de los capilares = 12ºC). 16.275595 16.277452 16.280005 16.282385 16.284132 16.285887 16.292410 16.302195 16.313761 16.320898 16.314314 16.269171 16.124126 16.129362 16.135273 16.140278 16.143093 16.146341 16.158033 16.178455 16.207750 16.236263 16.244530 16.213558 15.924336 15.931147 15.940431 15.947388 15.947513 15.945936 15.957738 15.992977 16.053421 16.116806 16.158680 16.165482 15.692956 15.696653 15.707269 15.712367 15.701120 15.683700 15.686947 15.741803 15.846885 15.963713 16.057631 16.114273 15.466080 15.461816 15.467748 15.460099 15.420944 15.371313 15.357220 15.433832 15.591463 15.782889 15.945976 16.060144 15.304649 12.000000 15.282423 15.237932 15.148757 15.046652 15.014540 15.110145 15.326020 15.598825 15.837038 16.009012 15.252445 15.233452 15.189642 15.100821 14.956661 14.807266 12.000000 12.000000 15.131409 15.458759 15.757440 15.973503 15.290478 15.259645 15.192436 15.074651 14.901855 12.000000 12.000000 12.000000 15.083077 15.419949 15.730960 15.960236 15.366531 15.332246 15.260198 15.143492 14.989365 14.849314 14.816073 14.934569 15.178082 15.480882 15.758256 15.967937 15.441752 15.410004 15.347183 15.253607 15.142138 15.049987 15.039263 15.141487 15.342701 15.587872 15.811371 15.989007 15.498120 15.471237 15.420331 15.352004 15.278629 15.228396 15.238720 15.329643 15.490690 15.680530 15.858181 16.009861 15.528006 15.504770 15.461679 15.407430 15.354695 15.326059 15.347210 15.431293 15.569894 15.730865 15.885927 16.022249 169 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 170 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Subestructura 0: Tiempo final 460 (temperatura de los capilares = -10ºC) -5.718022 -5.716135 -5.713587 -5.711209 -5.709463 -5.707706 -5.701127 -5.691319 -5.679685 -5.672526 -5.679094 -5.724344 -5.869843 -5.864575 -5.858679 -5.853630 -5.850818 -5.847536 -5.835769 -5.815258 -5.785886 -5.757311 -5.749030 -5.780061 -6.070066 -6.063215 -6.053906 -6.046871 -6.046700 -6.048244 -6.036368 -6.001035 -5.940473 -5.876973 -5.835013 -5.828235 -6.301781 -6.298090 -6.287447 -6.282260 -6.293500 -6.310889 -6.307556 -6.252567 -6.147321 -6.030261 -5.936225 -5.879521 -6.529034 -6.533305 -6.527262 -6.534895 -6.574048 -6.623703 -6.637760 -6.560980 -6.403066 -6.211366 -6.048021 -5.933743 -6.690659 -10.000001 -6.712824 -6.757288 -6.846634 -6.948800 -6.980937 -6.885126 -6.668926 -6.395692 -6.157168 -5.984949 -6.742814 -6.761772 -6.805588 -6.894536 -7.038939 -7.188509 -10.000001 -10.000001 -6.863827 -6.535994 -6.236897 -6.020509 -6.704630 -6.735432 -6.802724 -6.920679 -7.093753 -10.000001 -10.000001 -10.000001 -6.912278 -6.574863 -6.263407 -6.033809 -6.628358 -6.662718 -6.734837 -6.851711 -7.006061 -7.146332 -7.179638 -7.060991 -6.817111 -6.513841 -6.236085 -6.026120 -6.552877 -6.584702 -6.647607 -6.741344 -6.852975 -6.945312 -6.956070 -6.853709 -6.652228 -6.406713 -6.182908 -6.005002 -6.496297 -6.523244 -6.574244 -6.642693 -6.716178 -6.766531 -6.756252 -6.665251 -6.503978 -6.313900 -6.136018 -5.984117 -6.466268 -6.489567 -6.532744 -6.587134 -6.640023 -6.668706 -6.647572 -6.563396 -6.424636 -6.263468 -6.108226 -5.971705 171 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Subestructura 8: Tiempo intermedio 240 (temperatura de los capilares = 12ºC) 14.114336 14.029253 12.000000 12.000000 13.925864 13.932093 13.930257 13.916011 12.000000 13.907186 13.918206 13.925699 14.138333 14.025355 13.922760 13.857811 13.838915 13.846805 13.847646 13.830594 12.000000 13.810841 13.815873 13.818656 14.153312 14.035108 13.911157 13.824091 13.791295 13.797091 13.804477 13.794333 13.775928 13.759735 13.745421 13.732889 14.171614 14.062742 13.935186 12.000000 12.000000 13.785443 13.794295 13.791860 13.775039 13.748901 13.716512 12.000000 14.195529 14.107654 13.993887 13.889026 13.826015 13.802809 13.799424 13.796687 13.784379 13.759269 13.725059 13.698232 14.219944 14.157560 14.063330 13.962749 13.879902 13.825244 13.795862 13.784726 13.777884 13.763054 13.740502 13.722436 14.239871 14.197339 14.119894 14.022054 13.920474 13.831685 13.773073 13.750783 13.746202 13.741218 13.732423 13.725616 14.251993 14.221966 14.155280 14.059286 13.945014 13.831725 12.000000 13.715716 13.703575 13.698453 13.696068 13.696870 14.254661 14.230385 14.171877 14.082117 13.969732 13.853499 12.000000 13.711186 13.682290 13.665253 13.659474 13.661974 14.244936 14.219986 14.169981 14.096024 14.001745 13.900444 13.813839 13.754367 13.710429 12.000000 12.000000 13.667951 14.213894 14.181426 14.140545 14.087250 14.022228 13.950840 13.885502 13.832953 13.788212 13.754120 13.738552 13.738852 14.138074 14.098083 14.070511 14.041923 14.009352 13.973052 13.938567 13.908423 13.880869 13.858712 13.848879 13.849201 172 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 173 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Subestructura 8: Tiempo final 460 (temperatura de los capilares = -10ºC) -7.886664 -7.971683 -10.000001 -10.000001 -8.075027 -8.068810 -8.070639 -8.084871 -10.000001 -8.093742 -8.082724 -8.075235 -7.862653 -7.975576 -8.078146 -8.143059 -8.161979 -8.154081 -8.153247 -8.170276 -10.000001 -8.190085 -8.185077 -8.182298 -7.847695 -7.965844 -8.089731 -8.176789 -8.209577 -8.203818 -8.196405 -8.206581 -8.225018 -8.241236 -8.255527 -8.268063 -7.829381 -7.938235 -8.065772 -10.000001 -10.000001 -8.215455 -8.206658 -8.209092 -8.225944 -8.252080 -8.284488 -10.000001 -7.805507 -7.893368 -8.007134 -8.111960 -8.174951 -8.198184 -8.201567 -8.204339 -8.216694 -8.241755 -8.276023 -8.302862 -7.781114 -7.843513 -7.937756 -8.038304 -8.121128 -8.175795 -8.205172 -8.216341 -8.223181 -8.238063 -8.260656 -8.278704 -7.761175 -7.803761 -7.881225 -7.979001 -8.080570 -8.169353 -8.227944 -8.250234 -8.254904 -8.259895 -8.268694 -8.275499 -7.749061 -7.779121 -7.845789 -7.941793 -8.056016 -8.169308 -10.000001 -8.285316 -8.297433 -8.302601 -8.304999 -8.304219 -7.746382 -7.770668 -7.829200 -7.918933 -8.031326 -8.147520 -10.000001 -8.289782 -8.318760 -8.335692 -8.341528 -8.339046 -7.756098 -7.781058 -7.831053 -7.905023 -7.999249 -8.100563 -8.187138 -8.246633 -8.290562 -10.000001 -10.000001 -8.333060 -7.787136 -7.819593 -7.860504 -7.913769 -7.978789 -8.050181 -8.115512 -8.168045 -8.212811 -8.246856 -8.262423 -8.262135 -7.862956 -7.902925 -7.930501 -7.959093 -7.991661 -8.027957 -8.062431 -8.092593 -8.120119 -8.142289 -8.152108 -8.151786 174 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 7.3.- CONCLUSIONES En este Proyecto Fin de Carrera se ha mostrado una nueva herramienta para simular un enfriamiento de un tejido vivo. En muchos aspectos, ha sido una investigación novedosa. Así, por ejemplo, se ha hecho el estudio a nivel celular con una resolución extremadamente pequeña (5,7 micras). Esto implica un bajo error debido a la modelización y al cálculo. Además las temperaturas se han calculado utilizando pasos de tiempo de 1 segundo, lo que nos lleva a un grado de precisión realmente alto. 175 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Gracias a este programa informático podemos tener una base de datos en cada instante de todas las temperaturas. En el ejemplo anterior, de una fotografía y unas características del tejido se han calculado más de 3 millones de temperaturas en más de 1700 nodos, y todo eso en una superficie de 205x274 micras, unos 56 mm2 (¡no llega ni a 1 mm de lado!). Para ello, se han empleado 8 horas en un PC K7 AMD-1400. Personalmente, este proyecto me ha abierto una puerta a la biomedicina y la biotecnología, un mundo con un futuro prometedor por delante. Además me ha servido para perfeccionar mis conocimientos en programación C++ y Matlab, así como establecer unos modelos de estado y de subestructuración en torno a la transferencia de frío/calor. Sin duda este Proyecto ha sido fruto de todo un año de trabajo personal, pero no quiero terminar sin agradecer las horas dedicadas de Antonio Blanco, José Manuel Salmerón, Servando Álvarez y todo el departamento de Termotecnia. Y por supuesto agradecer el trabajo dedicado y la confianza depositada en mí de mi tutor Ramón Risco. Al departamento de Física Aplicada III, y al grupo de investigación CryoBioTech por todos los martes de conferencias y charlas que han aumentado mi interés por estos temas de preservación de órganos, gracias. 176 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 177 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Anexo 1: DATOS SOBRE TRASPLANTES DE ÓRGANOS: SITUACIÓN ACTUAL El trasplante de órgano sigue siendo considerad como la técnica idónea en estadios finales de muchas patologías. Para poder evaluar el contexto presente en el que ser desarrolla nuestro trabajo, que se traduce en una imperiosa necesidad de optimizar el protocolo de trasplante a través de mejoras del almacenamiento en frío en isquemia, mostramos los importantes datos que se relacionan a continuación. La conclusión que se puede extraer de ellos es doble. Por una parte, la ventajosa situación de nuestro país en el ámbito asistencial en esta materia. Por otra, la necesidad de impulsar la investigación aplicada a la conservación de órganos en frío para trasplantes, que supondría una importante reducción de los costes de los mismos, lo que junto con el elevado número de éstos que se realiza cada día se traduce inmediatamente en un ahorro considerable. Antes de exponer estos datos, sirvan estas líneas para agradecer la labor de los profesionales, que han conseguido dotarnos de un sistema de salud pública envidiable. Hemos de tener en cuenta que por término medio el proceso de donación y trasplante se desarrolla a lo largo de más de 12 horas, durante las cuales es necesario coordinar a unos 100 profesionales sanitarios y no sanitarios. Las tareas de coordinación, llevadas a cabo en los tres niveles (nacional, autonómico y hospitalario), se sustentan básicamente en la actividad de los 233 profesionales de la coordinación hospitalaria, que forman los 139 178 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 equipos. Dichos equipos de coordinación, autorizados oficialmente, aprovechan al 100% los medios y recursos disponibles. Durante el año 2000 en España se registraron un total de 1345 donaciones efectivas, lo que en términos reales significa la estabilización de las tasas de donación en nuestro país alcanzando las 33.9 donaciones por millón de población. Ello ha supuesto la constatación de que el sistema de donación y trasplantes español se consolida en unas cifras elevadas de actividad. Dicha actividad confirma que nuestro país sigue a la cabeza en donaciones y por tanto en trasplantes. Este número de donaciones se ha seguido de una importante actividad de trasplantes. Dicha actividad, en algunos casos permanece estable como es el trasplante hepático, se incrementa el trasplante cardíaco (+5%) y el pulmonar (+2%), o decrece, dentro de un punto de estabilización, el trasplante renal (-4%). En el caso del páncreas el incremento fue muy notable (+90%). 1996 1997 1998 1999 2000 Incremento 1999-2000 Donantes 1.032 1.155 1.250 1.334 1.345 0,8% Trasplante Renal 1707 1.861 1.995 2.023 1937 -4,2% Tx Hepático 700 790 899 960 954 -0,6% Tx Cardiaco 282 318 349 336 353 5% Tx Pulmonar 76 108 128 135 138 2,2% Tx Pancreático 24 27 28 25 48 92% Cuadro 1: Actividad Trasplantadora (datos destacables) 179 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Centros Los centros que más trasplantes renales realizaron fueron el Hospital Clinic i Provincial de Barcelona (126) y el Hospital 12 de Octubre de Madrid (123); más trasplantes hepáticos se llevaron a cabo en el Hospital La Fe de Valencia (112) y el Hospital Clinic (74); más trasplantes cardíacos se realizaron en el Hospital Juan Canalejo de A Coruña (46) y el Hospital La Fe de Valencia (43). No obstante, teniendo en cuenta la actividad conjunta de los trasplantes renales pediátricos y adultos, el centro con más trasplantes ha sido el hospital de Cruces de Bilbao (129). El Hospital Vall d´Hebrón de Barcelona (31) y el Hospital la Fe de Valencia (30) han sido los centros más activos en trasplante pulmonar. En cuanto a los 48 trasplantes pancreáticos, la mayoría de los trasplantes reno-pancreáticos, casi el 50% (21) fueron intervenidos en el Hospital Clinic i Provincial de Barcelona. El Hospital La Paz realizó el segundo implante intestinal que fue un trasplante combinado hígado-intestino. Trasplantes pediátricos En el pasado año, en niños, se registraron 55 implantes renales, 58 implantes hepáticos, 14 cardiacos, 5 pulmonares y 1 intestinal. Se hicieron diferentes trasplantes múltiples; 14 hepato-renales, 4 hepato-pancreáticos, 5 de corazón-pulmón, 7 cardio-renales y por primera vez un hepático-intestino y un hígado-corazón. 180 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Comunidades autónomas La Comunidad Autónoma que más donantes registró en términos absolutos fue Cataluña, aunque en términos relativos, fueron Cantabria y el País Vasco las más activas, con más de 50 donaciones por millón de población. Listas de espera Aumentan las listas de espera de trasplante hepático y renal de forma imparable; por tanto es necesario un esfuerzo mayor. El pasado año ha aumentado notablemente el número de trasplantes hepáticos de donante vivo (10) así como la posibilidad de utilizar un donante para dos receptores (13), pero aunque esto sea así, es necesario apelar a la concienciación del ciudadano y seguir insistiendo en que sin esas generosas donaciones no se puede hacer frente a las necesidades creadas. Además hay que recordar que las negativas familiares siguen por encima del 20%. En la siguiente tabla se muestran los trasplantes en Europa y Australia en 1998 (datos disponibles). 181 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ORGANIZACIONES ET E.F.G. H.T.S Población (x 10 6 ) 4,7 10,3 113,4 58,8 10 10,3 58 39,66 Nº de donantes 22 198 1636 993 57 126 707 1250 PMP 4,7 19,2 14,4 5,7 12,2 12,3 31,5 %Donantes multiorgánicos 0,5 57% 69% 68.4% 12.7% 79.1% Nº de trasplantes 41 renales de cadáver 359 2832 1812 87 233 1162 8,7 34,9 25,0 30,8 8,7 22,6 20,2 7 523 73 82 8 79 Nº de trasplantes 13 renales de vivo. ITALI O.N.T. CROAC R.CHECA 16,9 HUNGR I.S.S. Países PMP FRANC GRECIA HU.T ESPAÑA 84.5% 1976 49,8 19 PMP 2,8 0,7 4,6 1,2 8,2 0,8 1,4 Trasplantes hepáticos (**) 2 66 1071 693 18 19 549 PMP 0,4 6,4 9,4 11,8 1,8 1,8 9,5 22,7 Traspl. Cardiacos 9 55 759 369 13 5 336 342 PMP ( * ) 1,9 5,3 6,9 6,7 1,3 0,5 5,9 8,8 Trasplantes corazón –pulmón 20 26 PMP 0.2 0.4 2 0,5 899 7 0.1 Trasplantes Uni/bipulmonare 8 228 88 65 PMP ( * ) 0,8 2,2 1,9 1,2 3,2 Trasplantes páncreas 21 258 47 2 52 28 PMP 2.0 2.2 0.8 0.2 0.9 0.7 Traspl. intestinales 9 PMP 0,2 EFG : Asociación Francesa de órganos ISS : Instituto Superior de Sanidad. ET: EUROTRANSPLANT: Alemania, Austria, Bélgica, Luxemburgo y Holanda 182 26+95 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 ORGANIZACIÓN O.P.T. P.T SW.T UKTSSA Países PORTUG POLON ESLOVEN ESLOVAQ SUIZA ING+IRL AUSTRA Población (x 10 6 ) 9,96 38,64 2 5,36 23,99 7 62,71 18,75 Nº de donantes 166 289 27 83 358 108 846 196 PMP 16,7 7,5 13,5 15,5 14,9 15,4 13,5 10,5 %Donantes multiorgánicos 78.3% 46.7% 85% 34% 65.6% 76.85% 83.2% 77% Nº de trasplantes renales de cadáver 305 534 46 145 650 193 1526 358 30,6 13,8 23,0 27,1 27,1 27,6 24,3 19,1 9 1 3 242 68 241 144 0,6 10,1 9,7 3,8 7,7 PMP Nº de trasplantes 5 renales de vivo. SK.T. PMP 0,5 0,2 0,5 Trasplantes hepáticos (**) 134 27 4 193 77 690 154 PMP 13,5 0,7 2,0 8,0 11,0 11,0 8,2 Traspl. cardiacos 7 123 10 114 44 281 72 PMP ( * ) 0,7 3,2 1,9 4,9 6,3 5,5 4,1 Trasplantes corazón -pulmón 4 62 4 PMP 0.1 0.8 0.2 Trasplantes Uni/bipulmonares 57+22 3+27 48+36 34+49 PMP ( * ) 3,5 4,3 2,3 4,6 Traspl. páncreas 5 15 4 29 18 PMP 0.1 0.6 0.5 0.5 0.96 Traspl. intestinales 1 PMP 1 0,1 0,1 ( * ) Incluidos trasplantes de Corazón- Pulmón ( ** ) Incluidos donantes de vivos SK.T : SCANDIATRANSPLANT: Dinamarca, Finlandia, Noruega y Suecia 183 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Anexo 2: PRINCIPIOS FÍSICO-QUÍMICOS DE LA PRESERVACIÓN EN FRÍO 1.- INTRODUCCIÓN La preservación en frío se basa en el hecho de que las reacciones químicas (metabólicas) ocurren más lentamente a medida que desciende la temperatura. Según esto, a temperaturas por debajo de –140 ºC toda actividad biológica se detiene. Sin embargo, también ocurre que antes de llegar a estas temperaturas la muestra en cuestión es incapaz de resistir el proceso de enfriamiento y muere. Desde que se iniciaran hace 50 años los primeros experimentos de preservación en frío se ha avanzado mucho en el conocimiento de los procesos que tienen lugar cuando se enfría una muestra biológica en lo tocante a preservación de células aisladas (no tejidos ni órganos), sobre todo en células reproductoras. Esto ha permitido diseñar estrategias de conservación sin que por ello el frío resulte particularmente dañino. Estas estrategias están basadas en la adición de agentes protectores (frente al frío), y en la optimización de las velocidades de enfriamiento y recalentamiento. A groso modo, la explicación última de los procesos físico-químicos que tienen lugar en una célula cuando se enfrían se basa en la llamada hipótesis de los dos factores, desarrollada en 1963 por Peter Mazur [P. Mazur, 1963] y que esbozaremos seguidamente. 184 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Una célula, a efectos de lo que ahora nos ocupa, es básicamente un pequeño saco que encierra una disolución de agua y sales. El “material” del que está hecho este “saco” es lo que se llama una membrana semipermeable, un tejido especial que sólo deja pasar el agua a través de él pero no las sales que tiene disueltas, de ahí su nombre. Por ello, cuando el agua sale o entra en la célula la concentración de las sales disueltas aumenta o disminuye. Bastan dos principios físicos para explicar lo que le ocurre a la célula mientras se enfría: el principio de ósmosis y el principio de descenso del punto de congelación. El principio de ósmosis nos dice que cuando tenemos un saco (célula) semipermeable de este tipo sumergido en otra disolución salina, entonces el agua empieza a fluir en un sentido tal que tiende a igualar las concentraciones de las disoluciones. O sea, si sumergimos la célula en una disolución de sales más concentrada que el interior celular, entonces el agua (y sólo el agua) sale de la célula; esta, por lo tanto, se encoge y reduce de volumen. Si, por el contrario, sumergimos la célula en una disolución más diluida que el interior celular, entonces empezará a entrar agua dentro de la célula intentando diluir también la disolución salina de su interior; el resultado es que la célula se hincha. El principio de descenso del punto de congelación nos dice que si tenemos agua pura y disolvemos sal en ella, entonces el agua no se congelará a 0º C, sino por debajo de esta temperatura; a una temperatura tanto más baja cuanto más sal hayamos disuelto en ella. Un ejemplo de este fenómeno, por todos conocido, es el que se produce cuando evitamos el deterioro del radiador de nuestro automóvil al añadirle anticongelante. 185 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Cuando tenemos un conjunto de células que queremos conservar en frío, inicialmente las células se tienen sumergidas dentro de un recipiente que contiene una solución salina isotónica, es decir, con la misma concentración que el interior celular. Cuando se empieza a enfriar este preparado, el frío alcanza antes la solución exterior que el interior celular. Esto trae como consecuencia que se empiece a formar hielo en el medio extracelular cuando aún no se ha formado hielo dentro de la célula. A medida que se forma el hielo extracelular el agua líquida va desapareciendo (¡va convirtiéndose en hielo!). Al disminuir la cantidad de agua exterior, en base al principio de ósmosis antes enunciado, empezará a salir agua de la célula para compensar la posible diferencia entre las concentraciones intra y extracelulares. Al salir agua de la célula, la sal que estaba disuelta en su interior empezará a estar más concentrada: tanto más concentrada cuanto más agua salga. Y es aquí cuando interviene el segundo principio, el principio de descenso del punto de congelación. Y es que al estar más concentrada la disolución salina intracelular, la temperatura a la que se formará hielo desciende: será más difícil que el agua de dentro de la célula se congele y dañe sus estructuras. Así, mientras enfriemos poco a poco, el proceso continuará indefinidamente: crecerá el hielo extracelular, saldrá agua de la célula para compensar las concentraciones salinas dentro y fuera, se concentrará la sal dentro de la célula y descenderá aún más la temperatura necesaria para que se forme hielo dentro. Por ello, con una velocidad de enfriamiento suficientemente lenta podemos evitar por completo la formación del dañino hielo intracelular. 186 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 La no formación de hielo mediante este procedimiento no es sinónimo de supervivencia celular. Y es que aunque no se forme hielo aparecen dos nuevos factores que dañan gravemente a la célula. Por una parte está el hecho de que en cierto instante la concentración de sales dentro de la célula llega a ser tan alta que resulta muy tóxica. Por otra parte, al salir tanta agua de la célula su volumen disminuye peligrosamente, produciendo deformaciones estructurales irreversibles. Estos dos factores son tanto o más perjudiciales que la formación de hielo intracelular. En la Fig. 1 se muestra de forma esquemática los tipos de daños según la velocidad de enfriamiento. Por ello, en los protocolos de preservación de células aisladas hay que enfriar a una velocidad que sea lo suficientemente lenta como para evitar en lo posible la formación de hielo intracelular, pero a su vez, lo suficientemente rápida como para no producir una deshidratación excesiva que conlleve una destrucción irreversible de la estructura celular. Esto da lugar a que cuando representamos el porcentaje de células que sobreviven a un proceso de preservación en frío en función de la velocidad de enfriamiento sea típicamente el de una U invertida, tal como se muestra en la Fig. 2. 187 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 - 10 º C - 2º C - 5º C ENFRIAMIENTO LENTO ENFRIAMIENTO RÁPIDO ENFRIAMIENTO MUY RÁPIDO Fig. 1. La formación de hielo comienza en el exterior celular (de –2º C a –5º C). Tras ello, dependiendo de la velocidad de enfriamiento, se pueden producir distintos resultados. A) Si el proceso de enfriamiento es suficientemente lento, entonces NO se forma hielo dentro de la célula. Sin embargo las causas de la muerte celular vienen provocadas por una excesiva deshidratación de esta, que da lugar a una reducción de su volumen (en algunos casos irreversible). B) Si se enfría a una velocidad intermedia entonces sí se produce hielo intracelular, ya que la célula no se deshidrata suficientemente y por tanto el descenso del punto de congelación no llega a ser suficiente. C) Cuando se enfría a velocidades muy altas se produce vitrificación. 188 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 100% Células ovario Polen Glóbulos rojos 75% 50% Embriones ratón 25% 0% 1º C/min 10º C/min 100º C/min 1000ºC/min C/min Figura 2. Supervivencia de los distintos tipos de células en función de la velocidad de enfriamiento. Se observa el típico comportamiento de U invertida en todas ellas. Como se explica en el texto, esto es debido a la llamada hipótesis de los dos factores (toxicidad-sobreenfriamiento) que hacen que sea necesario un compromiso entre la temperatura y la concentración de crioprotector. Por último, y como hablamos al principio, hemos de aclarar que aunque la mayoría de los experimentos se han hecho en el régimen de velocidades de enfriamiento antes señalado, a veces existe la posibilidad de velocidades de enfriamiento de decenas de miles de grados por segundo. Estas velocidades tan altas consiguen la vitrificación, lo que conlleva la no formación de hielo a la vez que la no deshidratación celular. Aun cuando 189 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 esta técnica no es en principio aplicable a un órgano (dada la conductividad térmica finita de éste), sí que ha podido ser implementada en unos casos muy concretos, comprobándose la validez de dicha hipótesis. En la Fig. 3 se muestra cómo a velocidades de enfriamiento del orden de 50.000 ºC/min se recobra de nuevo un alto porcentaje de supervivencia celular. 80 70 60 50 40 30 20 10 -6 -12 0 -18 0 -25 0 -27 0 -65 0 -70 0 -18 00 -40 00 -50 00 -60 0 -15 0 00 -30 0 00 0 0 -5 supervivencia % 100 90 velocidad de enfriamiento (°C/min) Figura 3. Resultados la supervivencia de S. Cerevisiae en función de las distintas velocidades de enriamiento. Se observa como, para muy altas velocidades es posible llegar a impedir la formación de hielo mediante vitrificación. 190 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Comprendidos, al menos cualitativamente, los mecanismos que acompañan el enfriamiento de una célula, el siguiente reto es intentar aprovechar este conocimiento para diseñar estrategias de conservación que eviten la formación de hielo, y la toxicidad y las deformaciones extremas. Las estrategias diseñadas hasta la fecha y que han dado muy buen resultado en ciertos casos notables (óvulos, esperma, piel, huesos, etc...) se basan en la adición de crioprotectores (anticongelantes). Su función es doble. Por un lado al ser añadidos a la célula hacen que la solución interior esté más concentrada y por tanto sea más difícil de congelar (principio de descenso del punto de congelación). Por otro lado, las sales intracelulares no estarán tan concentradas, ya que ahora, además de estas, tendremos anticongelantes disueltos y por tanto las concentraciones salinas no llegan a niveles tan tóxicos como si estos anticongelantes no estuvieran presentes. El éxito del proceso de preservación en frío depende de la capacidad para optimizar todos los parámetros puestos anteriormente de relieve: la velocidad de enfriamiento, la concentración de crioprotectores, el tipo de crioprotector a utilizar, el tiempo de almacenamiento, la temperatura última de almacenamiento, la forma de recuperación (recalentamiento), etc. Y para ello es fundamental explorar ciertos detalles relacionados tanto con la fisiología celular (permeabilidad al agua, a los crioprotectores, resistencia de la membrana celular, control del tamaño de sus poros, etc...) como con las propiedades físicoquímicas de los crioprotectores (punto de congelación, viscosidad, toxicidad, etc...) . La situación actual es que se ha podido preservar con éxito un conjunto importante de tipos de celulares aislados, pero aún existen otro muchos en los que por desconocimiento 191 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 de parámetros tan importantes como la permeabilidad de la membrana, por ejemplo, los resultados son aún escasos. En lo que se refiere a la conservación de tejidos y órganos, los principios de conservación en frío son los mismos que los aplicables al caso de células aisladas. Sin embargo, desde el punto de vista técnico aparece una dificultad añadida que hace que esta empresa sea aún más complicada: el hielo extracelular. El hielo extracelular, del que nos despreocupábamos en el caso de células aisladas, es ahora el principal problema. Estos cristales de hielo hacen las veces de auténticas lanzas que al crecer van rompiendo y desestructurando todo el tejido u órgano en cuestión, destruyéndose irremisiblemente. 2.- ESTUDIO TERMODINÁMICO DE LA FORMACIÓN DE HIELO DURANTE LA PRESERVACIÓN DE ÓRGANOS EN FRÍO 2.1.- Objetivos: Los objetivos a conseguir son los siguientes: 1. Predecir la probabilidad de formación de hielo intracelular, para una célula aislada en suspensión, en función de su volumen, superficie, permeabilidad de la membrana y temperatura de almacenamiento, cuando la velocidad de enfriamiento no es lineal en tiempo. 192 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 2. Calcular el perfil de temperaturas (temperatura en función del tiempo y la posición) para un modelo simple de órgano (esférico y de conductividad térmica constante) enfriado desde la periferia de forma lineal en el tiempo y homogéneo en la superficie. Calcular este mismo perfil cuando el órgano es enfriado desde el interior. 3. A partir de los cálculos realizados en los apartados anteriores, predecir la probabilidad de formación de hielo intracelular en un modelo de órgano simplificado. Este trabajo ha sido iniciado como Proyecto Fin de Carrera de Jaime Sáenz (Ingeniero Superior Industrial, especialidad químico) y los resultados obtenidos hasta la fecha están aceptados para publicación en la revista Cryobiology (a la que está suscrita por la Universidad de Sevilla), así como presentado en el “38th International Meeting of the Society for Cryobiology” (Edimburgo, Reino Unido, Julio 2001) y la “XXVII Reunión Bienal de la Real Sociedad Española de Física” como comunicación oral. 2.2.- Método: Como modelo de órgano supondremos siempre una simetría esférica con conductividad constante. Un corte transversal del órgano se muestra en la figura 4 siguiente. 193 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 q 36ºC q Figura 4: Corte transversal del órgano. Cuando el órgano se comienza a enfriar las células que lo forman iniciarán el proceso de deshidratación, como se explica más abajo. En la figura se indica el flujo de 194 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 agua saliente. Para estudiar el campo de temperaturas cuando enfriamos el órgano tendremos que resolver la ecuación del calor: 1 ∂ 2 ∂T ρ ⋅ Cp ∂T ⋅ ⋅ r = r ∂r ∂r k ∂t con las condiciones de contorno r = R T = Te = −196º C ∂T =0 ∂r t = 0 T = T0 = 36º C r=0 La solución de esta ecuación puede escribirse en forma de serie de Fourier de la forma (T − T )R + 0 e + ( 2 n −1)π ⋅r 2R (2n − 1)π ⋅ cos ⋅r 2r 2R n =1 4(T0 − Te ) (2n − 1)π (2n − 1)π an = ⋅ ⋅ sen − 1 (2n − 1)π 2 2 T (r , t ) = Te ∞ ∑a n ⋅e − Conocido el campo de temperaturas, hemos ahora de analizar el grado de subenfriamiento de cada célula (probabilidad de formación de hielo intracelular), el grado de concentración de los solutos y el grado de deshidratación. 195 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 A continuación se presentan dos gráficas, figuras 5 y 6, donde se observa la velocidad de nucleación y de subenfriamiento frente la temperatura para distintas velocidades de enfriamiento. x 10 -3 VELOCIDAD DE NUCLEACIÓN 4 3.5 3 2.5 -1000ºC/min 2 -500ºC/min 1.5 1 -100ºC/min 0.5 0 280 270 260 250 240 230 220 210 200 Temperatur a Figura 5: Velocidad de nucleación. Desde el momento que se induce la formación de hielo extracelular se produce un desequilibrio del potencial químico del agua, mayor en la solución intracelular, lo que se traduce en un flujo de agua saliente que trata de restaurar de nuevo el equilibrio. La 196 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 intensidad de este flujo se puede expresar en función de la diferencia de presiones osmóticas entre el medio intracelular y extracelular dV = k ⋅ A ⋅ (π i − π e ) dt donde V es el volumen de agua intracelular, k es la constante de permeabilidad de la membrana celular, A es la superficie de la membrana, y π i y π e son la presión osmótica interna y externa respectivamente. SUBENFRIAMIENT O 10 -10ºC/min 0 -100ºC/min -10 -20 -500ºC/min -30 -40 -1000ºC/min -50 -60 -70 280 270 260 250 240 230 Temperatura Figura 6: Enfriamiento. 197 220 210 200 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 La relación entre la presión osmótica y la presión de vapor viene dada por la ecuación p0 π ⋅ v1 = R ⋅ T ⋅ ln p donde p 0 y p son las presiones de vapor del agua pura y del agua en la solución respectiva, y v1 es el volumen molar parcial del agua. Sustituyendo el volumen molar parcial del agua v1 por su volumen molar v10 tenemos p dV k ⋅ A ⋅ R ⋅ T = ⋅ ln e 0 dt pi v1 Nosotros ahora consideramos una tasa de enfriamiento exponencial, es decir, un perfil de la forma T = C e B⋅t con B<0. Tendremos pe dV k ⋅ A ⋅ R = ⋅ ln dT pi B ⋅ v10 [1] Esta ecuación a la que llegamos es sensiblemente distinta a la que obtuvo Peter Mazur [P. Mazur, 1963]. La dependencia exponencial de la temperatura con el tiempo simplifica notablemente la ecuación, haciendo que no aparezca la temperatura en el miembro derecho, con lo que su integración, como se verá, resulta mucho más fácil. 198 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Por último, eliminando el cociente de presiones de vapor aplicando la ley de Raoult y la ecuación de Clausius-Clapeyron llegaremos a una expresión muy útil. Suponiendo que la solución intracelular es una solución diluida ideal podemos aplicar la ley de Raoult; derivando con respecto a la temperatura y aplicando la ecuación de Clausius-Clapeyron obtenemos: d ln pi d ln xi Lv = + 2 dT dT R ⋅T donde xi es la fracción molar de agua, y Lv es el calor molar de vaporización. El cambio de la presión de vapor del hielo extracelular será: d ln p e Ls = dT R ⋅T 2 Supondremos que la solución extracelular permanece en todo momento en equilibrio termodinámico con el hielo formado, de forma que la presión de vapor de la solución parcialmente congelada verificará la ecuación anterior. Restando las dos últimas ecuaciones obtenidas y teniendo en cuenta que Lf = Lv − Ls tenemos pe pi d ln xi Lf = − 2 dT dT R ⋅T d ln Expresando la fracción molar de agua en función del volumen de agua 199 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 xi = n1 n1 ⋅ v10 V = ≈ 0 n 2 + n1 n1 + n 2 ⋅ v1 V + n2 ⋅ v10 donde n1 y n2 son los moles de agua y soluto respectivamente, llegamos finalmente a la siguiente ecuación pe pi n 2 ⋅ v10 Lf dV = − ⋅ 2 0 dT R ⋅T (V + n 2 ⋅ v1 ) ⋅ V dT d ln [2] Sustituyendo la ecuación [1] en la ecuación [2], y teniendo en cuenta la dependencia de la permeabilidad con la temperatura en la forma k = k g ⋅ e b (T −Tg ) siendo Tg la temperatura de referencia a la que se conoce la constante de permeabilidad, llegamos a la expresión que nos permite expresar el volumen de agua celular y la concentración de solutos en función de los parámetros de enfriamiento y de las características de la célula. pe pi p n 2 ⋅ v10 Lf k ⋅ A⋅ R = − ⋅ ⋅ ln e 2 0 0 pi dT R ⋅T (V + n 2 ⋅ v1 ) ⋅ V B ⋅ v1 d ln 200 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 FRACCIÓN MOLAR DE SOLUTO. 0.7 0.6 0.5 0.4 0.3 0.2 equilibrio 0.1 0 28 0 -500ºC/min -100ºC/min -1000ºC/min 10ºC/min 27 0 26 0 25 0 24 0 Temperatura 23 0 22 0 21 0 20 0 Figura 7: La figura representa la fracción molar de soluto frente a la temperatura para distintas velocidades de enfriamiento. Se puede observar a mayor velocidad de enfriamiento, existe menor porcentaje de soluto para una temperatura determinada. 201 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 DE UNA CÉLULA DE 0.98 MICRAS Y DE 25 MICRAS PARA DISTINTAS VELOCIDADES DE ENFRIAMIENTO LINEALES. 0 10 Fracción molar de soluto intracelular Linea continua: Célula de 0.98 micras de diámetro. Linea discontinua: Célula de 25 micras de diámetro. -1000ºC/min -100ºC/min -1 10 -10ºC/min -2 10 275 270 265 260 255 250 245 240 235 230 Temperatura Figura 8: Esta gráfica compara la evolución de la fracción molar de soluto frente temperaturas a distintas velocidades de enfriamiento lineales y con células de distinto tamaño. Con línea continua, célula más pequeña. A trazos discontinuos, un enfriamiento de una célula más grande. Vemos que en el perfil de la célula menor varía más suavemente cuando se eleva la velocidad de enfriamiento. 202 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 AGUA INTRACELULAR V 1 0.9 0.8 0.7 10000ºC/m 0.6 equilibrio 1000ºC/m 0.5 100ºC/mi -10ºC/min 0.4 0.3 0.2 0.1 0 280 270 260 250 240 230 Temperaturaa. 220 210 200 Figura 9: La figura representa el porcentaje de agua intracelular en volumen frente a la temperatura para distintas velocidades de enfriamiento. Para una misma temperatura, a mayor velocidad de enfriamiento existirá mayor cantidad de agua porcentual en la célula, siendo más sensible a la formación de hielo intracelular. 203 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 COMPARATIVA ENTRE VELOCIDAD LINEAL Y EXPONENCIAL DE ENFRAMIENTO PARA CÉLULA DE 5.84 MICRAS 1 NOTA :Las velocidades indicadas son las iniciales para los perf iles exponenciales. 0.9 F rac c ión volumen inicial de agua 0.8 0.7 0.6 Pe r f il line al 0.5 Perfil exponencial -10ºC/m in 0.4 0.3 -100ºC/m in -500ºC/m in 0.2 0.1 0 275 270 265 260 255 250 245 240 235 230 Temperatura Figura 10: Esta gráfica compara la fracción de agua intracelular en volumen frente temperaturas a distintas velocidades y formas de enfriamiento. Con línea continua, un enfriamiento con perfil lineal. A trazos discontinuos, un enfriamiento con perfil exponencial. Vemos que en el perfil lineal la velocidad de enfriamiento juega un papel 204 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Anexo 3: DISEÑO Y ENSAYO DE SISTEMA COMPUTERIZADO PARA LA PERFUSIÓN DE ÓRGANOS CON CRIOPROTECTORES Y ALMACENAMIENTO A TEMPERATURAS SUBCERO 1.- OBJETIVOS 1.1.- Diseño y construcción de sistema de perfusión, almacenamiento y monitorización 1. Diseñar un dispositivo de perfusión de órganos que permita controlar la temperatura y la concentración de crioprotector durante todo el protocolo de preservación. 2. Diseño de un sistema de monitorización de los parámetros que definen la funcionalidad de los órganos. En el caso que nos ocupará, el corazón, será un sistema de electrocardiografía por ordenador, un sistema de control de la presión en la aorta y por último un sistema de medida del esfuerzo del miocardio. 3. Construcción física del dispositivo de control y monitorización de la perfusión. Está basado en los diseños anteriores. 205 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 1.2.- Ensayo de sistema de perfusión, almacenamiento y monitorización 1. Perfusión de un conjunto de 60 corazones de rata a distintas velocidades de enfriamiento y con distintas concentraciones de crioprotector. Almacenamiento en frío de estos órganos y posterior recuperación mediante reperfusión hasta 37ºC. 2. Comparación de los resultados obtenidos entre el grupo de control y el grupo experimental. 2.- MÉTODO: 2.1.- Sistema de perfusión El sistema de perfusión controlada permite al experimentador controlar en cada instante la temperatura del fluido que se le inyecta al órgano, así como la concentración de crioprotector. El núcleo básico del sistema es una tarjeta conversora analógico-digital, en concreto el modelo DT-331, de la serie DT-330 de Data Translation. La característica fundamental de esta tarjeta, que la hace especialmente indicada para nuestros propósitos, son sus 4 canales de salida analógica, con rangos: -10 a +10 V, 0 a +10 V, -5 a +5V y 0 a +5V (DC), con una resolución de 12 bits. 206 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Además la tarjeta cuenta con 32 canales I/O (digitales) agrupados en cuatro puertas de 8 bits cada una. Estos 4 canales son utilizados para la lectura de dispositivos digitales (medidores de presión, temperatura y flujo). En la figura adjunta se muestra esquemáticamente el sistema de perfusión controlada. TEMPERATURA 37º C -10º C 0.1 M 0.5 M 1M 0 min CONCENTRACIÓN DE CRIOPROTECTOR 1.3 1.5 M M Tarjeta A/D ordenador TIEMPOO 20 min bombas Monitor ordenador sensore s corazó n El funcionamiento del sistema es el siguiente: 1. El experimentador proyecta el tipo de protocolo de preservación (o sea, la temperatura y la concentración de crioprotector en cada instante de la perfusión). 207 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Para ello tiene dos posibilidades para introducir los datos: a) mediante una tabla, o b) mediante una grafica. En los dos casos un programa elaborado en VisualBasic 5.0 se encarga de traducir estos datos a un fichero de texto. 2. El fichero de texto es importado por un programa elaborado en HP-VEE 6.0 (Hewlett Packard Visual Engineering Enviroment). Este programa lee los datos importados y genera una salida entre 0V y 10 V (DC) acorde con los mismos en los cuatro canales analógicos en cada instante de tiempo. Esta es la señal que controlará las bombas peristálticas. 3. La señal de 0 a 10V (DC) (y 10 mA) para cada bomba peristáltica es tratada convenientemente, a saber: Estas bombas funcionan con una tensión de 24 V (DC) y 30 Watios, con lo que se ha construido el circuito electrónico que se muestra en la figura. Está alimentado con 220 V (AC), entrando como señal la proveniente de la tarjeta (de 0 a 10 V (DC)) y teniendo por salida, de forma lineal, una tensión de 0 a 24 V (DC). 4. Cada bomba peristáltica extrae el fluido contenido en cada uno de los 4 baños térmicos. Estos se encuentran a –10º C (Crioprotector: Polietileno Glicol al 50%), 1º C (solución de Krebs-Henseleit), 37º C (Crioprotector: Polietilenglicol al 50%) y 37º C (solución de Krebs-Henseleit). Estos baños están construidos de la siguiente manera. Los baños a 37º C están formados por un único recipiente aislante (térmico) de 55 litros de capacidad, cerrado y lleno de agua. En dicho recipientetermo se encuentra inmerso un termostato-calefactor, dos contenedores de vidrio (uno con crioprotector y otro con la solución de Krebs-Henseleit) y tres sondas 208 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 térmicas (uno en el baño y los otros dos dentro de los contenedores de vidrio). Los baños a –10º C y 1º C son similares al anterior. La diferencia fundamental es que ahora hemos de usar dos recipientes aislantes (de 16 litros de capacidad cada uno), dos termostatos calefactores (uno en cada recipiente), y sendos contenedores de vidrio. Los dos recipientes-termo se ubican dentro de congelador (marca Zanussi, modelo C-20), separado un grueso tabique aislante. En lugar de agua, el baño es llenado con una disolución de anticongelante comercial para evitar su congelación. Los termostatos son necesarios por un doble motivo: en primer lugar porque los baños están a diferente temperatura. En segundo lugar porque el termostato que tienen incorporado los congeladores comerciales tienen oscilaciones de temperatura por encima de los 3º C, algo fuera de nuestro objetivo de precisión. Con la inclusión de los termostatos-calefactores podemos garantizar (ya medido) oscilaciones por debajo de 0.1º C. Los termostatos calefactores son de la casa Phywe, y funcionan en el rango –20º C a 200º C. 5. Las cuatro salidas de las bombas se conectan a un único inyector, por el que saldrá el crioprotector a temperatura y concentración deseada en cada instante. 6. Para corregir las eventuales pérdidas térmicas y controlar la presión, antes del punto de confluencia en el inyector, cada una de las salidas de las bombas llevan el sensor correspondiente. La señal de estos sensores es convertida digitalmente e introducida a la tarjeta DT-331 a través de sus 32 canales I/O. 209 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 7. El programa de ordenador hace las correcciones oportunas en función de la lectura recibida, mandando de nuevo la señal renormalizada a las bombas y cerrando así el bucle. 8. Este mismo sistema de perfusión es utilizado en la fase de recalentamiento, para llevar el órgano desde el estado de almacenamiento en frío hasta los 37º C y limpio de crioprotector, necesario para su funcionamiento. 2.2.- Sistema de almacenamiento El sistema de almacenamiento del órgano tras la perfusión se basa en la utilización de un baño térmico de características similares a los utilizados en la parte del sistema de perfusión. La temperatura de este baño térmico se fija a la mínima temperatura alcanzada en el proceso de perfusión. El órgano se sumerge en el fluido del baño envuelto en una bolsa hermética de PVC. 2.3.- Sistema de monitorización Para comprobar el grado de recuperación del órgano tras el almacenamiento en frío y el posterior recalentamiento, se realizan dos tipos de prueba: de esfuerzo mecánico y de funcionamiento eléctrico. 210 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 1. Para la prueba de esfuerzo mecánico el corazón se une por la parte inferior del miocardio a un transductor de tensiones. Esta señal analógica es transformada en una señal digital mediante el sistema PowerLab. 2. Para la medición del funcionamiento eléctrico del corazón se utiliza un electrocardiógrafo similar, mediante los canales restantes de PowerLab. Ello permite almacenar los registros en informáticamente para su posterior tratamiento. 3.- ENSAYO DEL SISTEMA DE PERFUSIÓN, ALMACENAMIENTO Y MONITORIZACIÓN. EXPERIMENTO CON CORAZONES DE RATA. En un primer grupo de experimento, se ensayará la máquina de perfusión con corazones de ratas. Se ha elegido la rata común como animal de ensayo por su gran disponibilidad. El único inconveniente podría ser el reducido tamaño de este órgano, algo que puede ser aliviado con un poco de práctica y utilizando animales cuyo peso esté por encima de 400 g. El protocolo a seguir es el siguiente: 1. El animal es anestesiado con 100 mg/kg de pentobarbital sódico. Todos los animales utilizados en nuestra experiencia serán tratados según la normativa internacional vigente en materia tocante a animales de laboratorio. En particular según el texto “Guide for the Care and Use of Laboratory Animals” elaborado por el “Institute of Laboratory Animal 211 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Resources” y publicado por el “National Institutes of Health” (NIH publicación Nº. 86-23, revisado en 1985). 2. Se anticoagula mediante la inyección en la femoral de heparina sódica al 5% (Rovi, 5.000 U.I.) 3. Mediante una esternotomía media se extrae el corazón rápidamente, sumergiéndolo en una solución de Krerbs-Henseleit (composición de la solución en milimoles por litro: NaCl 118.3, KCl 4.8, MgSO4 1.2, KH2PO4 1.2, CaCl2 2.5, NaHCO3 25.0, glucosa 11.0, 316 mOsm, pH 7.4 (Sigma)) a 4º C. 4. El corazón es conectado al sistema de perfusión canulado por la aorta y contenido en una bolsa de PVC (Stemflex, modelo MSE 2204 DU) que permite tanto la entrada por la aorta como la circulación exterior de la solución (dentro de la bolsa) (modelo Langendorff modificado) gaseando con carbógeno (95% O2, 5% CO2) inicialmente a 37ºC, con un flujo de 5ml/min. Esta fase se mantiene durante 10 minutos (periodo de estabilización). El corazón es perfudido por el árbol coronario (se perfora el ventrículo para evitar que esté lleno de solución) y además por su superficie exterior. 5. Se inicia el proceso de criopreservación. De forma controlada se aumenta la concentración de crioprotector y se desciende la temperatura. Esta fase dura 20 min., aunque este tiempo es uno de los parámetros experimentales. Cuando se alcanza la temperatura y concentración deseadas (entorno a –5º 212 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 C y 10 % de crioprotector) se introduce en el baño térmico, que se encuentra a la misma temperatura que la mínima alcanzada en el proceso de perfusión. 6. Se procede a un tiempo de almacenamiento de 20 horas en estas condiciones. 7. Se reperfunde el órgano, disminuyendo la concentración de crioprotector hasta su eliminación y aumentando la temperatura hasta los 37º C. Esta fase dura también 20 min. Aunque este tiempo también será uno de los parámetro a modificar en cada conjunto de experimentos. 8. El corazón es estabilizado a un ritmo cardiaco de 250 pulsaciones por segundo. 9. Se conecta al miocardio, por su extremo inferior, un transductor de tensión, y formando un triángulo con los tres electrodos del electrocardiógrafo digital. Se miden estos parámetros basales. 10. Se desconecta el corazón del sistema de perfusión, se extrae tejido del miocardio y se realiza un análisis del tejido mediante microscopía electrónica. 11. Se compara estadísticamente los resultados entre el grupo experimental y de control mediante una “t” de student de dos extremos. 213 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 BIBIOGRAFÍA 1.- INFORMACIÓN SOBRE HISTOLOGÍA Y FISIOLOGÍA Berne-Levy. Fisiología. Editorial Harcourt Brace, 2ª edición. Madrid.1998 Diller, K.R.. Biotransport, heat and mass transfer in living systems. Volume 858. Annals of the New York Academy of Sciences. Ed. Staff. New York,1998. Appendix: K.R.Holmes. Thermal Conductivity of selected tissues. Fawcett, DW. Tratado de Histología. Editorial McGraw Hill, 11ª edición. Madrid.1989 Ferre, D. Esquemas de Histología. Ed. Espaxs, 4ª ed. Barcelona.1988 Ham, A.; Cormack, D.H. Tratado de Histología. Editorial Interamericana, 8ªed. México.1984. Ross, Romrell y Kaye. Histología. Editorial Panamericana, 3ªed. México.1997 Wheater, J.W. Histología Funcional. Editorial Harcourt, 4ª ed. New York.2000 214 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 2.- INFORMACIÓN SOBRE DESARROLLO MATEMÁTICO, SUBESTRUCTURACIÓN E IMPLANTACIÓN INFORMÁTICA. Achard,G.; Depecker,P.; Allard,F. La caracterisation des ponts thermiques en régime variable et leur integration dans les modéles desimulation du comportement thermique des bâtiments. Laboratoire Equipment de l’Habitat, Département Génie Civil et Urbanisme – Institut National des Sciences Appliquées de Lyon (INSA), Lyon, Junio 1999. Allen,M.B.; Herrera,I.; Pinder,G.F. Numerical Modeling in Science and Engineering. Ed. John Wiley & Sons, 1988. Dorf, R.D. Sistemas modernos de control. Teoría y práctica. Addison-Wesley Iberoamericana. 1986. Kernighan,B.; Ritchie,D. El lenguaje de programación C. Prentice-Hall, 1992. Larson,R.E.; Hosteler,R.P.; Edwards,R.H. Cálculo. Mc Graw Hill, 6ª edición. México,1999. Marcellán,F.; Casasús,L.; Zarzo,A. Ecuaciones diferenciales. Problemas lineales y aplicaciones. Mc Graw Hill. Madrid,1990. Morlot , R. Contribution au developpement de méthodes de reduction de systémes thermiques complexes. Application aux planchers rayonnats electriques posés sue 215 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 terre-plein. Tesis doctoral, Institut National des Sciences Appliquées de Lyon (INSA), Lyon, Junio 1999. Nagle,R.K.; Saff,E.B. Fundamentos de ecuaciones diferenciales. Ed. AddisonWesley Iberoamericana. 2ª edición. Wilmington,1992. Necati Öziºic,M. Heat Conduction. Departament of Mechanical and Aerospace Engeneering. North Carolina State University, Raleigh. John Wiley and Sons, New York,1980 Ogata,K. Ingeniería de control moderna. Prentice-Hall. 1980 Oñate,E. Cálculo de estructuras por el método de elementos finitos. Análisis estático lineal. Ed. CIMNE. 2ª edición. Barcelona, 1995. Rodríguez, E.A. Sistematización de Acoplamientos Térmicos y Termoaeráulicos en la Simulación de Edificios. Tesis Doctoral, Universidad de Sevilla, Sevilla 1990. Schildt,H. Programación en Lenguaje C. Mc Graw-Hill, 1987. Varios. Método de Simulación y Cálculo de Sistemas Pasivos en Relación con su Comportamiento Térmico. Informe de Avance nº1.Cátedra de Termotécnia, ESII, Sevilla,1986. Varios. Método de Simulación y Cálculo de Sistemas Pasivos en Relación con su Comportamiento Térmico. Informe de Avance nº2. Cátedra de Termotécnia, ESII, Sevilla,1987. 216 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Zienkiewicz, O.C.; Taylor,R.L. El método de los elementos finitos. Ed. McGraw Hill. 4ª edición. Barcelona, 1994. 217 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 3.- INFORMACIÓN SOBRE MODELOS Y ESTUDIOS DE CAMPOS DE TEMPERATURA ANALÍTICOS Y NUMÉRICOS Adams, T; Heisey, S.R. Thermodynamic technique for the quantification of regional blood flow. Am J Physiol. May 238(5). Pág. H682-96. (1980). Blanchard, C.H. Hybrid finite element-finite difference metod for thermal analysis of blood vessels. Int. J. Hyperthermia, vol. 16, No 4. Pág. 341-53. (2000). Baish, J.W. Formulation of a statistical model of heat transfer in perfused tissue. J Biomech Eng, nov 116 (4). Pág. 521-7. (1994). Crezee, J; Lagendijk, JJ. Experimental verification of bioheat transfer theories: measurement of temperature profiles around large artificial vessels in perfused tissue. Phys Med Biol. Jul 35(7). Pág. 905-23. (1990). Cui,Z.F.; Dykhuizen,R.C.; Nerem,R.M.; Sembanis,A. Modeling of cryopreservation of engineered tissues with one-dimensional geometry. Biotechnol Prog. Mar-Apr18(2). Pág 354-61. (2002). Davies,C.R. Sensitivity analysis of one-dimensional heat transfer in tissue with temperature-dependent perfusion. J Biomech Eng. Feb 119(1). Pág. 77-80. (1997). Huang,H.W. A counter current vascular network model of heat transfer in tissues. J Biomech Eng. Feb 118(1). Pág.120-9. (1996). 218 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Klinger, HG. Heat transfer in perfused biological tissue. I. General theory. Bull Math Biol. Aug 36(4). Pág. 403-15. (1974) Kolios, M.C. Large blood vessel cooling in heated tissues: a numerical study. Phys Med Biol. Apr 40(4). Pág. 477-94. (1995). Newman, W.H.; Lele, P.P. A transient heating technique for the measurement of thermal properties of perfused biological tissue. Journal of Biomechanical Engineering, aug 107. Pág. 219-27. (1985). Rubinsky, B. Heat transfer during cryopreservation by perfusion through the vascular system. Cryobiology. Dec 24(6). Pág. 537-41. (1987) Song, W.J. A combined macro and microvascular model for whole limb heat transfer. Journal of Biomachanical Engineering, nov 110. Pág. 259-68. (1988). Trunk, P. Visualization of computer simulated heart temperature during topical cooling. Eur. J. physiol, 442. Pág. 139-41. (2001). Wissler, E.H. An analytical solution countercurrent heat ransfer between parallel vessels with a linear axial temperature gradient. Journal of Biomechanical Engineering, aug 110. Pág. 254-256. (1988). Wren, J; Karlsson, M; Loyd, D. A hybrid equation for simulation of perfused tissue during thermal treatment. Int J Hyperthermia. Nov-Dec 17(6). Pág. 483-98. (2001) Zhang, Y. Numerical study on three-region thawing problem during cryosurgiral re-warming. Medical Engineering & Physics, 24. Pág. 267-77. (2002). 219 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Zhu, M.; Weinbaum, S. On the generalization of the Weinbaum-Jiji bioheat equation to microvessels of unequal size; the relation between the near field and local average tissue temperatures. Journal of Biomechanical Engineering, feb 110. Pág. 74-80. (1988). Zhu, M; Weinbaum, S; Lemons, D.E. A three-dimensional variable geometry countercurrent model for whole limb heat transfer. J Biomech Eng. Aug 114(3) Pág. 36676. (1992). 220 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 4.- INFORMACIÓN GENÉRICA SOBRE CRIOPRESERVACIÓN Al-Abdulla, N., Cole, G., Braxton, J.H., Letsou, G.V., Liu, W., Eisen, R.N., ElGamel, A. & Baldwin, J.C. The effects of supercooling chemicals on myocardical ultrastructure: a transmission electron microscopy case study. Connecticut Medicine 59, 387-399 (1995). Angel, C.A., Bressel, R.D., Hemmati, M., Sare, E.J. & Tucker, J.C. Water and its anomalies in perspective: tetrahedral liquids with and without liquid-liquid phase transitions. Phys. Chem. Chem. Phys. 2, 1559-1566 (2000). Armitage, W.J. & Mazur, P. Osmotic tolerance of human granulocytes. Am. J. Physiol. 247, C373-C381 (1984). Armitage, W.J. & Mazur, P. Toxic and osmotic effects of glycerol on human granulocytes. Am. J. Physiol. 247, C382-C389 (1984). Berthelot, F., Martinat-Botte, F., Locatelli, A., Perreau, C. & Terqui, M. Piglets born after vitrification of embryos using the open pullet straw method. Cryobiology 41, 116-124 (2000). Brüggeller, P. & Mayer, E. Complete vitrification in pure liquid water and dilute aqueous solution. Nature 228, 569-571 (1980). Chou I-M., Blank, J.G., Goncharov. A.F., Mao H-K. & Hemley R.J. In situ observations of a high-pressure phase of H20 ice. Science 281, 809-812 (1998). 221 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Debenedetti, P.G. & Stillinger, F.H. Supercooled liquids and glass transitions. Nature 410, 259-267 (2001). Dumont, F., Marechal, P.A. & Gervais P., Saccharomyces Cerevisiae viability related to the freezing rate. 38th meeting of the Society for Cryobiology, Edimburgh 2001. Fahlman, A., Storey, J.M. & Storey, K.B. Gene-up regulation in heart during mammalian hibernation. Cryobiology 40, 332-342 (2000). Fahy, G.M. & Ali, S.E. Cryopreservation of mammalian kidney. II. Demonstration of immediate ex vivo function after introduction and removal of 7.5 M cryoprotectant. Cryobiology 35, 114-131 (1997). Fletcher, G.L., Hew, C.H. & Davies, P.L. Antifreeze proteins of teleost fishes. Ann. Rev. Fisiol. 63, 359-390 (2001). Fletcher, N. H. Van der Waals' equation and nucleation theory. Eur. J. Phys. 14, 29-35 (1993). Graether, S.P., Kuiper, M.J., Gagné, S.M., Walker, V.K., Jia, Z., Sykes, B.D. & Davies P.L. b-Helix structure and ice-binding properties of a hyperactive antifreeze protein fron an insect. Nature 406, 325-328 (2000). Greer A.L. Too hot to melt. Nature 404, 134-135 (2000). Jenniskens, P. Blake, D.F., Wilson, M.A. & Pohorile, A. High density amorphus ice, the frost on interstellar grains. Astrophys. J. 455, 389-401 (1995). 222 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Johari G.P., On the amorphization fo hexagonal ice, the nature of water low density amorph, and the continuity of molecular kinetis in supercooled water. Phys. Chem. Chem. Phys. 2, 1567-1577 (2000). Johnson, P.H., Olson, C.B. & Goodman, M. Isolation and characterization of deoxyribonucleic acid from tissue of the woolly mammoth, Mammuthus primigenius. Comp. Biochem. Physiol. B 81B, 1045-1051 (1985). Jones, H. Splat cooling and metastable phases. Rep. Prog. Phys. 36, 1425-1497 (1973). Karlsson, J.O.M., Cravalho, E.G., Rinkes, I.H.M.B., Tompkins, R.G., Yarmush, M.L. & Toner, M. Nucleation and growth of ice crystals inside cultured hepatocytes during freezing in the presence of dimethyl sulfoxide. Biophys. J. 65, 25242536 (1993). Karlsson, J.O.M. & Cravalho, E.G. & Toner, M. A model of difussion-limited ice growth inside biological cell during freezing. J. Appl. Phys. 75, 4442-4455 (1994). Karlsson, J.O.M. & Toner, M. Long term storage of tissue by cryopreservation: critical issues. Biomaterial 17, 243-256 (1996). Karlsson, J.O.M. & Toner, M. Cryopreservation. Principles of tissue engineering, Academic Press, 293-307 (2000). Kasharin, A. & Karlsson, J.O.N. Analysis of mass transport during warming of cryopresrved cells. Annals of the NY academic of science 858, 163-174 (1998). 223 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Kauzmann, W. The nature of the glassy state and the behaviour of liquids at low temperature. 219-256 (1948). Kedward, C.J., Macnaughtan, W. & Mitchell, J.R. Crystalization kinetics of amorphous lactose as a function of moisture content using isothermal differential scanning calorimetry. J. of Food Science 65, 324-328 (2000). Khirabadi, B.S. & Fahy G.M. Cryopreservation of the mammalian kidney.I. Transplantation of rabbit kidney perfused with EC ans RPS-2 and 2-4ºC. Cryobiology 31, 10-25 (1994). Knight, C.A. Adding to the antifreeze agenda. Nature 406, 249-251 (2000). Khol, I., Mayer E. & Hallbrucker A. The glassy water-cubic ice system: a comparative study by X-ray difraction and differential scanning calorimetry. Phys. Chem. Chem. Phys. 2, 1579-1586 (2000). Kristiansen, E., Pedersen, S., Ramlov, H. & Zachariassen, K.E. Antifreeze activity in the cerambycid beetle rhagium inquisitor. J. Comp. Phys. B 169, 55-60 (1999). Lewenstein, M., Cirac, J.I. & Santos L. Cooling of a small sample of Bose atoms with accidental degeneracy. ArXiv:quant-ph/0005097. Lovelock J.E. Biochim.Biophys.Acta 11, 28 (1953). Liou Y-C., Tocilj A., Davies P.D. & Jia Z. Mimicry of ice structure by surface hydroxyls and water of a b-helix antifreeze protein. Nature 406, 322-324 (2000). 224 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Lobban, C., Finney, J.L. & Kuhs, W.F. The structure of a new phase of ice. Nature 391, 268-270 (1998). Lozano, M.L., Rivera, J., Corral, J., Gonzalez-Conjero, R. & Vicente, V. Platelet cryopreservation using reduced dimethyl solfoxide concentration and secondmesseger effectors and cryopreserving solution. Cryobiology 39, 1-12 (1999). MacFarlane, D. R. & Fragoulis M. Theory of devitrification in multicomponent glass forming systems under diffusion control. Phys. and Chem. of Glasses 27, 229-234 (1986). Maddi, J.A., Dinneen, T.P., Gould, H. Slowling and cooling molecules and neutral ateoms by time-varying electric field gradients. ArXiv:physics/9909027. Mazur, P. Kinetics of water loss from cell at subcero temperatures and the likehood of intracelular freezing. J. Gen. Physiol. 47, 347-369 (1963). Mazur, P. Freezing of living cells: mechanisms and implications. Am. J. Physiol. 247, C125-C142 (1984). Mazur, P. Equilibrium, Quasi-equilibrium, and nonequilibrium Freezing of Mammaliam embrios. Cell Biophysic 57, 53-92 (1990). Mony, M.C. & Larras-Regard, E. Imaging ob subcellular structures by scanning ion microscopy and mass spectrometry. Adventage of cryofixation and freeze substitution procedure over chemical preparation. Biol. Cell 89, 199-210 (1997). 225 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Murthy, S.S.N. Phase behaviour of the supercooled aqueous solutions of dimethyl sulfoxide, ethyleneglycol and methanol as seen by dielectric spectroscopy. J. Phys. Chem. B, 101, 6043-6049 (1997). Murthy, S.S.N. Some insight into the physical basis of the cryoprotective action of dimethyl sulfoxide and ethylene glycol. Cryobiology 36, 84-96 (1998). Murthy, S.S.N. Detailed study of ice clathrate relation: evidence for the existence of clathrate structures in some water-alcohol mixtures. J. Phys. Chem. 103, 79277937 (1999). Murthy, S.S.N. Experimental study of dynamics of water and phase behavior of the supercooled aqueous solutions of propylene glycol, glycerol, poly(ethylene glycol)s, and poly(vinylpyrrolidone). J. Phys. Chem. B, 6955-6962 (2000). Peyridieu, J.F., Baudot, A., Boutron, P., Mazuer, J., Odin, J., Ray, A., Chapelier, E., Payens, E. & Descotes, J.L. Critical cooling and warming rates to avoid ice cristalization in small pieces of mammalian organs permeated with cryoprotective agents. Criobiology 33, 434-446 (1996). Pitt, R.E. Thermodynamics and the intracellular ice formation. Advances in Low-Temperature Biology, vol 1, 63-99 (1992). Plonka, A., Szajdzinska-Pietek, E., Bednarek, J., Hallbrucker, A. & Mayer, E. Unexpected radical generation on gamma-irradiating metaestable forms of water at 77 K. Phys. Chem. Chem. Phys. 2, 1587-1593 (2000). 226 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Polge, C., Smith A.U. & Parkes A.S. Nature 164, 666 (1949). Potera, C. A sweet way to keep proteins safe. Science 281, 1793 (1998). Prager, E.M., Wilson, M.J., Lovenstein, J.M. & Sarich, V.M. Mammoth albumin. Science 209, 287-289 (1980) Rall, W.F. & Fahy, G.M., Ice-free criopreservation of mouse embryos at 196ºC by vitrification. Nature 313, 573-575 (1985). Rubinsky, B. Cryosurgery. Web. Annual review of Biomedical Engineering (2000). Sakaguchi, S., Kitamura, S., Kawachi, K., Kobayashi, S., Yoshida, Y., Niwaya, K. & Gojo S. Preservation of miocardical function and metabolism at subcero nonfreezing temperatures storage of the heart. J. Heart Lung Transplant 15, 1101-1107 (1996). Sikorski, R. & Peters, R. A Frankenstein experiment. Science 281, 1163-1164 (1998). Santen, L. & Krauth, W. Absence of thermodynamic phase transition in a model glass former. Nature 405, 550-551 (2000). Sawada, I., Yamada, M., Fukusako, S. & Kawanami, T. Thermophysical properties of aqueous solution near the equilibrium freezing temperature. "Thirteenth symposium on thermophysical properties", Boulder, Colorado (1997). 227 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Scala, A., Starr, F.W., La Nave, E., Sciotino, F. & Stanley, A. Configurational entropy and diffusivity of supercooled water. Nature 406, 166-169 (2000). Stanley, H.E. Buldyrev, S.V., Canpolat, M., Mishima, O., Sadr-Lahijany, M.R., Scala, A. & Starr, F.R. The puzzling behaviour of water at very low temperature. Phys. chem. Chem. Phys. 2, 1551-1558 (2000). Stanley, H.E. Liquid water: A very complex fluid. Jour. Phys. 53, 53-83 (1999). Storey, K.B., Mosser, D.D., Douglas, D.N., Grundy, J.E. & Storey, J.M. Biochemestry below 0ºC: nature's frozen vertebrates. Bazilian J. Med. Biol. Research, 283307 (1996). Taborek, P. Nucleation in emulsified supercooled water. Phys. Rev. B 32, 5902-5906 (1985). Toner, M. & Cravalho, E.G. Thermodynamics and kinetics of intracellular ice formation during freezing of biological cell. J. Appl. Phys. 67, 1582-1593 (1990). Vand, V. Viscosity of solutions and suspensions. J. of Phys. Chem. 52, 277299 (1947). Wang, J.H. A comprehensive evaluation of the effects and mechanism of antifreeze proteins during low-temperature preservation. Cryobiology 41, 1-9 (2000). 228 Estudio del Campo de Temperatura en el Corazón Jorge Aguilar Barrera aplicado a la Conservación de Órganos en Frío. Sevilla, Octubre 2002 Wang, T., Zhu, Q., Yang, X., Layne, J.R. & Devries, A.L. Antifreeze glycoproteins from antartic notothenioid fishes fails to protect the rat cardiac explant during hypothermic and freezing preservation. Cryobiology 31, 185-192 (1994). Wineland, D.J., Drullinger, R.E. & Walls, F.L. Radiation-pressure cooling of bound resonant absorbers. Phys. REv. Lett. 40, 1639-1642 (1978). Wolfe, J. & Bryant, G. Cellular cryobiology: thermodynamics abd mechanical effects. Int. J. of Refrigeration (in press). Wowk, B., Darwin, M., Harris, S.B., Russell, S.R. & Rash C.M. Effects of solute methoxylation of glass-forming ability ans stability of vitrification solutions. Cryobiology 39, 215-227 (1999). Wowk, B., Leitl, E., Rash C.M., Mesbah-Karimi, N., Harris, S.B. & Fahy, G. Vitrifiation enhancement by synthetic blocking agents. Cryobiology 40, 228-236 (2000). 229