Introducci n al M todo de Diferencias Finitas y su...

274
Introducción al Método de Diferencias Finitas y su Implementación Computacional Antonio Carrillo Ledesma, Karla Ivonne González Rosas y Omar Mendoza Bernal Facultad de Ciencias, UNAM http://academicos.fciencias.unam.mx/antoniocarrillo Una copia de este trabajo se puede descargar de la página: http://132.248.182.159/acl/MDF/ http://132.248.182.159/acl/Textos/ Verano 2018, Versión 1.0β

Transcript of Introducci n al M todo de Diferencias Finitas y su...

Page 1: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas ysu Implementación Computacional

Antonio Carrillo Ledesma,Karla Ivonne González Rosas y Omar Mendoza Bernal

Facultad de Ciencias, UNAMhttp://academicos.fciencias.unam.mx/antoniocarrillo

Una copia de este trabajo se puede descargar de la página:http://132.248.182.159/acl/MDF/http://132.248.182.159/acl/Textos/

Verano 2018, Versión 1.0β

Page 2: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Índice

1 Introducción 51.1 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Métodos de Descomposición de Dominio . . . . . . . . . . . . . . 61.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4 Infraestructura Computacional Usada . . . . . . . . . . . . . . . 10

2 Método de Diferencias Finitas 112.1 Método de Diferencias Finitas en una Dimensión . . . . . . . . . 11

2.1.1 Problema con Condiciones de Frontera Dirichlet . . . . . 122.1.2 Problema con Condiciones de Frontera Neumann . . . . . 202.1.3 Problema con Condiciones de Frontera Robin . . . . . . . 222.1.4 Ecuación con Primera Derivada Temporal . . . . . . . . . 302.1.5 Ecuación con Segunda Derivada Temporal . . . . . . . . . 34

2.2 Consistencia, Estabilidad, Convergencia y Error del Método deDiferencias Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2.3 Método de Diferencias Finitas en Dos y Tres Dimensiones . . . . 402.4 Las Ecuaciones de Navier-Stokes . . . . . . . . . . . . . . . . . . 43

3 Paralelización del Método de Diferencias Finitas 473.1 Métodos de Descomposición de Dominio . . . . . . . . . . . . . . 503.2 Método de Schwarz . . . . . . . . . . . . . . . . . . . . . . . . . . 513.3 Método de Descomposición de Dominio de Subestructuración (DDM)

553.4 Métodos del Espacio de Vectores Derivados (DVS) . . . . . . . . 64

3.4.1 Discretización de los Métodos Partiendo de la Formu-lación Local . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.4.2 Formulación Operacional de los Métodos DVS . . . . . . 663.4.3 Implementación Numérica de DVS . . . . . . . . . . . . . 703.4.4 Implementación para Matrices Simétricas . . . . . . . . . 703.4.5 Implementación para Matrices no Simétricas e Indefinidas 713.4.6 Evaluación de los Operadores Virtuales S y S−1 . . . . . 72

4 Implementación Computacional Secuencial y Paralela de DDM 744.1 El Operador de Laplace y la Ecuación de Poisson . . . . . . . . . 754.2 Método de Diferencias Finitas Secuencial . . . . . . . . . . . . . 774.3 Método de Subestructuración Secuencial . . . . . . . . . . . . . . 794.4 Método de Subestructuración en Paralelo . . . . . . . . . . . . . 834.5 Método de Subestructuración en Paralelo Precondicionado . . . . 87

5 Análisis de Rendimiento y Observaciones para el método DDM 905.1 Análisis de Comunicaciones . . . . . . . . . . . . . . . . . . . . . 905.2 Afectación del Rendimiento al Aumentar el Número de Subdo-

minios en la Descomposición . . . . . . . . . . . . . . . . . . . . . 915.3 Descomposición Óptima para un Equipo Paralelo Dado. . . . . . 92

[email protected] 1 Antonio Carrillo Ledesma, Et alii

Page 3: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

5.4 Consideraciones para Aumentar el Rendimiento . . . . . . . . . . 945.5 Observaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6 Implementación Computacional Secuancial y Paralela de DVS 986.1 Esquema Maestro-Esclavo como una Forma de Implementación . 986.2 Análisis, Diseño y Programación Orientada a Objetos . . . . . . 99

6.2.1 Implementación Secuencial en C++ . . . . . . . . . . . . 1006.2.2 Implementación Paralela en C++ Usando MPI . . . . . . 101

6.3 Alcances y Limitaciones del Esquema Maestro-Esclavo . . . . . . 1036.4 Afectación del Rendimiento al Refinar la Descomposición . . . . 1086.5 Opciones para Soportar una Descomposición Fina del Dominio . 1106.6 Otras Opciones de Paralelización . . . . . . . . . . . . . . . . . . 112

7 Análisis de Rendimiento y Observaciones para el método DVS1147.1 Análisis de Rendimiento para Problemas Simétricos y no Simétricos1147.2 Análisis de Rendimiento para Problemas Indefinidos . . . . . . . 1177.3 Análisis de Rendimiento para Problemas de Advección-Difusión . 1197.4 Análisis de Rendimiento para Sistemas de Ecuaciones . . . . . . 1247.5 Análisis de Rendimiento en Equipos Paralelos . . . . . . . . . . . 125

7.5.1 Selección Óptima de una Descomposición del Dominio . 1257.5.2 Análisis de Rendimiento Usando Métricas . . . . . . . . . 1297.5.3 Escalabilidad del Esquema DVS . . . . . . . . . . . . . . 132

7.6 Criterios Integrales para Evaluar el Esquema DVS . . . . . . . . 1337.7 Observaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

A Expansión en Series de Taylor 138A.1 Aproximación de la Primera Derivada . . . . . . . . . . . . . . . 138

A.1.1 Diferencias Progresivas . . . . . . . . . . . . . . . . . . . . 138A.1.2 Diferencias Regresivas . . . . . . . . . . . . . . . . . . . . 139A.1.3 Diferencias Centradas . . . . . . . . . . . . . . . . . . . . 139

A.2 Análisis de Convergencia . . . . . . . . . . . . . . . . . . . . . . . 140A.3 Derivadas de Ordenes Mayores . . . . . . . . . . . . . . . . . . . 142

A.3.1 Derivada de Orden Dos . . . . . . . . . . . . . . . . . . . 142A.3.2 Derivadas de Orden Tres y Cuatro . . . . . . . . . . . . . 143

A.4 Derivadas en Dos y Tres Dimensiones . . . . . . . . . . . . . . . 144A.4.1 Derivadas en Dos Dimensiones . . . . . . . . . . . . . . . 144A.4.2 Derivadas en Tres Dimensiones . . . . . . . . . . . . . . . 146

B Consideraciones Sobre la Implementación de Métodos de Solu-ción de Grandes Sistemas de Ecuaciones Lineales 148B.1 Métodos Directos . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

B.1.1 Factorización LU . . . . . . . . . . . . . . . . . . . . . . . 150B.1.2 Factorización Cholesky . . . . . . . . . . . . . . . . . . . . 151

B.2 Métodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . 152B.2.1 Método de Gradiente Conjugado . . . . . . . . . . . . . . 153B.2.2 Gradiente Conjugado Precondicionado . . . . . . . . . . . 157

[email protected] 2 Antonio Carrillo Ledesma, Et alii

Page 4: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

B.2.3 Método Residual Mínimo Generalizado . . . . . . . . . . . 159B.3 Precondicionadores . . . . . . . . . . . . . . . . . . . . . . . . . . 161

B.3.1 Precondicionador a Posteriori . . . . . . . . . . . . . . . . 163B.3.2 Precondicionador a Priori . . . . . . . . . . . . . . . . . . 166

B.4 Estructura Óptima de las Matrices en su Implementación Com-putacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168B.4.1 Matrices Bandadas . . . . . . . . . . . . . . . . . . . . . . 170B.4.2 Matrices Dispersas . . . . . . . . . . . . . . . . . . . . . . 171B.4.3 Multiplicación Matriz-Vector . . . . . . . . . . . . . . . . 173

C Marco Teórico del Espacio de Vectores Derivados DVS 175C.1 Formulaciones Dirichlet-Dirichlet y Neumann-Neumann a Nivel

Continuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175C.2 El Problema no Precondicionado Dirichlet-Dirichlet . . . . . . . . 177C.3 El Problema no Precondicionado Neumann-Neumann . . . . . . 178C.4 Discretización del Dominio para los Métodos Duales y Primales . 179C.5 Una Verdadera Descomposición de Dominio sin Traslapes . . . . 181C.6 El Problema Original . . . . . . . . . . . . . . . . . . . . . . . . . 185C.7 El Espacio de Vectores Derivado . . . . . . . . . . . . . . . . . . 187C.8 Discretización Partiendo de la Construcción de la Matriz At . . . 190C.9 El Problema General con Restricciones . . . . . . . . . . . . . . . 193

D Formulaciones Dirichlet-Dirichlet y Neumann-Neumann en elMarco del Espacio de Vectores Derivados DVS 195D.1 Algoritmos no Precondicionados . . . . . . . . . . . . . . . . . . 196

D.1.1 Algoritmo del Complemento de Schur . . . . . . . . . . . 196D.1.2 Formulación Dual del Problema Neumann-Neumann . . . 196D.1.3 Formulación Primal del Problema Neumann-Neumann . . 197D.1.4 Segunda Formulación Dual del Problema Neumann-

Neumann . . . . . . . . . . . . . . . . . . . . . . . . . . . 198D.2 Algoritmos Precondicionados . . . . . . . . . . . . . . . . . . . . 199

D.2.1 Versión DVS del Algoritmo BDDC . . . . . . . . . . . . . 199D.2.2 Versión DVS del Algoritmo FETI-DP . . . . . . . . . . . 200D.2.3 Formulación Primal Precondicionada del Problema Neumann-

Neumann . . . . . . . . . . . . . . . . . . . . . . . . . . . 202D.2.4 Segunda Formulación Dual Precondicionada del Problema

Neumann-Neumann . . . . . . . . . . . . . . . . . . . . . 203D.3 El Operador de Steklov-Poincaré . . . . . . . . . . . . . . . . . . 204

E Consideraciones Sobre la Formulación Numérica y su Imple-mentación Computacional de DVS 210E.1 Matrices Virtuales y Susceptibles de Construir . . . . . . . . . . 210E.2 Evaluación de la Matriz S con Nodos Primales Definidos . . . . . 211E.3 Evaluación de la Matriz S−1 con Nodos Primales Definidos . . . 213E.4 Cálculo de los Nodos Interiores . . . . . . . . . . . . . . . . . . . 214E.5 Descomposición de Schur sin Nodos Primales . . . . . . . . . . . 214

[email protected] 3 Antonio Carrillo Ledesma, Et alii

Page 5: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

E.6 DVS para Ecuaciones Escalares y Vectoriales . . . . . . . . . . . 215

F El Cómputo en Paralelo 220F.1 Arquitecturas de Software y Hardware . . . . . . . . . . . . . . . 220

F.1.1 Clasificación de Flynn . . . . . . . . . . . . . . . . . . . . 220F.1.2 Categorías de Computadoras Paralelas . . . . . . . . . . . 222

F.2 Métricas de Desempeño . . . . . . . . . . . . . . . . . . . . . . . 227F.3 Cómputo Paralelo para Sistemas Continuos . . . . . . . . . . . . 229F.4 Escalabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

G Implementación Computacional del Método de Diferencias Fini-tas para la Resolución de Ecuaciones Diferenciales Parciales 239G.1 Implementación en Octave (MatLab) . . . . . . . . . . . . . . . . 239G.2 Implementación en SciLab . . . . . . . . . . . . . . . . . . . . . . 243G.3 Implementación en C++ . . . . . . . . . . . . . . . . . . . . . . . 252G.4 Implementación en Python . . . . . . . . . . . . . . . . . . . . . 254G.5 Implementación en Java . . . . . . . . . . . . . . . . . . . . . . . 256G.6 Implementación en MONO (C#) . . . . . . . . . . . . . . . . . . 259G.7 Implementación en Fortran . . . . . . . . . . . . . . . . . . . . . 262G.8 Implementación en C . . . . . . . . . . . . . . . . . . . . . . . . . 264

H Bibliografía 268

[email protected] 4 Antonio Carrillo Ledesma, Et alii

Page 6: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

1 Introducción

Los sistemas continuos –sistemas físicos macroscópicos (véase [1])–, tales comolos yacimientos petroleros, la atmósfera, los campos electromagnéticos, los océa-nos, el aparato circulatorio de los seres humanos, la corteza terrestre y muchosotros sistemas de interés en Ciencia y en Ingeniería, al modelarse, estos contienenun gran número de grados de libertad1 .

Los modelos matemáticos de los sistemas continuos (véase [60] y [10]) sonsistemas de ecuaciones diferenciales, las cuales son parciales –con valores ini-ciales y condiciones de frontera– para casi todos los sistemas de mayor interésen la Ciencia y la Ingeniería. Salvo por los problemas más sencillos, no es posibleobtener por métodos analíticos las soluciones de tales ecuaciones, que son lasque permiten predecir el comportamiento de los sistemas continuos y realizarlas simulaciones requeridas.

La capacidad para formular los modelos matemáticos de sistemas continuoscomplicados y de gran diversidad, es sin duda una contribución fundamentalpara el avance de la Ciencia y sus aplicaciones, tal contribución quedaría in-completa y, debido a ello, sería poco fecunda, si no se hubiera desarrolladosimultáneamente su complemento esencial: los métodos numéricos y la com-putación electrónica.

Sin embargo, la solución numérica y las simulaciones computacionales deproblemas concomitantes en Ciencias e Ingenierías han llevado al límite nuestraactual capacidad de predicción, por la gran cantidad de grados de libertad quenecesitan nuestros modelos para tratar de representar a la realidad.

Con el desarrollo de nuevas herramientas numéricas y computacionales, ladiversidad y complejidad de problemas que pueden ser tratados de forma sa-tisfactoria y eficiente es impresionante. Pero hay que destacar, que todavía hayuna gama de problemas que hasta la fecha no es posible resolver satisfactoria-mente o con la precisión deseada –como la predicción climática a largo plazo osimulación de recuperación mejorada en yacimientos petroleros, entre otros–.

1.1 Antecedentes

La solución numérica de ecuaciones diferenciales parciales por los esquemastradicionales –tipo Diferencias Finitas, Volumen Finito y Elemento Finito–reducen el problema a la generación y solución de un –cada vez más grande–sistema algebraico de ecuaciones (véase [3]). La factorización directa de sistemasde gran escala O(106) con toda su eficacia, no es, en general una opción viable,y el uso de métodos iterativos básicos –tales como el método de gradiente con-jugado o residual mínimo generalizado– resultan en una convergencia bastantelenta con respecto a otras formas de discretización como son los métodos dedescomposición de dominio (véase [6] y [8]).

El desarrollo de métodos numéricos para sistemas algebraicos grandes, escentral en el desarrollo de códigos eficientes para la solución de problemas en

1El número de grados de libertad en un sistema físico se refiere al número mínimo denúmeros reales que es necesario especificar para determinar completamente el estado físico.

[email protected] 5 Antonio Carrillo Ledesma, Et alii

Page 7: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Ciencia e Ingeniería, actualmente cuando se necesita implementar una solucióncomputacional, se dispone de bibliotecas optimizadas2 para la solución de sis-temas lineales que pueden correr en ambientes secuenciales y/o paralelos. Estasbibliotecas implementan métodos algebraicos robustos para muchos problemasprácticos, pero sus discretizaciones no pueden ser construidas por sólo técni-cas algebraicas simples, tales como aproximaciones a la inversa o factorizaciónincompleta.

En la actualidad, los sistemas computacionales paralelos son ubicuos. Enellos es posible encontrar más de una unidad de procesamiento, conocidas comoNúcleo (Core). El número de Cores es creciente conforme avanza la tecnología,esto tiene una gran importancia en el desarrollo eficiente de algoritmos queresuelvan sistemas algebraicos en implementaciones paralelas. Actualmente lagran mayoría de los algoritmos desarrollados son algoritmos secuenciales y suimplantación en equipos paralelos no es óptima, pero es una práctica comúnusar diversas técnicas de seudoparalelización –a veces mediante la distribuciónde una gran matriz en la memoria de los múltiples Cores y otras mediante eluso de directivas de compilación–, pero la eficiencia resultante es pobre y noescalable a equipos masivamente paralelos por la gran cantidad de comunicacióninvolucrada en la solución.

Para hacer eficiente la solución de sistemas de ecuaciones diferenciales par-ciales, se introdujeron los métodos de descomposición de dominio que toman encuenta la ecuación diferencial parcial y su discretización, permitiendo una altaeficiencia computacional en diversas arquitecturas paralelas (véase [6] y [8]). Laidea básica detrás de los métodos de descomposición de dominio es que en lugarde resolver un enorme problema sobre un dominio, puede ser conveniente –onecesario– resolver múltiples problemas de tamaño menor sobre un solo sub-dominio un cierto número de veces. Mucho del trabajo en la descomposición dedominio se relaciona con la selección de subproblemas que aseguren que la razónde convergencia del nuevo método iterativo sea rápida. En otras palabras, losmétodos de descomposición de dominio proveen precondicionadores a priori quepuedan acelerarse por métodos en el espacio de Krylov (véase [19]).

1.2 Métodos de Descomposición de Dominio

La descomposición de dominio generalmente se refiere a la separación de unaecuación diferencial parcial o una aproximación de ella dentro de problemasacoplados sobre subdominios pequeños formando una partición del dominio ori-ginal. Esta descomposición puede hacerse a nivel continuo, donde diferentesmodelos físicos, pueden ser usados en diferentes regiones, o a nivel discreto,donde puede ser conveniente el empleo de diferentes métodos de aproximaciónen diferentes regiones, o en la solución del sistema algebraico asociado a laaproximación de la ecuación diferencial parcial –estos tres aspectos están ínti-mamente interconectados en la práctica (véase [19])–.

2Como pueden ser las bibliotecas ATLAS –http://math-atlas.sourceforge.net– y HYPRE–http://acts.nersc.gov/hypre/– entre muchas otras.

[email protected] 6 Antonio Carrillo Ledesma, Et alii

Page 8: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Los método de descomposición de dominio –Domain Decomposition Metho-ds (DDM)– se basan en la suposición de que dado un dominio Ω ⊂ Rn, se puede

particionar en E subdominios Ωi, i = 1, 2, ..., E; tales que Ω =

(E⋃

i=1

Ωi

), entre

los cuales puede o no existir traslape (véase [3] y [19]). Entonces, el problemaes reformulado en términos de cada subdominio –mediante el uso de algúnmétodo de discretización– obteniendo una familia de subproblemas de tamañoreducido independientes entre sí, y que están acoplados a través de la soluciónen la interfase –que es desconocida– de los subdominios.

De esta manera, se puede clasificar de forma burda a los métodos de descom-posición de dominio (véase [6]), como aquellos en que: existe traslape entre lossubdominios y en los que no existe traslape. A la primera clase pertenece elmétodo de Schwarz –en el cual el tamaño del traslape es importante en la con-vergencia del método– y a los de la segunda clase pertenecen los métodos deltipo subestructuración –en el cual los subdominios sólo tienen en común a losnodos de la interfase o frontera interior–.

Desde hace ya algún tiempo, la comunidad internacional3 inicio el estudiointensivo de los métodos de descomposición de dominio, la atención se ha des-plazado (véase [9]) de los métodos con traslape en el dominio (véase [50]) a losmétodos sin traslape en el dominio (véase [43], [44], [45], [46] y [47]), ya que estosúltimos son más efectivos para una gran variedad de problemas de la Ciencia yla Ingeniería.

Los métodos de descomposición de dominio sin traslape son un paradigmanatural usado por la comunidad de modeladores (véase [1]). Los sistemas físi-cos son descompuestos en dos o más subdominios contiguos basados en consi-deraciones fenomenológicas o computacionales. Esta descomposición se reflejaen la Ingeniería de Software del código correspondiente, además, el uso de laprogramación orientada a objetos, permite dividir en niveles la semántica de lossistemas complejos, tratando así con las partes, más manejables que el todo, per-mitiendo una implementación, extensión y mantenimiento sencillo (véase [17]).

Tomando en cuenta que los métodos de descomposición de dominio sintraslape son fácilmente implementados para su uso en computadoras paralelasmediante técnicas de programación orientada a objetos –porqué el algoritmodel método es paralelo—, además, con los continuos avances en cómputo, enparticular, en la computación en paralelo mediante equipos de cómputo de altodesempeño y/o Clusters parecen ser el mecanismo más efectivo para incrementarla capacidad y velocidad de resolución de varios tipos de problemas de interésen Ciencias e Ingenierías usando métodos de descomposición de dominio (véase[44], [45], [46], [48] y [49]).

La implementación de los métodos de descomposición de dominio permite

3Ello se refleja en las más de 19 conferencias internacionales de Métodos Descomposiciónde Dominio (véase [18]) y de las cuales se han publicado 14 libros que recopilan los trabajosmás relevantes de cada conferencia. Además de varios mini simposios de descomposición dedominio en congresos mundiales como es el World Congress on Computational Mechanics o elIberian Latin American Congress on Computational Methods in Engineering.

[email protected] 7 Antonio Carrillo Ledesma, Et alii

Page 9: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

utilizar de forma eficiente, las crecientes capacidades del cómputo en paralelo(véase [18] y [19]) –Grids4 de decenas de Clusters, cada uno con cientos o milesde procesadores interconectados por red, con un creciente poder de cómputomedible en Peta Flops–, así como el uso de una amplia memoria –ya seadistribuida y/o compartida del orden de Tera Bytes–, permitiendo atacar unagran variedad de problemas que sin estas técnicas es imposible hacerlo de maneraflexible y eficiente. Pero hay que notar que existe una amplia gama de problemasque se necesitan resolver, los cuales superan la capacidad de cómputo actual,ya sea por el tiempo requerido para su solución, por el consumo excesivo dememoria o ambos.

Así, los métodos de descomposición de dominio que introducen desde laformulación matemática del problema una separación natural de las tareas arealizar y simplifican considerablemente la transmisión de información entrelos subdominios (véase [19]), en conjunción con la programación orientada aobjetos y el cómputo en paralelo forman una amalgama poderosa. La cualpermite construir aplicaciones que coadyuven en la solución una gran gama deproblemas concomitantes en Ciencias e Ingenierías que requieren hacer uso deuna gran cantidad de grados de libertad.

Por otro lado, la lista de los métodos de descomposición de dominio y el tipode problemas que pueden ser atacados por estos, es grande y está en constanteevolución (véase [18] y [19]), ya que se trata de encontrar un equilibrio entrela complejidad del método –aunada a la propia complejidad del modelo–, laeficiencia en el consumo de los recursos computacionales y la precisión esperadaen la solución encontrada por los diversos métodos y las arquitecturas paralelasen la que se implante.

1.3 Objetivos

El presente trabajo tiene por objetivo el hacer una introducción al Método deDiferencias Finitas (MDF) y su implementación computacional, este método esde carácter general que permite la resolución aproximada de ecuaciones dife-renciales en derivadas parciales definidas en un dominio finito. Es de una gransencillez conceptual y constituye un procedimiento muy adecuado para la reso-lución de una ecuación en una, dos o tres dimensiones.

El método consiste en una aproximación de las derivadas parciales por expre-siones algebraicas con los valores de la variable dependiente en un número finitode puntos seleccionados en el dominio. Como resultado de la aproximación,la ecuación diferencial parcial que describe el problema es remplazada por unnúmero finito de ecuaciones algebraicas, en términos de los valores de la variabledependiente en los puntos seleccionados. El valor de los puntos seleccionados de

4Bajo el Macroproyecto: Tecnologías para la Universidad de la Información y la Com-putación de la UNAM, se interconectaron cuatro Cluster heterogéneos –dos en la Facultadde Ciencias, uno en el Instituto de Geofísica y otro en el Instituto de Matemáticas Aplicadasy Sistemas– con redes no dedicadas y en ellos se probo una versión de los códigos, en loscuales se vio que es factible el uso en Grids y si estos cuentan con una red dedicada –de altavelocidad– su eficiencia puede llegar a ser alta.

[email protected] 8 Antonio Carrillo Ledesma, Et alii

Page 10: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

convierten en las incógnitas. La solución del sistema de ecuaciones algebraicopermite obtener la solución aproximada en cada punto seleccionado de la malla.

Objetivos Generales Mostraremos la parte teórica del método de Diferen-cias Finitas y como implementar soluciones computacional en una, dos y tres di-mensiones para resolver ecuaciones diferenciales parciales – elípticas, parabóli-cas e hiperbólicas– con condiciones de frontera Dirichlet, Neumann o Robin.

Objetivos Particulares La implementación computacional básica del métodode Diferencias Finitas fué hecha en los paquetes de cómputo OCTAVE (Mat-Lab), SciLab y en los lenguajes de programación C++, Python, Java, Mono(C#), Fortran y C.

Además, el modelo computacional generado para la parelización de los méto-dos de descomposición de dominio –Método de Descomposición de Dominiode Subestructuración (DDM) y Métodos del Espacio de Vectores Derivados(DVS)–, está contenido en un programa de cómputo bajo el paradigma de pro-gramación orientada a objetos, programado en el lenguaje C++ en su formasecuencial y en su forma paralela en C++ y la interfaz de paso de mensajes(MPI) bajo el esquema Maestro-Esclavo.

Para desarrollar estos códigos, se realizó una jerarquía de clases5 para cadauno de los distintos componentes del sistema de descomposición de dominio enbase a clases abstractas, las cuales reducen la complejidad del esquema DDM yDVS, permitiendo usarlo tanto en forma secuencial como paralela redefiniendosólo algunos comportamientos.

Estos ejemplos y el presente texto se pueden descargar de la página WEB:

http://mmc.geofisica.unam.mx/acl/MDF/

desde GitHub6 (https://github.com/antoniocarrillo69/MDF) mediante:

git clone git://github.com/antoniocarrillo69/MDF.git

desde GitLab7 (https://githlab.com/antoniocarrillo69/MDF) mediante:

git clone https://gitlab.com/antoniocarrillo69/MDF.git

5Hay que notar que, el paradigma de programación orientada a objetos sacrifica algo deeficiencia computacional por requerir mayor manejo de recursos computacionales al momentode la ejecución. Pero en contraste, permite mayor flexibilidad a la hora de adaptar los códigosa nuevas especificaciones. Adicionalmente, disminuye notoriamente el tiempo invertido en elmantenimiento y búsqueda de errores dentro del código. Esto tiene especial interés cuandose piensa en la cantidad de meses invertidos en la programación comparada con los segundosconsumidos en la ejecución.

6GitHub es una plataforma de desarrollo colaborativo para alojar proyectos usando elsistema de control de versiones GIT.

7GitLab es una plataforma de desarrollo colaborativo para alojar proyectos usando el sis-tema de control de versiones GIT.

[email protected] 9 Antonio Carrillo Ledesma, Et alii

Page 11: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

1.4 Infraestructura Computacional Usada

La programación, depuración y puesta a punto de los códigos fue hecha en elsiguiente equipo:

• Notebook Intel dual Core a 1.7 GHtz con 2 GB de RAM en Linux/GNUDebian, haciendo uso del compilador C++ GNU y MPICH para el pasode mensajes.

• PC Intel Quad Core a 2.4 GHtz con 3 GB de RAM en Linux/GNU De-bian, haciendo uso del compilador C++ GNU y MPICH para el paso demensajes.

Las pruebas de rendimiento de los distintos programas se realizaron enequipos multiCore y Clusters a los que se tuvo acceso y que están montadosen la Universidad Nacional Autónoma de México, en las pruebas de análisis derendimiento se usó el siguiente equipo:

• Cluster homogéneo Kanbalam de 1024 Cores AMD Opteron a 2.6 GHtz de64 bits, cada 4 Cores con 8 GB de RAM interconectados con un switch de10 Gbps ubicado en el Departamento de Supercómputo de la D.G.C.T.I.Cde la UNAM.

• Cluster homogéneo Olintlali de 108 Cores emulando 216 hilos, Intel Xeona 2.67 GHtz, 9 nodos con 6 Cores y 8 hilos de ejecución con 48 GB RAMinterconectados con GIGE 10/100/1000 Gb/s, a cargo del Dr. IsmaelHerrera Revilla del Departamento de Recursos Naturales del Instituto deGeofísica de la UNAM.

• Cluster homogéneo Pohualli de 104 Cores Intel Xeon a 2.33 GHtz de 64bits, cada 8 Cores cuentan con 32 GB de RAM interconectados con unswitch de 1 Gbps, a cargo del Dr. Víctor Cruz Atienza del Departamentode Sismología del Instituto de Geofísica de la UNAM.

• Cluster homogéneo IO de 22 Cores Intel Xeon a 2.8 GHtz de 32 bits, cada2 Cores con 1 GB de RAM interconectados con un switch de 100 Mbps,a cargo de la Dra. Alejandra Arciniega Ceballos del Departamento deVulcanología del Instituto de Geofísica de la UNAM.

• PC de alto rendimiento Antipolis de 8 Cores Intel Xeon a 2.33 GHtzde 64 bits y 32 GB de RAM, a cargo del Dr. Víctor Cruz Atienza delDepartamento de Sismología del Instituto de Geofísica de la UNAM.

[email protected] 10 Antonio Carrillo Ledesma, Et alii

Page 12: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

2 Método de Diferencias Finitas

En la búsqueda de una descripción cualitativa de un determinado fenómeno,por lo general se plantea un sistema de ecuaciones diferenciales ordinarias oparciales, validas para cierto dominio y donde se imponen sobre este, una serie decondiciones en la frontera y en su caso de condiciones iniciales. Después de esto,el modelo matemático se considera completo, y es aquí donde la implementacióncomputacional entra a ayudar en la solución del problema, ya que sólo es posibleresolver de forma exacta problemas simples y en fronteras geométricas trivialescon los métodos matemáticos que disponemos.

En esta sección consideraremos como implementar la solución computacionaldel Método de Diferencias Finitas, este método es de carácter general que per-mite la resolución aproximada de ecuaciones diferenciales en derivadas parcialesdefinidas en un dominio finito. Es de una gran sencillez conceptual y constituyeun procedimiento muy adecuado para la resolución de una ecuación en una, doso tres dimensiones.

El método consiste en una aproximación de las derivadas parciales por expre-siones algebraicas con los valores de la variable dependiente en un número finitode puntos seleccionados en el dominio8 . Como resultado de la aproximación,la ecuación diferencial parcial que describe el problema es remplazada por unnúmero finito de ecuaciones algebraicas, en términos de los valores de la variabledependiente en los puntos seleccionados. El valor de los puntos seleccionados deconvierten en las incógnitas. La solución del sistema de ecuaciones algebraicopermite obtener la solución aproximada en cada punto seleccionado de la malla.

2.1 Método de Diferencias Finitas en una Dimensión

Sin perdida de generalidad, consideremos la ecuación diferencial parcial

(p (x)u′ (x))′+ q (x)u′ (x)− r (x)u (x) = f (x) (2.1)

en a ≤ x ≤ b donde: u (a) = uα y u (b) = uβ

con condiciones de frontera Dirichlet, Neumann o Robin. Para usar el proced-imiento general de solución numérica mediante el método de diferencias finitas,debemos de:

1. Generar una malla del dominio, i.e. una malla es un conjunto finito depuntos en los cuales buscaremos la solución aproximada a la ecuacióndiferencial parcial.

2. Sustituir las derivadas correspondientes con alguna de las formulas dediferencias finitas centradas (véase A.1 y A.3), en cada punto donde lasolución es desconocida para obtener un sistema lineal algebraico de ecua-ciones Au = f .

8La técnica fundamental para los cálculos numéricos en diferencias finitas se basa en aprox-imar f(x) mediante un polinomio cerca de x = x0. Una de las aproximaciones clásicas esmediante la serie de Taylor, la cual también nos permite, aparte de la aproximación de lasderivadas, el cálculo del error en la aproximación mediante su fórmula del residuo.

[email protected] 11 Antonio Carrillo Ledesma, Et alii

Page 13: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

3. Resolver el sistema lineal algebraico de ecuaciones Au = f (véase B), yasí obtener la solución aproximada en cada punto de la malla.

2.1.1 Problema con Condiciones de Frontera Dirichlet

Consideremos un caso particular de la Ec.(2.1) definido por la ecuación

u′′(x) = f(x), 0 ≤ x ≤ 1, u(0) = uα, u(1) = uβ (2.2)

con condiciones de frontera Dirichlet. Para usar el procedimiento general desolución numérica mediante el método de diferencias finitas, debemos de:

1. Generar una malla homogénea del dominio9

xi = ih, i = 0, 1, ..., n, h =1

n= ∆x (2.3)

2. Sustituir la derivada con la Ec.(A.24) en cada punto donde la soluciónes desconocida para obtener un sistema algebraico de ecuaciones. Así, encada punto xi de la malla aproximamos la ecuación diferencial por10

u′′(xi) ≈u(xi − h)− 2u(x) + u(xi + h)

h2(2.4)

o en su forma simplificada

u′′(xi) ≈ui−1 − 2ui + ui+1

h2(2.5)

definiendo la solución aproximada de u(x) en xi como ui, entonces segenera el siguiente sistema lineal de ecuaciones

uα − 2u1 + u2h2

= f(x1)

u1 − 2u2 + u3h2

= f(x2)

...ui−1 − 2ui + ui+1

h2= f(xi) (2.6)

...un−3 − 2un−2 + un−1

h2= f(xn−2)

un−2 − 2un−1 + uβ

h2= f(xn−1).

9En el caso de que la malla no sea homogénea, es necesario incluir en la derivada a queh se refiere, por ejemplo en cada punto i, tenemos la hi− (por la izquierda) y la hi+ (por la

derecha), i.e. u′′(xi) ≈u(xi−hi−)−2u(x)+u(xi+hi+)

(hi−)(hi+).

10Notemos que en cada punto de la malla, la aproximación por diferencias finitas suponela solución de tres puntos de la malla xi−1, xi y xi+1. El conjunto de estos tres puntos de lamalla es comúnmente llamado el esténcil de diferencias finitas en una dimensión.

[email protected] 12 Antonio Carrillo Ledesma, Et alii

Page 14: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Este sistema de ecuaciones se puede escribir como la matriz A y los vec-tores u y f de la forma

− 2h2

1h2

1h2

− 2h2

1h2

1h2

− 2h2

1h2

. . .. . .

. . .1h2

− 2h2

1h2

1h2

− 2h2

u1u2u3...

un−2un−1

=

f(x1)− uαh2

f(x2)f(x3)...

f(xn−2)f(xn−1)− uβ

h2

.

en este caso, podemos factorizar 1/h2 del sistema lineal Au = f , quedandocomo

1

h2

−2 11 −2 1

1 −2 1. . .

. . .. . .

1 −2 11 −2

u1u2u3...

un−2un−1

=

f(x1)− uαh2

f(x2)f(x3)...

f(xn−2)f(xn−1)− uβ

h2

.

esta última forma de expresar el sistema lineal algebraico asociado espreferible para evitar problemas numéricos al momento de resolver elsistema lineal por métodos iterativos (véase B.2) principalmente cuandoh→ 0.

3. Resolver el sistema lineal algebraico de ecuaciones Au = f (véase B),obtenemos la solución aproximada en cada punto interior de la malla. Lasolución completa al problema la obtenemos al formar el vector

[uα u1 u2 u3 · · · un−2 un−1 uβ

].

Uno de los paquetes más conocidos y usados para el cálculo numérico esMatLab11 el cual tiene un alto costo monetario para los usuarios. Por ello, unaopción es usar alternativas desarrolladas usando licencia de código abierto, unpar de estos paquetes son: GNU OCTAVE12 y SCILAB13 .

Octave corre gran parte del código desarrollado para MatLab sin requerircambio alguno, en cuanto a SCILAB es requerido hacer algunos ajustes en la11MatLab es un programa comercial para el cálculo numérico el cual provee

un poderoso ambiente de cálculo para aplicaciones Científicas y de Ingeniería[http://www.mathworks.com.products/matlab.html].12GNU OCTAVE es un programa open source para el cálculo numérico el cual

provee un poderoso ambiente de cálculo para aplicaciones Científicas y de Ingeniería[http://www.gnu.org/software/octave].13SCILAB es un programa open source para el cálculo numérico el cual provee un poderoso

ambiente de cálculo para aplicaciones Científicas y de Ingeniería [http://www.scilab.org].

[email protected] 13 Antonio Carrillo Ledesma, Et alii

Page 15: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

codificación y ejecución. En los siguientes ejemplos14 se mostrará como im-plementar la solución computacional. En la sección (G) se mostrará la imple-mentación en diversos paquetes y lenguajes de programación.

Ejemplo 1 Sea

−u′′(x) = −π2 cos(πx), xi ≤ x ≤ xf, u(xi) = vi, u(xf) = vf

El programa queda implementado en OCTAVE (MatLab) como:function [A,b,x] = fdm1d(xi,xf,vi,vf,n)

N=n-2; % Nodos interioresh=(xf-xi)/(n-1); % Incremento en la malla%A = sparse(N,N); % Matriz SPARSEA=zeros(N,N); % Matriz Ab=zeros(N,1); % Vector bR=1/(h^2);P=-2/(h^2);Q=1/(h^2);% Primer renglon de la matriz A y vector bA(1,1)=P;A(1,2)=Q;b(1)=LadoDerecho(xi)-vi*R;% Renglones intermedios de la matriz A y vector bfor i=2:N-1

A(i,i-1)=R;A(i,i)=P;A(i,i+1)=Q;b(i)=LadoDerecho(xi+h*(i-1));

end% Renglon final de la matriz A y vector bA(N,N-1)=R;A(N,N)=P;b(N)=LadoDerecho(xi+h*N)-vf*Q;% Resuleve el sistema lineal Ax=bx=inv(A)*b;% Prepara la graficacionxx=zeros(n,1);zz=zeros(n,1);for i=1:n

14Los ejemplos que se muestran en el presente texto se pueden descargar de la página WEB:

http://mmc.geofisica.unam.mx/acl/MDF/

o desde GitHub (https://github.com/antoniocarrillo69/MDF) mediante

git clone git://github.com/antoniocarrillo69/MDF.git

[email protected] 14 Antonio Carrillo Ledesma, Et alii

Page 16: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

xx(i)=xi+h*(i-1);zz(i)=SolucionAnalitica(xx(i));

endyy=zeros(n,1);yy(1)=vi; % Condicion inicialfor i=1:N

yy(i+1)=x(i);endyy(n)=vf; % Condicion inicial% Grafica la solucion de la Ecuacion Diferencial Parcial en 1Dplot(xx,[yy,zz]);

endfunctionfunction y=LadoDerecho(x)

y=-pi*pi*cos(pi*x);endfunctionfunction y=SolucionAnalitica(x)

y=cos(pi*x);endfunction

Si el programa lo grabamos en el directorio de trabajo con el nombre fdm1d.m,entonces se puede ejecutar en la consola de OCTAVE (MatLab) mediante

[A, b, x] = fdm1d(−1, 2,−1, 1, 30);

donde es necesario indicar el inicio (−1) y fin (2) del dominio, el valor de lacondición de frontera de inicio (−1) y fin (1), además de el número de nodos(30) en la partición. La ejecución genera la gráfica de la solución calculada porel método de diferencias finitas y la solución analítica en los mismos puntos dela malla, además devuelve la matriz15 y los vectores A, b, x generados por lafunción.

En OCTAVE (MatLab) es posible introducir funciones para que pasen cómoparámetros a otra función, de tal forma que se puede definir un programagenérico de diferencias finitas en una dimensión con condiciones de fronteraDirichlet en el cual se especifiquen los parámetros de la ecuación en la línea decomando de OCTAVE.

Usando este hecho, implementamos un programa para codificar el Método deDiferencias Finitas en una Dimensión para resolver el problema con condicionesDirichlet

p(x)u′′ + q(x)u′ + r(x)u = f(x)

15En Octave (MatLab) se define a una matriz mediante A = zeros(N,N), este tipo de matrizno es adecuada para nuestros fines (véase capítulo B). Para ahorrar espacio y acelerar loscálculos numéricos que se requieren para resolver el sistema lineal asociado usamos un tipo dematriz que no guarda valores innecesarios (ceros), esto se hace mediante la declaración de lamatriz como A = sparse(N,N).

[email protected] 15 Antonio Carrillo Ledesma, Et alii

Page 17: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

definido en el dominio [xi, xf ] y valores en la frontera de u(xi) = vi y u(xf) =vf , además se le indica el tamaño de la partición n, si se graficará la soluciónindicando en grf = 1, con solución analítica s(x) y si a ésta se proporcionaentonces sws = 1. Regresando la matriz y los vectores Au = b del sistema linealgenerado así como los puntos del dominio y los valores de la solución en dichospuntos x, V , para cada problema que deseemos resolver.

Ejemplo 2 El programa queda implementado en OCTAVE (MatLab) como:function [error,A,b,u,x,V] = fdm1d_DD(p,q,r,f,xi,xf,vi,vf,n,grf,s,sws)

if n < 3return

end% Numero de incognitas del problematm = n -2;% Declaracion de la matriz y vectores de trabajo%A = sparse(tm,tm);A = zeros(tm,tm); % Matriz de cargab = zeros(tm,1); % Vector de cargau = zeros(tm,1); % Vector de solucionx = zeros(n,1); % Vector de coordenadas de la particionV = zeros(n,1) ; % Vector solucionh = (xf-xi)/(n-1);h1 = h*h;% Llenado de los puntos de la mallafor i = 1: n,

x(i) = xi + (i-1)*h;end% Llenado de la matriz y vectorb(1) = f(xi) - p(xi)*(vi/h1);A(1,2) = p(x(1))/h1 - q(x(1))/(2.0*h);A(1,1) = ((-2.0 * p(x(1))) / h1) + r(x(1));for i=2:tm-1,

A(i,i-1) = p(x(i))/h1 - q(x(i))/(2.0*h);A(i,i) = ((-2.0 * p(x(i))) / h1) + r(x(i));A(i,i+1) = p(x(i))/h1 + q(x(i))/(2.0*h);b(i) = f(x(i));

endA(tm,tm-1) = p(x(tm))/h1 - q(x(tm))/(2.0*h);A(tm,tm) = ((-2.0 * p(x(tm))) / h1) + r(x(tm));b(tm) = f(x(tm+1))-p(x(tm+1))*(vf/h1);% Soluciona el sistemau = inv(A)*b;% Copia la solucion obtenida del sistema lineal al vector solucionV(1) = vi;for i=1:tm,

V(i+1) = u(i);

[email protected] 16 Antonio Carrillo Ledesma, Et alii

Page 18: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

endV(n) = vf;% Encuentra el error en norma infinita usando una particion par = 10error = 0;if sws == 1

par = 10;for i = 1: n-1,

inc = (x(i+1)-x(i))/par;for j = 1:par+1,

px = x(i)+inc*(j-1);e = abs(s(px)-l(px,x(i),V(i),x(i+1),V(i+1)));if e > error

error = e;end

endend

end% Revisa si se graficaraif grf == 1

if sws == 1% Calcula la solucion analitica en la particion de calculoua = zeros(n,1);for i = 1: n,

ua(i) = s(x(i));end

end% Graficar la solucion numericaplot(x,V,’o’);hold% Graficar la solucion analitica en una particion de tamano xPartif sws == 1

xPart = 1000;h = (xf-xi)/(xPart-1);xx = zeros(xPart,1);xa = zeros(xPart,1);for i = 1: xPart,

xx(i) = xi + (i-1)*h;xa(i) = s(xx(i));

endplot(xx,xa);% Grafica el errorfigure(2);plot(x,V-ua);

endend

end

[email protected] 17 Antonio Carrillo Ledesma, Et alii

Page 19: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

% Evalua el punto x en la recta dada por los puntos (x1,y1) y (x2,y2), seusa para el calculo de la norma infinito

function y = l(x,x1,y1,x2,y2)y = y1+((y2-y1)/(x2-x1))*(x-x1);

end

De esta forma podemos implementar diversos problemas y ver su solución

Ejemplo 3 Sea

−u′′(x) = −π2cos(πx), −1 ≤ x ≤ 2, u(−1) = −1, u(2) = 1

para ejecutar el programa anterior es necesario escribir en la consola de OC-TAVE:

p=@(x) 1;q=@(x) 0;r=@(x) 0;f=@(x) -pi*pi*cos(pi*x);s=@(x) cos(pi*x);[error,A,b,u,x,V] = fdm1d_DD(p,q,r,f,-1,2,-1,1,11,1,s,1);

Otro ejemplo:

Ejemplo 4 Sea

u′′(x) + u = −π2cos(πx), 0 ≤ x ≤ 1, u(0) = 1, u(1) = −1

para ejecutar el programa anterior es necesario escribir en la consola de OC-TAVE:

p=@(x) 1;q=@(x) 0;r=@(x) 0;f=@(x) -pi*pi*cos(pi*x);s=@(x) cos(pi*x);[error,A,b,u,x,V] = fdm1d_DD(p,q,r,f,0,1,1,-1,40,1,s,1);

Ahora uno con un parámetro adicional (velocidad):

Ejemplo 5 Sea

−u′′(x) + v(x)u = 0, 0 ≤ x ≤ 1, u(0) = 0, u(1) = 1

para ejecutar el programa anterior es necesario escribir en la consola de OC-TAVE:

v=@(x) 1.0; % velocidadp=@(x) -1.0;

[email protected] 18 Antonio Carrillo Ledesma, Et alii

Page 20: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

q=@(x) v(x);r=@(x) 0;f=@(x) 0;s=@(x) (exp(v(x)*x)-1.0)/(exp(v(x))-1.0);[error,A,b,u,x,V] = fdm1d_DD(p,q,r,f,0,1,0,1,11,1,s,1);

En éste caso, la velocidad es v = 1.0 y nuestro programa lo puede resolversin complicación alguna. Si aumentamos la velocidad a v = 50.0 y volvemos acorrer el programa haciendo estos cambios, entonces:

Ejemplo 6 v=@(x) 50.0;[error,A,b,u,x,V] = fdm1d_DN(p,q,r,f,0,1,-1,0,-1,1,11,1,s,1);

Aún el programa lo resuelve bien, pero si ahora subimos la velocidad av = 100.0 y corremos nuevamente el programa, entonces:

Ejemplo 7 v=@(x) 100.0;[error,A,b,u,x,V] = fdm1d_DN(p,q,r,f,0,1,-1,0,-1,1,11,1,s,1);

Entonces tendremos que la solución oscila en torno al cero. Para corre-gir esto, tenemos algunas opciones: aumentar el número de nodos en la mallade discretización, usar una malla no homogénea refinada adecuadamente paratener un mayor número de nodos en donde sea requerido, usar fórmulas másprecisas para las derivadas o mejor aún, usar diferentes esquemas tipo Upwind,Scharfetter-Gummel y Difusión Artificial para implementar el Método de Dife-rencias Finitas, como se muestra a continuación.

Número de Péclet Para el problema general dado por la Ec.(2.1)

(p (x)u′ (x))′+ q (x)u′ (x)− r (x)u (x) = f (x) (2.7)

en a ≤ x ≤ b donde: u (a) = uα y u (b) = uβ

el término q (x)u′ (x) algunas veces es llamado el término advectivo16 si u es lavelocidad y puede ocasionar inestabilidad numérica en el Método de Dife-renciasFinitas como se mostró en el ejemplo anterior Ej.(7), para evitar dichas inesta-bilidades existen diversas técnicas de discretización mediante el análisis de lasolución considerando el Número de Péclet (local y global) y su implementaciónen el Método de Diferencias Finitas (véase [35]) mediante el esquema Upwind,Scharfetter-Gummel y Difusión Artificial, entre otros, para ello consideremos:

• Si las funciones p(x), q(x) y r(x) son constantes, el esquema de diferenciasfinitas centradas para todas las derivadas, éste está dado por el esténcil

pi

ui−1 − 2ui + ui+1

h2+ qi

ui+1 − ui−12h

− riui = fi i = 1, 2, ..., n. (2.8)

16Cuando la advección es fuerte, esto es cuando |q (x)| es grande, la ecuación se comportacomo si fuera una ecuación de onda.

[email protected] 19 Antonio Carrillo Ledesma, Et alii

Page 21: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

donde la ventaja de ésta discretización, es que el método es de segundoorden de exactitud. La desventaja es que los coeficientes de la matrizgenerada pueden no ser diagonal dominante si r (x) > 0 y p (x) > 0.Cuando la advección |p (x)| es grande, la ecuación se comporta como laecuación de onda.

• Tomando las funciones p(x, t), q(x, t) y r(x, t) más generales posibles, esnecesario hacer una discretización que garantice que el método es de se-gundo orden de exactitud, ésto se logra mediante la siguiente discretizaciónpara (p (x, t)u′ (x, t))′ mediante

∂x

(p∂u

∂x

)(x, t) ≃

[p

(x+

∆x

2, t

)u (x+∆x, t)− u (x, t)

∆x(2.9)

− p

(x− ∆x

2, t

)u (x, t)− u (x−∆x, t)

∆x

]/∆x

entonces se tiene que

p(ui+1, t)ui+1+ui

h− p (ui−1,t)

ui−ui−1h

h+ qi

ui+1 − ui−12h

− riui = fi (2.10)

para i = 1, 2, ..., n, (véase [52] pág. 78 y 79).

• El esquema mixto, en donde se usa el esquema de diferencias finitas cen-tradas para el término de difusión y el esquema upwind para el términode advección

pi

ui−1 − 2ui + ui+1

h2+ qi

ui+1 − ui−1h

− riui = fi, si qi ≥ 0(2.11)

pi

ui−1 − 2ui + ui+1

h2+ qi

ui − ui−1h

− riui = fi, si qi < 0

el propósito es incrementar el dominio de la diagonal. Este esquema es deorden uno de exactitud y es altamente recomendable su uso si |q (x)| ∼1/h, en caso de no usarse, se observará que la solución numérica oscilaalrededor del cero.

2.1.2 Problema con Condiciones de Frontera Neumann

Consideremos el problema

u′′(x) = f(x), 0 ≤ x ≤ 1 (2.12)

con condiciones de frontera Neumann

du

dx= cte1 en u(0) y

du

dx= cte2 en u(1)

para usar el procedimiento general de solución numérica mediante el métodode diferencias finitas, primero debemos discretizar las condiciones de frontera,

[email protected] 20 Antonio Carrillo Ledesma, Et alii

Page 22: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

una manera sería usar para la primera condición de frontera una aproximaciónusando diferencias progresivas Ec.(A.5)

du

dx

∣∣∣∣xi

=u(xi + h)− u(xi)

h

quedandou1 − u0

h= cte1 (2.13)

para la segunda condición de frontera una aproximación usando diferencias re-gresivas Ec.(A.10)

du

dx

∣∣∣∣xi

=u(xi)− u(xi − h)

h

quedandoun − un−1

h= cte2 (2.14)

pero el orden de aproximación no sería el adecuado pues estamos aproximando eldominio con diferencias centradas con un error local de truncamiento de segundoorden Oc(∆x2), en lugar de ello usaremos diferencias centradas Ec.(A.15) paratener todo el dominio con el mismo error local de truncamiento.

Para usar diferencias centradas Ec.(A.15)

du

dx

∣∣∣∣xi

=u(xi + h)− u(xi − h)

2h

en el primer nodo necesitamos introducir un punto de la malla ficticio x−1 =(x0 −∆x) con un valor asociado a u−1, entonces

u1 − u−12h

= cte1 (2.15)

así también, en el último nodo necesitamos introducir un punto de la mallaficticio xn+1 = (xn +∆x) con un valor asociado a un+1, obteniendo

un+1 − un−12h

= cte2. (2.16)

Éstos valores no tienen significado físico alguno, dado que esos puntos se en-cuentran fuera del dominio del problema. Entonces debemos de:

1. Generar una malla homogénea del dominio

xi = ih, i = 0, 1, ..., n, h =1

n= ∆x. (2.17)

2. Sustituir la derivada con la Ec.(A.24)17 en cada punto donde la soluciónes desconocida para obtener un sistema algebraico de ecuaciones. Así, en

17Para mantener la estabilidad es necesario tomar en cuenta las distintas formas de dis-cretización en el Método de Diferencias Finitas mediante el esquema Upwind, Scharfetter-Gummel y Difusión Artificial, entre otros (véase sección: 2.1.1, Ecs. 2.8 a 2.11).

[email protected] 21 Antonio Carrillo Ledesma, Et alii

Page 23: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

cada punto xi de la malla aproximamos la ecuación diferencial por

u′′(xi) ≈u(xi − h)− 2u(x) + u(xi + h)

h2(2.18)

definiendo la solución aproximada de u(x) en xi como ui como la solucióndel siguiente sistema lineal de ecuaciones

u1 − u−12h

= cte1

u0 − 2u1 + u2h2

= f(x1)

...ui−1 − 2ui + ui+1

h2= f(xi) (2.19)

...un−2 − 2un−1 + un

h2= f(xn−1)

un+1 − un−12h

= cte2.

3. Resolver el sistema lineal algebraico de ecuaciones Au = f (véase B),obtenemos la solución aproximada en cada punto de la malla.

2.1.3 Problema con Condiciones de Frontera Robin

El método de un punto de la malla ficticio es usado para el manejo de lascondiciones de frontera mixta, también conocidas como condiciones de fronteraRobin. Sin perdida de generalidad, supongamos que en x = a, tenemos

αu′ (a) + βu (b) = γ

donde α = 0. Entonces usando el punto de la malla ficticio, tenemos que

αu1 − u−1

2h+ βun = γ

o

u−1 = u1 +2β

αun −

2hγ

α

introduciendo esto en términos de diferencias finitas centradas, en x = x0,entonces se tiene que

(− 2

h2+

αh

)un +

2

h2u1 = f0 +

αh

o (− 1

h2+

β

αh

)un +

1

h2u1 =

f02

αh

[email protected] 22 Antonio Carrillo Ledesma, Et alii

Page 24: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

lo que genera coeficientes simétricos en la matriz.

Consideremos el problema

u′′(x) = f(x), 0 ≤ x ≤ 1 (2.20)

con condiciones de frontera Dirichlet y Neumann

u(0) = uα ydu

dx= cte1 en u(1).

respectivamente. Para usar el procedimiento general de solución numérica me-diante el método de diferencias finitas, primero debemos expresar la condiciónde frontera Neumann mediante diferencias centradas Ec.(A.15)

du

dx

∣∣∣∣xi

=u(xi + h)− u(xi − h)

2h

en el último nodo necesitamos introducir un punto de la malla ficticio xn+1 =(xn +∆x) con un valor asociado a un+1 quedando

un+1 − un−12h

= cte2. (2.21)

Éste valor no tiene significado físico alguno, dado que este punto se encuentrafuera del dominio del problema.

Entonces debemos de:

1. Generar una malla homogénea del dominio

xi = ih, i = 0, 1, ..., n, h =1

n= ∆x. (2.22)

2. Sustituir la derivada con la Ec.(A.24)18 en cada punto donde la soluciónes desconocida para obtener un sistema algebraico de ecuaciones. Así, encada punto xi de la malla aproximamos la ecuación diferencial por

u′′(xi) ≈u(xi − h)− 2u(x) + u(xi + h)

h2(2.23)

definiendo la solución aproximada de u(x) en xi como ui como la solución

18Para mantener la estabilidad es necesario tomar en cuenta las distintas formas de dis-cretización en el Método de Diferencias Finitas mediante el esquema Upwind, Scharfetter-Gummel y Difusión Artificial, entre otros (véase sección: 2.1.1, Ecs. 2.8 a 2.11).

[email protected] 23 Antonio Carrillo Ledesma, Et alii

Page 25: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

del siguiente sistema lineal de ecuaciones

uα − 2u1 + u2h2

= f(x1)

u1 − 2u2 + u3h2

= f(x2)

...ui−1 − 2ui + ui+1

h2= f(xi) (2.24)

...un−2 − 2un−1 + un

h2= f(xn−1)

un+1 − un−12h

= cte1.

3. Resolver el sistema lineal algebraico de ecuaciones Au = f (véase B),obtenemos la solución aproximada en cada punto de la malla. La solucióncompleta al problema la obtenemos al formar el vector

[uα u1 u2 u3 · · · un−2 un−1 un

].

La implementación de un programa para codificar el Método de diferenciasFinitas en una Dimensión para resolver el problema con condiciones Dirichlet oNeumann del problema

p(x)u′′ + q(x)u′ + r(x)u = f(x)

definido en el dominio [xi, xf ] y el tipo de frontera en xi–ti igual a −1 Dirichlet( u(xi) = vi) ó −2 Neumann ( ux(xi) = vi)– y el valor en la frontera xf –tfigual a −1 Dirichlet(u(xf) = vf) o −2 Neumann (ux(xf) = vf)–, ademásse le indica el tamaño de la partición n, si se graficará la solución indicandoen grf = 1, con la solución analítica s(x) y si ésta se proporciona sws = 1.Regresando la matriz y los vectores Au = b del sistema lineal generado así comolos puntos del dominio y los valores de la solución en dichos puntos x, V

Ejemplo 8 El programa queda implementado en OCTAVE (MatLab) como:function [error,A,b,u,x,V] = fdm1d(p,q,r,f,xi,xf,ti,vi,tf,vf,n,grf,s,sws)

if n < 3return

end% llenado de valores para el tipo de nodo y valor de fronteraTN = zeros(n,1); % Vector para guardar el tipo de nodoV = zeros(n,1); % Vector para guardar los valores de la solucion y

fronteraTN(1) = ti;

[email protected] 24 Antonio Carrillo Ledesma, Et alii

Page 26: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

TN(n) = tf;V(1) = vi;V(n) = vf;% Calcula el numero de incognitas del problematm = 0;for i=1:n,

if TN(i) == -1 % Descarta nodos frontera Dirichletcontinue

endtm = tm +1;

end% Declaracion de la matriz y vectores de trabajo%A = sparse(tm,tm);A = zeros(tm,tm); % Matriz de cargab = zeros(tm,1); % Vector de cargau = zeros(tm,1); % Vector de solucionx = zeros(n,1); % Vector de coordenadas de la particion% Llenado de la matriz y vectorh = (xf-xi)/(n-1);h1 = h*h;j = 1;for i=1:n,

x(i) = xi + (i-1)*h;if TN(i) == -1 % Descarta nodos frontera Dirichlet

continue;end% Diagonal centralA(j,j) = ((-2.0 * p(x(i))) / h1) + r(x(i));if TN(i) == -2

A(j,j) = -1/h1;end% Lado derechob(j) = f(x(i));% Diagonal anteriorif TN(i) == -2

b(j) = V(i)/h;if i > 1

A(j,j-1) = -1/h1;end

elseif TN(i-1) == -1b(j) = f(x(i)) - p(x(i))*(V(i-1)/h1);

elseA(j,j-1) = p(x(i))/h1 - q(x(i))/(2.0*h);

end% Diagonal superiorif TN(i) == -2

[email protected] 25 Antonio Carrillo Ledesma, Et alii

Page 27: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

b(j) = V(i)/h;if i < n

A(j,j+1) = -1/h1;end

elseif TN(i+1) == -1b(j) = f(x(i)) - p(x(i))*(V(i+1)/h1);

elseA(j,j+1) = p(x(i))/h1 + q(x(i))/(2.0*h);

endj = j + 1;

end% Soluciona el sistemau = A\b;% Copia la solucion obtenida del sistema lineal al vector solucionj = 1;for i=1:n,

if TN(i) == -1 % descarta nodos frontera Dirichletcontinue

endV(i) = u(j);j = j + 1;

end% Encuentra el error en norma infinita usando una particion par = 10error = 0;if sws == 1

par = 10;for i = 1: n-1,

inc = (x(i+1)-x(i))/par;for j = 1:par+1,

px = x(i)+inc*(j-1);e = abs(s(px)-l(px,x(i),V(i),x(i+1),V(i+1)));if e > error

error = e;end

endend

end% Revisa si se graficaraif grf == 1

if sws == 1% Calcula la solucion analitica en la particion de calculoua = zeros(n,1);for i = 1: n,

ua(i) = s(x(i));end

end

[email protected] 26 Antonio Carrillo Ledesma, Et alii

Page 28: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

% Graficar la solucion numericaplot(x,V,’o’);hold% Graficar la solucion analitica en una particion de tamano xPartif sws == 1

xPart = 1000;h = (xf-xi)/(xPart-1);xx = zeros(xPart,1);xa = zeros(xPart,1);for i = 1: xPart,

xx(i) = xi + (i-1)*h;xa(i) = s(xx(i));

endplot(xx,xa);% Grafica el errorfigure(2);plot(x,V-ua);

endend

end% evalua el punto x en la recta dada por los puntos (x1,y1) y (x2,y2)function y = l(x,x1,y1,x2,y2)

y = y1+((y2-y1)/(x2-x1))*(x-x1);end

Ejemplo 9 Sea

−u′′(x) + u = 0, 0 ≤ x ≤ 1, u(0) = 0, u(1) = 1

para ejecutar el programa anterior es necesario escribir en la consola de OC-TAVE:

v=@(x) 1.0; % velocidad, posibles valores 1,25,100, etcp=@(x) -1.0;q=@(x) v(x);r=@(x) 0;f=@(x) 0;s=@(x) (exp(v(x)*x)-1.0)/(exp(v(x))-1.0);[error,A,b,u,x,V] = fdm1d_DN(p,q,r,f,0,1,-1,0,-1,1,11,1,s,1);

Ejemplo 10 Sea

u′′(x) + u = −π2cos(πx), 0 ≤ x ≤ 1, u(0) = 1, u(1) = −1

[email protected] 27 Antonio Carrillo Ledesma, Et alii

Page 29: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

para ejecutar el programa anterior es necesario escribir en la consola de OC-TAVE:

p=@(x) 1;q=@(x) 0;r=@(x) 0;f=@(x) -pi*pi*cos(pi*x);s=@(x) cos(pi*x);[error,A,b,u,x,V] = fdm1d_DN(p,q,r,f,0,1,-1,1,-1,-1,40,1,s,1);

Ejemplo 11 Sea

u′′(x) = −π2cos(πx), 0 ≤ x ≤ 0.5, u(0) = 1, ux(0.5) = −π

para ejecutar el programa anterior es necesario escribir en la consola de OC-TAVE:

p=@(x) 1;q=@(x) 0;r=@(x) 0;f=@(x) -pi*pi*cos(pi*x);s=@(x) cos(pi*x);[error,A,b,u,x,V] = fdm1d_DN(p,q,r,f,0,0.5,-1,1,-2,-pi,40,1,s,1);

Pese a que con el programa anterior podríamos resolver la ecuación

−u′′(x)− k2u(x) = 0, 0 ≤ x ≤ 1, u(0) = 1, u′(1) = iku(1)

esta ecuación se conoce como la ecuación de Helmholtz la cual es difícil deresolver si r (x) ≤ 0 y |r (x)| es grande, i.e. r (x) ∼ 1/h2. Para resolver co-rrectamente dicha ecuación, usaremos otro programa con los esquemas de dis-cretización de diferencias finitas y diferencias finitas exactas. Este último pro-cedimiento fue desarrollado en: Exact Finite Difference Schemes for SolvingHelmholtz equation at any wavenumber, Yau Shu Wong and Guangrui Lim In-ternational Journal of Numerical Analysis and Modeling, Volumen 2, Number1, Pages 91-108, 2011. Y la codificación de prueba queda como:

Ejemplo 12 Sea

−u′′(x)− k2u(x) = 0, 0 ≤ x ≤ 1, u(0) = 1, u′(1) = iku(1)

con k = 150, entonces el programa en SCILAB queda implementado como:TEST = 1; // (0) Diferencias finitas, (1) Diferencias finitas exactas

function y=LadoDerecho(x)y=0.0;endfunction

[email protected] 28 Antonio Carrillo Ledesma, Et alii

Page 30: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

function y=SolucionAnalitica(x, k)//y=cos(k*x)+%i*sin(k*x);y=exp(%i*k*x);endfunction

K = 150;KK = K*K;a=0; // Inicio dominioc=1; // Fin dominioM=300; // ParticionN=M-1; // Nodos interioresh=(c-a)/(M-1); // Incremento en la mallaY0=1; // Condicion Dirchlet inicial en el inicio del dominioY1=%i*K; // Condicion Neumann inicial en el fin del dominio

A=zeros(N,N); // Matriz Ab=zeros(N); // Vector b

if TEST = 0 thenR=-1/(h^2);P=2/(h^2)-KK;Q=-1/(h^2);elseR=-1/(h^2);P=(2*cos(K*h)+(K*h)^2)/(h^2) - KK;Q=-1/(h^2);end

// Primer renglon de la matriz A y vector bA(1,1)=P;A(1,2)=Q;b(1)=LadoDerecho(a)-Y0*R; // Frontera Dirichlet// Renglones intermedios de la matriz A y vector bfor i=2:N-1A(i,i-1)=R;A(i,i)=P;A(i,i+1)=Q;b(i)=LadoDerecho(a+h*(i-1));end// Renglon final de la matriz A y vector bif TEST = 0 thenA(N,N-1)=1/(h^2);A(N,N)=-1/(h^2)+ Y1/h;b(N)=LadoDerecho(c)/2;elseA(N,N-1)=1/(h^2);

[email protected] 29 Antonio Carrillo Ledesma, Et alii

Page 31: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A(N,N)=-1/(h^2)+ %i*sin(K*h)/(h^2);b(N)=LadoDerecho(c)/2;end

// Resuleve el sistema lineal Ax=bx=inv(A)*b;

ESC = 5;xxx=zeros(M*ESC,1);zzz=zeros(M*ESC,1);for i=1:M*ESCxxx(i)=a+h/ESC*(i-1);zzz(i)=SolucionAnalitica(xxx(i),K);end// Prepara la graficacionxx=zeros(M,1);zz=zeros(M,1);for i=1:Mxx(i)=a+h*(i-1);zz(i)=SolucionAnalitica(xx(i),K);endyy=zeros(M,1);yy(1)=Y0; // Condicion inicialfor i=1:Nyy(i+1)=x(i);end// Grafica la solucion de la Ecuacion Diferencial Parcial en 1Dplot2d(xx,yy,15)plot2d(xxx,zzz)

2.1.4 Ecuación con Primera Derivada Temporal

Hasta ahora se ha visto como discretizar la parte espacial de las ecuacionesdiferenciales parciales, lo cual nos permite encontrar la solución estática de losproblemas del tipo elíptico. Sin embargo, para ecuaciones del tipo parabólico ehiperbólico dependen del tiempo, se necesita introducir una discretización a lasderivadas con respecto del tiempo. Al igual que con las discretizaciones espa-ciales, podemos utilizar algún esquema de diferencias finitas en la discretizacióndel tiempo.

Para la solución de la ecuaciones diferenciales con derivada temporal (ut),se emplean diferentes esquemas en diferencias finitas para la discretización deltiempo. Estos esquemas se conocen de manera general como esquemas theta(θ).

[email protected] 30 Antonio Carrillo Ledesma, Et alii

Page 32: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Definiendo la ecuación diferencial parcial general de segundo orden como

ut = Lu (2.25)

dondeLu = (p (x)u′ (x))

′+ q (x)u′ (x)− r (x)u (x)− f (x) (2.26)

aquí, los coeficientes p, q y r pueden depender del espacio y del tiempo. Entoncesel esquema theta está dado por

ut = (1− θ) (Lu)j + θ (Lu)j+1 . (2.27)

Existen diferentes casos del esquema theta a saber:

• Para θ = 0, se obtiene un esquema de diferencias finitas hacia adelanteen el tiempo, conocido como esquema completamente explícito, ya que elpaso n+ 1 se obtiene de los términos del paso anterior n. Es un esquemasencillo, el cual es condicionalmente estable cuando ∆t ≤ ∆x2

2 .

• Para θ = 1, se obtiene el esquema de diferencias finitas hacia atrás enel tiempo, conocido como esquema completamente implícito, el cual esincondicionalmente estable.

• Para θ = 12 , se obtiene un esquema de diferencias finitas centradas en el

tiempo, conocido como esquema Crank-Nicolson, este esquema es tambiénincondicionalmente estable y es más usado por tal razón.

Para la implementación del esquema Crank-Nicolson se toma una diferenciaprogresiva para el tiempo y se promedian las diferencias progresivas y regresivasen el tiempo para las derivadas espaciales. Entonces, si tenemos la Ec. (2.26),las discretizaciones correspondientes son19 :

ut ≃uj+1

i − uji

∆t(2.28)

(p (x)u′ (x))′ ≃ p

2

[uj

i−1 − 2uji + uj

i+1

∆x2+

uj+1i−1 − 2uj+1

i + uj+1i+1

∆x2

](2.29)

q (x)u′ (x) ≃ q

2

[uj

i−1 + uji+1

2∆x+

uj+1i−1 + uj+1

i+1

2∆x

](2.30)

además de r(x), uji y f

ji .

Entonces, una vez que se sustituyen las derivadas por su forma en diferenciasfinitas, lo siguiente es formar el sistema:

Auj+1 = Buj + fj (2.31)19Para mantener la estabilidad es necesario tomar en cuenta las distintas formas de dis-

cretización en el Método de Diferencias Finitas mediante el esquema Upwind, Scharfetter-Gummel y Difusión Artificial, entre otros (véase sección: 2.1.1, Ecs. 2.8 a 2.11).

[email protected] 31 Antonio Carrillo Ledesma, Et alii

Page 33: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

esto se logra, colocando del lado izquierdo la igualdad de los términos que con-tengan el paso del tiempo correspondiente a j + 1 y del lado derecho a loscorrespondientes términos de j.

A continuación, veamos un ejemplo del esquema Crank-Nicolson desarrolla-dos en SCILAB20

Ejemplo 13 Sea

ut − a(x)u′′(x)− b(x)u′(x) + c(x)u = f, l0 ≤ x ≤ l, 0 < t < T

entonces el programa queda implementado como:// Crank-Nicolson// Para una EDP de segundo orden// u_t + a(x)u_xx + b(x)u_x +c(x)u = f// Dominio// l0<x<l// 0<t<T// Condiciones de frontera Dirichlet// u(0,t) = u(l,t) = constante 0 < t < T cond de frontera// Condicion inicial// u(x,0) = g(x) l0 <= x <= l// Datos de entrada// intrevalo [l0, l]// entero m>=3// entero N>=1// Salida// aproximaciones w_ij a u(x_i,t_j)// Funciones de los coeficientesfunction y = a(x)y = -1;endfunctionfunction y = b(x)y = -1;endfunctionfunction y = c(x)y = 1;endfunctionfunction y = f(x)y = 0;endfunction// funcion de la condicion inicialfunction y = condicion_inicial(x)y = sin(x * %pi);

20Scilab es un programa open source para el cálculo numérico el cual provee un poderosoambiente de cálculo para aplicaciones Científicas y de Ingeniería [http://www.scilab.org].

[email protected] 32 Antonio Carrillo Ledesma, Et alii

Page 34: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

endfunction// Condiciones de frontera// Solo Dirichletcond_izq = 0;cond_der = 0;// Datos de entradal0 = 0;l = 1; // intervalo [0,1]m = 11; // Numero de nodosM = m - 2; // Nodos interiores// Division del espacio y del tiempoh = (l - l0)/(m-1);k = 0.025; // Paso del tiempoN = 50; // Numero de iteraciones// Aw^(j+1) = Bw^j + f^j// creo el vector w donde se guardara la solucion para cada tiempo// A matriz del lado izquierdo// B matriz del lado derecho// B_prima para guardar el resultado de Bw^j// ff que es el vector de los valores de f en cada nodow = zeros(M,1);ff = zeros(M,1)A = zeros(M,M);B = zeros(M,M);//B_prima = zeros(M,1);w_sol = zeros(m,m)// Se crea el espacio de la solucion o mallaespacio = zeros(M,1)for i = 1:mxx = l0 + (i-1)*h;espacio(i) = xx;enddisp(espacio, "Espacio")// Condicion inicialfor i=1:Mw(i) = condicion_inicial(espacio(i+1));endw_sol(1) = cond_izq;for kk = 1:Mw_sol(kk + 1) = w(kk);endw_sol(m) = cond_izq;plot(espacio, w_sol);disp(w, "Condiciones iniciales")// primer renglon de cada matrizA(1,1) = 1/k - a(l0 + h)/(h*h);A(1,2) = a(l0 + h)/(2*h*h) + b(l0 + h)/(4*h) ;

[email protected] 33 Antonio Carrillo Ledesma, Et alii

Page 35: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

B(1,1) = 1/k + a(l0 + h)/(h*h) - c(l0 + h);B(1,2) = - a(l0 + h)/(2*h*h) - b(l0 + h)/(4*h);ff(1) = f(l0 + h) - cond_izq;// se completa las matrices desde el renglon 2 hasta el m-2for i = 2:M-1A(i, i-1) = a(l0 + i*h)/(2*h*h) - b(l0 + i*h)/(4*h) ;A(i,i) = 1/k - a(l0 + i*h)/(h*h);A(i,i+1) = a(l0 + i*h)/(2*h*h) + b(l0 + i*h)/(4*h) ;B(i, i-1) = - a(l0 + i*h)/(2*h*h) + b(l0 + i*h)/(4*h);B(i,i) = 1/k + a(l0 + i*h)/(h*h) - c(l0 + i*h);B(i,i+1) = - a(l0 + i*h)/(2*h*h) - b(l0 + i*h)/(4*h);end// Ultimo renglon de cada matrizA(M,M-1) = a(l - h)/(2*h*h) - b(l-h)/(4*h) ;A(M,M) = 1/k - a(l - h)/(h*h);B(M,M-1) = - a(l-h)/(2*h*h) + b(l-h)/(4*h);B(M,M) = 1/k + a(l-h)/(h*h) - c(l-h);ff(M) = f(l - h) - cond_der;// Resolvemos el sistema iterativamentefor j=1:21t = j*k;B_prima = B * w + ff;w = inv(A) * B_prima;disp(t, "tiempo")disp(w, "Sol")w_sol(1) = cond_izq;for kk = 1:Mw_sol(kk + 1) = w(kk);

endw_sol(m) = cond_izq;plot(espacio, w_sol);end

2.1.5 Ecuación con Segunda Derivada Temporal

Para el caso de ecuaciones con segunda derivada temporal, esta se aproximapor diferencias finitas centradas en el tiempo, partiendo de la Ec. (2.26), lasdiscretizaciones correspondientes son21

utt ≃uj−1

i − 2uji + uj+1

i

∆t2(2.32)

21Para mantener la estabilidad es necesario tomar en cuenta las distintas formas de dis-cretización en el Método de Diferencias Finitas mediante el esquema Upwind, Scharfetter-Gummel y Difusión Artificial, entre otros (véase sección: 2.1.1, Ecs. 2.8 a 2.11).

[email protected] 34 Antonio Carrillo Ledesma, Et alii

Page 36: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

(p (x)u′ (x))′ ≃ p

[uj

i−1 − 2uji + uj

i+1

∆x2

](2.33)

q (x)u′ (x) ≃ q

[uj

i−1 + uji+1

2∆x

](2.34)

además de r(x), uji y f

ji .

Entonces, una vez que se sustituyen las derivadas por su forma en diferenciasfinitas, lo siguiente es formar el sistema

uj+1i = 2uj

i − uj−1i + (∆t)2Buj (2.35)

esto se logra, colocando del lado izquierdo la igualdad de los términos que con-tengan el paso del tiempo correspondiente a j + 1 y del lado derecho a loscorrespondientes términos de j y j − 1. Para calcular uj+1

i es necesario conocerui−1, ui, ui+1 en los dos instantes inmediatos anteriores, i.e. tj y tj−1.

En particular para calcular u1i es necesario conocer u0i y u

−1i , si consideramos

uj+1i = 2uj

i − uj−1i + (∆t)2 Luj (2.36)

para j = 0, entoncesu1i = 2u0i − u−1i + (∆t)2 Lu0 (2.37)

donde u0i es la condición inicial yu1i−u−1i2∆t

es la primer derivada de la condicióninicial. Así, para el primer tiempo tenemos

u1i = u(xi, 0) +∆tu′

(xi, 0) + (∆t)2 Lu0 (2.38)

lo cual permite calcular u1i a partir de las condiciones iniciales.

La derivación del método parte de

utt = Luj (2.39)

uj−1i − 2uj

i + uj+1i

(∆t)2= Luj

uj+1i = 2uj

i − uj−1i + (∆t)

2 Luj

donde el error intrínseco a la discretización es de orden cuadrático, pues se hausado diferencias centradas, tanto para el espacio como para el tiempo.

Ejemplo 14 Sea

utt − 4u′′(x) = 0, 0 ≤ x ≤ l, 0 < t < T

sujeta a

u(0, t) = u(1, t) = 0, u(x, 0) = sin(πx), ut(x, 0) = 0

[email protected] 35 Antonio Carrillo Ledesma, Et alii

Page 37: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

con solución analítica

u(x, t) = sen(πx) ∗ cos(2πt)

entonces el programa queda implementado como:// Dominioa_ = 0b_ = 1// Particion en xm = 101; // numero de nodosh = (b_ - a_)/(m-1)dt = 0.001 // salto del tiempo// Para que sea estable se debe cumplir que// sqrt(a) <= h/dt// Coeficientefunction y = a(x)y = -4;endfunction// Condicion inicialfunction y = inicial(x)y = sin(%pi * x)endfunctionfunction y = u_t(x)y = 0;endfunction// Solucion analiticafunction y = analitica(x,t)y = sin(%pi * x) * cos(2* %pi * t)endfunction////////////////////////////////////// Aw^(j+1) = Bw^j// creo el vector w donde se guradaria la solucion para cada tiempo// A matriz del lado izquierdo// B matriz del lado derecho// B_prima para guardar el resultado de Bw^jw_sol = zeros(m,1);w_sol_temp = zeros(m,1);w_temp = zeros(m,1);w = zeros(m,1);w_ = zeros(m,1);A = eye(m,m);B = zeros(m,m);B_prima = zeros(m,1);espacio = zeros(m,1)sol = zeros(m,1);// primer renglon de cada matriz

[email protected] 36 Antonio Carrillo Ledesma, Et alii

Page 38: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

B(1,1) = 2*a(a_)*dt*dt/(h*h)B(1,2) = -a(a_)*dt*dt/(h*h)// se completa las matrices desde el renglon 2 hasta el m-1for i = 2:m-1B(i, i-1) = -a(i*h)*dt*dt/(h*h)B(i,i) = 2*a(i*h)*dt*dt/(h*h)B(i,i+1) = -a(i*h)*dt*dt/(h*h)end// Ultimo renglon de cada matrizB(m,m-1) = -a(b_)*dt*dt/(h*h)B(m,m) = 2*a(b_)*dt*dt/(h*h)// muestro la matriz//printf("Matriz B\n");//disp(B);for i=1:mxx = (i-1)*h;espacio(i) = a_ + xx;w(i) = inicial(espacio(i)); // Condiciones inicialesw_(i) = inicial(espacio(i)) + u_t(espacio(i)) * dtend////disp(espacio)//disp(w)//////////////Para t = 0B_prima = B * w;for i = 1:mw_sol(i) = w_(i) + B_prima(i);end////////////printf("w para t = 0\n");disp(w_sol);for i = 1:msol(i) = analitica(espacio(i), 0)endprintf("Solucion analitica para t = 0\n")disp(sol)plot(espacio,w_sol)//plot(espacio,sol,’r’)w_sol_temp = w_sol;w_temp = wfor i=1:500t = i*dtB_prima = B * w_sol_temp;w_ = 2 * w_sol_temp - w_tempw_sol = w_ + B_prima;

[email protected] 37 Antonio Carrillo Ledesma, Et alii

Page 39: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

////// for j = 1:m// sol(j) = analitica(espacio(j), t)// end//// printf("Sol analitica dt = %f", t)// disp(sol)// printf("Sol metodo dt = %f", t)// disp(w_sol)w_temp = w_sol_tempw_sol_temp = w_solif i == 5 | i == 50 | i == 100 | i == 150 | i == 200 | i == 250 | i ==

300 | i== 350 | i == 400 | i == 450 | i == 500 thenplot(espacio,w_sol)end//plot(espacio,sol,’r’)end

2.2 Consistencia, Estabilidad, Convergencia y Error delMétodo de Diferencias Finitas

Cuando se usa algún método para la resolución de ecuaciones diferenciales, senecesita conocer cuan exacta es la aproximación obtenida en comparación conla solución analítica (en caso de existir).

Error Global Sea U = [U1, U2, ..., Un]T el vector solución obtenido al uti-

lizar el método de diferencias finitas y u = [u (x1) , u (xn) , ..., u (xn)] la soluciónexacta de los puntos de la malla. El vector de error global se define comoE = U − u. lo que se desea es que el valor máximo sea pequeño. Usualmente seutilizan distintas normas para encontrar el error.

• La norma infinito, definida como ‖E‖∞ = max |ei|

• La norma-1, definida como ‖E‖1 =n∑

i=1

|ei|

• La norma-2, definida como ‖E‖2 =(

n∑

i=1

e2i

)12

La norma infinito ‖E‖∞ es en general, la más apropiada para calcular loserrores relativos a la discretización.

Definición 1 Si ‖E‖ ≤ Chp, p > 0, decimos que el método de diferencias finitases de orden-p de precisión.

[email protected] 38 Antonio Carrillo Ledesma, Et alii

Page 40: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Definición 2 Un método de diferencias finitas es llamado convergente si

limh→0

‖E‖ = 0. (2.40)

Error de Truncamiento Local Sea el operador diferencia Lu, definimos eloperador en diferencias finitas Lh, por ejemplo para la ecuación de segundoorden u′′(x) = f(x), uno de los operadores de diferencias finitas puede ser

Lhu(x) =u(x− h)− 2u(x) + u(x+ h)

h2. (2.41)

Definición 3 El error de truncamiento local es definido como

T (x) = Lu−Lhu. (2.42)

Para la ecuación diferencial u′′(x) = f(x) y el esquema de diferencias cen-tradas usando tres puntos u(x−h)−2u(x)+u(x+h)

h2, el error de truncamiento local

es

T (x) = Lu−Lhu = u′′

(x)− u(x− h)− 2u(x) + u(x+ h)

h2(2.43)

= f(x)− u(x− h)− 2u(x) + u(x+ h)

h2.

Note que el error de truncamiento local sólo depende de la solución delesténcil en diferencias finitas (en el ejemplo es usando tres puntos) pero nodepende de la solución global, es por ello que se denomina error de truncamientolocal. Este es una medida de que tanto la discretización en diferencias finitas seaproxima a la ecuación diferencial.

Definición 4 Un esquema de diferencias finitas es llamado consistente si

limh→0

T (x) = limh→0

(Lu−Lhu) = 0. (2.44)

Si T (x) = Chp, p > 0, entonces se dice que la discretización es de orden−pde precisión, donde C es una constante independiente de h pero puede dependerde la solución de u(x). Para conocer cuando un esquema de diferencias finitas esconsistente o no, se usa la expansión de Taylor. Por ejemplo, para el esquemade diferencias finitas centradas usando tres puntos para la ecuación diferencialu′′(x) = f(x), tenemos que

T (x) = u′′

(x)− u(x− h)− 2u(x) + u(x+ h)

h2= −h2

12u(4)(x)+ ... = Ch2 (2.45)

donde C = 112u

(4)(x). Por lo tanto, este esquema de diferencias finitas es con-sistente y la discretización es de segundo orden de precisión.

La consistencia no puede garantizar que un esquema de diferencias finitastrabaje. Para ello, necesitamos determinar otra condición para ver si converge o

[email protected] 39 Antonio Carrillo Ledesma, Et alii

Page 41: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

no. Tal condición es llamada la estabilidad de un método de diferencias finitas.Para el problema modelo, tenemos que

Au = F + T, AU = F, A (u− U) = T = −AE (2.46)

donde A son los coeficientes de la matriz de las ecuaciones en diferencias finitas,F son los términos modificados por la condición de frontera, y T es el vectorlocal de truncamiento en los puntos de la malla.

Si la matriz A es no singular, entonces ‖E‖ =∥∥A−1T

∥∥ ≤∥∥A−1

∥∥ ‖T‖ . Parael esquema de diferencias finitas centradas, tenemos que ‖E‖ =

∥∥A−1∥∥h2. Tal

que el error global depende del error de truncamiento local y∥∥A−1

∥∥ .

Definición 5 Un método de diferencias finitas para la ecuación diferencial elíp-tica es estable si A es invertible y

∥∥A−1∥∥ ≤ C, para todo h ≤ h0 (2.47)

donde C y h0 son constantes.

Teorema 6 Si el método de diferencias finitas es estable y consistente, entonceses convergente.

2.3 Método de Diferencias Finitas en Dos y Tres Dimen-siones

Sin perdida de generalidad y a modo de ejemplificar, consideremos la ecuacióndiferencial parcial en dos dimensiones

(p (x, y)u′ (x, y))′+ q (x, y)u′ (x, y)− r (x, y)u (x, y) = f (x, y) (2.48)

en a ≤ x ≤ b y c ≤ y ≤ d donde: u (x, y) = uxy está definida en la frontera

con condiciones de frontera Dirichlet, Neumann o Robin. Para usar el proced-imiento general de solución numérica mediante el método de diferencias finitas,debemos de:

1. Generar una malla del dominio, i.e. una malla es un conjunto finito depuntos en los cuales buscaremos la solución aproximada a la ecuacióndiferencial parcial.

2. Sustituir las derivadas correspondientes con alguna de las formulas dediferencias finitas centradas (véase A.33 y A.35 para dos dimensiones,A.42 y A.44 para tres dimensiones), en cada punto donde la soluciónes desconocida para obtener un sistema lineal algebraico de ecuacionesAu = f .

3. Resolver el sistema lineal algebraico de ecuaciones Au = f (véase B), yasí obtener la solución aproximada en cada punto de la malla.

[email protected] 40 Antonio Carrillo Ledesma, Et alii

Page 42: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Problema con Condiciones de Frontera Dirichlet Consideremos un casoparticular de la Ec.(2.48) definido por la ecuación

uxx + uyy = 0, 0 ≤ x ≤ 1 y 0 ≤ y ≤ 1, u(x, y) = uxy (2.49)

con condiciones de frontera Dirichlet. Para usar el procedimiento general desolución numérica mediante el método de diferencias finitas, debemos de:

1. Generar una malla homogénea del dominio, sin perdida de generalidad losupondremos un rectángulo22

Figura 1: Si suponemos una malla discretizada en 5x5 nodos, donde 9 seríaninteriores y 16 de frontera para tener un total de 25 nodos, donde la evaluaciónde los 9 nodos interiores los denotamos con p1, ..., p9.

2. Sustituir la derivada con la Ec.(A.35) en cada punto donde la soluciónes desconocida para obtener un sistema algebraico de ecuaciones. Así, en

22En el caso de que la malla no sea homogénea, es necesario incluir en la derivada a que hx(hx+ y hx−) y ky (ky+ y ky−) se refiere (como se hizo en una dimensión).

[email protected] 41 Antonio Carrillo Ledesma, Et alii

Page 43: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

cada punto x, y de la malla aproximamos la ecuación diferencial por23

uxx ≃ u (xi −∆x, yj)− 2u (xi, yj) + u (xi +∆x, yj)

∆x2(2.50)

uyy ≃ u (xi, yj −∆y)− 2u (xi, yj) + u (xi, yj +∆y)

∆y2

o en su forma simplificada

uxx ≃ ui−1,j − 2ui,j + ui+1,j

h2(2.51)

uyy ≃ ui,j−1 − 2ui,j + ui,j+1

k2.

definiendo la solución aproximada de u(x, y) en xi, yj como uij , y sisuponemos que h = k, entonces la formula para la aproximación es

ui−1,j + ui+1,j − 4ui,j + ui,j−1 + ui,j+1

h2= 0

si suponemos una malla discretizada en 5x5 nodos, donde 9 serían interi-ores y 16 de frontera para tener un total de 25 nodos, donde la evaluaciónde los 9 nodos interiores los denotamos con p1, ..., p9 tendríamos algo como:

−4p1 +p2 +p4p1 −4p2 +p3 +p5

p2 −4p3 +p6p1 −4p4 +p5 p7

p2 +p4 −4p5 p6 p8p3 +p5 −4p6 p9

p4 −4p7 p8p5 +p7 −4p8 p9

p6 p8 −4p9

=

−u2,1 − u1,2−u3,1−u4,1 − u5,2−u1,30−u5,3−u2,5 − u1,4−u3,5−u4,5 − u5,4

3 Al resolver el sistema lineal algebraico de ecuaciones Ap = f (véaseapéndice B), obtenemos la solución aproximada en cada punto interiorde la malla. La solución completa al problema la obtenemos agregar losvalores de la frontera que eran conocidos.

23Notemos que en cada punto de la malla, la aproximación por diferencias finitas supone lasolución de cinco puntos de la malla. El conjunto de estos puntos de la malla es comúnmentellamado el esténcil de diferencias finitas en dos dimensiones.

[email protected] 42 Antonio Carrillo Ledesma, Et alii

Page 44: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

2.4 Las Ecuaciones de Navier-Stokes

Las ecuaciones de Navier-Stokes reciben su nombre de los físicos Claude LouisNavier y George Gabriel Stokes (Francés e Irlandés respectivamente), quienesaplicaron los principios de la mecánica y termodinámica, resultando las ecua-ciones en derivadas parciales no lineales que logran describir el comportamientode un fluido. Estas ecuaciones no se concentran en una posición sino en uncampo de velocidades, más específicamente en el flujo de dicho campo, lo cuales la descripción de la velocidad del fluido en un punto dado en el tiempo y enel espacio.

Cuando se estudia la dinámica de fluidos se consideran los siguientes com-ponentes:

• −→µ , este término se usa para definir la velocidad del fluido

• ρ, este término se relaciona con la densidad del fluido

• p, este término hace referencia con la presión o fuerza por unidad desuperficie que el fluido ejerce

• g, este término se relaciona con la aceleración de la gravedad, la cuál estaaplicada a todo el cuerpo, en determinados casos la gravedad no es la únicafuerza ejercida sobre el cuerpo, por tal razón de toma como la sumatoriade fuerzas externas

• v, este término hace referencia a la viscosidad cinemática

La ecuación de Navier-Stokes general es

ρ

(∂v

∂t+ v · ∇v

)= −∇p+∇ · T+ f (2.52)

el término T, expresa el tensor de estrés para los fluidos y condensa informaciónacerca de las fuerzas internas del fluido. Supondremos al fluido incompresiblecuyo campo de velocidades −→µ satisface la condición ∇ ·−→µ = 0, por tal razón eltensor de estrés se reduce a ∇2−→µ , dando como resultado la siguiente ecuación:

∂−→µ∂t

+−→µ · ∇−→µ +1

ρ∇p = g + v∇2−→µ (2.53)

bajo la condición∇−→µ = 0 (2.54)

que garantiza la incompresibilidad del campo de velocidad sí la densidad per-manece constante en el tiempo.

Así, las ecuaciones simplificadas de Navier-Stokes quedan como

∂−→µ∂t

= − (−→µ∇)−→µ + v∇2−→µ + f (2.55)

[email protected] 43 Antonio Carrillo Ledesma, Et alii

Page 45: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

∂ρ

∂t= − (−→µ∇) ρ+ κ∇2ρ+ S (2.56)

donde la primera ecuación describe la velocidad y la segunda hace referencia ala densidad a través de un campo vectorial. Estas ecuaciones son no lineales yno se conoce solución analítica a dicho problema.

La Solución Numérica de las Ecuaciones de Navier-Stokes La solu-ción numérica de las ecuaciones (2.55, 2.56) partiendo del estado inicial −→µ 0 delcampo de velocidad y el primer instante de tiempo t = 0, se busca estudiar sucomportamiento para el tiempo t > 0. Si −→ω 0 es la estimación del campo vector-ial en el instante t y −→ω 4 denota el campo vectorial de velocidades en el instantede tiempo t+∆t. Jos Stam (véase [53]) propone una solución numérica a partirde la descomposición de la ecuación de distintos términos y solucionando cadauno individualmente. Así, la solución de cada paso se construye a partir del pasoanterior. La solución en el tiempo t+∆t, está dada por el campo de velocidadesu (x, t+∆t) = −→ω 4, la solución se obtiene iterando estos cuatro pasos:

1. Sumatoria de Fuerzas

2. Paso de Advección

3. Paso de Difusión

4. Paso de Proyección

i.e. −→ω 0

1︷︸︸︷→ −→ω 1

2︷︸︸︷→ −→ω 2

3︷︸︸︷→ −→ω 3

4︷︸︸︷→ −→ω 4

Sumatoria de Fuerzas La manera más práctica para incorporar la suma-toria de fuerzas externas f , se obtiene asumiendo que la fuerza no varía de man-era considerable en un paso de tiempo. Bajo este supuesto, utilizando el métodode Euler progresivo para resolver ecuaciones diferenciales ordinarias (teniendoen cuenta que la velocidad y la fuerza están relacionadas mediante la segundaley de Newton, tenemos que

−→ω 1(x) =−→ω 0(x) +∆tf(x, t). (2.57)

Paso de Advección Una perturbación en cualquier parte del fluido sepropaga de acuerdo a la expresión

− (−→µ · ∇)−→µ (2.58)

este término hace que la ecuación de Navier-Stokes sea no lineal, de aplicarse elmétodo de Diferencias Finitas, éste es estable sólo cuando∆t sea suficientementepequeño tal que ∆t < ∆h/ |u| , donde ∆h es el menor incremento de la mallade discretización, para prevenir esto, se usa el método de Características. Estedice que una ecuación de la forma

∂α(x, t)

∂t= −v(x)∇α(x, t) (2.59)

[email protected] 44 Antonio Carrillo Ledesma, Et alii

Page 46: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

yα(x, t) = α0(x) (2.60)

como las características del vector del campo v, que fluye a través del punto x0en t = 0, i.e.

d

dtp(x0, t) = v(p(x0, t)) (2.61)

dondep(x0, 0) = x0. (2.62)

De modo tal que α(x0, t) = α (p(x0, t), t), es el valor del campo que pasa porel punto x0 en t = 0. Para calcular la variación de esta cantidad en el tiempose usa la regla de la cadena

dt=

∂α

∂t+ v∇α = 0 (2.63)

que muestra que el valor de α no varía a lo largo de las líneas del flujo. Enparticular, se tiene que α(x0, t) = α(x0, 0) = α0(x0); por lo tanto el campoinicial de las líneas de flujo, en el sentido inverso se pueden estimar el siguientevalor de α en x0, esto es α (x0, t+∆t) .

Este método muestra en cada paso del tiempo, como las partículas del fluidose mueven por la velocidad del propio fluido. Por lo tanto, para obtener lavelocidad en un punto x en el tiempo t + ∆t, se devuelve al pinto x por elcampo de velocidades −→ω 1 en el paso del tiempo ∆t. Ésta define una ruta p(x, s)correspondiente a la trayectoria parcial del campo de velocidades. La nuevavelocidad en el punto x, es entonces la velocidad de la partícula ahora en x quetenía su anterior ubicación en el tiempo ∆t. De esta manera, se puede hallar elvalor de la velocidad luego de la advección −→ω 2 resolviendo el problema

−→ω 2(x) =−→ω 1(p(x,−∆t)) (2.64)

la ventaja que se obtiene interpolando linealmente entre valores adyacentesde este método es su estabilidad numérica. Ya conocida la velocidad en elinstante t, la viscosidad del fluido y su naturaleza obligan un proceso difusivo:La velocidad se propaga dentro del fluido, o bien en las partículas de este fluyen.

Paso de Difusión En este paso para resolver el efecto de la viscosidad yes equivalente a la ecuación de difusión

∂−→ω 2(x)

∂t= ν∇2−→ω 2(x) (2.65)

esta es una ecuación para la cual se han desarrollado varios procedimientosnuméricos. La forma más sencilla para resolver esta ecuación es discretizar eloperador difusión ∇2 y usar una forma explicita en el incremento del tiempo,sin embargo este método es inestable cuando la viscosidad es grande. Por ellouna mejor opción es usar un método implícito para la ecuación

(I − ν∆t∇2

)−→ω 3(x) =−→ω 2(x) (2.66)

donde I es el operador identidad.

[email protected] 45 Antonio Carrillo Ledesma, Et alii

Page 47: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Paso de Proyección Este último paso conlleva la proyección, que haceque resulte un campo libre de divergencia. Esto se logra mediante la solucióndel problema definido por

∇2q = ∇ · −→ω 3(x) y −→ω 4(x) =−→ω 3(x)−∇q (2.67)

es necesario utilizar, según sea el caso, aquel método numérico que proporcioneuna solución correcta y eficiente a la ecuación de Poisson, esto es especialmenteimportante cuando hay vórtices en el fluido.

[email protected] 46 Antonio Carrillo Ledesma, Et alii

Page 48: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

3 Paralelización del Método de Diferencias Fini-tas

La solución numérica de ecuaciones diferenciales parciales por los esquemastradicionales –tipo Diferencias Finitas, Volumen Finito y Elemento Finito–reducen el problema a la generación y solución de un –cada vez más grande–sistema algebraico de ecuaciones Au = b(véase [3]). La factorización directa desistemas de gran escala O(106) con toda su eficacia, no es, en general una opciónviable, y el uso de métodos iterativos básicos –tales como el método de gradi-ente conjugado o residual mínimo generalizado– resultan en una convergenciabastante lenta –al ser algoritmos secuenciales– con respecto a otras formas dediscretización como son los métodos de descomposición de dominio (véase [6] y[8]).

El desarrollo de métodos numéricos para sistemas algebraicos grandes, escentral en el desarrollo de códigos eficientes para la solución de problemas enCiencia e Ingeniería, actualmente cuando se necesita implementar una solucióncomputacional, se dispone de bibliotecas optimizadas24 para la solución de sis-temas lineales que pueden correr en ambientes secuenciales y/o paralelos. Estasbibliotecas implementan métodos algebraicos robustos para muchos problemasprácticos, pero sus discretizaciones no pueden ser construidas por sólo técni-cas algebraicas simples, tales como aproximaciones a la inversa o factorizaciónincompleta.

En la actualidad, los sistemas computacionales paralelos son ubicuos. Enellos es posible encontrar más de una unidad de procesamiento, conocidas comoNúcleo (Core). El número de Cores es creciente conforme avanza la tecnología,esto tiene una gran importancia en el desarrollo eficiente de algoritmos queresuelvan sistemas algebraicos en implementaciones paralelas. Actualmente lagran mayoría de los algoritmos desarrollados son algoritmos secuenciales y suimplantación en equipos paralelos no es óptima, pero es una práctica comúnusar diversas técnicas de seudoparalelización –a veces mediante la distribuciónde una gran matriz en la memoria de los múltiples Cores y otras mediante eluso de directivas de compilación–, pero la eficiencia resultante es pobre y noescalable a equipos masivamente paralelos por la gran cantidad de comunicacióninvolucrada en la solución.

Para hacer eficiente la solución de sistemas de ecuaciones diferenciales par-ciales, se introdujeron los métodos de descomposición de dominio que toman encuenta la ecuación diferencial parcial y su discretización, permitiendo una altaeficiencia computacional en diversas arquitecturas paralelas (véase [6] y [8]). Laidea básica detrás de los métodos de descomposición de dominio es que en lugarde resolver un enorme problema sobre un dominio, puede ser conveniente –onecesario– resolver múltiples problemas de tamaño menor sobre un solo sub-dominio un cierto número de veces. Mucho del trabajo en la descomposición dedominio se relaciona con la selección de subproblemas que aseguren que la razón

24Como pueden ser las bibliotecas ATLAS –http://math-atlas.sourceforge.net– y HYPRE–http://acts.nersc.gov/hypre/– entre muchas otras.

[email protected] 47 Antonio Carrillo Ledesma, Et alii

Page 49: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

de convergencia del nuevo método iterativo sea rápida. En otras palabras, losmétodos de descomposición de dominio proveen precondicionadores a priori quepuedan acelerarse por métodos en el espacio de Krylov (véase [19]).

La descomposición de dominio generalmente se refiere a la separación deuna ecuación diferencial parcial o una aproximación de ella dentro de proble-mas acoplados sobre subdominios pequeños formando una partición del dominioori-ginal. Esta descomposición puede hacerse a nivel continuo, donde diferentesmodelos físicos, pueden ser usados en diferentes regiones, o a nivel discreto,donde puede ser conveniente el empleo de diferentes métodos de aproximaciónen diferentes regiones, o en la solución del sistema algebraico asociado a laaproximación de la ecuación diferencial parcial –estos tres aspectos están ínti-mamente interconectados en la práctica (véase [19])–.

Los método de descomposición de dominio –Domain Decomposition Metho-ds (DDM)– se basan en la suposición de que dado un dominio Ω ⊂ Rn, se puede

particionar en E subdominios Ωi, i = 1, 2, ..., E; tales que Ω =

(E⋃

i=1

Ωi

), entre

los cuales puede o no existir traslape (véase [3] y [19]). Entonces, el problemaes reformulado en términos de cada subdominio –mediante el uso de algúnmétodo de discretización– obteniendo una familia de subproblemas de tamañoreducido independientes entre sí, y que están acoplados a través de la soluciónen la interfase –que es desconocida– de los subdominios.

De esta manera, se puede clasificar de forma burda a los métodos de descom-posición de dominio (véase [6]), como aquellos en que: existe traslape entre lossubdominios y en los que no existe traslape. A la primera clase pertenece elmétodo de Schwarz –en el cual el tamaño del traslape es importante en la con-vergencia del método– y a los de la segunda clase pertenecen los métodos deltipo subestructuración –en el cual los subdominios sólo tienen en común a losnodos de la interfase o frontera interior–.

Desde hace ya algún tiempo, la comunidad internacional25 inicio el estudiointensivo de los métodos de descomposición de dominio, la atención se ha des-plazado (véase [9]) de los métodos con traslape en el dominio (véase [50]) a losmétodos sin traslape en el dominio (véase [43], [44], [45], [46] y [47]), ya que estosúltimos son más efectivos para una gran variedad de problemas de la Ciencia yla Ingeniería.

Los métodos de descomposición de dominio sin traslape son un paradigmanatural usado por la comunidad de modeladores (véase [1]). Los sistemas físi-cos son descompuestos en dos o más subdominios contiguos basados en consi-deraciones fenomenológicas o computacionales. Esta descomposición se reflejaen la Ingeniería de Software del código correspondiente, además, el uso de laprogramación orientada a objetos, permite dividir en niveles la semántica de los25Ello se refleja en las más de 19 conferencias internacionales de Métodos Descomposición

de Dominio (véase [18]) y de las cuales se han publicado 14 libros que recopilan los trabajosmás relevantes de cada conferencia. Además de varios mini simposios de descomposición dedominio en congresos mundiales como es el World Congress on Computational Mechanics o elIberian Latin American Congress on Computational Methods in Engineering.

[email protected] 48 Antonio Carrillo Ledesma, Et alii

Page 50: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

sistemas complejos, tratando así con las partes, más manejables que el todo, per-mitiendo una implementación, extensión y mantenimiento sencillo (véase [17]).

Tomando en cuenta que los métodos de descomposición de dominio sintraslape son fácilmente implementados para su uso en computadoras paralelasmediante técnicas de programación orientada a objetos –porqué el algoritmodel método es paralelo—, además, con los continuos avances en cómputo, enparticular, en la computación en paralelo mediante equipos de cómputo de altodesempeño y/o Clusters parecen ser el mecanismo más efectivo para incrementarla capacidad y velocidad de resolución de varios tipos de problemas de interésen Ciencias e Ingenierías usando métodos de descomposición de dominio (véase[44], [45], [46], [48] y [49]).

La implementación de los métodos de descomposición de dominio permiteutilizar de forma eficiente, las crecientes capacidades del cómputo en paralelo(véase [18] y [19]) –Grids26 de decenas de Clusters, cada uno con cientos o milesde procesadores interconectados por red, con un creciente poder de cómputomedible en Peta Flops–, así como el uso de una amplia memoria –ya seadistribuida y/o compartida del orden de Tera Bytes–, permitiendo atacar unagran variedad de problemas que sin estas técnicas es imposible hacerlo de maneraflexible y eficiente. Pero hay que notar que existe una amplia gama de problemasque se necesitan resolver, los cuales superan la capacidad de cómputo actual,ya sea por el tiempo requerido para su solución, por el consumo excesivo dememoria o ambos.

Así, los métodos de descomposición de dominio que introducen desde laformulación matemática del problema una separación natural de las tareas arealizar y simplifican considerablemente la transmisión de información entrelos subdominios (véase [19]), en conjunción con la programación orientada aobjetos y el cómputo en paralelo forman una amalgama poderosa. La cualpermite construir aplicaciones que coadyuven en la solución una gran gama deproblemas concomitantes en Ciencias e Ingenierías que requieren hacer uso deuna gran cantidad de grados de libertad.

Por otro lado, la lista de los métodos de descomposición de dominio y el tipode problemas que pueden ser atacados por estos, es grande y está en constanteevolución (véase [18] y [19]), ya que se trata de encontrar un equilibrio entrela complejidad del método –aunada a la propia complejidad del modelo–, laeficiencia en el consumo de los recursos computacionales y la precisión esperadaen la solución encontrada por los diversos métodos y las arquitecturas paralelasen la que se implante.

26Bajo el Macroproyecto: Tecnologías para la Universidad de la Información y la Com-putación de la UNAM, se interconectaron cuatro Cluster heterogéneos –dos en la Facultadde Ciencias, uno en el Instituto de Geofísica y otro en el Instituto de Matemáticas Aplicadasy Sistemas– con redes no dedicadas y en ellos se probo una versión de los códigos, en loscuales se vio que es factible el uso en Grids y si estos cuentan con una red dedicada –de altavelocidad– su eficiencia puede llegar a ser alta.

[email protected] 49 Antonio Carrillo Ledesma, Et alii

Page 51: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

3.1 Métodos de Descomposición de Dominio

Los métodos de descomposición de dominio son un paradigma natural usado porla comunidad de modeladores. Los sistemas físicos son descompuestos en dos omás subdominios contiguos basados en consideraciones fenomenológicas. Estasdescomposiciones basadas en dominios físicos son reflejadas en la ingeniería desoftware del código correspondiente.

Los métodos de descomposición de dominio permiten tratar los problemas detamaño considerable, empleando algoritmos paralelos en computadoras secuen-ciales y/o paralelas. Esto es posible ya que cualquier método de descomposiciónde dominio se basa en la suposición de que dado un dominio computacional Ω,este se puede particionar en subdominios Ωi,i = 1, 2, ..., E entre los cuales puedeo no existir traslape. Entonces el problema es reformulado en términos de cadasubdominio (empleando algún método del tipo Diferencias Finitas o ElementoFinito) obteniendo una familia de subproblemas de tamaño reducido indepen-dientes en principio entre si, que están acoplados a través de la solución en lainterfaz de los subdominios que es desconocida.

De esta manera, podemos clasificar de manera burda a los métodos de des-composición de dominio, como aquellos en que: existe traslape entre los subdo-minios y en los que no existe traslape. A la primera clase pertenece el métodode Schwarz (en el cual el tamaño del traslape es importante en la convergenciadel método) y a los de la segunda clase pertenecen los métodos del tipo sub-estructuración (en el cual los subdominios sólo tienen en común los nodos de lafrontera interior).

La computación en paralelo es una técnica que nos permite distribuir unagran carga computacional entre muchos procesadores. Y es bien sabido que unade las mayores dificultades del procesamiento en paralelo es la coordinación delas actividades de los diferentes procesadores y el intercambio de informaciónentre los mismos [15] mediante el paso de mensajes.

Así, mediante los métodos de descomposición de dominio, la programaciónorientada a objetos y esquemas de paralelización que usan el paso de mensajes,es posible construir aplicaciones que coadyuven a la solución de problemas con-comitantes en ciencia e ingeniería, ya que permiten utilizar todas las capacidadesdel cómputo en paralelo (supercomputadoras, clusters o grids), de esta formaes posible atacar una gran variedad de problemas que sin estas técnicas es im-posible hacerlo de manera flexible y eficiente.

Pero hay que notar que existen una amplia gama de problemas que nosinteresan resolver que superan las capacidades de cómputo actuales, ya sea porel tiempo requerido para su solución, por el consumo excesivo de memoria oambos.

La lista de los métodos de descomposición de dominio y el tipo de problemasque pueden ser atacados por estos, es grande y está en constante evolución,ya que se trata de encontrar un equilibrio entre la complejidad del método(aunada a la propia complejidad del modelo), la eficiencia en el consumo de losrecursos computacionales y la precisión esperada en la solución encontrada porlos diversos métodos y las arquitecturas paralelas en la que se implante.

[email protected] 50 Antonio Carrillo Ledesma, Et alii

Page 52: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A continuación describiremos algunos de estos métodos generales. En estecapítulo se considerarán problemas con valor en la frontera (VBVP) de la forma

Lu = f en Ω (3.1)

u = g en ∂Ω

dondeLu = −∇ · a · ∇u+ cu (3.2)

como un caso particular del operador elíptico de orden dos.

3.2 Método de Schwarz

El método fue desarrollado por Hermann Amandus Schwarz en 1869 (no como unmétodo de descomposición de dominio), ya que en esos tiempos los matemáticospodían resolver problemas con geometrías sencillas de manera analítica, perono tenían una idea clara de como poder resolver problemas que involucraranel traslape de esas geometrías sencillas. Como se conocía la solución para lasgeometrías sencillas por separado, la idea de Schwarz fue usar estas para conocerla solución en la geometría resultante al tener traslape, para más detalle ver [3].

Para describir el método, consideremos primero un dominio Ω que está for-mado de dos subdominios Ω1 y Ω2 traslapados, es decir Ω1 ∩Ω2 = ∅, entoncesΩ = Ω1 ∪ Ω2 y denotemos a Σ1 = ∂Ω1 ∩Ω2, Σ2 = ∂Ω2 ∩ Ω1 y Ω1,2 = Ω1 ∩ Ω2,como se muestra en la figura para dos dominios distintos:

Figura 2: Dominio Ω subdividido en dos subdominios Ω1 y Ω2.

La forma original del método iterativo de Schwarz conocido como métodosalternantes de Schwarz, consiste en resolver sucesivamente los siguientes pro-blemas.

Sea uo una función de inicialización definida en Ω, que se nulifica en ∂Ω,además hacemos u01 = u0|Ω1 y u02 = u0|Ω2 . Para k ≥ 0 definimos dos sucesiones

uk+11 y uk+1

2 para resolver respectivamente

Luk+1

1 = f en Ω1uk+11 = uk

2 en Σ1uk+11 = 0 en ∂Ω1 ∩ ∂Ω

(3.3)

[email protected] 51 Antonio Carrillo Ledesma, Et alii

Page 53: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

y Luk+1

2 = f en Ω2uk+12 = uk+1

1 en Σ2uk+12 = 0 en ∂Ω2 ∩ ∂Ω

(3.4)

resolviendo los problemas secuencialmente en cada subdominio (por ejemplo conel método de Diferencias Finitas o Elemento Finito). Este método se conocecomo Schwarz multiplicativo.

El método alternante de Schwarz dado por las Ecs. (3.3) y (3.4) convergea la solución u de (3.1) si suponemos alguna suavidad en los subdominios Ω1 yΩ2, ya que existen constantes C1 y C2 ∈ (0, 1) tal que para todo k ≥ 0 se tiene

∥∥u|Ω1 − uk+11

∥∥L∞(Ω1)

≤ Ck1C

k2

∥∥u− u0∥∥

L∞(Σ1)(3.5)

∥∥u|Ω2 − uk+12

∥∥L∞(Ω2)

≤ Ck+11 Ck

2

∥∥u− u0∥∥

L∞(Σ2)

las constantes C1 y C2 de reducción de error deben de estar bastante cerca de1 si la región de traslape Ω1,2 es delgada, la prueba de esta estimación puedeencontrarse en [2].

Por otro lado, teniendo el conjunto u01 = u0|Ω1 y u02 = u0|Ω2 , podemos generar

dos pasos independientes uno de otroLuk+1

1 = f en Ω1uk+11 = uk

2 en Σ1uk+11 = 0 en ∂Ω1 ∩ ∂Ω

(3.6)

y Luk+1

2 = f en Ω2uk+12 = uk

1 en Σ2uk+12 = 0 en ∂Ω2 ∩ ∂Ω

(3.7)

resolviendo los problemas en paralelo de cada subdominio (por ejemplo con elmétodo de Diferencias Finitas o Elemento Finito). Este método se conoce comoSchwarz aditivo.

La convergencia de este método en general requiere de algunas hipótesisadicionales, pero si converge, el número de iteraciones necesarias para convergerserá del doble que el método Schwarz multiplicativo.

La generalización del método de Schwarz en el caso en que Ω es particionadaen E > 2 subdominios traslapados puede describirse como sigue:

Descomponiendo el dominio Ω en E subdominios Ωe con traslape como porejemplo, la descomposición siguiente

Entonces para resolver el problema por el método de Schwarz, primeramentees necesario definir los siguientes subespacios del espacio de Sobolev H1(Ω), enellos estarán definidas las funciones usadas en el desarrollo del método:

Vi =vi ∈ H1(Ωi) | v|∂Ω∩∂Ωi = 0

V 0i = H1

0 (Ωi)

V ∗i =

v ∈ H1

0 (Ω) | v = 0 en Ω\Ωi

.

[email protected] 52 Antonio Carrillo Ledesma, Et alii

Page 54: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Figura 3: Descomposición de Ω en múltiples subdominios con traslape para elmétodo de Schwarz.

Denotaremos por I al operador identidad, por Ji, i = 1, ...E la inmersiónde V ∗

i sobre V (i.e. Jiv = v para toda v ∈ V ∗i ), y por J

Ti : H1

0 (Ωi) → V ∗i al

transpuesto del operador Ji definido por⟨JT

i F, v⟩= 〈F, Jiv〉 , ∀F ∈ V´

, v ∈ V ∗i . (3.8)

y definimosPi = JiP

∗i : H1

0 (Ωi)→ H10 (Ωi).

Sea Li : V 0i →

(V 0i

)′la restricción del operador L al subespacio V 0

i , definidocomo

〈Liwi, vi〉 = a (wi, vi) para toda wi, vi ∈ V 0i

y como un operador de extensión ρTi : V 0i → V ∗

i definido como

ρTi vi = vi para toda vi ∈ V 0

i (3.9)

y el transpuesto del operador restricción ρi : (V∗i )

′ → (V 0i )′ como

〈ρiG, vi〉 =⟨G, ρT

i vi

⟩,para toda G ∈ (V ∗

i )′, vi ∈ V 0

i . (3.10)

De lo anterior se tiene que

Li = ρiJTi LJiρ

Ti

yPi = JiP

∗i : V → V para i = 1, ..., E. (3.11)

Entonces el método Multiplicativo de Schwarz queda como

uk+ iE = (I − Pi)u

k+ i−1E + Jiρ

Ti L−1i ρiJ

Ti f (3.12)

[email protected] 53 Antonio Carrillo Ledesma, Et alii

Page 55: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

para i = 1, 2, ..., E y

uk+1 =

(I −

E∑

i=1

Pi

)uk +

M∑

i=1

JiρTi L−1i ρiJ

Ti f (3.13)

y la correspondiente ecuación de error como

u− uk+1 = (I − Pm) ... (I − P1) (u− uk). (3.14)

El el método Aditivo de Schwarz queda como

u− uk+1 =

(I −

E∑

i=1

Pi

)(u− uk

)(3.15)

y la correspondiente ecuación de error como

u− uk+1 = (I − Pm) ... (I − P1) (u− uk). (3.16)

Observaciones:

• La precisión del método depende fuertemente del número de ite-raciones realizadas en el proceso iterativo y converge a la precisiónusada en la solución de cada subdominio en el mejor de los casos.

• El método aditivo de Schwarz es secuencial, en el caso del métodomultiplicativo de Schwarz es paralelizable pero tiene una parte serialimportante en el algoritmo y su convergencia no es la óptima enesta formulación, pero existen variantes del método que permitenremediar esto, para más detalles ver [?], [6] y [8].

• Hay que notar que por cada subdominio (supóngase n) y en cadaiteración (supóngase I) se resuelve un problema para cada Ωi, estosignifica que si se usa el método de Diferencias Finitas o ElementoFinito para resolver el problema local donde se usen en promedior iteraciones para resolver el sistema lineal (no tomando en cuentael costo invertido en generar las matrices), el total de iteracionesnecesarias para resolver el problema en el dominio Ω será r ∗ n ∗ I,resultando muy costoso computacionalmente con respecto a otrosmétodos de descomposición de dominio.

[email protected] 54 Antonio Carrillo Ledesma, Et alii

Page 56: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

3.3 Método de Descomposición de Dominio de Subestruc-turación (DDM)

La solución numérica por los esquemas tradicionales de discretización tipo Difer-encias Finitas y Elemento Finito generan una discretización del problema, lacual es usada para generar un sistema de ecuaciones algebraicos Au = b. Estesistema algebraico en general es de gran tamaño para problemas reales, al serestos algoritmos secuenciales su implantación suele hacerse en equipos secuen-ciales y por ello no es posible resolver muchos problemas que involucren el usode una gran cantidad de memoria, actualmente para tratar de subsanar dichalimitante, se usa equipo paralelo para soportar algoritmos secuenciales, haciendoineficiente su implantación en dichos equipos.

Los métodos de descomposición de dominio son un paradigma natural usadopor la comunidad de modeladores. Los sistemas físicos son descompuestos en doso más subdominios contiguos basados en consideraciones fenomenológicas. Estasdescomposiciones basadas en dominios físicos son reflejadas en la ingeniería desoftware del código correspondiente.

Los métodos de descomposición de dominio permiten tratar los problemas detamaño considerable, empleando algoritmos paralelos en computadoras secuen-ciales y/o paralelas. Esto es posible ya que cualquier método de descomposiciónde dominio se basa en la suposición de que dado un dominio computacional Ω,este se puede particionar -triangular- en E subdominios Ωα,α = 1, 2, ..., E entrelos cuales no existe traslape. Entonces el problema es reformulado en térmi-nos de cada subdominio (empleando por ejemplo algún método tipo DiferenciasFinitas o Elemento Finito) obteniendo una familia de subproblemas de tamañoreducido independientes en principio entre si, que están acoplados a través de lasolución en la interfaz de los subdominios que es desconocida [4], [3], [8] y [10],uno de los primeros Métodos de Descomposición de Dominio sin traslape es el deSubestructuración -mejor conocido como Schur- y el cual es la base los métodosmás comúnmente usados como son FETI-DP, BDDC y el propio DVS-DDM.

En esta sección y sin perdida de generalidad se considerarán problemas convalor en la frontera (VBVP) de la forma

Lu = f en Ω (3.17)

u = g en ∂Ω

dondeLu = −∇ · a · ∇u+ cu (3.18)

con a una matriz positiva definida, simétrica y c ≥ 0, como un caso particular deloperador elíptico de orden 2 y para ejemplificar tomaremos un dominio Ω ⊂ R2

con fronteras poligonales, es decir, Ω es un conjunto abierto acotado y conexotal que su frontera ∂Ω es la unión de un número finito de polígonos.

Consideremos el problema dado por la Ec. (3.17) en el dominio Ω, el cual essubdividido en E subdominios Ωi, i = 1, 2, ..., E sin traslape, también conocida

[email protected] 55 Antonio Carrillo Ledesma, Et alii

Page 57: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

como malla gruesa TH , es decir

Ωi ∩Ωj = ∅ ∀i = j y Ω =E⋃

i=1

Ωi, (3.19)

y al conjunto

Γ =E⋃

i=1

Γi, si Γi = ∂Ωi\∂Ω (3.20)

lo llamaremos la frontera interior del dominio Ω, denotamos por H al diámetroHi = Diam(Ωi) de cada Ωi que satisface Diam(Ωi) ≤ H para cada i =1, 2, ..., E, además, cada subdominio Ωi es descompuesto en una mallado finoTh de K subdominios mediante una triangulación Ωe de modo que esta sea con-forme, denotamos por h al diámetro hi = Diam(Ωe) de cada Ωe que satisfaceDiam(Ωe) ≤ h para cada e = 1, 2, ...,K de cada i = 1, 2, ...,E.

Un ejemplo de un dominio Ω y su descomposición en subdominios Ωi y cadaΩi a su vez descompuesto en Ωe subdominios se muestra en la figura:

Figura 4: Dominio Ω descompuesto en una partición gruesa de 3 × 3 y cadasubdominio Ωi en una partición fina de 7× 5.

Sin perdida de generalidad tomemos g = 0 en ∂Ω, notemos que siempre esposible poner el problema de la Ec. (3.17) como uno con condiciones de fronteraDirichlet que se nulifiquen mediante la adecuada manipulación del término dellado derecho de la ecuación.

Primeramente sea D ⊂ H10 (Ω) un espacio lineal de funciones de dimensión

finita N, en el cual esté definido un producto interior denotado para cada u, v ∈D por

u · v = 〈u, v〉 (3.21)

Considerando la existencia de los subconjuntos linealmente independientes

B ⊂ D,BI ⊂ DI ,BΓ ⊂ DΓ

BΓ ⊂ DΓ,BΓJ ⊂ DΓ1,BΓM ⊂ DΓ2(3.22)

[email protected] 56 Antonio Carrillo Ledesma, Et alii

Page 58: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

los cuales satisfacen

B = BI ∪ BΓ y BΓ = BΓJ ∪ BΓM (3.23)

el espacio generado por cada uno de los subconjuntos BΓ y BΓ es DΓ, sin embargodistinguimos la propiedad de que los miembros de BΓ tienen soporte local.

Definimos las bases

BI =w1I , ..., w

NI

I

,BΓM =

w1M , ..., wNΓ

M

y BΓJ =

w1J , ..., w

J

(3.24)

de las funcionales lineales φi en Ω.

Entonces definiendo para toda δ = 1, ...,K, la matriz de Nδ ×Nδ

II≡

[⟨wi

I , wjI

⟩](3.25)

que sólo esta definida en cada subespacio (subdominio Ωδ). Entonces, la matrizvirtual A

IIes dada por la matriz diagonal de la forma

AII≡

A1II

A2II

. . .AE

II

(3.26)

donde el resto de la matriz fuera de la diagonal en bloques es cero.De forma similar definimos

IΓ≡

[⟨wi

I , wαΓ

⟩], Aδ

ΓI≡

[⟨wαΓ , w

iI

⟩](3.27)

yAδ

ΓΓ≡ [〈wα

Γ , wαΓ〉] (3.28)

para toda δ = 1, ..., E, obsérvese que como BΓ = BΓJ ∪ BΓM entonces

ΓΓ= [〈wα

Γ , wαΓ〉] =

[⟨wαΓJ , w

αΓJ

⟩]+

[⟨wαΓM , wα

ΓM

⟩](3.29)

también que Aδ

IΓ=

(Aδ

ΓI

)T

. Entonces las matrices virtuales AΓI, A

IΓy A

ΓΓ

quedarán definidas como

AIΓ≡

A1IΓ

A2IΓ...

AE

(3.30)

AΓI≡

[A1ΓI

A2ΓI

· · · AE

ΓI

](3.31)

[email protected] 57 Antonio Carrillo Ledesma, Et alii

Page 59: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

y

AΓΓ≡

[E∑

i=1

Ai

ΓΓ

](3.32)

donde[∑E

i=1Ai

ΓΓ

]es construida sumando las Ai

ΓΓsegún el orden de los nodos

globales versus los nodos locales.También consideremos al vector u ≡ (u1, .., uE) el cual puede ser escrito

como u = (uI , uΓ) donde uI = (u1, ...,NI) y uΓ = (u1, ...,NΓ

) .Así, el sistema virtual

AIIuI +A

IΓuΓ = bI (3.33)

AΓIuI +A

ΓΓuΓ = bΓ

quedando expresado como

A1II

. . .AE

II

uI1...

uIE

+

A1IΓ...

AE

uΓ1...

uΓE

=

bI1...

bIE

A1

ΓI· · · AE

ΓI

uI1...

uIE

+

AΓΓ

uΓ1...

uΓE

=

bΓ1...

bΓE

o más compactamente como Au = b, notemos que las matrices Ai

ΓΓ, Ai

ΓI, Ai

IΓy

Ai

IIson matrices bandadas.Si ahora despejamos uI de la primera ecuación del sistema dado por la Ec.

(3.33) obtenemos

uI =(A

II

)−1 (bI −A

IΓuΓ

)

si sustituimos uI en la segunda ecuación del sistema dado por la Ec. (3.33)entonces tenemos

(AΓΓ−A

ΓI

(A

II

)−1A

)uΓ = bΓ −A

ΓI

(A

II

)−1bI (3.34)

en la cual los nodos interiores no figuran en la ecuación y todo queda en funciónde los nodos de la frontera interior uΓ.

A la matriz formada por AΓΓ−A

ΓI

(A

II

)−1A

IΓse le conoce como el com-

plemento de Schur global y se le denota como

S = AΓΓ−A

ΓI

(A

II

)−1A

IΓ. (3.35)

En nuestro caso, como estamos planteando todo en términos de subdominiosΩi, con i = 1, ...,E, entonces las matrices Ai

ΓΓ, Ai

ΓI, Ai

IΓy Ai

IIquedan definidas

[email protected] 58 Antonio Carrillo Ledesma, Et alii

Page 60: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

de manera local, así que procedemos a definir el complemento de Schur localcomo

Si= Ai

ΓΓ−Ai

ΓI

(Ai

II

)−1Ai

IΓ(3.36)

adicionalmente definimos

bi = bΓi−Ai

ΓI

(Ai

II

)−1bI i

. (3.37)

El sistema dado por la Ec. (3.34) lo escribimos como

SuΓ = b (3.38)

y queda definido de manera virtual a partir de[

E∑

i=1

Si

]uΓ =

[E∑

i=1

bi

](3.39)

donde[∑E

i=1 Si

]y[∑E

i=1 bi

]podrían ser construida sumando las Si y bi re-

spectivamente según el orden de los nodos globales versus los nodos locales.El sistema lineal virtual obtenido de la Ec. (3.38) se resuelve -dependiendo

de si es o no simétrico- eficientemente usando el método de Gradiente Conjugadoo alguna variante de GMRES, para ello no es necesario construir la matriz S conlas contribuciones de cada Si correspondientes al subdominio i, lo que hacemoses pasar a cada subdominio el vector uΓi

correspondiente a la i-ésima iteracióndel método iterativo usado para que en cada subdominio se evalué uΓi = S

iuΓi

localmente y con el resultado se forma el vector uΓ =∑E

i=1 uΓiy se continué

con los demás pasos del método. Esto es ideal para una implementación enparalelo del método de Gradiente Conjugado o variante de GMRES.

Una vez resuelto el sistema de la Ec. (3.39) en el que hemos encontrado lasolución para los nodos de la frontera interior uΓ, entonces debemos resolverlocalmente los uI i

correspondientes a los nodos interiores para cada subespacioΩi, para esto empleamos

uI i=

(Ai

II

)−1 (bI i−Ai

IΓuΓi

)(3.40)

para cada i = 1, 2, ..., E, quedando así resuelto el problema Au = b tanto en losnodos interiores uI i

como en los de la frontera interior uΓicorrespondientes a

cada subespacio Ωi.

Observación 1 Notemos que normalmente las matrices locales Siy(Ai

II

)−1

no se construyen, ya que estas serian matrices densas y su construcción es com-putacionalmente muy costosa, y como sólo nos interesa el producto SyΓ, o más

precisamente[∑E

i=1 Si

]yΓ, entonces si llamamos yΓi

al vector correspondienteal subdominio i, entonces tendremos

uΓi =

(Ai

ΓΓ−Ai

ΓI

(Ai

II

)−1Ai

)yΓi

. (3.41)

[email protected] 59 Antonio Carrillo Ledesma, Et alii

Page 61: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Para evaluar eficientemente esta expresión, realizamos las siguientes opera-ciones equivalentes

x1 = Ai

ΓΓyΓi

(3.42)

x2 =

(Ai

ΓI

(Ai

II

)−1Ai

)yΓi

uΓi = x1− x2

la primera y tercera expresión no tienen ningún problema en su evaluación, parala segunda expresión tendremos que hacer

x3 = Ai

IΓyΓi

(3.43)

con este resultado intermedio deberíamos calcular

x4 =(Ai

II

)−1x3 (3.44)

pero como no contamos con(Ai

II

)−1, entonces multiplicamos la expresión por

Ai

IIobteniendo

Ai

IIx4 = Ai

II

(Ai

II

)−1x3 (3.45)

al simplificar, tenemosAi

IIx4 = x3. (3.46)

Esta última expresión puede ser resuelta usando Factorización LU, GradienteConjugado o alguna variante de GMRES (cada una de estas opciones tieneventajas y desventajas computacionales que deben ser evaluadas al momentode implementar el código para un problema particular). Una vez obtenido x4,podremos calcular

x2 = Ai

ΓIx4 (3.47)

asíuΓ

i = x1− x2 (3.48)

completando la secuencia de operaciones necesaria para obtener SiyΓi

.

Observación 2 En el caso del cálculo de

bi = bΓi−Ai

ΓI

(Ai

II

)−1bI i

(3.49)

algo análogo al comentario anterior deberá de hacerse, ya que nuevamente está

involucrado(Ai

II

)−1, por ello deberemos de usar el siguiente procedimiento para

evaluar eficientemente esta expresión, realizando las operaciones equivalentes

y1 =(Ai

II

)−1bI i

(3.50)

[email protected] 60 Antonio Carrillo Ledesma, Et alii

Page 62: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

multiplicando por Ai

IIa la última expresión, obtenemos

Ai

IIy1 = Ai

II

(Ai

II

)−1bI i

(3.51)

simplificando, tenemos (Ai

II

)y1 = bI i

(3.52)

donde esta última expresión puede ser resuelta usando Factorización LU, Gra-diente Conjugado o alguna variante de GMRES, luego hacemos

y2 = Ai

ΓIy1 (3.53)

y para finalizar el cálculo, calculamos

bi = bΓi− y2. (3.54)

Observación 3 En la evaluación de

uI i=

(Ai

II

)−1 (bI i−Ai

IΓuΓi

)(3.55)

esta nuevamente involucrado(Ai

II

)−1, por ello deberemos de usar el siguiente

procedimiento para evaluar eficientemente esta expresión, realizando las opera-ciones equivalentes

x4 = bI i−Ai

IΓuΓi

(3.56)

uI i=

(Ai

II

)−1x4

multiplicando por Ai

IIa la última expresión, obtenemos

Ai

IIuI i

= Ai

II

(Ai

II

)−1x4 (3.57)

simplificando, tenemosAi

IIuI i

= x4 (3.58)

esta última expresión puede ser resuelta usando Factorización LU o GradienteConjugado.

Como se indico en las últimas observaciones, para resolver el sistema Ai

IIx =

b podemos usar Factorización LU, Gradiente Conjugado, alguna variante deGMRES o cualquier otro método para resolver sistemas lineales, pero deberáde usarse aquel que proporcione la mayor velocidad en el cálculo o que con-suma la menor cantidad de memoria (ambas condicionantes son mutuamenteexcluyentes), por ello la decisión de que método usar deberá de tomarse almomento de tener que resolver un problema particular en un equipo dado ybásicamente el condicionante es el tamaño del la matriz Ai

II.

[email protected] 61 Antonio Carrillo Ledesma, Et alii

Page 63: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Para usar el método de Factorización LU, se deberá primeramente de fac-torizar la matriz bandada Ai

IIen una matriz LU , la cual es bandada pero

incrementa el tamaño de la banda a más del doble, pero esta operación sólo sedeberá de realizar una vez por cada subdominio, y para solucionar los diversossistemas lineales Ai

IIx = b sólo será necesario evaluar los sistemas

Ly = b (3.59)

Ux = y

en donde y es un vector auxiliar. Esto proporciona una manera muy eficientede evaluar el sistema lineal pero el consumo en memoria para un problemaparticular puede ser excesivo.

Por ello, si el problema involucra una gran cantidad de nodos interiores y elequipo en el que se implantará la ejecución del programa tiene una cantidad dememoria muy limitada, es recomendable usar el método de Gradiente Conjugadoo alguna variante de GMRES, este consume una cantidad de memoria adicionalmuy pequeña y el tiempo de ejecución se optimiza versus la Factorización LU.

De esta forma, es posible adaptar el código para tomar en cuenta la im-plementación de este en un equipo de cómputo en particular y poder sacar elmáximo provecho al método de Subestructuración en la resolución de problemaselípticos de gran envergadura.

En lo que resta del presente trabajo, se asume que el método empleado pararesolver Ai

IIx = b en sus respectivas variantes necesarias para evitar el cálculo

de(Ai

II

)−1es el método de Gradiente Conjugado, logrando así el máximo

desempeño en velocidad en tiempo de ejecución.

El número de condicionamiento del complemento de Schur sin precondi-cionamiento puede ser estimado, para ello:

Definición 7 Introducimos una norma-L2 equivalente sobre Γ mediante

∥∥uΓ∥∥2Γ=

E∑

i=1

∥∥uΓ∥∥2

L2(∂Ωi). (3.60)

Teorema 8 Sea uΓ la traza de funciones de elemento finito en V h sobre Γ,asumimos que los coeficientes de la ecuación diferencial parcial ρi = 1, i =1, 2, ..., E, y que la malla fina Th y la malla gruesa TH sea cuasi-uniforme.Entonces existen dos constantes positivas c y C, independientes de h y H, talque

cH∥∥uΓ

∥∥2Γ≤ s(uΓ, uΓ) ≤ Ch−1

∥∥uΓ∥∥2Γ

(3.61)

de este modo

κ = cond(S) ≤ C

Hh. (3.62)

[email protected] 62 Antonio Carrillo Ledesma, Et alii

Page 64: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Por analogía al método de subestructuración desarrollado anteriormente,dado un sistema lineal Mx = f que proviene de la discretización de algúnmétodo tipo Diferencias Finitas, Elemento Finito o Volumen Finito, siempre esposible reacomodarlo como

(A BC D

)(uv

)=

(ab

)(3.63)

con M =

(A BC D

), x =

(uv

)y f =

(ab

), en la cual la matriz A sea

invertible, entonces (D− CA−1B

)v = b−CA−1a (3.64)

y dondeu = A−1

(a−Bv

). (3.65)

Así, hemos transformado el sistema Mx = f, en otro equivalente

Nv = g (3.66)

pero con un menor número de grados de libertad, donde

N =(D−CA−1B

), g = b−CA−1a. (3.67)

a esta descomposición matricial se le conoce como la descomposición de Schur.Así, para solucionar el sistema lineal Nv = g, seleccionaremos el método

adecuado acorde a las propiedades de la matriz N como se vio en el presentecapítulo, siendo los más comunes el método CGM -para matrices simétricas- yvariantes del método GMRES -para matrices no simétricas-, entre otros.

[email protected] 63 Antonio Carrillo Ledesma, Et alii

Page 65: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

3.4 Métodos del Espacio de Vectores Derivados (DVS)

El espacio de vectores derivados (DVS) es mostrado como una formulaciónnumérica la cual esta íntimamente relacionada con la implementación computa-cional, tanto en la versión secuencial como paralela del código (véase [62] y[61]).

La implementación computacional dicta ciertas consideraciones sobre selec-ción de los algoritmos numéricos, así como, la forma de implementación deestos. Con la única finalidad de aprovechar sus propiedades computacionales enla definición de una robusta jerarquía de clases que resuelva de forma eficienteel problema.

Para ello, se inicia considerando el operador de segundo orden dado por laecuación

Lu = f en Ω (3.68)

u = g sobre ∂Ω

Consideremos el problema dado por la Ec. (3.68) en el dominio Ω, el cual essubdividido en E subdominios Ωi, i = 1, 2, ..., E sin traslape, también conocidacomo malla gruesa TH , es decir

Figura 5: Dominio Ω descompuesto en una partición gruesa de 3 × 3 y cadasubdominio Ωi en una partición fina de 7× 5.

Ωi ∩Ωj = ∅ ∀i = j y Ω =E⋃

i=1

Ωi, (3.69)

y al conjunto

Γ =E⋃

i=1

Γi, si Γi = ∂Ωi\∂Ω (3.70)

lo llamaremos la frontera interior del dominio Ω, denotamos por H al diámetroHi = Diam(Ωi) de cada Ωi que satisface Diam(Ωi) ≤ H para cada i =

[email protected] 64 Antonio Carrillo Ledesma, Et alii

Page 66: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

1, 2, ..., E, además, cada subdominio Ωi es descompuesto en una mallado finoTh de K subdominios mediante una triangulación Ωe de modo que esta sea con-forme, denotamos por h al diámetro hi = Diam(Ωe) de cada Ωe que satisfaceDiam(Ωe) ≤ h para cada e = 1, 2, ...,K de cada i = 1, 2, ...,E.

Un ejemplo de un dominio Ω y su descomposición en subdominios Ωi y cadaΩi a su vez descompuesto en Ωe subdominios se muestra en la figura anterior.Sin perdida de generalidad tomemos g = 0 en ∂Ω, notemos que siempre esposible poner el problema de la Ec. (3.68) como uno con condiciones de fronteraDirichlet que se nulifiquen mediante la adecuada manipulación del término dellado derecho de la ecuación.

Para resolver dicho problema, se puede usar cualquiera de los ocho algoritmosque se han desarrollado, de cada uno de ellos se han dado formulaciones explí-citas en términos de matrices.

Así, para generar la implementación de cualquiera de los algoritmos desa-rrollados se necesita generar las matrices locales

ΠΠ, Aα

Π∆, Aα

∆Π, Aα

∆∆(3.71)

que están definidas de Wr →Wr, o más explícitamente las matrices

II, Aα

Iπ,Aα

I∆, Aα

πI,Aα

ππ, Aα

π∆, Aα

∆I, Aα

∆πy Aα

∆∆(3.72)

ello se puede hacer de dos formas, a saber:

• A partir de la matriz que es obtenida después de que el problema se hadiscretizado –a partir de una discretización por el método de ElementoFinito, Volumen Finito o Diferencias Finitas– y para su aplicación no serequiere ninguna información acerca de la ecuación diferencial parcial dela cual se originó.

• A partir la discretización de la ecuación diferencial parcial generada lo-calmente en cada subdominio por algún método de descomposición dedominio sin traslapes, como el usado para FETI-DP o BDDC.

En la sección (C.8) se derivo la forma de obtener las matrices locales apartir de la matriz At : W → W que es obtenida después de que el problemase ha discretizado y la cual es puesta en el espacio de vectores derivados. Enla siguiente sección se da la forma de derivar cada una de las matrices localesa partir la discretización de la ecuación diferencial parcial generada localmenteen cada subdominio; para que en las siguientes secciones, mediante el uso dedichas matrices se pueda implementar cualquiera de los métodos desarrollados.

3.4.1 Discretización de los Métodos Partiendo de la FormulaciónLocal

Los métodos de descomposición de dominio –como son FETI-DP y BDDC– yel esquema DVS puede partir de la discretización local mediante algún método

[email protected] 65 Antonio Carrillo Ledesma, Et alii

Page 67: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

de discretización como Diferencias Finitas, Volumen Finito o Elemento Finito—este último es uno de los más usados en los DDM– para construir cada unade las matrices locales

II, Aα

Iπ,Aα

I∆, Aα

πI,Aα

ππ, Aα

π∆, Aα

∆I, Aα

∆πy Aα

∆∆(3.73)

para cada Ωα con α = 1, ..., E. Una vez construida las matrices locales, seprocede a definir al complemento de Schur local por subdominio –más detallesvéase sección (3.3)–

π= Aα

ππ−Aα

πI

(Aα

II

)−1Aα

Iπ(3.74)

con él se define

ΠΠ=

(Aα

IIAα

πIAα

ππ

)(3.75)

que a su vez define

Sα = Aα

∆∆−Aα

∆Π

(Aα

ΠΠ

)−1Aα

Π∆(3.76)

recordando que

AΠΠ

=E∑

α=1

ΠΠ, A

Π∆=

E∑

α=1

Π∆

A∆Π

=E∑

α=1

∆Π, A

∆∆=

E∑

α=1

∆∆

(3.77)

S =E∑

α=1

Sα y(S)−1

=E∑

α=1

(Sα

)−1 (3.78)

entonces, finalmente se tienen definidas a S y S−1. Con estas definiciones, ahoraya es posible implementar cualesquiera de los métodos del esquema del espaciode vectores derivados.

Nótese que, por la forma de construcción de las matrices, se tienen las si-guientes propiedades importantes

(AΠΠ

)−1=

E∑

α=1

(Aα

ΠΠ

)−1y

(A)−1

=E∑

α=1

(Aα

)−1(3.79)

esto implica que el cálculo de la inversa de la matriz AΠΠ

es exclusivamente apartir de las inversas locales a cada subdominio.

3.4.2 Formulación Operacional de los Métodos DVS

Para la resolución de problemas de interés en Ciencias e Ingenierías donde esnecesario resolver, por ejemplo el problema dado por la Ec.(C.96) –más detallesvéase la sección (C.9)– que consiste en buscar una función u

′ ∈Wr que satisfaga

aAu′

= f y ju′

= 0 (3.80)

[email protected] 66 Antonio Carrillo Ledesma, Et alii

Page 68: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

aquí, el vector f ∈ W12 es un dato del problema y donde el vector u′

y f estaformado por (

uΠu∆

)= u

y(

f∆

)= f (3.81)

que satisfaga –véase sección (D.3) del operador Steklov-Poincaré Ecs.(D.62 yD.63)– (

L+ aR−RT j)u′

= f. (3.82)

Entonces es necesario transformar el problema Ec.(3.82) en uno que

fΠ= 0 (3.83)

para ello, se introduce un vector auxiliar

up = A∆Π

(AΠΠ

)−1fΠ

(3.84)

en el cual(up

)∆= 0, por lo tanto la Ec.(3.82) toma la forma

(aR−RT j

)u∆ = f

∆− up (3.85)

así, la solución u′

al problema será u′

= u∆ − up.Dado que se necesita expresar el problema en términos del espacio W12

entoncesf∆2

= af∆, y f

∆1

= jf∆= 0 (3.86)

(up

)∆= aA

∆Π

(AΠΠ

)−1fΠ

(3.87)

de lo anterior, la expresión dada por la Ec.(3.85), se puede reescribir como

(aS − Sj

)u∆ = af

∆− aA

∆Π

(AΠΠ

)−1fΠ

(3.88)

donde

S = A∆∆

−A∆Π

(AΠΠ

)−1AΠ∆

(3.89)

o más compactamente se escribe como(aS − Sj

)u∆ = f

∆−

(up

)∆. (3.90)

[email protected] 67 Antonio Carrillo Ledesma, Et alii

Page 69: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Por todo lo anterior, los algoritmos desarrollados quedan escritos de maneraexplícita como:

1. Formulacion del Algoritmo del Complemento de Schur (PRI-MAL#1) –véase ecuación (D.4) en la sección (D.1.1)–:

“Encontrar a u∆ ∈W∆ tal que

aSu∆ = f∆−

(up

)∆

(3.91)

sujeto a ju∆ = 0”. O en su forma desarrollada

aSu∆ = f∆− aA

∆Π

(AΠΠ

)−1fΠ. (3.92)

2. Formulación Dual del Problema Neumann-Neumann (DUAL#1)–véase la ecuación (D.11) de la sección (D.1.2)–:

“Dada f∆∈W∆, buscar a λ ∈W∆ tal que

jS−1λ∆ = jS−1(f∆−

(up

)∆

)(3.93)

sujeto a aλ∆ = 0”. O en su forma desarrollada

jS−1λ∆ = jS−1(f∆− aA

∆Π

(AΠΠ

)−1fΠ

). (3.94)

3. Formulación Primal del Problema Neumann-Neumann (PRIMAL#2)–véase ecuación (D.21) en la sección (D.1.3)–:

“Dada f∆∈W∆, encontrar v∆ ∈W∆ tal que

S−1jv∆ = S−1jS−1(f∆−

(up

)∆

)(3.95)

sujeto a aSv∆ = 0”. O en su forma desarrollada

S−1jv∆ = S−1jS−1(f∆− aA

∆Π

(AΠΠ

)−1fΠ

). (3.96)

4. Formulación Dual del Problema Neumann-Neumann (DUAL#2)–véase la ecuación (D.29) de la sección (D.1.4)–:

“Dada f∆∈W∆, sea µ∆ ∈W∆ tal que

Saµ∆= SaSjS−1

(f∆−

(up

)∆

)(3.97)

sujeto a jS−1µ∆= 0”. O en su forma desarrollada

Saµ∆= SaSjS−1

(f∆− aA

∆Π

(AΠΠ

)−1fΠ

). (3.98)

[email protected] 68 Antonio Carrillo Ledesma, Et alii

Page 70: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

5. Formulación Precondicionada del Algoritmo BDDC (PRIMAL#1)–véase la ecuación (D.30) en la sección (D.2.1)–:

“Buscar a u∆ ∈W∆ tal que

aS−1aSu∆ = aS−1(f∆−

(up

)∆

)(3.99)

sujeto a ju∆ = 0”. O en su forma desarrollada

aS−1aSu∆ = aS−1(f∆− aA

∆Π

(AΠΠ

)−1fΠ

). (3.100)

6. Formulación Precondicionada del Algoritmo FETI-DP (DUAL#1)–véase la ecuación (D.36) en la sección (D.2.2)–:

“Dada f∆∈W∆, sea λ∆ ∈W∆ tal que

jSjS−1λ∆ = jSjS−1(f∆−

(up

)∆

)(3.101)

sujeto a aλ∆ = 0”. O en su forma desarrollada

jSjS−1λ∆ = jSjS−1(f∆− aA

∆Π

(AΠΠ

)−1fΠ

)(3.102)

donde una vez calculada λ∆ entonces u∆ es obtenida mediante

u∆ = aS−1(f∆− jλ∆

). (3.103)

7. Formulación Primal Precondicionada del Problema Neumann-Neumann DVS-PRIMAL (PRIMAL#2) –véase la ecuación (D.43)en la sección (D.2.3)–:

“Dada f∆∈W∆, buscar v ∈W∆ tal que

S−1jSjv∆ = S−1jSjS−1(f∆−

(up

)∆

)(3.104)

sujeto a aSv∆ = 0”. O en su forma desarrollada

S−1jSjv∆ = S−1jSjS−1(f∆− aA

∆Π

(AΠΠ

)−1fΠ

)(3.105)

donde una vez calculada v∆ entonces u∆ es obtenida mediante

u∆ = aS−1(f∆− jSv∆

). (3.106)

[email protected] 69 Antonio Carrillo Ledesma, Et alii

Page 71: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

8. Formulación Dual Precondicionada del Problema Neumann-Neu-mann DVS-DUAL (DUAL#2) –véase la ecuación (D.50) en la sección(D.2.4)–:

“Dada f∆∈W∆, sea µ∆ ∈W∆ tal que

SaS−1aµ∆= SaS−1aSjS−1

(f∆−

(up

)∆

)(3.107)

sujeto a jS−1µ∆= 0”. O en su forma desarrollada

SaS−1aµ∆= SaS−1aSjS−1

(f∆− aA

∆Π

(AΠΠ

)−1fΠ

)(3.108)

donde una vez calculada µ∆entonces u∆ es obtenida mediante

u∆ = aS−1(f∆+ µ

). (3.109)

3.4.3 Implementación Numérica de DVS

La implementación numérica de por ejemplo, el algoritmo DVS-BDDC (PRI-MAL#1) puesto en su forma operacional, Ec.(3.100) es

aS−1aSu∆ = aS−1(f∆− aA

∆Π

(AΠΠ

)−1fΠ

)(3.110)

en la cual define el sistema lineal virtual a resolver

Mu∆ = b (3.111)

donde

M = aS−1aS y b = aS−1(f∆− aA

∆Π

(AΠΠ

)−1fΠ

)(3.112)

entonces el sistema lineal virtual puede ser implementado mediante el métodode Gradiente Conjugado o alguna variante de GMRES, dependiendo del tipo dematriz que sea S. Si S es simétrica y definida positiva, entonces S−1 tambiénserá simétrica y definida positiva y por tanto se usaría el método de GradienteConjugado, en caso contrario se usaría el método de GMRES o algún otro.

Nótese que, en los métodos iterativos, la adecuada selección de u0 puede sertan costosa –computacionalmente hablando– como encontrar la solución u,pues tomar una u0 no adecuada, generalmente ocasiona realizar más iteracionespara converger en el método que tomar u0 = 0.

3.4.4 Implementación para Matrices Simétricas

Suponiendo que S es simétrica y definida positiva, la formulación Mu∆ = bpuede ser implementada como el método de Gradiente Conjugado –véase sec-ción (B.2.1)– usando el algoritmo dado en la Ec.(B.14) en el cual se usa elproducto interior según corresponda:

[email protected] 70 Antonio Carrillo Ledesma, Et alii

Page 72: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

• aS−1aS será simétrico con respecto al producto interior definido por

〈u,w〉 = u ·w (3.113)

• SjS−1j será simétrico con respecto al producto interior definido por

〈u,w〉 = Su ·w (3.114)

La implementación del algoritmo se inicia tomando u0, una elección comúnes tomar a u0 = 0, si este es el caso, entonces

r0 = aS−1(f∆− aA

∆Π

(AΠΠ

)−1fΠ

), p0 = r0 (3.115)

y la parte iterativa27 queda como:

Para n = 1, 2, ...αn =

〈pn,Spn〉〈pn,SaS−1aSpn〉

un+1 = un + αnpn

rn+1 = rn − αnaS−1aSpn

< Prueba de convergencia >

βn =〈rn+1,Srn+1〉〈rn,Srn〉

pn+1 = rn+1 + βnpn

(3.116)

3.4.5 Implementación para Matrices no Simétricas e Indefinidas

Suponiendo que S es no simétrica o indefinida, la formulación Mu∆ = b puedeser implementada como el método de GMRES –véase sección (B.2.3)– usandoel algoritmo dado en la Ec.(3.100), en cual se inicia tomando u0, una eleccióncomún es tomar a u0 = 0, si este es el caso, entonces

r0 = aS−1(f∆− aA

∆Π

(AΠΠ

)−1fΠ

), β0 =

∥∥r0∥∥ , v1 = r0/β0 (3.117)

y la parte iterativa queda como:

Para n = 1, 2, ...,Mientras βn < τβ0 wn+10 = aS−1aSvn

Para l = 1 hasta n hl,n =

⟨wn+1

l , vl⟩

wn+1l+1 = wn+1

l − hl,nvl

hn+1,n =

∥∥wn+1n+1

∥∥vn+1 = wn+1

n+1/hn+1,n

Calcular yn tal que βn =∥∥∥β0e1 − H

nyy

∥∥∥ es mínima

(3.118)

27En este caso se usa el producto interior definido por 〈u, w〉 = Su ·w.

[email protected] 71 Antonio Carrillo Ledesma, Et alii

Page 73: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

donde Hn= [hij ]1≤i≤n+1,1≤j≤n y la solución aproximada será u

n = u0+Vnyn,

el vector residual será

rn = r0 − aS−1aSVkyn = V

n+1

(β0e1 − H

nyn

). (3.119)

3.4.6 Evaluación de los Operadores Virtuales S y S−1

Para implementar cualesquiera de los ocho algoritmos desarrollados, sin impor-tar si las matrices involucradas son simétricas o no simétricas; y como se mostróen las implementaciones de los algoritmos en la sección anterior, estos requieren

por un lado, la evaluación de(AΠΠ

)−1fΠy por otro la evaluación de los ope-

radores virtuales S−1v y Sv, en los tres casos, ninguna de estas matrices esconstruida pues resultarían matrices densas con el consiguiente costo computa-cional de su manejo. Para mostrar como hacer su evaluación óptima, primeronótese que el sistema lineal virtual A a partir del cual se deriva el esquema DVS,está definido como

A =

(AΠΠ

AΠ∆

A∆Π

A∆∆

)=

AII

AIπ

AI∆

AπI

Aππ

Aπ∆

A∆I

A∆π

A∆∆

(3.120)

donde

AΠΠ

=

(A

IIA

AπI

Aππ

)AΠ∆

=

(A

I∆A

π∆

)(3.121)

A∆Π

=(A∆I

A∆π

)

entonces el operador S de los nodos duales queda definido por

S = A∆∆

−A∆Π

(AΠΠ

)−1AΠ∆

(3.122)

y este es formado por S =E∑

α=1

Sα, donde Sα esta formada por el complemento

de Schur local

Sα = Aα

∆∆−Aα

∆Π

(Aα

ΠΠ

)−1Aα

Π∆. (3.123)

En el apéndice A se detallan la forma de realizar todas las operaciones involu-cradas en los métodos DVS, aquí, bajo el supuesto de que se tienen construidaslas matrices locales Ai

II, Ai

Iπ, Ai

I∆, Ai

ππ, Ai

π∆y Ai

∆∆en cada uno de los subdo-

minios de la partición. Entonces, para resolver(AΠΠ

)−1u, donde u ∈ WΠ, se

puede reescribir como

(wI

)=

(A

IIA

AπI

Aππ

)−1(uI

)(3.124)

[email protected] 72 Antonio Carrillo Ledesma, Et alii

Page 74: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

i.e. se necesita resolver AΠΠ

w = u,la cual se expresa como

(A

IIA

AπI

Aππ

)(wI

)=

(uI

)(3.125)

entonces, wπ ∈WΠ es solución de(A

ππ−A

πI

(A

II

)−1A

)wπ ≡ S

πwπ = uπ −A

πI

(A

II

)−1uI (3.126)

mientras

wI =(A

II

)−1 (uI −A

Iπwπ

)(3.127)

donde(A

II

)−1=

N∑

i=1

(Ai

II

)−1. (3.128)

Por último, para evaluar Sv se aplica el procedimiento similar al detalladoen la sección (E.2) y para evaluar S−1v se aplica el procedimiento detallado enla sección (E.3).

De las evaluaciones indicadas en esta sección, una gran parte de ellas esposible realizar en paralelo, y como se mostrará más tarde, la granularidad28

paralela es gruesa, la cual es ideal para implementarse en equipos de cómputoparalelos como los Clusters, esto se demuestra mediante ejemplos en el capítulode Análisis de Rendimiento (véase [59], [62] y [61]).

28La granularidad de un conjunto de tareas paralelas es la cantidad de trabajo que se puedehacer de forma independiente de otros cálculos.

[email protected] 73 Antonio Carrillo Ledesma, Et alii

Page 75: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

4 Implementación Computacional Secuencial yParalela de DDM

A partir de los modelos matemáticos y los modelos numéricos , en este capítulose describe el modelo computacional contenido en un programa de cómputoorientado a objetos en el lenguaje de programación C++ en su forma secuencialy en su forma paralela en C++ u-sando la interfaz de paso de mensajes (MPI)bajo el esquema maestro-esclavo.

Esto no sólo nos ayudará a demostrar que es factible la construcción delpropio modelo computacional a partir del modelo matemático y numérico parala solución de problemas reales. Además, se mostrará los alcances y limitacionesen el consumo de los recursos computacionales, evaluando algunas de las vari-antes de los métodos numéricos con los que es posible implementar el modelocomputacional y haremos el análisis de rendimiento sin llegar a ser exhaustivoesté.

También exploraremos los alcances y limitaciones de cada uno de los métodosimplementados (MDF, FEM, DDM secuencial y paralelo) y como es posibleoptimizar los recursos computacionales con los que se cuente.

Primeramente hay que destacar que el paradigma de programación orientadaa objetos es un método de implementación de programas, organizados comocolecciones cooperativas de objetos. Cada objeto representa una instancia dealguna clase y cada clase es miembro de una jerarquía de clases unidas medianterelaciones de herencia, contención, agregación o uso.

Esto nos permite dividir en niveles la semántica de los sistemas complejostratando así con las partes, que son más manejables que el todo, permitiendosu extensión y un mantenimiento más sencillo. Así, mediante la herencia, con-tención, agregación o usó nos permite generar clases especializadas que manejaneficientemente la complejidad del problema. La programación orientada a ob-jetos organiza un programa entorno a sus datos (atributos) y a un conjunto deinterfases bien definidas para manipular estos datos (métodos dentro de clasesreusables) esto en oposición a los demás paradigmas de programación.

El paradigma de programación orientada a objetos sin embargo sacrificaalgo de eficiencia computacional por requerir mayor manejo de recursos com-putacionales al momento de la ejecución. Pero en contraste, permite mayorflexibilidad al adaptar los códigos a nuevas especificaciones. Adicionalmente,disminuye notoriamente el tiempo invertido en el mantenimiento y búsquedade errores dentro del código. Esto tiene especial interés cuando se piensa en lacantidad de meses invertidos en la programación comparado con los segundosconsumidos en la ejecución del mismo.

Para empezar con la implementación computacional, primeramente definire-mos el problema a trabajar. Este, pese a su sencillez, no pierde generalidadpermitiendo que el modelo mostrado sea usado en muchos sistemas de la inge-niería y la ciencia.

[email protected] 74 Antonio Carrillo Ledesma, Et alii

Page 76: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

4.1 El Operador de Laplace y la Ecuación de Poisson

Consideramos como modelo matemático el problema de valor en la frontera(BVP) asociado con el operador de Laplace en dos dimensiones, el cual engeneral es usualmente referido como la ecuación de Poisson, con condiciones defrontera Dirichlet, definido en Ω como:

−∇2u = fΩ en Ω (4.1)

u = g∂Ω en ∂Ω.

Se toma está ecuación para facilitar la comprensión de las ideas básicas. Esun ejemplo muy sencillo, pero gobierna los modelos de muchos sistemas de laingeniería y de la ciencia, entre ellos el flujo de agua subterránea a través de unacuífero isotrópico, homogéneo bajo condiciones de equilibrio y es muy usada enmúltiples ramas de la física. Por ejemplo, gobierna la ecuación de la conducciónde calor en un sólido bajo condiciones de equilibrio.

En particular consideramos el problema con Ω definido en:

Ω = [−1, 1]× [0, 1] (4.2)

dondefΩ = 2n2π2 sin(nπx) ∗ sin(nπy) y g∂Ω = 0 (4.3)

cuya solución esu(x, y) = sin(nπx) ∗ sin(nπy). (4.4)

Para las pruebas de rendimiento en las cuales se evalúa el desempeño de losprogramas realizados se usa n = 10, pero es posible hacerlo con n ∈ N grande.Por ejemplo para n = 4, la solución es u(x, y) = sin(4πx)∗sin(4πy), cuya gráficase muestra a continuación:

Figura 6: Solución a la ecuación de Poisson para n=4.

[email protected] 75 Antonio Carrillo Ledesma, Et alii

Page 77: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Hay que hacer notar que al implementar la solución numérica por el métododel Diferencias Finitas, Elemento Finito y el método de Subestructuración se-cuencial en un procesador, un factor limitante para su operación es la cantidadde memoria disponible en la computadora, ya que el sistema algebraico de ecua-ciones asociado a esté problema crece muy rápido (del orden de n2), donde n esel número de nodos en la partición. Es por ello que la elección de un buen mane-jador de matrices será determinante en la eficiencia alcanzada por las distintasimplementaciones de los programas.

Actualmente existen múltiples bibliotecas que permiten manipular opera-ciones de matrices tanto en forma secuencial como en paralelo (hilos y Pipeline)para implementarlas tanto en procesadores con memoria compartida como dis-tribuida. Pero no están presentes en todas las arquitecturas y sistemas opera-tivos. Por ello en este trabajo se implementaron todas las operaciones necesariasusando clases que fueron desarrolladas sin usar ninguna biblioteca externa a lasproporcionadas por el compilador de C++ de GNU, permitiendo la operaciónde los programas desarrollados en múltiples sistemas operativos del tipo Linux,Unix y Windows.

En cuanto a las pruebas de rendimiento que mostraremos en las siguientessecciones se usaron para la parte secuencial el equipo:

• Computadora Pentium IV HT a 2.8 GHtz con 1 GB de RAMcorriendo bajo el sistema operativo Linux Debian Stable con el com-pilador g++ de GNU.

Para la parte paralela se usaron los equipos siguientes:

• Cluster homogéneo de 10 nodos duales Xeon a 2.8 GHtz con 1GB de RAM por nodo, unidos mediante una red Ethernet de 1 Gb,corriendo bajo el sistema operativo Linux Debian Stable con el com-pilador mpiCC de MPI de GNU.

• Cluster heterogéneo con el nodo maestro Pentium IV HT a 3.4GHtz con 1 GB de RAM y 7 nodos esclavos Pentium IV HT a 2.8GHtz con 0.5 GB de RAM por nodo, unidos mediante una red Eth-ernet de 100 Mb, corriendo bajo el sistema operativo Linux DebianStable con el compilador mpiCC de MPI de GNU.

A estos equipos nos referiremos en lo sucesivo como equipo secuencial, clusterhomogéneo y cluster heterogéneo respectivamente.

El tiempo dado en los resultados de las distintas pruebas de rendimiento delos programas y mostrado en todas las tablas y gráficas fue tomado como unpromedio entre por lo menos 5 corridas, redondeado el resultado a la unidadsiguiente. En todos los cálculos de los métodos numéricos usados para resolverel sistema lineal algebraico asociado se usó una tolerancia mínima de 1× 10−10.

Ahora, veremos la implementación del método de Diferencias Finitas secuen-cial para después continuar con el método de descomposición de dominio tantosecuencial como paralelo y poder analizar en cada caso los requerimientos decómputo, necesarios para correr eficientemente un problema en particular.

[email protected] 76 Antonio Carrillo Ledesma, Et alii

Page 78: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

4.2 Método de Diferencias Finitas Secuencial

A partir de la formulación del método de Diferencias Finitas, la implementacióncomputacional que se desarrolló tiene la jerarquía de clases siguiente:

Figura 7: Jerarquía de clases para el método de elemento finito

Donde las clases participantes en F_M2D Rectángulos son:

La clase Interpolador define los interpoladores usados por el método.

La clase Problema define el problema a tratar, es decir, la ecuacióndiferencial parcial, valores de frontera y dominio.

La clase Base F_M ayuda a definir los nodos al usar la clase Geo-metría y mantiene las matrices generadas por el método y a partirde la clase Resuelve Ax=B se dispone de diversas formas de resolverel sistema lineal asociado al método.

La clase F_M2D controla lo necesario para poder hacer uso de lageometría en 2D y conocer los nodos interiores y de frontera, conellos poder montar la matriz de rigidez y ensamblar la solución.

La clase F_M2D Rectángulos permite calcular la matriz de rigidezpara generar el sistema algebraico de ecuaciones asociado al método.

Notemos que esta misma jerarquía permite trabajar problemas en una ydos dimensiones, en el caso de dos dimensiones podemos discretizar usandorectángulos o triángulos, así como usar varias opciones para resolver el sistemalineal algebraico asociado a la solución de EDP.

[email protected] 77 Antonio Carrillo Ledesma, Et alii

Page 79: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Como ya se menciono, el método de Diferencias Finitas o Elemento Finito esun algoritmo secuencial, por ello se implementa para que use un solo procesadory un factor limitante para su operación es la cantidad de memoria disponibleen la computadora, por ejemplo:

Resolver la Ec. (4.1) con una partición rectangular de 513×513 nodos, genera262144 elementos rectangulares con 263169 nodos en total, donde 261121 sondesconocidos; así el sistema algebraico de ecuaciones asociado a este problemaes de dimensión 261121× 261121.

Usando el equipo secuencial, primeramente evaluaremos el desempeño delmétodo de Diferencias Finitas con los distintos métodos para resolver el sistemaalgebraico de ecuaciones, encontrando los siguientes resultados:

Método Iterativo Iteraciones Tiempo TotalJacobi 865037 115897 seg.

Gauss-Seidel 446932 63311 seg.Gradiente Conjugado 761 6388 seg.

Como se observa el uso del método de gradiente conjugado es por mucho lamejor elección. En principio, podríamos quedarnos solamente con el métodode gradiente conjugado sin hacer uso de precondicionadores por los buenosrendimientos encontrados hasta aquí, pero si se desea resolver un problemacon un gran número de nodos, es conocido el aumento de eficiencia al hacer usode precondicionadores.

Ahora, si tomamos ingenuamente el método de Diferencias FInitas conjunta-mente con el método de gradiente conjugado con precondicionadores a posteriori(los más sencillos de construir) para resolver el sistema algebraico de ecuaciones,encontraremos los siguientes resultados:

Precondicionador Iteraciones Tiempo TotalJacobi 760 6388 seg.SSOR 758 6375 seg.

Factorización Incompleta 745 6373 seg.

Como es notorio el uso del método de gradiente conjugado precondicionadocon precondicionadores a posteriori no ofrece una ventaja significativa que com-pense el esfuerzo computacional invertido al crear y usar un precondicionadoren los cálculos por el mal condicionamiento del sistema algebraico. Existen tam-bién precondicionadores a priori para el método de Diferencias Finitas, pero noes costeable en rendimiento su implementación.

Finalmente, para el método de Diferencias Finitas las posibles mejoras deeficiencia para disminuir el tiempo de ejecución pueden ser:

• Al momento de compilar los códigos usar directivas de optimización(ofrece mejoras de rendimiento en ejecución de 30% aproximada-mente en las pruebas realizadas).

•Usar la biblioteca Lapack++ de licencia GNU que optimiza las ope-raciones en el manejo de los elementos de la matriz usando punteros

[email protected] 78 Antonio Carrillo Ledesma, Et alii

Page 80: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

y hacen uso de matrices bandadas (obteniéndose una mejora delrendimiento de 15% aproximadamente en las pruebas realizadas).

• Combinando las opciones anteriores se obtiene una mejora sustan-cial de rendimiento en la ejecución (de 45% aproximadamente en laspruebas realizadas).

Adicionalmente si se cuenta con un equipo con más de un procesador conmemoria compartida es posible usar bibliotecas para la manipulación de ma-trices y vectores que paralelizan o usan Pipeline como una forma de mejorarel rendimiento del programa. Este tipo de mejoras cuando es posible usarlasdisminuyen sustancialmente el tiempo de ejecución, ya que en gran medida elconsumo total de CPU está en la manipulación de matrices, pero esto no haceparalelo al método de Diferencias Finitas.

4.3 Método de Subestructuración Secuencial

A partir de la formulación del método de subestructuración visto en la sección(3.3) se generan las matrices locales AII

i, AIΣ

i, AΣI

iy AΣΣ

iy con ellas se con-

struyen Si= AΣΣ

i− AΣI

i

(AII

i

)−1AIΣ

iy bi = AΣI

i

(AII

i

)−1bI i

que sonproblemas locales a cada subdominio Ωi, con i = 1, 2, ..., E. Generando de man-era virtual el sistema lineal SuΣ = b a partir de

[E∑

i=1

Si

]uΣ =

[E∑

i=1

bi

](4.5)

donde S =[∑E

i=1 Si

]y b =

[∑Ei=1 bi

]podría ser construida sumando las S

iy

bi respectivamente según el orden de los nodos globales versus los nodos localesa cada subdominio.

El sistema lineal virtual resultante

SuΣ = b (4.6)

es resuelto usando el método de gradiente conjugado visto en la sección (B.2.1),para ello no es necesario construir la matriz S con las contribuciones de cada Si

correspondientes al subdominio i. Lo que hacemos es pasar a cada subdominioel vector uΣi correspondiente a la i-ésima iteración del método de gradienteconjugado para que en cada subdominio se evalué uΣi = S

iuΣ

i localmente y

con el resultado se forma el vector uΣ =∑E

i=1 uΣi y se continué con los demás

pasos del método.La implementación computacional que se desarrolló tiene una jerarquía de

clases en la cual se agregan las clases F_M2D Rectángulos y Geometría, ademásde heredar a la clase Problema. De esta forma se rehusó todo el código desa-rrollado para F_M2D Rectángulos, la jerarquía queda como:

[email protected] 79 Antonio Carrillo Ledesma, Et alii

Page 81: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

La clase DDM2D realiza la partición gruesa del dominio mediante laclase Geometría y controla la partición de cada subdominio medianteun objeto de la clase de F_M2D Rectángulos generando la particiónfina del dominio. La resolución de los nodos de la frontera interiorse hace mediante el método de gradiente conjugado, necesaria pararesolver los nodos internos de cada subdominio.

Figura 8: Jerarquía de clases para el método de subestructuración secuencial

Así, el dominio Ω es descompuesto en una descomposición gruesa de n×msubdominios y cada subdominio Ωi se parte en p× q subdominios, generando laparticipación fina del dominio como se muestra en la figura:

Figura 9: Descomposición del dominio Ω en E = n × m subdominios y cadasubdominio Ωi en p× q subdominios

El método de descomposición de dominio se implementó realizando las sigui-entes tareas:

[email protected] 80 Antonio Carrillo Ledesma, Et alii

Page 82: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A) La clase DDM2D genera la descomposición gruesa del dominiomediante la agregación de un objeto de la clase Geometría (supon-gamos particionado en n × m subdominios, generando s = n ∗ msubdominios Ωi, i = 1, 2, ..., E).

B) Con esa geometría se construyen los objetos de F_M2D Rec-tángulos (uno por cada subdominio Ωi), donde cada subdominio esparticionado (supongamos en p×q subdominios) y regresando las co-ordenadas de los nodos de frontera del subdominio correspondientea la clase DDM2D.

C) Con estas coordenadas, la clase DDM2D conoce a los nodos dela frontera interior (son estos los que resuelve el método de descom-posición de dominio). Las coordenadas de los nodos de la fronterainterior se dan a conocer a los objetos F_M2D Rectángulos, trans-mitiendo sólo aquellos que están en su subdominio.

D) Después de conocer los nodos de la frontera interior, cada ob-jeto F_M2D Rectángulos calcula las matrices AΣΣ

i, AΣI

i, AIΣ

iy AII

i

necesarias para construir el complemento de Schur local Si= AΣΣ

i−

AΣI

i

(AII

i

)−1AIΣ

isin realizar comunicación alguna. Al terminar de

calcular las matrices se avisa a la clase DDM2D de la finalización delos cálculos.

E) Mediante la comunicación de vectores del tamaño del número denodos de la frontera interior entre la clase DDM2D y los objetosF_M2D Rectángulos, se prepara todo lo necesario para empezar elmétodo de gradiente conjugado y resolver el sistema lineal virtual[∑E

i=1 Si

]uΣ =

[∑Ei=1 bi

].

F) Para usar el método de gradiente conjugado, se transmite unvector del tamaño del número de nodos de la frontera interior paraque en cada objeto se realicen las operaciones pertinentes y resolverasí el sistema algebraico asociado, esta comunicación se realiza de iday vuelta entre la clase DDM2D y los objetos F_M2D Rectángulostantas veces como iteraciones haga el método. Resolviendo con estolos nodos de la frontera interior uΣi

.

G) Al término de las iteraciones se pasa la solución uΣide los nodos

de la frontera interior que pertenecen a cada subdominio dentro decada objeto F_M2D Rectángulos para que se resuelvan los nodos

interiores uI i=

(AII

i

)−1 (bI i−AIΣ

iuΣi

), sin realizar comunicación

alguna en el proceso, al concluir se avisa a la clase DDM2D de ello.

I) La clase DDM2D mediante un último mensaje avisa que se con-cluya el programa, terminado así el esquema maestro-esclavo secuen-cial.

[email protected] 81 Antonio Carrillo Ledesma, Et alii

Page 83: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Por ejemplo, para resolver la Ec. (6.1), usando 513 × 513 nodos (igualal ejemplo de F_M2D Rectángulos secuencial), podemos tomar alguna de lassigui-entes descomposiciones:

D e sc om p o s i c i ó nN o d o s

In t e r i o r e sS u b d om in io s

E lem en to s

S u b d om in io

To ta l N o d o s

S u b d om in io

N o d o s

D e s c o n o c id o s

S u b d om in io

2x2 y 256x256 260100 4 65536 66049 650254x4 y 128x128 258064 16 16384 16641 161298x8 y 64x64 254016 64 4096 4225 396916x16 y 32x32 246016 256 1024 1089 96132x32 y 16x16 230400 1024 256 289 225

Cada una de las descomposiciones genera un problema distinto. Usando elequipo secuencial y evaluando el desempeño del método de subestructuraciónsecuencial se obtuvieron los siguientes resultados:

Partición Nodos Frontera Interior Iteraciones Tiempo Total2x2 y 256x256 1021 139 5708 seg.4x4 y 128x128 3057 159 2934 seg.8x8 y 64x64 7105 204 1729 seg.16x16 y 32x32 15105 264 1077 seg.32x32 y 16x16 30721 325 1128 seg

Nótese que aún en un solo procesador es posible encontrar una descom-posición que desminuya los tiempos de ejecución (la descomposición de 2x2 y256x256 concluye en 5708 seg. versus los 6388 seg. en el caso de F_M2D Rectán-gulos), ello es debido a que al descomponer el dominio en múltiples subdominios,la complejidad del problema es también disminuida y esto se ve reflejado en ladisminución del tiempo de ejecución.

En la última descomposición, en lugar de disminuir el tiempo de ejecucióneste aumenta, esto se debe a que se construyen muchos objetos F_M2D Rectán-gulos (1024 en este caso), con los cuales hay que hacer comunicación resultandomuy costoso computacionalmente.

Finalmente las posibles mejoras de eficiencia para el método de subestruc-turación secuencial para disminuir el tiempo de ejecución son las mismas queen el caso del método de Diferencias Finitas pero además se tienen que:

• Encontrar la descomposición pertinente entre las posibles descom-posiciones que consuma el menor tiempo de cálculo.

Adicionalmente si se cuenta con un equipo con más de un procesador conmemoria compartida es posible usar bibliotecas para la manipulación de ma-trices y vectores que paralelizan o usan Pipeline como una forma de mejorarel rendimiento del programa. Este tipo de mejoras cuando es posible usarlasdisminuyen sustancialmente el tiempo de ejecución, ya que en gran medida elconsumo total de CPU está en la manipulación de matrices, pero esto no haceparalelo al método de subestructuración secuencial.

[email protected] 82 Antonio Carrillo Ledesma, Et alii

Page 84: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

4.4 Método de Subestructuración en Paralelo

La computación en paralelo es una técnica que nos permite distribuir una grancarga computacional entre muchos procesadores. Y es bien sabido que una delas mayores dificultades del procesamiento en paralelo es la coordinación de lasactividades de los diferentes procesadores y el intercambio de información entrelos mismos.

Para hacer una adecuada coordinación de actividades entre los diferentesprocesadores, el programa que soporta el método de subestructuración paralelo,usa la misma jerarquía de clases que el método de subestructuración secuencial.Este se desarrolló para usar el esquema maestro-esclavo, de forma tal que el nodomaestro mediante la agregación de un objeto de la clase de Geometría generela descomposición gruesa del dominio y los nodos esclavos creen un conjunto deobjetos F_M2D Rectángulos para que en estos objetos se genere la participaciónfina y mediante el paso de mensajes (vía MPI) puedan comunicarse los nodosesclavos con el nodo maestro, realizando las siguientes tareas:

A) El nodo maestro genera la descomposición gruesa del dominio(supongamos particionado en n×m subdominios) mediante la agre-gación de un objeto de la clase Geometría, esta geometría es pasadaa los nodos esclavos.

B) Con esa geometría se construyen los objetos F_M2D Rectángulos(uno por cada subdominio), donde cada subdominio es particionado(supongamos en p× q subdominios). Cada objeto de F_M2D Rec-tángulos genera la geometría solicitada, regresando las coordenadasde los nodos de frontera del subdominio correspondiente al nodomaestro.

C) Con estas coordenadas, el nodo maestro conoce a los nodos dela frontera interior (son estos los que resuelve el método de descom-posición de dominio). Las coordenadas de los nodos de la fronterainterior se dan a conocer a los objetos F_M2D Rectángulos en losnodos esclavos, transmitiendo sólo aquellos que están en su subdo-minio.

D) Después de conocer los nodos de la frontera interior, cada ob-jeto F_M2D Rectángulos calcula las matrices AΣΣ

i, AΣI

i, AIΣ

iy AII

i

necesarias para construir el complemento de Schur local Si= AΣΣ

i−

AΣI

i

(AII

i

)−1AIΣ

isin realizar comunicación alguna. Al terminar de

calcular las matrices se avisa al nodo maestro de la finalización delos cálculos.

E) Mediante la comunicación de vectores del tamaño del númerode nodos de la frontera interior entre el nodo maestro y los objetosF_M2D Rectángulos, se prepara todo lo necesario para empezar elmétodo de gradiente conjugado y resolver el sistema lineal virtual[∑E

i=1 Si

]uΣ =

[∑Ei=1 bi

].

[email protected] 83 Antonio Carrillo Ledesma, Et alii

Page 85: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

F) Para usar el método de gradiente conjugado, se transmite unvector del tamaño del número de nodos de la frontera interior paraque en cada objeto se realicen las operaciones pertinentes y resolverasí el sistema algebraico asociado, esta comunicación se realiza deida y vuelta entre el nodo maestro y los objetos F_M2D Rectángulostantas veces como iteraciones haga el método. Resolviendo con estolos nodos de la frontera interior uΣi

.

G) Al término de las iteraciones se pasa la solución uΣide los nodos

de la frontera interior que pertenecen a cada subdominio dentro decada objeto F_M2D Rectángulos para que se resuelvan los nodos

interiores uI i=

(AII

i

)−1 (bI i−AIΣ

iuΣi

), sin realizar comunicación

alguna en el proceso, al concluir se avisa al nodo maestro de ello.

I) El nodo maestro mediante un último mensaje avisa que se con-cluya el programa, terminado así el esquema maestro-esclavo.

Del algoritmo descrito anteriormente hay que destacar la sincronía entreel nodo maestro y los objetos F_M2D Rectángulos contenidos en los nodosesclavos, esto es patente en las actividades realizadas en los incisos A, B y C,estas consumen una parte no significativa del tiempo de cálculo.

Una parte importante del tiempo de cálculo es consumida en la generaciónde las matrices locales descritas en el inciso D que se realizan de forma indepen-diente en cada nodo esclavo, esta es muy sensible a la discretización particulardel dominio usado en el problema.

Los incisos E y F del algoritmo consumen la mayor parte del tiempo totaldel ejecución al resolver el sistema lineal que dará la solución a los nodos dela frontera interior. La resolución de los nodos interiores planteada en el incisoG consume muy poco tiempo de ejecución, ya que sólo se realiza una serie decálculos locales previa transmisión del vector que contiene la solución a los nodosde la frontera interior.

Este algoritmo es altamente paralelizable ya que los nodos esclavos están lamayor parte del tiempo ocupados y la fracción serial del algoritmo esta princi-palmente en las actividades que realiza el nodo maestro, estas nunca podrán sereliminadas del todo pero consumirán menos tiempo del algoritmo conforme sehaga más fina la malla en la descomposición del dominio.

Para resolver la Ec. (4.1), usando 513 × 513 nodos (igual al ejemplo deF_M2D Rectángulos secuencial), en la cual se toma una partición rectangulargruesa de 4 × 4 subdominios y cada subdominio se descompone en 128 × 128subdominios.

Usando para los cálculos en un procesador el equipo secuencial y para la parteparalela el cluster heterogéneo resolviendo por el método de gradiente conjugadosin precondicionador, la solución se encontró en 159 iteraciones obteniendo lossiguientes valores:

[email protected] 84 Antonio Carrillo Ledesma, Et alii

Page 86: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Procesadores Tiempo Factor de Aceleración Eficiencia Fracción Serial1 2943 seg.2 2505 seg. 1.17485 0.58742 0.702343 1295 seg. 2.27258 0.75752 0.160044 1007 seg. 2.92254 0.73063 0.122895 671 seg. 4.38599 0.87719 0.034996 671 seg. 4.38599 0.73099 0.073597 497seg. 5.92152 0.84593 0.030358 497 seg. 5.92152 0.74019 0.050149 359 seg. 8.19777 0.91086 0.0122310 359 seg. 8.19777 0.81977 0.0244211 359 seg. 8.19777 0.74525 0.0344112 359 seg. 8.19777 0.68314 0.0421613 359 seg. 8.19777 0.63059 0.0488114 359 seg. 8.19777 0.58555 0.0544415 359 seg. 8.19777 0.54651 0.0592616 359 seg. 8.19777 0.51236 0.0634417 188 seg 15.65425 0.92083 0.00537

Estos resultados pueden ser apreciados mejor de manera gráfica como semuestra a continuación:

Figura 10: Métricas de desempeño de 2 a 17 procesadores

[email protected] 85 Antonio Carrillo Ledesma, Et alii

Page 87: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Primeramente notemos que existe mal balanceo de cargas. La descomposi-ción adecuada del dominio para tener un buen balanceo de cargas se logracuando se descompone en n×m nodos en la partición gruesa, generándose n∗msubdominios y si se trabaja con P procesadores (1 para el nodo maestro y P −1para los nodos esclavos), entonces el balance de cargas adecuado será cuando(P − 1) | (n ∗m).

En nuestro caso se logra un buen balanceo de cargas cuando se tienen2, 3, 5, 9, 17 procesadores, cuyas métricas de desempeño se muestran a conti-nuación:

Figura 11: Métricas de desempeño mostrando sólo cuando las cargas están bienbalanceadas (2, 3, 5, 9 y 17 procesadores).

En cuanto a las métricas de desempeño, obtenemos que el factor de ace-leración en el caso ideal debería de aumentar de forma lineal al aumento delnúmero de procesadores, que en nuestro caso no es lineal pero cumple bien estehecho si están balanceadas las cargas de trabajo.

El valor de la eficiencia deberá ser cercano a uno cuando el hardware es usa-do de manera eficiente, como es en nuestro caso cuando se tiene un procesadorpor cada subdominio.

Y en la fracción serial su valor debiera de tender a cero en el caso ideal,siendo este nuestro caso si están balanceadas las cargas de trabajo, de aquí sepuede concluir que la granularidad del problema es gruesa, es decir, no existeuna sobrecarga en los procesos de comunicación siendo el cluster una buena

[email protected] 86 Antonio Carrillo Ledesma, Et alii

Page 88: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

herramienta de trabajo para este tipo de problemas.Finalmente las posibles mejoras de eficiencia para el método de subestruc-

turación en paralelo para disminuir el tiempo de ejecución pueden ser:

• Balanceo de cargas de trabajo homogéneo.• Al compilar los códigos usar directivas de optimización.• Usar bibliotecas que optimizan las operaciones en el manejo delos elementos de la matriz usando punteros en las matrices densas obandadas.

• El cálculo de las matrices que participan en el complemento deSchur pueden ser obtenidas en paralelo.

4.5 Método de Subestructuración en Paralelo Precondi-cionado

En este método a diferencia del método de subestructuración paralelo, se agregaun precondicionador al método de gradiente conjugado precondicionado visto enla sección (B.2.1) a la hora de resolver el sistema algebraico asociado al métodode descomposición de dominio.

En este caso por el mal condicionamiento de la matriz, los precondicionadoresa posteriori no ofrecen una ventaja real a la hora de solucionar el sistema li-nealalgebraico. Es por ello que usaremos los precondicionadores a priori. Estos sonmás particulares y su construcción depende del proceso que origina el sistemalineal algebraico.

Existe una amplia gama de este tipo de precondicionadores, pero son es-pecíficos al método de descomposición de dominio usado. Para el método desubestructuración usaremos el derivado de la matriz de rigidez, este no es elprecondicionador óptimo para este problema, pero para fines demostrativos nosvasta.

La implementación de los métodos a priori, requieren de más trabajo tantoen la face de construcción como en la parte de su aplicación, la gran ventaja deeste tipo de precondicionadores es que pueden ser óptimos, es decir, para eseproblema en particular el precondicionador encontrado será el mejor precondi-cionador existente, llegando a disminuir el número de iteraciones hasta en unorden de magnitud.

Por ejemplo, al resolver la Ec. (4.1) usando 513 × 513 nodos en la cual setoma una partición rectangular gruesa de 4× 4 subdominios y cada subdominiose descompone en 128× 128 subdominios.

Usando para el cálculo en un procesador el equipo secuencial y para la parteparalela el cluster heterogéneo resolviendo por el método de gradiente conjugadocon precondicionador la solución se encontró en 79 iteraciones (una mejora enpromedio cercana al 50 % con respecto a no usar precondicionador 159 itera-ciones) obteniendo los siguientes valores:

[email protected] 87 Antonio Carrillo Ledesma, Et alii

Page 89: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Procesadores Tiempo Factor de Aceleración Eficiencia Fracción Serial1 2740 seg.2 2340 seg. 1.17094 0.58547 0.708023 1204 seg. 2.27574 0.75858 0.159124 974 seg. 2.81314 0.70328 0.140635 626 seg. 4.37699 0.87539 0.035586 626 seg. 4.37699 0.72949 0.074167 475 seg. 5.76842 0.82406 0.035588 475 seg. 5.76842 0.72105 0.055269 334 seg. 8.20359 0.91151 0.0121310 334 seg. 8.20359 0.82035 0.0243311 334 seg. 8.20359 0.74578 0.0340812 334 seg. 8.20359 0.68363 0.0420713 334 seg. 8.20359 0.63104 0.0487214 334 seg. 8.20359 0.58597 0.0543515 334 seg. 8.20359 0.54690 0.0591716 334 seg. 8.20359 0.51272 0.0633517 173 seg. 15.83815 0.93165 0.00458

Estos resultados pueden ser apreciados mejor de manera gráfica como semuestra a continuación:

Figura 12: Métricas de desempeño de 2 a 17 procesadores

[email protected] 88 Antonio Carrillo Ledesma, Et alii

Page 90: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

De las métricas de desempeño, se observa que el factor de aceleración, enel caso ideal debería de aumentar de forma lineal al aumentar el número deprocesadores, que en nuestro caso no es lineal pero cumple bien este hecho siestá balanceada las cargas de trabajo.

En la eficiencia su valor deberá ser cercano a uno cuando el hardware es usadode manera eficiente, como es en nuestro caso cuando se tiene un procesador porcada subdominio. Y en la fracción serial su valor debiera de tender a cero en elcaso ideal, siendo este nuestro caso si están balanceadas las cargas de trabajo.

En este ejemplo, como en el caso sin precondicionador el mal balanceo decargas está presente y es cualitativamente igual, para este ejemplo se lograun buen balanceo de cargas cuando se tienen 2, 3, 5, 9, 17 procesadores, cuyasmétricas de desempeño se muestran a continuación:

Figura 13: Métricas de desempeño mostrando sólo cuando las cargas están bienbalanceadas (2, 3, 5, 9 y 17 procesadores).

Las mismas mejoras de eficiencia que para el método de subestructuraciónen paralelo son aplicables a este método, adicionalmente:

• Usar el mejor precondicionador a priori disponible para el prob-lema en particular, ya que esto disminuye sustancialmente el númerode iteraciones (hasta en un orden de magnitud cuando el precondi-cionador es óptimo).

[email protected] 89 Antonio Carrillo Ledesma, Et alii

Page 91: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

5 Análisis de Rendimiento y Observaciones parael método DDM

Uno de los grandes retos del área de cómputo científico es poder analizar a prioriuna serie consideraciones dictadas por factores externos al problema de interésque repercuten directamente en la forma de solucionar el problema, estas con-sideraciones influirán de manera decisiva en la implementación computacionalde la solución numérica. Algunas de estas consideraciones son:

• Número de Procesadores Disponibles• Tamaño y Tipo de Partición del Dominio• Tiempo de Ejecución Predeterminado

Siendo común que ellas interactúan entre si, de forma tal que normalmenteel encargado de la implementación computacional de la solución numérica tieneademás de las complicaciones técnicas propias de la solución, el conciliarlas condichas consideraciones.

Esto deja al implementador de la solución numérica con pocos grados delibertad para hacer de la aplicación computacional una herramienta eficiente yflexible que cumpla con los lineamientos establecidos a priori y permita tambiénque esta sea adaptable a futuros cambios de especificaciones -algo común enciencia e ingeniería-.

En este capítulo haremos el análisis de los factores que merman el rendimientode la aplicación y veremos algunas formas de evitarlo, haremos una detalladadescripción de las comunicaciones entre el nodo principal y los nodos esclavos,la afectación en el rendimiento al aumentar el número de subdominios en la des-composición y detallaremos algunas consideraciones generales para aumentar elrendimiento computacional. También daremos las conclusiones generales a estetrabajo y veremos las diversas ramificaciones que se pueden hacer en trabajosfuturos.

5.1 Análisis de Comunicaciones

Para hacer un análisis de las comunicaciones entre el nodo principal y los nodosesclavos en el método de subestructuración es necesario conocer qué se trasmitey su tamaño, es por ello detallaremos en la medida de lo posible las comunica-ciones existentes (hay que hacer mención que entre los nodos esclavos no haycomunicación alguna).

Tomando la descripción del algoritmo detallado en el método de subestruc-turación en paralelo visto en la sección (4.4), suponiendo una partición deldominio Ω en n×m y p× q subdominios, las comunicaciones correspondientesa cada inciso son:

A) El nodo maestro transmite 4 coordenadas (en dos dimensiones)correspondientes a la delimitación del subdominio.

[email protected] 90 Antonio Carrillo Ledesma, Et alii

Page 92: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

B) 2 ∗ p ∗ q coordenadas transmite cada objeto F_M2D Rectángulosal nodo maestro.

C) A lo más n ∗m ∗ 2 ∗ p ∗ q coordenadas son las de los nodos dela frontera interior, y sólo aquellas correspondientes a cada subdo-minio son trasmitidas por el nodo maestro a los objetos F_M2DRectángulos siendo estas a lo más 2 ∗ p ∗ q coordenadas.D) Sólo se envía un aviso de la conclusión del cálculo de las matrices.

E) A lo más 2 ∗ p ∗ q coordenadas son transmitidas a los objetosF_M2D Rectángulos desde el nodo maestro y los nodos esclavostransmiten al nodo maestro esa misma cantidad información.

F) A lo más 2 ∗ p ∗ q coordenadas son transmitidas a los obje-tos F_M2D Rectángulos en los nodos esclavos y estos retornan unnúmero igual al nodo maestro por iteración del método de gradienteconjugado.

G) A lo más 2 ∗ p ∗ q valores de la solución de la frontera interiorson transmitidas a los objetos F_M2D Rectángulos desde el nodomaestro y cada objeto transmite un único aviso de terminación.

I) El nodo maestro manda un aviso a cada objeto F_M2D Rectán-gulos para concluir con el esquema.

La transmisión se realiza mediante paso de arreglos de enteros y númerosde punto flotante que varían de longitud pero siempre son cantidades pequeñasde estos y se transmiten en forma de bloque, por ello las comunicaciones soneficientes.

5.2 Afectación del Rendimiento al Aumentar el Númerode Subdominios en la Descomposición

Una parte fundamental a considerar es la afectación del rendimiento al aumen-tar el número de subdominios en descomposición, ya que el complemento de

Schur local Si= AΣΣ

i− AΣI

i

(AII

i

)−1AIΣ

iinvolucra el generar las matrices

AII

i, AΣΣ

i, AΣI

i, AIΣ

iy calcular de alguna forma

(AII

i

)−1.

Si el número de nodos interiores en el subdominio es grande entonces obtenerla matriz anterior será muy costoso computacionalmente, como se ha mostradoen el transcurso de las últimas secciones del capítulo anterior.

Al aumentar el número de subdominios en una descomposición particular,se garantiza que las matrices a generar y calcular sean cada vez más pequeñasy fáciles de manejar.

Pero hay un límite al aumento del número de subdominio en cuanto a laeficiencia de ejecución, este cuello de botella es generado por el esquema maestro-esclavo y es reflejado por un aumento del tiempo de ejecución al aumentar elnúmero de subdominios en una configuración de hardware particular.

[email protected] 91 Antonio Carrillo Ledesma, Et alii

Page 93: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Esto se debe a que en el esquema maestro-esclavo, el nodo maestro deberáde atender todas las peticiones hechas por cada uno de los nodos esclavos, estotoma especial relevancia cuando todos o casi todos los nodos esclavos compitenpor ser atendidos por el nodo maestro.

Por ello se recomienda implementar este esquema en un cluster heterogéneoen donde el nodo maestro sea más poderoso computacionalmente que los nodosesclavos. Si a éste esquema se le agrega una red de alta velocidad y de bajalatencia, se le permitirá operar al cluster en las mejores condiciones posibles,pero este esquema se verá degradado al aumentar el número de nodos esclavosinexorablemente. Por ello hay que ser cuidadosos en cuanto al número de nodosesclavos que se usan en la implementación en tiempo de ejecución versus elrendimiento general del sistema al aumentar estos.

5.3 Descomposición Óptima para un Equipo Paralelo Dado.

Otra cosa por considerar es que normalmente se tiene a disposición un númerofijo de procesadores, con los cuales hay que trabajar, así que es necesario en-contrar la descomposición adecuada para esta cantidad de procesadores. No esposible hacer un análisis exhaustivo, pero mediante pruebas podemos determi-nar cual es la mejor descomposición en base al tiempo de ejecución.

Para el análisis, consideremos pruebas con 3, 4, 5 y 6 procesadores y veremoscual es la descomposición más adecuada para esta cantidad de procesadorestomando como referencia el resolver la Ec. (4.1), usando 513× 513 nodos.

Usando para estos cálculos el cluster homogéneo, al resolver por el método degradiente conjugado precondicionado para cada descomposición se obtuvieronlos siguientes resultados:

P a r t ic ió nT iem p o en 3

P ro c e s a d o r e s

T iem p o en 4

P ro c e s a d o r e s

T iem p o en 5

P ro c e sa d o re s

T iem p o en 6

P ro c e s a d o re s

2× 2 y 256× 256 2576 seg. 2084 seg. 1338 seg. −4× 4 y 128× 128 1324 seg. 1071 seg. 688 seg. 688 seg.8× 8 y 64× 64 779 seg. 630 seg. 405 seg. 405 seg.16× 16 y 32× 32 485 seg. 391 seg. 251 seg. 251 seg.

De estas pruebas se observa que el mal balanceo de cargas es reflejado en lostiempos de ejecución, pese a contar con más procesadores no hay una disminu-ción del tiempo de ejecución.

Ahora para las mismas descomposiciones, usando el cluster heterogéneo paracada descomposición se obtuvieron los siguientes resultados:

P a r t ic ió nT iem p o en 3

P ro c e s a d o r e s

T iem p o en 4

P ro c e s a d o r e s

T iem p o en 5

P ro c e sa d o re s

T iem p o en 6

P ro c e s a d o re s

2× 2 y 256× 256 2342 seg. 1895 seg. 1217 seg. −4× 4 y 128× 128 1204 seg. 974 seg. 626 seg. 626 seg.8× 8 y 64× 64 709 seg. 573 seg. 369 seg. 369 seg.16× 16 y 32× 32 441 seg. 356 seg. 229 seg. 229 seg.

[email protected] 92 Antonio Carrillo Ledesma, Et alii

Page 94: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Primeramente hay que destacar que los nodos esclavos de ambos clusters soncomparables en poder de cómputo, pero aquí lo que hace la diferencia es queel nodo maestro del segundo ejemplo tiene mayor rendimiento. Es por ello queal disminuir la fracción serial del problema y atender mejor las comunicacionesque se generan en el esquema maestro-esclavo con todos los objetos F_M2DRectángulos creados en cada uno de los nodos esclavos mejora sustancialmenteel tiempo de ejecución.

En ambas pruebas el mal balanceo de cargas es un factor determinante delrendimiento, sin embargo el usó de un cluster en el que el nodo maestro sea máspoderoso computacionalmente, hará que se tenga una mejora sustancial en elrendimiento.

Para evitar el mal balanceo de cargas se debe de asignar a cada nodo esclavouna cantidad de subdominios igual. La asignación mínima del número de nodospor subdominio queda sujeta a la velocidad de los procesadores involucradospara disminuir en lo posible los tiempos muertos, obteniendo así el máximorendimiento.

La asignación máxima del número de nodos por subdominio a cada nodo es-clavo, estará en función de la memoria que consuman las matrices que contienencada uno de los objetos de F_M2D Rectángulos. La administración de ellos ylas comunicaciones no son un factor limitante y por ello se pueden despreciar.

Descomposición Fina del Dominio Supongamos ahora que deseamos re-solver el problema de una descomposición fina del dominio Ω en 65537× 65537nodos, este tipo de problemas surgen cotidianamente en la resolución de sis-temas reales y las opciones para implantarlo en un equipo paralelo son viables,existen y son actualmente usadas. Aquí las opciones de partición del dominioson muchas y variadas, y la variante seleccionada dependerán fuertemente delas características del equipo de cómputo paralelo del que se disponga, es decir,si suponemos que una descomposición de 1000× 1000 nodos en un subdominioconsume 1 GB de RAM y el consumo de memoria crece linealmente con elnúmero de nodos, entonces algunas posibles descomposiciones son:

Procesadores Descomposición Nodos Subdominio RAM Mínimo5 2× 2 y 32768× 32768 32768× 32768 ≈33.0 GB257 16× 16 y 4096× 4096 4096× 4096 ≈4.0 GB1025 32× 32 y 2048× 2048 2048× 2048 ≈2.0 GB4097 64× 64 y 1024× 1024 1024× 1024 ≈1.0 GB

Notemos que para las primeras particiones, el consumo de RAM es excesivoy en las últimas particiones la cantidad de procesadores en paralelo necesarioses grande (pero ya de uso común en nuestros días). Como en general, contar conequipos paralelos de ese tamaño es en extremo difícil, ¿es posible resolver estetipo de problemas con una cantidad de procesadores menor al número sugeridoy donde cada uno de ellos tiene una memoria muy por debajo de lo sugerido?,la respuesta es si.

[email protected] 93 Antonio Carrillo Ledesma, Et alii

Page 95: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Primero, notemos que al considerar una descomposición del tipo 64 × 64 y1024 × 1024 subdominios requerimos aproximadamente 1.0 GB de RAM mí-nimo por nodo, si suponemos que sólo tenemos unos cuantos procesadores conmemoria limitada (digamos 2 GB), entonces no es posible tener en memoria demanera conjunta a las matrices generadas por el método.

Una de las grandes ventajas de los métodos de descomposición de dominoes que los subdominios son en principio independientes entre si y que sólo estánacoplados a través de la solución en la interfaz de los subdominios que es des-conocida.

Como sólo requerimos tener en memoria la información de la frontera inte-rior, es posible bajar a disco duro todas las matrices y datos complementarios(que consumen el 99% de la memoria del objeto F_M2D Rectángulos) genera-dos por cada subdominio que no se requieran en ese instante para la operacióndel esquema maestroesclavo.

Recuperando del disco duro solamente los datos del subdominio a usarse enese momento (ya que el proceso realizado por el nodo maestro es secuencial)y manteniéndolos en memoria por el tiempo mínimo necesario. Así, es posi-ble resolver un problema de una descomposición fina, usando una cantidad deprocesadores fija y con una cantidad de memoria muy limitada por procesador.

En un caso extremo, la implementación para resolver un dominio Ω descom-puesto en un número de nodos grande es posible implementarla usando sólo dosprocesos en un procesador, uno para el proceso maestro y otro para el procesoesclavo, en donde el proceso esclavo construiría las matrices necesarias por cadasubdominio y las guardaría en disco duro, recuperándolas conforme el procesodel nodo maestro lo requiera. Nótese que la descomposición del domino Ω estarásujeta a que cada subdominio Ωi sea soportado en memoria conjuntamente conlos procesos maestro y esclavo.

De esta forma es posible resolver un problema de gran envergadura us-ando recursos computacionales muy limitados, sacrificando velocidad de proce-samiento en aras de poder resolver el problema. Está es una de las grandesventajas de los métodos de descomposición de dominio con respecto a los otrosmétodos de discretización tipo diferencias finitas.

El ejemplo anterior nos da una buena idea de las limitantes que existen en laresolución de problemas con dominios que tienen una descomposición fina y nospone de manifiesto las características mínimas necesarias del equipo paralelopara soportar dicha implantación.

5.4 Consideraciones para Aumentar el Rendimiento

Algunas consideraciones generales para aumentar el rendimiento son:

a) Balanceo de cargas de trabajo homogéneo, si se descompone enn ×m subdominios en la partición gruesa se y si se trabaja con Pprocesadores, entonces el balance de cargas adecuado será cuando(P − 1) | (n ∗m).), ya que de no hacerlo el rendimiento se vedegradado notoriamente.

[email protected] 94 Antonio Carrillo Ledesma, Et alii

Page 96: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

b) Usar el mejor precondicionador a priori disponible para el prob-lema en particular, ya que esto disminuye sustancialmente el númerode iteraciones (hasta en un orden de magnitud cuando el precondi-cionador es óptimo).

c) Usar la biblioteca Lapack++ de licencia GNU que optimiza lasoperaciones en el manejo de los elementos de la matriz usando pun-teros en donde se usan matrices densas y bandadas.

d) Si se cuenta con un equipo en que cada nodo del cluster tengamás de un procesador, usar bibliotecas (PLAPACK por ejemplo) quepermitan paralelizar mediante el uso de procesos con memoria com-partida, Pipeline o hilos, las operaciones que involucren a vectores ymatrices; como una forma de mejorar el rendimiento del programa.

e) Siempre usar al momento de compilar los códigos, directivas deoptimización (estas ofrecen mejoras de rendimiento en la ejecuciónde 30% aproximadamente en las pruebas realizadas), pero existen al-gunos compiladores con optimizaciones especificas para ciertos proce-sadores (Intel compiler para 32 y 64 bits) que pueden mejorar aunmás este rendimiento (más de 50%).

Todas estas mejoras pueden ser mayores si se usa un nodo maestro del mayorpoder computacional posible aunado a una red en el cluster de de 1 Gb o mayory de ser posible de baja latencia, si bien las comunicaciones son pocas, estaspueden generar un cuello de botella sustancial.

Por otro lado, hay que hacer notar que es posible hacer usó de múltiples eta-pas de paralelización que pueden realizarse al momento de implantar el métodode descomposición de dominio, estas se pueden implementar conforme se nece-site eficiencia adicional, pero implica una cuidadosa planeación al momento dehacer el análisis y diseño de la aplicación y una inversión cuantiosa en tiempopara implantarse en su totalidad, estas etapas se describen a continuación:

• El propio método de descomposición de dominio ofrece un tipoparticular y eficiente de paralelización al permitir dividir el dominioen múltiples subdominios independientes entre si, interconectadossólo por la frontera interior.

• A nivel subdominio otra paralelización es posible, específicamenteen el llenado de las matrices involucradas en el método de descom-posición de dominio, ya que varias de ellas son independientes.

• A nivel de los cálculos, entre matrices y vectores involucrados enel método también se pueden paralelizar de manera muy eficiente.

• A nivel del compilador es posible generar el ejecutable usandoesquemas de paralelización automático y opciones para eficientizarla ejecución.

Por lo anterior es posible usar una serie de estrategias que permitan realizarestas etapas de paralelización de manera cooperativa y aumentar la eficiencia

[email protected] 95 Antonio Carrillo Ledesma, Et alii

Page 97: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

en una factor muy significativo, pero esto implica una programación particularpara cada una de las etapas y poder distribuir las tareas paralelas de cada etapaen uno o más procesadores distintos a los de las otras etapas.

Notemos finalmente que si se toma el programa de Diferencias Finitas y sepa-raleliza usando sólo directivas de compilación, el aumento del rendimientoes notorio pero este se merma rápidamente al aumentar del número de nodos(esto es debido al aumento en las comunicaciones para mantener y acceder ala matriz del sistema algebraico asociado al método). Pero es aun más notoriocuando el método de descomposición de dominio serial usando las mismas di-rectivas de compilación se paraleliza (sin existir merma al aumentar el númerode nodos siempre y cuando las matrices generadas estén el la memoria local delprocesador).

Esto se debe a que en el método de Diferencias Finitas la matriz estará dis-tribuida por todos los nodos usando memoria distribuida, esto es muy costosoen tiempo de cómputo ya que su manipulación requiere de múltiples comuni-caciones entre los procesadores, en cambio el el método de descomposición dedominio ya están distribuidas las matrices en los nodos y las operaciones sóloinvolucran transmisión de un vector entre ellos, minimizando las comunicacionesentre procesadores.

Pero aún estos rendimientos son pobres con respecto a los obtenidos al usarel método de descomposición de dominio paralelizado conjuntamente con bi-bliotecas para manejo de matrices densas y dispersas en equipos con nodosque cuenten con más de un procesador, en donde mediante el uso de memoriacompartida se pueden usar el resto de los procesadores dentro del nodo paraefectuar en paralelo las operaciones en donde estén involucradas las matrices.

5.5 Observaciones

A lo largo del presente trabajo se ha mostrado que al aplicar métodos de de-scomposición de dominio conjuntamente con métodos de paralelización es posi-ble resolver una gama más amplia de problemas de ciencias e ingeniería quemediante las técnicas tradicionales del tipo Diferencias Finitas.

La resolución del sistema algebraico asociado es más eficiente cuando se haceuso de precondicionadores a priori conjuntamente con el método de gradienteconjugado precondicionado o Residual mínimo generalizado al implantar la solu-ción por el método de descomposición de dominio.

Y haciendo uso del análisis de rendimiento, es posible encontrar la manera debalancear las cargas de trabajo que son generadas por las múltiples discretiza-ciones que pueden obtenerse para la resolución de un problema particular, mi-nimizando en la medida de lo posible el tiempo de ejecución y adaptándolo a laarquitectura paralela disponible, esto es especialmente útil cuando el sistema atrabajar es de tamaño considerable.

Adicionalmente se vieron los alcances y limitaciones de esta metodología,permitiendo tener cotas tanto para conocer las diversas descomposiciones quees posible generar para un número de procesadores fijo, como para conocer elnúmero de procesadores necesarios en la resolución de un problema particular.

[email protected] 96 Antonio Carrillo Ledesma, Et alii

Page 98: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

También se vio una forma de usar los métodos de descomposición de dominioen casos extremos en donde una partición muy fina, genera un problema degran envergadura y como resolver este usando recursos computacionales muylimitados, sacrificando velocidad de procesamiento en aras de poder resolver elproblema.

Así, podemos afirmar de manera categórica que conjuntando los métodos dedescomposición de dominio, la programación orientada a objetos y esquemas deparalelización que usan el paso de mensajes, es posible construir aplicaciones quecoadyuven a la solución de problemas en dos o más dimensiones concomitantesen ciencia e ingeniería, los cuales pueden ser de tamaño considerable.

Las aplicaciones desarrolladas bajo este paradigma serán eficientes, flexi-bles y escalables; a la vez que son abiertas a nuevas tecnologías y desarrolloscomputacionales y al ser implantados en clusters, permiten una codificación or-denada y robusta, dando con ello una alta eficiencia en la adaptación del códigoa nuevos requerimientos, como en la ejecución del mismo.

De forma tal que esta metodología permite tener a disposición de quien lorequiera, una gama de herramientas flexibles y escalables para coadyuvar deforma eficiente y adaptable a la solución de problemas en medios continuos deforma sistemática.

[email protected] 97 Antonio Carrillo Ledesma, Et alii

Page 99: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

6 Implementación Computacional Secuancial yParalela de DVS

La implementación computacional de los métodos de descomposición de dominiosin traslape en general (véase [9], [4], [5] y [6]) y de los métodos de descomposi-ción de dominio en el espacio de vectores derivados (DVS) en particular (véase[62] y [61]), en los cuales cada subdominio genera sus matrices locales y elmétodo que resuelve el sistema global virtual –CGM o GMRES– es tal quenecesita sólo una porción de la información que generan los subdominios, quedafácilmente estructurado mediante el esquema Maestro-Esclavo, tanto para laimplementación del código secuencial como paralela.

El esquema Maestro-Esclavo parece ser un forma óptima29 de dividir la cargacomputacional requerida para solucionar un problema de descomposición dedominio sin traslapes, en el cual, uno o más subdominios son asignados a unnodo esclavo, tanto en su implementación secuencial –donde cada nodo esclavoes un objeto– como en su implementación paralela –donde cada nodo esclavoesta asignado a un procesador–, en el cual el nodo maestro de forma síncronacontrola las tareas que requiere el esquema DVS, las cuales son llevadas a cabopor los nodos esclavos, donde la comunicación sólo se da entre el nodo maestroy cada nodo esclavo –no existiendo comunicación entre los nodos esclavos–,optimizando así las comunicaciones.

6.1 Esquema Maestro-Esclavo como una Forma de Imple-mentación

El esquema Maestro-Esclavo permite que en los nodos esclavos se definan unoo más subdominios –en los cuales se generen y manipulen las matrices lo-cales de cada subdominio– y que el maestro controle las actividades necesariaspara implementar cualquiera de los métodos desarrollados. En particular laimplementación del método de resolución del sistema lineal virtual Mu∆ = besquematizados por los algoritmos descritos en la Ec.(3.116 ó 3.118), donde elnodo maestro controlará a cada uno de sus nodos esclavos mediante comunica-ciones entre este y los esclavos, pero no entre esclavos, como se muestra en lafigura.

Esta forma de descomponer el problema dentro del esquemaMaestro-Esclavo,permite hacer la implementación del código tanto para la parte secuencial comosu paralelización de manera fácil y eficientemente, donde tomando en cuentala implementación en estrella del Cluster o equipo multiCore, el modelo deparalelismo de MPI y las necesidades propias de comunicación del programa, elnodo maestro tendrá comunicación sólo con cada nodo esclavo, esto reducirá lascomunicaciones y optimizará el paso de mensajes (véase [17], [15] y [16]).

29El esquema Maestro-Esclavo esta intrínseco a la definición de los métodos de descomposi-ción de dominio tipo subestructuración, ya que las tareas implementadas por los subdominiosson pensados como procesos esclavos los cuales son controlados por el maestro que implementala solución de los nodos de frontera interior (véase [62] y [61]).

[email protected] 98 Antonio Carrillo Ledesma, Et alii

Page 100: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Figura 14: Esquema del Maestro-Esclavo

Además el esquema de paralelización Maestro-Esclavo permite sincronizarfácilmente por parte del nodo maestro las tareas que realizan en paralelo losnodos esclavos, éste modelo puede ser explotado de manera eficiente si existepoca comunicación entre el maestro y los esclavos; y los tiempos consumidosen realizar las tareas asignadas son mayores que los períodos involucrados enlas comunicaciones para la asignación de dichas tareas. De esta manera segarantiza que la mayoría de los procesadores estarán siendo usados de formaeficiente y existirán pocos tiempos muertos, aumentando así la eficiencia globalde la implementación de los métodos de descomposición de dominio en el espaciode vectores derivados bajo el esquema Maestro-Esclavo.

6.2 Análisis, Diseño y Programación Orientada a Objetos

Desde el inicio del proyecto para la implementación computacional de los méto-dos de descomposición de dominio en el espacio de vectores derivados se planteóla necesidad de que el código desarrollado fuera orientado a objetos, que su im-plementación computacional debería de correr en equipos secuenciales y parale-los para dominios en dos y tres dimensiones. Por ello se optó por usar el lenguajede programación C++ y la paralelización se haría usando la biblioteca de pasode mensajes MPI.

Dentro de las consideraciones básicas en el análisis orientado a objetos esque el código debería de correr tanto en equipos secuenciales como en paralelos,con un mínimo de cambios y que la interdependencia de la parte paralela nodebería afectar la parte secuencial. Para que cualquier cambio en el código delos métodos desarrollados no requiera grandes cambios en el código paralelo.Esto se logra mediante la programación orientada a objetos haciendo uso declases abstractas30 o contenedores.

Esto permitió desarrollar un código que fuera robusto y flexible, además deque la escritura, depuración y optimización se hace desde cualquier Notebook ysu ejecución puede ser hecha en cualquier computadora personal o Clusters sinningún cambio en el código.30En general las clases abstractas que definen comportamientos virtuales pueden no ser

eficientes si son llamadas una gran cantidad de veces durante la ejecución del programa. Parael caso del esquema DVS, en el cual se usa CGM o GMRES para resolver el sistema linealvirtual, este sólo se llama una sola vez; y el proceso de solución del sistema lineal asociadoconsume la mayoría del tiempo de ejecución, por eso se considera eficiente.

[email protected] 99 Antonio Carrillo Ledesma, Et alii

Page 101: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Por ejemplo, en el uso de los métodos numéricos tanto directos como ite-rativos para resolver sistemas lineales en los cuales la matriz es real –existecomo tal– o es virtual –esta dispersa por los distintos subdominios– se creouna jerarquía de clases que implementa mediante herencia a la clase abstracta,la cual usan los algoritmos que requerían solucionar un sistema lineal, estaclase abstracta se llama Solvable –véase apéndice B–. La jerarquía31 de clasesmostrada en la figura (15) permite contener a cualquiera de los métodos numéri-cos de solución de sistemas lineales actuales y cualquier implementación futuray es independiente de si se usa para generar código secuencial o paralelo.

Figura 15: Jerarquía de clases para la implementación de los métodos de res-olución de sistemas lineales.

Nótese que, en general, el paradigma de programación orientada a objetossacrifica algo de eficiencia computacional por requerir mayor manejo de recur-sos computacionales al momento de la ejecución. Pero en contraste, permitemayor flexibilidad a la hora adaptar los códigos a nuevas especificaciones. Adi-cionalmente, disminuye notoriamente el tiempo invertido en el mantenimientoy búsqueda de errores dentro del código, además de hacer el código extensibley reutilizable. Esto tiene especial interés cuando se piensa en la cantidad demeses invertidos en la programación comparada con los segundos consumidosen la ejecución del mismo.

6.2.1 Implementación Secuencial en C++

Usando la filosofía del manejo de clases abstractas desde el análisis y duranteel diseño de la implementación computacional de los ocho métodos de descom-posición de dominio en el espacio de vectores derivados, se pensó en usar unajerarquía de clases que especializarían a una clase abstracta llamada DPMethod,la cual permite implementar uno o más de los métodos de descomposición de do-

31Las jerarquías de clases de herencia mostradas en las figuras fueron generadas usandoDoxygen documentation (véase [66]) a partir del código fuente en C++.

[email protected] 100 Antonio Carrillo Ledesma, Et alii

Page 102: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

minio desarrollados; y dada una ecuación o sistemas de ecuaciones diferencialesparciales, se usaría el método iterativo –Gradiente Conjugado o el métodoResidual Mínimo Generalizado o cualquier otro– dependiendo de que la matrizglobal virtual fueran simétrica o no simétrica; su jerarquía de clases se muestraen la figura (16).

Figura 16: Jerarquía de clases para la implementación secuencial

De esta forma, es posible implementar uno o más de los algoritmos desa-rrollados de descomposición de dominio en el espacio de vectores derivados sinrealizar cambios en la base del código, permitiendo especializar el código paraalguna necesidad particular sin cargar con código no requerido en la resoluciónde un problema específico, pero en caso de evaluar el desempeño de cada unode los métodos ante un problema determinado, se pueda realizar sin afectacióndel código.

Además de la flexibilidad anteriormente comentada, también se reutilizala jerarquía de clases para la resolución de sistemas lineales, permitiendo quecualquier cambio o refinamiento a estas clases redunde en el desempeño globaldel sistema, permitiendo que en un futuros se agreguen y refinen métodos quemanejen con eficiencia la solución de los sistemas lineales asociados al métodode descomposición de dominio DVS.

6.2.2 Implementación Paralela en C++ Usando MPI

Para poder intercomunicar al nodo maestro con cada uno de los nodos esclavosse usa la interfaz de paso de mensajes –Message Passing Interface (MPI)–, unabiblioteca de comunicación para procesamiento en paralelo. MPI ha sido desa-rrollado como un estándar para el paso de mensajes y operaciones relacionadas.

[email protected] 101 Antonio Carrillo Ledesma, Et alii

Page 103: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Este enfoque es adoptado por usuarios e implementadores de bibliotecas, enla cual se proveen a los programas de procesamiento en paralelo de portabili-dad y herramientas necesarias para desarrollar aplicaciones que puedan usar elcómputo paralelo de alto desempeño.

El modelo de paso de mensajes posibilita a un conjunto de procesos –quetienen solo memoria local– la comunicación con otros procesos usando Bus ored, mediante el envío y recepción de mensajes. El paso de mensajes posibilitatransferir datos de la memoria local de un proceso a la memoria local de cualquierotro proceso que lo requiera.

En el modelo de paso de mensajes mediante MPI para equipos con uno omás Cores, los procesos se ejecutan en paralelo, teniendo direcciones de memoriaseparada para cada proceso, la comunicación ocurre cuando una porción de ladirección de memoria de un proceso es copiada mediante el envío de un mensajedentro de otro proceso en la memoria local mediante la recepción del mismo.

Las operaciones de envío y recepción de mensajes es cooperativa y ocurre sólocuando el primer proceso ejecuta una operación de envío y el segundo procesoejecuta una operación de recepción, los argumentos base de estas funciones son:

• Para el que envía, la dirección de los datos a transmitir y el procesodestino al cual los datos se enviarán.

Send(dir, lg, td, dest, etiq, com)dir, lg, td describe cuántas ocurrencias lg de elementos del tipo

de dato td se transmitirán empezando en la dirección de memoriadir ; des, etiq, com describe el identificador etq de destino des aso-ciado con la comunicación com.

• Para el que recibe, debe de tener la dirección de memoria dondese pondrán los datos recibidos, junto con la dirección del proceso delque los envío.

Recv(dir, mlg, td, fuent, etiq, com, st)dir, lg, td describe cuántas ocurrencias lg de elementos del tipo

de dato td se transmitirán empezando en la dirección de memoriadir ; fuent, etiq, com, est describe el identificador etq de la fuentefuent asociado con la comunicación com y el estado st.

El conjunto básico de directivas (en este caso sólo se usan estas) en C++ deMPI son:

MPI::Init Inicializa al MPIMPI::COMM_WORLD.Get_size Busca el número de procesos existentesMPI::COMM_WORLD.Get_rank Busca el identificador del procesoMPI::COMM_WORLD.Send Envía un mensajeMPI::COMM_WORLD.Recv Recibe un mensajeMPI::Finalize Termina al MPI

[email protected] 102 Antonio Carrillo Ledesma, Et alii

Page 104: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

La estructura básica del programa bajo el esquema Maestro-Esclavo codifi-cada en C++ y usando MPI es:

main(int argc, char *argv[])

MPI::Init(argc,argv);ME_id = MPI::COMM_WORLD.Get_rank();MP_np = MPI::COMM_WORLD.Get_size();if (ME_id == 0)

// Operaciones del Maestro else

// Operaciones del esclavo con identificador ME_idMPI::Finalize();

En este único programa se deberá de codificar todas las tareas necesariaspara el nodo maestro y cada uno de los nodos esclavos, así como las formas deintercomunicación entre ellos usando como distintivo de los distintos procesos ala variable ME_id (véase [15] y [16]).

La jerarquía de clases del esquema Maestro-Esclavo en su implementaciónparalela permite repartir la carga de varias maneras en uno o más Cores. Reu-tilizando toda la jerarquía de clases de la implementación secuencial de losalgoritmos DVS y sólo es necesario agregar clase que especializa algunos com-portamientos que requieren hacer uso de las comunicaciones, mediante la bi-blioteca de paso de mensajes MPI. La jerarquía de clases es mostrada en lafigura siguiente:

La reutilización de toda la jerarquía de clases generada para la implementa-ción secuencial permite que el código paralelo soporte una gran cantidad decambios sin afectación a la implementación paralela, teniendo así, un códigorobusto, flexible, modular y de fácil mantenimiento (véase [17]).

6.3 Alcances y Limitaciones del EsquemaMaestro-Esclavo

El esquema Maestro-Esclavo es eficiente cuando se tiene una carga casi ho-mogénea en cada nodo esclavo y se manejan una cantidad moderada de ellos.Un factor limitante en el esquema Maestro-Esclavo, es que el nodo maestrodeberá de atender todas las peticiones hechas por todos y cada uno de los no-dos esclavos, esto toma especial relevancia cuando todos o casi todos los nodosesclavos compiten por ser atendidos por el nodo maestro.

Una opción para optimizar el esquema Maestro-Esclavo es contar con unnodo maestro lo suficientemente poderoso para atender simultáneamente lamayor cantidad de las tareas síncronas del método de descomposición de do-minio en el menor tiempo posible. Pero los factores limitantes del esquemaMaestro-Esclavo son de tres tipos, a saber:

1. Los inherentes al método de descomposición de dominio.

[email protected] 103 Antonio Carrillo Ledesma, Et alii

Page 105: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Figura 17: Jerarquía de clases para la implementación paralela rehusando todala jerarquía de la implementación secuencial y de resolución de sistemas lineales

2. Los inherentes al propio esquema Maestro-Esclavo.

3. Los inherentes al equipo de cómputo en paralelo en el que se ejecute elprograma.

En el primer caso, en cuanto a los inherentes al método de descomposiciónde dominio destacan:

• El método de descomposición de dominio es síncrono, es decir, si un nodoesclavo acaba la tarea asignada y avisa al nodo maestro, este no podráasignarle otra tarea hasta que todos los nodos esclavos concluyan la suya,y se realicen las operaciones necesarias para asignar las nuevas tareas alos nodos esclavos.

• El nodo maestro sólo realiza tareas de control y sincronización pero noconoce o realiza cálculos relacionados con los sistemas lineales locales acada uno de los subdominios que están asignados a los nodos esclavos.

• Por lo anterior, el esquema Maestro-Esclavo no es eficiente si sólo se usandos procesos o Cores –uno para el nodo maestro y otro para el nodoesclavo–, por otro lado, cuando se realiza el análisis de rendimiento en PCores, hay que tomar en cuenta que los únicos nodos que manipulan lossistemas lineales asociados al método de descomposición de dominio son losesclavos (P − 1) y el nodo maestro sólo realiza el control y sincronizaciónde las tareas del los métodos DVS.

[email protected] 104 Antonio Carrillo Ledesma, Et alii

Page 106: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

En el segundo caso, en cuanto a los inherentes al propio esquema Maestro-Esclavo destacan:

• El nodo maestro deberá distribuir las tareas a los nodos esclavos acordeal número de subdominios existentes en la descomposición y la malla finade cada subdominio, de tal forma que cada nodo esclavo tenga una cargacomputacional equivalente a los demás nodos esclavos.

• En el caso de una carga homogénea en cada subdominio, si se usan P Coresen el equipo paralelo y la descomposición del dominio tiene E subdomin-ios, tal que (P − 1) ∤ E, esa descomposición de dominio no es adecuadapara trabajar en dicha cantidad de Cores. En este caso, el número deprocesadores P que se usen para tener buen balance de cargas es conocidoa priori cuando el dominio Ω se descompone en n×m–n×m× o– sub-dominios homogéneos, entonces se generarán E = n∗m–E = n∗m∗o–subdominios Ωα, teniendo un buen balanceo de cargas si (P − 1) | E.

• Pese al buen balanceo de la carga en los nodos esclavos, es común que,un gran número de nodos esclavos envíen simultáneamente datos al nodomaestro saturando su canal de comunicación; y este en algún momentotendrá que tratar atender las múltiples comunicaciones, degradando surendimiento al aumentar el número de nodos esclavos involucrados en ladescomposición.

En el caso de generar desbalance de la carga en los nodos esclavos o unasaturación de comunicaciones en el nodo maestro, se propicia a que algunosprocesadores terminen antes que otros, generando tiempos muertos de ejecuciónen dichos Cores; propiciando una notoria degradación en la eficiencia global enel procesamiento, es por esto que, en algunos casos al aumentar el número deprocesadores no se aprecia una disminución sustancial del tiempo de ejecucióny en casos extremos puede ocasionar un aumento en el tiempo.

En el tercer caso, en cuanto a los inherentes al equipo de cómputo en paraleloen el que se ejecute el programa destacan:

• El programa se diseño para correr en cualquier cantidad de procesos oCores y no hay límite establecido en cuanto al número de subdominiosque soporta el programa, pero el equipo en el que se ejecute tiene unnúmero predeterminado de Cores y cada uno de ellos tiene asignado unacantidad limitada de RAM, es por ello que, las dimensiones del problemaque es posible correr en un equipo paralelo dado esta determinado porestas limitantes.

• En los equipos paralelos, el cuello de botella en cuanto a la eficiencia globalde la ejecución, lo presentan las comunicaciones, entre más comunicacionesnecesite el programa, es imperante el contar con una infraestructura quepermita la mejor velocidad de comunicaciones entre el nodo maestro y losnodos esclavos; además de que esta cuente con la menor latencia posible

[email protected] 105 Antonio Carrillo Ledesma, Et alii

Page 107: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

en las comunicaciones. Por otro lado, el acceso al disco duro es mínimoy no representa un costo significativo en las comunicaciones totales de laejecución.

Para ejemplificar lo discutido anteriormente, se considera como modelo mate-mático el problema de valor en la frontera (BVP) asociado con la ecuación dePoisson, con condiciones de frontera Dirichlet, definido en Ω como:

−∇2u = fΩ en Ω (6.1)

u = g∂Ω en ∂Ω

este ejemplo, gobierna los modelos de muchos sistemas de la ingeniería y de laciencia, entre ellos el flujo de agua subterránea a través de un acuífero isotrópico,homogéneo bajo condiciones de equilibrio y es muy usado en múltiples ramasde la física, por ejemplo, gobierna la ecuación de la conducción de calor en unsólido bajo condiciones de equilibrio.

En particular se considera el problema con Ω definido en:

Ω = [−1,−1]× [1, 1] (6.2)

dondefΩ = 2n2π2 sin(nπx) ∗ sin(nπy) y g∂Ω = 0 (6.3)

cuya solución esu(x, y) = sin(nπx) ∗ sin(nπy) (6.4)

Por ejemplo para n = 4, la solución es u(x, y) = sin(4πx)∗sin(4πy), cuya gráficase muestra a continuación:

Figura 18: Solución a la ecuación de Poisson para n=4.

[email protected] 106 Antonio Carrillo Ledesma, Et alii

Page 108: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Para las pruebas de rendimiento32 en las cuales se evalúa el desempeño delos programas realizados se usa n = 100, pero es posible hacerlo con n ∈ Ngrande.

Supóngase que se desea resolver el dominio Ω usando 1024 × 1024 nodos–1, 048, 576 grados de libertad– mediante el algoritmo precondicionado PRI-MAL#2 , de manera inmediata surgen las siguientes preguntas: ¿cuáles son lasposibles descomposiciones posibles? y ¿en cuántos procesadores se pueden re-solver cada descomposición?. Para este ejemplo en particular, sin hacer la tablaexhaustiva, se tiene:

Partición Subdominios Procesadores2x2 y 512x512 4 2,3,54x4 y 256x256 16 2,3,5,9,178x8 y 128x128 64 2,3,5,9,17,33,6516x16 y 64x64 256 2,3,5,9,17,33,65,129,25732x32 y 32x32 1024 2,3,5,9,17,33,65,129,..,102564x64 y 16x16 4096 2,3,5,9,17,33,65,129,...,4097128x128 y 8x8 16384 2,3,5,9,17,33,65,129,...,16385256x256 y 4x4 65536 2,3,5,9,17,33,65,129,...,65537512x512 y 2x2 262144 2,3,5,9,17,33,65,129,...,262145

De esta tabla es posible seleccionar las descomposiciones que se adecuen alas necesidades particulares del equipo paralelo con que se cuente, para evaluarel tiempo de ejecución de este ejemplo se usó la PC Antipolis Intel Xeon a2.33 GHtz de 64 bits con 8 Cores y 32 GB de RAM, obteniendo los siguientesresultados para una tolerancia de 10−6 usando norma infinita en todos los casos(tiempo en segundos):

1 C o r e 2 C o r e s 3 C o r e s 4 C o re s 5 C o r e s 6 C o re s 7 C o r e s 8 C o re s

P a r t i c i ó n T iem p o T iem p o T iem p o T iem p o T iem p o T iem p o T iem p o T iem p o

2 x 2 y 5 1 2 x 5 1 2 16465 10659 7207 7105 46414 x 4 y 2 5 6 x 2 5 6 2251 5063 2252 2103 1643 1233 1068 9478 x 8 y 1 2 8 x 1 2 8 855 885 482 395 314 311 283 2721 6 x 1 6 y 6 4 x 6 4 321 348 190 149 121 125 118 1173 2 x 3 2 y 3 2 x 3 2 26 39 26 24 23 21 21 216 4 x 6 4 y 1 6 x 1 6 205 595 485 477 481 461 469 4691 2 8 x 1 2 8 y 8 x 8 1026 5453 5352 5431 5633 5843 5843 59032 5 6 x 2 5 6 y 4 x 4 8544 26167 25892 25902 25939 25950 25969 260035 1 2 x 5 1 2 y 2 x 2 34845 64230 63293 63308 63389 63475 63502 63693

32En todos los ejemplos del presente trabajo no se realiza una análisis de comunicaciónde forma independiente al tiempo de cálculo, ya que los Clusters a los que se obtuvo accesocarecen de herramientas que permitan realizar dicho análisis, pero si se realizaron algunaspruebas con XMPI (véase [67]) y Vampir (véase [68]) para algunos ejemplos representativosen los cuales se muestra que se tiene granularidad gruesa (véase [62]).

[email protected] 107 Antonio Carrillo Ledesma, Et alii

Page 109: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

De estos resultados, se desprende que:

1. Dependiendo del tamaño de la malla gruesa –número de subdominios atrabajar– y de la malla fina, es siempre posible encontrar una descom-posición de dominio –32× 32 y 32× 32– en que el tiempo de cálculo seamínimo:

• Al usar un solo Core (programa secuencial 26 seg.).• Al usar múltiples Cores interconectados mediante MPI (6 Cores en21 seg.).

2. Es notorio el efecto que genera el mal balanceo de carga33 , el cual serefleja en que no disminuye el tiempo de ejecución al aumentar el númerode procesadores y en algunos casos el tiempo aumenta conforme se agreganmás Cores.

En contraste con los 110 segundos en que se resolvió el mismo problemausando los métodos de Elemento Finito y Diferencias Finitas, usando en amboscasos Factorización Cholesky para resolver el sistema lineal asociado.

6.4 Afectación del Rendimiento al Refinar la Descomposi-ción

Una parte fundamental al trabajar con problemas reales usando una descomposi-ción fina es conocer a priori que factores afectan el rendimiento de la aplicaciónante las posibles elecciones en la descomposición de dominio, la afectación se dapor:

1. En el caso de contar con un gran número de subdominios que estén asig-nados a distintos nodos esclavos, la afectación se da por la saturación delnodo maestro con una gran cantidad de comunicaciones simultáneas porparte de los nodos esclavos que el nodo maestro deberá de atender y la ve-locidad de comunicación del canal usado para ello. Esto es especialmenteimportante en la implementación paralela en la cual la interconexión delequipo paralelo se hace mediante un canal de comunicación lento u ocu-pado por otros procesos.

2. En el caso de realizar una descomposición muy fina en cada subdominio,la afectación del rendimiento se da al aumentar el número de nodos in-volucrados en el complemento de Schur local Si, ya que esto significa, porun lado generar matrices locales más grandes

II, Aα

Iπ, Aα

I∆, Aα

πI, Aα

ππ, Aα

π∆, Aα

∆I, Aα

∆πy Aα

∆∆(6.5)

33Por ejemplo, al usar una descomposición gruesa de 64×64 = 4096 subdominios repartidosen 3, 5, 6, 7 nodos esclavos.

[email protected] 108 Antonio Carrillo Ledesma, Et alii

Page 110: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

además de resolver el sistema y =(Ai

II

)−1x de alguna forma. Si el

número de nodos interiores en el subdominio es grande entonces solucionarel complemento de Schur local será costoso computacionalmente.

Para el primer caso, el uso de algunos cientos o miles de subdominios noafectan de manera considerable el desempeño del Esquema Maestro-Esclavo sila red es relativamente rápida (de un Gigabit por segundo o más), y como losavances en las comunicaciones son vertiginosos, en un corto tiempo se tendráacceso a redes de mayor velocidad reduciendo el efecto de manipular un grannúmero de subdominios simultáneamente.

Para el segundo caso, al resolver el complemento de Schur local, se puedeemplear diversos métodos de solución, la selección del método más adecuadoal problema en particular depende por un lado de las capacidades computa-cionales del equipo donde se implemente la ejecución y las características propiasde los sistemas lineales asociados al problema. Así, para solucionar el sistema

y =(Ai

II

)−1x correspondiente al complemento de Schur local Si se puede usar

por ejemplo: Factorización LU, Factorización Cholesky, Gradiente Conjugadoo alguna variante de GMRES, pero deberá de usarse aquel método que pro-porcione la mayor velocidad en el cálculo o que consuma la menor cantidadde memoria –ambas condicionantes son mutuamente excluyentes–, por ellola decisión de que método usar deberá de tomarse al momento de tener queresolver un problema particular en un equipo dado y básicamente el condicio-nante es el tamaño del la matriz Ai

IIversus el método numérico usado para

resolver el sistema lineal asociado –todas esas opciones están implementadasen el código y pueden seleccionarse conforme sean requeridos en la ejecución,mediante directivas de compilación–

Por lo visto en el ejemplo anterior, si el problema involucra una gran canti-dad de nodos interiores y el equipo –secuencial o paralelo– en el que se im-plantará la ejecución del programa tiene una cantidad de memoria reducida, esrecomendable en los procesos locales a los subdominios usar métodos iterativos–Gradiente Conjugado o alguna variante de GMRES–, estos consume una can-tidad de memoria pequeña comparada con los métodos directos –FactorizaciónLU o Cholesky– pero requieren una gran cantidad de iteraciones para obtenerla misma precisión que los directos.

Hay que tomar en cuenta que al aumentar el número de subdominios enuna descomposición particular, se garantiza que las matrices a generar y cal-cular sean cada vez más pequeñas y fáciles de manejar. Pero hay un límite alaumento del número de subdominio y disminución del tamaño de las matricesa generar por subdominio; y esto se refleja en una pérdida de eficiencia en eltiempo de ejecución, esto es generado por la gran cantidad de subdominios quees necesario crear y manejar por el nodo maestro, incrementando sustancial-mente las comunicaciones y por otro lado, cada subdominio manejará cada vezmatrices más pequeñas con el consecuente aumento de los tiempos muertos, alinvertir mucho más tiempo en comunicaciones que en cálculos.

[email protected] 109 Antonio Carrillo Ledesma, Et alii

Page 111: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Para mitigar los factores limitantes inherente al propio esquema Maestro-Esclavo, es posible implementar algunas operaciones del nodo maestro en parale-lo, usando uno o más Cores distintos a los asignados a los nodos esclavos. Parala parte inherente al método de descomposición de dominio, la parte medularla da el balanceo de cargas. Es decir, cada nodo esclavo debe tener una cargade trabajo equivalente al resto de los nodos.

Tomando en cuenta lo discutido, para un problema particular y la descom-posición del dominio Ω en la implementación paralela, hay que tomar en cuentalo siguiente:

• Buscar que la descomposición de malla gruesa y su asociada malla fina, enla que cada nodo esclavo –asociado a un procesador– tenga una cargacasi homogénea con respecto a los demás nodos esclavos, .i.e. buscarque en su conjunto, todos los subdominios Ωα de la malla gruesa y sudescomposición fina de cada uno de ellos, que estén asignados a cadanodo esclavo sean computacionalmente equivalentes.

• Elegir el método numérico local a cada subdominio para garantizar eluso de la menor cantidad de memoria posible y/o la mayor velocidad deejecución versus la precisión global esperada del método de descomposiciónde dominio.

• Elegir de las distintas descomposiciones balanceadas del dominio Ω ylas diferentes opciones de los métodos numéricos usados localmente encada subdominio, aquella que presente el mejor rendimiento computa-cional acorde al equipo paralelo en el cual se implemente la solución delproblema.

Nótese que el esquemaMaestro-Esclavo paralelo lanza P procesos –uno parael nodo maestro y P − 1 para los nodos esclavos–, estos en principio corren enun solo procesador pero pueden ser lanzados en múltiples procesadores usandouna directiva de ejecución, de esta manera es posible que en una sola máquinase programe, depure y sea puesto a punto el código usando mallas relativamentepequeñas –del orden de miles o millones de nodos– y cuando este listo paraproducción se puede mandar a cualquier equipo paralelo sin cambio alguno enel código.

6.5 Opciones para Soportar una Descomposición Fina delDominio

Supóngase ahora que se necesita resolver el problema de una descomposiciónfina del dominio Ω, sin pérdida de generalidad, se puede suponer por ejemplo,que se usa una malla de 8192 × 8192 nodos, este tipo de problemas es comúny surgen cotidianamente en la resolución de sistemas reales y las opciones paraimplantarlo en un equipo paralelo son viables, existen y son actualmente usa-das. Aquí las opciones de partición del dominio son muchas y variadas, y lavariante seleccionada dependerá fuertemente de las características del equipo de

[email protected] 110 Antonio Carrillo Ledesma, Et alii

Page 112: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

cómputo paralelo del que se disponga. Si se supone que una descomposición de100×100 nodos en un subdominio consume 1 GB de RAM y que el consumo dememoria crece linealmente con el número de nodos, entonces algunas posiblesdescomposiciones son:

Procesadores Descomposición Nodos Subdominio RAM Mínimo5 2× 2 y 4096× 4096 4096× 4096 ≈40.0 GB257 16× 16 y 512× 512 512× 512 ≈5.0 GB1025 32× 32 y 256× 256 256× 256 ≈2.5 GB4097 64× 64 y 128× 128 128× 128 ≈1.2 GB

Nótese que para las primeras particiones, el consumo de RAM es excesivo yen las últimas particiones la cantidad de procesadores en paralelo necesarios esgrande –pero ya de uso común en nuestros días–. Como en general, contarcon equipos paralelos de ese tamaño es en extremo difícil, ¿es posible resolvereste tipo de problemas con una cantidad de procesadores fijo menor al sugeridoy donde cada uno de ellos tiene solo memoria suficiente para soportar uno o mássubdominios?, la respuesta es si.

Primero, nótese que al considerar una descomposición fina del tipo 64×64 y128×128 se requiere aproximadamente 1.2 GB de RAM por Core, si además sesupone que sólo se tienen unos cuantos procesadores con poca memoria –porejemplo 2 GB–, entonces no es posible tener en memoria de manera conjuntaa las matrices generadas por el método.

Una de las grandes ventajas de los métodos de descomposición de dominoes que los subdominios son en principio independientes entre si y que sólo estánacoplados a través de la solución en la interfase de los subdominios que es des-conocida.

Como sólo se requiere tener en memoria la información de la frontera inte-rior, es posible bajar a disco duro todas las matrices y datos complementariosgenerados en cada subdominio –que consumen el 99% de la memoria del objetoRectSub–, que no se requieran en ese instante para la operación del esquemaMaestro-Esclavo.

Recuperando del disco duro solamente los datos del subdominio a usarse enese momento –ya que el proceso realizado por el nodo maestro es secuencial–y manteniéndolos en memoria por el tiempo mínimo necesario. Así, es posi-ble resolver un problema de una descomposición fina, usando una cantidad deprocesadores fija y con una cantidad de memoria reducida por procesador.

En un caso extremo, la implementación para resolver un dominio Ω descom-puesto en un número de nodos grande es posible implementarla usando sólo dosprocesos en un procesador, uno para el proceso maestro y otro para el procesoesclavo, en donde el proceso esclavo construiría las matrices necesarias por cadasubdominio y las guardaría en disco duro, recuperándolas conforme el procesodel nodo maestro lo requiera. Nótese que la descomposición del domino Ω estarásujeta a que cada subdominio Ωi sea soportado en memoria conjuntamente conlos procesos Maestro y Esclavo.

De esta forma es posible resolver un problema de gran envergadura usandorecursos computacionales limitados, sacrificando velocidad de procesamiento en

[email protected] 111 Antonio Carrillo Ledesma, Et alii

Page 113: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

aras de poder resolver el problema. Está es una de las grandes ventajas delos métodos de descomposición de dominio con respecto a los otros métodos dediscretización tipo Diferencias Finitas y Elemento Finito.

El ejemplo anterior da una buena idea de las limitantes que existen en laresolución de problemas con dominios que tienen una descomposición fina ypone de manifiesto las características mínimas necesarias del equipo paralelopara soportar dicha implantación.

6.6 Otras Opciones de Paralelización

En la actualidad, casi todos los equipos de cómputo usados en estaciones detrabajo y Clusters cuentan con dos o más Cores, en ellos siempre es posible usarMPI para intercambiar mensajes entre procesos corriendo en el mismo equipode cómputo, pero no es un proceso tan eficiente como se puede querer. Enestas arquitecturas llamadas de memoria compartida es mejor usar OpenMP ocualquiera de sus variantes para trabajar en paralelo. Por otro lado es ya comúncontar con las cada vez más omnipresentes tarjetas NVIDIA, con los cada vezmás numerosos Cores CUDA –que una sola tarjeta NVIDIA TESLA puedetener del orden de cientos de ellos– y que en un futuro serán cada vez másnumerosos.

Para lograr obtener la mayor eficiencia posible de estos tres niveles de parale-lización, se están implementando procesos híbridos (véase [64] y [65]), en dondela intercomunicación de equipos con memoria compartida se realiza medianteMPI y la intercomunicación entre Cores que comparten la misma memoria serealiza con OpenMP, además las operaciones matriciales se le encargan a losnumerosos Cores CUDA de las tarjetas NVIDIA.

Los métodos de descomposición de dominio sin traslape y en particular el es-quema DVS con sus ocho algoritmos, pueden hacer uso de esta forma integradorade paralelismo. Para ello, la interconexión de equipos de memoria compartidase realizaría mediante MPI y en cada equipo de memoria compartida se mani-pularían uno o más subdominios mediante OpenMP –ya que cada subdominioes independiente de los demás– y la manipulación de matrices y operacionesentre matrices y vectores que requiere cada subdominio se realizarían en lastarjetas NVIDIA mediante los numerosos Cores CUDA sin salir a la RAM dela computadora.

Para integrar esta forma de paralelismo en los códigos, es necesario hacercambios mínimos34 al mismo, ya que sólo es necesario reimplementar los com-portamientos locales que requieren otro tipo de paralelismo, ya que la jerarquíade clases del código desarrollado permite especializar los comportamientos queimplementan las comunicaciones, esto queda de manifiesto al reutilizar todala jerarquía de clases de la implementación secuencial en la implementaciónparalela como se aprecia en la figura (17).

34Ya se tiene una versión operacional del código en los cuales se han realizado algunas prue-bas de rendimiento, pero los resultados son limitados por la complejidad de la programación delas tarjetas NVIDIA y la falta de herramientas y bibliotecas de código abierto que optimiceny depuren las implementaciones.

[email protected] 112 Antonio Carrillo Ledesma, Et alii

Page 114: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Además, el esquema Maestro-Esclavo sólo requiere enviar un vector a cadasubdominio en cada paso de la iteración del sistema lineal virtual –medianteel paso de mensajes usando MPI– el cual se coloca en la RAM de la memoriacompartida, después este es copiado35 a la RAM de la tarjeta NVIDIA según elsubdominio que se este trabajando –se controla usando OpenMP–, aquí losmúltiples Cores CUDA sin salir de su RAM local efectuarían las operacionesde multiplicación de matriz vector necesarias para regresar un único vector a laRAM de la memoria compartida y de ahí se enviaría por MPI al nodo maestro,concluyendo la iteración.

Permitiendo así, tener una creciente eficiencia de paralelización que opti-mizan en gran medida los recursos computacionales, ya que todas las matricesy vectores se generarían en la RAM de la tarjeta NVIDIA, véase figura (19).

Figura 19: La intercomunicación de equipos con memoria compartida se rea-liza mediante MPI y la intercomunicación entre Cores que comparten la mismamemoria se realiza con OpenMP, además las operaciones matriciales se le en-cargan a los numerosos Cores CUDA de las tarjetas NVIDIA.

De esta manera es posible adaptar el código para todos y cada uno de losmétodos desarrollados, de forma tal que sea reutilizable y que pueda usarse enproblemas en los que el número de grados de libertad sea grande, permitiendohacer uso de equipos de cómputo cada vez más asequibles y de menor costo, perocon una creciente eficiencia computacional que podrán competir en un futurocon los grandes equipos de cómputo de alto desempeño.

35En tránsito de datos entre la RAM de la computadora y la RAM de los CUDAs, no es tanrápido como se requiere. Esto genera una baja de rendimiento considerable, que en ciertosproblemas como los no lineales y con coeficientes variables es notorio.

[email protected] 113 Antonio Carrillo Ledesma, Et alii

Page 115: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

7 Análisis de Rendimiento y Observaciones parael método DVS

La uniformidad de las fórmulas presentadas en la sección (3.4.2) para los méto-dos de descomposición de dominio en el espacio de vectores derivados (DVS),nos han permitido implementar de forma eficiente dichos algoritmos en múlti-ples equipos secuenciales y paralelos, aprovechando el hecho que los algoritmosderivados son capaces de obtener la solución global por la resolución de proble-mas locales exclusivamente.

El grupo de ocho algoritmos desarrollados–de los cuales cuatro son precondi-cionados– a los que nos referiremos como los algoritmos DVS (véase [59], [61]),operan exclusivamente sobre los nodos primales y duales en la frontera interiory estos se implementan eficientemente mediante el uso de métodos ite-rativos –CGM para el caso simétrico o GMRES para el caso no simétrico– para resolverel sistema algebraico virtual asociado.

En esta sección, se mostrará –mediante los resultados de algunos experi-mentos numéricos conspicuos en Ciencias de la Tierra e Ingeniería– la eficienciadel esquema DVS (véase [62]), para ello; primero, se muestra el rendimiento enproblemas simétrico y no simétricos –en dos y tres dimensiones–; segundo,se muestra el rendimiento en problemas indefinidos; tercero, se muestra elrendimiento en problemas de Advección-Difusión; después, se muestra el análi-sis de rendimiento en equipos paralelos hasta con 1024 Cores y por último semuestra lo que se consideran como criterios integrales para evaluar métodos dedescomposición de dominio sin traslape y en especial al esquema DVS.

Para los experimentos numéricos reportados en esta sección, sólo se muestranlos resultados de los cuatro métodos precondicionados del esquema DVS; endonde el dominio Ω fue discretizado usando una malla estructurada uniforme.Y en todos los casos, se tomaron como nodos primales a los vértices de lossubdominios de la partición gruesa en dos dimensiones y a las aristas de lossubdominios de la partición gruesa para tres dimensiones. Además, la toleranciausada para concluir los métodos iterativos de resolución de sistemas lineal virtualasociado es en norma infinita.

7.1 Análisis de Rendimiento para Problemas Simétricos yno Simétricos

Para realizar el análisis de rendimiento, se usa la ecuación elíptica

−a∇2u+ b · ∇u+ cu = f (7.1)

con condiciones de frontera Dirichlet cero, donde a, c > 0 son constantes, mien-tras que b es un vector constante de dimensión n. El dominio Ω ⊂ Rn fuetomado con n = 2, 3 donde Ω es el cuadrado o cubo unitario según corresponda.

Las matrices generadas fueron obtenidas por discretización local en amboscasos –en dos y tres dimensiones– del problema con valores en la fronteradescrito anteriormente, donde a = 1. La elección b = (1, 1) y b = (1, 1, 1) con

[email protected] 114 Antonio Carrillo Ledesma, Et alii

Page 116: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

c = 0 generan matrices no simétricas, escogiendo c = 1 y b = 0 se obtienenmatrices simétricas las cuales son usadas con propósitos de comparación. Entodos los ejemplos se usa una tolerancia de 1e− 6.

Problemas en Dos Dimensiones En la primera tabla se muestra la des-composición usada, los grados de libertad asociados al sistema y el número devértices primales usados:

Ejemplo Partición Subdominios Grados Libertad Primales1 2× 2 y 2× 2 4 9 12 4× 4 y 4× 4 16 225 93 6× 6 y 6× 6 36 1225 254 8× 8 y 8× 8 64 3969 495 10× 10 y 10× 10 100 9801 816 12× 12 y 12× 12 144 20449 1217 14× 14 y 14× 14 196 38025 1698 16× 16 y 16× 16 256 65025 2259 18× 18 y 18× 18 324 104329 28910 20× 20 y 20× 20 400 159201 36111 22× 22 y 22× 22 484 233289 44112 24× 24 y 24× 24 576 330625 52913 26× 26 y 26× 26 676 455625 62514 28× 29 y 28× 28 784 613089 72915 30× 30 y 30× 30 900 808201 841

En la segunda tabla se muestra el número de iteraciones requeridas parasatisfacer la tolerancia solicitada al método CGM para el caso simétrico:

Ejemplo PRIMAL#1 PRIMAL#1 DUAL#1 DUAL#21 2 1 2 12 7 7 6 53 9 9 7 64 10 10 9 75 11 11 10 86 12 11 13 97 12 12 13 128 13 12 14 129 13 13 15 1310 13 13 15 1411 13 14 15 1612 14 14 15 1513 14 14 15 1514 14 14 15 1515 15 14 15 15

[email protected] 115 Antonio Carrillo Ledesma, Et alii

Page 117: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

En la tercer tabla se muestra el número de iteraciones requeridas para sa-tisfacer la tolerancia solicitada al método GMRES para el caso no simétrico:

Ejemplo PRIMAL#1 PRIMAL#2 DUAL#1 DUAL#21 2 1 2 12 8 6 6 63 10 8 8 84 12 10 9 95 13 12 9 106 14 12 10 107 15 13 11 118 15 14 11 119 16 14 11 1210 16 15 12 1211 17 16 12 1212 17 16 12 1313 17 16 13 1314 18 17 13 1315 18 17 13 13

Cuando la eficiencia de los algoritmos para matrices simétricas y no simétri-cas son comparadas, se observa que el número de iteraciones son del mismo ordeny comparables con los resultados para este mismo tipo de problemas (véase [57]).

Problemas en Tres Dimensiones En la primera tabla se muestra la des-composición usada, los grados de libertad asociados al sistema y el número devértices primales usados:

Ejemplo Partición Subdominios Grados Libertad Primales

1 2× 2× 2 y 2× 2× 2 8 27 72 3× 3× 3 y 3× 3× 3 27 512 803 4× 4× 4 y 4× 4× 4 64 3375 3514 5× 5× 5 y 5× 5× 5 125 13824 10245 6× 6× 6 y 6× 6× 6 216 42875 23756 7× 7× 7 y 7× 7× 7 343 110592 47527 8× 8× 8 y 8× 8× 8 512 250047 85758 9× 9× 9 y 9× 9× 9 729 512000 143369 10× 10× 10 y 10× 10× 10 1000 970299 22599

En la segunda tabla se muestra el número de iteraciones requeridas parasatisfacer la tolerancia solicitada al método CGM para el caso simétrico:

[email protected] 116 Antonio Carrillo Ledesma, Et alii

Page 118: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Ejemplo PRIMAL#1 PRIMAL#1 DUAL#1 DUAL#21 2 2 2 22 4 4 3 33 5 5 4 34 6 5 4 35 6 6 4 46 7 6 4 47 8 7 5 68 8 8 7 79 8 8 8 8

En la tercer tabla se muestra el número de iteraciones requeridas para sa-tisfacer la tolerancia solicitada al método GMRES para el caso no simétrico:

Ejemplo PRIMAL#1 PRIMAL#2 DUAL#1 DUAL#21 3 2 2 22 6 4 4 43 7 6 5 54 8 7 5 55 10 7 6 66 11 8 6 67 11 9 7 78 12 10 8 89 13 11 9 9

Cuando la eficiencia de los algoritmos para matrices simétricas y no simétri-cas son comparadas, se observa que el número de iteraciones son del mismo ordeny comparables con los resultados para este mismo tipo de problemas (véase [57]).

De estos resultados, se puede concluir que los métodos de descomposiciónde dominio en el espacio de vectores derivados desarrollados tanto para tratarproblemas simétricos y no simétricos en experimentos numéricos en dos y tres di-mensiones presentan una eficiencia del mismo orden (véase [57] y [19]). Además,el desarrollo de los códigos se simplifica, al poder tratar con problemas simétricosy no simétricos en un mismo código.

7.2 Análisis de Rendimiento para Problemas Indefinidos

Para los problemas indefinidos, como es en el caso de la ecuación de Helmholtz,interesa encontrar una malla –lo más gruesa posible– en la cual el problemasea soluble sin obtener un error considerable para valores grandes de k, quenormalmente generan inestabilidad numérica en los métodos de discretización,las cuales siempre se eliminan al refinar adecuadamente la malla, la ecuaciónutilizada es:

−∆u− k2u = f (7.2)

[email protected] 117 Antonio Carrillo Ledesma, Et alii

Page 119: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

en este caso, la discretización se realizo mediante el método de Diferencias Fini-tas centradas, los ejemplos se resolvieron mediante el método de GMRES conuna tolerancia de 10−6, con fines de ejemplificación, aquí mostramos los resul-tados para k = 10.

Para el primer ejemplo, la ecuación utilizada es en 2D; (x, y) ∈ [−1, 1] ×[−1, 1], donde u(x, y) = 0 sobre ∂Ω, los resultados obtenidos para las distintasdescomposiciones de dominio, se muestran en la siguiente tabla:

P a r t i c i ó n G r a d o s d e L ib e r t a d P r im a le s P R IM A L# 1 P R IM A L# 2 D U A L# 1 D U AL# 2

6×6 y 6×6 1225 25 8 8 8 71 0×1 0 y 1 0×1 0 9801 81 16 13 16 131 4×1 4 y 1 4×1 4 38025 169 18 15 18 151 8×1 8 y 1 8×1 8 104329 289 21 16 20 162 2×2 2 y 2 2×2 2 233289 441 20 17 21 162 6×2 6 y 2 6×2 6 455625 625 21 17 20 173 0×3 0 y 3 0×3 0 808201 841 26 18 21 17

Para el segundo ejemplo, la ecuación utilizada es en 3D; (x, y, z) ∈ [−1, 1]×[−1, 1]× [−1, 1], donde u(x, y, z) = 0 sobre ∂Ω, los resultados obtenidos para lasdistintas descomposiciones de dominio, se muestran en la siguiente tabla:

P a r t i c i ó n G r a d o s d e L ib e r t a d P r im a le s P R IM A L# 1 PR IM A L# 2 DU A L# 1 DU A L# 2

2×2×2 y 2×2×2 27 7 1 1 1 13×3×3 y 3×3×3 512 80 4 4 4 34×4×4 y 4×4×4 3375 351 5 4 4 35×5×5 y 5×5×5 13824 1024 6 6 5 56×6×6 y 6×6×6 42875 2375 7 7 6 57×7×7 y 7×7×7 110592 4752 7 7 6 58×8×8 y 8×8×8 250047 8575 8 8 6 59×9×9 y 9×9×9 512000 14336 8 8 6 6

1 0×1 0×1 0 y 1 0×1 0×1 0 970299 22599 9 6 6 6

De los resultados mostrados en esta sección, se puede concluir que el esquemade descomposición de dominio en el espacio de vectores derivados para problemasindefinidos presenta buenos resultados para distintos valores de k sin mostrarsignificativas inestabilidades numéricas en mallas burdas.

Además, haciendo los ajustes pertinentes al esquema de discretización dediferencias finitas –sin hacer cambio alguno al esquema DVS–, es posibleresolver la ecuación de Helmholtz tal que no se introduzca error de truncamiento,consecuentemente se puede calcular la solución numérica exacta para la ecuaciónde Helmholtz para cualquier número de onda sin usar una malla fina (véase [51]).

[email protected] 118 Antonio Carrillo Ledesma, Et alii

Page 120: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

7.3 Análisis de Rendimiento para Problemas de Advección-Difusión

En el caso de los problemas de Advección-Difusión interesa encontrar una malla–lo más gruesa posible– en la cual el problema sea soluble sin obtener un errorconsiderable al usar valores de viscosidad pequeños que normalmente generaninestabilidad numérica en los métodos de discretización, las cuales siempre seeliminan al refinar adecuadamente la malla.

Para el primer ejemplo, la ecuación utilizada es:

−ν∆u+ b · ∇u = 0 (7.3)

en (x, y) ∈ [0, 1]× [0, 1], donde

u(x, y) =

0, (x, y) ∈ ξ11, (x, y) ∈ ξ2

(7.4)

y b = (1, 3), como se muestra en la figura:

Figura 20: Dominio del problema

Figura 21: Solución del problema para ν = 0.01

En este caso, la discretización se realizo mediante el método de DiferenciasFinitas centradas y en la estabilización se usa el método de Difusión Artificial(véase [35]). Los ejemplos se resolvieron mediante el método de GMRES con

[email protected] 119 Antonio Carrillo Ledesma, Et alii

Page 121: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

una tolerancia de 10−6, en una malla global de 512 × 512 (261,121 grados delibertad), para distintos valores de la viscosidad ν (véase [29]). Los resultadosobtenidos para las distintas descomposiciones de dominio usando el métodoBDDC36 versus los algoritmos DVS, se muestran en la siguiente tabla:

Partición ν B D D C PR IM A L# 1 PR IM A L# 2 D UA L# 1 D UA L# 2

8×8 y 64×64 0.01 12 12 11 11 118×8 y 64×64 0.001 9 8 8 8 78×8 y 64×64 0.0001 9 7 7 7 78×8 y 64×64 0.00001 9 7 7 7 716×16 y 32×32 0.01 20 19 17 17 1816×16 y 32×32 0.001 17 14 13 14 1316×16 y 32×32 0.0001 15 13 13 13 1316×16 y 32×32 0.00001 16 13 13 13 1332×32 y 16×16 0.01 33 33 29 29 3132×32 y 16×16 0.001 30 26 25 25 2532×32 y 16×16 0.0001 28 25 25 25 2532×32 y 16×16 0.00001 29 25 25 25 2664×64 y 8×8 0.01 52 53 53 52 5964×64 y 8×8 0.001 53 46 46 46 4764×64 y 8×8 0.0001 53 45 45 47 4764×64 y 8×8 0.00001 54 45 45 47 48

Además se muestra el residual relativo de decaimiento para la malla gruesa16 × 16 y varias mallas finas en las cuales se ve que la mejor convergencia seobtiene cuando la malla fina se incrementa y la convergencia es lenta cuando elsubdominio tiene una pequeña cantidad de grados de libertad.

Figura 22: Residual relativo para la malla local de 16×16,en este caso b = (1, 3)y ν = 0.00001 que corresponde a un valor de Pe = 3.16e+ 5.

36Ejemplo realizado conjuntamente con Alberto Rosas Medina (véase [35]).

[email protected] 120 Antonio Carrillo Ledesma, Et alii

Page 122: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Para el segundo ejemplo, la ecuación a trabajar es

−ν∆u+ b · ∇u+ cu = 0 (7.5)

en (x, y) ∈ [−1, 1]× [0− 1, 1], donde

u(x, y) = 1

y = −1, 0 < x ≤ 1y = 1, 0 < x ≤ 1x = 1, −1 ≤ y ≤ 1

u(x, y) = 0, en cualquier otro caso (7.6)

el coeficiente advectivo esta dado por b = (y,−x) , el valor de c = 10−4.

En este caso, la discretización se realizo mediante el método de DiferenciasFinitas centradas y en la estabilización se usa el método de Difusión Artificial(véase [35]). Los ejemplos se resolvieron mediante el método de GMRES conuna tolerancia de 10−6, en una malla global de 32×32 (961 grados de libertad),para distintos valores de la viscosidad ν (véase [41]), cuya solución es mostradaen la gráfica:

Figura 23: Solución del problema para ν = 0.01

Los resultados obtenidos para las distintas descomposiciones de dominio u-sando el método FETI37 versus los algoritmos DVS, se muestran en la siguientetabla:37Ejemplo realizado conjuntamente con Alberto Rosas Medina (véase [35]).

[email protected] 121 Antonio Carrillo Ledesma, Et alii

Page 123: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Partición ν F ET I -D P PR IM A L# 1 D UA L# 1 PR IM A L# 2 D UA L# 2

4× 4 y 8× 8 1 11 9 8 8 84× 4 y 8× 8 0.01 12 11 8 10 94× 4 y 8× 8 0.001 23 20 16 20 164× 4 y 8× 8 0.0001 45 24 19 24 184× 4 y 8× 8 0.00001 69 24 19 24 188× 8 y 4× 4 1 10 9 8 8 88× 8 y 4× 4 0.01 11 16 9 10 138× 8 y 4× 4 0.001 27 24 21 24 228× 8 y 4× 4 0.0001 68 32 25 30 268× 8 y 4× 4 0.00001 111 33 24 29 2716× 16 y 2× 2 1 9 8 6 6 616× 16 y 2× 2 0.01 16 26 8 9 2116× 16 y 2× 2 0.001 63 47 23 28 4116× 16 y 2× 2 0.0001 176 48 29 34 4216× 16 y 2× 2 0.00001 200 48 30 34 42

Para el tercer ejemplo, la ecuación a trabajar es

−ν∆u+ b · ∇u+ cu = 0 (7.7)

en (x, y) ∈ [−1, 1]× [−1, 1], donde

u(x, y) = 1

x = −1, −1 < y ≤ 1y = 1, −1 ≤ x ≤ 1

u(x, y) = 0, y = −1,−1 ≤ x ≤ 1

u(x, y) =1 + y

2, x = 1,−1 ≤ y ≤ 1 (7.8)

el coeficiente advectivo esta dado por b =(1+y2 , 0

), el valor de c = 10−4.

En este caso, la discretización se realizo mediante el método de DiferenciasFinitas centradas y en la estabilización se usa el método de Difusión Artificial(véase [35]), Los ejemplos se resolvieron mediante el método de GMRES conuna to-lerancia de 10−6 en la norma infinita en una malla global de 32×32 (961grados de libertad), para distintos valores de la viscosidad ν (véase [41]) , cuyasolución es mostrada en la gráfica:

[email protected] 122 Antonio Carrillo Ledesma, Et alii

Page 124: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Figura 24: Solución del problema para ν = 0.01

Los resultados obtenidos para las distintas descomposiciones de dominio u-sando el método FETI-DP38 versus los algoritmos DVS, se muestran en la sigui-ente tabla:

Partición ν F E T I -D P PR IM AL# 1 D U AL# 1 PR IM AL# 2 D UA L# 2

4× 4 y 8× 8 1 13 10 10 8 84× 4 y 8× 8 0.01 13 11 10 8 74× 4 y 8× 8 0.001 9 8 9 6 64× 4 y 8× 8 0.0001 10 10 10 4 44× 4 y 8× 8 0.00001 11 9 10 3 44× 4 y 8× 8 0.000001 11 9 9 2 38× 8 y 4× 4 1 44 9 9 8 88× 8 y 4× 4 0.01 34 15 14 10 108× 8 y 4× 4 0.001 16 15 15 10 108× 8 y 4× 4 0.0001 16 27 28 9 98× 8 y 4× 4 0.00001 16 32 32 8 88× 8 y 4× 4 0.000001 16 25 25 6 5

16× 16 y 2× 2 1 159 8 8 6 516× 16 y 2× 2 0.01 98 22 21 9 816× 16 y 2× 2 0.001 38 37 37 18 1816× 16 y 2× 2 0.0001 33 48 48 23 2216× 16 y 2× 2 0.00001 46 42 41 20 2016× 16 y 2× 2 0.000001 51 37 36 15 15

De los resultados mostrados en esta sección, se puede concluir que el esquemade descomposición de dominio en el espacio de vectores derivados para problemasde Advección-Difusión presenta una eficiencia del mismo orden y en algunoscasos mejoran la mostrada por los métodos FETI y BDD (véase [29] y [41]).

38Ejemplo realizado conjuntamente con Alberto Rosas Medina (véase [35]).

[email protected] 123 Antonio Carrillo Ledesma, Et alii

Page 125: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

7.4 Análisis de Rendimiento para Sistemas de Ecuaciones

En esta sección se muestra como usar el esquema DVS para resolver proble-mas con condiciones de frontera Dirichlet donde los desplazamientos son cerosobre la frontera del cuerpo elástico que ocupa el dominio Ω del espacio físico,donde sobre cada subdominio Ωi que forma la partición gruesa del dominio Ωes resuelto el problema local usando el Método de Diferencias Finitas.

En el caso de sistemas de ecuaciones, se resolvió39 un sistema de ecuacionesdiferenciales parciales en tres dimensiones que corresponde a la ecuación deelasticidad lineal

(λ+ µ)∇∇ · u+ µ∆u = fΩ, en Ω (7.9)

la cual es sujeta a las condiciones de frontera Dirichlet

u = 0, en ∂Ω (7.10)

el dominio Ω para los experimentos numéricos es un cubo unitario homogéneoisotrópico lineal elástico. En todos nuestros experimentos los nodos primalesfueron localizados en las aristas de los subdominios de la partición gruesa, locual es suficiente para que la matriz At no sea singular.

Considerando λ y µ iguales a uno, La solución analítica de este problema seescribe como

u = (sinπx sinπy sinπz, sinπx sinπy sinπz) . (7.11)

En este caso el operador es simétrico y positivo definido, por ello se usael método iterativo de Gradiente Conjugado para resolver el sistema lineal deecuaciones que se genera en el esquema DVS, con una tolerancia de 10−7 (véase[63]). Los resultados obtenidos para las distintas descomposiciones de dominiousando el cluster Olintlali se muestran en la siguiente tabla:

Partición S u b d om in io s D O F P R IM A L# 1 D U AL# 1 P R IM AL# 2 D U AL# 2

5×5×5 y 5×5×5 125 41472 8 7 9 96×6×6 y 6×6×6 216 128625 8 8 10 107×7×7 y 7×7×7 343 331776 8 8 11 118×8×8 y 8×8×8 512 750141 8 8 12 12

Nótese que, el código desarrollado y usado para problemas escalares queoriginalmente se desarrollo para resolver una sola ecuación usando en la dis-cretización al método de Diferencias Finitas, fue extendido para resolver pro-blemas con el método de Elemento Finito para resolver sistemas de ecuaciones.

39Ejemplo realizado conjuntamente con Iván Contreras Trejo (véase [63]).

[email protected] 124 Antonio Carrillo Ledesma, Et alii

Page 126: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

7.5 Análisis de Rendimiento en Equipos Paralelos

Para conocer el análisis de rendimiento en equipos paralelos de los métodos de-sarrollados de descomposición de dominio en el espacio de vectores derivados, serealizaron varias pruebas con la finalidad de conocer la eficiencia y escalabilidadde los códigos y por ende de los métodos en distintos equipos paralelos a los quese tuvo acceso, estos incluyen equipos con 8, 22, 104 y 1024 Cores.

Primeramente, es menester fundamental el encontrar la mejor descomposi-ción de dominio para el problema a trabajar al usar la implementación secuencialy paralela acorde al equipo del que se disponga en aras de obtener la más altaeficiencia posible, después cuando el caso lo permite, se muestran las distintasmétricas utilizables y sus limitaciones al aplicarlas en problemas de descomposi-ciones finas; por último se muestra la escalabilidad del esquema DVS usandohasta 1024 Cores.

7.5.1 Selección Óptima de una Descomposición del Dominio

Para comenzar con la selección óptima de la descomposición del dominio Ω, setoma el problema dado por la Ec.(6.1) como caso particular de la Ec.(7.1) endos dimensiones con una descomposición fina de 1024×1024 nodos –1, 048, 576grados de libertad– del dominio Ω, donde por ejemplo se toma sin pérdida degeneralidad el algoritmo PRIMAL#1, calculado los tiempos de ejecución en loscuales se usa de uno a ocho Cores de la PC Antipolis y probando las diferentesdescomposiciones40 del dominio –que van desde 2×2 y 512×512 hasta 512×512y 2× 2– se muestran en la siguiente tabla:

1 C o r e 2 C o r e s 3 C o r e s 4 C o re s 5 C o r e s 6 C o re s 7 C o r e s 8 C o re s

P a r t i c i ó n T iem p o T iem p o T iem p o T iem p o T iem p o T iem p o T iem p o T iem p o

2 x 2 y 5 1 2 x 5 1 2 16465 10659 7207 7105 46414 x 4 y 2 5 6 x 2 5 6 2251 5063 2252 2103 1643 1233 1068 9478 x 8 y 1 2 8 x 1 2 8 855 885 482 395 314 311 283 2721 6 x 1 6 y 6 4 x 6 4 321 348 190 149 121 125 118 1173 2 x 3 2 y 3 2 x 3 2 26 39 26 24 23 21 21 216 4 x 6 4 y 1 6 x 1 6 205 595 485 477 481 461 469 4691 2 8 x 1 2 8 y 8 x 8 1026 5453 5352 5431 5633 5843 5843 59032 5 6 x 2 5 6 y 4 x 4 8544 26167 25892 25902 25939 25950 25969 260035 1 2 x 5 1 2 y 2 x 2 34845 64230 63293 63308 63389 63475 63502 63693

Por ejemplo, suponiendo que se quiere resolver una descomposición de 2×2 y512×512 y usar la menor cantidad de Cores posible, entonces se tienen algunas40Para las corridas secuenciales usando métodos de descomposición de dominio, el mejor

tiempo de ejecución se obtuvo en una descomposición de 32×32 y 32×32 en 26 segundos –eltiempo de ejecución para el programa secuencial de elemento finito que resuelve el sistemalineal algebraico asociado mediante factorización Cholesky fue de 111 segundos–. Para lascorridas en paralelo se obtuvo el mejor tiempo de ejecución en una descomposición de 32× 32y 32× 32 con un tiempo de 21 segundos usando 6 Cores –uno para el maestro y 5 para losesclavos–.

[email protected] 125 Antonio Carrillo Ledesma, Et alii

Page 127: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

opciones para mantener un buen balanceo de cargas –en este caso se tienen 4subdominios– usando 3 ó 5 Cores:

Figura 25: Métricas para la descomposición 2× 2 y 512× 512

• Si se desea usar 1 Core para el nodo maestro y 2 Cores para los nodosesclavos –dos subdominios por Core–, entonces el factor de aceleración41

esS(3) = T (1)/T (3) = 16465/7207 = 2.28,

la eficiencia es

E(3) = T (1)/ (3 ∗ T (3)) = 16465/(3 ∗ 7207) = 0.761,

y la fracción serial es

F (3) =

1S(3) − 1

3

1− 13

= 0.158.

41El factor de aceleración S es tal que 1 ≤ S(n) ≤ n, la eficiencia E es tal que 1/n ≤ E(n) ≤1 y la fracción serial F es tal que 0 ≤ F (n) ≤ 1.Se considera que en el caso ideal, el factor de aceleración debería aumentar linealmente

al aumentar el número de procesadores S(p) ≃ p; por su parte la eficiencia debería de sercercana a la unidad cuando el hardware se está usando de forma eficiente y en caso contrariose desaprovecha este; por último la fracción serial debería tender a cero y cualquier aumentoindica una sobrecarga en los procesos de comunicación.

[email protected] 126 Antonio Carrillo Ledesma, Et alii

Page 128: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

• Si se desea usar 1 Core para el nodo maestro y 4 Cores para los nodosesclavos –un subdominio por Core–, entonces el factor de aceleración es

S(5) = T (1)/T (5) = 16465/4641 = 3.548,

la eficiencia es

E(5) = T (1)/ (5 ∗ T (5)) = 16465/(5 ∗ 4641) = 0.709

y la fracción serial es

F (5) =

1S(5) − 1

5

1− 15

= 0.102.

En otro ejemplo, suponiendo que se quiere resolver una descomposición de32× 32 y 32× 32 y usar la menor cantidad de Cores posible, entonces se tienenalgunas opciones para mantener un buen balanceo de cargas –en este caso setienen 1024 subdominios– usando 3 ó 5 Cores:

Figura 26: Métricas para la descomposición 32× 32 y 32× 32

• Si se desea usar 1 Core para el nodo maestro y 2 Cores para los nodosesclavos –512 subdominios por Core–, entonces el factor de aceleraciónes

S(3) = T (1)/T (3) = 26/26 = 1,

[email protected] 127 Antonio Carrillo Ledesma, Et alii

Page 129: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

la eficiencia es

E(3) = T (1)/ (3 ∗ T (3)) = 26/(3 ∗ 26) = 0.333

y la fracción serial es

F (3) =

1S(3) − 1

3

1− 13

= 1.

• Si se desea usar 1 Core para el nodo maestro y 4 Cores para los nodosesclavos –256 subdominios por Core–, entonces el factor de aceleraciónes

S(5) = T (1)/T (5) = 26/23 = 1.130,

la eficiencia es

E(5) = T (1)/ (5 ∗ T (5)) = 26/(5 ∗ 23) = 0.377,

y la fracción serial es

F (5) =

1S(5) − 1

5

1− 15

= 0.856.

Nótese que la descomposición usada en el primer ejemplo dista mucho deser la óptima42 , ya que la descomposición de 32 × 32 y 32 × 32 usada en elsegundo ejemplo genera el mejor tiempo de ejecución tanto en secuencial como enparalelo, pero las métricas no reflejan esta mejora, aunque el tiempo de ejecuciónes mínimo. Por ello es necesario siempre hacer corridas de prueba buscandola descomposición que presente el menor tiempo de ejecución posible para elequipo paralelo con el que se cuente. Estas pruebas dependen fuertemente dela capacidad computacional de cada Core y de la red usada para interconectarlos Cores que forman parte del equipo paralelo.

Observación 4 Nótese que esta forma de medir la eficiencia, el factor de ace-leración y la fracción serial tiene un detalle fino, ya que el tiempo de ejecucióntomado en un procesador –para este caso es de 16465 segundos en la descom-posición 2× 2 y 512× 512– dista mucho de ser el mejor tiempo posible para elproblema global de 1024 nodos –26 segundos–. Esto puede ser una limitantepara obtener valores adecuados en las métricas; y medir la eficiencia al usarequipo paralelo cuando se trabaja con la resolución de dominios en los cuales serealiza una descomposición fina; particularmente cuando las descomposicionesson adecuadas para cientos de Cores, pues las pruebas en un Core o en pocosCores no son posibles de realizar por el consumo excesivo de recursos computa-cionales y por que no son conmensurables con las corridas secuenciales.42En la descomposición de 2 × 2 y 512 × 512 el tiempo de ejecución secuencial es 16,465

seg., en paralelo usando 3 Cores es de 7,207 seg. y en 5 Cores es de 4,641 seg. Mientras quepara la descomposición de 32× 32 y 32× 32, el tiempo de ejecución secuencial es de 26 seg.,en paralelo usando 3 Cores es de 26 seg. y en 5 Cores es de 23 seg.

[email protected] 128 Antonio Carrillo Ledesma, Et alii

Page 130: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Además, de los datos de las corridas mostradas en la tabla, es notorio elefecto del mal balanceo de carga, nótese que:

• Para la malla de 32×32 y 32×32 el mejor tiempo de ejecución se obtiene en6 Cores –21 segundos– y al aumentar el número de Cores en la corrida,no hay disminución del tiempo de cálculo.

• Para la malla de 512×512 y 2×2 el aumento en el número de procesadoressólo incide en un aumento en el tiempo de ejecución.

• En particular, para la malla de 2 × 2 y 512 × 512 al usar 3 Cores –sólodos son usados realmente para el cálculo ya que el tercer Core se usa parala asignación de tareas y el control de los nodos esclavos– el factor deaceleración 2.28 es el esperado para el esquema Maestro-Esclavo.

7.5.2 Análisis de Rendimiento Usando Métricas

En esta sección se muestra mediante particiones relativamente pequeñas deldominio, el uso de las métricas –aceleración, eficiencias y fracción serial–en las cuales es posible obtener una alta eficiencia computacional cuando seproporciona una descomposición del dominio adecuada para el equipo paralelocon el que se cuente.

Haciendo uso del Cluster Pohualli de 104 Cores, a continuación se presentanvarias tablas en las cuales se muestran las métricas para diferentes descomposi-ciones del dominio Ω.

1) Para una descomposición de 4 × 4 y 150 × 150 –360, 000 grados delibertad– se obtiene

Cores Tiempo Aceleración Eficiencia Frac. Ser.1 2673 146 1.82 0.60 0.325 85 3.14 0.62 0.149 56 4.76 0.52 0.1117 33 8.09 0.47 0.06

2) Para una descomposición de 4 × 4 y 200 × 200 –640, 000 grados delibertad– se obtiene

Cores Tiempo Aceleración Eficiencia Frac. Ser.1 10823 391 2.76 0.92 0.045 216 5.0 1.00 0.009 146 7.41 0.82 0.0217 82 13.19 0.77 0.01

3) Para una descomposición de 4 × 4 y 250 × 250 –1, 000, 000 grados delibertad– se obtiene

[email protected] 129 Antonio Carrillo Ledesma, Et alii

Page 131: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Cores Tiempo Aceleración Eficiencia Frac. Ser.1 26283 946 2.77 0.92 0.0395 539 4.87 0.97 0.0069 329 7.98 0.88 0.01517 184 14.20 0.83 0.012

4) Para una descomposición de 4 × 4 y 300 × 300 –1, 440, 000 grados delibertad– se obtiene

Cores Tiempo Aceleración Eficiencia Frac. Ser.1 52953 2538 2.08 0.69 0.2185 1391 3.80 0.76 0.0789 804 6.58 0.73 0.04517 441 12.00 0.70 0.025

De estas tablas se desprende que seleccionando la descomposición adecuadase pueden tener excelentes resultados en la eficiencia como es el caso de la des-composición 4×4 y 200×200. Además se muestra una gama de otras eficienciassegún el número de procesadores usado y la descomposión seleccionada. Nóteseque en todos los casos la fracción serial disminuye sustancialmente con el au-mento del número de procesadores.

Otros ejemplos interesantes en los cuales se muestra el efecto de mandardescomposiciones no adecuadas y que se reflejan en una baja eficiencia com-putacional sin importar el aumento del número de procesadores, pero en todoslos casos el tiempo de ejecución siempre disminuye:

i) Para una descomposición de 8 × 8 y 250 × 250 –4, 000, 000 grados delibertad– en el Cluster Kanbalam se obtiene

Cores Tiempo Aceleración Eficiencia Frac. Ser.1 113663 5541 2.05 0.68 0.235 3011 3.77 0.75 0.089 1855 6.12 0.68 0.0517 1031 11.02 0.64 0.0333 595 19.10 0.57 0.0265 375 30.30 0.46 0.01

ii) Para una descomposición de 10 × 9 y 250 × 250 –5, 625, 000 grados delibertad– en el Cluster Pohualli se obtiene

Cores Tiempo Aceleración Eficiencia Frac. Ser.1 193876 4777 4.05 0.67 0.0911 2702 7.17 0.65 0.0546 801 24.20 0.52 0.0291 509 38.08 0.41 0.01

[email protected] 130 Antonio Carrillo Ledesma, Et alii

Page 132: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

De todos estos ejemplos se desprende que buscando la adecuada descomposi-ción es posible encontrar eficiencias altas para el esquema DVS, pero siempre setiene que tener en cuenta el buscar el menor tiempo de ejecución –véase secciónanterior– antes que una alta eficiencia con un mayor tiempo de ejecución.

Por otro lado, pese a que Kanbalam es más eficiente43 que los otros Clus-ters a los que se tuvo acceso –en particular Pohualli–, es posible encontraruna descomposición del dominio que mejore el tiempo de ejecución, aún enequipos con recursos inferiores, para ello es necesario aprovechar las caracterís-ticas propias del Hardware del Cluster haciendo una adecuada selección de ladescomposición del dominio. Para mostrar esto, se toma una descomposiciónde 32 × 32 y 150 × 150 –23, 040, 000 grados de libertad– en ambos Clusterscon los siguientes resultados:

Cores Pohualli Kanbalam16 9158 seg ND32 5178 seg 5937 seg64 3647 seg 4326 seg100 2661 seg128 2818 seg

Como se muestra en la tabla, en todos los casos el Cluster Pohualli usandocomo máximo 100 Cores obtiene un tiempo de cálculo inferior al que requiereKanbalam usando a lo más los 128 Cores.

Haciendo uso de las métricas de aceleración y eficiencia relativa44 se tieneque para el Cluster Kanbalam S32128 = 5937/2818 = 2.10 donde lo esperadosería S32128 = 32/128 = 4.00, para el caso de la eficiencia E32128 = (32/128) ∗(5937/2818) = 0.52.

En el caso del Cluster Pohualli se tiene que S16100 = 9158/2661 = 3.44 dondelo esperado sería S16100 = 16/100 = 6.35, para el caso de la eficiencia E16100 =(16/100) ∗ (9158/2661) = 0.55.

Haciendo uso del mismo número de Cores base para Pohualli que para Kan-balam, se tiene que S32100 = 5178/2661 = 1.94 donde lo esperado sería S16100 =32/100 = 3.12, para el caso de la eficiencia E16100 = (32/100)∗(5178/2661) = 0.62;

De todo lo anterior, se desprende que el Cluster Pohualli obtiene valoresde una aceleración y eficiencias relativas ligeramente mejores que el ClusterKanbalam, pero esto no se refleja en la disminución de casi 6% del tiempo deejecución y del uso de 28 Cores menos.

43El Cluster Kanbalam esta formado de procesadores AMD Opteron a 2.6 GHtz de 64 bits,cada 4 Cores con 8 GB de RAM interconectados con un switch de 10 Gbps de baja latencia.El Cluster Pohualli esta formado de procesadores Intel Xeon a 2.33 GHtz de 64 bits, cada

8 Cores cuentan con 32 GB de RAM interconectados con un switch de 1 Gbps.44Aceleración relativa es Sp

p =Tp′

Tppara p ≥ p′, en la cual se espera que Sp

p ≃ pp′y

eficiencia relativa es Ep′

p = p′

pSp

p = p′

p

Tp′

Tp.

[email protected] 131 Antonio Carrillo Ledesma, Et alii

Page 133: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Además, el costo computacional45 Cp = P ∗ Tp, que para el caso del clusterKanbalam es C128 = 360, 704 y en Pohualli es C100 = 266, 100 que representauna disminución de 27%; además de un factor muy importante, el Cluster Po-hualli tuvo un costo monetario mucho menor con respecto del Cluster Kanbalam.

7.5.3 Escalabilidad del Esquema DVS

Por último, se realizaron pruebas46 con el Cluster Kanbalam, mediante unapetición especial para tener acceso a los 1024 Cores del Cluster, a la cual elComité Técnico del mismo dio acceso después de concluir un reparación mayordel equipo que obligo a apagar el Cluster, este acceso sólo se dio por unas horasy de forma exclusiva, lo cual agradezco enormemente, ya que el Cluster tieneuna gran demanda dentro y fuera de la UNAM.

Las pruebas realizadas se hicieron usando desde 32 hasta 1024 Cores, paralas descomposiciones de 31×33 y 150×150–23, 017, 500 grados de libertad–,31× 33 y 200× 200–40, 920, 000 grados de libertad– y 31× 33 y 250× 250–63, 937, 500 grados de libertad– se obtienen los siguientes tiempos de ejecución.

CoresSubdominio 32 64 128 256 512 1024

31× 33 y 150× 150 7315 s 4016 s 2619 s 1941 s 1541 s 1298 s31× 33 y 200× 200 ND 16037 s 4916 s 3166 s 2688 s 2295 s31× 33 y 250× 250 ND ND 26587 s 8716 s 6388 s ND

En donde si usamos las métricas de aceleración y eficiencia relativas obte-nemos los siguientes resultados

Subdominio AceleraciónAceleraciónesperada

Eficiencia

31× 33 y 150× 150 S32512 = 4.7 S32512 = 32 E32512 = 0.231× 33 y 200× 200 S64512 = 5.9 S32512 = 8 E64512 = 0.731× 33 y 250× 250 S128512 = 4 S32512 = 4 E128

512 = 1.0

De esta última tabla –E128512 = 1.0 para la descomposición 31 × 33 y 250 ×250–, se desprende que los algoritmos desarrollados son altamente escalablesen equipos paralelos, ya que es posible obtener una alta eficiencia al encontrardescomposiciones adecuadas al Hardware. Y que pueden usarse para resolverproblemas que involucren una gran cantidad de grados de libertad.

45El costo o trabajo de resolver un problema en paralelo es el producto del tiempo de cálculoen paralelo Tp por el número de procesadores usado P y se representa por Cp = P ∗ Tp.46No todas las pruebas que se plantearon fueron posibles de realizar, en algunos casos la

limitante fue las características físicas de los equipos computacionales, en otros es el accesolimitado y de corta duración –para el uso de 256, 512 y 1024 Cores en el Cluster Kanbalamsólo se dispuso de unas cuantas horas de cómputo y en las cuales, varios Cores del Clus-ter presentaron fallas de hardware por lo que algunas corridas no se concluyeron de formasatisfactoria–.

[email protected] 132 Antonio Carrillo Ledesma, Et alii

Page 134: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

7.6 Criterios Integrales para Evaluar el Esquema DVS

En el desarrollo e implementación numérica de los distintos métodos de des-composición de dominio, es necesario medir de alguna forma la eficiencia de losdiversos métodos entre sí, algunos criterios comúnmente usados son:

1. Dado un dominio Ω y una descomposición fija, usar el número de itera-ciones como criterio de eficiencia.

2. Dado un dominio Ω y haciendo refinamientos de la partición, usar elnúmero de iteraciones como criterio de eficiencia.

3. Dado un dominio Ω y una descomposición del mismo, buscar aquella par-tición en la que el tiempo de ejecución sea mínimo al variar las particionesposibles.

En principio, estas formas de medir la eficiencia de los diversos métodos nodeberían de ser excluyentes entre sí, por el contrario, juntas dan un criteriorobusto de la eficiencia de un método de descomposición de dominio para unproblema en particular implementado en un equipo de cómputo en las cualesciertas descomposiciones son posibles –ya sea por limitaciones fenomenológicaso por cuestiones computacionales–.

Para mostrar las implicaciones de las distintas formas de medir la eficiencia,se hace un análisis de las diversas opciones para cada uno de los casos.

1.- Dado un dominio Ω y una descomposición fija, usar el númerode iteraciones como criterio de eficiencia En este caso, se usa la Ec.(7.1)como simétrica, tomando una descomposición del dominio Ω en tres dimensionesen la cual se toma una malla gruesa10×10×10 que genera 10, 000 subdominiosy en la que cada subdominio es descompuesto en 10 × 10 × 10 elementos, losgrados de libertad asociados al sistema son 970, 299, donde el número de vérticesprimales usados es de 22, 599. Obteniendo los siguientes resultados:

PRIMAL#1 PRIMAL#2 DUAL#1 DUAL#2Iteraciones: 8 8 8 8

Aquí, lo único que se observa, es que todos los métodos obtienen la mismaeficiencia global en cuanto al número de iteraciones, pero nada dice de los tiem-pos involucrados en la ejecución. Si ahora se toma en cuenta los tiempos deejecución en un procesador se obtiene:

PRIMAL#1 PRIMAL#2 DUAL#1 DUAL#2Tiempo: 1,380s 1,387s 1,490s 1,520s

Y si se usan varios procesadores de un Cluster –en este ejemplo se usó elCluster Pohualli– se obtiene:

[email protected] 133 Antonio Carrillo Ledesma, Et alii

Page 135: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Cores PRIMAL#1 PRIMAL#2 DUAL#1 DUAL#23 966s 965s 930s 953s11 184s 186s 175s 181s101 28s 29s 27s 27s

Esta forma integral de medir la eficiencia, da una idea más realista de laeficiencia de los métodos, pero nuevamente hay que tomar en cuenta que lostiempos de ejecución dependen directamente de la arquitectura de cómputo enla que se realicen las pruebas, en especial del balanceo de la carga de trabajo,de la infraestructura de red que interconecten los nodos del Cluster y si estosson Cores virtuales o reales.

2.- Dado un dominio Ω y haciendo refinamientos de la partición, usarel número de iteraciones como criterio de eficiencia En este caso, seusa la Ec.(7.1) como simétrica, se toma una descomposición del dominio Ω endos dimensiones, en la primer tabla se muestra la descomposición usada, elnúmero de subdominios, los grados de libertad asociados al sistema y el númerode vértices primales usados:

Ejemplo Partición Subdominios Grados Libertad Primales1 22× 22 y 22× 22 484 233,289 4412 24× 24 y 24× 24 576 330,625 5293 26× 26 y 26× 26 676 455,625 6254 28× 29 y 28× 28 784 613,089 7295 30× 30 y 30× 30 900 808,201 841

En la segunda tabla se muestra el número de iteraciones requeridas paraalcanzar la tolerancia solicitada al método:

Ejemplo PRIMAL#1 PRIMAL#2 DUAL#1 DUAL#21 13 14 15 162 14 14 15 153 14 14 15 154 14 14 15 155 15 14 15 15

En la siguiente tabla se muestra el tiempo de ejecución en un procesadorpara concluir las iteraciones:

Ejemplo PRIMAL#1 PRIMAL#2 DUAL#1 DUAL#21 8s 7s 14s 27s2 13s 13s 21s 40s3 19s 19s 33s 61s4 25s 27s 44s 85s5 36s 38s 61s 116s

En la última tabla se muestra el tiempo de ejecución en 4 procesadores paraconcluir las iteraciones:

[email protected] 134 Antonio Carrillo Ledesma, Et alii

Page 136: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Ejemplo PRIMAL#1 PRIMAL#2 DUAL#1 DUAL#21 2.9s 2.95s 2.93s 2.99s2 4.80s 4.89s 4.81s 4.85s3 7.2s 7.4s 7.3s 7.4s4 8.92s 8.95s 8.91s 8.93s5 13.02s 13.05s 13.02s 13.3s

.

Nuevamente, esta forma integral de medir la eficiencia, da una idea másrealista de la eficiencia de los métodos, pero nuevamente hay que tomar encuenta que los tiempos de ejecución dependen directamente de la arquitecturade cómputo en la que se realicen las pruebas, en especial del balanceo de lacarga de trabajo, de la infraestructura de red que interconecten los nodos delCluster y si estos son Cores virtuales o reales.

3.- Dado un dominio Ω y una descomposición del mismo, buscar aque-lla partición en la que el tiempo de ejecución sea mínimo al variar lasparticiones posibles Por último, supóngase que deseo resolver la Ec.(6.1)con un dominio Ω mediante una discretización de 1024×1024 nodos (1, 048, 576grados de libertad) mediante el algoritmo NN-NP-PRIMAL#1 dado por laEc.(D.21), de manera inmediata surgen las siguientes preguntas: ¿cuáles sonlas posibles descomposiciones validas? y ¿en cuántos procesadores se puedenresolver cada descomposición?. Para este ejemplo en particular, sin hacer latabla exhaustiva, se tiene

Partición Subdominios Procesadores2x2 y 512x512 4 2,3,54x4 y 256x256 16 2,3,5,9,178x8 y 128x128 64 2,3,5,9,17,33,6516x16 y 64x64 256 2,3,5,9,17,33,65,129,25732x32 y 32x32 1024 2,3,5,9,17,33,65,129,..,102564x64 y 16x16 4096 2,3,5,9,17,33,65,129,...,4097128x128 y 8x8 16384 2,3,5,9,17,33,65,129,...,16385256x256 y 4x4 65536 2,3,5,9,17,33,65,129,...,65537512x512 y 2x2 262144 2,3,5,9,17,33,65,129,...,262145

De esta tabla es posible seleccionar las descomposiciones que se adecuen a lascaracterísticas del equipo paralelo con que se cuente, para evaluar el tiempo deejecución de este ejemplo use la PC Antipolis, obteniendo resultados mostradosen la tabla de la sección (7.5.1).

De estos resultados, se desprende que, dependiendo del tamaño de la mallagruesa –número de subdominios a trabajar– y de la malla fina, es siempreposible encontrar una descomposición de dominio en que el tiempo de cálculosea mínimo, tanto al usar un solo Core –programa secuencial 26 segundos–,como al usar múltiples Cores interconectados mediante la biblioteca de paso demensajes MPI –el tiempo mínimo se obtuvo usando 6 Cores en 21 segundos–,pero es también notorio el efecto que genera el mal balanceo de carga, el cual

[email protected] 135 Antonio Carrillo Ledesma, Et alii

Page 137: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

se refleja en que no disminuye el tiempo de ejecución al aumentar el número deprocesadores y en algunos casos el tiempo aumenta conforme se agregan másCores.

Nótese que conforme la partición en los subdominios se hace más fina, se in-crementa notablemente el tiempo de cálculo necesario para resolver los sistemaslineales asociados a los subdominios, en particular en la resolución del sistema

lineal asociado a(AΠΠ

)−1, si el número de nodos por subdominio es grande

puede que exceda la cantidad de memoria que tiene a su disposición el Core ypor el contrario, un número pequeño de nodos generarían una infrautilizacióndel poder computacional de los nodos esclavos.

Por otro lado, el refinamiento de la malla gruesa, involucra un aumentoconsiderable del número de objetos subdominio en los nodos esclavos, con losque el nodo maestro tendrá comunicación, incrementando la granularidad de lascomunicaciones, con la consecuente degradación en la eficiencia.

De todo lo anterior se pueden hacer algunas observaciones impor-tantes Para una evaluación objetiva e integra de la eficiencia de los diversosmétodos de descomposición de dominio –en particular de los desarrollados– ysu implementación computacional en una arquitectura de cómputo particular,es necesario tomar en cuanta los siguientes factores:

• Número de iteraciones para una descomposición dada.

• Número de iteraciones para diferentes particiones de una descomposicióndada.

• Elección de la partición que genere el menor tiempo de ejecución para unproblema en una arquitectura de cómputo específica.

Estas formas de medir la eficiencias en su conjunto, dan una idea realistade la eficiencia de los métodos, pero hay que tomar en cuenta que los tiemposde ejecución dependen directamente de la arquitectura de cómputo en la quese realicen las pruebas, en especial del balanceo de la carga de trabajo, de lainfraestructura de red que interconecten los nodos del Cluster y si estos sonCores virtuales o reales.

7.7 Observaciones

A lo largo del presente trabajo se ha mostrado que al aplicar métodos de descom-posición de dominio DDM y DVS conjuntamente con métodos de paralelizaciónes posible resolver una gama más amplia de problemas de ciencias e ingenieríaque mediante las técnicas tradicionales del tipo Diferencias Finitas.

La resolución del sistema algebraico asociado es más eficiente cuando sehace uso de precondicionadores a priori conjuntamente con el método de gradi-ente conjugado o Residual mínimo generalizado al implantar la solución por elmétodo de descomposición de dominio.

[email protected] 136 Antonio Carrillo Ledesma, Et alii

Page 138: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Y haciendo uso del análisis de rendimiento, es posible encontrar la manera debalancear las cargas de trabajo que son generadas por las múltiples discretiza-ciones que pueden obtenerse para la resolución de un problema particular, mi-nimizando en la medida de lo posible el tiempo de ejecución y adaptándolo a laarquitectura paralela disponible, esto es especialmente útil cuando el sistema atrabajar es de tamaño considerable.

Adicionalmente se vieron los alcances y limitaciones de esta metodología,permitiendo tener cotas tanto para conocer las diversas descomposiciones quees posible generar para un número de procesadores fijo, como para conocer elnúmero de procesadores necesarios en la resolución de un problema particular.

Así, podemos afirmar de manera categórica que conjuntando los métodos dedescomposición de dominio, la programación orientada a objetos y esquemas deparalelización que usan el paso de mensajes, es posible construir aplicaciones quecoadyuven a la solución de problemas en dos o más dimensiones concomitantesen ciencia e ingeniería, los cuales pueden ser de tamaño considerable.

Las aplicaciones desarrolladas bajo este paradigma serán eficientes, flexi-bles y escalables; a la vez que son abiertas a nuevas tecnologías y desarrolloscomputacionales y al ser implantados en clusters, permiten una codificación or-denada y robusta, dando con ello una alta eficiencia en la adaptación del códigoa nuevos requerimientos, como en la ejecución del mismo.

De forma tal que esta metodología permite tener a disposición de quien lorequiera, una gama de herramientas flexibles y escalables para coadyuvar deforma eficiente y adaptable a la solución de problemas en medios continuos deforma sistemática

[email protected] 137 Antonio Carrillo Ledesma, Et alii

Page 139: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A Expansión en Series de Taylor

Sea f(x) una función definida en (a, b) que tiene hasta la k−ésima derivada,entonces la expansión de f(x) usando series de Taylor alrededor del punto xi

contenido en el intervalo (a, b) será

f(x) = f(xi)+(x− xi)

1!

df

dx

∣∣∣∣xi

+(x− xi)

2

2!

d2f

dx2

∣∣∣∣xi

+...+(x− xi)

k

k!

dkf

dxk

∣∣∣∣ε

(A.1)

donde ε = xi + θ(x− xi) y 0 < θ < 1.

A.1 Aproximación de la Primera Derivada

Existen distintas formas de generar la aproximación a la primera derivada, nosinteresa una que nos de la mejor precisión posible con el menor esfuerzo com-putacional.

A.1.1 Diferencias Progresivas

Considerando la Ec.(A.1) con k = 2 y x = xi +∆x, tenemos

f(xi +∆x) = f(xi) +∆xdf

dx

∣∣∣∣xi

+∆x2

2!

d2f

dx2

∣∣∣∣εp

(A.2)

de esta ecuación obtenemos la siguiente expresión para la aproximación de laprimera derivada

df

dx

∣∣∣∣xi

=f(xi +∆x)− f(xi)

∆x− ∆x

2!

d2f

dx2

∣∣∣∣εp

(A.3)

en este caso la aproximación de f ′(x) mediante diferencias progresivas es deprimer orden, es decir O(∆x). Siendo Op(∆x) el error local de truncamiento,definido como

Op(∆x) = −∆x

2!

d2f

dx2

∣∣∣∣εp

. (A.4)

Es común escribir la expresión anterior como

df

dx

∣∣∣∣xi

=f(xi +∆x)− f(xi)

∆x−Op(∆x) (A.5)

o

f ′(xi) =fi+1 − fi

∆x(A.6)

para simplificar la notación.

[email protected] 138 Antonio Carrillo Ledesma, Et alii

Page 140: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A.1.2 Diferencias Regresivas

Considerando la Ec.(A.1) con k = 2 y x = xi −∆x, tenemos

f(xi −∆x) = f(xi)−∆xdf

dx

∣∣∣∣xi

+∆x2

2!

d2f

dx2

∣∣∣∣εr

(A.7)

de esta ecuación obtenemos la siguiente expresión para la aproximación de laprimera derivada

df

dx

∣∣∣∣xi

=f(xi)− f(xi −∆x)

∆x− ∆x

2!

d2f

dx2

∣∣∣∣εr

(A.8)

en este caso la aproximación de f ′(x) mediante diferencias regresivas es deprimer orden, es decir O(∆x). Siendo Or(∆x) el error local de truncamiento,definido como

Or(∆x) =∆x

2!

d2f

dx2

∣∣∣∣εr

. (A.9)

Es común escribir la expresión anterior como

df

dx

∣∣∣∣xi

=f(xi)− f(xi −∆x)

∆x+Or(∆x) (A.10)

o

f ′(xi) =fi − fi−1

∆x(A.11)

para simplificar la notación.

A.1.3 Diferencias Centradas

Considerando la Ec.(A.1) con k = 3 y escribiendo f(x) en x = xi + ∆x yx = xi −∆x, tenemos

f(xi +∆x) = f(xi) +∆xdf

dx

∣∣∣∣xi

+∆x2

2!

d2f

dx2

∣∣∣∣xi

+∆x3

3!

d3f

dx3

∣∣∣∣εp

(A.12)

y

f(xi −∆x) = f(xi)−∆xdf

dx

∣∣∣∣xi

+∆x2

2!

d2f

dx2

∣∣∣∣xi

− ∆x3

3!

d3f

dx3

∣∣∣∣εr

(A.13)

restando la Ec.(A.12) de la Ec.(A.13), se tiene

f(xi +∆x)− f(xi −∆x) = 2∆xdf

dx

∣∣∣∣xi

+∆x3

3!

[d3f

dx3

∣∣∣∣εp

+d3f

dx3

∣∣∣∣εr

](A.14)

esta última expresión lleva a la siguiente aproximación de la primera derivadamediante diferencias centradas

df

dx

∣∣∣∣xi

=f(xi +∆x)− f(xi −∆x)

2∆x+Oc(∆x2) (A.15)

[email protected] 139 Antonio Carrillo Ledesma, Et alii

Page 141: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

con un error local de truncamiento de segundo orden Oc(∆x2), es decir

Oc(∆x2) =∆x2

3!

[d3f

dx3

∣∣∣∣εp

+d3f

dx3

∣∣∣∣εr

](A.16)

comparado el error local de truncamiento de la aproximación anterior Oc(∆x2),con los obtenidos previamente para diferencias progresivas Op(∆x) Ec.(A.5) yregresivas Or(∆x) Ec.(A.10), se tiene que

lim∆x→0

Oc(∆x2) < lim∆x→0

Op(∆x). (A.17)

Es común encontrar expresada la derivada47

df

dx

∣∣∣∣xi

=f(xi +∆x)− f(xi −∆x)

2∆x(A.18)

como

f ′(xi) =fi+1 − fi−1

2∆x(A.19)

para simplificar la notación.

A.2 Análisis de Convergencia

En el siguiente ejemplo se muestra la comparación errores de truncamiento paralos esquemas de aproximación de diferencias finitas progresiva, regresiva y cen-trada. Además gráfica el error y el orden estimado de convergencia, para lafunción Seno y su derivada exacta (Coseno) en el punto 1:

Ejemplo 15 % u(x) = sin(x) en x=1. Derivada exacta u’(1) = cos(1)clear; close allh=1.0;for k = 1:33,a(k,1) = h;a(k,2) = (sin(1 + h) - sin(1)) / h - cos(1);a(k,3) = (sin(1) - sin(1 - h)) / h - cos(1);a(k,4) = (sin(1 + h) - sin(1 - h)) / (2 * h) - cos(1);h = h / 2;end

format short ea % Visualiza el resultado

a = abs(a); % Toma el valor absoluto

47En el caso de que la derivada sea usada en una malla no homogénea, es necesario incluiren la derivada a que ∆x se refiere, por ejemplo en cada punto i, tenemos la ∆xi− (por la

izquierda) y la ∆xi+ (por la derecha), i.e. df

dx

∣∣∣xi

=f(xi+∆xi−)−f(xi−∆xi+)

(∆xi−)+(∆xi+).

[email protected] 140 Antonio Carrillo Ledesma, Et alii

Page 142: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

h1 = a(:,1); % Extrae la primer columna que es la de he1 = a(:,2); e2 = a(:,3); e3 = a(:,4);

loglog(h1, e1, h1, e2, h1, e3)axis(’square’)axis([1e-6 1e1 1e-6 1e1])gtext(’Esperada de adelante y atras =1’)gtext(’Esperada de central = 2’)

Generado la siguiente salida (La primera columna es h, las demás son loserrores para los esquemas de aproximación de diferencias finitas progresiva, re-gresiva y centrada respectivamente):

1.0000e+00 -4.7248e-01 3.0117e-01 -8.5654e-025.0000e-01 -2.2825e-01 1.8379e-01 -2.2233e-022.5000e-01 -1.1025e-01 9.9027e-02 -5.6106e-031.2500e-01 -5.3929e-02 5.1118e-02 -1.4059e-036.2500e-02 -2.6639e-02 2.5936e-02 -3.5169e-043.1250e-02 -1.3235e-02 1.3059e-02 -8.7936e-051.5625e-02 -6.5958e-03 6.5519e-03 -2.1985e-057.8125e-03 -3.2925e-03 3.2815e-03 -5.4962e-063.9062e-03 -1.6449e-03 1.6421e-03 -1.3741e-061.9531e-03 -8.2209e-04 8.2141e-04 -3.4351e-079.7656e-04 -4.1096e-04 4.1079e-04 -8.5879e-084.8828e-04 -2.0546e-04 2.0542e-04 -2.1470e-082.4414e-04 -1.0272e-04 1.0271e-04 -5.3673e-091.2207e-04 -5.1361e-05 5.1358e-05 -1.3417e-096.1035e-05 -2.5680e-05 2.5679e-05 -3.3579e-103.0518e-05 -1.2840e-05 1.2840e-05 -8.3860e-111.5259e-05 -6.4199e-06 6.4199e-06 -2.2014e-117.6294e-06 -3.2100e-06 3.2100e-06 -1.8607e-133.8147e-06 -1.6050e-06 1.6050e-06 7.0899e-121.9073e-06 -8.0249e-07 8.0247e-07 -7.4620e-129.5367e-07 -4.0120e-07 4.0125e-07 2.1642e-114.7684e-07 -2.0062e-07 2.0055e-07 -3.6566e-112.3842e-07 -1.0050e-07 1.0020e-07 -1.5298e-101.1921e-07 -4.9746e-08 4.9906e-08 7.9849e-115.9605e-08 -2.5532e-08 2.4760e-08 -3.8581e-102.9802e-08 -1.0630e-08 1.1721e-08 5.4551e-101.4901e-08 -6.9051e-09 7.9961e-09 5.4551e-107.4506e-09 5.4551e-10 5.4551e-10 5.4551e-103.7253e-09 5.4551e-10 5.4551e-10 5.4551e-101.8626e-09 -2.9257e-08 -2.9257e-08 -2.9257e-089.3132e-10 -2.9257e-08 -2.9257e-08 -2.9257e-084.6566e-10 -2.9257e-08 -2.9257e-08 -2.9257e-082.3283e-10 -2.9257e-08 -2.9257e-08 -2.9257e-08

[email protected] 141 Antonio Carrillo Ledesma, Et alii

Page 143: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Cómo se nota en la anterior salida, la convergencia mejora conforme h sehace pequeña, hasta llegar a cierto valor en que por errores de truncamiento,el error en los esquemas de aproximación en la derivada comienza a incremen-tarse. Esto nos da una idea de los valores de h que podemos usar para losesquemas de aproximación de diferencias finitas progresiva, regresiva y centradarespectivamente.

Derivadas Usando Más Puntos Utilizando el valor de la función en máspuntos se construyen fórmulas más precisas para las derivadas48 , algunos ejem-plos son

f ′ (xi) =−3fi + 4fi+1 − fi+2

2∆x+O(∆x2) (A.20)

f ′(xi) =3fi − 4fi−1 + fi−2

2∆x+O(∆x2)

f ′(xi) =2fi+1 + 3fi − 6fi−1 + fi−2

6∆x+O(∆x3)

f ′(xi) =fi−2 − 8fi−1 + 8fi+1 − fi+2

12∆x+O(∆x4)

f ′(xi) =−25fi + 48fi+1 − 36fi+2 + 16fi+3 − 3fi+4

12∆x+O(∆x4)

A.3 Derivadas de Ordenes Mayores

De forma análoga se construyen aproximaciones en diferencias finitas de ordenmayor, aquí desarrollaremos la forma de calcular la derivada de orden dos endiferencias centradas.

A.3.1 Derivada de Orden Dos

Partiendo del desarrollo de Taylor

f(xi+∆x) = f(xi)+∆xf ′(xi)+∆x2

2!f ′′(xi)+

∆x3

3!f ′′′(xi)+

∆x4

4!f(4)(ξp) (A.21)

y

f(xi−∆x) = f(xi)−∆xf ′(xi)+∆x2

2!f ′′(xi)−

∆x3

3!f ′′′(xi)+

∆x4

4!f (4)(ξr) (A.22)

eliminando las primeras derivadas, sumando las ecuaciones anteriores y despe-jando se encuentra que

f ′′(xi) =f(xi −∆x)− 2f(xi) + f(xi +∆x)

∆x2− ∆x2

12f(4)(ξc) (A.23)

48Al usar estas derivadas en el método de diferencias finitas mostrado en la sección (2.1)las matrices generadas no serán tridiagonales.

[email protected] 142 Antonio Carrillo Ledesma, Et alii

Page 144: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

así, la aproximación a la segunda derivada usando diferencias centradas con unerror de truncamiento Oc(∆x2) es49

f ′′(xi) =f(xi −∆x)− 2f(xi) + f(xi +∆x)

∆x2(A.24)

Es común escribir la expresión anterior como

f ′′(xi) =fi−1 − 2fi + fi+1

∆x2

para simplificar la notación.

Derivadas Usando Más Puntos Utilizando el valor de la función en máspuntos se construyen fórmulas más precisas para las derivadas, algunos ejemplosson

f ′′(xi) =fi+2 − 2fi+1 + fi

∆x2+O(∆x) (A.25)

f ′′(xi) =−fi+3 + 4fi+2 − 5fi+1 + 2fi

∆x2+O(∆x2)

f ′′(xi) =−fi+2 + 16fi+1 − 30fi + 16fi−1 − fi−2

12∆x2+O(∆x4)

A.3.2 Derivadas de Orden Tres y Cuatro

De forma análoga se construyen derivadas de ordenes mayores utilizando el valorde la función en más puntos, algunos ejemplos para terceras derivadas son

f ′′′(xi) =fi+3 − 3fi+2 + 3fi+1 − fi

∆x3+O(∆x) (A.26)

f ′′′(xi) =fi+2 − 2fi+1 + 2fi−1 − fi−2

2∆x3+O(∆x2)

f ′′′(xi) =fi−3 − 8fi−2 + 13fi−1 − 13fi+1 + 8fi+2 − fi+3

8∆x3+O(∆x4)

Algunos ejemplos para cuartas derivadas son

f ′′′′(xi) =fi+4 − 4fi+3 + 6fi+2 − 4fi+1 + fi

∆x4+O(∆x) (A.27)

f ′′′′(xi) =fi+2 − 4fi+1 + 6fi − 4fi−1 + fi−2

∆x4+O(∆x2)

f ′′′′(xi) =−fi+3 + 12fi+2 − 39fi+1 + 56fi − 39fi−1 + 12fi−2 − fi−3

6∆x4+O(∆x4)

49En el caso de que la derivada sea usada en una malla no homogénea, es necesario incluiren la derivada a que ∆x se refiere, por ejemplo en cada punto i, tenemos la ∆xi− (por la

izquierda) y la ∆xi+ (por la derecha), i.e. f ′′(xi) =f(xi−∆xi−)−2f(xi)+f(xi+∆xi+)

(∆xi−)(∆xi+)

[email protected] 143 Antonio Carrillo Ledesma, Et alii

Page 145: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A.4 Derivadas en Dos y Tres Dimensiones

De forma análoga, se construyen aproximaciones en diferencias finitas de primery segundo orden en dos y tres dimensiones.

A.4.1 Derivadas en Dos Dimensiones

Usando el teorema de Taylor para funciones en dos variables x y y, es posibleescribir de forma exacta para el punto xi y yj

Figura 27: Discretización en un rectángulo.

f(xi +∆x, yj) = f(xi, yj) +∆x∂f (xi, yj)

∂x+

∆x

2

∂2f (xi + θ1∆x, yj)

∂x2

(A.28)

f(xi, yj +∆y) = f(xi, yj) +∆y∂f (xi, yj)

∂y+

∆y

2

∂2f (xi, yj + θ2∆y)

∂y2.

Así, la aproximación en diferencias hacia adelante de ∂f/∂x y ∂f/∂y es

∂f (xi, yj)

∂x≃ f (xi +∆x, yj)− f (xi, yj)

∆x(A.29)

∂f (xi, yj)

∂y≃ f (xi, yj +∆y)− f (xi, yj)

∆y

o en su forma simplificada (asociamos ∆x = h y ∆y = k), entonces tenemos

∂f (xi, yj)

∂x≃ fi+1,j − fi,j

h(A.30)

∂f (xi, yj)

∂y≃ fi,j+1 − fi,j

k.

[email protected] 144 Antonio Carrillo Ledesma, Et alii

Page 146: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

La aproximación en diferencias hacia atrás de ∂f/∂x y ∂f/∂y es

∂f (xi, yj)

∂x≃ f (xi, yj)− f (xi −∆x, yj)

∆x(A.31)

∂f (xi, yj)

∂y≃ f (xi, yj)− f (xi, yj −∆y)

∆y

o en su forma simplificada tenemos

∂f (xi, yj)

∂x≃ fi,j − fi−1,j

h(A.32)

∂f (xi, yj)

∂y≃ fi,j − fi,j−1

k.

La aproximación en diferencias centradas de ∂f/∂x y ∂f/∂y es

∂f (xi, yj)

∂x≃ f (xi +∆x, yj)− f (xi −∆x, yj)

2∆x(A.33)

∂f (xi, yj)

∂y≃ f (xi, yj +∆y)− f (xi, yj −∆y)

2∆y

o en su forma simplificada tenemos

∂f (xi, yj)

∂x≃ fi+1,j − fi−1,j

2h(A.34)

∂f (xi, yj)

∂y≃ fi,j+1 − fi,j−1

2k.

Por otro lado, la aproximación en diferencias centradas de ∂2f/∂x2 y ∂2f/∂y2

es

∂2f (xi, yj)

∂x2≃ f (xi −∆x, yj)− 2f (xi, yj) + f (xi +∆x, yj)

∆x2(A.35)

∂2f (xi, yj)

∂y2≃ f (xi, yj −∆y)− 2f (xi, yj) + f (xi, yj +∆y)

∆y2

o en su forma simplificada tenemos

∂2f (xi, yj)

∂x2≃ fi−1,j − 2fi,j + fi+1,j

h2(A.36)

∂2f (xi, yj)

∂y2≃ fi,j−1 − 2fi,j + fi,j+1

k2.

[email protected] 145 Antonio Carrillo Ledesma, Et alii

Page 147: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A.4.2 Derivadas en Tres Dimensiones

Usando el teorema de Taylor para funciones de tres variables x, y y z, es posibleescribir de forma exacta para el punto xi, yj y zk

f(xi +∆x, yj , zk) = f(xi, yj , zk) +∆x∂f (xi, yj , zk)

∂x+

∆x

2

∂2f (xi + θ1∆x, yj , zk)

∂x2

(A.37)

f(xi, yj +∆y, zk) = f(xi, yj , zk) +∆y∂f (xi, yj , zk)

∂y+

∆y

2

∂2f (xi, yj + θ2∆y, zk)

∂y2

f(xi, yj , zk +∆z) = f(xi, yj , zk) +∆z∂f (xi, yj , zk)

∂z+

∆z

2

∂2f (xi, yj , zk + θ3∆z)

∂z2

Así, la aproximación en diferencias hacia adelante de ∂f/∂x, ∂f/∂y y ∂f/∂zes

∂f (xi, yj, zk)

∂x≃ f (xi +∆x, yj , zk)− f (xi, yj , zk)

∆x(A.38)

∂f (xi, yj, zk)

∂y≃ f (xi, yj +∆y, zk)− f (xi, yj , zk)

∆y

∂f (xi, yj, zk)

∂z≃ f (xi, yj , zk +∆z)− f (xi, yj , zk)

∆z

o en su forma simplificada (para simplificar la notación, asociamos∆x = h,∆y =l y ∆z = m), tenemos

∂f (xi, yj , zk)

∂x≃ fi+1,j,k − fi,j,k

h(A.39)

∂f (xi, yj , zk)

∂y≃ fi,j+1,k − fi,j,k

l

∂f (xi, yj , zk)

∂z≃ fi,j,k+1 − fi,j,k

m.

La aproximación en diferencias hacia atrás de ∂f/∂x, ∂f/∂y y ∂f/∂z es

∂f (xi, yj, zk)

∂x≃ f (xi, yj , zk)− f (xi −∆x, yj , zk)

∆x(A.40)

∂f (xi, yj, zk)

∂y≃ f (xi, yj , zk)− f (xi, yj −∆y, zk)

∆y

∂f (xi, yj, zk)

∂z≃ f (xi, yj , zk)− f (xi, yj , zk −∆z)

∆z

o en su forma simplificada tenemos

∂f (xi, yj , zk)

∂x≃ fi,j,k − fi−1,j,k

h(A.41)

∂f (xi, yj , zk)

∂y≃ fi,j,k − fi,j−1,k

l

∂f (xi, yj , zk)

∂z≃ fi,j,k − fi,j,k−1

m.

[email protected] 146 Antonio Carrillo Ledesma, Et alii

Page 148: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

La aproximación en diferencias centradas de ∂f/∂x, ∂f/∂y y ∂f/∂z es

∂f (xi, yj , zk)

∂x≃ f (xi +∆x, yj , zk)− f (xi −∆x, yj , zk)

2∆x(A.42)

∂f (xi, yj , zk)

∂y≃ f (xi, yj +∆y, zk)− f (xi, yj −∆y, zk)

2∆y

∂f (xi, yj , zk)

∂z≃ f (xi, yj , zk +∆z)− f (xi, yj , zk −∆z)

2∆z

o en su forma simplificada tenemos

∂f (xi, yj , zk)

∂x≃ fi+1,j,k − fi−1,j,k

2h(A.43)

∂f (xi, yj , zk)

∂y≃ fi,j+1,k − fi,j−1,k

2l

∂f (xi, yj , zk)

∂z≃ fi,j,k+1 − fi,j,k−1

2m.

Por otro lado, la aproximación en diferencias centradas de ∂2f/∂x2, ∂2f/∂y2

y ∂2f/∂z2 es

∂2f (xi, yj , zk)

∂x2≃ f (xi −∆x, yj , zk)− 2f (xi, yj , zk) + f (xi +∆x, yj , zk)

∆x2(A.44)

∂2f (xi, yj , zk)

∂y2≃ f (xi, yj −∆y, zk)− f (xi, yj , zk) + f (xi, yj +∆y, zk)

∆y2

∂2f (xi, yj , zk)

∂z2≃ f (xi, yj , zk −∆z)− f (xi, yj , zk) + f (xi, yj , zk +∆z)

∆z2

o en su forma simplificada tenemos

∂2f (xi, yj , zk)

∂x2≃ fi−1,j,k − 2fi,j,k + fi+1,j,k

h2(A.45)

∂2f (xi, yj , zk)

∂y2≃ fi,j−1,k − 2fi,j,k + fi,j+1,k

l2

∂2f (xi, yj , zk)

∂z2≃ fi,j,k−1 − 2fi,j,k + fi,j,k+1

m2.

[email protected] 147 Antonio Carrillo Ledesma, Et alii

Page 149: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

B Consideraciones Sobre la Implementación deMétodos de Solución de Grandes Sistemas deEcuaciones Lineales

Los modelos matemáticos de muchos sistemas en Ciencia e Ingeniería y en par-ticular una gran cantidad de sistemas continuos geofísicos requieren el proce-samiento de sistemas algebraicos de gran escala. Es este trabajo se muestracomo proceder para transformar un problema de ecuaciones diferenciales par-ciales en un sistema algebraico virtual de ecuaciones lineales; y así, poder hallarla solución a dicho problema al resolver el sistema lineal asociado al esquemaDVS. La solución de este sistema virtual, involucra la solución acoplada de mu-chos sistemas lineales locales –uno por cada subdominio–, cada uno de estossistemas lineales puede ser expresado en la forma matricial siguiente

Au = f (B.1)

donde la matriz A es de tamaño n × n y generalmente bandada, cuyo tamañode banda es b.

Los métodos de resolución del sistema algebraico de ecuaciones Au = f seclasifican en dos grandes grupos (véase [14]): los métodos directos y los métodositerativos. En los métodos directos la solución u se obtiene en un número fijode pasos y sólo están sujetos a los errores de redondeo. En los métodos itera-tivos, se realizan iteraciones para aproximarse a la solución u aprovechando lascaracterísticas propias de la matriz A, tratando de usar un menor número depasos que en un método directo (véase [10], [11], [12] y [14]).

Por lo general, es conveniente usar librerías50 para implementar de formaeficiente a los vectores, matrices –bandadas y dispersas– y resolver los sistemaslineales locales asociados al método DVS, pero se decidió51 hacer una jerarquíade clases propia, que implementa los algoritmos necesarios para este trabajo,los cuales corren en cualquier equipo de cómputo que tenga un compilador deC++ y la librería de paso de mensajes MPI; y en caso de querer usar libreríaspara la manipulación de sistemas lineales, sólo es necesario especializar las clasesdesarrolladas con las implementaciones particulares de estas; y así, ocultar eluso de dichas librerías sin afectar al resto del código. Siendo sencillo, adaptarel código para usar una o más librerías o versiones de estas, según sea necesariopara correr el programa en un equipo de cómputo particular.

50Algunas de las librerías más usadas para resolver sistemas lineales usando matrices ban-dadas y dispersar son PETCs, HYPRE, ATLAS, LAPACK++, LAPACK, EISPACK, LIN-PACK, BLAS, entre muchas otras alternativas, tanto para implementaciones secuencialescomo paralelas y más recientemente para hacer uso de los procesadores CUDA en las GPU denVidia.51La variedad de librerías y las diferentes versiones que existen –muchas de ellas, difieren en

la forma de programar entre versiones sucesivas– y pueden usarse es grande, pero cada una deellas requiere de una implementación especifica en el programa y una configuración particulardel equipo. Esto restringe al código desarrollado a una plataforma y versión particular de lalibrería seleccionada.

[email protected] 148 Antonio Carrillo Ledesma, Et alii

Page 150: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Así, para poder operar con los diversos métodos numéricos directos o ite-rativos que resuelven sistemas lineales reales y virtuales, se implemento unajerarquía de clases, la cual se muestra a continuación:

Figura 28: Jerarquía de clases para la resolución de sistemas lineales

Esta jerarquía permite que los métodos DVS le soliciten a la clase abstractaSolvable52 que resuelva un determinado sistema lineal sin importar el métodonumérico subyacente –directos o iterativos–, si la matriz es real –existe comotal– o es virtual –esta dispersa en los distintos procesadores del Cluster– yes reutilizable tanto en la implementación secuencial como paralela. La claseSolvable tiene la siguiente estructura:

class Solvable

private:int iter;

public:virtual int getIter(void)=0;virtual void solve(double *x, double *y)=0;

;

B.1 Métodos Directos

En los métodos directos (véase [10] y [13]), la solución u se obtiene en un númerofijo de pasos y sólo están sujetos a errores de redondeo. Entre los métodos másimportantes se puede considerar: Factorización LU –para matrices simétricasy no simétricas– y Factorización Cholesky –para matrices simétricas–. En

52En general los comportamientos virtuales de las clases abstractas, pueden no ser eficientessi son llamadas una gran cantidad de veces durante la ejecución del programa. Para el casodel esquema DVS, en el cual se usa CGM o GMRES para resolver el sistema lineal virtual,este sólo se llama una sola vez; y el proceso de solución del sistema lineal asociado consumela mayoría del tiempo de ejecución, por eso se considera eficiente.

[email protected] 149 Antonio Carrillo Ledesma, Et alii

Page 151: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

todos los casos la matriz original A es modificada y en caso de usar la Facto-rización LU el tamaño de la banda b crece a 2b+ 1 si la factorización se realizaen la misma matriz.

B.1.1 Factorización LU

Sea U una matriz triangular superior obtenida de A por eliminación bandada.Entonces U = L−1A, donde L es una matriz triangular inferior con unos en ladiagonal. Las entradas de L−1 pueden obtenerse de los coeficientes L

ijy pueden

ser almacenados estrictamente en las entradas de la diagonal inferior de A yaque estas ya fueron eliminadas. Esto proporciona una Factorización LU de Aen la misma matriz A ahorrando espacio de memoria, donde el ancho de bandacambia de b a 2b+ 1.

En el algoritmo de Factorización LU, se toma como datos de entrada delsistema Au = f , a la matriz A, la cual será factorizada en la misma matriz,esta contendrá a las matrices L y U producto de la factorización, quedando elmétodo numérico esquemáticamente como:

Aii = 1, para i = 1, ..., NPara J = 1, 2, ..., N

Para i = 1, 2, ..., j

Aij = Aij −i−1∑

k=1

AikAkj

Para i = j + 1, j + 2, ..., N

Aij = 1Ajj

(Aij −

j−1∑

k=1

AikAkj

)

(B.2)

El problema original Au = f se escribe como LUu = f , donde la búsqueda dela solución u se reduce a la solución sucesiva de los sistemas lineales triangulares

Ly = f y Uu = y. (B.3)

i,.e.

Ly = f ⇔

y1 = f1/l11

yi =1

Aii

fi −

i−1∑

j=1

Aiiyi

para toda i = 1, ..., n

(B.4)

y

Uu = y ⇔

xn = yn/unn

xi =1

Aii

yi −

n∑

j=i+1

Aijxj

para toda i = n− 1, ..., 1

.(B.5)

[email protected] 150 Antonio Carrillo Ledesma, Et alii

Page 152: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

La descomposición LU requiere N3/3 operaciones aritméticas para la matrizllena, pero sólo Nb2 operaciones aritméticas para la matriz con un ancho debanda de b siendo esto más económico computacionalmente.

Implementación LU Orientada a Objetos en C++ En este caso se de-sarrollo una jerarquía de clases para poder operar con matrices bandadas ydispersas, llamada BandSolve la cual se muestra a continuación:

class BandSolve: public Solvable

private:double **AK;

protect:factorLU(void);

public:BanSolve(int n, double **A);BanSolve(int n, Matriz *A);void solve(double *x, double *y);void convertBand(void);int getIter(void);

;

B.1.2 Factorización Cholesky

Cuando la matriz es simétrica y definida positiva, se obtiene la descomposiciónLU de la matriz A = LDU = LDLT donde D = diag(U) es la diagonal conentradas positivas.

En el algoritmo de Factorización Cholesky, se toma como datos de entradadel sistema Au = f , a la matriz A, la cual será factorizada en la misma matrizy contendrá a las matrices L y LT producto de la factorización, quedando elmétodo numérico esquemáticamente como:

para i = 1, 2, ..., n y j = i+ 1, ..., n

Aii =

√√√√(Aii −

i−1∑

k=1

A2ik

)

Aji =

(Aji −

i−1∑

k=1

AjkAik

)/Aii

(B.6)

El problema original Au = f se escribe como LLTu = b, donde la búsquedade la solución u se reduce a la solución sucesiva de los sistemas lineales triangu-lares

Ly = f y LTu = y (B.7)

usando la formulación equivalente dada por las Ec.(B.4) y (B.5) para la descom-posición LU.

[email protected] 151 Antonio Carrillo Ledesma, Et alii

Page 153: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

La mayor ventaja de esta descomposición es que, en el caso en que es aplica-ble, el costo de cómputo es sustancialmente reducido, ya que requiere de N3/6multiplicaciones y N3/6 sumas.

Implementación Cholesky Orientada a Objetos en C++ En este casose desarrollo una jerarquía de clases para poder operar con matrices bandadasy dispersas, llamada BandCholesky la cual se muestra a continuación:

class BandCholesky: public Solvable

private:double **AK;

protect:factorLU(void);

public:BanCholesky(int n, double **A);BanCholesky(int n, Matriz *A);void solve(double *x, double *y);void convertBand(void);int getIter(void);

;

B.2 Métodos Iterativos

En los métodos iterativos, se realizan iteraciones para aproximarse a la soluciónu aprovechando las características propias de la matriz A, tratando de usar unmenor número de pasos que en un método directo (véase [10] y [13]).

En los métodos iterativos tales como Jacobi, Gauss-Seidel y de RelajaciónSucesiva (SOR) en el cual se resuelve el sistema lineal

Au = f (B.8)

comienza con una aproximación inicial u0 a la solución u y genera una sucesiónde vectores

uk

∞k=1

que converge a u. Los métodos iterativos traen consigoun proceso que convierte el sistema Au = f en otro equivalente mediante laiteración de punto fijo de la forma u = Tu + c para alguna matriz fija T y unvector c. Luego de seleccionar el vector inicial u0 la sucesión de los vectores dela solución aproximada se genera calculando

uk = Tuk−1 + c ∀k = 1, 2, 3, ... (B.9)

La convergencia a la solución la garantiza el siguiente teorema (véase [14]).

Teorema 9 Si∥∥T

∥∥ < 1, entonces el sistema lineal u = Tu+ c tiene una solu-ción única u∗ y las iteraciones uk definidas por la fórmula uk = Tuk−1+c ∀k =1, 2, 3, ... convergen hacia la solución exacta u∗ para cualquier aproximación ini-cial u0.

[email protected] 152 Antonio Carrillo Ledesma, Et alii

Page 154: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Nótese que, mientras menor sea la norma de la matriz T , más rápida es laconvergencia, en el caso cuando

∥∥T∥∥ es menor que uno, pero cercano a uno, la

convergencia es lenta y el número de iteraciones necesario para disminuir el errordepende significativamente del error inicial. En este caso, es deseable proponeral vector inicial u0 de forma tal que sea mínimo el error inicial. Sin embargo,la elección de dicho vector no tiene importancia si la

∥∥T∥∥ es pequeña, ya que la

convergencia es rápida.Como es conocido, la velocidad de convergencia de los métodos iterativos

dependen de las propiedades espectrales de la matriz de coeficientes del sistemade ecuaciones, cuando el operador diferencial L de la ecuación del problema aresolver es auto-adjunto se obtiene una matriz simétrica y positivo definida y elnúmero de condicionamiento de la matriz A, es por definición

cond(A) =λmaxλmin

≥ 1 (B.10)

donde λmax y λmin es el máximo y mínimo de los eigen-valores de la matrizA. Si el número de condicionamiento es cercano a 1 los métodos numéricosal solucionar el problema convergerá en pocas iteraciones, en caso contrario serequerirán muchas iteraciones.

Frecuentemente al usar el método de Elemento Finito, Diferencias Finitas,entre otros, se tiene una velocidad de convergencia de O

(1h2

)y en el caso de

métodos de descomposición de dominio sin precondicionar se tiene una velocidadde convergencia de O

(1h

), donde h es la máxima distancia de separación entre

nodos continuos de la partición, es decir, que poseen una pobre velocidad deconvergencia cuando h→ 0 (véase [8], [9], [10] y [14]).

Los métodos Jacobi, Gauss-Seidel y de Relajación Sucesiva (SOR) son usual-mente menos eficientes que los métodos discutidos en el resto de esta secciónbasados en el espacio de Krylov (véase [42] y [13]). Estos métodos minimizan,en la k-ésima iteración alguna medida de error sobre el espacio afín x0 + Kk,donde x0 es la iteración inicial y Kk es el k-ésimo subespacio de Krylov

Kk = Generador0,Ar0, ..., A

k−1r0para k ≥ 1. (B.11)

El residual es r = b−Ax, talrk

k≥0 denota la sucesión de residuales

rk = b−Axk. (B.12)

Entre los métodos más usados definidos en el espacio de Krylov para el tipode problemas tratados en el presente trabajo se puede considerar: Método deGradiente Conjugado –para matrices simétricas– y GMRES –para matricesno simétricas–.

B.2.1 Método de Gradiente Conjugado

Si la matriz generada por la discretización es simétrica –A = AT– y definidapositiva –uTAu > 0 para todo u = 0–, entonces es aplicable el método de Gra-diente Conjugado –Conjugate Gradient Method (CGM)–. La idea básica en

[email protected] 153 Antonio Carrillo Ledesma, Et alii

Page 155: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

que descansa el método del Gradiente Conjugado consiste en construir una basede vectores ortogonales espacio de Krylov Kn

(A, vn

)y utilizarla para realizar

la búsqueda de la solución en forma lo más eficiente posible.Tal forma de proceder generalmente no sería aconsejable porqué la construc-

ción de una base ortogonal utilizando el procedimiento de Gramm-Schmidt re-quiere, al seleccionar cada nuevo elemento de la base, asegurar su ortogonalidadcon respecto a cada uno de los vectores construidos previamente. La gran ven-taja del método de Gradiente Conjugado radica en que cuando se utiliza esteprocedimiento, basta con asegurar la ortogonalidad de un nuevo miembro conrespecto al último que se ha construido, para que automáticamente esta condi-ción se cumpla con respecto a todos los anteriores.

En el algoritmo de Gradiente Conjugado, se toma a la matriz A comosimétrica y positiva definida, y como datos de entrada del sistema

Au = f (B.13)

el vector de búsqueda inicial u0 y se calcula r0 = f − Au0, p0 = r0, quedandoel método numérico esquemáticamente como:

αn =〈pn,pn〉〈pn,Apn〉

un+1 = un + αnpn

rn+1 = rn − αnApn

Prueba de convergencia

βn =〈rn+1,rn+1〉〈rn,rn〉

pn+1 = rn+1 + βnpn

n = n+ 1

(B.14)

donde 〈·, ·〉 = (·, ·) será el producto interior adecuado al sistema lineal en par-ticular, la solución aproximada será un+1 y el vector residual será rn+1.

En la implementación numérica y computacional del método es necesariorealizar la menor cantidad de operaciones posibles por iteración, en particularen Apn, una manera de hacerlo queda esquemáticamente como:

Dado el vector de búsqueda inicial u, calcula r = f −Au, p = r y µ = r · r.

Para n = 1, 2, ...,Mientras (µ < ε) v = Apα = µ

p·vu = u+ αpr = r − αvµ′ = r · rβ = µ′

µ

p = r + βpµ = µ′

[email protected] 154 Antonio Carrillo Ledesma, Et alii

Page 156: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

La solución aproximada será u y el vector residual será r.

Si se denota con λi, ViNi=1 las eigen-soluciones de A, i.e. AVi = λiVi,i = 0, 1, 2, ..., N. Ya que la matriz A es simétrica, los eigen-valores son reales yse pueden ordenar λ1 ≤ λ2 ≤ ... ≤ λN . Se define el número de condición porCond(A) = λN/λ1 y la norma de la energía asociada a A por ‖u‖2A = u · Auentonces

∥∥u− uk∥∥

A≤

∥∥u− u0∥∥

A

1−

√Cond(A)

1 +√Cond(A)

2k

. (B.15)

El siguiente teorema da idea del espectro de convergencia del sistema Au = bpara el método de Gradiente Conjugado.

Teorema 10 Sea κ = cond(A) = λmaxλmin

≥ 1, entonces el método de GradienteConjugado satisface la A−norma del error dado por

‖en‖‖e0‖ ≤

2[(√κ+1√κ−1

)n

+(√

κ+1√κ−1

)−n] ≤ 2

(√κ− 1√κ+ 1

)n

(B.16)

donde em = u− um del sistema Au = b.

Nótese que para κ grande se tiene que√κ− 1√κ+ 1

≃ 1− 2√κ

(B.17)

tal que

‖en‖A ≃∥∥e0

∥∥Aexp

(−2 n√

κ

)(B.18)

de lo anterior se puede esperar un espectro de convergencia del orden de O(√κ)

iteraciones (véase [14] y [42]).

Consideraciones sobre la Matriz y el producto punto en el CGM Escomún al trabajar en métodos de descomposición de dominio que se requieranusar más de un producto interior 〈·, ·〉 en distintas implementaciones del mismoalgoritmo de Gradiente Conjugado. Por ello se diseña el algoritmo para soportaren forma de parámetro el objeto que implemente el producto punto.

class DotProd

public:virtual double dot(double *x, double *y)=0;

;

[email protected] 155 Antonio Carrillo Ledesma, Et alii

Page 157: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

En este caso, al usar el esquema DVS la matriz con la que trabajara elmétodo de Gradiente Conjugado puede estar definida como tal o ser virtual; enel caso más general, puede estar en un procesador o en múltiples procesadores,por ello, en el diseño del algoritmo se decidió implementar un objeto el cualpueda realizar la multiplicación de la matriz por el vector, sin importar el tipode matriz –real o virtual–.

class MultOp

public:virtual void multOp(double *x, double *y)=0;virtual int getSize(void)=0;

;

Así, se diseña un solo método de Gradiente Conjugado robusto y flexible quesoporta diferentes productos interiores y trabaja con matrices reales o virtuales,adaptándose sin ningún cambio a diversas necesidades de implementación tantosecuencial como paralela.

Implementación CGM Orientada a Objetos en C++ Dado el sistemalineal Au = f , donde A sea una matriz real o virtual. La entrada al método seráuna elección de u0 como condición inicial, ε > 0 como la tolerancia del método,N como el número máximo de iteraciones además de un objeto para realizar lamultiplicación de la matriz por un vector y otro objeto para el producto interior,el algoritmo del método de Gradiente Conjugado orientado a objetos en C++queda como:

class CGM: public Solvable

protect:MultOp *A;DotProd *dotP;double norm(double *x);

public:CGM(MulOp &A, DotProd &dotP, double eps);void solve(double *x, double *y);int getIter(void);

;

El método de Gradiente Conjugado por si mismo no permite el uso de pre-condicionadores, pero con una pequeña modificación en el producto interior usa-do en el método, da origen al método de Gradiente Conjugado precondicionadoque a continuación detallaremos.

[email protected] 156 Antonio Carrillo Ledesma, Et alii

Page 158: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

B.2.2 Gradiente Conjugado Precondicionado

Cuando la matriz A es simétrica y definida positiva se puede escribir como

λ1 ≤uA · uu · u ≤ λn (B.19)

y tomando la matriz C−1 como un precondicionador de A con la condición deque

λ1 ≤uC−1A · u

u · u ≤ λn (B.20)

entonces la Ec. (B.13) se pude escribir como

C−1Au = C−1b (B.21)

donde C−1A es también simétrica y definida positiva en el producto interior〈u, v〉 = u ·Cv, porque

⟨u,C−1Av

⟩= u · C

(C−1Av

)(B.22)

= u ·Av

que por hipótesis es simétrica y definida positiva en ese producto interior.La elección del producto interior 〈·, ·〉 quedará definido como

〈u, v〉 = u ·C−1Av (B.23)

por ello las Ecs. (B.14[1]) y (B.14[3]), se convierten en

αk+1 =rk · rk

pk+1 ·C−1pk+1(B.24)

y

βk+1 =pk ·C−1rk

pk ·Apk(B.25)

generando el método de Gradiente Conjugado precondicionado con precondi-cionador C−1. Es necesario hacer notar que los métodos Gradiente Conjugadoy Gradiente Conjugado Precondicionado sólo difieren en la elección del productointerior.

Para el método de Gradiente Conjugado Precondicionado, los datos de en-trada son un vector de búsqueda inicial u0 y el precondicionador C−1. Cal-culándose r0 = b − Au0, p = C−1r0, quedando el método esquemáticamente

[email protected] 157 Antonio Carrillo Ledesma, Et alii

Page 159: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

como:

βk+1 =pk ·C−1rk

pk ·Apk(B.26)

pk+1 = rk − βk+1pk

αk+1 =rk · rk

pk+1 · C−1pk+1

uk+1 = uk + αk+1pk+1

rk+1 = C−1rk − αk+1Apk+1.

Algoritmo Computacional del Método Dado el sistema Au = b, conla matriz A simétrica y definida positiva de dimensión n × n. La entrada almétodo será una elección de u0 como condición inicial, ε > 0 como la toleranciadel método, N como el número máximo de iteraciones y la matriz de precondi-cionamiento C−1 de dimensión n × n, el algoritmo del método de GradienteConjugado Precondicionado queda como:

r = b−Au

w = C−1r

v = (C−1)Twα =

∑nj=1w

2j

k = 1Mientras que k ≤ N

Si ‖v‖∞ < ε Salir

x = Av

t =α∑n

j=1 vjxj

u = u+ tv

r = r − tx

w = C−1r

β =∑n

j=1w2j

Si ‖r‖∞ < ε Salir

s =β

α

v =(C−1

)Tw + sv

α = β

k = k + 1

La salida del método será la solución aproximada u = (u1, ..., un) y el resi-dual r = (r1, ..., rn).

[email protected] 158 Antonio Carrillo Ledesma, Et alii

Page 160: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

En el caso del método sin precondicionamiento, C−1 es la matriz identidad,que para propósitos de optimización sólo es necesario hacer la asignación devectores correspondiente en lugar del producto de la matriz por el vector. Enel caso de que la matriz A no sea simétrica, el método de Gradiente Conju-gado puede extenderse para soportarlas, para más información sobre pruebasde convergencia, resultados numéricos entre los distintos métodos de solucióndel sistema algebraico Au = b generada por la discretización de un problemaelíptico y como extender estos para matrices no simétricas ver [?] y [?].

Teorema 11 Sean A,B y C tres matrices simétricas y positivas definidas en-tonces

κ(C−1A

)≤ κ

(C−1B

)κ(B−1A

).

B.2.3 Método Residual Mínimo Generalizado

Si la matriz generada por la discretización es no simétrica, entonces una opción,es el método Residual Mínimo Generalizado –Generalized Minimum ResidualMethod (GMRES)–, este representa una formulación iterativa común satisfa-ciendo una condición de optimización. La idea básica detrás del método se basaen construir una base ortonormal

v1, v2, ..., vn

(B.27)

para el espacio de Krylov Kn

(A, vn

). Para hacer vn+1 ortogonal a Kn

(A, vn

),

es necesario usar todos los vectores previamente construidosvn+1j

n

j=1–en

la práctica sólo se guardan algunos vectores anteriores– en los cálculos. Y elalgoritmo se basa en una modificación del método de Gram-Schmidt para lageneración de una base ortonormal. Sea V

n=

[v1, v2, ..., vn

]la cual denota la

matriz conteniendo vj en la j-ésima columna, para j = 1, 2, ..., n, y sea Hn=

[hi,j ] , 1 ≤ i, j ≤ n, donde las entradas de Hnno especificadas en el algoritmo

son cero. Entonces, Hnes una matriz superior de Hessenberg. i.e. hij = 0 para

j < i− 1, y

AVn

= VnH

n+ hn+1,n

[0, ..., 0, vn+1

](B.28)

Hn

= HT

nAV

n.

En el algoritmo del método Residual Mínimo Generalizado, la matriz A estomada como no simétrica, y como datos de entrada del sistema

Au = f (B.29)

el vector de búsqueda inicial u0 y se calcula r0 = f − Au0, β0 =∥∥r0

∥∥ , v1 =

[email protected] 159 Antonio Carrillo Ledesma, Et alii

Page 161: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

r0/β0, quedando el método esquemáticamente como:

Para n = 1, 2, ...,Mientras βn < τβ0 wn+10 = Avn

Para l = 1 hasta n hl,n =

⟨wn+1

l , vl⟩

wn+1l+1 = wn+1

l − hl,nvl

hn+1,n =

∥∥wn+1n+1

∥∥vn+1 = wn+1

n+1/hn+1,n

Calcular yn tal que βn =∥∥∥β0e1 − H

nyn

∥∥∥ es mínima

(B.30)

donde Hn= [hij ]1≤i≤n+1,1≤j≤n

, la solución aproximada será un = u0 + Vnyn,

y el vector residual será

rn = r0 −AVnyn = V

n+1

(β0e1 − H

nyn

). (B.31)

Teorema 12 Sea uk la iteración generada después de k iteraciones de GMRES,con residual rk. Si la matriz A es diagonalizable, i.e. A = V ΛV −1 donde Λ esuna matriz diagonal de eigen-valores de A, y V es la matriz cuyas columnas sonlos eigen-vectores, entonces

∥∥rk∥∥

‖r0‖ ≤ κ (V ) minpκ∈Πκ,pk(0)=1

max |pκ (λj)|λj

(B.32)

donde κ (V ) =‖V ‖‖V −1‖ es el número de condicionamiento de V .

Consideraciones sobre la Matriz en el GMRES En este caso al usar DVSla matriz con la que trabajara el método GMRES puede estar definida comotal o ser virtual, o en el caso más general, puede estar en un procesador o enmúltiples procesadores, por ello en el diseño del algoritmo se decidió implementarun objeto el cual pueda realizar la multiplicación de la matriz por el vector, sinimportar el tipo de matriz –real o virtual–.

class MultOp

public:virtual void multOp(double *x, double *y)=0;virtual int getSize(void)=0;

;

Así, se diseña un sólo método de GMRES robusto y flexible que trabaje conmatrices reales o virtuales, adaptándose sin ningún cambio a diversas necesi-dades de implementación tanto secuencial como paralela.

[email protected] 160 Antonio Carrillo Ledesma, Et alii

Page 162: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Implementación GMRES Orientada a Objetos en C++ Dado el sis-tema lineal Au = f , donde A sea una matriz real o virtual. La entrada almétodo será una elección de u0 como condición inicial, ε > 0 como la toleranciadel método, N como el número máximo de iteraciones y k el número de vectoresa guardar además de un objeto para realizar la multiplicación de la matriz porun vector, el algoritmo del método de GMRES orientado a objetos en C++queda como:

class DQGMRES: public Solvable

protect:MultOp *A;

public:DQGMRES(MulOp &A, int k);void solve(double *x, double *y);int getIter(void);

;

B.3 Precondicionadores

Una vía que permite mejorar la eficiencia de los métodos iterativos consisteen transformar al sistema de ecuaciones en otro equivalente, en el sentido deque posea la misma solución del sistema original pero que a su vez tengamejores condiciones espectrales. Esta transformación se conoce como precondi-cionamiento y consiste en aplicar al sistema de ecuaciones una matriz conocidacomo precondicionador encargada de realizar el mejoramiento del número decondicionamiento.

Una amplia clase de precondicionadores han sido propuestos basados en lascaracterísticas algebraicas de la matriz del sistema de ecuaciones, mientras quepor otro lado también existen precondicionadores desarrollados a partir de lascaracterísticas propias del problema que lo origina, un estudio más completopuede encontrarse en [?] y [?].

¿Qué es un Precondicionador? De una manera formal podemos decir queun precondicionador consiste en construir una matriz C, la cuál es una aproxi-mación en algún sentido de la matriz A del sistema Au = b, de manera tal quesi multiplicamos ambos miembros del sistema de ecuaciones original por C−1

obtenemos el siguiente sistema

C−1Au = C−1b (B.33)

donde el número de condicionamiento de la matriz del sistema transformadoC−1A debe ser menor que el del sistema original, es decir

Cond(C−1A) < Cond(A), (B.34)

[email protected] 161 Antonio Carrillo Ledesma, Et alii

Page 163: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

dicho de otra forma un precondicionador es una inversa aproximada de la matrizoriginal

C−1 ≃ A−1 (B.35)

que en el caso ideal C−1 = A−1 el sistema convergería en una sola iteración,pero el coste computacional del cálculo de A−1 equivaldría a resolver el sistemapor un método directo. Se sugiere que C sea una matriz lo más próxima a Asin que su determinación suponga un coste computacional elevado.

Dependiendo de la forma de platear el producto de C−1 por la matriz delsistema obtendremos distintas formas de precondicionamiento, estas son:

C−1Au = C−1b Precondicionamiento por la izquierdaAC−1Cu = b Precondicionamiento por la derecha

C−11AC−1

2C2u = C−1

1b

Precondicionamiento por ambos ladossi C puede factorizarse como C = C

1C2.

El uso de un precondicionador en un método iterativo provoca que se incurraen un costo de cómputo extra debido a que inicialmente se construye y luegose debe aplicar en cada iteración. Teniéndose que encontrar un balance entre elcosto de construcción y aplicación del precondicionador versus la ganancia envelocidad en convergencia del método.

Ciertos precondicionadores necesitan poca o ninguna fase de construcción,mientras que otros pueden requerir de un trabajo substancial en esta etapa.Por otra parte la mayoría de los precondicionadores requieren en su aplicaciónun monto de trabajo proporcional al número de variables; esto implica que semultiplica el trabajo por iteración en un factor constante.

De manera resumida un buen precondicionador debe reunir las siguientescaracterísticas:

i) Al aplicar un precondicionador C al sistema original de ecuacionesAu = b, se debe reducir el número de iteraciones necesarias para quela solución aproximada tenga la convergencia a la solución exactacon una exactitud ε prefijada.

ii) La matriz C debe ser fácil de calcular, es decir, el costo com-putacional de la construcción del precondicionador debe ser pequeñocomparado con el costo total de resolver el sistema de ecuacionesAu = b.

iii) El sistema Cz =r debe ser fácil de resolver. Esto debe interpre-tarse de dos maneras:

a) El monto de operaciones por iteración debido a la aplicacióndel precondicionador C debe ser pequeño o del mismo orden que lasque se requerirían sin precondicionamiento. Esto es importante si setrabaja en máquinas secuenciales.

b) El tiempo requerido por iteración debido a la aplicación delprecondicionador debe ser pequeño.

[email protected] 162 Antonio Carrillo Ledesma, Et alii

Page 164: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

En computadoras paralelas es importante que la aplicación del precondi-cionador sea paralelizable, lo cual eleva su eficiencia, pero debe de existir unbalance entre la eficacia de un precondicionador en el sentido clásico y su efi-ciencia en paralelo ya que la mayoría de los precondicionadores tradicionalestienen un componente secuencial grande.

Clasificación de los Precondicionadores En general se pueden clasificaren dos grandes grupos según su manera de construcción: los algebraicos o aposteriori y los a priori o directamente relacionados con el problema continuoque lo origina.

B.3.1 Precondicionador a Posteriori

Los precondicionadores algebraicos o a posteriori son los más generales, ya quesólo dependen de la estructura algebraica de la matriz A, esto quiere decirque no tienen en cuenta los detalles del proceso usado para construir el sis-tema de ecuaciones lineales Au = b. Entre estos podemos citar los métodos deprecondicionamiento del tipo Jacobi, SSOR, factorización incompleta, inversaaproximada, diagonal óptimo y polinomial.

Precondicionador Jacobi El método precondicionador Jacobi es el pre-condicionador más simple que existe y consiste en tomar en calidad de pre-condicionador a los elementos de la diagonal de A

Cij =

Aij si i = j

0 si i = j.(B.36)

Debido a que las operaciones de división son usualmente más costosas entiempo de cómputo, en la práctica se almacenan los recíprocos de la diagonalde A.

Ventajas: No necesita trabajo para su construcción y puede mejorarla convergencia.

Desventajas: En problemas con número de condicionamiento muygrande, no es notoria la mejoría en el número de iteraciones.

Precondicionador SSOR Si la matriz original es simétrica, se puede des-componer como en el método de sobrerrelajamiento sucesivo simétrico (SSOR)de la siguiente manera

A = D+ L+ LT (B.37)

dondeD es la matriz de la diagonal principal y L es la matriz triangular inferior.La matriz en el método SSOR se define como

C(ω) =1

2−w

(1

ωD + L

)(1

ωD

)−1(1

ωD+ L

)T

(B.38)

[email protected] 163 Antonio Carrillo Ledesma, Et alii

Page 165: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

en la práctica la información espectral necesaria para hallar el valor óptimo deω es demasiado costoso para ser calculado.

Ventajas: No necesita trabajo para su construcción, puede mejorarla convergencia significativamente.

Desventajas: Su paralelización depende fuertemente del ordenamientode las variables.

Precondicionador de Factorización Incompleta Existen una amplia clasede precondicionadores basados en factorizaciones incompletas. La idea consisteen que durante el proceso de factorización se ignoran ciertos elementos dife-rentes de cero correspondientes a posiciones de la matriz original que son nulos.La matriz precondicionadora se expresa como C = LU , donde L es la matriztriangular inferior y U la superior. La eficacia del método depende de cuánbuena sea la aproximación de C−1 con respecto a A−1.

El tipo más común de factorización incompleta se basa en seleccionar unsubconjunto S de las posiciones de los elementos de la matriz y durante elproceso de factorización considerar a cualquier posición fuera de éste igual acero. Usualmente se toma como S al conjunto de todas las posiciones (i, j)para las que Aij = 0. Este tipo de factorización es conocido como factorizaciónincompleta LU de nivel cero, ILU(0).

El proceso de factorización incompleta puede ser descrito formalmente comosigue:

Para cada k, si i, j > k:

Sij =

Aij −AijA−1ij Akj Si (i, j) ∈ S

Aij Si (i, j) /∈ S.(B.39)

Una variante de la idea básica de las factorizaciones incompletas lo constituyela factorización incompleta modificada que consiste en que si el producto

Aij −AijA−1ij Akj = 0 (B.40)

y el llenado no está permitido en la posición (i, j), en lugar de simplementedescartarlo, esta cantidad se le substrae al elemento de la diagonalAij . Matemáti-camente esto corresponde a forzar a la matriz precondicionadora a tener lamisma suma por filas que la matriz original. Esta variante resulta de interéspuesto que se ha probado que para ciertos casos la aplicación de la factor-ización incompleta modificada combinada con pequeñas perturbaciones haceque el número de condicionamiento espectral del sistema precondicionado seade un orden inferior.

Ventaja: Puede mejorar el condicionamiento y la convergencia sig-nificativamente.

Desventaja: El proceso de factorización es costoso y difícil de pa-ralelizar en general.

[email protected] 164 Antonio Carrillo Ledesma, Et alii

Page 166: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Precondicionador de Inversa Aproximada El uso del precondicionadorde inversas aproximada se ha convertido en una buena alternativa para losprecondicionadores implícitos debido a su naturaleza paralelizable. Aquí se cons-truye una matriz inversa aproximada usando el producto escalar de Frobenius.

Sea S ⊂ Cn, el subespacio de las matrices C donde se busca una inversaaproximada explícita con un patrón de dispersión desconocido. La formulacióndel problema esta dada como: Encontrar C

0∈ S tal que

C0= argmınC∈S

∥∥AC − I∥∥ . (B.41)

Además, esta matriz inicial C0puede ser una inversa aproximada de A en

un sentido estricto, es decir,∥∥∥AC

0− I

∥∥∥ = ε < 1. (B.42)

Existen dos razones para esto, primero, la ecuación (B.42) permite asegurarque C

0no es singular (lema de Banach), y segundo, esta será la base para

construir un algoritmo explícito para mejorar C0y resolver la ecuación Au = b.

La construcción de C0se realiza en paralelo, independizando el cálculo de

cada columna. El algoritmo permite comenzar desde cualquier entrada de lacolumna k, se acepta comúnmente el uso de la diagonal como primera aproxi-mación. Sea rk el residuo correspondiente a la columna k-ésima, es decir

rk = ACk − ek (B.43)

y sea Ik el conjunto de índices de las entradas no nulas en rk, es decir, Ik =i = 1, 2, ..., n | rik = 0 . Si Lk = l = 1, 2, ..., n | Clk = 0 , entonces la nuevaentrada se busca en el conjunto Jk = j ∈ Lc

k | Aij = 0,∀i ∈ Ik . En realidadlas únicas entradas consideradas en Ck son aquellas que afectan las entradas nonulas de rk. En lo que sigue, asumimos que Lk ∪ j =

ik1 , i

k2 , ..., i

kpk

es no

vacío, siendo pk el número actual de entradas no nulas de Ck y que ikpk

= j,para todo j ∈ Jk. Para cada j, calculamos

∥∥ACk − ek

∥∥22= 1−

pk∑

l=1

[det

(Dk

l

)]2

det(Gk

l−2

)det

(Gk

l

) (B.44)

donde, para todo k, det(Gk

0

)= 1 y Gk

les la matriz de Gram de las colum-

nas ik1 , ik2 , ..., i

kpkde la matriz A con respecto al producto escalar Euclideano;

Dk

les la matriz que resulta de remplazar la última fila de la matriz Gk

lpor

akik1,akik

2,, ..., akik

l, con 1 ≤ l ≤ pk. Se selecciona el índice jk que minimiza el

valor de∥∥ACk − ek

∥∥2.

Esta estrategia define el nuevo índice seleccionado jk atendiendo solamenteal conjunto Lk, lo que nos lleva a un nuevo óptimo donde se actualizan todas lasentradas correspondientes a los índices de Lk. Esto mejora el criterio de (B.41)

[email protected] 165 Antonio Carrillo Ledesma, Et alii

Page 167: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

donde el nuevo índice se selecciona manteniendo las entradas correspondientesa los índices de Lk. Así Ck

se busca en el conjunto

Sk = Ck ∈ Rn | Cik = 0,∀i ∈ Lk ∪ jk ,

mk =

pk∑

l=1

det(Dk

l

)

det(Gk

l−2

)det

(Gk

l

)ml (B.45)

donde Cl es el vector con entradas no nulas ikh (1 ≤ h ≤ l) . Cada una de ellas

se obtiene evaluado el determinante correspondiente que resulta de remplazarla última fila del det

(Gk

l

)por et

h, con 1 ≤ l ≤ pk.

Evidentemente, los cálculos de∥∥ACk − ek

∥∥22y de Ck pueden actualizarse

añadiendo la contribución de la última entrada j ∈ Jk a la suma previa de 1 apk−1. En la práctica, det

(Gk

l

)se calcula usando la descomposición de Cholesky

puesto que Gk

les una matriz simétrica y definida positiva. Esto sólo involucra la

factorización de la última fila y columna si aprovechamos la descomposición deGk

l−1. Por otra parte, det(Dk

l

)/det

(Gk

l

)es el valor de la última incógnita del

sistema Gk

ldl =

(akik

1,akik

2,, ..., akik

l

)T

necesitándose solamente una sustitución

por descenso. Finalmente, para obtener Cl debe resolverse el sistema Gk

lvl = el,

con Cik1l = vhl, (1 ≤ h ≤ l) .

Ventaja: Puede mejorar el condicionamiento y la convergencia sig-nificativamente y es fácilmente paralelizable.

Desventaja: El proceso construcción es algo laborioso.

B.3.2 Precondicionador a Priori

Los precondicionadores a priori son más particulares y dependen para su con-strucción del conocimiento del proceso de discretización de la ecuación dife-rencial parcial, dicho de otro modo dependen más del proceso de construcciónde la matriz A que de la estructura de la misma.

Estos precondicionadores usualmente requieren de más trabajo que los deltipo algebraico discutidos anteriormente, sin embargo permiten el desarrollo demétodos de solución especializados más rápidos que los primeros.

Veremos algunos de los métodos más usados relacionados con la solución deecuaciones diferenciales parciales en general y luego nos concentraremos en elcaso de los métodos relacionados directamente con descomposición de dominio.

En estos casos el precondicionador C no necesariamente toma la forma simplede una matriz, sino que debe ser visto como un operador en general. De aquíque C podría representar al operador correspondiente a una versión simplificadadel problema con valores en la frontera que deseamos resolver.

[email protected] 166 Antonio Carrillo Ledesma, Et alii

Page 168: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Por ejemplo se podría emplear en calidad de precondicionador al operadororiginal del problema con coeficientes variables tomado con coeficientes cons-tantes. En el caso del operador de Laplace se podría tomar como precondi-cionador a su discretización en diferencias finitas centrales.

Por lo general estos métodos alcanzan una mayor eficiencia y una conver-gencia óptima, es decir, para ese problema en particular el precondicionadorencontrado será el mejor precondicionador existente, llegando a disminuir elnúmero de iteraciones hasta en un orden de magnitud. Donde muchos de ellospueden ser paralelizados de forma efectiva.

El Uso de la Parte Simétrica como Precondicionador La aplicacióndel método del Gradiente Conjugado en sistemas no auto-adjuntos requiere delalmacenamiento de los vectores previamente calculados. Si se usa como pre-condicionador la parte simétrica

(A+AT )/2 (B.46)

de la matriz de coeficientes A, entonces no se requiere de éste almacenamientoextra en algunos casos, resolver el sistema de la parte simétrica de la matriz Apuede resultar más complicado que resolver el sistema completo.

El Uso de Métodos Directos Rápidos como Precondicionadores Enmuchas aplicaciones la matriz de coeficientes A es simétrica y positivo definida,debido a que proviene de un operador diferencial auto-adjunto y acotado. Estoimplica que se cumple la siguiente relación para cualquier matriz B obtenida deuna ecuación diferencial similar

c1 ≤xTAx

xTBx≤ c2 ∀x (B.47)

donde c1 y c2 no dependen del tamaño de la matriz. La importancia de estapropiedad es que del uso de B como precondicionador resulta un método itera-tivo cuyo número de iteraciones no depende del tamaño de la matriz.

La elección más común para construir el precondicionador B es a partir dela ecuación diferencial parcial separable. El sistema resultante con la matriz Bpuede ser resuelto usando uno de los métodos directos de solución rápida, comopueden ser por ejemplo los basados en la transformada rápida de Fourier.

Como una ilustración simple del presente caso obtenemos que cualquier ope-rador elíptico puede ser precondicionado con el operador de Poisson.

Construcción de Precondicionadores para Problemas Elípticos Em-pleando DDM Existen una amplia gama de este tipo de precondicionadores,pero son específicos al método de descomposición de dominio usado, para elmétodo de subestructuración, los más importantes se derivan de la matriz derigidez y por el método de proyecciones, en este trabajo se detallan en la imple-mentación del método DVS.

[email protected] 167 Antonio Carrillo Ledesma, Et alii

Page 169: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Definición 13 Un método iterativo para la solución de un sistema lineal es lla-mado óptimo, si la razón de convergencia a la solución exacta es independientedel tamaño del sistema lineal.

Definición 14 Un método para la solución del sistema lineal generado pormétodos de descomposición de dominio es llamado escalable, si la razón de con-vergencia no se deteriora cuando el número de subdominios crece.

La gran ventaja de los métodos de descomposición de dominio precondi-cionados entre los que destacan a FETI-DP y BDDC y por ende DVS es queestos métodos pueden ser óptimos y escalables según el tipo de precondicionadora priori que se use en ellos.

B.4 Estructura Óptima de las Matrices en su ImplementaciónComputacional

Una parte fundamental de la implementación computacional de los métodosnuméricos de resolución de sistemas algebraicos, es utilizar una forma óptimade almacenar, recuperar y operar las matrices, tal que, facilite los cálculos queinvolucra la resolución de grandes sistemas de ecuaciones lineales cuya imple-mentación puede ser secuencial o paralela (véase [13]).

El sistema lineal puede ser expresado en la forma matricial Au = f , donde lamatriz A–que puede ser real o virtual– es de tamaño n×n con banda b, peroel número total de datos almacenados en ella es a los más n∗b números de dobleprecisión, en el caso de ser simétrica la matriz, el número de datos almacenadoses menor a (n ∗ b)/2. Además si el problema que la originó es de coeficientesconstantes el número de valores almacenados se reduce drásticamente a sólo eltamaño de la banda b.

En el caso de que el método para la resolución del sistema lineal a usarsea del tipo Factorización LU o Cholesky, la estructura de la matriz cambia,ampliándose el tamaño de la banda de b a 2∗ b+1 en la factorización, en el casode usar métodos iterativos tipo CGM o GMRES la matriz se mantiene intactacon una banda b.

Para la resolución del sistema lineal virtual asociada a los métodos de des-composición de dominio, la operación básica que se realiza de manera reiterada,es la multiplicación de una matriz por un vector v = Cu, la cual es necesariorealizar de la forma más eficiente posible.

Un factor determinante en la implementación computacional, para que estaresulte eficiente, es la forma de almacenar, recuperar y realizar las operacionesque involucren matrices y vectores, de tal forma que la multiplicación se realiceen la menor cantidad de operaciones y que los valores necesarios para realizardichas operaciones queden en la medida de lo posible contiguos para ser alma-cenados en el Cache53 del procesador.

53Nótese que la velocidad de acceso a la memoria principal (RAM) es relativamente lentacon respecto al Cache, este generalmente está dividido en sub-Caches L1 –de menor tamaño yel más rápido–, L2 y hasta L3 –el más lento y de mayor tamaño– los cuales son de tamaño

[email protected] 168 Antonio Carrillo Ledesma, Et alii

Page 170: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Dado que la multiplicación de una matriz C por un vector u, dejando elresultado en v se realiza mediante el algoritmo

for (i=0; i<ren; i++)

s = 0.0;for (j=0; j < col; j++)

s += C[i][j]*u[j];v[i] = s;

Para lograr una eficiente implementación del algoritmo anterior, es necesarioque el gran volumen de datos desplazados de la memoria al Cache y viceversasea mínimo. Por ello, los datos se deben agrupar para que la operación másusada –en este caso multiplicación matriz por vector– se realice con la menorsolicitud de datos a la memoria principal, si los datos usados –renglón de lamatriz– se ponen contiguos minimizará los accesos a la memoria principal, pueses más probable que estos estarán contiguos en el Cache al momento de realizarla multiplicación.

Por ejemplo, en el caso de matrices bandadas de tamaño de banda b, elalgoritmo anterior se simplifica a

for (i=0; i<ren; i++)

s= 0.0;for (k=0; k < ban; k++)

if ((Ind[k] + i) >= 0 && (Ind[k]+i) < ren)s += Dat[i][k]*u[Ind[k]+i];

v[i]=s;

Si, la solicitud de memoria para Dat[i] se hace de tal forma que los datos delrenglón estén continuos –son b números de punto flotante–, esto minimizarálos accesos a la memoria principal en cada una de las operaciones involucradasen el producto, como se explica en las siguientes secciones.

muy reducido con respecto a la RAM.Por ello, cada vez que las unidades funcionales de la Unidad de Aritmética y Lógica requieren

un conjunto de datos para implementar una determinada operación en los registros, solicitanlos datos primeramente a los Caches, estos consumen diversa cantidad de ciclos de reloj paraentregar el dato si lo tienen –pero siempre el tiempo es menor que solicitarle el dato a lamemoria principal–; en caso de no tenerlo, se solicitan a la RAM para ser cargados a loscaches y poder implementar la operación solicitada.

[email protected] 169 Antonio Carrillo Ledesma, Et alii

Page 171: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

B.4.1 Matrices Bandadas

En el caso de las matrices bandadas de banda b –sin pérdida de generalidad ypara propósitos de ejemplificación se supone pentadiagonal– típicamente tienela siguiente forma

A =

a1 b1 c1d2 a2 b2 c2

d3 a3 b3 c3d4 a4 b4 c4

e5 d5 a5 b5 c5e6 d6 a6 b6

e7 d7 a7 b7e8 d8 a8 b8

e9 d9 a9

(B.48)

la cual puede ser almacenada usando el algoritmo (véase [13]) Compressed Dia-gonal Storage (CDS), optimizado para ser usado en C++, para su almace-namiento y posterior recuperación. Para este ejemplo en particular, se hará usode un vector de índices

Ind = [−5,−1, 0,+1,+5] (B.49)

y los datos serán almacenados usando la estructura

Dat =

0 0 a1 b1 c10 d2 a2 b2 c20 d3 a3 b3 c30 d4 a4 b4 c4e5 d5 a5 b5 c5e6 d6 a6 b6 0e7 d7 a7 b7 0e8 d8 a8 b8 0e9 d9 a9 0 0

(B.50)

de tal forma que la matriz A puede ser reconstruida de forma eficiente. Paraobtener el valor Ai,j , calculo ind = j − i, si el valor ind esta en la lista deíndices Ind–supóngase en la columna k–, entonces Ai,j = Datik, en otro casoAi,j = 0.

Casos Particulares de la Matriz Bandada A Básicamente dos casos par-ticulares surgen en el tratamiento de ecuaciones diferenciales parciales: El primercaso es cuando el operador diferencial parcial es simétrico y el otro, en el quelos coeficientes del operador sean constantes.

Para el primer caso, al ser la matriz simétrica, sólo es necesario almacenarla parte con índices mayores o iguales a cero, de tal forma que se buscara elíndice que satisfaga ind = |j − i| , reduciendo el tamaño de la banda a b/2 en lamatriz A.

[email protected] 170 Antonio Carrillo Ledesma, Et alii

Page 172: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Para el segundo caso, al tener coeficientes constantes el operador diferencial,los valores de los renglones dentro de cada columna de la matriz son iguales, ysólo es necesario almacenarlos una sola vez, reduciendo drásticamente el tamañode la matriz de datos.

Implementación de Matrices Bandadas Orientada a Objetos en C++Una forma de implementar la matriz bandada A de banda b en C++ es mediante:

// Creaciondouble **Dat;Dat = new double*[ren];for (i = 0; i < ren; i++) Dat[i] = new double[b];int *Ind;Ind = new int[b];// Inicializacionfor (i = 0; i < ren; i++)

for (j = 0; j < b; j++) Dat[i][j] = 0.0;for (i = 0; i < b; i++) Ind[i] = 0;

B.4.2 Matrices Dispersas

Las matrices dispersas de a lo más b valores distintos por renglón –sin pérdidade generalidad y para propósitos de ejemplificación se supone b = 3–que surgenen métodos de descomposición de dominio para almacenar algunas matrices,típicamente tienen la siguiente forma

A =

a1 b1 c1a2 b2 c2

a3 b3 c3a4 b4

a5 b5 c5a6 b6 c6

a7 b7 c7a8 b8 c8

a9 b9

(B.51)

la cual puede ser almacenada usando el algoritmo (véase [13]) Jagged Diago-nal Storage (JDC), optimizado para ser usado en C++. Para este ejemplo en

[email protected] 171 Antonio Carrillo Ledesma, Et alii

Page 173: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

particular, se hará uso de una matriz de índices

Ind =

1 6 92 5 85 8 91 4 03 6 91 2 37 8 94 7 87 8 0

(B.52)

y los datos serán almacenados usando la estructura

Dat =

a1 b1 c1a2 b2 c2a3 b3 c3a4 b4 0a5 b5 c5a6 b6 c6a7 b7 c7a8 b8 c8a9 b9 0

(B.53)

de tal forma que la matriz A puede ser reconstruida de forma eficiente. Paraobtener el obtener el valor Ai,j , busco el valor j en la lista de índices Ind dentrodel renglón i, si lo encuentro en la posición k, entonces Ai,j = Datik, en otrocaso Ai,j = 0.

Casos Particulares de la Matriz Dispersa A Si la matriz A, que al seralmacenada, se observa que existen a lo más r diferentes renglones con valoresdistintos de los n con que cuenta la matriz y si r << n, entonces es posible sóloguardar los r renglones distintos y llevar un arreglo que contenga la referenciaal renglón almacenado.

Implementación de Matrices Dispersas Orientada a Objetos en C++Una forma de implementar la matriz bandada A de banda b en C++ es mediante:

// Creacióndouble **Dat;Dat = new double*[ren];for (i = 0; i < ren; i++) Dat[i] = new double[b];int **Ind;Ind = new int*[ren];for (i = 0; i < ren; i++) Ind[i] = new int[b];// Inicializaciónfor (i = 0; i < ren; i++)

for (j = 0; j < b; j++) Dat[i][j] = 0.0, Ind[i][j] = -1;

[email protected] 172 Antonio Carrillo Ledesma, Et alii

Page 174: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

B.4.3 Multiplicación Matriz-Vector

Los métodos de descomposición de dominio requieren por un lado la resoluciónde al menos un sistema lineal y por el otro lado requieren realizar la operaciónde multiplicación de matriz por vector, i.e. Cu de la forma más eficiente posible,por ello los datos se almacenan de tal forma que la multiplicación se realice enla menor cantidad de operaciones.

Dado que la multiplicación de una matriz C por un vector u, dejando elresultado en v se realiza mediante el algoritmo:

for (i=0; i<ren; i++)

s = 0.0;for (j=0; j < col; j++)

s += C[i][j]*u[j];v[i] = s;

En el caso de matrices bandadas, se simplifica a:

for (i=0; i<ren; i++)

s= 0.0;for (k=0; k < ban; k++)

if ((Ind[k] + i) >= 0 && (Ind[k]+i) < ren)s += Dat[i][k]*u[Ind[k]+i];

v[i]=s;

De forma similar, en el caso de matrices dispersas, se simplifica a:

for (i=0; i<ren; i++)

s = 0.0, k = 0while (Ind[i][k] != -1)

s += Dat[i][k]*u[Ind[i][k]];k++;if (k >= b) break;

v[i] = s;

[email protected] 173 Antonio Carrillo Ledesma, Et alii

Page 175: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

De esta forma, al tomar en cuenta la operación de multiplicación de unamatriz por un vector, donde el renglón de la matriz involucrado en la multipli-cación queda generalmente en una región contigua del Cache, se hace óptima laoperación de multiplicación de matriz por vector.

[email protected] 174 Antonio Carrillo Ledesma, Et alii

Page 176: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

C Marco Teórico del Espacio de Vectores Deriva-dos DVS

En el marco de los métodos de descomposición de dominio sin traslape se dis-tinguen dos categorías (véase [18], [33], [34], [44], [45] y [49]): Los esquemasduales –como es el caso del método Finite Element Tearing and Interconnect(FETI) y sus variantes– los cuales usan multiplicadores de Lagrange; y losesquemas primales –como es el caso del método Balancing Domain Decom-position (BDD) y sus variantes– que tratan el problema sin el recurso de losmultiplicadores de Lagrange.

En este trabajo se ha derivado un sistema unificador (véase [59] y [61]), elesquema del espacio de vectores derivados (DVS), este es un esquema primalsimilar a la formulación BDD. Donde una significativa diferencia entre nuestroesquema y BDD es que en la formulación DVS el problema es transformado enotro definido en el espacio de vectores derivados, el cual es un espacio productoconteniendo funciones discontinuas, es en este espacio en el cual todo el trabajodel método es realizado.

Por otro lado, en la formulación BDD, el espacio original de funciones con-tinuas nunca es abandonado completamente y constantemente se regresa a losgrados de libertad asociados con el espacio de funciones continuas pertenecientesa las subestructuras, el cual en su formulación juega el rol del espacio producto.

Aunque el marco DVS es un esquema primal, las formulaciones duales puedenser acomodadas en él; esta característica permite unificar en este terreno a am-bos esquemas, duales y primales; en particular a BDDC y FETI-DP. Tambiénel espacio DVS constituye un espacio de Hilbert con respecto al adecuado pro-ducto interior –el producto interior Euclidiano– y mediante la utilización dela formulación DVS, se saca provecho de la estructura del espacio de Hilbertobteniendo de esta manera una gran simplicidad para el algoritmo definido enel espacio de funciones definidas por tramos y es usado para establecer unaclara correspondencia entre los problemas a nivel continuo y aquellos obtenidosdespués de la discretización.

C.1 Formulaciones Dirichlet-Dirichlet y Neumann-Neumanna Nivel Continuo

Para poner la metodología desarrollada en una adecuada perspectiva, se iniciapor revisar algunos conceptos elementales sobre las formulaciones mencionadasen el título de esta sección. También se toman algunas herramientas presentadasdel trabajo “Theory of differential equations in discontinuous picewise-definedfunctions” (véase [54]).

El problema que se considera aquí54 es: “Encontrar u ∈ H2 (Ω) , tal queLu = fΩ, en Ωu = 0, sobre ∂Ω

” (C.1)

54La notación que se usa es la estándar para los espacios de Sobolev (véase [2]).

[email protected] 175 Antonio Carrillo Ledesma, Et alii

Page 177: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

así, bajo las adecuadas condiciones (véase [6]), la existencia y la unicidad dela solución de este problema está garantizada. Este problema puede tambiénformularse en espacio de funciones definidas por tramos (véase [54]).

Sin pérdida de generalidad, sea el dominio Ω descompuesto en dos subdo-minios Ω1 y Ω2, como se muestra en la figura:

Figura 29: Partición del dominio Ω en dos subdominios Ω1 y Ω2.

Supóngase que el operador diferencial L es de segundo orden y se considerael espacio H2 (Ω1) ⊕ H2 (Ω2) de funciones discontinuas definidas por tramos(véase [54]). Una función en tal espacio es definida independientemente encada uno de los dos subdominios y sus restricciones a Ω1 y Ω2 pertenecen aH2 (Ω1) y H2 (Ω2) respectivamente. Generalmente la discontinuidad a travésde la interfase Γ tiene un salto no cero de la función misma y de sus derivadasnormales. La notación para el ‘salto’ y el ‘promedio’ a través de Γ esta dadopor

[[u]] ≡ u+ − u− y·

u =

1

2(u+ + u−) , sobre Γ (C.2)

respectivamente.Nótese que, el espacio H2 (Ω) es un subespacio de H2 (Ω1) ⊕H2 (Ω2) . En

efecto, sea u ∈ H2 (Ω1)⊕H2 (Ω2) , entonces u ∈ H2 (Ω) si y sólo si

[[u]] =

[[∂u

∂n

]]= 0, sobre Γ. (C.3)

Por lo tanto, una formulación del problema dado en la Ec.(C.1) es: “Buscara u ∈ H2 (Ω1)⊕H2 (Ω2) , tal que

Lu = fΩ, en Ω[[u]] = 0 y

[[∂u∂n

]]= 0, sobre Γ

u = 0, sobre ∂Ω”. (C.4)

Se debe observar que, cuando el valor de la solución u es conocida sobre Γ,entonces u puede ser obtenida en cualquier lugar en Ω por la resolución de dosproblemas Dirichlet con valor en la frontera, uno en cada uno de los subdominios

[email protected] 176 Antonio Carrillo Ledesma, Et alii

Page 178: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Ω1 y Ω2 –el título de Dirichlet-Dirichlet para el procedimiento es por el hechode resolver este tipo de problemas–.

De manera similar, cuando los valores de la derivada normal ∂u∂nson conocidos

sobre Γ, entonces u puede ser obtenida en cualquier lugar en Ω por la resoluciónde dos problemas Neumann con valores en la frontera, uno para cada uno de lossubdominios Ω1 y Ω2 –el título de Neumann-Neumann para el procedimientoes por el hecho de resolver este tipo de problemas–.

Estas observaciones son las bases de los dos enfoques de los métodos dedescomposición de dominio que se consideran en esta sección: Los métodosDirichlet-Dirichlet y Neumann-Neumann.

C.2 El Problema no Precondicionado Dirichlet-Dirichlet

Para el problema no precondicionado Dirichlet-Dirichlet, se toma uΓ como larestricción a Γ de la solución u de la Ec.(C.4), entonces u es la única soluciónde los siguientes dos problemas Dirichlet

Lu = fΩ, en Ωα, α = 1, 2u = uΓ, sobre Γu = 0, sobre ∂Ω

. (C.5)

El enfoque Dirichlet-Dirichlet al método de descomposición de dominio con-siste en buscar para la función uΓ, esencialmente una elección de sucesiones defunciones de prueba: u0Γ, u

1Γ, ..., u

nΓ, ..., hasta que se encuentre la función buscada.

A este respecto, una primera pregunta es: ¿cómo se reconoce cuando lafunción de prueba es satisfactoria?. Se sabe que cuando uΓ es la restriccióna Γ de la solución del problema, la solución que es obtenida por la resoluciónde los dos problemas con valores en la frontera de la Ec.(C.5) satisfacen lascondiciones de salto indicadas en la Ec.(C.4). Ahora, en el caso del enfoqueDirichlet-Dirichlet, el salto de la función se nulifica necesariamente, ya que

[[u]] = u+ − u− = uΓ − uΓ = 0 (C.6)

sin embargo, por lo general la condición[[∂u

∂n

]]= 0 (C.7)

no es satisfecha. La selección de la función de prueba uΓ será satisfactoria, si ysólo si, la Ec.(C.7) se satisface.

Si se escribe la solución del problema u de la Ec.(C.4) como

u = up + v (C.8)

donde up satisface Lup = fΩ, en Ωα, α = 1, 2up = 0, sobre Γup = 0, sobre ∂Ω

(C.9)

[email protected] 177 Antonio Carrillo Ledesma, Et alii

Page 179: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

y por lo tanto v satisfaceLv = 0, en Ωα, α = 1, 2v = uΓ, sobre Γv = 0, sobre ∂Ω

(C.10)

entonces, la elección de la función de prueba uΓ será satisfactoria, si y sólo si[[∂v

∂n

]]= −

[[∂up

∂n

]](C.11)

desde este punto de vista, la función v ∈ H2 (Ω1)⊕H2 (Ω2) . Así, se busca unafunción tal que

Lv = 0, en Ωα, α = 1, 2

[[v]] = 0,[[

∂v∂n

]]= −

[[∂up∂n

]], sobre Γ

v = 0, sobre ∂Ω

. (C.12)

Esta condición puede expresarse teniendo en mente el operador de Steklov-Poincaré55 τ , el cual para cualquier función u definida sobre Γ, se genera otrafunción definida sobre Γ, a saber (véase [3])

τ (uΓ) ≡[[∂v

∂n

]], sobre Γ (C.13)

donde v satisface la Ec.(C.10). Entonces la Ec.(C.12) es equivalente a

τ (uΓ) ≡ −[[∂up

∂n

]], sobre Γ. (C.14)

C.3 El Problema no Precondicionado Neumann-Neumann

Para el caso del problema no precondicionado Neumann-Neumann, se toma a ucomo la solución de la Ec.(C.4) y sea qΓ ≡ ∂u

∂nsobre Γ, entonces u es la única

solución de los siguientes dos problemas NeumannLu = fΩ, en Ωα, α = 1, 2∂u∂n

= qΓ sobre Γu = 0 sobre ∂Ω

. (C.15)

El título del enfoque Neumann-Neumann proviene de el hecho que la Ec.(C.15)implica resolver un problema Neumann en el subdominio Ω1 y otro problemaNeumann en Ω2. Este enfoque consiste en buscar una función qΓ –independien-temente del valor de qΓ–, ya que, cualquier solución de la Ec.(C.15) satisface

[[∂u

∂n

]]=

(∂u

∂n

)

+

−(∂u

∂n

)

−= qΓ − qΓ = 0 (C.16)

55El operador de Steklov-Poincaré generalmente se define como la ecuación para la traza dela solución exacta u sobre Γ (véase [40]).

[email protected] 178 Antonio Carrillo Ledesma, Et alii

Page 180: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

sin embargo, por lo general, la condición

[[u]] = 0 (C.17)

no es satisfecha. La selección de la función de prueba uΓ será satisfactoria, si ysólo si, la Ec.(C.17) se satisface.

Si se toma nuevamente una solución u = up + v como en la Ec.(C.8), dondeup ahora satisface

Lup = fΩ, en Ωα, α = 1, 2∂up∂n

= 0, sobre Γup = 0, sobre ∂Ω

(C.18)

y por lo tanto v satisfaceLv = 0, en Ωα, α = 1, 2∂v∂n

= qΓ, sobre Γv = 0, sobre ∂Ω

(C.19)

entonces, la función v ∈ H2 (Ω1)⊕H2 (Ω2) es caracterizada porLv = 0, en Ωα, α = 1, 2[[v]] = [[up]] ,

[[∂v∂n

]]= 0, sobre Γ

v = 0, sobre ∂Ω. (C.20)

Para la formulación Neumann-Neumann existe una contraparte –el ope-rador µ– al operador de Steklov-Poincaré τ , dada cualquier función qΓ, definidasobre Γ, se define µ (qΓ) , esta será una función definida sobre Γ dada por

µ (qΓ) ≡ [[v]] , sobre Γ (C.21)

aquí, v satisface la Ec.(C.19). Entonces, la Ec.(C.20) es equivalente a

µ (qΓ) ≡ − [[up]] , sobre Γ. (C.22)

C.4 Discretización del Dominio para los Métodos Dualesy Primales

Dos de los enfoques más comúnmente usados (véase [18], [31], [32], [33], [34], [44],[45], [46], [48] y [49]) en los métodos de descomposición de dominio son FETI-DP y BDDC. Ambos, inicializan con la ecuación diferencial parcial y de ella,los grados de libertad son asociados con las funciones de base usadas. BDDCes un método directo, i.e. es un método que no hace uso de Multiplicadores deLagrange, mientras que FETI-DP trabaja en el espacio producto mediante eluso de los Multiplicadores de Lagrange.

En los métodos FETI-DP y BDDC, el dominio Ω en el cual se define elproblema, es subdividido en E subdominios ‘sin traslape’ Ωα, α = 1, 2, ..., E, esdecir

Ωα ∩Ωβ = ∅ ∀α = β y Ω =E⋃

α=1

Ωα (C.23)

[email protected] 179 Antonio Carrillo Ledesma, Et alii

Page 181: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

y al conjunto

Γ =E⋃

α=1

Γα, si Γα = ∂Ωα\∂Ω (C.24)

se le llama la frontera interior del dominio Ω. La notación ∂Ω y ∂Ωα, α =1, ..., E es tomada de la frontera del dominio Ω y la frontera del subdominio Ωi

respectivamente. Claramente

∂Ω ⊂E⋃

α=1

∂Ωα y Ω =

(E⋃

α=1

Ωα

)⋃Γ. (C.25)

Se denota por H al máximo diámetro Hα = Diam(Ωα) de cada Ωα quesatisface Diam(Ωα) ≤ H para cada α = 1, 2, ..., E, además, cada subdominioΩα es descompuesto en un mallado fino Th de K subdominios mediante unatriangulación Ωj de modo que este sea conforme, se denota por h al máximodiámetro hj = Diam(Ωj) de cada Ωα que satisface Diam(Ωj) ≤ h para cadaj = 1, 2, ...,K de cada α = 1, 2, ..., E.

Para iniciar la discusión, se considera un ejemplo particular, de un conjuntode veinticinco nodos de una descomposición del dominio Ω ‘sin traslape’, seasume que la numeración de los nodos es de izquierda a derecha y de arribahacía abajo, véase figura (30)

Figura 30: Conjunto de nodos originales

En este caso el conjunto de nodos originales, se particiona usando una mallagruesa de cuatro subdominios Ωα α = 1, 2, 3, 4, véase figura (31).

Entonces se tiene un conjunto de nodos y un conjunto de subdominios, loscuales se enumeran usando un conjunto de índices

N ≡ 1, 2, . . . , 25 y E ≡ 1, 2, 3, 4 (C.26)

[email protected] 180 Antonio Carrillo Ledesma, Et alii

Page 182: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Figura 31: Nodos en una descomposición gruesa de cuatro subdominios

respectivamente. Entonces, el conjunto de ‘nodos originales’ correspondientea tal descomposición de dominio ‘sin traslape’, en realidad tiene un ‘traslape’,esto es por que la familia de los cuatros subconjuntos

N1 = 1, 2, 3, 6, 7, 8, 11, 12, 13 (C.27)

N2 = 3, 4, 5, 8, 9, 10, 13, 14, 15N3 = 11, 12, 13, 16, 17, 18, 21, 22, 23N4 = 13, 14, 15, 18, 19, 20, 23, 24, 25

no son disjuntos. En efecto, por ejemplo

N1 ∩ N2 = 3, 8, 13 . (C.28)

Con la idea de obtener una ‘verdadera descomposición de dominio sin trasla-pe’, se reemplaza el conjunto de ‘nodos originales’ por otro conjunto, el conjuntode los ‘nodos derivados’ en los cuales se satisfaga la condición de que sea unaverdadera descomposición de dominio sin traslapes.

C.5 Una Verdadera Descomposición de Dominio sin Traslapes

A la luz de lo visto en la sección anterior, es ventajoso trabajar con una des-composición de dominio sin traslape alguno del conjunto de nodos y, para estefin, se reemplaza el conjunto N de ‘nodos originales’ por otro conjunto de ‘nodosderivados’, los cuales son denotados por Xα, donde cada nodo en la fronterainterior Γ se parte en un número que llamaremos la multiplicidad del nodo y esdefinida como el número de subdominios que comparten al nodo. Cada nododerivado es definido por un par de números: (p,α) , donde p corresponde a unnodo perteneciente a Ωp, i.e. un ‘nodo derivado’ es el par de números (p, α) talque p ∈ Nα, véase figura (32).

[email protected] 181 Antonio Carrillo Ledesma, Et alii

Page 183: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Figura 32: Mitosis de los nodos en la frontera interior

Se denota con X el conjunto total de nodos derivados; nótese que el totalde nodos derivados para el ejemplo de la sección anterior es de 36, mientras elnúmero de nodos originales es de 25.

Entonces, se define Xα como el conjunto de nodos derivados que puede serescrito como

Xα =(p, α) | α ∈ E y p ∈ Nα

. (C.29)

Para el ejemplo referido, tomando α sucesivamente como 1, 2, 3 y 4, se tienela familia de cuatro subconjuntos,

X1,X2,X3,X4

(C.30)

la cual es una descomposición de dominio sin traslape véase figura (33), dondeel conjunto X satisface

X =4⋃

α=1

Xα y Xα ∩Xβ = ∅ cuando α = β. (C.31)

Por supuesto, la cardinalidad de los subdominio –el número de nodos decada uno de los subdominios es 36/4– es igual a 9.

Dada la discusión anterior, y para el desarrollo de una teoría general, sea elconjunto de nodos-índice y de subdominio-índice original definidos como

N = 1, ..., n y E = 1, ..., E (C.32)

[email protected] 182 Antonio Carrillo Ledesma, Et alii

Page 184: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Figura 33: Conjunto de nodos derivados

respectivamente, donde n es el número total de nodos que se obtienen de la ver-sión discretizada de la ecuación diferencial que se quiere resolver –generalmente,los nodos de frontera no son incluidos–.

Se define al conjunto de ‘nodos derivados’ por el par de números (p, α) , talque p ∈ Nα. Entonces, el conjunto de todos los nodos derivados, satisface

Xα ≡(p, α) | α ∈ E y p ∈ Nα

(C.33)

y para evitar repeticiones, ya que en lo sucesivo se hará uso extensivo de losnodos derivados, la notación (p, α) se reserva para el par tal que (p, α) ∈ X.

Nótese que la cardinalidad de X es siempre mayor que la cardinalidad deN, excepto en el caso trivial cuando E = 1. En lo que sigue los nodos derivadosserán referidos, simplemente como nodos.

Por otro lado, dado cualquier nodo original, p ∈ N , se define el conjuntoZ (p) ⊂ X, como el conjunto de los nodos derivados de p que puede ser escritocomo (p, α) , para algún 1 ≤ α ≤ E. Además, dado cualquier nodo (p, α) ∈ X,su multiplicidad es definida por la cardinalidad del conjunto Z (p) ⊂ X y esdenotada como m (p) .

Los nodos derivados son clasificados como ‘nodos internos’ o de ‘fronterainterna’, dependiendo si su multiplicidad es uno o más grande que uno. Lossubconjuntos I ⊂ Ω y Γ ⊂ Ω son el conjunto de nodos internos y de fronterainterna respectivamente, que satisfacen la siguiente relación

X = I ∪ Γ y I ∩ Γ = ∅ (C.34)

nótese que para el ejemplo mostrado en la figura 3, la cardinalidad de Γ es 20.Para cada α = 1, 2, . . . , E, se define

Γα = Γ ∩Xα (C.35)

[email protected] 183 Antonio Carrillo Ledesma, Et alii

Page 185: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

entonces, la familia de subconjuntos Γ1,Γ2, . . . ,ΓE es una partición de Γ, enel sentido de que

Γ ≡E⋃

α=1

Γα mientras Γα ∩ Γβ = ∅ cuando α = β. (C.36)

En este desarrollo, Γ es descompuesto dentro de dos subconjuntos

π ⊂ Γ ⊂ X y ∆ ⊂ Γ ⊂ X (C.37)

los nodos pertenecientes al primer conjunto π son llamados ‘primales’, mientrasque si estos pertenecen al segundo conjunto ∆ son llamados ‘duales’, donde

∆ ≡ Γ− π

entoncesΓ = π ∪∆ mientras π ∩∆ = ∅. (C.38)

Además, se defineΠ ≡ I ∪ π

en este caso, cada una de las familias de los subconjuntos I, π,∆ y Π,∆son descomposiciones sin traslape de Ω, es decir,

X = I ∪ π ∪∆ mientras que I ∩ π = π ∩∆ = ∆ ∩ I = ∅ (C.39)

yX = Π ∪∆ mientras que Π ∩∆ = ∅. (C.40)

Nótese que todos los conjuntos considerados hasta ahora son dimensional-mente finitos. Por lo tanto, cualquier función con valores en los reales56 definidaen cualquier conjunto define unívocamente un vector dimensionalmente finito.

Para el planteamiento de los métodos Dual-Primal, los nodos de la interfaseson clasificados dentro de nodos Primales y Duales. Entonces se define:

• NI ⊂ N como el conjunto de nodos interiores.

• NΓ ⊂ N como el conjunto de nodos de la interfase.

• Nπ ⊂ N como el conjunto de nodos primales.

• N∆ ⊂ N como el conjunto de nodos duales.

El conjunto Nπ ⊂ NΓ es escogido arbitrariamente y entonces N∆ es definidocomo N∆ ≡ NΓ − Nπ. Cada una de las siguientes dos familias de nodos sondisjuntas:

NI , NΓ

y

NI , Nπ, N∆

.

56Cuando se consideren sistemas de ecuaciones, como en los problemas de elasticidad, talesfunciones son vectoriales.

[email protected] 184 Antonio Carrillo Ledesma, Et alii

Page 186: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Además, estos conjuntos de nodos satisfacen las siguientes relaciones:

N = NI ∪ NΓ = NI ∪ Nπ ∪ N∆ y NΓ = Nπ ∪ N∆ (C.41)

adicionalmente se define los siguientes conjuntos de X :

• I ≡(p, α) | p ∈ NI

.

• Γ ≡(p, α) | p ∈ NΓ

.

• π ≡(p, α) | p ∈ Nπ

.

• ∆ ≡(p,α) | p ∈ N∆

.

En vista de todo lo anterior, la familia de subconjuntosX1, ...,XE

es una

descomposición de dominio del conjunto de nodos derivados en donde no se tieneningún traslape (véase [59] y [61]), es decir

X =E⋃

α=1

Xα y Xα ∩Xβ = ∅ cuando α = β. (C.42)

C.6 El Problema Original

El esquema DVS puede ser aplicado al sistema matricial que es obtenido des-pués de la discretización, este procedimiento es independiente del método dediscretización usado –puede ser el método de Elemento Finito, DiferenciasFinitas o cualquier otro–. El procedimiento requiere de algunas suposicionesque deben de ser satisfechas, las cuales se explican a continuación (véase [59]y [61]). Tales suposiciones están dadas en términos del sistema matricial y dosconceptos adicionales: los nodos originales y una familia de subconjuntos detales nodos, los cuales están asociados con la partición del dominio.

Para ilustrar como estos conceptos son introducidos, se considera la formu-lación variacional de la versión discretizada general de un problema de valoresen la frontera, el cual consiste en encontrar u ∈ V, tal que

a (u, v) = (g, v) , ∀v ∈ V (C.43)

aquí, V es un espacio lineal de dimensión finita de funciones real valuadas57

definidas en cierto dominio espacial Ω, mientras g ∈ V es una función dada.Sea N = 1, ..., n el conjunto de índices, el cual es el número de nodos

usados en la discretización, y sea ϕ1, ..., ϕn ⊂ V una base de V, tal que paracada i ∈ N, ϕi = 1 en el nodo i y cero en cualquier otro nodo. Entonces, ya queu ∈ V, entonces

u =∑

u iϕi (C.44)

57La teoría aquí presentada, con ligeras modificaciones, trabaja también en el caso de quelas funciones de V sean vectoriales.

[email protected] 185 Antonio Carrillo Ledesma, Et alii

Page 187: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

aquí,u i es el valor de u en el nodo i. Sea

u y

f vectores58u ≡

(u1, ...,

un

)

y

f ≡(

f 1, ...,

f n

), donde

f i ≡ (g, ϕi) , i ∈ N. (C.45)

La formulación variacional de la Ec.(C.43) es equivalente a

Au =

f (C.46)

donde la matriz

A, será referida como la ‘matriz original’ y esta es definidamediante

A ≡(

Aij

)(C.47)

con

Aij ≡ a(ϕi, ϕj

)i, j = 1, ..., n (C.48)

después de que el problema ha sido discretizado –a(ϕi, ϕj

)son las funciones

base usadas en la discretización–, donde se supone que el dominio Ω ha sidoparticionado mediante un conjunto de subdominios no traslapados Ω1, ...,ΩE;más precisamente, para cada α = 1, ..., E; Ωα es abierto y

Ωα ∩Ωβ = ∅ ∀α = β y Ω =E⋃

α=1

Ωα (C.49)

donde Ωα es la clausura estándar del conjunto Ωα.El conjunto de subdominios-índices es denotado por E = 1, ..., E. Por otro

lado Nα, α = 1, ...,E, denota a los nodos originales que corresponden a los nodospertenecientes a Ωα. Como es usual, los nodos son clasificados en ‘interiores’ y‘nodos de interfase’; un nodo es interior, si pertenece sólo a la clausura de unasubpartición del dominio, y es un nodo de la interfase cuando pertenece a másde uno.

Las funciones real valuadas definidas en N = 1, ..., n constituyen un es-pacio lineal el cual será denotado por W y referido como el ‘espacio vectorialoriginal’. Los vectores

u ∈ W se escriben como

u =

(u1, ...,

un

), donde

u i

para i = 1, ..., n, son las componentes de un vectoru.

Entonces, el ‘problema original’ consiste en “Dada

f ∈ W , encontrar au ∈ W tal que la Ec.(C.46) se satisfaga”.

A lo largo de todo el desarrollo de esta metodología, la matriz original

A se

asume como no singular –esto define una biyección de W sobre sí misma–, paradefinir las condiciones sobre las cuales el esquema DVS es aplicable para matrices

58Hablando estrictamente estos deberían ser vectores columna, sin embargo, cuando seincorporan en el texto, se escriben como vectores renglón para ahorrar espacio de escritura.

[email protected] 186 Antonio Carrillo Ledesma, Et alii

Page 188: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

indefinidas y/o no simétricas (véase [57]), se asume lo siguiente, (axioma): “Seanlos índices i ∈ Nα y j ∈ Nβ de nodos interiores originales, entonces

Aij = 0 siempre y cuando α = β”. (C.50)

Así, para cada α = 1, ..., E se define el subespacio de vectores Wα ⊂ W ,el cual es constituido por los vectores que tienen la propiedad que para cadai /∈ Nα, esta i-ésima componente se nulifica. Usando esta notación se define elespacio producto W por

W ≡E∏

α=1

Wα = W 1 × ...× WE. (C.51)

C.7 El Espacio de Vectores Derivado

Usando la notación de la sección anterior, en la cual se definió el ‘problemaoriginal’ dado por la Ec.(C.46), este es un problema formulado en el espaciovectorial original W , en el desarrollo que sigue se transforma en un problemaque será reformulado en el espacio W, el cual es un espacio definido sobre lasfunciones discontinuas.

Para ello, se entiende por un ‘vector derivado’ una función real-valuadadefinida en el conjunto X de nodos derivados59 . El conjunto de vectores deriva-dos constituyen un espacio lineal, el cual será referido como el ‘espacio de vec-tores derivados’. De manera análoga para cada subconjunto local de nodosderivados en el subespacio Xα existe un ‘subespacio local de vectores derivados’Wα, el cual es definido con la condición de que los vectores deWα se nulifiquenen cada nodo derivado que no pertenezca a Xα. Una manera formal de iniciaresta definición es

u ∈Wα ⊂W, si y sólo si u (p, β) = 0 cuando β = α. (C.52)

Una importante diferencia entre los subespacios Wα y Wα puede se notadaal observar que Wα ⊂W, mientras que Wα W. En particular

W ≡E∏

α=1

Wα = W 1 ⊕ ...⊕WE (C.53)

en palabras: El espacio W es el producto de subespacios de la familiaW 1, ..., WE

(C.54)

pero al mismo tiempo es la suma directa de la familiaW 1, ...,WE

. (C.55)

59Para el tratamiento de sistemas de ecuaciones, tales como las involucradas en eltratamiento de la elasticidad lineal, tales funciones serán vectoriales.

[email protected] 187 Antonio Carrillo Ledesma, Et alii

Page 189: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

En vista de la Ec.(C.53) es sencillo establecer una biyección –de hecho, unisomorfismo– entre el espacio de vectores derivados y el espacio producto. Porlo tanto, en lo que sigue, se identifica a ambos como uno solo.

Para cada par de vectores60 u ∈ W y w ∈ W , el ‘producto interior Eucli-diano’ es definido por

u · w =∑

(p,α)∈X

u (p, α)w (p, α) . (C.56)

Una importante propiedad es que el espacio de vectores derivados W, cons-tituye un espacio de Hilbert dimensionalmente finito con respecto al productointerior Euclidiano. Nótese que el producto interior Euclidiano es independiente

de la forma de la matriz original

A; en particular esta puede ser simétrica, nosimétrica o indefinida.

La inyección natural R : W →W, de W sobreW , es definida por la condiciónde que, para todo u ∈ W , se obtenga

(Ru) (p, α) = u (p) , ∀ (p, α) ∈ X. (C.57)

La ‘multiplicidad’, m (p) de cualquier nodo original p ∈ N es caracterizadapor la propiedad (véase [58] y [57]),

E∑

α=1

(Ru) (p, α) = m(p)u (p) . (C.58)

Además, el espacio W puede ser descompuesto en dos subespacios ortogo-nales complementarios W11 ⊂W y W12 ⊂W , tal que

W = W11 +W12 y 0 = W11 ∩W12 (C.59)

donde, el subespacio W12 ⊂W es la inyección natural de W dentro de W ; i.e.

W12 ≡ RW ⊂W (C.60)

y W11 ⊂ W es el complemento ortogonal con respecto al producto interiorEuclidiano. Además se define la inversa de R : W → W, cuando ésta es res-tringida a W12 ⊂W la cual siempre existe y es denotada por R−1 : W12 → W .

Es costumbre el uso de la notación de suma directa

W = W12 ⊕W12 (C.61)

cuando el par de condiciones de la Ec.(C.59) son satisfechas.

60En el caso vectorial –que surge en aplicaciones como en la teoría de elasticidad– cuandose trabajan sistemas de ecuaciones, i.e. cuando u (p, α) es un vector, la Ec(C.56) es reem-plazada por

u ·w =∑

(p,α)∈X

u (p, α)⊙w (p, α)

donde, u (p, α)⊙ w (p, α) se identifica con el producto interior de vectores involucrados.

[email protected] 188 Antonio Carrillo Ledesma, Et alii

Page 190: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

El ‘subespacio de vectores continuos’ es definido como el subespacio

W12 ⊂W (C.62)

mientras que el ‘subespacio de vectores de promedio cero’ es definido como elsubespacio

W11 ⊂W. (C.63)

Dos matrices a : W →W y j : W →W son ahora introducidas; ellas son losoperadores proyección con respecto al producto interior Euclidiano sobre W12

y W11 respectivamente. El primero será referido como el ‘operador promedio’ yel segundo como el ‘operador salto’ respectivamente.

En vista de la Ec.(C.59), cada vector u ∈W, puede ser escrito de forma únicacomo la suma de un vector de promedio cero más un vector continuo (vector desalto cero), es decir

u = u11 + u12 con

u11 ≡ ju ∈W11

u12 ≡ au ∈W12(C.64)

los vectores ju y au son llamados el ‘salto’ y el ‘promedio’ de u respectivamente.Los subespacios lineales que se definen a continuación son elegidos conforme

a la nomenclatura estándar. En particularWI ,WΓ,Wπ yW∆ son definidos paraimponer restricciones sobre sus miembros. Los vectores de:

• WI se nulifica en cada nodo derivado que no es un nodo interno.

• WΓ se nulifica en cada nodo derivado que no es un nodo de interfase.

• Wπ se nulifica en cada nodo derivado que no es un nodo primal.

• W∆ se nulifica en cada nodo derivado que no es un nodo dual.

Además

• Wr ≡WI + aWπ +W∆.

• WΠ ≡WI + aWπ.

Nótese que, para cada una de las siguientes familias de subespacios

WI ,WΓ , WI ,Wπ,W∆ , WΠ,W∆ (C.65)

son linealmente independientes. Y también satisfacen

W = WI +WΓ = WI +Wπ +W∆ y Wr = WΠ +W∆ (C.66)

la anterior definición de Wr es apropiada cuando se considera las formulacionesDual-Primal. En el presente trabajo sólo se considera la restricción impuestapor el promedio en los nodos primales –otro ejemplo de restricción es tomar elsalto sobre los nodos primales–. Otros tipos de restricciones requieren cambiarel término aWπ por arWπ donde ar es la proyección sobre el espacio restringido,el tipo de restricciones que pueden ser definidas están en función del problemaparticular a resolver (véase [29]).

[email protected] 189 Antonio Carrillo Ledesma, Et alii

Page 191: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

C.8 Discretización Partiendo de la Construcción de la Ma-triz At

Una característica notable del enfoque DVS es que este inicia con la matrizque es obtenida después de que el problema se ha discretizado –a partir de unadiscretización por algún método como por ejemplo Elemento Finito o DiferenciasFinitas– y para su aplicación no se requiere ninguna información acerca de laecuación diferencial parcial de la cual se originó. Por supuesto, tal matriz noes definida en el espacio de vectores derivados y la teoría provee una fórmulapara derivar la matriz en el espacio de vectores derivados (véase [59]); aquí seda un procedimiento para definir la matriz At : W →W, la cual es usada paraformular el problema en el espacio de vectores derivados.

Sea la matriz

A : W → W dada por la Ec.(C.46) la cual puede ser escritacomo

A ≡(

Apq

)(C.67)

para cada par (p, q) tal que p ∈ N y q ∈ N , y se define

δαpq ≡

1, si p, q ∈ Nα

0, si p /∈ Nα ó q /∈ Nα, α = 1, ..., E (C.68)

junto con

m(p, q) ≡N∑

α=1

δαpq (C.69)

y

s(p, q) ≡

1, cuando m(p, q) = 0m(p, q), cuando m(p, q) = 0

(C.70)

la función m(p, q) es llamada la ‘multiplicidad’ del par (p, q) . Esto puede versede la suposición básica dada por la Ec.(C.50), teniendo que

m(p, q) = 0⇒

Apq = 0. (C.71)

Definiendo ahora

≡(

pq

)con

pq =

Apqδαpq

s(p, q)(C.72)

se observa la identidad

A =E∑

γ=1

(C.73)

ya que se ha usado una verdadera descomposición del dominio sin traslape.Además, para cada γ = 1, ..., E, la matriz Aγ : W →W es definida por

Aγ ≡(Aγ

(p,α)(q,β)

)(C.74)

[email protected] 190 Antonio Carrillo Ledesma, Et alii

Page 192: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

conAγ(p,α)(q,β) ≡ δγ

αγ

pqδβγ (C.75)

entonces la matriz At : W →W (t de total, no de transpuesta) es dada por

At ≡E∑

γ=1

Aγ (C.76)

una propiedad fundamental de At es que

(At

)−1=

E∑

γ=1

(Aγ

)−1(C.77)

ya que las matrices Aγ , con γ = 1, 2, ..., E son independientes entre si –al seruna verdadera descomposición del dominio, ver sección (C.5)–. Además, otrapropiedad es que

R−1aAR = R−1aAaR =

A. (C.78)

Nótese que la matriz At puede ser expresada en más de una manera. Algunasopciones útiles que se usan son (véase [57] y [58]):

At =

(At

ΠΠAt

Π∆At

∆ΠAt

∆∆

)=

At

IIAt

IπAt

I∆At

πIAt

ππAt

π∆At

∆IAt

∆πAt

∆∆

=

A1 0 · · · 0

0 A2. . .

......

. . .. . . 0

0 · · · 0 AN

. (C.79)

A la luz de la Ec.(C.77), implica que, si el complemento de Schur local

Sα = Aα

ΓΓ−Aα

ΓI

(Aα

II

)−1Aα

IΓ(C.80)

de cada Aα existe y es invertible –véase sección (3.3) para la definición y suimplementación del complemento de Schur en general–, entonces, la matriz‘total del complemento de Schur’, St : Wr →Wr, satisface

St =E∑

α=1

Sα (C.81)

y(St

)−1=

E∑

α=1

(Sα

)−1(C.82)

[email protected] 191 Antonio Carrillo Ledesma, Et alii

Page 193: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

al ser una verdadera descomposición del dominio –ver sección (C.5)– y porquese satisfacen las Ecs.(C.76 y C.77).

Por otro lado, si se define u′ ≡ R

u, usando la Ec.(C.78) entonces el problema

original Ec.(C.46), se transforma en uno equivalente a

aAtu′

= f con ju′

= 0 (C.83)

una vez que u′ ∈W es obtenida, se puede recuperar

u ∈ W usando

u = R−1u

(C.84)

esta última es correcta cuando u′

es evaluada exactamente, pero en las aplica-ciones numéricas, u

sólo es una evaluación aproximada, por ello puede generar“inestabilidades”, en el sentido de que una aproximación a u

, independien-temente de cuan pequeño sea el error, puede no ser continua en cuyo casou = R−1u

no esta definida. Por lo tanto es conveniente reemplazar la Ec.(C.84)por la siguiente versión estable

u = R−1

(au

′). (C.85)

Sea ar : W →Wr el operador de proyección ortogonal de W a Wr y nóteseque a = aar, entonces, se define

A ≡ arAtar. (C.86)

Por otro lado, se tiene que

A ≡ arAtar ≡(

AΠΠ

AΠ∆

A∆Π

A∆∆

)(C.87)

=

At

IIAt

Iπaπ At

I∆aπAt

πIaπAt

ππaπ aπAt

π∆At

∆IAt

∆πaπ At

∆∆

la notación usada es tal que

AΠΠ

: WΠ →WΠ, AΠ∆

: W∆ →WΠ

A∆Π

: WΠ →W∆, A∆∆

: W∆ →W∆(C.88)

donde AΠΠu=

(AuΠ

)Π, A∆Πu=

(AuΠ

)∆

AΠ∆u=(Au∆

)Π, A∆∆u=

(Au∆

)∆

(C.89)

[email protected] 192 Antonio Carrillo Ledesma, Et alii

Page 194: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

por otro lado, se tiene la inmersión natural en Wr, i.e.

AΠΠ ≡(

AΠΠ 00 0

)(C.90)

AΠ∆

≡(

0 AΠ∆0 0

)

A∆Π ≡(

0 0A∆Π 0

)

A∆∆

≡(

0 00 A∆∆

).

Así, el ‘Complemento de Schur Dual-Primal’ está definido por

S = A∆∆

−A∆Π

A−1ΠΠ

AΠ∆

(C.91)

que define al sistema virtualSuΓ = f

Γ. (C.92)

Nótese que

AΠΠ

=

(A

IIA

AπI

Aππ

)(C.93)

así, se definen a las matrices

II, Aα

Iπ,Aα

I∆, Aα

πI,Aα

ππ, Aα

π∆, Aα

∆I, Aα

∆πy Aα

∆∆(C.94)

las cuales son locales a cada subdominio. Usando esta metodología se puede

construir cada componente de

pqtomando los nodos p y q según correspondan.Por ejemplo para construir Aα

πI, en el subdominio Ωα se construye

πI=

(

pq

)(C.95)

donde los nodos p ∈ π y q ∈ I y ambos pertenecen al α−ésimo subdominio deΩ.

C.9 El Problema General con Restricciones

Recordando lo visto en la sección (C.6) en lo referente a la definición del pro-blema original Ec.(C.46). Entonces “Un vector u ∈W es solución del problemaoriginal, si y sólo si, u

= Ru ∈W r ⊂W satisface la expresión

aAu′

= f y ju′

= 0 (C.96)

el vectorf ≡

(Rf

)∈W12 ⊂Wr (C.97)

[email protected] 193 Antonio Carrillo Ledesma, Et alii

Page 195: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

puede ser escrito comof ≡ f

Π+f

∆(C.98)

con fΠ∈WΠ y f

∆∈W∆”.

Este es el ‘problema Dual-Primal formulado en el espacio de vectores deriva-dos’; o simplemente, el problema Dual-Primal-DVS. Recordando, que este pro-blema esta formulado en el espacio Wr del espacio de vectores derivados W, enel cual las restricciones ya han sido incorporadas. Por lo tanto todos los algo-ritmos que se desarrollan en las siguientes secciones incluyen tales restricciones;en particular, aquellos impuestos por el promedio de los nodos primales.

Un vector u′ ∈ W satisface la Ec.(C.96) si y sólo si, satisface la Ec.(C.83).

Para derivar este resultado se usa la propiedad de que cuando u′ ∈W y ju

= 0,

la siguiente relación se satisface

u′ ∈Wr y a

(arAtar

)u′

= aAtu′

. (C.99)

En las discusiones posteriores, la matriz A : Wr → Wr se asume invertible,en la mayoría de los casos, este hecho se puede garantizar cuando se toman unnúmero suficientemente grande de nodos primales colocados adecuadamente.

Sea u′∈W r una solución de la Ec.(C.96), entonces u

′ ∈ W12 ⊂ W necesa-riamente, ya que ju

= 0 y se puede aplicar la inversa de la proyección naturalobteniendo

u =Ru′

(C.100)

ya que este problema es formulado en el espacio de vectores derivados; en losalgoritmos que se presentan en este trabajo (véase [59]), todas las operacionesson realizadas en dicho espacio; en particular, para realizar los cálculos, nuncase regresa al espacio vectorial original W , excepto al final cuando se aplica laEc.(C.100).

[email protected] 194 Antonio Carrillo Ledesma, Et alii

Page 196: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

D Formulaciones Dirichlet-Dirichlet y Neumann-Neumann en el Marco del Espacio de Vec-tores Derivados DVS

A nivel continuo, los algoritmos más estudiados son el Neumann-Neumann y elDirichlet-Dirichlet. Durante el desarrollo del esquema del espacio de vectoresderivados (DVS), se muestra una clara correspondencia entre el procedimientoa nivel continuo, y el procedimiento a nivel discreto (véase [39]). Usando talcorrespondencia el resultado desarrollado puede ser resumido de una forma brevey efectiva, como sigue:

1. Algoritmos no Precondicionados

• El Algoritmo del Complemento de Schur (la formulación Primal delproblema Dirichlet-Dirichlet), sección (D.1.1).

• La formulación Dual del Problema Neumann-Neumann, sección (D.1.2).• La formulación Primal del Problema Neumann-Neumann, sección(D.1.3).

• La segunda formulación Dual del Problema Neumann-Neumann, sec-ción (D.1.4).

2. Algoritmos Precondicionados

• La Versión DVS del Algoritmo BDDC (la formulación Dirichlet-Dirichlet precondicionada), sección (D.2.1).

• La Versión DVS del Algoritmo FETI-DP (la formulación Dual pre-condicionada del problema Neumann-Neumann), sección (D.2.2).

• La formulación Primal Precondicionada del problema Neumann-Neu-mann, sección (D.2.3).

• La segunda formulación Dual Precondicionada del problema Neumann-Neumann, sección (D.2.4).

Todos estos algoritmos están formulados en el espacio vectorial sujeto arestricciones, tal que todos estos son algoritmos con restricciones.

Para la discusión de todo el material de este capítulo se usa la notación dela sección (C.7), en especial la definición de A en la Ec.(C.87)

A ≡(

AΠΠ

AΠ∆

A∆Π

A∆∆

)(D.1)

y la dada por la Ec.(C.91) para la matriz del complemento de Schur

S = A∆∆

−A∆Π

A−1ΠΠ

AΠ∆

. (D.2)

[email protected] 195 Antonio Carrillo Ledesma, Et alii

Page 197: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

D.1 Algoritmos no Precondicionados

Pese a que los algoritmos no precondicionados carecen de utilidad práctica porsu pobre desempeño computacional con respecto a los precondicionados, tienenuna gran utilidad teórica y son el camino más sencillo para generar los algo-ritmos computacionales de los precondicionados, ya que estos permiten probarel marco computacional con algoritmos sencillos y luego sólo se precondicionanpara tener el algoritmo final de interés. Se desarrollaron cuatro algoritmos noprecondicionados (véase [59]), los cuales se detallan a continuación.

D.1.1 Algoritmo del Complemento de Schur

Sea u = u′ − A−1

ΠΠfΠ, entonces la Ec.(C.96) del problema general con restric-

ciones –véase sección (C.9)–

aAu′

= f y ju′

= 0 (D.3)

es equivalente a: “Dada f = f∆∈ aW∆, encontrar una u∆ ∈W∆ tal que

aSu∆ = f∆

y ju∆ = 0” (D.4)

aquí, u = uΠ+u∆, f ≡ f∆−A

∆ΠA−1ΠΠ

y uΠ≡A−1ΠΠAΠ∆u∆.

Además, nótese que la matriz del complemento de Schur S : W∆ → W∆ esinvertible cuando A : Wr →Wr (véase [58] y [57]).

En el capítulo anterior se mostró la versión continua del problema Dirichlet-Dirichlet no precondicionado, de la cual la Ec.(D.4) es su versión discreta. Porlo tanto este algoritmo pudiera ser llamado ‘el algoritmo Dirichlet-Dirichlet noprecondicionado’. Sin embargo, en lo que sigue, el algoritmo correspondiente ala Ec.(D.4) será referido como el ‘algoritmo del complemento de Schur’ ya quees la variante de una de las más simples formas del método de subestructuraciónla cual se detalla en la sección (3.3).

D.1.2 Formulación Dual del Problema Neumann-Neumann

Para iniciar este desarrollo, se toma la identidad

aS + jS = S (D.5)

esta última ecuación es clara ya que

a+ j = I. (D.6)

Usando las Ecs.(D.4 y D.5) juntas, implican que

Su∆ = aSu∆ + jSu∆ = f∆− λ∆ (D.7)

donde el vector λ∆ es definido por

λ∆ = −jSu∆. (D.8)

[email protected] 196 Antonio Carrillo Ledesma, Et alii

Page 198: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Por lo tanto, λ∆ ∈jW∆. Entonces, el problema de encontrar u∆ ha sidotransformado en uno, en que se debe encontrar ‘el multiplicador de Lagrangeλ∆’, una vez encontrado λ∆ se puede aplicar S

−1 a la Ec.(D.7) para obtener

u∆ = S−1(f∆− λ∆

). (D.9)

Además, en la Ec.(D.9), u∆ ∈ aW∆, tal que

jS−1(f∆− λ∆

)= 0 (D.10)

entonces, λ∆ ∈W∆ satisface

jS−1λ∆ =jS−1f∆

junto con aλ∆ = 0 (D.11)

por lo anterior, jSu∆ es la versión discreta de el promedio de la derivada normal(véase [58] y [57]).

Formulación usando Multiplicadores de Lagrange Para obtener la for-mulación de los Multiplicadores de Lagrange, se escribe

J(u) = 12u · Su− u · f → min

ju = 0

(D.12)

tomando la variación en la Ec.(D.12), se obtiene

Su+ jλ = f junto con ju = 0 (D.13)

para asegurar la unicidad de λ, se impone la condición de que au = 0, tal quejλ = λ. Entonces la Ec.(D.13) implica

aSu+ jSu+ λ = f (D.14)

multiplicando por j y a respectivamente, se obtiene

λ = −jSu y aSu = f (D.15)

entonces la Ec.(D.8) es clara.

D.1.3 Formulación Primal del Problema Neumann-Neumann

Para iniciar este desarrollo, se toma la Ec.(D.4) del algoritmo del complementode Schur –véase sección (D.1.1)– y multiplicando la primera igualdad por S−1,y observando que af

∆= f

∆se obtiene

S−1aSu∆ = S−1f∆= S−1af

∆= S−1aS

(S−1f

)(D.16)

[email protected] 197 Antonio Carrillo Ledesma, Et alii

Page 199: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

de este modo, la Ec.(D.4) puede ser transformada en

S−1aS(u∆ − S−1f

)= 0 y ju∆ = 0 (D.17)

oaS

(u∆ − S−1f

)= 0 y ju∆ = 0. (D.18)

Si se definev∆ = S−1f

∆− u∆ (D.19)

entonces la Ec.(D.18) es transformada en

jv∆ = jS−1f∆

y aSv∆ = 0 (D.20)

la forma iterativa61 de este algoritmo se obtiene al multiplicarlo por S−1

S−1jv∆ = S−1jS−1f∆

y aSv∆ = 0. (D.21)

Si la solución de la Ec.(D.4) es conocida, entonces v∆ ∈W∆, definida por laEc.(D.19), satisface la Ec.(D.21); a la inversa, si v∆ ∈W∆ satisface la Ec.(D.21)entonces

u∆ ≡ S−1f∆− v∆ (D.22)

es solución de la Ec.(D.4).En lo sucesivo, el algoritmo iterativo definido por la Ec.(D.21) será referido

como la ‘formulación libre de multiplicadores de Lagrange del problema no pre-condicionado Neumann-Neumann’.

D.1.4 Segunda Formulación Dual del Problema Neumann-Neumann

En este caso, se toma como inicio la Ec.(D.11) –véase sección (D.1.2)–. Nóteseque la siguiente identidad se satisface

SjS−1(SjS−1

)= SjS−1 (D.23)

entonces, se multiplica la primera igualdad en la Ec.(D.11) por S, obteniéndose

SjS−1(SjS−1

)λ∆ = SjS−1λ∆ = SjS−1

(SjS−1

)f∆

(D.24)

junto con aλ∆ = 0

oSjS−1

((SjS−1

)f∆− λ∆

)junto con aλ∆ = 0. (D.25)

61Para que el algoritmo sea iterativo, se necesita que el dominio y contradominio sean elmismo espacio, que en este caso debe de ser W∆.

[email protected] 198 Antonio Carrillo Ledesma, Et alii

Page 200: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Si se multiplica la primera de estas igualdades por S−1 y se define

µ∆≡ SjS−1f

∆− λ∆ (D.26)

la Ec.(D.25) es transformada en

aµ∆= aSjS−1f

∆y jS−1µ

∆= 0. (D.27)

Nótese que esta última ecuación es equivalente a la Ec.(D.25) ya que S−1

es no singular. Si la solución de la Ec.(D.11) es conocida, entonces µ∆∈ W∆

definida por la Ec.(D.26) satisface la Ec.(D.27). A la inversa, si µ∆∈ W∆

satisface la Ec.(D.27), entonces

λ∆ ≡ SjS−1f∆− µ

∆(D.28)

es solución de la Ec.(D.11).Por otro lado, la Ec.(D.27) no define un algoritmo iterativo. Sin embargo,

si se multiplica la Ec.(D.27) por S se obtiene el siguiente algoritmo iterativo

Saµ∆= SaSjS−1f

∆y jS−1µ

∆= 0 (D.29)

esta última ecuación provee una manera iterativa de aplicar la formulación conMultiplicadores de Lagrange. La igualdad jS−1µ

∆= 0 puede ser interpretada

como una restricción; y en efecto, se puede ver que es equivalente a µ∆∈ SaW∆.

D.2 Algoritmos Precondicionados

Los algoritmos precondicionados son los que se implementan para resolver losproblemas de interés en Ciencias e Ingenierías, ya que su ejecución en equiposparalelos –como Clusters– es eficiente y con buenas características de conver-gencia (véase [62]). Se desarrollaron cuatro algoritmos precondicionados (véase[59]), los cuales se detallan a continuación.

D.2.1 Versión DVS del Algoritmo BDDC

La versión DVS del algoritmo BDDC se obtiene cuando el algoritmo de com-plemento de Schur es precondicionado por medio de la matriz aS−1. Entonces:“Dada f

∆∈ aW∆, encontrar u∆ ∈W∆ tal que

aS−1aSu∆ = aS−1f∆

y ju∆ = 0”. (D.30)

Para este algoritmo, las siguientes propiedades llaman la atención:

1. Este es un algoritmo iterativo.

2. La matriz iterada es aS−1aS.

3. La iteración es realizada dentro del subespacio aW∆ ⊂W∆.

[email protected] 199 Antonio Carrillo Ledesma, Et alii

Page 201: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

4. Este algoritmo es aplicable siempre y cuando la matriz del complementode Schur S es tal que la implicación lógica

aS−1w = 0 y jw = 0⇒ w = 0 (D.31)

es satisfecha, para cualquier w ∈W∆.

5. En particular, es aplicable cuando S es definida.

Las propiedades 1) a 3) están interrelacionadas. La condición ju∆ = 0 esequivalente a u∆ ∈ aW∆; de este modo, la búsqueda se realiza en el espacioaW∆. Cuando la matriz aS

−1aS es aplicada repetidamente, siempre se terminaen aW∆, ya que para cada w ∈W∆, se obtiene j

(aS−1aSw

)= 0.

Para la propiedad 4), cuando ésta se satisface, la Ec.(D.30) implica la Ec.(D.4).Pare ver esto, nótese que

j(aSu∆ − f

)= 0 (D.32)

y también que la Ec.(D.30) implica

aS−1(aSu∆ − f

)= 0 (D.33)

cuando la implicación de la Ec.(D.31) se satisface, las Ecs.(D.32 y D.33) juntasimplican que

aSu∆ − f∆= 0 (D.34)

como se quería. Esto muestra que la Ec.(D.30) implica la Ec.(D.4), cuando laEc.(D.31) se satisface.

Para la propiedad 5), nótese que la condición de la Ec.(D.31) es débil yrequiere que la matriz del complemento de Schur S sea definida, ya que la im-plicación de la Ec.(D.31) es siempre satisfecha cuando S es definida. Asumiendoque S es definida, entonces para cualquier vector w ∈W∆ tal que aS

−1w = 0 yjw = 0, se obtiene

w·S−1w = w·jS−1w =(jw

)· S−1w = 0 (D.35)

esto implica que w = 0, ya que S−1 es definida cuando S lo es. Por lo tanto lapropiedad 5) es clara.

D.2.2 Versión DVS del Algoritmo FETI-DP

La versión DVS del algoritmo FETI-DP se obtiene cuando la formulación conMultiplicadores de Lagrange del problema no precondicionado Neumann-Neumann

[email protected] 200 Antonio Carrillo Ledesma, Et alii

Page 202: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

de la Ec.(D.11) –véase sección (D.1.2)– es precondicionada por medio de lamatriz jS. Entonces: “Dada f

∆∈ aW∆, encontrar λ∆ ∈W∆ tal que

jSjS−1λ∆ = jSjS−1f∆

y aλ∆ = 0” (D.36)

dondeu∆ = aS−1

(f∆− jλ∆

). (D.37)

Para este algoritmo, las siguientes propiedades llaman la atención:

1. Este es un algoritmo iterativo.

2. La matriz iterada es jSjS−1.

3. La iteración es realizada dentro del subespacio jW∆ ⊂W∆.

4. Este algoritmo es aplicable siempre y cuando la matriz del complementode Schur S es tal que la implicación lógica

jSw = 0 y aw = 0⇒ w = 0 (D.38)

es satisfecha, para cualquier w ∈W∆.

5. En particular, es aplicable cuando S es positiva definida.

Las propiedades 1) a 3) están interrelacionadas. La condición aλ∆ = 0 esequivalente a λ∆ ∈ jW∆; de este modo, la búsqueda se realiza en el espacio

jW∆. Cuando la matriz jSjS−1 es aplicada repetidamente, siempre se termina

en jW∆, ya que para cada µ ∈W∆, se obtiene a(jSjS−1µ

)= 0.

Para la propiedad 4), cuando esta se satisface, la Ec.(D.36) implica la Ec.(D.11).Pare ver esto, se asume la Ec.(D.36) y nótese que

a(jS−1λ∆ − jS−1f

)= 0 (D.39)

y también que la Ec.(D.36) implica

jS(jS−1λ∆ − jS−1f

)= 0 (D.40)

cuando la implicación de la Ec.(D.38) se satisface, las Ecs.(D.39 y D.40) juntasimplican que

jS−1λ∆ − jS−1f∆= 0 (D.41)

como se quería. Esto muestra que la Ec.(D.36) implica la Ec.(D.11), cuando laEc.(D.38) se satisface.

Para la propiedad 5), nótese que la condición de la Ec.(D.38) es débil yrequiere que la matriz del complemento de Schur S sea definida, ya que la im-plicación de la Ec.(D.38) es siempre satisfecha cuando S es definida. Asumiendo

[email protected] 201 Antonio Carrillo Ledesma, Et alii

Page 203: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

que S es definida, entonces para cualquier vector µ ∈ W∆ tal que jSµ = 0 yaµ = 0, se obtiene

µ·Sµ = µ·aSµ =(aµ

)· Su = 0 (D.42)

esto implica que µ = 0, ya que S es definida. Por lo tanto la propiedad 5) esclara.

D.2.3 Formulación Primal Precondicionada del Problema Neumann-Neumann

Este algoritmo es la versión precondicionada de la formulación libre de multi-plicadores de Lagrange del problema no precondicionado Neumann-Neumann.Este puede derivarse multiplicando la Ec.(D.20) –véase sección (D.1.3)– por elprecondicionador S−1jS. “Entonces el algoritmo consiste en buscar v∆ ∈ W∆,

tal queS−1jSjv∆ = S−1jSjS−1f

∆y aSv∆ = 0” (D.43)

dondeu∆ = aS−1

(f∆− jSv∆

). (D.44)

Para este algoritmo, las siguientes propiedades llaman la atención:

1. Este es un algoritmo iterativo.

2. La matriz iterada es S−1jSj.

3. La iteración es realizada dentro del subespacio S−1jW∆ ⊂W∆.

4. Este algoritmo es aplicable siempre y cuando la matriz del complementode Schur S es tal que la implicación lógica

jSw = 0 y aw = 0⇒ w = 0 (D.45)

es satisfecha, para cualquier w ∈W∆.

5. En particular, es aplicable cuando S es positiva definida.

Las propiedades 1) a 3) están interrelacionadas. La condición aSv∆ = 0 esequivalente a v∆ ∈ jS−1W∆; de este modo, la búsqueda se realiza en el espacio

jS−1W∆. Cuando la matriz S−1jSj es aplicada repetidamente, siempre se ter-

mina en jS−1W∆, ya que para cada v∆ ∈W∆, se obtiene Sa(S−1jSjv∆

)= 0.

Para la propiedad 4), cuando esta se satisface, la Ec.(D.43) implica la Ec.(D.20).Pare ver esto, se asume la Ec.(D.43) y se define

w =jv∆ − jS−1f∆tal que aw = 0 (D.46)

[email protected] 202 Antonio Carrillo Ledesma, Et alii

Page 204: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

además, en vista de la Ec.(D.43) implica

S−1jSw = 0 y por lo tanto jSw = 0 (D.47)

usando la Ec.(D.45) se ve que las Ecs.(D.46 y D.47) juntas implican que

jv∆ − jS−1f∆= w =0 (D.48)

ahora, la Ec.(D.20) es clara y la prueba se completa.Para la propiedad 5), nótese que la condición de la Ec.(D.45) es débil y

requiere que la matriz del complemento de Schur S sea definida, ya que la im-plicación de la Ec.(D.45) es siempre satisfecha cuando S es definida. Asumiendoque S es definida, entonces para cualquier vector w ∈ W∆ tal que jSw = 0 yaw = 0, se obtiene

w·Sw = w·aSw =(aw

)· Sw = 0 (D.49)

esto implica que w = 0, ya que S es definida. Por lo tanto la propiedad 5) esclara.

D.2.4 Segunda Formulación Dual Precondicionada del Problema Neumann-Neumann

Este algoritmo es la versión precondicionada de la segunda formulación con mul-tiplicadores de Lagrange del problema no precondicionado Neumann-Neumann.Este puede derivarse multiplicando la Ec.(D.27) –véase sección (D.1.4)– por elprecondicionador S−1aS. “Entonces el algoritmo consiste en buscar µ

∆∈ W∆,

tal queSaS−1aµ

∆= SaS−1aSjS−1f

∆y jS−1µ

∆= 0” (D.50)

dondeu∆ = aS−1

(f∆+ µ

)(D.51)

este algoritmo es similar a FETI-DP.Para este algoritmo, las siguientes propiedades llaman la atención:

1. Este es un algoritmo iterativo.

2. La matriz iterada es SaS−1a.

3. La iteración es realizada dentro del subespacio SaW∆ ⊂W∆.

4. Este algoritmo es aplicable siempre y cuando la matriz del complementode Schur S es tal que la implicación lógica

aS−1w = 0 y jw = 0⇒ w = 0 (D.52)

es satisfecha, para cualquier w ∈W∆.

5. En particular, es aplicable cuando S es positiva definida.

[email protected] 203 Antonio Carrillo Ledesma, Et alii

Page 205: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Las propiedades 1) a 3) están interrelacionadas. La condición jS−1µ∆

= 0

es equivalente a µ∆∈ SaW∆; de este modo, la búsqueda se realiza en el espacio

SaW∆. Cuando la matriz SaS−1a es aplicada repetidamente, siempre se termina

en SaW∆, ya que para cada µ∆ ∈W∆, se obtiene aS(S−1jSjµ

)= 0.

Para la propiedad 4), cuando esta se satisface, la Ec.(D.50) implica la Ec.(D.27).Para ver esto, se asume la Ec.(D.50) y se define

η =aµ∆− aSjS−1f

∆tal que jη = 0 (D.53)

además, en vista de la Ec.(D.50) se obtiene

SaS−1η = 0 (D.54)

usando las Ecs.(D.53 y D.54), juntas implican que

aη − aSjS−1f∆= η =0 (D.55)

ahora, la Ec.(D.27) es clara, como se quería probar, además se ve que la Ec.(D.50)implica la Ec.(D.27), cuando la condición de la Ec.(D.52) se satisface.

Para la propiedad 5), nótese que la condición de la Ec.(D.52) es débil yrequiere que la matriz del complemento de Schur S sea definida, ya que la im-plicación de la Ec.(D.52) es siempre satisfecha cuando S es definida. Asumiendoque S es definida, entonces para cualquier vector w ∈W∆ tal que aS−1w = 0 yjw = 0, se obtiene

w·S−1w = w·jS−1w =(jw

)· S−1w = 0 (D.56)

esto implica que w = 0, ya que S−1 es definida cuando S lo es. Por lo tanto lapropiedad 5) es clara.

D.3 El Operador de Steklov-Poincaré

El operador de Steklov-Poincaré generalmente se define como la ecuación para latraza de la solución exacta u sobre Γ del problema dado por la Ec.(C.4), dondeel complemento de Schur –definido en la Ec.(C.92)– es una aproximacióndiscreta del operador de Steklov-Poincaré (véase [40]). La discusión de esteoperador juega un papel importante en el desarrollo de la teoría del espaciode vectores derivados (véase [39]), para iniciar la discusión, se usa la siguientedefinición.

Definición 15 Sea A : Wr → Wr una matriz simétrica y positiva definida. El‘producto interior de energía’ es definido por

(u,w) ≡ u ·Aw ∀u,w ∈Wr. (D.57)

[email protected] 204 Antonio Carrillo Ledesma, Et alii

Page 206: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

El espacio lineal, Wr, es un espacio de Hilbert (dimensionalmente finito)cuando este es dotado con el producto interior de energía. Usando la notaciónde la sección (C.7) y recordando que la matriz A se escribe como

A ≡(

AΠΠ AΠ∆A∆Π A∆∆

)(D.58)

donde la notación usada es tal que

AΠΠ

: WΠ →WΠ, AΠ∆

: W∆ →WΠ

A∆Π

: WΠ →W∆, A∆∆

: W∆ →W∆(D.59)

además AΠΠu=

(AuΠ

)Π, A∆Πu=

(AuΠ

)∆

AΠ∆u=(Au∆

)Π, A∆∆u=

(Au∆

)∆

(D.60)

y nótese que se tiene la inmersión natural en Wr, i.e.

AΠΠ ≡(

AΠΠ 00 0

)(D.61)

AΠ∆

≡(

0 AΠ∆0 0

)

A∆Π ≡(

0 0A∆Π 0

)

A∆∆

≡(

0 00 A∆∆

).

Ahora, se introducen las siguientes definiciones:

Definición 16 Sea la matriz L definida como

L ≡(

AΠΠ AΠ∆0 0

)(D.62)

y la matriz R definida como

R ≡(

0 0A∆Π A∆∆

). (D.63)

Además, nótese la siguiente identidad

R = aR+ jR (D.64)

implica también que A = AT , así

L+ aR+ jR = LT +RTa+RT j. (D.65)

[email protected] 205 Antonio Carrillo Ledesma, Et alii

Page 207: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Definición 17 A la identidad

L+ aR−RT j = LT +RTa− jR (D.66)

la cual se deriva de la Ec.(D.65), la cual será referida como la fórmula Green-Herrera para matrices.

Nótese que los rangos de L y R son WΠ y W∆, respectivamente, mientrasque los rangos de aR y jR están contenidos en W12 (∆) y W11 (∆) respectiva-mente. Inclusive más, estos últimos dos rangos son linealmente independientes.Además, para cualquier función v ∈Wr se obtiene

(L+ aR−RT j

)v = 0 (D.67)

si y sólo siLv = 0, aRv = 0 y jv = 0. (D.68)

Esto establece la equivalencia entre las Ec.(D.67) y Ec.(D.68) y se puedeusar el hecho de que los rangos de L y aR son linealmente independientes, juntocon la ecuación

(jv

)·RT jv =

(jv

)·A

∆∆jv =

(jv

)·Ajv = 0 (D.69)

la cual implica que jv = 0. Esto es porque A es positiva definida sobre Wr.

En lo que sigue, se usa la siguiente notación, para cada u ∈Wr, se escribe

·u ≡ au y [[u]] ≡ ju (D.70)

entonces·u ∈ Wr, mientras [[u]] pertenecen a W11 (Γ) ⊂ Wr. La fórmula de

Green-Herrera de la Ec.(D.66) es equivalente a

w · Lu+·w · aRu− [[u]] jRw = u · Lw +

·u · aRw − [[w]] jRu (D.71)

∀u,w ∈ Wr. Ahora, las fórmulas de Green-Herrera que originalmente fueronintroducidas para operadores diferenciales parciales actuando sobre funcionesdiscontinuas, pueden ser aplicadas a cualquier operador cuando este es lineal.La Ec.(D.66) por otro lado, es vista como una extensión de este tipo de fórmulasactuando sobre vectores discontinuos y se tiene interés de comparar la Ec.(D.71)con las fórmulas de Green-Herrera para operadores diferenciales parciales. Parahacer esto, se introduce la siguiente notación

[[R]]= −aR y

·R ≡ −jR (D.72)

haciendo uso de esta notación, la Ec.(D.71) se reescribe como

w · Lu+ [[u]]··R w −

·w ·

[[R]]u = u · Lw + [[w]]

··R u−

·u ·

[[R]]w (D.73)

[email protected] 206 Antonio Carrillo Ledesma, Et alii

Page 208: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

∀u,w ∈Wr.Para el operador diferencial de Laplace actuando sobre funciones disconti-

nuas definidas por tramos que satisfacen condiciones de frontera homogéneas,la fórmula Green-Herrera queda como

Ω

wLudx+

Γ

[[u]]

·∂w

∂n−

·w

[[∂u

∂n

]]dx =

Ω

uLwdx+

Γ

[[w]]

·∂u

∂n−

·u

[[∂w

∂n

]]dx (D.74)

la siguiente correspondencia entre las funcionales bilineales involucradas en am-bas ecuaciones, comparando con las Ecs. (D.73 y D.74) se obtiene

∫ΩwLudx↔w · Lu

∫Γ [[u]]

·∂w∂n

dx↔ [[u]]··R w

∫Γ

·w[[

∂u∂n

]]dx↔

·w ·

[[R]]u.

(D.75)

Para operadores diferenciales, en particular para el operador de Laplace, eloperador de Steklov-Poincaré asociado con el salto de la derivada normal y dela funcional bilineal es ∫

Γ

·w

[[∂u

∂n

]]dx (D.76)

a nivel matricial, el operador de Steklov-Poincaré es asociado con la forma bi-lineal

w ·[[R]]u = w · aRu,∀u,w ∈Wr (D.77)

o más simplemente, con la matriz aR.

Definición 18 Se define al operador de Steklov-Poincaré como la matriz

aR. (D.78)

En el esquema de vectores derivados (DVS), la versión discreta del operadorde Steklov-Poincaré es aS, por lo tanto, la versión discreta de la Ec.(C.14) es

aSv = aSup junto con jv = 0 (D.79)

la cual puede ponerse en correspondencia con la Ec.(D.4) reemplazando

−[[∂up

∂n

]]↔ f

∆y v ↔ u∆. (D.80)

[email protected] 207 Antonio Carrillo Ledesma, Et alii

Page 209: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Otra formulación al operador de Steklov-Poincaré, se deriva de la fórmula deGreen-Herrera para el operador elíptico general, simétrico y de segundo orden

Ω

wLudx+

Γ

[[u]]

·an · ∇w −

·w [[an · ∇u]]

dx =

Ω

uLwdx+

Γ

[[w]]

·an · ∇u−

·u [[an · ∇w]]

dx. (D.81)

La correspondencia de la ecuación (D.75) todavía permanece para este caso,excepto que

[[an · ∇u]]↔−[[R]]u

·an · ∇w↔−

·Ru

. (D.82)

Correspondencias similares a las dadas por las Ecs. (D.75 y D.82) puedenser establecidas en general –su aplicación incluye a los sistemas gobernantes deecuaciones de elasticidad lineal y muchos problemas más–. Nótese que las Ecs.(D.75 y D.82) implican una nueva fórmula para el operador Steklov-Poincaré,i.e., el salto de la derivada normal en el nivel discreto, el cual es diferente alas interpretaciones estándar que han sido presentadas por muchos autores. Lafórmula (véase [57]) para el operador Steklov-Poincaré es

−[[R]]u ≡ −jR (D.83)

en particular, esta no contiene el lado derecho de la ecuación para ser resuelta;ganando con ello, en consistencia teórica. Nótese que la fórmula es aplicablepara cualquier vector (función) independientemente de si está es solución delproblema bajo consideración o no.

Aplicando la fórmula de Green-Herrera al problema transformado dado alinicio de este capítulo, se tiene el siguiente resultado:

Teorema 19 Sea f =

(fΠ

f∆

)∈ Wr = W12

(Ω), entonces una v ∈ Wr satis-

face (L+ aR−RT j

)v = f (D.84)

si y sólo si, v es solución del el problema transformado.

Demostración. Sea u ∈ Wr una solución del problema transformado y asu-miendo que v ∈Wr satisface la Ec.(D.84) entonces

(L+ aR−RT j

)u =

(L+ aR

)u = aAu = f (D.85)

para probar el inverso, se define w = v − u, así se obtiene(L+ aR−RT j

)w = 0 (D.86)

[email protected] 208 Antonio Carrillo Ledesma, Et alii

Page 210: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

y usando las Ec.(D.67) y Ec.(D.68), se tiene que v = u+w satisface

Av =(L+ aR

)v =

(L+ aR

)u = aAu = f (D.87)

yjv = ju = 0. (D.88)

Por otro lado, para obtener la versión discreta del operador µ definido en laEc.(C.21), primero se escribe la versión discreta de la Ec.(C.19), esta es

jSv = qΓ

junto con aSv = 0 (D.89)

por lo tanto, se tiene que

aqΓ= 0 y jv = jS−1Sv = jS−1jSv = jS−1q

Γ(D.90)

esto establece la correspondencia de

µ↔ jS−1 (D.91)

la versión discreta de la Ec.(C.22) es

jS−1qΓ= −jup junto con aq

Γ= 0. (D.92)

Otra opción de abordar la versión discreta de la Ec.(C.20) sin hacer uso dela contraparte del operador de Steklov-Poincaré µ, en el cual, el correspondienteproblema es

jv = −jup y aSv = 0 (D.93)

sin embargo, esta última ecuación no define un algoritmo iterativo, ya que

aSj = 0. (D.94)

Una ecuación equivalente a la Ec.(D.93), la cual puede ser aplicada en unalgoritmo iterativo es

S−1jv = −S−1jup y aSv = 0. (D.95)

[email protected] 209 Antonio Carrillo Ledesma, Et alii

Page 211: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

E Consideraciones Sobre la Formulación Numéricay su Implementación Computacional de DVS

Para realizar la implementación de cada uno de los métodos desarrollados dedescomposición de dominio en el espacio de vectores derivados (DVS) –véasesección (3.4.2)–, es necesario trabajar con los operadores a, j, S y S−1, así comorealizar las operaciones involucradas entre ellos.

Normalmente los operadores S y S−1 no se construyen –son operadoresvirtuales– porque su implementación generaría matrices densas, las cuales con-sumen mucha memoria y hacen ineficiente su implementación computacional.En vez de eso, sólo se realizan las operaciones que involucra la definición deloperador, por ejemplo SuΓ

SuΓ =

(A∆∆

−A∆Π

(AΠΠ

)−1AΠ∆

)uΓ (E.1)

en donde, para su evaluación sólo involucra la operación de multiplicaciónmatriz-vector y resta de vectores, haciendo la evaluación computacional efi-ciente.

En el presente apéndice se desarrollan las operaciones que se requieren paraimplementar a cada uno los operadores involucrados en los métodos desarrolla-dos y que matrices en cada caso son necesarias de construir, siempre teniendoen cuenta el hacer lo más eficiente posible su implementación y evaluación enequipos de cómputo de alto desempeño.

E.1 Matrices Virtuales y Susceptibles de Construir

La gran mayoría de las matrices usadas en los métodos de descomposición dedominio son operadores virtuales, por ejemplo el operador S, que es definidocomo

S = A∆∆

−A∆Π

(AΠΠ

)−1AΠ∆

(E.2)

y es formado por

S =E∑

α=1

Sα (E.3)

donde Sα a su vez está constituida por el complemento de Schur local al sub-dominio Ωα

Sα = Aα

∆∆−Aα

∆Π

(Aα

ΠΠ

)−1Aα

Π∆(E.4)

pero, de nuevo, las matrices locales Sα y(Aα

ΠΠ

)−1no se construyen ya que

ΠΠuΠ = Sα

πuΠ donde S

α

πes definido como

π= Aα

ππ−Aα

πI

(Aα

II

)−1Aα

Iπ. (E.5)

[email protected] 210 Antonio Carrillo Ledesma, Et alii

Page 212: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Entonces, las matrices susceptibles de ser construidas en cada subdominioΩα son

II, Aα

Iπ,Aα

I∆, Aα

πI,Aα

ππ, Aα

π∆, Aα

∆I, Aα

∆πy Aα

∆∆(E.6)

pero Aα

Iπ=

(Aα

πI

)T

, Aα

I∆=

(Aα

∆I

)T

y Aα

π∆=

(Aα

∆π

)T

, así, las únicas matri-ces susceptibles de construir son

II, Aα

Iπ, Aα

I∆, Aα

ππ, Aα

π∆y Aα

∆∆(E.7)

donde todas ellas son locales a cada subdominio Ωα, con una estructura acorde altipo de discretización discutida en las secciones (C.8 y 3.4.1) y en este apéndice.

Por lo anterior, nótese que el operador S−1 tampoco se construye, paraevaluar S−1uΓ se usa el procedimiento indicado en la sección (E.3).

Otros operadores como son las matrices a y j pueden ser o no construidos,pero es necesario recordar que j = I−a, así que, en principio j no sería necesarioconstruir, por otro lado los operadores a y j sólo existen en el nodo maestro–donde se controla a los nodos duales y primales y no en los subdominios–;y estas matrices en caso de ser construidas serán dispersas, con pocos valorespor renglón –según el número de subdominios que compartan a cada uno delos nodos de la frontera interior– y están sujetas al tipo de triangulación usadaen la descomposición de la malla gruesa del dominio.

E.2 Evaluación de laMatriz S con Nodos Primales Definidos

En todos los casos donde aparece el operador S, ya que, sólo interesa la eva-luación de SyΓ, i.e. vΓ = SyΓ, entonces se reescribe al operador S en términosde sus componentes por subdominio

uΓ =

[E∑

α=1

]yΓ (E.8)

para evaluar, el vector yΓ se descompone en los subvectores yΓα correspondientesa cada subdominio Ωα. Así, para evaluar uΓα = SαyΓ

α se usa el hecho de que

Sα = Aα

∆∆−Aα

∆Π

(Aα

ΠΠ

)−1Aα

Π∆(E.9)

en donde, se tiene que evaluar

uΓα =

(Aα

∆∆−Aα

∆Π

(Aα

ΠΠ

)−1Aα

Π∆

)yΓ

α (E.10)

estas evaluaciones en cada subdominio Ωα pueden realizarse en paralelo.

[email protected] 211 Antonio Carrillo Ledesma, Et alii

Page 213: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Para evaluar de forma eficiente esta expresión, se realizan las siguientes ope-raciones equivalentes

x1 = Aα

∆∆yΓ

α (E.11)

x2 =

(Aα

∆Π

(Aα

ΠΠ

)−1Aα

Π∆

)yΓ

α

uΓα = x1− x2

la primera y tercera expresión no tienen ningún problema en su evaluación, parala segunda expresión se tiene que hacer

x3 = Aα

Π∆yΓ

α (E.12)

con este resultado intermedio se debe calcular

x4 =(Aα

ΠΠ

)−1x3 (E.13)

pero como no se cuenta con(Aα

ΠΠ

)−1ya que seria una matriz densa, entonces

se multiplica la expresión por Aα

ΠΠobteniendo

ΠΠx4 = Aα

ΠΠ

(Aα

ΠΠ

)−1x3 (E.14)

al simplificar, se obtieneAα

ΠΠx4 = x3. (E.15)

Esta última expresión puede ser resuelta usando Gradiente Conjugado oalguna variante de GMRES. Una vez obtenido x4, se puede calcular

x2 = Aα

∆Πx4 (E.16)

asíuΓ

α = x1− x2 (E.17)

completando la secuencia de operaciones necesaria para obtener uΓα = SαyΓα.

Observación 5 En el caso de la expresión dada por la Ec.(E.15) al aplicar unmétodo iterativo, sólo interesará realizar el producto Aα

ΠΠxΠ, o más precisamente

Si

πxπ, donde

Si

π=

(Ai

ππ−Ai

πI

(Ai

II

)−1Ai

)(E.18)

entonces si se llama xπi al vector correspondiente al subdominio i, se tiene

uπi =

(Ai

ππ−Ai

πI

(Ai

II

)−1Ai

)xπ

i (E.19)

[email protected] 212 Antonio Carrillo Ledesma, Et alii

Page 214: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

para evaluar de forma eficiente esta expresión, se realizan las siguientes opera-ciones equivalentes

u1 = Ai

ππxi (E.20)

u2 =

(Ai

πI

(Ai

II

)−1Ai

)xi

uΓi = u1− u2

la primera y tercera expresión no tienen ningún problema en su evaluación, parala segunda expresión se tiene que hacer

u3 = Ai

Iπxi (E.21)

con este resultado intermedio se debe calcular

u3 =(Ai

II

)−1u4 (E.22)

pero como no se cuenta con(Ai

II

)−1, entonces se multiplica la expresión por

Ai

IIobteniendo

Ai

IIu3 = Ai

II

(Ai

II

)−1u4 (E.23)

al simplificar, se obtieneAi

IIu4 = u3. (E.24)

Esta última expresión puede ser resuelta usando métodos directos –Facto-rización LU o Cholesky– o iterativos –Gradiente Conjugado o alguna variantede GMRES– cada una de estas opciones tiene ventajas y desventajas desdeel punto de vista computacional –como el consumo de memoria adicional o elaumento de tiempo de ejecución por las operaciones involucradas en cada caso–que deben ser evaluadas al momento de implementar el código para un problemaparticular. Una vez obtenido u4, se puede calcular

u2 = Ai

πIu4 (E.25)

asíuΓ

i = u1− u2 (E.26)

completando la secuencia de operaciones necesaria para obtener Si

πxi.

E.3 Evaluación de laMatriz S−1 con Nodos Primales Definidos

En los algoritmos desarrollados interviene el cálculo de S−1, dado que la matrizS no se construye, entonces la matriz S−1 tampoco se construye. En lugarde ello, se procede de la siguiente manera: Se asume que en las operacionesanteriores al producto de S−1, se ha obtenido un vector. Supóngase que es vΓ,entonces para hacer

uΓ = S−1vΓ (E.27)

[email protected] 213 Antonio Carrillo Ledesma, Et alii

Page 215: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

se procede a multiplicar por S a la ecuación anterior

SuΓ = SS−1vΓ (E.28)

obteniendoSuΓ = vΓ (E.29)

es decir, usando algún proceso iterativo –como CGM, GMRES– se resuelve elsistema anterior, de tal forma que en cada iteración de uΓi se procede como seindicó en la sección del cálculo de S, resolviendo SuΓ = vΓ mediante iteracionesde uΓi+1 = SuΓi.

E.4 Cálculo de los Nodos Interiores

La evaluación de

uΠ = −(AΠΠ

)−1AΠ∆

u∆ (E.30)

involucra de nuevo cálculos locales de la expresión

uIα = −

(Aα

ΠΠ

)−1Aα

Π∆uΓ

α (E.31)

aquí otra vez está involucrado(Aα

ΠΠ

)−1, por ello se debe usar el siguiente

procedimiento para evaluar de forma eficiente esta expresión, realizando lasoperaciones equivalentes

x4 = Aα

Π∆uΓ

α (E.32)

uIα =

(Aα

ΠΠ

)−1x4

multiplicando por Aα

ΠΠla última expresión, se obtiene

ΠΠuI

α = Aα

ΠΠ

(Aα

ΠΠ

)−1x4 (E.33)

simplificando, se obtieneAα

ΠΠuI

α = x4 (E.34)

esta última expresión puede ser resuelta usando métodos directos –como Fac-torización LU o Cholesky– o mediante métodos iterativos –como GradienteConjugado o alguna variante de GMRES– como se indica en la observación(5).

E.5 Descomposición de Schur sin Nodos Primales

En el caso de que en la descomposición no se usen nodos primales, la matrizvirtual global A queda como

[email protected] 214 Antonio Carrillo Ledesma, Et alii

Page 216: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A =

A1II

0 · · · 0 A1I∆

0 A2II

· · · 0 A2I∆

0 0. . . 0

...0 0 · · · AE

IIAE

I∆

A1∆I

A2∆I

· · · AE

∆IA∆∆

(E.35)

de donde Ax = b se implementa como

A

(xI

x∆

)=

(bIb∆

)(E.36)

i.e.(

E∑

α=1

(Aα

∆∆−Aα

∆I

(Aα

II

)−1Aα

I∆

))x∆ = b∆ −

E∑

α=1

(Aα

∆I

(Aα

II

)−1bαI

)

(E.37)una vez encontrado x∆, se encuentra xI mediante

xαI =

(Aα

II

)−1 (bαI −Aα

I∆xα∆

). (E.38)

E.6 DVS para Ecuaciones Escalares y Vectoriales

Con el fin de ejemplificación, se supone una ecuación escalar en dos dimensionesdefinida en un dominio Ω, mediante una descomposición en subdominios usandouna malla estructurada cartesiana como se muestra en la figura:

Figura 34: Dominio Ω descompuesto en una partición gruesa de 3 × 3 y cadasubdominio Ωi en una partición fina de 6× 5.

En este caso, sería una descomposición del dominio Ω en 3 × 3 y 6× 5 , lamalla gruesa seria descompuesta en 3 × 3 = 9 subdominios Ωα y donde cada

[email protected] 215 Antonio Carrillo Ledesma, Et alii

Page 217: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

uno de ellos tiene una partición fina de 6×5 i.e. 42 = (6+1)∗ (5+1) grados delibertad por subdominio. En el caso vectorial, en el cual cada grado de libertadcontiene C componentes, el número de grados de libertad total será igual a((6 + 1) ∗ (5 + 1) ∗ C) . Por ejemplo, en el caso de C = 3 se tienen 126 gradosde libertad por subdominio (véase [63]).

EDP Vectoriales en Dos y Tres Dimensiones En el caso de una ecuaciónvectorial en dos –tres– dimensiones, si el dominio Ω es descompuesto en unamalla estructurada cartesiana, donde la partición gruesa de n×m–ó n×m×o–subdominios Ωα y donde cada uno es descompuesto en una partición fina der×s–ó r×s× t–, en el cual cada grado de libertad contiene C componentes,el número de grados de libertad por subdominio es (r + 1) ∗ (s+ 1) ∗ C –ó(r + 1) ∗ (s+ 1) ∗ (t+ 1) ∗ C–.

A partir de la formulación de los métodos desarrollados, se generan las ma-trices locales en cada subdominio, de esta forma se obtiene la descomposiciónfina del dominio, generándose de manera virtual el sistema lineal definido porel método DVS que se este implementando.

La implementación computacional que se desarrolló tiene una jerarquía declases en donde la clase DPMethod realiza la partición gruesa del dominio usan-do la clase Interchange y controla la partición de cada subdominio medianteun objeto de la clase de RectSub generando la partición fina del dominio. Laresolución de los nodos de la frontera interior se hace mediante el método deCGM o alguna variante de GMRES.

El método de descomposición de dominio en el espacio de vectores derivadosse implementó realizando las siguientes tareas:

A) La clase DPMethod genera la descomposición gruesa del dominiomediante la agregación de un objeto de la clase Interchange, sesupone que se tiene particionado en n × m –ó n × m × o– sub-dominios.

B) Con esa geometría se construyen los objetos de RectSub –unopor cada subdominio Ωα–, donde cada subdominio es particionadoen r × s –ó r × s× t– subdominios y se regresan las coordenadasde los nodos de frontera del subdominio correspondiente a la claseDPMethod.

C) Con estas coordenadas, la clase DPMethod conoce a los nodos dela frontera interior –son estos los que resuelve el método de descom-posición de dominio–. Las coordenadas de los nodos de la fronterainterior se dan a conocer a los objetos RectSub, transmitiendo sóloaquellos que están en su subdominio.

D) Después de conocer los nodos de la frontera interior, cada objetoRectSub calcula las matrices locales sin realizar comunicación alguna.Al terminar de calcular las matrices se avisa a la clase DPMethod dela finalización de los cálculos.

[email protected] 216 Antonio Carrillo Ledesma, Et alii

Page 218: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

E) Mediante la comunicación de vectores del tamaño del número denodos de la frontera interior entre la clase DPMethod y los objetosRectSub, se prepara todo lo necesario para empezar el método deCGM o GMRES y resolver el sistema lineal virtual.

F) Para aplicar el método de CGM o GMRES, en cada iteraciónse transmite un vector del tamaño del número de nodos de la fron-tera interior para que en cada objeto se realicen las operacionespertinentes y resolver así el sistema algebraico asociado, esta co-municación se realiza de ida y vuelta entre la clase DPMethod ylos objetos RectSub tantas veces como iteraciones haga el método.Resolviendo con esto los nodos de la frontera interior uΓi

.

G) Al término de las iteraciones, se pasa la solución uΓide los no-

dos de la frontera interior que pertenecen a cada subdominio dentrode cada objeto RectSub para que se resuelvan los nodos locales al

subdominio uπα = −

(Aα

ΠΠ

)−1Aα

Π∆uΓ

α, sin realizar comunicaciónalguna en el proceso, al concluir se avisa a la clase DDM de ello.

I) La clase DPMethod mediante un último mensaje avisa que seconcluya el programa, terminado así el esquema Maestro-Esclavo.

Análisis de Comunicaciones Para hacer un análisis de las comunica-ciones en una ecuación vectorial con C componentes, entre el nodo principal ylos nodos esclavos en el método DVS es necesario conocer qué se trasmite y sutamaño, es por ello que en la medida de lo posible se detallan las comunica-ciones existentes –hay que hacer mención que entre los nodos esclavos no haycomunicación alguna–.

Tomando la descripción del algoritmo detallado anteriormente, en donde sesupuso una partición del dominio Ω con una malla estructurada cartesiana enn ×m –ó n ×m × o en tres dimensiones– para la malla gruesa y r × s –ór×s× t– para la malla fina, las comunicaciones correspondientes a cada incisoson:

A) El nodo maestro transmite 2 coordenadas en dos –en tres— di-mensiones correspondientes a la delimitación del subdominio.

B) 2 ∗ (r + 1) ∗ (s + 1) ∗ C –ó 2 ∗ (r + 1) ∗ (s + 1) ∗ (t + 1) ∗ C–coordenadas transmite cada subdominio al nodo maestro.

C) A lo más n∗m∗2∗(r+1)∗(s+1)∗C–ó n∗m∗o∗2∗(r+1)∗(s+1)∗(t+1) ∗C– coordenadas son las de los nodos de la frontera interior,y sólo aquellas correspondientes a cada subdominio son trasmitidaspor el nodo maestro a los subdominios en los esclavos siendo estas alo más 2 ∗ (n ∗m) ∗ (r ∗ s) ∗ C –ó 2 ∗ (n ∗m ∗ o) ∗ (r ∗ s ∗ t) ∗ C–coordenadas.

D) Sólo se envía un aviso de la conclusión del cálculo de las matrices.

[email protected] 217 Antonio Carrillo Ledesma, Et alii

Page 219: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

E) A lo más 2 ∗ (r+1) ∗ (s+1) ∗C –ó 2 ∗ (r+1) ∗ (s+1) ∗ (t+1) ∗C– coordenadas son transmitidas a los subdominios en los nodosesclavos desde el nodo maestro y los nodos esclavos transmiten alnodo maestro esa misma cantidad información.

F) A lo más 2 ∗ (r + 1) ∗ (s + 1) ∗ C –ó 2 ∗ (r + 1) ∗ (s + 1) ∗(t+1) ∗C– coordenadas son transmitidas a los subdominios en losnodos esclavos y estos retornan un número igual al nodo maestropor iteración del método de CGM o alguna variante de GMRES.

G) A lo más 2∗(r+1)∗(s+1)∗C –ó 2∗(r+1)∗(s+1)∗(t+1)∗C–valores de la solución de la frontera interior son transmitidas a lossubdominios en los nodos esclavos desde el nodo maestro y cadaobjeto transmite un único aviso de terminación.

I) El nodo maestro manda un aviso a cada subdominio en los nodosesclavos para concluir con el esquema.

En todos los casos, la transmisión se realiza mediante paso de arreglos deenteros y números de punto flotante que varían de longitud pero siempre soncantidades pequeñas de estos y se transmiten en forma de bloque, por ello lascomunicaciones son eficientes.

EDP Escalares como un Caso Particular de EDP Vectoriales En elcaso de trabajar con ecuaciones escalares en dos o tres dimensiones con unamalla estructurada cartesiana, en vez de ecuaciones vectoriales, todo el análisisanterior continua siendo válido y sólo es necesario tomar el número de compo-nentes C igual a uno, manteniéndose la estructura del código intacta.

Esto le da robustez al código, pues permite trabajar con problemas escalaresy vectoriales con un pequeño cambio en la estructura del programa, permitiendoresolver una gama más grande de problemas.

Tamaño de las Matrices Locales. Ahora, si se supone que el dominio Ω ⊂R3 es descompuesto con una malla estructurada cartesiana en una particióngruesa de n×m×o subdominios Ωα y cada subdominio Ωα es descompuesto enuna partición fina de r×s×t, con número de componentes igual a C, entonces elnúmero de grados de libertad por subdominio es (r + 1)∗(s+ 1)∗(t+ 1)∗C. Enla cual se usa un ordenamiento estándar en la numeración de los nodos dentrode cada subdominio

El número de nodos interiores es

NI = (r − 1) ∗ (s− 1) ∗ (t− 1) (E.39)

el número de nodos primales, suponiendo que se usa restricción en los vérticeses

Nπ = (n− 1) ∗ (m− 1) ∗ (o− 1) (E.40)

y el número de nodos duales es a lo más

N∆ = 2 ∗ [((r − 1) + (s− 1)) ∗ (t− 1)] (E.41)

[email protected] 218 Antonio Carrillo Ledesma, Et alii

Page 220: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

entonces se tiene que el tamaño y la estructura de cada una de las matriceslocales

Ai

II, Ai

Iπ,Ai

I∆, Ai

πI,Ai

ππ, Ai

π∆, Ai

∆I, Ai

∆πy Ai

∆∆

generadas por la descomposición fina del subdominio será:

• Ai

IIes una matriz cuadrada deNI×NI nodos, con una estructura bandada

• Ai

Iπes una matriz rectangular de NI × Nπ nodos, con una estructura

dispersa

• Ai

πIes una matriz rectangular de Nπ × NI nodos, con una estructura

dispersa y transpuesta de Ai

• Ai

I∆es una matriz rectangular de NI × N∆ nodos, con una estructura

dispersa

• Ai

∆Ies una matriz rectangular de N∆ × NI nodos, con una estructura

dispersa y transpuesta de Ai

I∆

• Ai

π∆es una matriz rectangular de Nπ × N∆ nodos, con una estructura

dispersa

• Ai

∆πes una matriz rectangular de Nπ × N∆ nodos, con una estructura

dispersa y transpuesta de Ai

π∆

• Ai

ππes una matriz cuadrada de Nπ ×Nπ nodos, con una estructura ban-

dada

• Ai

∆∆es una matriz cuadrada de N∆ × N∆ nodos, con una estructura

bandada

Para información sobre la estructura de las matrices bandadas véase la sec-ción (B.4.1) y para matrices dispersas véase la sección (B.4.2).

[email protected] 219 Antonio Carrillo Ledesma, Et alii

Page 221: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

F El Cómputo en Paralelo

Los sistemas de cómputo con procesamiento en paralelo surgen de la necesidadde resolver problemas complejos en un tiempo razonable, utilizando las ventajasde memoria, velocidad de los procesadores, formas de interconexión de estos ydistribución de la tarea, a los que en su conjunto denominamos arquitecturaen paralelo. Entenderemos por una arquitectura en paralelo a un conjunto deprocesadores interconectados capaces de cooperar en la solución de un problema.

Así, para resolver un problema en particular, se usa una o combinación demúltiples arquitecturas (topologías), ya que cada una ofrece ventajas y desventa-jas que tienen que ser sopesadas antes de implementar la solución del problemaen una arquitectura en particular. También es necesario conocer los problemasa los que se enfrenta un desarrollador de programas que se desean correr enparalelo, como son: el partir eficientemente un problema en múltiples tareas ycomo distribuir estas según la arquitectura en particular con que se trabaje.

F.1 Arquitecturas de Software y Hardware

En esta sección se explican en detalle las dos clasificaciones de computadoras másconocidas en la actualidad. La primera clasificación, es la clasificación clásicade Flynn en dónde se tienen en cuenta sistemas con uno o varios procesadores,la segunda clasificación es moderna en la que sólo tienen en cuenta los sistemascon más de un procesador.

El objetivo de esta sección es presentar de una forma clara los tipos declasificación que existen en la actualidad desde el punto de vista de distintosautores, así como cuáles son las ventajas e inconvenientes que cada uno ostenta,ya que es común que al resolver un problema particular se usen una o másarquitecturas de hardware interconectadas generalmente por red.

F.1.1 Clasificación de Flynn

Clasificación clásica de arquitecturas de computadoras que hace alusión a sis-temas con uno o varios procesadores, Flynn la publicó por primera vez en 1966y por segunda vez en 1970.

Esta taxonomía se basa en el flujo que siguen los datos dentro de la máquinay de las instrucciones sobre esos datos. Se define como flujo de instrucciones alconjunto de instrucciones secuenciales que son ejecutadas por un único proce-sador y como flujo de datos al flujo secuencial de datos requeridos por el flujode instrucciones.

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Single Instruction stream, Single Data stream (SISD) Los sistemasde este tipo se caracterizan por tener un único flujo de instrucciones sobreun único flujo de datos, es decir, se ejecuta una instrucción detrás de otra.Este es el concepto de arquitectura serie de Von Neumann donde, en cualquier

[email protected] 220 Antonio Carrillo Ledesma, Et alii

Page 222: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

momento, sólo se ejecuta una única instrucción, un ejemplo de estos sistemasson las máquinas secuenciales convencionales.

Single Instruction stream, Multiple Data stream (SIMD) Estos sis-temas tienen un único flujo de instrucciones que operan sobre múltiples flujosde datos. Ejemplos de estos sistemas los tenemos en las máquinas vectorialescon hardware escalar y vectorial.

El procesamiento es síncrono, la ejecución de las instrucciones sigue siendosecuencial como en el caso anterior, todos los elementos realizan una mismainstrucción pero sobre una gran cantidad de datos. Por este motivo existiráconcurrencia de operación, es decir, esta clasificación es el origen de la máquinaparalela.

El funcionamiento de este tipo de sistemas es el siguiente. La unidad de con-trol manda una misma instrucción a todas las unidades de proceso (ALUs). Lasunidades de proceso operan sobre datos diferentes pero con la misma instrucciónrecibida.

Existen dos alternativas distintas que aparecen después de realizarse estaclasificación:

• Arquitectura Vectorial con segmentación, una CPU única particionadaen unidades funcionales independientes trabajando sobre flujos de datosconcretos.

• Arquitectura Matricial (matriz de procesadores), varias ALUs idénticas alas que el procesador da instrucciones, asigna una única instrucción perotrabajando sobre diferentes partes del programa.

Multiple Instruction stream, Single Data stream (MISD) Sistemascon múltiples instrucciones que operan sobre un único flujo de datos. Este tipode sistemas no ha tenido implementación hasta hace poco tiempo. Los sistemasMISD se contemplan de dos maneras distintas:

• Varias instrucciones operando simultáneamente sobre un único dato.

• Varias instrucciones operando sobre un dato que se va convirtiendo en unresultado que será la entrada para la siguiente etapa. Se trabaja de formasegmentada, todas las unidades de proceso pueden trabajar de forma con-currente.

Multiple Instruction stream, Multiple Data stream (MIMD) Sis-temas con un flujo de múltiples instrucciones que operan sobre múltiples datos.Estos sistemas empezaron a utilizarse antes de la década de los 80s. Son sistemascon memoria compartida que permiten ejecutar varios procesos simultáneamente(sistema multiprocesador).

Cuando las unidades de proceso reciben datos de una memoria no com-partida estos sistemas reciben el nombre de MULTIPLE SISD (MSISD). En

[email protected] 221 Antonio Carrillo Ledesma, Et alii

Page 223: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

arquitecturas con varias unidades de control (MISD Y MIMD), existe otro ni-vel superior con una unidad de control que se encarga de controlar todas lasunidades de control del sistema (ejemplo de estos sistemas son las máquinasparalelas actuales).

F.1.2 Categorías de Computadoras Paralelas

Clasificación moderna que hace alusión única y exclusivamente a los sistemasque tienen más de un procesador (i.e máquinas paralelas). Existen dos tipos desistemas teniendo en cuenta su acoplamiento:

• Los sistemas fuertemente acoplados son aquellos en los que los proce-sadores dependen unos de otros.

• Los sistemas débilmente acoplados son aquellos en los que existe pocainteracción entre los diferentes procesadores que forman el sistema.

Atendiendo a esta y a otras características, la clasificación moderna dividea los sistemas en dos tipos: Sistemas multiprocesador (fuertemente acoplados)y sistemas multicomputadoras (débilmente acoplados).

Multiprocesadores o Equipo Paralelo de Memoria Compartida Unmultiprocesador puede verse como una computadora paralela compuesta porvarios procesadores interconectados que comparten un mismo sistema de memo-ria.

Los sistemas multiprocesadores son arquitecturas MIMD con memoria com-partida. Tienen un único espacio de direcciones para todos los procesadores ylos mecanismos de comunicación se basan en el paso de mensajes desde el puntode vista del programador.

Dado que los multiprocesadores comparten diferentes módulos de memoria,pudiendo acceder a un mismo módulo varios procesadores, a los multiproce-sadores también se les llama sistemas de memoria compartida.

Figura 35: Arquitectura de una computadora paralela con memoria compartida

Para hacer uso de la memoria compartida por más de un procesador, serequiere hacer uso de técnicas de semáforos que mantienen la integridad de lamemoria; esta arquitectura no puede crecer mucho en el número de procesadoresinterconectados por la saturación rápida del bus o del medio de interconexión.

Dependiendo de la forma en que los procesadores comparten la memoria, seclasifican en sistemas multiprocesador UMA, NUMA, COMA y Pipeline.

[email protected] 222 Antonio Carrillo Ledesma, Et alii

Page 224: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Uniform Memory Access (UMA) Sistema multiprocesador con accesouniforme a memoria. La memoria física es uniformemente compartida por todoslos procesadores, esto quiere decir que todos los procesadores tienen el mismotiempo de acceso a todas las palabras de la memoria. Cada procesador tiene supropia caché privada y también se comparten los periféricos.

Los multiprocesadores son sistemas fuertemente acoplados (tightly-coupled),dado el alto grado de compartición de los recursos (hardware o software) y el altonivel de interacción entre procesadores, lo que hace que un procesador dependade lo que hace otro.

El sistema de interconexión debe ser rápido y puede ser de uno de los si-guientes tipos: bus común, red crossbar y red multietapa. Este modelo esconveniente para aplicaciones de propósito general y de tiempo compartido porvarios usuarios, existen dos categorías de sistemas UMA.

• Sistema Simétrico

Cuando todos los procesadores tienen el mismo tiempo de acceso atodos los componentes del sistema (incluidos los periféricos), recibenel nombre de sistemas multiprocesador simétrico. Los procesadorestienen el mismo dominio (prioridad) sobre los periféricos y cadaprocesador tiene la misma capacidad para procesar.

• Sistema Asimétrico

Los sistemas multiprocesador asimétrico, son sistemas con proce-sadores maestros y procesadores esclavos, en donde sólo los primerospueden ejecutar aplicaciones y dónde en tiempo de acceso para dife-rentes procesadores no es el mismo. Los procesadores esclavos (at-tached) ejecutan código usuario bajo la supervisión del maestro, porlo tanto cuando una aplicación es ejecutada en un procesador ma-estro dispondrá de una cierta prioridad.

Non Uniform Memory Access (NUMA) Un sistema multiprocesadorNUMA es un sistema de memoria compartida donde el tiempo de acceso varíasegún donde se encuentre localizado el acceso.

El acceso a memoria, por tanto, no es uniforme para diferentes procesadores,existen memorias locales asociadas a cada procesador y estos pueden acceder adatos de su memoria local de una manera más rápida que a las memorias deotros procesadores, debido a que primero debe aceptarse dicho acceso por elprocesador del que depende el módulo de memoria local.

Todas las memorias locales conforman la memoria global compartida y físi-camente distribuida y accesible por todos los procesadores.

Cache Only Memory Access (COMA) Los sistemas COMA son uncaso especial de los sistemas NUMA. Este tipo de sistemas no ha tenido muchatrascendencia, al igual que los sistemas SIMD.

[email protected] 223 Antonio Carrillo Ledesma, Et alii

Page 225: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Las memorias distribuidas son memorias cachés, por este motivo es un sis-tema muy restringido en cuanto a la capacidad de memoria global. No hayjerarquía de memoria en cada módulo procesador. Todas las cachés forman unmismo espacio global de direcciones. El acceso a las cachés remotas se realiza através de los directorios distribuidos de las cachés.

Dependiendo de la red de interconexión utilizada, se pueden utilizar jerar-quías en los directorios para ayudar a la localización de copias de bloques decaché.

Procesador Vectorial Pipeline En la actualidad es común encontrar enun solo procesador los denominados Pipeline o Procesador Vectorial Pipeline deltipo MISD. En estos procesadores los vectores fluyen a través de las unidadesaritméticas Pipeline.

Las unidades constan de una cascada de etapas de procesamiento compuestasde circuitos que efectúan operaciones aritméticas o lógicas sobre el flujo de datosque pasan a través de ellas, las etapas están separadas por registros de altavelocidad usados para guardar resultados intermedios. Así la información quefluye entre las etapas adyacentes está bajo el control de un reloj que se aplica atodos los registros simultáneamente.

Multicomputadoras o Equipo Paralelo de Memoria Distribuida Lossistemas multicomputadoras se pueden ver como una computadora paralela enel cual cada procesador tiene su propia memoria local. En estos sistemas lamemoria se encuentra distribuida y no compartida como en los sistemas mul-tiprocesador. Los procesadores se comunican a través de paso de mensajes, yaque éstos sólo tienen acceso directo a su memoria local y no a las memorias delresto de los procesadores.

Figura 36: Arquitectura de una computadora paralela con memoria distribuida

La transferencia de los datos se realiza a través de la red de interconexiónque conecta un subconjunto de procesadores con otro subconjunto. La transfe-rencia de unos procesadores a otros se realiza por múltiples transferencias entreprocesadores conectados dependiendo del establecimiento de dicha red.

[email protected] 224 Antonio Carrillo Ledesma, Et alii

Page 226: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Dado que la memoria está distribuida entre los diferentes elementos de pro-ceso, estos sistemas reciben el nombre de distribuidos. Por otra parte, estossistemas son débilmente acoplados, ya que los módulos funcionan de forma casiindependiente unos de otros. Este tipo de memoria distribuida es de accesolento por ser peticiones a través de la red, pero es una forma muy efectiva detener acceso a un gran volumen de memoria.

Equipo Paralelo de Memoria Compartida-Distribuida La tenden-cia actual en las máquinas paralelas es de aprovechar las facilidades de pro-gramación que ofrecen los ambientes de memoria compartida y la escalabilidadde las ambientes de memoria distribuida. En este modelo se conectan entre simódulos de multiprocesadores, pero se mantiene la visión global de la memoriaa pesar de que es distribuida.

Clusters El desarrollo de sistemas operativos y compiladores del dominiopúblico (Linux y software GNU), estándares para el pase de mensajes (MPI),conexión universal a periféricos (PCI), etc. han hecho posible tomar ventaja delos económicos recursos computacionales de producción masiva (CPU, discos,redes).

La principal desventaja que presenta a los proveedores de multicomputado-ras es que deben satisfacer una amplia gama de usuarios, es decir, deben sergenerales. Esto aumenta los costos de diseños y producción de equipos, así comolos costos de desarrollo de software que va con ellos: sistema operativo, compi-ladores y aplicaciones. Todos estos costos deben ser añadidos cuando se haceuna venta. Por supuesto alguien que sólo necesita procesadores y un mecanismode pase de mensajes no debería pagar por todos estos añadidos que nunca usará.Estos usuarios son los que están impulsando el uso de clusters principalmentede computadoras personales (PC), cuya arquitectura se muestra a continuación:

Figura 37: Arquitectura de un cluster

Los cluster se pueden clasificar en dos tipos según sus características físicas:

• Cluster homogéneo si todos los procesadores y/o nodos participantes enel equipo paralelo son iguales en capacidad de cómputo (en la cual espermitido variar la cantidad de memoria o disco duro en cada procesador).

[email protected] 225 Antonio Carrillo Ledesma, Et alii

Page 227: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

• Cluster heterogéneo es aquel en que al menos uno de los procesadores y/onodos participantes en el equipo paralelo son de distinta capacidad decómputo.

Los cluster pueden formarse de diversos equipos; los más comunes son losde computadoras personales, pero es creciente el uso de computadoras multi-procesador de más de un procesador de memoria compartida interconectadospor red con los demás nodos del mismo tipo, incluso el uso de computadorasmultiprocesador de procesadores vectoriales Pipeline. Los cluster armados conla configuración anterior tienen grandes ventajas para procesamiento paralelo:

• La reciente explosión en redes implica que la mayoría de los com-ponentes necesarios para construir un cluster son vendidos en altosvolúmenes y por lo tanto son económicos. Ahorros adicionales sepueden obtener debido a que sólo se necesitará una tarjeta de vídeo,un monitor y un teclado por cluster. El mercado de los multiproce-sadores es más reducido y más costoso.

• Remplazar un componente defectuoso en un cluster es relativa-mente trivial comparado con hacerlo en un multiprocesador, permi-tiendo una mayor disponibilidad de clusters cuidadosamente diseña-dos.

Desventajas del uso de clusters de computadoras personales para proce-samiento paralelo:

• Con raras excepciones, los equipos de redes generales produci-dos masivamente no están diseñados para procesamiento paraleloy típicamente su latencia es alta y los anchos de banda pequeñoscomparados con multiprocesadores. Dado que los clusters explotantecnología que sea económica, los enlaces en el sistema no son velo-ces implicando que la comunicación entre componentes debe pasarpor un proceso de protocolos de negociación lentos, incrementandoseriamente la latencia. En muchos y en el mejor de los casos (debidoa costos) se recurre a una red tipo Fast Ethernet restringimiento laescalabilidad del cluster.

• Hay poco soporte de software para manejar un cluster como unsistema integrado.

• Los procesadores no son tan eficientes como los procesadores usa-dos en los multiprocesadores para manejar múltiples usuarios y/oprocesos. Esto hace que el rendimiento de los clusters se degradecon relativamente pocos usuarios y/o procesos.

•Muchas aplicaciones importantes disponibles en multiprocesadoresy optimizadas para ciertas arquitecturas, no lo están en clusters.

Sin lugar a duda los clusters presentan una alternativa importante paravarios problemas particulares, no sólo por su economía, si no también porque

[email protected] 226 Antonio Carrillo Ledesma, Et alii

Page 228: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

pueden ser diseñados y ajustados para ciertas aplicaciones. Las aplicaciones quepueden sacar provecho de clusters son en donde el grado de comunicación entreprocesos es de bajo a medio.

Tipos de Cluster

Básicamente existen tres tipo de clusters, cada uno de ellos ofrece ventajasy desventajas, el tipo más adecuado para el cómputo científico es del de alto-rendimiento, pero existen aplicaciones científicas que pueden usar más de untipo al mismo tiempo.

• Alta-disponibilidad (Fail-over o High-Availability): este tipo decluster esta diseñado para mantener uno o varios servicios disponiblesincluso a costa de rendimiento, ya que su función principal es que elservicio jamás tenga interrupciones como por ejemplo un servicio debases de datos.

• Alto-rendimiento (HPC o High Performance Computing): este tipode cluster está diseñado para obtener el máximo rendimiento de laaplicación utilizada incluso a costa de la disponibilidad del sistema,es decir el cluster puede sufrir caídas, este tipo de configuración estáorientada a procesos que requieran mucha capacidad de cálculo.

• Balanceo de Carga (Load-balancing): este tipo de cluster esta di-señado para balancear la carga de trabajo entre varios servidores,lo que permite tener, por ejemplo, un servicio de cálculo intensivomultiusuarios que detecte tiempos muertos del proceso de un usuariopara ejecutar en dichos tiempos procesos de otros usuarios.

Grids Son cúmulos (grupo de clusters) de arquitecturas en paralelo in-terconectados por red, los cuales distribuyen tareas entre los clusters que loforman, estos pueden ser homogéneos o heterogéneos en cuanto a los nodoscomponentes del cúmulo. Este tipo de arquitecturas trata de distribuir cargasde trabajo acorde a las características internas de cada cluster y las necesidadespropias de cada problema, esto se hace a dos niveles, una en la parte de progra-mación conjuntamente con el balance de cargas y otra en la parte de hardwareque tiene que ver con las características de cada arquitectura que conforman alcúmulo.

F.2 Métricas de Desempeño

Las métricas de desempeño del procesamiento de alguna tarea en paralelo es unfactor importante para medir la eficiencia y consumo de recursos al resolver unatarea con un número determinado de procesadores y recursos relacionados de lainterconexión de éstos.

Entre las métricas para medir desempeño en las cuales como premisa semantiene fijo el tamaño del problema, destacan las siguientes: Factor de ace-leración, eficiencia y fracción serial. Cada una de ellas mide algo en particular

[email protected] 227 Antonio Carrillo Ledesma, Et alii

Page 229: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

y sólo la combinación de estas dan un panorama general del desempeño delprocesamiento en paralelo de un problema en particular en una arquitecturadeterminada al ser comparada con otras.

Factor de Aceleración (o Speed-Up) Se define como el cociente del tiempoque se tarda en completar el cómputo de la tarea usando un sólo procesadorentre el tiempo que necesita para realizarlo en p procesadores trabajando enparalelo

s =T (1)

T (p)(F.1)

en ambos casos se asume que se usará el mejor algoritmo tanto para un soloprocesador como para p procesadores.

Esta métrica en el caso ideal debería de aumentar de forma lineal al aumentodel número de procesadores.

Eficiencia Se define como el cociente del tiempo que se tarda en completar elcómputo de la tarea usando un solo procesador entre el número de procesadoresmultiplicado por el tiempo que necesita para realizarlo en p procesadores tra-bajando en paralelo

e =T (1)

pT (p)=

s

p. (F.2)

Este valor será cercano a la unidad cuando el hardware se esté usando demanera eficiente, en caso contrario el hardware será desaprovechado.

Fracción serial Se define como el cociente del tiempo que se tarda en com-pletar el cómputo de la parte secuencial de una tarea entre el tiempo que setarda el completar el cómputo de la tarea usando un solo procesador

f =Ts

T (1)(F.3)

pero usando la ley de Amdahl

T (p) = Ts +Tp

p

y rescribiéndola en términos de factor de aceleración, obtenemos la forma ope-rativa del cálculo de la fracción serial que adquiere la forma siguiente

f =1s− 1

p

1− 1p

. (F.4)

Esta métrica permite ver las inconsistencias en el balance de cargas, ya quesu valor debiera de tender a cero en el caso ideal, por ello un incremento en elvalor de f es un aviso de granularidad fina con la correspondiente sobrecarga enlos procesos de comunicación.

[email protected] 228 Antonio Carrillo Ledesma, Et alii

Page 230: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

F.3 Cómputo Paralelo para Sistemas Continuos

Como se mostró en los capítulos anteriores, la solución de los sistemas conti-nuosusando ecuaciones diferenciales parciales genera un alto consumo de memoria einvolucran un amplio tiempo de procesamiento; por ello nos interesa trabajaren computadoras que nos puedan satisfacer estas demandas.

Actualmente, en muchos centros de cómputo es una práctica común usar di-rectivas de compilación en equipos paralelos sobre programas escritos de formasecuencial, con la esperanza que sean puestos por el compilador como programasparalelos. Esto en la gran mayoría de los casos genera códigos poco eficientes,pese a que corren en equipos paralelos y pueden usar toda la memoria compar-tida de dichos equipos, el algoritmo ejecutado continua siendo secuencial en lagran mayoría del código.

Si la arquitectura paralela donde se implemente el programa es UMA de ac-ceso simétrico, los datos serán accesados a una velocidad de memoria constante.En caso contrario, al acceder a un conjunto de datos es común que una parte deestos sean locales a un procesador (con un acceso del orden de nano segundos),pero el resto de los datos deberán de ser accesados mediante red (con acceso delorden de mili segundos), siendo esto muy costoso en tiempo de procesamiento.

Por ello, si usamos métodos de descomposición de dominio es posible ha-cer que el sistema algebraico asociado pueda distribuirse en la memoria local demúltiples computadoras y que para encontrar la solución al problema se requierapoca comunicación entre los procesadores.

Por lo anterior, si se cuenta con computadoras con memoria compartida o quetengan interconexión por bus, salvo en casos particulares no será posible explotaréstas características eficientemente. Pero en la medida en que se adecuen losprogramas para usar bibliotecas y compiladores acordes a las característicasdel equipo disponible (algunos de ellos sólo existen de manera comercial) laeficiencia aumentará de manera importante.

La alternativa más adecuada (en costo y flexibilidad), es trabajar con com-putadoras de escritorio interconectadas por red que pueden usarse de maneracooperativa para resolver nuestro problema. Los gastos en la interconexión delos equipos son mínimos (sólo el switch y una tarjeta de red por equipo y cablespara su conexión). Por ello los clusters y los grids son en principio una buenaopción para la resolución de este tipo de problemas.

Esquema de Paralelización Maestro-Esclavo La implementación de losmétodos de descomposición de dominio que se trabajarán será mediante el es-quema Maestro-Esclavo (Farmer) en el lenguaje de programación C++ bajo lainterfaz de paso de mensajes MPI trabajando en un cluster Linux Debian.

Donde tomando en cuenta la implementación en estrella del cluster, el mo-delo de paralelismo de MPI y las necesidades propias de comunicación del pro-grama, el nodo maestro tendrá comunicación sólo con cada nodo esclavo y noexistirá comunicación entre los nodos esclavos, esto reducirá las comunicacionesy optimizará el paso de mensajes.

El esquema de paralelización maestro-esclavo, permite sincronizar por parte

[email protected] 229 Antonio Carrillo Ledesma, Et alii

Page 231: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

del nodo maestro las tareas que se realizan en paralelo usando varios nodosesclavos, éste modelo puede ser explotado de manera eficiente si existe pocacomunicación entre el maestro y el esclavo y los tiempos consumidos en realizarlas tareas asignadas son mayores que los períodos involucrados en las comunica-ciones para la asignación de dichas tareas. De esta manera se garantiza que lamayoría de los procesadores estarán trabajando de manera continua y existiránpocos tiempos muertos.

Figura 38: Esquema del maestro-esclavo

Un factor limitante en este esquema es que el nodo maestro deberá de aten-der todas las peticiones hechas por cada uno de los nodos esclavos, esto tomaespecial relevancia cuando todos o casi todos los nodos esclavos compiten porser atendidos por el nodo maestro.

Se recomienda implementar este esquema en un cluster heterogéneo en dondeel nodo maestro sea más poderoso computacionalmente que los nodos esclavos.Si a éste esquema se le agrega una red de alta velocidad y de baja latencia, se lepermitirá operar al cluster en las mejores condiciones posibles, pero este esquemase verá degradado al aumentar el número de nodos esclavos inexorablemente.

Pero hay que ser cuidadosos en cuanto al número de nodos esclavos que seusan en la implementación en tiempo de ejecución versus el rendimiento generaldel sistema al aumentar estos, algunas observaciones posibles son:

• El esquema maestro-esclavo programado en C++ y usando MPIlanza P procesos (uno para el nodo maestro y P − 1 para los no-dos esclavos), estos en principio corren en un solo procesador peropueden ser lanzados en múltiples procesadores usando una directivade ejecución, de esta manera es posible que en una sola maquinase programe, depure y sea puesto a punto el código usando mallaspequeñas (del orden de cientos de nodos) y cuando este listo puedemandarse a producción en un cluster.

• El esquema maestro-esclavo no es eficiente si sólo se usan dosprocesadores (uno para el nodo maestro y otro para el nodo esclavo),ya que el nodo maestro en general no realiza los cálculos pesados ysu principal función será la de distribuir tareas; los cálculos serándelegados al nodo esclavo. En el caso que nos interesa implementar,el método de descomposición de dominio adolece de este problema.

[email protected] 230 Antonio Carrillo Ledesma, Et alii

Page 232: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Paso de Mensajes Usando MPI Para poder intercomunicar al nodo ma-estro con cada uno de los nodos esclavos se usa la interfaz de paso de mensajes(MPI), una biblioteca de comunicación para procesamiento en paralelo. MPIha sido desarrollado como un estándar para el paso de mensajes y operacionesrelacionadas.

Este enfoque es adoptado por usuarios e implementadores de bibliotecas, enla cual se proveen a los programas de procesamiento en paralelo de portabili-dad y herramientas necesarias para desarrollar aplicaciones que puedan usar elcómputo paralelo de alto desempeño.

El modelo de paso de mensajes posibilita a un conjunto de procesos quetienen solo memoria local la comunicación con otros procesos (usando Bus o red)mediante el envío y recepción de mensajes. Por definición el paso de mensajesposibilita transferir datos de la memoria local de un proceso a la memoria localde cualquier otro proceso que lo requiera.

En el modelo de paso de mensajes para equipos paralelos, los procesos seejecutan en paralelo, teniendo direcciones de memoria separada para cada pro-ceso, la comunicación ocurre cuando una porción de la dirección de memoria deun proceso es copiada mediante el envío de un mensaje dentro de otro procesoen la memoria local mediante la recepción del mismo.

Las operaciones de envío y recepción de mensajes es cooperativa y ocurre sólocuando el primer proceso ejecuta una operación de envío y el segundo procesoejecuta una operación de recepción, los argumentos base de estas funciones son:

• Para el que envía, la dirección de los datos a transmitir y el procesodestino al cual los datos se enviarán.

• Para el que recibe, debe de tener la dirección de memoria dondese pondrán los datos recibidos, junto con la dirección del proceso delque los envío.

Es decir:Send(dir, lg, td, dest, etiq, com)

dir, lg, td describe cuántas ocurrencias lg de elementos del tipo dedato td se transmitirán empezando en la dirección de memoria dir.

des, etiq, com describe el identificador etq de destino des asociadocon la comunicación com.

Recv(dir, mlg, td, fuent, etiq, com, st)

dir, lg, td describe cuántas ocurrencias lg de elementos del tipo dedato td se transmitirán empezando en la dirección de memoria dir.

fuent, etiq, com, est describe el identificador etq de la fuente fuentasociado con la comunicación com y el estado st.

El conjunto básico de directivas (en nuestro caso sólo se usan estas) en C++de MPI son:

[email protected] 231 Antonio Carrillo Ledesma, Et alii

Page 233: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

MPI::Init Inicializa al MPIMPI::COMM_WORLD.Get_size Busca el número de procesos existentesMPI::COMM_WORLD.Get_rank Busca el identificador del procesoMPI::COMM_WORLD.Send Envía un mensajeMPI::COMM_WORLD.Recv Recibe un mensajeMPI::Finalize Termina al MPI

Estructura del Programa Maestro-Esclavo La estructura del programase realizo para que el nodo maestro mande trabajos de manera síncrona a losnodos esclavos. Cuando los nodos esclavos terminan la tarea asignada, avisan alnodo maestro para que se le asigne otra tarea (estas tareas son acordes a la etapacorrespondiente del método de descomposición de dominio ejecutándose en uninstante dado). En la medida de lo posible se trata de mandar paquetes de datosa cada nodo esclavo y que estos regresen también paquetes al nodo maestro, amanera de reducir las comunicaciones al mínimo y tratar de mantener siempreocupados a los nodos esclavos para evitar los tiempos muertos, logrando conello una granularidad gruesa, ideal para trabajar con clusters.

La estructura básica del programa bajo el esquema maestro-esclavo codifi-cada en C++ y usando MPI es:

main(int argc, char *argv[])

MPI::Init(argc,argv);

ME_id = MPI::COMM_WORLD.Get_rank();

MP_np = MPI::COMM_WORLD.Get_size();

if (ME_id == 0)

// Operaciones del Maestro

else

// Operaciones del esclavo con identificador ME_id

MPI::Finalize();

En este único programa se deberá de codificar todas las tareas necesariaspara el nodo maestro y cada uno de los nodos esclavos, así como las formas deintercomunicación entre ellos usando como distintivo de los distintos procesos ala variable ME_id. Para más detalles de esta forma de programación y otrasfunciones de MPI ver [15] y [16].

Los factores limitantes para el esquema maestro-esclavo pueden ser de dostipos, los inherentes al propio esquema maestro-esclavo y al método de descom-posición de dominio:

[email protected] 232 Antonio Carrillo Ledesma, Et alii

Page 234: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

• El esquema de paralelización maestro-esclavo presupone contarcon un nodo maestro lo suficientemente poderoso para atender si-multáneamente las tareas síncronas del método de descomposiciónde dominio, ya que este distribuye tareas acorde al número de sub-dominios, estas si son balanceadas ocasionaran que todos los proce-sadores esclavos terminen al mismo tiempo y el nodo maestro tendráque atender múltiples comunicaciones simultáneamente, degradandosu rendimiento al aumentar el número de subdominios.

• Al ser síncrono el método de descomposición de dominio, si unnodo esclavo acaba la tarea asignada y avisa al nodo maestro, esteno podrá asignarle otra tarea hasta que todos los nodos esclavosconcluyan la suya.

Para los factores limitantes inherente al propio esquema maestro-esclavo,es posible implementar algunas operaciones del nodo maestro en paralelo, yasea usando equipos multiprocesador o en más de un nodo distintos a los nodosesclavos.

Para la parte inherente al método de descomposición de dominio, la partemedular la da el balanceo de cargas. Es decir que cada nodo esclavo tenga unacarga de trabajo igual al resto de los nodos. Este balanceo de cargas puede noser homogéneo por dos razones:

• Al tener P procesadores en el equipo paralelo, la descomposición del do-minio no sea la adecuada.

• Si se tiene una descomposición particular, esta se implemente en un númerode procesadores inadecuado.

Cualquiera de las dos razones generarán desbalanceo de la carga en los no-dos esclavos, ocasionando una perdida de eficiencia en el procesamiento de unproblema bajo una descomposición particular en una configuración del equipoparalelo especifica, es por esto que en algunos casos al aumentar el número deprocesadores que resuelvan la tarea no se aprecia una disminución del de tiempode procesamiento.

El número de procesadores P que se usen para resolver un dominio Ω ytener buen balance de cargas puede ser conocido si aplicamos el siguiente pro-cedimiento: Si el dominio Ω se descompone en n×m subdominios (la particióngruesa), entonces se generarán s = n ∗m subdominios Ωi, en este caso, se tieneun buen balanceo de cargas si (P − 1) | s. La partición fina se obtiene aldescomponer a cada subdominio Ωi en p× q subdominios.

Como ejemplo, supongamos que deseamos resolver el dominio Ω usando 81×81 nodos (nodos = n∗p+1 y nodos = m∗q+1), de manera inmediata nos surgenlas siguientes preguntas: ¿cuales son las posibles descomposiciones validas? y¿en cuantos procesadores se pueden resolver cada descomposición?. Para esteejemplo, sin hacer la tabla exhaustiva obtenemos:

[email protected] 233 Antonio Carrillo Ledesma, Et alii

Page 235: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Partición Subdominios Procesadores1x2 y 80x40 2 2,31x4 y 80x20 5 2,51x5 y 80x16 6 2,62x1 y 40x80 2 2,32x2 y 40x40 4 2,3,52x4 y 40x20 8 2,3,5,92x5 y 40x16 10 2,3,6,112x8 y 40x10 16 2,3,5,9,174x1 y 20x80 4 2,3,54x2 y 20x40 8 2,3,5,94x4 y 20x20 16 2,3,5,9,174x5 y 20x16 20 2,3,5,6,11,215x1 y 16x80 5 2,65x2 y 16x40 10 2,3,6,115x4 y 16x20 20 2,3,5,6,11,215x5 y 16x16 25 2,6,26

De esta tabla es posible seleccionar (para este ejemplo en particular), lasdescomposiciones que se adecuen a las necesidades particulares del equipo conque se cuente. Sin embargo hay que tomar en cuenta siempre el número denodos por subdominio de la partición fina, ya que un número de nodos muygrande puede que exceda la cantidad de memoria que tiene el nodo esclavo yun número pequeño estaría infrautilizando el poder computacional de los nodosesclavos. De las particiones seleccionadas se pueden hacer corridas de pruebapara evaluar su rendimiento, hasta encontrar la que menor tiempo de ejecuciónconsuma, maximizando así la eficiencia del equipo paralelo.

Programación Paralela en Multihilos En una computadora, sea secuen-cial o paralela, para aprovechar las capacidades crecientes del procesador, elsistema operativo divide su tiempo de procesamiento entre los distintos proce-sos, de forma tal que para poder ejecutar a un proceso, el kernel les asigna acada proceso una prioridad y con ello una fracción del tiempo total de proce-samiento, de forma tal que se pueda atender a todos y cada uno de los procesosde manera eficiente.

En particular, en la programación en paralelo usandoMPI, cada proceso (queeventualmente puede estar en distinto procesador) se lanza como una copia delprograma con datos privados y un identificador del proceso único, de tal formaque cada proceso sólo puede compartir datos con otro proceso mediante pasode mensajes.

Esta forma de lanzar procesos por cada tarea que se desee hacer en paralelo escostosa, por llevar cada una de ellas todo una gama de subprocesos para poderleasignar recursos por parte del sistema operativo. Una forma más eficiente dehacerlo es que un proceso pueda generar bloques de subprocesos que puedan serejecutados como parte del proceso (como subtareas), así en el tiempo asignado

[email protected] 234 Antonio Carrillo Ledesma, Et alii

Page 236: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

se pueden atender a más de un subproceso de manera más eficiente, esto esconocido como programación multihilos.

Los hilos realizarán las distintas tareas necesarias en un proceso. Para ha-cer que los procesos funcionen de esta manera, se utilizan distintas técnicasque le indican kernel cuales son las partes del proceso que pueden ejecutarsesimultáneamente y el procesador asignará una fracción de tiempo exclusivo alhilo del tiempo total asignado al proceso.

Los datos pertenecientes al proceso pasan a ser compartidos por los sub-procesos lanzados en cada hilo y mediante una técnica de semáforos el kernelmantiene la integridad de estos. Esta técnica de programación puede ser muy efi-ciente si no se abusa de este recurso, permitiendo un nivel más de paralelizaciónen cada procesador. Esta forma de paralelización no es exclusiva de equiposmultiprocesadores o multicomputadoras, ya que pueden ser implementados anivel de sistema operativo.

F.4 Escalabilidad

Se entiende por escalabilidad a la capacidad de adaptación y respuesta de unsistema con respecto al rendimiento del mismo a medida que aumentan de formasignificativa la carga computacional del mismo. Aunque parezca un conceptoclaro, la escalabilidad de un sistema es un aspecto complejo e importante deldiseño.

La escalabilidad esta íntimamente ligada al diseño del sistema. Influye enel rendimiento de forma significativa. Si una aplicación esta bien diseñada, laescalabilidad no constituye un problema. Analizando la escalabilidad, se deducede la implementación y del diseño general del sistema. No es atributo del sistemaconfigurable.

La escalabilidad supone un factor crítico en el crecimiento de un sistema. Siun sistema tiene como objetivo crecer la carga computacional –en el numerode usuarios o procesos– manteniendo su rendimiento actual, tiene que evaluardos posibles opciones:

• Con un hardware de mayor potencia o

• Con una mejor combinación de hardware y software

Se pueden distinguir dos tipos de escalabilidad, vertical y horizontal:

• El escalar verticalmente o escalar hacia arriba, significa el añadir másrecursos a un solo nodo en particular dentro de un sistema, tal como elañadir memoria o un disco duro más rápido a una computadora.

• La escalabilidad horizontal, significa agregar más nodos a un sistema, talcomo añadir una computadora nueva a un programa de aplicación paraespejo.

[email protected] 235 Antonio Carrillo Ledesma, Et alii

Page 237: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Escalabilidad Vertical El escalar hacia arriba un sistema viene a significaruna migración de todo el sistema a un nuevo hardware que es mas potente yeficaz que el actual. Una vez se ha configurado el sistema futuro, se realizanuna serie de validaciones y copias de seguridad y se pone en funcionamiento.Las aplicaciones que estén funcionando bajo la arquitectura hardware antiguano sufren con la migración, el impacto en el código es mínimo.

Este modelo de escalabilidad tiene un aspecto negativo. Al aumentar lapotencia en base a ampliaciones de hardware, llegara un momento que existiráalgún tipo de limitación hardware. Además a medida que se invierte en hardwarede muy altas prestaciones, los costos se disparan tanto de forma temporal (yaque si se ha llegado al umbral máximo , hay componentes hardware que tardanmucho tiempo en ampliar su potencia de forma significativa) como económicos.Sin embargo a nivel estructural no supone ninguna modificación reseñable, loque la convierte en una buena opción si los costos anteriores son asumibles.

Escalabilidad Horizontal La escalabilidad horizontal consiste en potenciarel rendimiento del sistema desde un aspecto de mejora global, a diferencia deaumentar la potencia de una única parte del mismo. Este tipo de escalabilidadse basa en la modularidad de su funcionalidad. Por ello suele estar conformadopor una agrupación de equipos que dan soporte a la funcionalidad completa.Normalmente, en una escalabilidad horizontal se añaden equipos para dar maspotencia a la red de trabajo.

Con un entorno de este tipo, es lógico pensar que la potencia de proce-samiento es directamente proporcional al número de equipos de la red. El totalde la potencia de procesamiento es la suma de la velocidad física de cada equipotransferida por la partición de aplicaciones y datos extendida a través de losnodos.

Si se aplica un modelo de escalabilidad basado en la horizontalidad, no exis-ten limitaciones de crecimiento a priori. Como principal e importante defecto,este modelo de escalabilidad supone una gran modificación en el diseño, lo queconlleva a una gran trabajo de diseño y reimplantación. Si la lógica se ha conce-bido para un único servidor, es probable que se tenga que estructurar el modeloarquitectónico para soportar este modelo de escalabilidad.

El encargado de como realizar el modelo de partición de datos en los difer-entes equipos es el desarrollador. Existen dependencias en el acceso a la apli-cación. Es conveniente, realizar una análisis de actividad de los usuarios para irajustando el funcionamiento del sistema. Con este modelo de la escalabilidad, sedispone de un sistema al que se pueden agregar recursos de manera casi infinitay adaptable al crecimiento de cargas de trabajo y nuevos usuarios.

La escalabilidad cuenta como factor crítico el crecimiento de usuarios. Esmucho más sencillo diseñar un sistema con un número constante de usuarios(por muy alto que sea este) que diseñar un sistema con un número crecientey variable de usuarios. El crecimiento relativo de los números es mucho másimportante que los números absolutos.

[email protected] 236 Antonio Carrillo Ledesma, Et alii

Page 238: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Balance de carga A la hora de diseñar un sistema con compartición derecursos, es necesario considerar como balancear la carga de trabajo. Se entiendeeste concepto, como la técnica usada para dividir el trabajo a compartir entrevarios procesos, ordenadores, u otros recursos. Esta muy relacionada con losistemas multiprocesales, que trabajan o pueden trabajar con mas de una unidadpara llevar a cabo su funcionalidad . Para evitar los cuellos de botella, el balancede la carga de trabajo se reparte de forma equitativa a través de un algoritmoque estudia las peticiones del sistema y las redirecciona a la mejor opción

Balance de Carga por Hardware Presenta las siguientes características:

• A partir de un algoritmo (Round Robin, LRU), examina las peticionesHTTP entrantes y selecciona el más apropiado entre los distintos clonesdel sistema

• La selección del clon del sistema esta basada en el algoritmo de sustitucióny es aleatoria

• Esto último punto provoca problemas en el diseño, ya que no garantizaque si un usuario realiza varias peticiones sean atendidas por el mismoclon del sistema. Por lo tanto, no hay mantenimiento de la sesión delusuario en servidor y condiciona el diseño

• La sesión debe de ser mantenida por el desarrollador

• Al ser un proceso hardware, es muy rápido

Balance de carga por Sotfware

• Examinan el paquete a nivel del protocolo HTTP para garantizar el man-tenimiento de la sesión de usuario

• Distintas peticiones del mismo usuario son servidas por el mismo clon delservidor.

• Más lentos que los balanceadores Hardware

• Normalmente son soluciones baratas

Cluster sobre servidores El concepto de clustering introduce la capacidadde unir varios servidores para que trabajen en un entorno en paralelo. Es decir,trabajar como si fuera un solo servidor el existente. En las etapas primigenias delclustering, los diseños presentaban graves problemas que se han ido subsanandocon la evolución de este campo. Actualmente se pueden crear clusters en funciónde las necesidades

• Unión de Hardware

• Clusters de Software

[email protected] 237 Antonio Carrillo Ledesma, Et alii

Page 239: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

• Alto rendimiento de bases de datos

En resumen, cluster es un grupo de múltiples ordenadores unidos medianteuna red de alta velocidad, de tal forma que el conjunto es visto como un únicoequipo, más potente . Con ello se pretende mejorar los siguientes parámetrosde la arquitectura:

• Alto rendimiento

• Alta disponibilidad

• Equilibrio de carga

• Escalabilidad

El clustering no presenta dependencias a nivel de hardware (no todos losequipos necesitan el mismo hardware ) ni a nivel de software (no necesitan elmismo sistema operativo). Este tipo de sistemas dispones de una interfaz quepermite dirigir el comportamiento de los clusters. Dicha interfaz es la encargadade la interactuación con usuarios y procesos, realizando la división de la cargaentre los diversos servidores que compongan el cluster.

Tipos de Cluster

Alta Disponibilidad (HA) y Failover. Enfocados a garantizar un servicioininterrumpido, al duplicar toda la infraestructura e introducir sistemas de de-tección y re-enrutamiento (Servicios Heart-Beat), en caso de fallo. El propósitode este tipo de clusters es garantizar que si un nodo falla, los servicios y aplica-ciones que estaban corriendo en ese nodo, sean trasladados de forma automáticaa un nodo que se encuentra en stand-by. Este tipo de cluster dispone de her-ramientas con capacidad para monitorizar los servidores o servicios caídos yautomáticamente migrarlos a un nodo secundario para garantizar la disponibil-idad del servicio. Los datos son replicados de forma periódica, o a ser posibleen tiempo real, a los nodos en Stand-by.

Cluster Balanceado Este tipo de cluster es capaz de repartir el tráficoentrante entre múltiples servidores corriendo las mismas aplicaciones. Todos losnodos del cluster pueden aceptar y responder peticiones. Si un nodo falla, eltráfico se sigue repartiendo entre los nodos restantes.

[email protected] 238 Antonio Carrillo Ledesma, Et alii

Page 240: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

G Implementación Computacional del Métodode Diferencias Finitas para la Resolución deEcuaciones Diferenciales Parciales

Existen diferentes paquetes y lenguajes de programación en los cuales se puedeimplementar eficientemente la solución numérica de ecuaciones diferenciales par-ciales mediante el método de Diferencias Finitas, en este capítulo se describe laimplementación62 en los paquetes de cómputo OCTAVE (MatLab), SciLab y enlos lenguajes de programación C++, Python, Java, Mono (C#), Fortran y C.

Estos ejemplos y el presente texto se pueden descargar de la página WEB:

http://mmc.geofisica.unam.mx/acl/MDF/

desde GitHub63 (https://github.com/antoniocarrillo69/MDF) mediante:

git clone git://github.com/antoniocarrillo69/MDF.git

desde GitLab64 (https://githlab.com/antoniocarrillo69/MDF) mediante:

git clone https://gitlab.com/antoniocarrillo69/MDF.git

G.1 Implementación en Octave (MatLab)

GNUOCTAVE65 es un paquete de cómputo open source para el cálculo numérico–muy parecido a MatLab66 pero sin costo alguno para el usuario– el cualprovee un poderoso ambiente de cálculo para aplicaciones Científicas y de Inge-niería.

Ejemplo 16 Sea

−u′′(x) = −π2 cos(πx), 0 ≤ x ≤ 1, u(0) = 1, u(1) = −1

entonces el programa queda implementado como:function [A,b,x] = fdm1d(n)

xi = -1; % Inicio de dominioxf = 2; % Fin de dominio

62En los ejemplos cuando es posible se definen matrices que minimizan la memoria usadaen el almacenamiento y maximizan la eficiencia de los métodos numéricos de solución delsistema lineal asociado. En el caso de Octave (MatLab) se define a una matriz mediante A= zeros(N,N), esta puede ser remplazada por una matriz que no guarda valores innecesarios(ceros), esto se hace mediante la declaración de la matriz como A = sparse(N,N).63GitHub es una plataforma de desarrollo colaborativo para alojar proyectos usando el

sistema de control de versiones GIT.64GitLab es una plataforma de desarrollo colaborativo para alojar proyectos usando el sis-

tema de control de versiones GIT.65GNU Octave [http://www.gnu.org/software/octave/]66MatLab [http://www.mathworks.com/products/matlab/]

[email protected] 239 Antonio Carrillo Ledesma, Et alii

Page 241: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

vi = -1; % Valor en la forntera xivf = 1; % Valor en la frontera xfN=n-2; % Nodos interioresh=(xf-xi)/(n-1); % Incremento en la mallaA=zeros(N,N); % Matriz Ab=zeros(N,1); % Vector bR=1/(h^2);P=-2/(h^2);Q=1/(h^2);% Primer renglon de la matriz A y vector bA(1,1)=P;A(1,2)=Q;b(1)=LadoDerecho(xi)-vi*R;% Renglones intermedios de la matriz A y vector bfor i=2:N-1

A(i,i-1)=R;A(i,i)=P;A(i,i+1)=Q;

b(i)=LadoDerecho(xi+h*(i-1));end% Relglon final de la matriz A y vector bA(N,N-1)=R;A(N,N)=P;b(N)=LadoDerecho(xi+h*N)-vf*Q;% Resuleve el sistema lineal Ax=bx=inv(A)*b;% Prepara la graficacionxx=zeros(n,1);zz=zeros(n,1);for i=1:nxx(i)=xi+h*(i-1);zz(i)=SolucionAnalitica(xx(i));endyy=zeros(n,1);yy(1)=vi; % Condicion inicialfor i=1:N

yy(i+1)=x(i);endyy(n)=vf; % Condicion inicial% Grafica la solucion de la Ecuacion Diferencial Parcial en 1Dplot(xx,[yy,zz]);%plot(xx,zz);endfunction% Lado derecho de la ecuacionfunction y=LadoDerecho(x)y=-pi*pi*cos(pi*x);

[email protected] 240 Antonio Carrillo Ledesma, Et alii

Page 242: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

endfunction% Solucion analitica a la ecuacionfunction y=SolucionAnalitica(x)y=cos(pi*x);endfunction

Si el programa lo grabamos en el directorio de trabajo con el nombre fdm1d.m,entonces se puede ejecutar en la consola de OCTAVE (MatLab) mediante

[A, b, x] = fdm1d(30);

donde es necesario indicar el número de nodos (30) en la partición. La ejecucióngenera la gráfica de la solución calculada por el método de diferencias finitasy la solución analítica en los mismos puntos de la malla, además devuelve lamatriz y los vectores A, b, x generados por la función.

Dado que esta escuación se puede extender a todo es espacio, entonces sepuede reescribir así

Ejemplo 17 Sea

−u′′(x) = −π2 cos(πx), xi ≤ x ≤ xf, u(xi) = vi, u(xf) = xf

entonces el programa queda implementado como:function [A,b,x] = fdm1d(xi,xf,vi,vf,n)

N=n-2; % Nodos interioresh=(xf-xi)/(n-1); % Incremento en la mallaA=zeros(N,N); % Matriz Ab=zeros(N,1); % Vector bR=1/(h^2);P=-2/(h^2);Q=1/(h^2);% Primer renglon de la matriz A y vector bA(1,1)=P;A(1,2)=Q;b(1)=LadoDerecho(xi)-vi*R;% Renglones intermedios de la matriz A y vector bfor i=2:N-1

A(i,i-1)=R;A(i,i)=P;A(i,i+1)=Q;b(i)=LadoDerecho(xi+h*(i-1));

end% Renglon final de la matriz A y vector bA(N,N-1)=R;A(N,N)=P;b(N)=LadoDerecho(xi+h*N)-vf*Q;

[email protected] 241 Antonio Carrillo Ledesma, Et alii

Page 243: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

% Resuleve el sistema lineal Ax=bx=inv(A)*b;% Prepara la graficacionxx=zeros(n,1);zz=zeros(n,1);for i=1:n

xx(i)=xi+h*(i-1);zz(i)=SolucionAnalitica(xx(i));

endyy=zeros(n,1);yy(1)=vi; % Condicion inicialfor i=1:N

yy(i+1)=x(i);endyy(n)=vf; % Condicion inicial% Grafica la solucion de la Ecuacion Diferencial Parcial en 1Dplot(xx,[yy,zz]);

endfunctionfunction y=LadoDerecho(x)

y=-pi*pi*cos(pi*x);endfunctionfunction y=SolucionAnalitica(x)

y=cos(pi*x);endfunction

Si el programa lo grabamos en el directorio de trabajo con el nombre fdm1d.m,entonces se puede ejecutar en la consola de OCTAVE (MatLab) mediante

[A, b, x] = fdm1d(−1, 2,−1, 1, 30);

donde es necesario indicar el inicio (−1) y fin (2) del dominio, el valor de lacondición de frontera de inicio (−1) y fin (1), además de el número de nodos(30) en la partición. La ejecución genera la gráfica de la solución calculada porel método de diferencias finitas y la solución analítica en los mismos puntos de lamalla, además devuelve la matriz y los vectores A, b, x generados por la función.

[email protected] 242 Antonio Carrillo Ledesma, Et alii

Page 244: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

G.2 Implementación en SciLab

Scilab67 es un paquete de cómputo open source para el cálculo numérico elcual provee un poderoso ambiente de cálculo para aplicaciones Científicas y deIngeniería.

Ejemplo 18 Sea

−u′′(x) = −π2 cos(πx), xi ≤ x ≤ xf, u(xi) = vi, u(xf) = vf

El programa queda implementado como:function [A,b,x] = fdm1d(n)

xi = -1; // Inicio de dominioxf = 2; // Fin de dominiovi = -1; // Valor en la forntera xivf = 1; // Valor en la frontera xfN=n-2; // Nodos interioresh=(xf-xi)/(n-1); // Incremento en la mallaA=zeros(N,N); // Matriz Ab=zeros(N,1); // Vector bR=1/(h^2);P=-2/(h^2);Q=1/(h^2);// Primer renglon de la matriz A y vector bA(1,1)=P;A(1,2)=Q;b(1)=LadoDerecho(xi)-vi*R;// Renglones intermedios de la matriz A y vector bfor i=2:N-1

A(i,i-1)=R;A(i,i)=P;A(i,i+1)=Q;b(i)=LadoDerecho(xi+h*(i-1));

end// Relglon final de la matriz A y vector bA(N,N-1)=R;A(N,N)=P;b(N)=LadoDerecho(xi+h*N)-vf*Q;// Resuleve el sistema lineal Ax=bx=inv(A)*b;// Prepara la graficacionxx=zeros(n,1);zz=zeros(n,1);for i=1:n

xx(i)=xi+h*(i-1);

67Scilab [http://www.scilab.org]

[email protected] 243 Antonio Carrillo Ledesma, Et alii

Page 245: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

zz(i)=SolucionAnalitica(xx(i));endyy=zeros(n,1);yy(1)=vi; // Condicion inicialfor i=1:N

yy(i+1)=x(i);endyy(n)=vf; // Condicion inicial// Grafica la solucion de la Ecuacion Diferencial Parcial en 1Dplot2d(xx,[yy,zz]);

endfunction// Lado derecho de la ecuacionfunction y=LadoDerecho(x)

y=-%pi*%pi*cos(%pi*x);endfunction// Solucion analitica a la ecuacionfunction y=SolucionAnalitica(x)

y=cos(%pi*x);endfunction

Si el programa lo grabamos en el directorio de trabajo con el nombre fdm1d.sci,entonces para poder ejecutar la función es necesario cargarla en la consola deSCILAB mediante

exec(’./fdm1d.sci’,-1)

para después ejecutar la función mediante:

[A, b, x] = fdm1d(30);

donde es necesario indicar el número de nodos (30) en la partición. La ejecucióngenera la gráfica de la solución calculada por el método de diferencias finitasy la solución analítica en los mismos puntos de la malla, además devuelve lamatriz y los vectores A, b, x generados por la función.

Dado que esta escuación se puede extender a todo es espacio, entonces sepuede reescribir así

Ejemplo 19 Sea

−u′′(x) = −π2 cos(πx), xi ≤ x ≤ xf, u(xi) = vi, u(xf) = vf

El programa queda implementado como:function [A,b,x] = fdm1d(xi,xf,vi,vf,n)

N=n-2; // Nodos interioresh=(xf-xi)/(n-1); // Incremento en la mallaA=zeros(N,N); // Matriz Ab=zeros(N,1); // Vector b

[email protected] 244 Antonio Carrillo Ledesma, Et alii

Page 246: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

R=1/(h^2);P=-2/(h^2);Q=1/(h^2);// Primer renglon de la matriz A y vector bA(1,1)=P;A(1,2)=Q;b(1)=LadoDerecho(xi)-vi*R;// Renglones intermedios de la matriz A y vector bfor i=2:N-1

A(i,i-1)=R;A(i,i)=P;A(i,i+1)=Q;b(i)=LadoDerecho(xi+h*(i-1));

end// Renglon final de la matriz A y vector bA(N,N-1)=R;A(N,N)=P;b(N)=LadoDerecho(xi+h*N)-vf*Q;// Resuleve el sistema lineal Ax=bx=inv(A)*b;// Prepara la graficacionxx=zeros(n,1);zz=zeros(n,1);for i=1:n

xx(i)=xi+h*(i-1);zz(i)=SolucionAnalitica(xx(i));

endyy=zeros(n,1);yy(1)=vi; // Condicion inicialfor i=1:N

yy(i+1)=x(i);endyy(n)=vf; // Condicion inicial// Grafica la solucion de la Ecuacion Diferencial Parcial en 1Dplot2d(xx,[yy,zz]);

endfunctionfunction y=LadoDerecho(x)

y=-%pi*%pi*cos(%pi*x);endfunctionfunction y=SolucionAnalitica(x)

y=cos(%pi*x);endfunction

Si el programa lo grabamos en el directorio de trabajo con el nombre fdm1d.sci,entonces para poder ejecutar la función es necesario cargarla en la consola deSCILAB mediante

[email protected] 245 Antonio Carrillo Ledesma, Et alii

Page 247: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

exec(’./fdm1d.sci’,-1)

para después ejecutar la función mediante:

[A, b, x] = fdm1d(−1, 2,−1, 1, 30);

donde es necesario indicar el inicio (−1) y fin (2) del dominio, el valor de lacondición de frontera de inicio (−1) y fin (1), además de el numero de nodos(30) en la partición. La ejecución genera la gráfica de la solución calculada porel método de diferencias finitas y la solución analítica en los mismos puntos de lamalla, además devuelve la matriz y los vectores A, b, x generados por la función.

Observación 6 La diferencia entre los códigos de OCTAVE y SCILAb al menospara estos ejemplos estriba en la forma de indicar los comentarios y la manerade llamar para generar la gráfica, además de que en SCILAB es necesario cargarel archivo que contiene la función.

Ejemplo 20 Sea

u′′(x) = −π2 cos (πx) , 0 ≤ x ≤ 0.5, u(0) = 1, u′(0.5) = −π

entonces el programa queda implementado como:function y=LadoDerecho(x)y=-%pi*%pi*cos(%pi*x);endfunction

function y=SolucionAnalitica(x)y=cos(%pi*x);endfunction

a=0; // Inicio dominioc=0.5; // Fin dominioM=40; // ParticiónN=M-1; // Nodos interioresh=(c-a)/(M-1); // Incremento en la mallaY0=1; // Condicion Dirchlet inicial en el inicio del dominioY1=-%pi; // Condicion Neumann inicial en el fin del dominioA=zeros(N,N); // Matriz Ab=zeros(N); // Vector b

R=1/(h^2);P=-2/(h^2);Q=1/(h^2);

// Primer renglon de la matriz A y vector b

[email protected] 246 Antonio Carrillo Ledesma, Et alii

Page 248: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A(1,1)=P;A(1,2)=Q;b(1)=LadoDerecho(a)-Y0*R; // Frontera Dirichlet// Renglones intermedios de la matriz A y vector bfor i=2:N-1A(i,i-1)=R;A(i,i)=P;A(i,i+1)=Q;b(i)=LadoDerecho(a+h*(i-1));end// Relglon final de la matriz A y vector bA(N,N-1)=-1/(h^2);A(N,N)=-1/(h^2);b(N)=Y1/h; // Frontera Neumann

// Resuleve el sistema lineal Ax=bx=inv(A)*b;

// Prepara la graficaciónxx=zeros(M,1);zz=zeros(M,1);for i=1:Mxx(i)=a+h*(i-1);zz(i)=SolucionAnalitica(xx(i));endyy=zeros(M,1);yy(1)=Y0; // Condicion inicialfor i=1:Nyy(i+1)=x(i);end// Grafica la solución de la Ecuacion Diferencial Parcial en 1Dplot2d(xx,[yy,zz])

Ejemplo 21 Sea

−u′′(x) + u (x) = 0, 0 ≤ x ≤ 1, u(0) = 0, u(1) = 1

entonces el programa queda implementado como:a=0; // Inicio dominioc=1; // Fin dominioM=50; // ParticiónN=M-2; // Nodos interioresh=(c-a)/(M-1); // Incremento en la mallaY0=0; // Condicion inicial en el inicio del dominioY1=1; // Condicion inicial en el fin del dominio

[email protected] 247 Antonio Carrillo Ledesma, Et alii

Page 249: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A=zeros(N,N); // Matriz Ab=zeros(N); // Vector b

P=2/(h^2);Q=-1/(h^2)+1/(2*h);R=-1/(h^2)-1/(2*h);

// Primer renglon de la matriz A y vector bA(1,1)=P;A(1,2)=Q;b(1)=-Y0*R;// Renglones intermedios de la matriz A y vector bfor i=2:N-1A(i,i-1)=R;A(i,i)=P;A(i,i+1)=Q;end// Relglon final de la matriz A y vector bA(N,N-1)=R;A(N,N)=P;b(N)=-Y1*Q;

// Resuleve el sistema lineal Ax=bx=inv(A)*b;

// Prepara la graficaciónxx=zeros(M,1);for i=1:Mxx(i)=a+h*(i-1);endyy=zeros(M,1);yy(1)=Y0; // Condicion inicialfor i=1:Nyy(i+1)=x(i);endyy(M)=Y1; // Condicion inicial// Grafica la solución de la Ecuacion Diferencial Parcial en 1Dplot2d(xx,yy)

Ejemplo 22 Sea

u′′(x) = −π2 cos (πx) , 0 ≤ x ≤ 1, u(0) = −1, u(1) = 1

[email protected] 248 Antonio Carrillo Ledesma, Et alii

Page 250: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

entonces el programa queda implementado como:function y=LadoDerecho(x)y=-%pi*%pi*cos(%pi*x);endfunction

function y=SolucionAnalitica(x)y=cos(%pi*x);endfunction

a=-1; // Inicio dominioc=2; // Fin dominioM=100; // ParticiónN=M-2; // Nodos interioresh=(c-a)/(M-1); // Incremento en la mallaY0=-1; // Condicion inicial en el inicio del dominioY1=1; // Condicion inicial en el fin del dominio

A=zeros(N,N); // Matriz Ab=zeros(N); // Vector bR=1/(h^2);P=-2/(h^2);Q=1/(h^2);// Primer renglon de la matriz A y vector bA(1,1)=P;A(1,2)=Q;b(1)=LadoDerecho(a)-Y0*R;// Renglones intermedios de la matriz A y vector bfor i=2:N-1A(i,i-1)=R;A(i,i)=P;A(i,i+1)=Q;b(i)=LadoDerecho(a+h*(i-1));end// Relglon final de la matriz A y vector bA(N,N-1)=R;A(N,N)=P;b(N)=LadoDerecho(a+h*N)-Y1*Q;

// Resuleve el sistema lineal Ax=bx=inv(A)*b;

// Prepara la graficaciónxx=zeros(M,1);zz=zeros(M,1);for i=1:Mxx(i)=a+h*(i-1);

[email protected] 249 Antonio Carrillo Ledesma, Et alii

Page 251: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

zz(i)=SolucionAnalitica(xx(i));endyy=zeros(M,1);yy(1)=Y0; // Condicion inicialfor i=1:Nyy(i+1)=x(i);endyy(M)=Y1; // Condicion inicial// Grafica la solución de la Ecuacion Diferencial Parcial en 1Dplot2d(xx,[yy,zz])

Ejemplo 23 Sea

u′′(x) = −π2 cos (πx) , 0 ≤ x ≤ 0.5, u(0) = 1, u′(0.5) = −π

entonces el programa queda implementado como:function y=LadoDerecho(x)y=-%pi*%pi*cos(%pi*x);endfunction

function y=SolucionAnalitica(x)y=cos(%pi*x);endfunction

a=0; // Inicio dominioc=0.5; // Fin dominioM=40; // ParticiónN=M-1; // Nodos interioresh=(c-a)/(M-1); // Incremento en la mallaY0=1; // Condicion Dirchlet inicial en el inicio del dominioY1=-%pi; // Condicion Neumann inicial en el fin del dominioA=zeros(N,N); // Matriz Ab=zeros(N); // Vector b

R=1/(h^2);P=-2/(h^2);Q=1/(h^2);

// Primer renglon de la matriz A y vector bA(1,1)=P;A(1,2)=Q;b(1)=LadoDerecho(a)-Y0*R; // Frontera Dirichlet// Renglones intermedios de la matriz A y vector bfor i=2:N-1A(i,i-1)=R;

[email protected] 250 Antonio Carrillo Ledesma, Et alii

Page 252: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

A(i,i)=P;A(i,i+1)=Q;b(i)=LadoDerecho(a+h*(i-1));end// Relglon final de la matriz A y vector bA(N,N-1)=-1/(h^2);A(N,N)=-1/(h^2);b(N)=Y1/h; // Frontera Neumann

// Resuleve el sistema lineal Ax=bx=inv(A)*b;

// Prepara la graficaciónxx=zeros(M,1);zz=zeros(M,1);for i=1:Mxx(i)=a+h*(i-1);zz(i)=SolucionAnalitica(xx(i));endyy=zeros(M,1);yy(1)=Y0; // Condicion inicialfor i=1:Nyy(i+1)=x(i);end// Grafica la solución de la Ecuacion Diferencial Parcial en 1Dplot2d(xx,[yy,zz])

[email protected] 251 Antonio Carrillo Ledesma, Et alii

Page 253: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

G.3 Implementación en C++

GMM++68 es una librería para C++ que permite definir diversos tipos dematrices y vectores además operaciones básicas de algebra lineal. La facilidadde uso y la gran cantidad de opciones hacen que GMM++ sea una buena opciónpara trabajar con operaciones elementales de algebra lineal.

Se instala en Debian Linux y/o Ubuntu como:# apt-get install libgmm++-dev

Para compilar el ejemplo usar:$ g++ ejemplito.cpp

Para ejecutar usar:$ ./a.out

Ejemplo 24 Sea

−u′′(x) + u(x) = 0, 0 ≤ x ≤ 1, u(0) = 0, u(1) = 1

entonces el programa queda implementado como:#include <gmm/gmm.h>#include <math.h>const double pi = 3.141592653589793;// Lado derechodouble LD(double x)return ( -pi * pi * cos(pi * x));// Solucion analiticadouble SA(double x)return (cos(pi * x));int main(void)int M=11; // Particionint N=M-2; // Nodos interioresdouble a=0; // Inicio dominiodouble c=1; // Fin dominiodouble h=(c-a)/(M-1); // Incremento en la malladouble Y0=1.0; // Condicion inicial en el inicio del dominiodouble Y1=-1.0; // Condicion inicial en el fin del dominio// Matriz densagmm::dense_matrix<double> AA(N, N);// Matriz dispersagmm::row_matrix< gmm::rsvector<double> > A(N, N);// Vectores

68GMM++ [http://download.gna.org/getfem/html/homepage/gmm/]

[email protected] 252 Antonio Carrillo Ledesma, Et alii

Page 254: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

std::vector<double> x(N), b(N);int i;double P = -2 / (h * h);double Q = 1 / (h * h);double R = 1 / (h * h);A(0, 0) = P; // Primer renglon de la matriz A y vector bA(0, 1) = Q;b[0] = LD(a + h) - (Y0 / (h * h));// Renglones intermedios de la matriz A y vector bfor(i = 1; i < N - 1; i++)A(i, i - 1) = R;A(i, i) = P;A(i, i + 1) = Q;b[i] = LD(a + (i + 1) * h);A(N - 1, N - 2) = R; // Relglon final de la matriz A y vector bA(N - 1, N - 1) = P;b[N - 1] = LD(a + (i + 1) * h) - (Y1 / (h * h));// Copia la matriz dispersa a la densa para usarla en LUgmm::copy(A,AA);// Visualiza la matriz y el vectorstd::cout << "Matriz A"<< AA << gmm::endl;std::cout << "Vector b"<< b << gmm::endl;// LU para matrices densagmm::lu_solve(AA, x, b);std::cout << "LU"<< x << gmm::endl;gmm::identity_matrix PS; // Optional scalar product for cggmm::identity_matrix PR; // Optional preconditionergmm::iteration iter(10E-6);// Iteration object with the max residusize_t restart = 50; // restart parameter for GMRES// Conjugate gradientgmm::cg(A, x, b, PS, PR, iter);std::cout << "CGM"<< x << std::endl;// BICGSTAB BiConjugate Gradient Stabilizedgmm::bicgstab(A, x, b, PR, iter);std::cout << "BICGSTAB"<< x << std::endl;// GMRES generalized minimum residualgmm::gmres(A, x, b, PR, restart, iter);std::cout << "GMRES"<< x << std::endl;// Quasi-Minimal Residual methodgmm::qmr(A, x, b, PR, iter);std::cout << "Quasi-Minimal"<< x << std::endl;// Visualiza la solucion numericastd::cout << "Solucion Numerica"<< std::endl;std::cout << a << " " << Y0 << gmm::endl;

[email protected] 253 Antonio Carrillo Ledesma, Et alii

Page 255: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

for(i = 0; i < N; i++)std::cout << (i + 1)*h << " " << x[i] << gmm::endl;std::cout << c << " " << Y1 << gmm::endl;// Visualiza la solucion analiticastd::cout << "Solucion Analitica"<< std::endl;std::cout << a << " " << SA(a) << gmm::endl;for(i = 0; i < N; i++)std::cout << (i + 1)*h << " " << SA((a + (i + 1)*h)) << gmm::endl;std::cout << c << " " << SA(c) << gmm::endl;// Visualiza el error en valor absoluto en cada nodostd::cout << "Error en el calculo"<< std::endl;std::cout << a << " " << abs(Y0 - SA(a)) << gmm::endl;for(i = 0; i < N; i++)std::cout << (i + 1)*h << " " << abs(x[i] - SA((a + (i + 1)*h))) <<

gmm::endl;std::cout << c << " " << abs(Y1 - SA(c)) << gmm::endl;return 0;

G.4 Implementación en Python

Python69 es un lenguaje de programación interpretado, usa tipado dinámico yes multiplataforma cuya filosofía hace hincapié en una sintaxis que favorezca elcódigo legible y soporta programación multiparadigma –soporta orientación aobjetos, programación imperativa y programación funcional–, además es de-sarrollado bajo licencia de código abierto.

Ejemplo 25 Sea

ut+a(x)u′(x) = 0, si u(x, 0) = f(x), la solución analítica es u(x, t) = f(x−at)

entonces el programa queda implementado como:from math import expfrom scipy import sparseimport numpy as npimport matplotlib.pyplot as plt# Ecuación# u_t + 2 u_x = 0coef_a = 2

69Python [http://www.python.org]

[email protected] 254 Antonio Carrillo Ledesma, Et alii

Page 256: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

def condicion_inicial (x):"""Condición inicial de la ecuación"""y = exp (-(x - 0.2)*(x - 0.02))return ydef sol_analitica (x, t):"""Solución analítica de la ecuación"""y = exp(-(x-2*t)*(x-2*t))return y############# Dominio############a = -2.0b = 8.0# Partición del dominionNodos = 401h = (b - a)/(nNodos - 1)# Intervalo de tiempodt = 0.012# creo el vector w donde se guradará la soluciÃ3n para cada tiempo# B matriz del lado derechow = np.zeros((nNodos,1))B = np.zeros((nNodos, nNodos))B = np.matrix(B)espacio = np.zeros((nNodos,1))for i in xrange(nNodos):xx_ = a + i*hespacio[i] = xx_w[i] = condicion_inicial(xx_)print "Espacio"print espacioprint "Condición Inicial"print wmu = coef_a * dt / hif mu <= 1:print "mu ", muprint "Buena aproximaciÃ3n"else:print "mu ", muprint "Mala aproximaciÃ3n"if coef_a >= 0:B[0,0] = 1 - mufor i in xrange (1, nNodos):

[email protected] 255 Antonio Carrillo Ledesma, Et alii

Page 257: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

B[i,i-1] = muB[i,i] = 1 - muelse:B[0,0] = 1 + mu;B[0,1] = -mu;# se completa las matrices desde el renglon 2 hasta el m-2for i in xrange(1, nNodos-1):B[i,i] = 1 + mu;B[i, i+1] = -mu;B[nNodos-1,nNodos-1] = 1 + mu# para guardar la soulción analiticaxx = np.zeros((nNodos,1));iteraciones = 201# Matriz sparse csrBs = sparse.csr_matrix(B);# Resolvemos el sistema iterativamentefor j in xrange (1, iteraciones):t = j*dt;w = Bs*w;

# Imprimir cada 20 iteracionesif j%20 == 0:print "t", tprint "w", w#for k_ in xrange (nNodos):# xx[k_] = sol_analitica(espacio[k_], t)# print xxplt.plot(espacio, w)#plt.plot(espacio, xx)# print "XX"# print xx# print "W"# print w

G.5 Implementación en Java

Java es un lenguaje de programación orientado a objetos de propósito general.concurrente y multiplataforma desarrollado bajo licencia de código abierto. Ellenguaje no está diseñado especificamente para cómputo científico, pero es facilimplementar lo necesario para nuestros fines.

Sea

−u′′(x) = −π2 cos(πx), −1 ≤ x ≤ 2, u(−1) = 1, u(2) = 1.

Ejemplo 26 El programa queda implementado en JAVA como:public class fdm1d

private int Visualiza;

[email protected] 256 Antonio Carrillo Ledesma, Et alii

Page 258: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

// Constructorpublic fdm1d()

Visualiza = 1;// Resuelve Ax=b usando el metodo Jacobipublic void Jacobi(double[][] A, double[] x, double[] b, int n, int iter)

int i, j, m;double sum;double[] xt = new double [n];for (m = 0; m < iter; m ++)

for (i = 0; i < n; i++) sum = 0.0;for (j = 0; j < n; j ++)

if ( i == j) continue;sum += A[i][j] * x[j];

if (A[i][i] == 0.0) return;xt[i] = (1.0 / A[i][i]) * (b[i] - sum);

for (i = 0; i < n; i++) x[i] = xt[i];

if (Visualiza != 0)

System.out.println(" ");System.out.println("Matriz");for (i = 0; i < n; i++)

for (j = 0; j < n; j++) System.out.print(A[i][j] + " ");

System.out.println(" ")

System.out.println(" ");System.out.println("b");for (i = 0; i < n; i++)

System.out.print(b[i] + " ");System.out.println(" ");System.out.println("x");for (i = 0; i < n; i++)

System.out.print(x[i] + " ");System.out.println(" ");

// Resuelve Ax=b usando el metodo Gauus-Siedelpublic void Gauss_Siedel(double[][] A, double[] x, double[] b, int n, int

iter)

[email protected] 257 Antonio Carrillo Ledesma, Et alii

Page 259: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

int i, j, m;double sum;for (m = 0; m < iter; m ++)

for (i = 0; i < n; i++) sum = 0.0;for (j = 0; j < n; j ++)

if ( i == j) continue;sum += A[i][j] * x[j];

if (A[i][i] == 0.0) return;x[i] = (1.0 / A[i][i]) * (b[i] - sum);

if (Visualiza != 0)

System.out.println(" ");System.out.println("Matriz");for (i = 0; i < n; i++)

for (j = 0; j < n; j++) System.out.print(A[i][j] + " ");

System.out.println(" ");

System.out.println(" ");System.out.println("b");for (i = 0; i < n; i++)

System.out.print(b[i] + " ");System.out.println(" ");System.out.println("x");for (i = 0; i < n; i++)

System.out.print(x[i] + " ");System.out.println(" ");

// Lado derecho de la ecuacion diferencial parcialpublic static double LadoDerecho(double x)

double pi = 3.1415926535897932384626433832;return -pi * pi * java.lang.Math.cos(pi * x);

// Funcion Principal ....public static void main(String[] args)

double xi = -1.0; // Inicio del diminiodouble xf = 2.0; // Fin del dominiodouble vi = -1.0; // Valor en la frontera xidouble vf = 1.0; // Valor en la frontera xf

[email protected] 258 Antonio Carrillo Ledesma, Et alii

Page 260: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

int n = 11; // Particionint N = n - 2; // Nodos interioresdouble h = (xf - xi) / (n - 1); // Incremento en la malladouble[][] A = new double[N][N]; // Matriz Adouble[] b = new double[N]; // Vector bdouble[] x = new double[N]; // Vector xdouble R = 1 / (h * h);double P = -2 / (h * h);double Q = 1 / (h * h);// Primer renglon de la matriz A y vector bA[0][0] = P;A[0][1] = Q;b[0] = LadoDerecho(xi) - vi * R;// Renglones intermedios de la matriz A y vector bfor (int i = 1; i < N - 1; i++)

A[i][i - 1] = R;A[i][i] = P;A[i][i + 1] = Q;b[i] = LadoDerecho(xi + h * i);

// Renglon final de la matriz A y vector bA[N - 1][N - 2] = R;A[N - 1][N - 1] = P;b[N - 1] = LadoDerecho(xi + h * N - 2) - vf * Q;// Resuleve el sistema lineal Ax=bfdm1d ejem = new fdm1d();ejem.Gauss_Siedel(A, x, b, N, 1000);ejem.Jacobi(A, x, b, N, 1000);

G.6 Implementación en MONO (C#)

Mono (C#) es un lenguaje de programación orientado a bojetos creado para de-sarrollar un grupo de herramientas libres basadas en GNU/Linux y compatiblescon .NET (C#), no está especialmente desarrollado para cómputo científico,pero es facil implementar lo necesario para nuestros fines.

Sea

−u′′(x) = −π2 cos(πx), −1 ≤ x ≤ 2, u(−1) = 1, u(2) = 1.

Ejemplo 27 El programa queda implementado en MONO como:using System;using System.IO;using System.Text;namespace FDM1D

[email protected] 259 Antonio Carrillo Ledesma, Et alii

Page 261: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

public class fdm1d

private int Visualiza;// Constructorpublic fdm1d()

Visualiza = 1;

// Resuelve Ax=b usando el metodo Jacobipublic void Jacobi(double[,] A, double[] x, double[] b, int n, int iter)

int i, j, m;double sum;

double[] xt = new double [n];for (m = 0; m < iter; m ++)

for (i = 0; i < n; i++) sum = 0.0;for (j = 0; j < n; j ++)

if ( i == j) continue;sum += A[i,j] * x[j];

if (A[i,i] == 0.0) return;xt[i] = (1.0 / A[i,i]) * (b[i] - sum);

for (i = 0; i < n; i++) x[i] = xt[i];

if (Visualiza != 0)

Console.WriteLine(" ");Console.WriteLine("Matriz");for (i = 0; i < n; i++)

for (j = 0; j < n; j++) System.Console.Write(A[i,j] + " ");

System.Console.WriteLine(" ");

System.Console.WriteLine(" ");System.Console.WriteLine("b");for (i = 0; i < n; i++)

System.Console.Write(b[i] + " ");System.Console.WriteLine(" ");System.Console.WriteLine("x");for (i = 0; i < n; i++)

System.Console.Write(x[i]+ " ");System.Console.WriteLine(" ");

[email protected] 260 Antonio Carrillo Ledesma, Et alii

Page 262: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

// Resuelve Ax=b usando el metodo Gauus-Siedelpublic void Gauss_Siedel(double[,] A, double[] x, double[] b, int n, int

iter) int i, j, m;double sum;for (m = 0; m < iter; m ++)

for (i = 0; i < n; i++) sum = 0.0;for (j = 0; j < n; j ++)

if ( i == j) continue;sum += A[i,j] * x[j];

if (A[i,i] == 0.0) return;x[i] = (1.0 / A[i,i]) * (b[i] - sum);

if (Visualiza != 0)

Console.WriteLine(" ");Console.WriteLine("Matriz");for (i = 0; i < n; i++)

for (j = 0; j < n; j++) System.Console.Write(A[i,j] + " ");

System.Console.WriteLine(" ");

System.Console.WriteLine(" ");System.Console.WriteLine("b");for (i = 0; i < n; i++)

System.Console.Write(b[i] + " ");System.Console.WriteLine(" ");System.Console.WriteLine("x");for (i = 0; i < n; i++)

System.Console.Write(x[i] + " ");System.Console.WriteLine(" ");

// Lado derecho de la ecuacion diferencial parcialpublic static double LadoDerecho(double x)

double pi = 3.1415926535897932384626433832;return -pi * pi * Math.Cos(pi * x);

// Funcion Principal ....public static void Main(String[] args)

[email protected] 261 Antonio Carrillo Ledesma, Et alii

Page 263: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

double xi = -1.0; // Inicio del diminiodouble xf = 2.0; // Fin del dominiodouble vi = -1.0; // Valor en la frontera xidouble vf = 1.0; // Valor en la frontera xfint n = 11; // Particionint N = n - 2; // Nodos interioresdouble h = (xf - xi) / (n - 1); // Incremento en la malladouble[,] A = new double[N,N]; // Matriz Adouble[] b = new double[N]; // Vector bdouble[] x = new double[N]; // Vector xdouble R = 1 / (h * h);double P = -2 / (h * h);double Q = 1 / (h * h);// Primer renglon de la matriz A y vector bA[0,0] = P;A[0,1] = Q;b[0] = LadoDerecho(xi) - vi * R;// Renglones intermedios de la matriz A y vector bfor (int i = 1; i < N - 1; i++)

A[i,i - 1] = R;A[i,i] = P;A[i,i + 1] = Q;b[i] = LadoDerecho(xi + h * i);

// Renglon final de la matriz A y vector bA[N - 1,N - 2] = R;A[N - 1,N - 1] = P;b[N - 1] = LadoDerecho(xi + h * N - 2) - vf * Q;// Resuleve el sistema lineal Ax=bfdm1d ejem = new fdm1d();ejem.Gauss_Siedel(A, x, b, N, 1000);ejem.Jacobi(A, x, b, N, 1000);

G.7 Implementación en Fortran

Fortran es un lenguaje de programación procedimental e imperativo que estáadaptado al cálculo numérico y la computación científica, existen una gran var-iedad de subrutinas para manipulación de matrices, pero es facil implementarlo necesario para nuestros fines.

Sea

−u′′(x) = −π2 cos(πx), −1 ≤ x ≤ 2, u(−1) = 1, u(2) = 1.

[email protected] 262 Antonio Carrillo Ledesma, Et alii

Page 264: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

Ejemplo 28 El programa queda implementado en FORTRAN como:program fdm1d

implicit noneinteger i, N, nnreal*8, allocatable :: A(:,:), b(:), x(:)real*8 xi, xf, vi, vf, h, R, P, Q, yxi = -1.0 ! Inicio del diminioxf = 2.0 ! Fin del dominiovi = -1.0 ! Valor en la frontera xivf = 1.0 ! Valor en la frontera xfnn = 11 ! ParticionN = nn - 2 ! Nodos interioresh = (xf - xi) / (nn-1) ! Incremento en la mallaprint*,"h:",hallocate (A(N,N), b(N), x(N))R = 1. / (h * h)P = -2. / (h * h)Q = 1. / (h * h)! Primer renglon de la matriz A y vector bA(1,1)=PA(2,1)=Qcall ladoDerecho(xi,y)b(1)=y-vi*R! Renglones intermedios de la matriz A y vector bdo i=2,N-1

A(i-1,i)=RA(i,i)=PA(i+1,i)=Qcall ladoDerecho(xi+h*(i-1),y)b(i)= y

end do! Renglon final de la matriz A y vector bA(N-1,N)=RA(N,N)=Pcall ladoDerecho(xi+h*N,y)b(N)= y -vf*Qcall gaussSiedel(A, x, b, N, 1000)print*, "A: ", Aprint*, "b: ", bprint*, "x: ", x

end programsubroutine ladoDerecho(x,y)

real*8, intent(in) :: xreal*8, intent(inout) :: yreal*8 pipi = 3.1415926535897932384626433832;

[email protected] 263 Antonio Carrillo Ledesma, Et alii

Page 265: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

y = -pi * pi * cos(pi * x);end subroutinesubroutine gaussSiedel(a, x, b, nx, iter)

implicit noneinteger, intent(in) :: nx, iterreal*8, intent(in) :: a(nx,nx), b(nx)real*8, intent(inout) :: x(nx)integer i, j, mreal*8 sum

do m = 1, iterdo i = 1, nx

sum = 0.0do j = 1, nx

if (i .NE. j) thensum = sum + a(i,j) * x(j)

end ifend dox(i) = (1.0 / a(i,i)) * (b(i) - sum)

end doend do

end subroutine

G.8 Implementación en C

C es un lenguaje de programación de tipos de datos estáticos, débilmente tipifi-cado, de medio nivel, existen una gran variedad de subrutinas para manipulaciónde matrices, pero es facil implementar lo necesario para nuestros fines.

Sea

−u′′(x) = −π2 cos(πx), −1 ≤ x ≤ 2, u(−1) = 1, u(2) = 1.

Ejemplo 29 El programa queda implementado en C como:#include <math.h>#include <stdio.h>#define PARTICION 11 // Tamano de la particion#define N 9 // Numero de incognitas#define VISUALIZA 1 // (0) No visualiza la salida, otro valor la visualiza// Lado derecho de la ecuacion diferencial parcialdouble LadoDerecho(double x)

double pi = 3.1415926535897932384626433832;return -pi * pi * cos(pi * x);

// Resuelve Ax=b usando el metodo Jacobivoid Jacobi(double A[N][N], double x[], double b[], int n, int iter)

[email protected] 264 Antonio Carrillo Ledesma, Et alii

Page 266: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

int i, j, m;double sum;double xt[N];for (m = 0; m < iter; m ++)

for (i = 0; i < n; i++)

sum = 0.0;for (j = 0; j < n; j ++)

if ( i == j) continue;sum += A[i][j] * x[j];

if (A[i][i] == 0.0) return;xt[i] = (1.0 / A[i][i]) * (b[i] - sum);

for (i = 0; i < n; i++) x[i] = xt[i];

if (VISUALIZA)

printf("\nMatriz\n");for (i = 0; i < n; i++)

for (j = 0; j < n; j++)

printf("%f ", A[i][j]);printf("\n");

printf("\nb\n");for (i = 0; i < n; i++)

printf("%f ", b[i]);printf("\nx\n");for (i = 0; i < n; i++)

printf("%f ", x[i]);printf("\n");

// Resuelve Ax=b usando el metodo Gauus-Siedelvoid Gauss_Siedel(double A[N][N], double x[], double b[], int n, int iter)

[email protected] 265 Antonio Carrillo Ledesma, Et alii

Page 267: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

int i, j, m;double sum;for (m = 0; m < iter; m ++)

for (i = 0; i < n; i++)

sum = 0.0;for (j = 0; j < n; j ++)

if ( i == j) continue;sum += A[i][j] * x[j];

if (A[i][i] == 0.0) return;x[i] = (1.0 / A[i][i]) * (b[i] - sum);

if (VISUALIZA)

printf("\nMatriz\n");for (i = 0; i < n; i++)

for (j = 0; j < n; j++)

printf("%f ", A[i][j]);printf("\n");

printf("\nb\n");for (i = 0; i < n; i++)

printf("%f ", b[i]);printf("\nx\n");for (i = 0; i < n; i++)

printf("%f ", x[i]);printf("\n");

int main()

double xi = -1.0; // Inicio del diminiodouble xf = 2.0; // Fin del dominiodouble vi = -1.0; // Valor en la frontera xidouble vf = 1.0; // Valor en la frontera xf

[email protected] 266 Antonio Carrillo Ledesma, Et alii

Page 268: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

int n = PARTICION; // Particiondouble h = (xf - xi) / (n - 1); // Incremento en la mallaint i;double A[N][N]; // Matriz Adouble b[N]; // Vector bdouble x[N]; // Vector xdouble R = 1 / (h * h);double P = -2 / (h * h);double Q = 1 / (h * h);// Primer renglon de la matriz A y vector bA[0][0] = P;A[0][1] = Q;b[0] = LadoDerecho(xi) - vi * R;// Renglones intermedios de la matriz A y vector bfor (i = 1; i < N - 1; i++)

A[i][i - 1] = R;A[i][i] = P;A[i][i + 1] = Q;b[i] = LadoDerecho(xi + h * i);

// Renglon final de la matriz A y vector bA[N - 1][N - 2] = R;A[N - 1][N - 1] = P;b[N - 1] = LadoDerecho(xi + h * N - 2) - vf * Q;// Resuleve el sistema lineal Ax=bGauss_Siedel(A, x, b, N, 1000);Jacobi(A, x, b, N, 1000);return 0;

[email protected] 267 Antonio Carrillo Ledesma, Et alii

Page 269: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

H Bibliografía

Referencias

[1] K. Hutter y K Jöhnk, Continuum Methods of Physical Modeling, Springer-Verlag Berlin Heidelberg New York, 2004.

[2] J. L. Lions y E. Magenes, Non-Homogeneous Bounduary Value Problemsand Applicarions Vol. I, Springer-Verlag Berlin Heidelberg New York, 1972.

[3] A. Quarteroni y A. Valli, Domain Decomposition Methods for Partial Dif-ferential Equations. Clarendon Press Oxford, 1999.

[4] A. Quarteroni y A. Valli; Numerical Approximation of Partial DiferentialEquations. Springer, 1994.

[5] B. Dietrich, Finite Elements: Theory, Fast Solvers, and Applications inSolid Mechanics, Cambridge University, 2001.

[6] B. F. Smith, P. E. Bj∅rstad, W. D. Gropp; Domain Decomposition, ParallelMultilevel Methods for Elliptic Partial Differential Equations. CambridgeUniversity Press, 1996.

[7] Fuzhen Zhang, The Schur Complement and its Aplications, Springer, Nu-merical Methods and Algorithms, Vol. 4, 2005.

[8] B. I. Wohlmuth; Discretization Methods and Iterative Solvers Based onDomain Decomposition. Springer, 2003.

[9] L. F. Pavarino, A. Toselli; Recent Developments in Domain DecompositionMethods. Springer, 2003.

[10] M.B. Allen III, I. Herrera & G. F. Pinder; Numerical Modeling in ScienceAnd Engineering. John Wiley & Sons, Inc . 1988.

[11] R. L. Burden y J. D. Faires; Análisis Numérico. Math Learning, 7 ed. 2004.

[12] S. Friedberg, A. Insel, and L. Spence; Linear Algebra, 4th Edition, PrenticeHall, Inc. 2003.

[13] Y. Saad; Iterative Methods for Sparse Linear Systems. SIAM, 2 ed. 2000.

[14] Y. Skiba; Métodos y Esquemas Numéricos, un Análisis Computacional.UNAM, 2005.

[15] W. Gropp, E. Lusk, A. Skjellem, Using MPI, Portable Parallel Program-ming Whit the Message Passing Interface. Scientific and Engineering Com-putation Series, 2ed, 1999.

[16] I. Foster; Designing and Building Parallel Programs. Addison-Wesley Inc.,Argonne National Laboratory, and the NSF, 2004.

[email protected] 268 Antonio Carrillo Ledesma, Et alii

Page 270: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

[17] Jorge L. Ortega-Arjona, Patterns for Parallel Software Design, Wiley seriesin Software Design Patterns, 2010.

[18] DDM Organization, Proceedings of International Conferences on DomainDecomposition Methods, 1988-2012.

http://www.ddm.org and http://www.domain-decomposition.com

[19] Toselli, A., and Widlund O. Domain decomposition methods- Algorithmsand theory, Springer Series in Computational Mathematics, Springer-Verlag, Berlin, 2005, 450p.

[20] Farhat, C. and Roux, F. X. A Method of Finite Element Tearing and In-terconnecting and its Parallel Solution Algorithm. Int. J. Numer. Meth.Engng., 32:1205-1227, 1991.

[21] Mandel J. & Tezaur R. Convergence of a Substructuring Method with La-grange Multipliers, Numer. Math. 73 (1996) 473-487.

[22] Farhat C., Lesoinne M. Le Tallec P., Pierson K. & Rixen D. FETI-DP aDual-Primal Unified FETI method, Part 1: A Faster Alternative to thetwo-level FETI Method, Int. J. Numer. Methods Engrg. 50 (2001) 1523-1544.

[23] Farhat C., Lesoinne M., Pierson K. A Scalable Dual-Primal Domain De-composition Method, Numer. Linear Algebra Appl. 7 (2000) 687-714.

[24] Mandel J. & Tezaur R. On the Convergence of a Dual-Primal Substructu-ring Method, Numer. Math. 88(2001), pp. 5443-558.

[25] Mandel, J. Balancing Domain Decomposition. Comm. Numer. Meth. En-grg., 9:233-241, 1993.

[26] Mandel J., & Brezina M., Balancing Domain Decomposition for Problemswith Large Jumps in Coefficients, Math. Comput. 65 (1996) 1387-1401.

[27] Dohrmann C., A Preconditioner for Substructuring Based on ConstrainedEnergy Minimization. SIAM J. Sci. Comput. 25 (2003) 246-258.

[28] Mandel J. & Dohrmann C., Convergence of a Balancing Domain Decom-position by Constraints and Energy Minimization. Numer. Linear AlgebraAppl. 10 (2003) 639-659.

[29] Da Conceição, D. T. Jr., Balancing Domain Decomposition Preconditio-ners for Non-symetric Problems, Instituto Nacional de Matemática pura eAplicada, Agencia Nacional do Petróleo PRH-32, Rio de Janeiro, May. 9,2006.

[30] J. Li and O. Widlund, FETI-DP, BDDC and block Cholesky Methods, Int.J. Numer. Methods Engrg. 66, 250-271, 2005.

[email protected] 269 Antonio Carrillo Ledesma, Et alii

Page 271: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

[31] Farhat Ch., Lesoinne M., Le Tallec P., Pierson K. and Rixen D. FETI-DP:A Dual-Primal Unified FETI Method-Part I: A Faster Alternative to theTwo Level FETI Method. Internal. J. Numer. Methods Engrg., 50:1523-1544, 2001.

[32] Rixen, D. and Farhat Ch. A Simple and Efficient Extension of a Class ofSubstructure Based Preconditioners to Heterogeneous Structural MechanicsProblems. Internal. J. Numer. Methods Engrg., 44:489-516, 1999.

[33] J. Mandel, C. R. Dohrmann, and R. Tezaur, An Algebraic Theory for Pri-mal and Dual Substructuring Methods by Constraints, Appl. Numer. Math.,54 (2005), pp. 167-193.

[34] A. Klawonn, O. B. Widlund, and M. Dryja, Dual-primal FETI Methodsfor Three-Dimensional Elliptic Problems with Heterogeneous Coefficients,SIAM J. Numer. Anal., 40 (2002), pp. 159-179.

[35] Agustín Alberto Rosas Medina, El Número de Péclet y su Significaciónen la Modelación de Transporte Difusivo de Contaminantes, Tesis paraobtener el titulo de Matemático, UNAM, 2005.

[36] Omar Jonathan Mendoza Bernal, Resolución de Ecuaciones DiferencialesParciales Mediante el Método de Diferencias Finitas y su Paralelización,Tesis para obtener el titulo de Matemático, UNAM, 2016.

[37] Klawonn A. and Widlund O.B., FETI and Neumann-Neumann IterativeSubstructuring Methods: Connections and New Results. Comm. Pure andAppl. Math. 54(1): 57-90, 2001.

[38] Tezaur R., Analysis of Lagrange Multipliers Based Domain Decomposition.P.H. D. Thesis, University of Colorado, Denver, 1998.

[39] Herrera I. & Rubio E., Unified Theory of Differential Operators Actingon Discontinuos Functions and of Matrices Acting on Discontinuous Vec-tors, 19th International Conference on Domain Decomposition Methods,Zhangjiajie, China 2009. (Oral presentation). Internal report #5, GMMC-UNAM, 2011.

[40] Valeri I. Agoshkov, Poincaré-Steklov Operators and Domain DecompositionMethods in Finite Dimensional Spaces. First International Symposium onDomain Decomposition Methods for Partial Differential Equations, pages73-112, Philadelphia, PA, 1988. SIAM. Paris, France, Junuary 7-9, 1987.

[41] Toselli, A., FETI Domain Decomposition Methods for Escalar Advection-Diffusion Problems. Compututational Methods Appl. Mech. Engrg. 190.(2001), 5759-5776.

[42] C.T. Keller, Iterative Methods for Linear and Nonlinear Equations, Societefor Industrial and Applied Mathematics, 1995.

[email protected] 270 Antonio Carrillo Ledesma, Et alii

Page 272: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

[43] Manoj Bhardwaj, David Day, Charbel Farhat, Michel Lesoinne, KendallPierson, and Daniel Rixen. Application of the PETI Method to ASCI Pro-blems: Scalability Results on One Thousand Processors and Discussionof Highly Heterogeneous Problems. Intemat. J. Numer. Methods Engrg.,47:513-535, 2000.

[44] Zdengk Dostdl and David Hordk. Scalability and FETI Based Algorithmfor Large Discretized Variational Inequalities. Math. Comput. Simulation,61(3-6): 347-357, 2003. MODELLING 2001 (Pilsen).

[45] Charbel Farhat, Michel Lesoinne, and Kendall Pierson. A Scalable Dual-Primal Domain Decomposition Method. Numer. Linear Algebra Appl., 7(7-8):687-714, 2000.

[46] Yannis Fragakis and Manolis Papadrakakis, The Mosaic of High Perfor-mance Domain Decomposition Methods for Structural Mechanics: Formu-lation, Interrelation and Numerical Efficiency of Primal and Dual Methods.Comput. Methods Appl. Mech. Engrg, 192(35-36):3799-3830, 2003.

[47] Kendall H. Pierson, A family of Domain Decomposition Methods for theMassively Parallel Solution of Computational Mechanics Problems. PhDthesis, University of Colorado at Boulder, Aerospace Engineering, 2000.

[48] Manoj Bhardwaj, Kendall H. Pierson, Garth Reese, TimWalsh, David Day,Ken Alvin, James Peery, Charbel Farhat, and Michel Lesoinne. Salinas, AScalable Software for High Performance Structural and Mechanics Simula-tion. In ACM/IEEE Proceedings of SC02: High Performance Networkingand Computing. Gordon Bell Award, pages 1-19, 2002.

[49] Klawonn, A.; Rheinbach, O., Highly Scalable Parallel Domain Decompo-sition Methods with an Application to Biomechanics, Journal of AppliedMathematics and Mechanics 90 (1): 5-32, doi:10.1002/zamm.200900329.

[50] Petter E. Bj∅rstad and Morten Skogen. Domain Decomposition Algorithmsof Schwarz Type, Designed for Massively Parallel Computers. In David E.Keyes, Tony F. Chan, Gerard A. Meurant, Jeffrey S. Scroggs, and Robert G.Voigt, editors. Fifth International Symposium on Domain DecompositionMethods for Partial Differential Equations, pages 362-375, Philadelphia,PA, 1992. SIAM. Norfolk, Virgina, May 6-8, 1991.

[51] Yau Shu Wong and Guangrui Li. Exact Finite Difference Schemes for Sol-ving Helmholtz Equation at any Wavenumber. International Journal of Nu-merical Analysis and Modeling, Series B, Volume 2, Number 1, Pages 91-108, 2011.

[52] Zhangxin Chen, Guanren Huan and Yuanle Ma. Computational Methodsfor Multiphase Flow in Porous Media, SIAM, 2006.

[email protected] 271 Antonio Carrillo Ledesma, Et alii

Page 273: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

[53] Jos Stam. SIGGRAPH 99, Proceedings of the 26th annual conferenceon Computer Graphics and Interactive Techniques, Pages 121-128, ACM,1999.

[54] Herrera, I., Theory of Differential Equations in Discontinuous Piecewise-Defined-Functions, NUMER METH PART D.E., 23(3): 597-639, 2007 OI10.1002/num.20182.

[55] Herrera, I. New Formulation of Iterative Substructuring Methods With-out Lagrange Multipliers: Neumann-Neumann and FETI, NUMER METHPART D.E. 24(3) pp 845-878, May 2008 DOI 10.1002/num.20293.

[56] Herrera I. and R. Yates, Unified Multipliers-Free Theory of Dual PrimalDomain Decomposition Methods. NUMER. METH. PARTD. E. 25(3): 552-581, May 2009, (Published on line May 13, 2008) DOI 10.1002/num.20359.

[57] Herrera, I. & Yates R. A., The Multipliers-Free Domain DecompositionMethods, NUMER. METH. PART D. E., 26(4): pp 874-905, July 2010.(Published on line: 23 April 2009, DOI 10.1002/num.20462)

[58] Herrera, I., Yates R. A., The multipliers-Free Dual Primal Domain Decom-position Methods for Nonsymmetric Matrices. NUMER. METH. PART D.E. DOI 10.1002/num.20581 (Published on line April 28, 2010).

[59] Herrera, I., Carrillo-Ledesma A. and Alberto Rosas-Medina, A BriefOverview of Non-Overlapping Domain Decomposition Methods, GeofisicaInternacional, Vol, 50, 4, October-December, 2011.

[60] Herrera, I. and Pinder, G. F., Mathematical Modelling in Science and En-gineering: An Axiomatic Approach, Wiley, 243p., 2012.

[61] Ismael Herrera and Alberto A. Rosas-Medina, The Derived-Vector SpaceFramerwork and Four General purposes massively parallel DDM Algo-rithms, Engineering Analysis with Boundary Elements, 20013, in press.

[62] Antonio Carrillo-Ledesma, Herrera, I, Luis M. de la Cruz, Parallel Algo-rithms for Computational Models of Geophysical Systems, Geofísica Inter-nacional, en prensa, 2013.

[63] Iván Germán Contreras Trejo, Métodos de Precondicionamiento para Sis-temas de Ecuaciones Diferenciales Parciales, Trabajo de Tesis Doctoral enProceso, Postgrado en Ciencias e Ingeniería de la Computación, UNAM,2012. 192(35-36):3799-3830, 2003.

[64] Holger Brunst, Bernd Mohr. Performance Analysis of Large-Scale OpenMPand Hybrid MPI/OpenMP Applications with Vampir NG. IWOMP 2005:5-14.

[email protected] 272 Antonio Carrillo Ledesma, Et alii

Page 274: Introducci n al M todo de Diferencias Finitas y su ...mmc.geofisica.unam.mx/acl/EDP/F_M/FDM/Introducción al Método de... · C.2 ElProblemanoPrecondicionadoDirichlet-Dirichlet ...

Introducción al Método de Diferencias Finitas y su ImplementaciónComputacional

[65] S.J. Pennycook, S.D. Hammond, S.A. Jarvis and G.R. Mudalige, Perfor-mance Analysis of a Hybrid MPI/CUDA Implementation of the NAS-LUBenchmark. ACM SIGMETRICS Perform. Eval. Rev. 38 (4). ISSN 0163-5999, (2011).

[66] Doxygen, Gererate Documentation from Source Code.

http://www.stack.nl/∼dimitri/doxygen/

[67] XMPI, A Run/Debug GUI for MPI.

http://www.lam-mpi.org/software/xmpi/

[68] VAMPIR, Performance Optimization.

http://www.vampir.eu/

[email protected] 273 Antonio Carrillo Ledesma, Et alii