Está en la página 1de 226

IMPLEMENTACIN DE MTODOS NUMRICOS

PARA EL ANLISIS ELECTROMAGNTICO DE


MEDIOS PERIDICOS: APLICACIN EN
LONGITUDES DE ONDA PTICAS Y
OPTIMIZACIN COMPUTACIONAL

Jorge Francs Monllor






























TESIS DOCTORAL
IMPLEMENTACIN DE MTODOS NUMRICOS PARA EL
ANLISIS ELECTROMAGNTICO DE MEDIOS PERIDICOS:
APLICACIN EN LONGITUDES DE ONDA PTICAS Y
OPTIMIZACIN COMPUTACIONAL
Jorge Francs Monllor
Directores:
Cristian Neipp Lpez
Andrs Mrquez Ruiz
Alicante, Julio 2011
Dept. de Fsica, Enginyera de Sistemes i Teoria del Senyal
Dpto. de Fsica, Ingeniera de Sistemas y Teora de la Seal
IMPLEMENTACIN DE MTODOS NUMRICOS PARA EL
ANLISIS ELECTROMAGNTICO DE MEDIOS PERIDICOS:
APLICACIN EN LONGITUDES DE ONDA PTICAS Y
OPTIMIZACIN COMPUTACIONAL
TESIS DOCTORAL
Jorge Francs Monllor
Alicante, 22 de julio de 2011
CRISTIAN NEIPP LPEZ, Titular de Universidad, y ANDRS MRQUEZ
RUIZ, Titular de Universidad, del Departamento de Fsica, Ingeniera de Sis-
temas y Teora de la Seal de la Universidad de Alicante,
CERTIFICAN : Que la presente memoria titulada Implementacin de
mtodos numricos para el anlisis electromagntico de
medios peridicos: aplicacin en longitudes de onda p-
ticas y optimizacin computacional

ha sido realizada
bajo su direccin por Don JORGE FRANCS
MONLLOR en el Departamento de Fsica, Ingeniera
de Sistemas y Teora de la Seal de la Universidad de
Alicante, y constituye su Tesis Doctoral para optar al
Grado de Doctor.
Y para que conste, y en cumplimiento de la legislacin vigente, rman el pre-
sente certicado en Alicante a veintids de julio de dos mil once.
Fdo.: Cristian Neipp Lpez Fdo.: Andrs Mrquez Ruiz Fdo.: Jorge Francs Monllor
A mi familia
y amigos
Agradecimientos
Quisiera expresar mi gratitud a los profesores Cristian Neipp y Andrs Mrquez,
directores de esta Tesis Doctoral, por los esfuerzos que ambos han realizado para que
pueda completar este trabajo. En particular, agradecer a Cristian Neipp su apoyo
y conanza, as como por transmitirme en todo momento nimos y entusiasmo, los
cuales me han motivado para trabajar ms y mejor, da tras da. En l he encontrado
una referencia a nivel cientco junto a una gran amistad, las cuales valoro profun-
damente. Agradecer a Andrs Mrquez su conanza, su trato cercano y cordial as
como la seguridad que me ha transmitido en todo momento a travs de sus palabras
y consejos.
Tambin quiero aprovechar esta oportunidad para agradecer al profesor Augusto
Belndez su constante preocupacin en proporcionarme todos los medios tanto hu-
manos como materiales para poder realizar este trabajo. Su conanza y apoyo son
un honor para m. Agradecer al profesor Jenaro Vera el haber apostado por m hace
ya varios aos en que volviera a la Universidad de Alicante y sobre todo por hacerme
sentir como en mi casa. Del mismo modo, agradecer a los miembros del Grupo de
Holografa y Procesado ptico de la Universidad de Alicante su calurosa acogida,
as como el soporte proporcionado a lo largo de este trabajo.
Destacar mi gratitud a Sergio Bleda, el cual ha colaborado de manera activa en
este trabajo en todas sus etapas. Su experiencia, conocimiento y rigurosidad me han
ayudado mucho ms de lo que l cree. No puedo olvidarme de todo el Departamento
de Fsica, Ingeniera de Sistemas y Teora de la Seal, por su ayuda y colaboracin
tanto a la hora de realizar esta Tesis Doctoral como en la realizacin de actividades
docentes. Me siento muy afortunado de pertenecer a este Departamento y de haber
conocido a una gran cantidad de compaeros con unas increbles cualidades humanas.
Todos ellos, de una manera ms o menos indirecta han colaborado en la realizacin de
este trabajo. En primer lugar quiero destacar a los profesores: Eva Calzado, Santiago
Heredia, Sergi Gallego, Manuel Ortuo, David Mndez, Mariela lvarez, Carolina
Pascual, Adolfo Albaladejo, Juan De Dios Gonzlez, Jaime Ramis, Stephan Marini,
Igor Vragovic, Antonio Hidalgo, Julio Rosa, Encarna Gimeno, Marisol Yebra, Manuel
Prez Molina, Juanjo Galiana, Antonio Hernndez, y muchos ms que seguro no
recuerdo en estos momentos, pero que quiero recoger en un Gracias a todos. Y
en segundo lugar y no por ello menos importante, al Personal de Administracin y
Servicios, los cuales se encuentran entre las personas ms ecientes que he conocido:
Josep Garca, Begoa Ceballos, Alicia Boix, Alberto Seva y Antonio Barreres.
Tengo que agradecer a Vctor, Fernando, Jess, Pablo, Boyan y a Juan Manuel
Sez, sus divertidas charlas en las comidas y caf, las cuales amenizan las largas
jornadas de trabajo, y sobre todo por sus consejos, ayuda y en denitiva por su
amistad.
No quiero olvidar mencionar a unas guras que signican mucho para m. En
primer lugar dar las gracias a mi padrino Jos Hurtado, por sus consejos y su cario.
A Rosa y Rafa por haber ayudado a mi madre desde que yo era prcticamente un
nio, y ayudarme ahora a m como si de un hijo suyo se tratara. Mi gratitud hacia
todos ellos es enorme y espero corresponderles y estar a la altura de las circunstancias.
A Paula tengo que agradecerle ser una compaera excepcional, cuya paciencia,
comprensin y sacricio son fuera de serie. Gracias de corazn.
Finalmente, quisiera agradecer a toda mi familia, tanto los que estn como los
que ya se han ido, el esfuerzo y el sacricio que han realizado para proporcionarme
los medios necesarios para cumplir mis metas. A mis hermanas, por ser las mejores
hermanas que jams podra haber tenido. A mi cuado Jose, por ser ms que un her-
mano para m y haber contribuido a darme una sobrina preciosa. A mi To y Amina,
por su cario y por estar siempre ah. A mi madre, por su sacricio, su comprensin
y sobretodo por ser un ejemplo de superacin y de coraje. Y a mi abuela y abuelo,
por su sabidura y por ser responsables en gran medida de la persona que soy hoy en
da.
Jorge Francs Monllor
6 de Junio de 2011
ndice general
Acrnimos xvii
Lista de Smbolos xix
1. Introduccin 1
1.1. Motivacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3. Contenido y organizacin . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4. Publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2. Teora diferencial clsica en medios peridicos 21
2.1. Teora de ondas acopladas . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2. Teora rigurosa de ondas acopladas . . . . . . . . . . . . . . . . . . . 28
2.3. Mtodo matricial basado en las funciones de Mathieu . . . . . . . . . 33
2.3.1. Formacin de la matriz . . . . . . . . . . . . . . . . . . . . . 34
2.3.2. Solucin en trminos de las funciones de Mathieu . . . . . . . 35
2.3.3. Condiciones de contorno . . . . . . . . . . . . . . . . . . . . . 37
ii NDICE GENERAL
2.3.4. Estructura de bandas . . . . . . . . . . . . . . . . . . . . . . 37
2.4. Teora del medio equivalente . . . . . . . . . . . . . . . . . . . . . . . 39
2.4.1. Matriz caracterstica . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.2. Extensin a medios estraticados . . . . . . . . . . . . . . . . 43
2.4.3. Aplicacin a redes de difraccin hologrcas en reexin . . . 45
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3. Mtodo de las Diferencias Finitas en el Dominio del Tiempo 51
3.1. Formulacin FDTD para el caso 1-D . . . . . . . . . . . . . . . . . . 51
3.1.1. Condicin de estabilidad . . . . . . . . . . . . . . . . . . . . . 54
3.1.2. Insercin de ondas incidentes . . . . . . . . . . . . . . . . . . 55
3.1.3. Condiciones de frontera para una dimensin . . . . . . . . . . 56
3.1.4. Propagacin en medios dielctricos . . . . . . . . . . . . . . . 57
3.2. Formulacin FDTD para el caso 2-D . . . . . . . . . . . . . . . . . . 60
3.2.1. Dispersin numrica . . . . . . . . . . . . . . . . . . . . . . . 62
3.2.2. Condiciones de frontera para el caso bidimensional . . . . . . 65
3.2.3. Formulacin de campo total y campo dispersado . . . . . . . 69
3.2.4. Transformacin de campo cercano a lejano en dos dimensiones 76
3.3. Formulacin FDTD para el caso 3-D . . . . . . . . . . . . . . . . . . 83
3.3.1. Generalizacin de las condiciones de frontera a tres dimensiones 84
3.3.2. Formulacin campo total y campo dispersado en tres dimensiones 86
3.3.3. Transformacin de campo cercano a campo lejano . . . . . . . 87
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
NDICE GENERAL iii
4. Optimizacin computacional 97
4.1. Optimizacin del mtodo de las DFDT en microprocesadores . . . . 98
4.1.1. Introduccin a la arquitectura de los microprocesadores . . . 98
4.1.2. Vectorizacin del mtodo de las DFDT . . . . . . . . . . . . . 104
4.1.3. Paralelizacin del mtodo de las DFDT mediante OpenMP . 106
4.2. Optimizacin del mtodo de las DFDT en unidades de procesado grco115
4.2.1. Historia de los procesadores grcos . . . . . . . . . . . . . . 115
4.2.2. Introduccin a la arquitectura de los procesadores grcos . . 117
4.2.3. Modelo de programacin . . . . . . . . . . . . . . . . . . . . . 121
4.2.4. Implementacin del mtodo de las DFDT preliminar mediante
CUDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
4.2.5. Implementacin del mtodo de las DFDT en CUDA para el
anlisis de medios innitos . . . . . . . . . . . . . . . . . . . . 135
4.2.6. Implementacin del mtodo de las DFDT en CUDA para el
anlisis de medios innitos y ondas planas . . . . . . . . . . . 138
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5. Resultados 145
5.1. Difracin de aperturas . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.2. Filtros de capa delgada . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.3. Redes de difraccin hologrcas de volumen . . . . . . . . . . . . . . 164
5.3.1. Redes de difraccin hologrcas de transmisin . . . . . . . . 164
5.3.2. Redes de difraccin hologrcas de reexin . . . . . . . . . . 171
5.4. Optimizacin computacional . . . . . . . . . . . . . . . . . . . . . . . 177
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
iv NDICE GENERAL
6. Conclusiones 189
ndice de guras
1.1. Evolucin temporal del rendimiento de los UPG y UPC [31]. . . . . . 9
2.1. Esquema de una red de difraccin hologrca, donde con escala de
gris se ha representado la variacin de la permitividad relativa. . . . 22
2.2. Esquema y diagrama vectorial asociado para una red de difraccin de
transmisin (izquierda) y de reexin (derecha). . . . . . . . . . . . . 25
2.3. Selectividad angular y de longitud de onda para redes hologrcas de
transmisin a partir del rendimiento en difraccin en funcin del
parmetro , el cual mide la desviacin respecto al ngulo de Bragg.
Se han considerado tres valores para el parmetro [1]. . . . . . . . 27
2.4. Selectividad angular y de longitud de onda para redes hologrcas
de reexin a partir del rendimiento en difraccin en funcin del
parmetro , el cual mide la desviacin respecto al ngulo de Bragg.
Se han considerado tres valores para el parmetro [1]. . . . . . . . 28
2.5. Geometra de una red de difraccin hologrca que contempla los di-
ferentes rdenes difractados y transmitidos [5]. . . . . . . . . . . . . 29
2.6. Funciones de Mathieu C
m
y S
m
para q = 1, en funcin del parmetro
a denido por la ecuacin (2.73). (a) Funciones par. (b) Funciones
impar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.7. Parte real de y de la reectancia en funcin del ngulo de incidencia.
Parmetros de la red: = 0,2 m, d = 15 m, n = 0,025 y = 633. 40
2.8. Esquema ilustrativo donde se representa la incidencia de una onda
plana sobre una capa delgada. . . . . . . . . . . . . . . . . . . . . . . 41
vi NDICE DE FIGURAS
2.9. Notacin para el caso de dos capas dielctricas. . . . . . . . . . . . . 44
2.10. Ejemplo de aplicacin del mtodo de la matriz caracterstica sobre
varios casos prcticos: (a) Rendimiento terico para dos lminas anti-
reectantes. El sistema de 2 capas est compuesto por las siguientes
lminas de un cuarto de longitud de onda: n
1
= 1,587, n
2
= 2,52;
mientras que para el caso de 3 capas: n
1
= 1,587, n
2
= 2,0 y n
3
=
2,52. En ambos casos el substrato presenta un ndice de refraccin
de n
s
= 4 [14]. (b) Clculo de la reectancia para varios ngulos de
incidencia para un sistema compuesto por una capa con ndice n =
2,2 sobre un substrato con n = 4,0. . . . . . . . . . . . . . . . . . . . 46
2.11. Variacin del ndice de refraccin en una red de reexin en funcin
del eje z, el cual es normal al plano de incidencia de la red. Mediante
crculos se representan los valores discretizados de la red para el caso
de aproximar el patrn de interferencia mediante un conjunto de capas
delgadas de longitud /4. . . . . . . . . . . . . . . . . . . . . . . . . 47
3.1. Entrelazado de las componentes E
z
y H
y
en el espacio y en el tiempo 53
3.2. Simulacin de un pulso introducido en la celda 50 propagndose hacia
los extremos (n = 150). (a) Campo elctrico. (b) Campo magntico. . 53
3.3. Simulacin de un pulso propagndose en espacio libre para T = 250.
Para este instante de tiempo, el pulso ya ha llegado al extremo del
mallado y vuelve debido a la reexin. . . . . . . . . . . . . . . . . . 56
3.4. Propagacin del pulso en espacio libre con ABC en los extremos. a)
t = 150t. b) t = 190t. c) t = 210t . . . . . . . . . . . . . . . . . 57
3.5. Propagacin del pulso que incide en un medio dielctrico. El plano de
comienzo del medio dielctrico est situado a 50 celdas del plano de
excitacin en i
s
= 20x. a) t = 150t. b) t = 220t. c) t = 280t . 59
3.6. Celda de Yee para la formulacin TE en el caso bidimensional. . . . 60
3.7. Simulacin de un pulso propagndose en un mallado bidimensional.
a) t = 20t. b) t = 50t. . . . . . . . . . . . . . . . . . . . . . . . . 62
3.8. Variacin de la velocidad de fase numrica en funcin del ngulo de
incidencia en un mallado 2D para resoluciones de celda de /5, /10
y /20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
NDICE DE FIGURAS vii
3.9. Esquema de un mallado bidimensional con PMLs. . . . . . . . . . . . 66
3.10. Ejemplo del efecto de las PMLs con un pulso propagndose hacia los
extremos de la red para el caso bidimensional. a) t = 60t. b) t = 75t 69
3.11. Esquema del problema bidimensional con la formulacin CT-CD y
PMLs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.12. Componentes del campo con polarizacin TE donde se aprecian las
interfases entre la regin de campo total y campo dispersado . . . . . 72
3.13. Simulacin de una onda plana propagndose a lo largo del espacio
libre.a) t = 60t b) t = 80t c) t = 95t. d) t = 100t . . . . . . . 73
3.14. Diagrama del clculo del campo incidente en la interfase entre regiones
a partir del vector de campo incidente . . . . . . . . . . . . . . . . . 74
3.15. Simulacin de una onda plana propagndose a lo largo del espacio
libre con =30
o
.a) t = 80t b) t = 90t c) t = 100t. d) t = 110t. 77
3.16. Esquema de la transformacin de campo cercano a lejano. . . . . . . 78
3.17. Validacin de la transformacin de campo cercano a lejano . a) Diagra-
ma de la simulacin para validar la transformacin de campo cercano
a lejano. Se muestra la posicin de los tres puntos donde se calculan
los campos mediante el mtodo de las DFDT y mediante la trans-
formacin de campo cercano a lejano a partir de los campos en la
apertura. b) Campo E
z
para el punto 1. c) Campo E
z
para el punto
2. d) Campo E
z
para el punto 1 . . . . . . . . . . . . . . . . . . . . . 82
3.18. Celda de Yee para el caso tridimensional . . . . . . . . . . . . . . . . 84
3.19. Diagrama de ujo del algoritmo leapfrog. . . . . . . . . . . . . . . . . 85
3.20. Simulacin de un pulso propagndose en el vaco con condiciones de
frontera de Berenger (N
PML
=10). a) t = 65t.b) t = 100t.c) t =
125t. d) t = 160t. . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.21. Esquema tridimensional de las regiones de campo total y campo dis-
persado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.22. Representacin del campo elctrico en z (E
z
(V/m)) para diferentes
instantes de tiempo. a) t = 75t.b) t = 100t.c) t = 110t. d)
t = 125t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
viii NDICE DE FIGURAS
3.23. Capturas de la simulacin del pulso propagndose e incidiendo en la
ranura. a)t = 80t. b) t = 100. c) t = 120.t. d)t = 180.t . . . . 91
3.24. Validacin de la transformacin de campo cercano a lejano en tres di-
mensiones. a) Diagrama de la simulacin para validar la transforma-
cin de campo cercano a lejano. Se muestra la posicin de los tres pun-
tos donde se calculan los campos mediante las dos vas. A la derecha,
se muestran las formas de onda del campo elctrico E
z
. b) Punto 1.
c) Punto 2. d) Punto 3. . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.1. Arquitectura de procesador Intel
TM
Core. . . . . . . . . . . . . . . . 98
4.2. Ejemplo de una operacin de suma mediante SISD (a) y SIMD (b). . 101
4.3. Diagrama de bloques de la conversin de un cdigo secuencial a uno
vectorial mediante el uso de instrucciones SIMD . . . . . . . . . . . . 102
4.4. Ejemplo de paralelizacin automtica de un bucle. (a) Implementacin
normal en C de un bucle for de 4 iteraciones. (b) Implementacin
mediante directivas de ensamblador con uso de instrucciones SSE. (c)
Implementacin mediante el uso de funciones intrnsecas. . . . . . . . 104
4.5. Comparativa entre el cdigo secuencial y vectorial de la actualizacin
del vector desplazamiento en la componente z. . . . . . . . . . . . . . 107
4.6. Esquema ilustrativo que muestra las diferencias entre la aproximacin
de memeoria distribuida (a) y memoria compartida (b). . . . . . . . 108
4.7. Modelo de programcin OpenMP . . . . . . . . . . . . . . . . . . . . 108
4.8. Ejemplo paralelizacin de un cdigo secuencial mediante directivas
OpenMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.9. Esquema ilustrativo de la paralelizacin mediante OpenMP y la vec-
torizacin mediante el uso de las instrucciones SSE en la actualizacin
del desplazamiento elctrico en z para el mtodo de las DFDT. . . . 111
4.10. Cdigo que implementa la ecuacin (3.37) para las versiones secuen-
cial y optimizada mediante vectorizacin con los registros SSE y par-
alelizada con OpenMP. . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.11. Organizacin de los hilos en CUDA. . . . . . . . . . . . . . . . . . . 117
NDICE DE FIGURAS ix
4.12. Arquitectura Fermi. . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.13. Estructura de un multiprocesador en la arquitectura Fermi
TM
. . . . . 120
4.14. Ejecucin de un programa CUDA . . . . . . . . . . . . . . . . . . . . 122
4.15. Ejemplo de una suma de vectores en CUDA, a la derecha se muestra
la organizacin de los hilos y el kernel que ejecutan cada uno de ellos. 123
4.16. (a) Patrn de acceso coalescente. (b) Patrn de acceso no coalescente. 128
4.17. (a) Esquema de los kernels invocados para el clculo del campo elec-
tromagntico en dos dimensiones mediante CUDA. (b) Estructura de
cada uno de los bloques de la malla. . . . . . . . . . . . . . . . . . . 131
4.18. Clculo de las componentes del campo a partir de la estructura de
bloque propuesta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.19. Esquema de los kernels invocados para el clculo del campo electro-
magntico en dos dimensiones mediante CUDA incluyendo las CAP. 136
4.20. Esquema de los kernels invocados para el clculo del campo elctrico
en dos dimensiones mediante CUDA incluyendo las PMLs y la formu-
lacin de CT-CD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.21. Estratega utilizada para evitar accesos no coalescentes en la evalu-
acin de las connecting conditions. . . . . . . . . . . . . . . . . . . . 140
4.22. Esquema de los kernels invocados para el clculo del campo magntico
en dos dimensiones mediante CUDA incluyendo las PMLs y la formu-
lacin de CT-CD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.1. Esquema de una fuente lineal coeherente. . . . . . . . . . . . . . . . 147
5.2. Esquema de una apertura. . . . . . . . . . . . . . . . . . . . . . . . . 147
5.3. Patrn de difraccin obtenido para la simulacin de una rendija com-
parado con el modelo terico de Fraunhofer. Para ambos casos =
63,3 nm, d = 50 = 3,17m, = 633 nm. a) b = 50 = 3,17 m.
b)b = 80x = 5,1 m. . . . . . . . . . . . . . . . . . . . . . . . . . . 150
x NDICE DE FIGURAS
5.4. Conguracin del sistema para la simulacin y anlisis de difraccin
provocado por dos rendijas. a) Esquema tridimensional. b) Esquema
bidimensional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.5. Patrn de difraccin obtenido para la simulacin de dos rendijas com-
parado con el modelo terico de Fraunhofer (d = 50 = 3,17m,
= 633 nm, = 63,3 nm). a) b = 50 = 3,17, a = 70 = 4,43m.
b)b = 50 = 3,17 m, a = 100 = 0,633m. . . . . . . . . . . . . . 153
5.6. Irradiancias normalizadas obtenidas por las expresiones tericas en la
regin de Fresnel y Fraunhofer y numricas a partir del mtodo de las
DFDT. Se ha estudiado el caso de una nica apertura en funcin de
la distancia entre el plano de iluminacin y de medida: casos (a), (c)
and (e). Y para dos aperturas: casos (b), (d) and (f). . . . . . . . . . 154
5.7. Secuencias de la propagacin del campo elctrico en funcin del tiempo
para una apertura: (a) t = 50t, (c) t = 150t, (e) t = 250t, (g) t
= 350t con b=40 celdas. Para dos aperturas: (b) t = 50t, (d) t =
150t, (f) t = 250t, (h) t = 350t con b = 40 celdas y a = 80 celdas.155
5.8. Patrn de difraccin obtenido para la simulacin N aperturas com-
parado con las curvas tericas en la regin de Fraunhofer (a = 50x =
3,17m, = 633 nm, = 63,3 nm). a) Curva terica para 5 aperturas
y patrn de irradancia obtenido a partir del mtodo de las DFDT tanto
para 2D y 3D, los parmetros de la simulacin son: b = 50x = 3,17
(nicamente en 3D), d = 70x = 4,43m. b) Curva terica para 7
aperturas y patrn de irradiancia obtenido a partir de las DFDT tanto
para 2D y 3D, los parmetros de la simulacin son: b = 50x = 3,17
m, d = 70 = 4,43m. . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.9. Distribucin del campo elctrico (y=4000) generado por la pertur-
bacin de la luz sobre 5 aperturas.(a) Irradiancia normalizada. (b) I en
funcin del tiempo y del espacio obtenido a partir de la transformacin
de campo cercano a lejano . . . . . . . . . . . . . . . . . . . . . . . . 157
5.10. Conguracin del sistema para la simulacin y anlisis de difraccin
provocado por una apertura . . . . . . . . . . . . . . . . . . . . . . . 158
NDICE DE FIGURAS xi
5.11. Patrn de difraccin obtenido para la simulacin aperturas circulares
con diferentes radios comparado con las curvas tericas en la regin de
Fraunhofer ( = 633 nm, x = 63,3 nm). a) Curva terica para aper-
tura circular de radio 30x(1.9m) y patrn de irradancia obtenido
a partir del mtodo de las DFDT en 3D. b) Curva terica para aper-
tura circular de radio 45x(1.9m) y patrn de irradiancia obtenido
a partir del mtodo de las DFDT en 3D. . . . . . . . . . . . . . . . . 159
5.12. Reectancia R para incidencia normal en capas de dielctrico de longi-
tud ptica
0
/4 y alternancia de ndices de refraccin alto (n
A
= 2,3)
y bajo (n
B
= 1,38) en susbstrato transparente (n
s
= 1,52) en funcin
del parmetro
0
/. . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.13. En cada una de las grcas se ilustra el mdulo del campo elctri-
co y arriba el prl del ndice de refraccin, para lminas de alta
reectancia en funcin de la relacin
0
/. En las grcas (a), (c)
y (e) se ilustra una lmina compuesta por tres capas para los casos

0
/ = 0,2,
0
/ = 0,6 y
0
/ = 1 respectivamente. En las grcas
(b), (d), (f) se muestra el caso para 7 capas para los casos
0
/ = 0,2,

0
/ = 0,6 y
0
/ = 1 respectivamente. . . . . . . . . . . . . . . . . 163
5.14. Esquema de los ngulos involucrados en una red de difraccin de vol-
umen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
5.15. Esquema de la simulacin de la red de difraccin de volumen. . . . . 166
5.16. Distribucin del mdulo del campo elctrico en funcin del espacio
para diferentes pasos temporales en una simulacin de una red de
difraccin hologrca de transmisin con parmetros d = 6m, =
0, 83m, n
0
= 1, 63, n = 0,025,
I
= 22,64
o
. Parmetros FDTD:
n
f
= 3196, n
c
= 2500, = 633 nm, = /40, t = /(2c
0
). (a)
t = 2500 t. (b)t = 4000 t. (c) t = 5000 t. (d) t = 7500 t. . 167
5.17. Distribucin del campo nal para el mismo caso ilustrado en la Figu-
ra 5.16, donde se visualiza la zona central de interferencia entre el haz
transmitido y el difractado. . . . . . . . . . . . . . . . . . . . . . . . 168
5.18. Distribucin de la irradiancia [E
z
[
2
en campo lejano (y=4000y)
calculado a partir del campo a la salida de la red de difraccin con n
0
= 1.63, n = 0,025, = 0,63 nm. Simulacin 3D. a) d = 2,25 m y
= 0,29. b)d = 12,3 m y = 1,57 . c)d = 19,85 m. y = 2,53. . . 169
xii NDICE DE FIGURAS
5.19. Anlisis del oren difractado y transmitido para una RHV en trans-
misin con n=0.025. (a) Eciencia en difraccin (m = 1). b) E-
ciencia en transmisin (m = 0). . . . . . . . . . . . . . . . . . . . . . 170
5.20. Anlisis del oren difractado y transmitido para una RHV en trans-
misin con n=0.015. (a) Eciencia en difraccin (m = 1). b) E-
ciencia en transmisin (m = 0). . . . . . . . . . . . . . . . . . . . . . 171
5.21. Curvas de eciencia angular en funcin del ngulo de incidencia ()
para una red de difraccin de volumen con n=0.025, =0.83 m,
=633 nm. a) Modulacin de ndice n = 0,025, = pi/2. b)n =
0,015, = 0,94. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
5.22. Esquema ilustrativo de la conguracin de una red de difraccin holo-
grca de reexin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.23. Representacin del campo elctrico para un paso temporal en el que
se ha alcanzado el estado estacionario. . . . . . . . . . . . . . . . . . 174
5.24. Eciencia en difraccin en funcin del ngulo de incidencia. Compar-
ativa entre el MM a partir de las funciones de Mathieu, la teora de
Kogelnik y el mtodo numrico de las DFDT. . . . . . . . . . . . . . 174
5.25. Anlisis de la eciencia angular en funcin de la resolucin espacial en
los mtodos de las DFDT y de la matriz efectiva. En ambas grcas
las curvas del MM y de Kogelnik son las mismas. (a) Curvas de FDTD
y de MME para 8 muestras por . (b) Curvas de FDTD y de MME
para 16 muestras por . . . . . . . . . . . . . . . . . . . . . . . . . . 176
5.26. Comparativa entre los resultados numricos obtenidos mediante el
mtodo de las DFDT y el MM, los parmetros de simulacin se reco-
gen en la Tabla 5.7. (a) Reectancia en funcin ngulo de incidencia
de la red. (b) Transmitancia en funcin del ngulo de incidencia. . . 178
5.27. Transmitancia y reectancia en funcin de la longitud de onda. Parmet-
ros de la simulacin recogidos en la Tabla 5.7. . . . . . . . . . . . . . 179
NDICE DE FIGURAS xiii
5.28. Representacin del tiempo de ejecucin de la versin 1 del mtodo
de las DFDT para las diferentes implementaciones y estaciones de
trabajo. El grupo de guras (a), (c) y (e) se corresponden con las
versiones secuencial, SSE+OpenMP y CUDA respectivamente para
Bell. El grupo de guras (b), (d) y (f) se corresponden con las versiones
secuencial, SSE+OpenMP y CUDA respectivamente para Clerk. Para
ms informacin sobre cada una de las estaciones ver Tabla 4.2. . . . 181
5.29. (a) SpeedUp para la versin SSE+OpenMP en Clerk y para la versin
2 del mtodo de las DFDT. (b) SpeedUp para la versin CUDA en la
Clerk y para la versin 2 del mtodo de las DFDT. (c) Cociente entre
los tiempos de la versin SSE+OpenMP y CUDA para la Clerk y la
versin 2 del mtodo de las DFDT. . . . . . . . . . . . . . . . . . . . 182
5.30. Comparativa entre tiempos de proceso de la versin 3 del mtodo de las
DFDT en la estacin 2: (a) SpeedUp para la versin SSE+OpenMP.
(b) SpeedUp para la versin CUDA. (c) Cociente entre los tiempos de
la versin SSE+OpenMP y CUDA. . . . . . . . . . . . . . . . . . . . 184
5.31. Rendimiento en Gops/s para la versin 3 del mtodo de las DFDT:
(a) SSE+OpenMP en la estacin 1. (b) SSE+OpenMP en la estacin
2. (c) CUDA en la estacin 1. (d) CUDA en la estacin 2. . . . . . . 186
xiv NDICE DE FIGURAS
ndice de tablas
4.1. Datos sobre la estructura de la memoria cach en los microproce-
sadores modernos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.2. Especicaciones tcnicas de las estaciones de cmputo utilizadas. . . 113
4.3. Tiempos de ejecucin y rendimiento para las dos estaciones de trabajo
y en funcin de la optimizacin introducida. . . . . . . . . . . . . . . 114
4.4. Especicaciones tcnicas para la familia Fermi
TM
. . . . . . . . . . . . 124
4.5. Velocidad de bus para los buses vinculados a una UPG . . . . . . . . 126
4.6. Especicaciones tcnicas para las tarjetas grcas GeForce GTX 460
y 470. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.7. Comparativa de diferentes tamaos de bloque para el el mtodo de
las DFDT en dos dimensiones. Datos obtenidos con la tarjeta GeForce
GTX 470 para un tamao de simulacin de 25602560 celdas. . . . . 133
4.8. Comparativa de diferentes tamaos de bloque para el el mtodo de las
DFDT en dos dimensiones con la incorporacin de las PMLs. Datos
obtenidos con la tarjeta GeForce GTX 470 para un tamao de simu-
lacin de 25602560 celdas. . . . . . . . . . . . . . . . . . . . . . . . 137
4.9. Resumen de los tamaos de bloque y de malla para cada uno de los
kernels mostrados en las Figuras 4.20 y 4.22. . . . . . . . . . . . . . . 140
5.1. Regin lmite entre las aproximaciones de Fresnel y Fraunhofer . . . 149
xvi NDICE DE TABLAS
5.2. Expresiones en regin de Fraunhofer de la irradiancia normalizada en
funcin del nmero de aperturas . . . . . . . . . . . . . . . . . . . . 149
5.3. Comparativa entre resolucin del mallado y prestaciones del algoritmo
(versin secuencial). . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
5.4. Parmetros de simulacin del mtodo de las DFDT. . . . . . . . . . 161
5.5. Parmetros de simulacin del mtodo de las DFDT para redes de
difraccin por transmisin. . . . . . . . . . . . . . . . . . . . . . . . . 170
5.6. Parmetros de simulacin del mtodo de las DFDT para la red de
difraccin de transmisin analizada en la Figura 5.24. . . . . . . . . . 175
5.7. Parmetros de simulacin del mtodo de las DFDT para redes de
difraccin por reexin. . . . . . . . . . . . . . . . . . . . . . . . . . 177
5.8. Tiempos de simulacin para la versin 3 del mtodo de las DFDT
para una malla de 25602560 para la versin secuencial, la versin
SSE+OpenMP y la versin CUDA. . . . . . . . . . . . . . . . . . . . 180
Acrnimos
TE Transversal Elctrico.
TM Transversal Magntico.
API Application Programming Interface.
CAP Capas de Adaptacin Perfecta.
CFA Condiciones de Frontera Absorbentes.
CT-CD Campo Total-Campo Dispersado.
CUDA Compute Unied Device Architecture.
DAC Diseo Asistido por Computador.
DFDT Diferencias Finitas en el Dominio del Tiempo.
FCF Filtros de Capas Delgadas.
Flops Floating Point Operations per Second.
ID Identicador.
MEF Mtodo de Elementos Finitos.
MLT Modelo de Lneas de Transmisin.
MM Mtodo Matricial.
MMC Mtodo de la Matriz Caracterstica.
MMX MultiMedia eXtension o Multiple Math o Matrix Math eXtension.
xviii Acrnimos
MoM Mtodo de los Momentos.
MPI Message Passing Interface.
PGUPG Propsito General basado en Unidades de Procesado Grco.
PML Perfectly Matched Layers.
RDH Redes de Difraccin Hologrca.
SIMD Single Instruction, Multiple Data.
SIMT Single Instruction Multiple Thread.
SISD Single Instruction, Single Data.
SM Streaming Processor.
SSE Streaming SIMD Extensions.
TIF Tcnicas de Integracin Finita.
TME Teora del Medio Equivalente.
TOA Teora de Ondas Acopladas.
TROA Teora Rigurosa de Ondas Acopladas.
UAL Unidad Aritmtico Lgica.
UCF Unidad de Coma Flotante.
UFE Unidad de Funciones Especiales.
UPC Unidad de Procesamiento Central.
UPG Unidad de Procesamiento Grco.
Lista de Smbolos
A Capa de longitud ptica de un cuarto de onda con ndice de refraccin alto.
AB
ef
Ancho de Banda efectivo denido en GB/s.
B Capa de longitud ptica de un cuarto de onda con ndice de refraccin bajo.
Vector de propagacin de la onda de referencia R.
Vector de propagacin de la onda difractada S.
c
0
Velocidad de propagacin de la luz en el vaco (m/s).
Modulacin espacial de la constante de absorcin en la red de difraccin.
Amplitud de la modulacin del ndice de permitividad elctrica relativa.
n Modulacin espacial del ndice de refraccin en la red de difraccin.
Amplitud de la modulacin del ndice de conductividad elctrica (S/m).
t Resolucin temporal del mtodo de las DFDT.
x Resolucin espacial del mtodo de las DFDT en la coordenada x (para celdas
de Yee cbicas x = y = z = ).

D Vector desplazamiento elctrico normalizado respecto a la impedancia intrnseca


del vaco
0
=
_

0
/
0
.
E Vector campo elctrico.

E Vector campo elctrico normalizado respecto a la impedancia intrnseca del vaco

0
=
_

0
/
0
.
Permitividad elctrica(F/m).
xx Lista de Smbolos

0
Permitividad elctrica en el vaco denida como 8,85410
12
(F/m).

r
Constante de permitividad relativa.

r0
Permitividad elctrica relativa promedio en el interior de la red hologrca.

r
Constante de permitividad relativa compleja.

0
Impedancia intrnseca del vaco denida como
0
=
_

0
/
0
120 .

q
i
Admitancia denida donde el subndice indexa el medio i-simo y el superndice
el tipo de polarizacin TM o TE.
f
0
Frecuencia de oscilacin (Hz).
H Vector campo magntico.
K Vector de red (rad/m).
k Constante de propagacin (rad/m).
Constante de acoplamiento de una red de difraccin.
Perodo de red (m).

0
Longitud de onda en el vaco denida como c
0
/f
0
(m).
M Capa de longitud ptica de un cuarto de onda con ndice de refraccin medio.
Permeabilidad magntica (H/m).

0
Permeabilidad magntica en el vaco denida como 410
7
(H/m).
n
0
ndice de refraccin promedio en la red, denido como n
0
=

r0
.
n
A
ndice de refraccin alto de una capa de un cuarto de onda.
n
B
ndice de refraccin bajo de una capa de un cuarto de onda.
n
c
Nmero de celdas en la dimensin de las columnas en el mtodo de las DFDT.
n
f
Nmero de celdas en la dimensin de las las en el mtodo de las DFDT.
n
steps
Nmero de pasos temporales a realizar en el mtodo de las DFDT.
Frecuencia angular de oscilacin (rad/s).
Lista de Smbolos xxi
ngulo que forman los planos de la modulacin de ndice en la red de difraccin
respecto a la normal del plano de incidencia (eje z) (
o
).
R Onda compleja de referencia a la entrada de la red de difraccin hologrca.
S Onda compleja difractada en una red de difraccin hologrca.
Conductividad elctrica (S/m).

0
Conductividad elctrica promedio en el interior de la red hologrca (S/m).

m
Resistividad magntica equivalente (/m).

B
ngulo de Bragg en el interior del material.
Admitancia en espacio libre denida como 2,6544 10
3
S.
Captulo 1
Introduccin
1.1. Motivacin
El electromagnetismo presenta un amplio espectro de aplicaciones que prctica-
mente invade todas las facetas de nuestra vida cotidiana: como antenas, circuitos
de microondas y de radio frecuencia, comunicaciones pticas, etctera. Estas apli-
caciones pueden clasicarse en funcin del espectro frecuencial para el cual estn
ideadas. Este espectro es muy amplio, y se extiende hasta los rayos-X. El electro-
magnetismo se puede denir como la disciplina que estudia la naturaleza de las cargas
elctricas, as como su relacin con la corriente y el campo elctrico y magntico. Por
lo tanto, el electromagnetismo es un aspecto fundamental en el campo de la Fsi-
ca y la Ingeniera. Los conceptos tericos relacionados con el electromagnetismo se
resumen en un conjunto de leyes formuladas a travs de experiencias realizadas a
lo largo del siglo XIX por diversos cientcos, como Faraday, Ampre, Gauss, Lenz
y Coulomb entre otros. En la segunda mitad del siglo XIX Maxwell sintetiz estas
leyes en una formulacin vectorial conocida como las ecuaciones de Maxwell [1].
La aplicacin de esta teora ha facilitado a numerosos investigadores de diferentes
campos del electromagnetismo el entendimiento de un gran nmero de fenmenos
fsicos. Resumir o describir, inclusive de forma somera, todas las ramas que se pueden
contemplar, supone una tarea exhaustiva que presenta una caducidad inmediata. Es
por ello que a continuacin se va a dar una visin general del mbito de aplicacin de
esta disciplina, que permite enmarcar y situar lo que posteriormente ser el ncleo
de este trabajo. De manera general, se puede armar que el campo donde se ha
realizado un mayor nmero de contribuciones relacionadas con el desarrollo de la
2 CAPTULO 1. INTRODUCCIN
teora electromagntica es en el campo de las microondas. Los avances tecnolgicos
realizados en el ltimo siglo en este campo se han centrado en estudiar las propiedades
de los electrones en materiales de estado slido, como puede ser el caso de cristales.
La composicin regular de las molculas en este material ha favorecido la presencia
de bandas energticas para los electrones. Este fenmeno ha permitido la fabricacin
de diodos, transistores y dispositivos electrnicos cada vez ms complejos. Todos
estos conocimientos, se estn aplicando recientemente en el campo de la fotnica
debido a la analoga existente entre los fotones y los electrones, permitiendo disear
dispositivos fotnicos alternativos a los electrnicos.
Una de las estructuras bsicas en dispositivos fotnicos es lo que se denomi-
na cristal fotnico, el cual interacta con los fotones de manera similar a la de un
cristal de estado slido con los electrones, pero a una escala espacial diferente [2].
Los cristales fotnicos estn compuestos normalmente por dos materiales dielctri-
cos con diferentes ndices de refraccin organizados de manera alternada en una
estructura que presenta periodicidad en una, dos o tres dimensiones [3]. Uno de los
ejemplos ms sencillos de un medio peridico consiste en una secuencia de capas
de dos materiales diferentes, alternados y de igual espesor [4]. La propagacin del
campo electromagntico en el interior de estos medios presenta un conjunto de car-
actersticas cuyas aplicaciones son muy diversas. Algunos de estos fenmenos son la
reexin de Bragg y la presencia de bandas fotnicas prohibidas, donde stas ltimas
se traducen en un rango espectral en el que la propagacin de los fotones es de tipo
evanescente. La aplicacin de estas caracterstica ha permitido el diseo de multitud
de dispositivos pticos como pueden ser guas de onda planas [5], ltros fotnicos
de canal [6], acopladores [7], redes de difraccin [8, 9], elementos pticos hologr-
cos [10], lentes [11], espejos [12], sistemas de interconexin ptica hologrca [13],
aplicaciones de energa solar fotovoltaica [14], computacin ptica [15],etctera.
Sin embargo, la ptica en medios peridicos y sus aplicaciones no estn acotadas
nicamente a dispositivos fabricados por el hombre. Cabe destacar la presencia de
este tipo de conguraciones en la naturaleza. Por ejemplo, los llamativos colores
existentes en algunas especies de mariposas y escarabajos, as como la caracterstica
plateada en la piel y la gama de colores presentes en algunos animales marinos son
producidos por la reexin de la luz en medios peridicos [16]. Por lo que queda de
maniesto el inters en realizar anlisis rigurosos de la radiacin electromagntica en
medios peridicos.
Mltiples dispositivos fotnicos funcionan en base a cuestiones ligadas a la teora
de la difraccin. Dentro de la ptica difractiva destacan por sus mltiples propiedades
y aplicaciones, las redes de difraccin. De forma general, una red de difraccin se
constituye mediante una serie de elementos difractores (aperturas u obstculos), los
cuales producen alteraciones peridicas en la fase y/o en la amplitud. El caso ms
1.1 Motivacin 3
sencillo de este tipo de dispositivos son las conocidas redes de difraccin de aperturas.
Cuando la luz incide sobre un obstculo se produce el fenmeno de la difraccin y ste
es observable cuando el obstculo es lo sucientemente pequeo, o comparable con
la longitud de onda de la luz incidente. Uno de los experimentos ms conocidos rela-
cionado con las redes de difraccin de apertura, es el conocido como el experimento
de Young de la doble rendija, realizado por Thomas Young en 1801. Este experimen-
to demuestra de manera sencilla el comportamiento ondulatorio de la luz a partir del
patrn de difraccin producido por la luz al incidir sobre dos rendijas. Existe otro
tipo de redes de difraccin basadas en la variacin del ndice de refraccin del medio.
Uno de los casos particulares de este tipo de dispositivos son las redes de difraccin
obtenidas mediante tcnicas hologrcas. Uno de los avances ms importantes en el
ltimo siglo en el campo de la ptica difractiva fue realizado en 1948, por el ganador
del premio Nobel Dennis Gabor [17], el cual propuso un nuevo procedimiento de for-
macin de imgenes sin lentes que posteriormente recibira el nombre de Holografa.
El anlisis terico de este tipo de dispositivos modela la formacin del holograma a
partir de dos ondas planas que producen un patrn de interferencia en el material.
El material inicialmente es transparente, pero el patrn de interferencia induce una
variacin sinusoidal en el ndice de refraccin, en el espesor, o en la absorcin del
substrato. La orientacin de las supercies de interferencia puede formar un ngulo
arbitrario que depende de la conguracin de las ondas interferentes. As, podemos
hablar de lasRedes de Difraccin Hologrca (RDH) de transmisin las cuales pro-
ducen la imagen reconstruida a partir de la luz que atraviesa el material, y de RDH
por reexin que reejan la luz para reconstruir la imagen.
Otro dispositivo peridico de gran relevancia y que est presente en muchas ramas
de la ciencia y de la tecnologa son los Filtros de Capas Delgadas (FCF). Las primeras
investigaciones de estos dispositivos surgen de manera paralela de mano de los padres
de la ptica moderna Augustin Jean Fresnel, Joseph Fraunhofer y posteriormente
Lord Rayleigh. Sin embargo, no fue hasta el siglo XIX cuando el desarrollo de este
tipo de dispositivos se beneci de uno de los descubrimientos ms importantes en
el campo de la interferometra: el interfermetro Fabry-Perot [18], el cual es una de
las estructuras bsicas de los FCF. Estos dispositivos se basan en la interferencia
producida por la luz al incidir en una secuencia de lminas dielctricas delgadas.
Al existir una discontinuidad, existe una onda reejada y otra transmitida. La onda
reejada presenta una inversin de fase cuando la reexin se produce en un medio
de menor ndice de refraccin que el adyacente, mientras que no existe desfase cuando
el medio donde se produce la reexin presenta un ndice de refraccin mayor que
adyacente. Aplicando esta idea y combinando diferentes capas es posible manipular la
interferencia destructiva y constructiva de las ondas en el dispositivo. Este fenmeno
se ha aplicado a la fabricacin de elementos pticos como divisores de haz de bajas
prdidas, lminas antireectantes y ltros.
4 CAPTULO 1. INTRODUCCIN
Numerosos investigadores han dedicado sus esfuerzos a la disciplina de la simu-
lacin numrica en el campo de la ptica difractiva [1921] y la fotnica [22, 23]. La
prediccin de parmetros tan importantes como la sensibilidad espectral, la sensibi-
lidad angular y la transmitancia y reectancia en el campo de los elementos pticos
difractivos es un reto al mismo tiempo que simplica y facilita la optimizacin en la
etapa de diseo y fabricacin.
En las ltimas dcadas, la tendencia hacia el uso de libreras y herramientas
basadas en Diseo Asistido por Computador (DAC) es una realidad creciente. Desde
el punto de vista industrial, el proceso de evaluar nuevos prototipos implica un gasto
signicativo en ensamblado, montaje de componentes, mecanizado, fabricacin, por
no contar el coste del banco de pruebas relativo al uso del dispositivo y cumplimiento
de normas. En denitiva, se trata de un gran conjunto de tiempo y dinero, en mano
de obra y/o material. Por lo que la evolucin natural tiende a que los sistemas
informticos permitan facilitar y abaratar tales funciones.
Al margen de su tradicional valor cientco y acadmico, la simulacin numrica
contribuye con una considerable reduccin de costes en el mbito de la ingeniera
y de la industria. De manera general, se pueden enumerar una serie de benecios
generales de la simulacin numrica independientemente del producto y del proceso
de fabricacin del mismo:
Disminucin del tiempo de acceso al mercado.
Incremento de la calidad del producto.
Reduccin del nivel de esfuerzo.
Mejor sincrona en procesos paralelos.
Optimizacin del proceso de diseo.
La base de la simulacin numrica es lo que se denomina un programa de clculo,
el cual no deja de ser una excelente herramienta para resolver sistemas de ecuaciones
y, como tal, tiene potencial para abordar todo un amplio conjunto de problemas
matemticos. La era de la informacin, junto con el aumento de la capacidad com-
putacional de los computadores modernos ha permitido resolver problemas de un
gran nmero de incgnitas en tiempos cada vez ms reducidos. En consecuencia, es
necesario recurrir a modelos matemticos que permitan reproducir el comportamien-
to fsico de un dispositivo real. Este problema, puede alcanzar diferentes grados de
profundidad, dependiendo de la precisin y del grado de similitud que se desee al-
canzar. Habitualmente, se suele simplicar el proceso descomponindolo en pequeos
1.1 Motivacin 5
subsistemas cuyo modelado sea ms sencillo e intuitivo, para nalmente ensamblar
los resultados y obtener el comportamiento global.
Entre los sistemas susceptibles de anlisis, pueden encontrarse los que por su na-
turaleza ya estn divididos en subsistemas, los cuales reciben el nombre de sistemas
discretos. En el caso concreto del electromagnetismo, un ejemplo de un sistema dis-
creto es un circuito electrnico compuesto por elementos distribuidos. En este caso
suele ser bastante directo detectar los elementos que constituyen un elemento global
y los nodos que los interconectan. Sin embargo, en la mayora de los casos, diferentes
componentes de un sistema no son fcilmente identicables. La separacin de estos
sistemas contiguos implica normalmente, realizar una particin abstracta hasta nive-
les innitesimales. El modelo matemtico asociado a este tipo de problemas recibe
el nombre de modelo matemtico continuo o analtico, y est basado en ecuaciones
diferenciales generalmente en derivadas parciales e involucra un nmero innito de
elementos. La solucin de un problema de este tipo presenta dos posibilidades: optar
por la solucin analtica exacta del mismo u obtener una solucin numrica aproxima-
da. Aunque la primera opcin resulta ms atractiva, en muchos casos es demasiado
laboriosa y no siempre resuelve el sistema con xito. La segunda estrategia pasa por
una adaptacin a un modelo numrico, que en la mayora de los casos se basa en una
discretizacin, y resulta ms abordable bajo diferentes aspectos.
Los mtodos numricos que permiten resolver las ecuaciones de Maxwell se pueden
clasicar en primera instancia en dos grandes familias: los mtodos diferenciales y los
mtodos integrales. De la primera familia de mtodos cabe resaltar alguno de ellos
por su popularidad y aceptacin dentro de la comunidad cientca, como pueden
ser el mtodo de las Diferencias Finitas en el Dominio del Tiempo (DFDT) [24],
las Tcnicas de Integracin Finita (TIF) [25] y el Modelo de Lneas de Transmisin
(MLT) [26]. Por otro lado, los mtodos integrales orientados hacia el anlisis espec-
tral se basan principalmente en el Mtodo de Elementos Finitos (MEF) [27] y en el
Mtodo de los Momentos (MoM) [27]. El objetivo principal de los mtodos diferen-
ciales es proporcionar la solucin en los nodos o elementos de clculo, mientras que
los mtodos integrales ofrecen una ponderacin sobre el continuo entre los puntos del
dominio.
Tal y como se ha mencionado con anterioridad, el electromagnetismo comprende
un amplio rango espectral. Por ello, es tarea ardua encontrar una notacin homognea
en disciplinas como la electrnica, o la bra ptica, donde las longitudes de onda de
trabajo se diferencian en varios rdenes de magnitud. Estas diferencias, junto con
los avances que se estn llevando a cabo en la ciencia y la tecnologa han favoreci-
do el fenmeno de la especializacin. En consecuencia, cada segmento del electro-
magnetismo ha desarrollado sus propios mtodos numricos enfocados a cada caso
particular. Por ejemplo, la teora de circuitos se sita en la zona del espectro de
6 CAPTULO 1. INTRODUCCIN
baja frecuencia. En este rgimen, los objetos bajo estudio son mucho ms pequeos
que las longitudes de onda de trabajo, por lo que manipular corrientes y voltajes es
mucho ms sencillo y funcional que trabajar con los campos electromagnticos de
manera directa. A medida que la frecuencia aumenta, la teora ondulatoria rigurosa
comienza a ser ms adecuada conforme se llega a la regin de frecuencias de radio
y microondas. Si seguimos aumentando en el espectro hasta frecuencias del orden
de los micrmetros y los nanmetros (longitudes de onda pticas), la teora ondu-
latoria rigurosa sigue siendo vlida aunque es menos eciente debido a las grandes
dimensiones de los dispositivos comparadas con el orden de las longitudes de onda de
trabajo. Por ello, la aplicacin de mtodos aproximados en el campo de la ingeniera
ptica ha captado el inters de numerosos investigadores.
Esta Tesis Doctoral tiene por objeto el estudio de diferentes mtodos analticos
y numricos y su aplicacin a elementos pticos difractivos en longitudes de on-
da pticas. Concretamente, se ha recurrido al mtodo numrico de las DFDT. Los
anlisis electromagnticos en el dominio temporal han alcanzado una madurez con-
siderable en el mbito de las microondas y para longitudes de onda milimtricas.
Por ello, existe un gran inters en expandir este tipo de anlisis a rangos espectrales
ms cercanos a la ptica. Esta idea est soportada por dos razones que unen ms si
cabe el mundo empresarial y la investigacin aplicada. Por un lado, las numerosas
investigaciones que se estn realizando en la actualidad en el campo de la ptica
y la fotnica, que auguran un futuro prometedor para esta tecnologa que se es-
pera sustituya a los dispositivos electrnicos de estado slido actuales. Y por otro
lado, el inters suscitado por los investigadores y empresas en incorporar soluciones
software en la cadena de diseo y fabricacin que les ayuden a estudiar y analizar
sus dispositivos de tecnologa ptica de una manera rpida y eciente. El aumento
de la complejidad de los dispositivos pticos y fotnicos relega los mtodos clsicos
de anlisis numrico, como trazado de rayos y las teoras difractivas, a un segundo
plano debido a su incapacidad de proporcionar resultados precisos. Por ello, tal y
como arman Salski et al [3], se pronostica un futuro prometedor a mtodos como
el de las DFDT que acompaado de los avances que se estn realizando en el rea de
la optimizacin computacional permiten realizar anlisis cada vez ms exhaustivos
con unos requisitos computacionales inabordables hace unas dcadas.
Uno de los factores que releg los mtodos en el dominio del tiempo, como puede
ser el mtodo de las DFDT a un segundo plano frente a el MEF, por ejemplo, ha
sido el coste computacional que requieren los mtodos transitorios en frecuencias
medias y bajas. La resolucin de los campos en el caso particular del mtodo de
las DFDT implica recorrer cada uno de los puntos discretos del espacio y evaluar
cada una de las componentes del campo electromagntico en funcin del tiempo y
del espacio. El coste temporal del mtodo, es proporcional al nmero de incgnitas
y al nmero de pasos temporales que se desean contemplar. Por ello, el anlisis de
1.1 Motivacin 7
estructuras como por ejemplo, ltros estrechos de elevado factor de forma, necesita
de un elevado nmero de pasos temporales para asegurar resultados satisfactorios y
por lo tanto un coste computacional muy elevado. Adems, los mtodos diferenciales
padecen del problema de la dispersin producida por la diferencia de velocidad en la
propagacin en funcin de la direccin en el interior de las celdas que conforman la
malla de simulacin. Aunque, es cierto que por ejemplo en el mtodo de las DFDT
estos errores se mantienen de forma general acotados y en la mayora de los casos
son despreciables.
Por otro lado, la simulacin de estructuras peridicas con condiciones de contorno
arbitrarias ha sido un campo dominado principalmente por formulaciones basadas
en las expresiones integrales de Maxwell en el dominio de la frecuencia, como puede
ser el MEF o el MoM. Estos mtodos requieren de la solucin de un gran sistema de
ecuaciones para cada frecuencia de inters, los cuales estn limitados a sistemas de
varias decenas de millones de incgnitas [28]. Otro de los grandes inconvenientes del
uso de mtodos como el MEF ha sido la complejidad a la hora de denir la malla de
simulacin. Habitualmente, esta malla est formada por guras geomtricas sencillas,
como pueden ser tringulos, tetraedros y hexgonos, que aunque permiten modelar de
una manera ms rigurosa geometras complejas, requieren de un esfuerzo y un tiempo
considerable a la hora de preparar el modelo para cada aplicacin en particular. En
numerosas ocasiones, es necesario recurrir a complejos programas de DAC en la etapa
de preprocesado que permitan construir el sistema de ecuaciones que ha de resolverse
con posterioridad.
Concretamente, el mtodo diferencial en el dominio del tiempo como puede ser
el DFDT presenta las siguientes ventajas respecto a mtodos integrales en el dominio
de la frecuencia como MEF y MoM:
No es necesario solucionar un sistema de ecuaciones del tipo A x = b de
manera directa. En cada paso temporal el algoritmo recurre a operaciones
aritmticas elementales sobre los valores de los campos, basadas en la aproxi-
maciones en diferencias centrales de la derivada.
Los requisitos de memoria aumentan de forma lineal con el nmero de in-
cgnitas, o lo que es lo mismo con el nmero de celdas a simular frente a la
discretizacin producida por MEF o MoM.
La generacin de la malla para estructuras laminares, como pueden ser las RDH
o una estructura de capas es mucho ms sencilla y conveniente para el caso del
mtodo de las DFDT que para el MEF.
Sin embargo, uno de los inconvenientes principales en el uso del mtodo de
8 CAPTULO 1. INTRODUCCIN
las DFDT en longitudes de onda pticas es la necesidad de reduccin de las resolu-
ciones espaciales y temporales, para asegurar tanto estabilidad como convergencia
en el mtodo. Por ello, la simulacin de grandes regiones comparadas con la longitud
de onda de trabajo (escenario comn en ptica difractiva) y un elevado nmero de
pasos temporales aumenta el coste computacional en trminos de uso de memoria y
tiempo de simulacin. Adems cabe destacar, que el coste temporal del mtodo de
las DFDT es de tipo exponencial, por lo que un ligero aumento en las dimensiones
de la malla repercute en gran medida en el tiempo total de clculo.
No obstante, en las ltimas dcadas, los microprocesadores basados en una nica
Unidad de Procesamiento Central (UPC) como la familia Pentium
TM
de Intel
TM
y los Opteron
TM
de AMD
TM
, han permitido reducir los tiempos de simulacin. El
aumento en la velocidad de estos procesadores ha revolucionado el mundo de la
informtica en pocos aos, mejorando los interfaces de usuario, y ampliando las
funcionalidades del software. La demanda de estas caractersticas ha aumentado a
medida que la capacidad de estos procesadores tambin lo ha hecho, por lo que la
industria de los computadores se ha visto inmersa en un ciclo de desarrollo denido
por la ley de Moore en 1975, el cual arm que el rendimiento de las computadoras
aumentara de forma exponencial, duplicando la capacidad de integracin en los
microprocesadores cada dos aos [29]. Sin embargo, el propio Moore vaticin pocos
aos despus, la fecha de caducidad de su teora aproximadamente para el ao 2007,
a partir del cual predijo que una nueva tecnologa vendra a suplir la actual. En la
realidad, los avances en esta tecnologa han sufrido una ligera desaceleracin a partir
del ao 2003 debido principalmente al consumo energtico y la disipacin de calor
que han limitado el aumento de la frecuencia de trabajo del sistema y el tipo de
procesos que pueden realizarse por ciclo de reloj en una UPC.
A partir del ao 2005, los fabricantes de microprocesadores cambiaron su losofa
de trabajo y optaron por incluir ms de una UPC en sus productos [30]. Este cambio
en la industria ha seguido dos trayectorias diferenciadas desde el punto de vista de
diseo. Por un lado se puede identicar una vertiente denominada multi-ncleo que
persigue mantener la velocidad de ejecucin de los programas secuenciales trasladada
a mltiples ncleos. El cambio en la arquitectura hardware de los microprocesadores
ha repercutido en la manera de generar software, provocando que los programadores
de software hayan tardado en adaptarse a esta nueva arquitectura. En consecuen-
cia, las expectativas de los consumidores que vean duplicado el rendimiento en cada
generacin de procesadores no se han cumplido, debido a que el paradigma de pro-
gramacin se ha visto alterado de manera signicativa. Sin embargo, es cierto que la
programacin paralela se ha utilizado durante dcadas en la comunidad cientca en
conguraciones de elevado coste por medio de servidores formados por un gran con-
junto de computadores. Estas soluciones implican un esfuerzo econmico junto a una
labor de diseo y mantenimiento considerables. En muchas ocasiones estos recursos
1.1 Motivacin 9
0
100
200
300
400
ENE FEB ABR MAY NOV MAR NOV
2003 2004 2005 2006
G
F
l
o
p
s
NV30
NV35
NV40
G70
G70-512
G71
G80
3.0 GHz
Intel Core2 Duo
Figura 1.1: Evolucin temporal del rendimiento de los UPG y UPC [31].
eran difciles de justicar y las ventajas de utilizar dichos servidores se vean compro-
metidas en poco tiempo debido a los constantes cambios en la tecnologa. Hoy en da,
los microprocesadores modernos pueden considerarse como computadores paralelos
capaces de realizar mltiples tareas de manera simultnea. Un ejemplo actual es el
reciente microprocesador Intel
TM
Core
TM
i7 el cual presenta 4 UPC, cada una de las
cuales es capaz de ejecutar el conjunto de instrucciones x86.
La segunda vertiente de diseo de microprocesadores se dene a partir del trmino
anglosajn many-core, el cual se centra principalmente en la ejecucin de aplicaciones
paralelas. Un ejemplo de esta alternativa es la Unidad de Procesamiento Grco
(UPG) de NVIDIA
TM
GeForce
TM
GTX 280 con hasta 240 ncleos. La arquitectura
de estos dispositivos presenta una gran capacidad de gestionar procesos de manera
compartida entre los diferentes ncleos y han aumentado el rendimiento de aplica-
ciones computacionales de precisin simple desde el 2003. En la Figura 1.1 se muestra
la evolucin temporal desde el 2003 del rendimiento de los UPC de NVIDIA
TM
com-
parada con la evolucin de los procesadores Intel
TM
. Cabe destacar que la decisin
de optar por este tipo de tecnologa no es exclusivamente fruto del alto rendimiento
previsto por la misma. Uno de los factores ms importantes a la hora de escoger esta
alternativa como una opcin para acelerar aplicaciones en ingeniera es la presencia
en el mercado de este tipo de dispositivos. Las UPG poseen un gran mercado en los
computadores de sobremesa, ya que aproximadamente cada ordenador debe albergar
uno de estos dispositivos, lo que conrma la idea de que la computacin paralela de
forma masiva ha llegado al mercado de masas. Por dar un ejemplo cualitativo, el
procesador de NVIDIA
TM
G80 super la cifra de 200 millones de unidades vendidas
en el 2010 [31]. Esta tendencia ha permitido la fabricacin de procesadores grcos
de alto rendimiento con bajos costes, por lo que esta tecnologa hoy en da est ri-
10 CAPTULO 1. INTRODUCCIN
valizando con aquellas presentes hasta la fecha en el rea de la computacin de alto
rendimiento. Uno de los ejemplos de esta revolucin es la nueva hegemona en el
ranking de las super computadoras TOP500. Este ranking se realiza por universi-
dades alemanas y estadounidenses de forma peridica y ha conrmado en su ltima
edicin en Noviembre de 2010 que el computador ms rpido del mundo situado en
el Centro Nacional de Supercomputacin de la ciudad de Tianjin (norte) es capaz de
desarrollar 2.670 billones de operaciones por segundo (2,67 petaops por segundo),
superando los 1,75 de la que hasta ahora ostentaba el primer lugar, el Cray Jaguar
estadounidense. El Tianhe 1A utiliza 4.336 CPUs Intel Xeon X5670 y 7.168 GPUs
NVidia Tesla M2050.
Otro de los motivos a destacar sobre la eleccin de la computacin mediante UPG
est relacionado con la actitud de diversas empresas como GE y Siemens frente a
este tipo de tecnologas. En particular estas empresas del sector de la biomedicina
han aplicado este tipo de tecnologa a la reduccin del hardware necesario para el
procesamiento de imgenes obtenidas a partir de resonancias magnticas. Este tipo
de aplicaciones presentan un elevado coste computacional que en el mbito de la
investigacin se llevaba a cabo mediante redes de ordenadores de hasta 64 nodos,
siendo inviable para aplicaciones mdicas. Inclusive, el Instituto Nacional de Salud
del Gobierno de los Estados Unidos de Amrica lleg a abandonar la nanciacin
de proyectos destinados a la computacin paralela ya que vaticinaron un impacto
negativo de productos basados en servidores instalados en aplicaciones sanitarias.
Hoy en da, las empresas del sector han recurrido a la tecnologa basada en las UPG
y las investigaciones en este campo se han retomado debido a la reduccin de costes
y el aumento de las prestaciones.
En concreto, acelerar mtodos numricos est siendo objeto de numerosas inves-
tigaciones por parte de la comunidad cientca, ya que el coste temporal de mtodos
como el de las DFDT puede ser reducido de manera drstica con el uso de nuevas
tcnicas de programacin paralela, tanto en el mbito de las UPC como en las UPG.
Por ello parte de este trabajo de investigacin se ha dedicado a la aplicacin de
tcnicas de programacin paralela a la computacin cientca
1.2. Objetivos
Esta Tesis Doctoral surge a partir de la motivacin expuesta y se enmarca en
el estudio, anlisis y optimizacin de medios peridicos en el campo del electromag-
netismo, y en particular en la ptica difractiva. El orden de magnitud de las longi-
tudes de onda entre otros factores complica el anlisis riguroso de estos elementos y
1.2 Objetivos 11
por ello resulta imprescindible desarrollar e implementar libreras software capaces
de simular estos dispositivos con un coste temporal aceptable y con exactitud.
El objetivo fundamental de este trabajo de investigacin es la implementacin de
un conjunto de mtodos numricos aplicados al anlisis electromagntico de medios
peridicos en longitudes de onda pticas. En particular se van a estudiar las RDH
y FCF. Para el caso concreto de las RDH analizadas, la periodicidad es de tipo
sinusoidal, mientras que para el caso de los FCF, son dispositivos constituidos por
una secuencia de capas dielctricas delgadas, cuyo patrn presenta una periodicidad
concreta. Las propiedades fsicas del dispositivo estn denidas directamente por el
conjunto de capas que constituyen dicho perodo elemental, por lo que el considerar
ms o menos perodos no vara el tipo de aplicacin del dispositivo en gran medida.
Se pretende caracterizar el comportamiento de los mismos en funcin de parmetros
fsicos como pueden ser la transmitancia, la reectancia, la sensibilidad angular, etc.
De entre todos los mtodos propuestos, en este trabajo de investigacin se ha
recurrido al mtodo DFDT para obtener el campo electromagntico en funcin del
tiempo y del espacio. Se ha optado por un mtodo numrico que permite resolver
las ecuaciones de Maxwell en el dominio del tiempo para poder obtener la mayor
cantidad de informacin posible, ya que a partir de la informacin temporal es directo
obtener el comportamiento espectral, mientras que los mtodos como MEF o MoM
no estn directamente ideados para obtener informacin temporal a travs de sus
anlisis. Para conseguir el objetivo propuesto ser necesario implementar el mtodo
numrico desde cero y recurrir a formalismos analticos clsicos que corroboren la
rigurosidad de la herramienta desarrollada. La implementacin completa del mtodo
permitir adaptarlo a las aplicaciones especcas que nos hemos propuesto, ya que
herramientas software comerciales presentan limitaciones y curvas de aprendizaje que
no son el objeto de un trabajo de investigacin de esta envergadura. Unos primeros
experimentos con redes de difraccin basadas en aperturas servirn para entrar en
contacto con el mtodo y comprobar su precisin y exactitud a la hora de simular
elementos pticos difractivos. Dichos experimentos son ampliamente conocidos, y
entre ellos cabe destacar el experimento de la doble rendija de Young, el cual es una
experiencia bsica en cualquier laboratorio de ptica elemental.
La aplicacin de diferentes mtodos numricos permitir contrastar y validar las
diferentes implementaciones y parmetros de la simulacin. Por lo tanto tambin es
un objetivo realizar una investigacin en formalismos analticos o numricos que pro-
porcionen soluciones exactas, que permitan validar los resultados obtenidos a partir
del mtodo numrico de las DFDT. Estos esquemas estn basados en formalismos
matriciales tradicionales y son ampliamente aceptados por la comunidad cientca,
como pueden ser la Teora de Ondas Acopladas (TOA), Teora Rigurosa de Ondas
Acopladas (TROA), Mtodo Matricial (MM) y el Mtodo de la Matriz Caracterstica
12 CAPTULO 1. INTRODUCCIN
(MMC).
Para aplicar con xito el DFDT ser necesario optimizar el mtodo numrico,
con el objetivo de reducir el tiempo de simulacin. Para ello se recurrir a una
implementacin paralela del algoritmo que obtenga el mximo partido de las UPC
modernas y de forma similar se considerar la implementacin paralela sobre las UPG
actuales. Aunque en ambos casos, una de las primeras condiciones para optimizar
un cdigo secuencial mediante paralelismo ser en primer lugar optimizar el pro-
pio cdigo secuencial, evitando malos hbitos de programacin y reorganizando las
operaciones teniendo en cuenta la arquitectura donde se va a ejecutar el algoritmo.
Respecto a la optimizacin a realizar en las UPC actuales, se aplicar una primera
aproximacin al paralelismo mediante el paradigma de programacin basado en op-
eraciones aritmticas elementales aplicadas sobre un grupo de datos, concepto iden-
ticado con el trmino anglosajn Single Instruction, Multiple Data (SIMD). Esta
tcnica es anloga al concepto de vectorizacin, y en ocasiones el uso de estos ope-
radores recibe el nombre de operadores o funciones intrnsecas del microprocesador.
Este juego de operadores fueron introducidos por Intel
TM
a partir del Pentium III
TM
motivado por el aumento del nmero de aplicaciones multimedia. En concreto per-
miten realizar operaciones aritmticas bsicas sobre conjuntos de cuatro valores en
simple precisin o dos en doble precisin proporcionando de manera terica una
mejora de cuatro y dos respectivamente comparado con la versin secuencial. Acto
seguido, se recurrir a paralelizar el algoritmo segmentando los datos a procesar y
distribuyndolos entre ms de un proceso. Para que este esquema sea eciente es
necesario evitar las dependencias entre los diferentes procesos, y de manera anloga
a la vectorizacin, el ratio terico es mximo cuando el nmero procesos es igual al
nmero de UPC disponibles en el microprocesador.
La implementacin numrica del mtodo de las DFDT sobre las UPG presen-
ta un cambio considerable respecto al paradigma de programacin secuencial. El
nmero elevado de ncleos que pueden computar al unsono una gran cantidad de
informacin implica una reformulacin completa del problema y un cambio sustan-
cial en la perspectiva a la hora de afrontar el problema en cuestin. Un conocimiento
exhaustivo de la arquitectura de las UPG es completamente necesario para poder
afrontar el problema con xito. Hasta el 2006, los procesadores grcos eran difciles
de programar ya que era necesario recurrir a libreras orientadas a la programacin
grca como OpenGL
TM
o Direct3D
TM
. Estas interfaces de usuario limitaban en
gran medida el rango de aplicaciones que se podan llegar a realizar con estos proce-
sadores e implicaban un gran esfuerzo por parte de los programadores. Para facilitar
la adaptacin y la comunicacin con estos dispositivos se ha recurrido a la interfaz de
programacin de aplicaciones propietaria de NVIDIA
TM
, identicado con el trmino
anglosajn Compute Unied Device Architecture (CUDA). El uso de esta tecnologa
1.3 Contenido y organizacin 13
en la computacin numrica ha demostrado que no todos los clculos en Ciencia e
Ingeniera se pueden adaptar de manera eciente a esta arquitectura, por ello, los
fabricantes a partir del interfaz de programacin CUDA permiten la realizacin de
clculos de manera conjunta entre UPC y UPG en una misma aplicacin.
1.3. Contenido y organizacin
El contenido de esta Tesis Doctoral se ha divido en diferentes captulos temticos
y autocontenidos. El Captulo 2 est dedicado a los mtodos matriciales desarrolla-
dos e implementados en este trabajo. Cada uno de estos mtodos presenta unas
hiptesis de partida y unas aproximaciones que delimitan el rango de aplicabilidad
de los mismos. Por lo que cada uno de ellos es introducido y aplicado a un tipo
concreto de problema fsico. Aunque de manera rigurosa, todos ellos no pueden ser
clasicados como mtodos exactos, a lo largo de este trabajo de investigacin se va a
recurrir a estos formalismos para validar los resultados obtenidos a partir del mto-
do numrico. De la misma manera, tampoco pueden considerarse mtodos analticos
en su totalidad, ya que en algunos casos, las expresiones cerradas que proporcionan
para la transmitancia o la reectancia son obtenidas a partir de desarrollos en se-
rie o similares. Por ello, se ha decidido clasicarlos como teora diferencial clsica
particularizada al anlisis de medios peridicos. En la mayora de los casos, suele
haber involucrada una matriz conformando un sistema de ecuaciones lineal que debe
resolverse mediante tcnicas convencionales.
En el Captulo 3 se introducen los conceptos bsicos y avanzados del mtodo
numrico basado en las DFDT. Se realizar un recorrido que parte de la versin
unidimensional hasta llegar a la versin tridimensional del mtodo. A lo largo de
este captulo se introducirn una serie de formalismos considerados necesarios para
la aplicacin de este mtodo a problemas de ptica difractiva.
En el Captulo 4 se detallan las estrategias utilizadas en la optimizacin com-
putacional del mtodo de las DFDT tanto en su ejecucin en UPC como en las UPG.
Asimismo, se introducir la arquitectura de ambas plataformas hardware para faci-
litar la comprensin de las decisiones tomadas para acelerar el mtodo numrico en
cada una de ellas.
Seguidamente, en el Captulo 5 se analizan los resultados obtenidos a partir de la
aplicacin de los diferentes mtodos numricos a los dispositivos pticos difractivos
considerados. En primer lugar se estudia la difraccin de la luz producida por redes
de difraccin de apertura mediante el mtodo de las DFDT. Los patrones de difrac-
cin obtenidos a partir del mtodo de las DFDT son contrastados con los tericos
14 CAPTULO 1. INTRODUCCIN
proporcionados por teoras bien conocidas en las regiones de Fresnel y Fraunhofer.
Estos resultados verican la correcta implementacin del mtodo numrico al mis-
mo tiempo que proporcionan una visin panormica de las posibilidades del mtodo
en el anlisis electromagntico de la luz en dispositivos pticos. A continuacin, se
presentan los resultados relacionados con el anlisis de la difraccin en RDH tan-
to de transmisin como en reexin. En ambos casos los valores numricos de la
reectancia y transmitancia obtenidos mediante el mtodo de las DFDT van acom-
paados de las curvas tericas calculadas a partir de mtodos clsicos como la TOA,
la TROA, y otros mtodos ms novedosos como pueden ser el MM basado en las fun-
ciones de Mathieu. Tambin se realizar un breve anlisis de dispositivos multicapa
como son los FCF; en concreto se analizarn diferentes conguraciones de lminas
de alta reectancia a partir de los datos numricos y analticos. Posteriormente, se
mostrarn los resultados obtenidos a partir de la optimizacin computacional en el
mtodo de las DFDT, tanto en la ejecucin en microprocesadores como en la versin
para procesadores grcos. Estos resultados sern proporcionados en trminos de
tiempo de ejecucin y de rendimiento en nmero de instrucciones por segundo, con
la nalidad de obtener un visin cuantitativa del grado de mejora introducido por
las estrategias de optimizacin consideradas.
Finalmente, en el Captulo 6 se presentan las conclusiones de esta Tesis Doctoral.
1.4. Publicaciones
Las publicaciones relacionadas con este trabajo son las siguientes:
Artculos en revistas
Francs, J., Bleda, S., Neipp, C., Mrquez, A., Pascual, I., Belndez, A., Per-
formance analysis of the FDTD method applied to holographic volume grat-
ings: multi-core CPU versus GPU computing, Computer Physics Communi-
cations
*
, Enviado.
Francs, J., Bleda, S., Neipp, C., Mrquez, A., Belndez, Pascual, I., Analysis
of reection gratings by means of a matrix method approach, Progress In
Electromagnetic Research

, Aceptado.
Francs, J., Prez-Molina, M., Bleda, S. Fernndez, E., Neipp, C., Belndez,
A. Educational Software for Interference and Optical Diraction Analysis in
*
Revistas indexadas en la base de datos JCR de Science Edition.
1.4 Publicaciones 15
Fresnel and Fraunhofer Regions Based on MATLAB GUIs and the FDTD
Method, IEEE Transactions on Education
*
, Aceptado.
Francs, J., Prez-Molina, M., Neipp, C., Belndez, A. Rigorous interference
and diraction analysis of diractive optic elements using the Finite-Dierence
Time-Domain method, Computer Physics Communications

, 181(12), 1963 -
1973, 2010.
Francs, J., Neipp, C., Prez-Molina, M., lvarez, M. L., Belndez, A. Apli-
cacin del algoritmo de las diferencias nitas en el dominio del tiempo en redes
de difraccin hologrcas, ptica Pura y Aplicada, 42(3), 139 - 145, 2009.
Comunicaciones y ponencias en congresos
Francs, J., Bleda, S., Gallego, S., Neipp, C., Mrquez, A., Pascual, I., Beln-
dez, A., Efecto de la resolucin espacial en el anlisis numrico de redes de
difraccin hologrcas,Reunin Bienal de la Real Sociedad de Fsica, 21
o
En-
cuentro Ibrico para la Ensaanza de la Fsica, 19-23 Septiembre 2011, San-
tander (Espaa).
Francs, J., Bleda, S., Gallego, S., Neipp, C., Mrquez, A., Pascual, I., Beln-
dez, A. Analysis of the diraction eciency of reection and transmission
holographic gratings by means of a parallel FDTD approach, SPIE Optical
Systems Design, 5 - 8 Septiembre 2011, Marseille (Francia).
Francs, J., Bleda, S., Gallego, S., Neipp, C., Mrquez, A., Pascual, I., Beln-
dez, A. Development of an unifed FDTD-FEM library for electromagnetic
analysis with CPU and GPU computing, Proceedings of the 11th Internation-
al Conference on Computational and Mathematical Methods in Science and
Engineering, CMMSE 2011, 26 - 30 Junio 2011, Benidorm (Espaa).
Francs, J., Neipp, C., Prez-Molina, M., Bleda, S., Belndez, A., Interfer-
ence and diraction analysis of holographic gratings using the Finite-Dierence
Time-Domain method, 2nd International Conference On Engineering Opti-
mization, 6-9 Septiembre 2010, Lisboa (Portugal) .
Francs, J., Neipp, C., Prez-Molina, M., lvarez, M. L., Belndez, A. Simu-
lacin de redes de difraccin de apertura mediante el mtodo de las diferencias
nitas en el dominio del tiempo, IX Reunin Nacional de ptica, 14-17 Sep-
tiembre 2009, Ourense (Espaa).
*
Revistas indexadas en la base de datos JCR de Science Edition.
16 CAPTULO 1. INTRODUCCIN
Francs, J., Prez-Molina, M., Fernndez, E., Neipp, C., Development of soft-
ware for interference and optical diraction analysis based on FDTD, 2009
International Conference on Enigineering and Mathematics.
Francs, J., Neipp, C., Prez-Molina, M., lvarez, M. L., Belndez, A., Apli-
cacin del algoritmo DFDT en redes de difraccin hologrcas, VI Reunin
Espaola de Optoelectrnica,15-17 Mayo 2009, Mlaga (Espaa).
Bibliografa
[1] J. C. Maxwell. A Dynamical Theory of the Electromagnetic Field. Philosophical
Transactions of the Royal Society of London, 155:459512, dec 1865.
[2] P. Yeh. Optical Waves in Layered Media. Wiley-Interscience, 2005.
[3] B. Salski, M. Celuch, y W. K. Gwarek. FDTD for Nanoscale and Optical
Problems. IEEE Microwave Magazine, 11(2):5059, 2010.
[4] A. Yariv y P. Yeh. Optical Waves in Crystals: Propagacion and Control of Laser
Radiation. Wiley-Interscience, 2003.
[5] T. Cao, M. J. Cryan, Y.-L. D. Ho, I. J. Craddock, y C. J. Railton. Fast-ligth
based pulse compression in 2-d photonic crystal waveguides. IEEE/OSA J.
Lightwave Technolo., 25(9):25902598, 2007.
[6] S. Fan, P. R. Villeneuve, J. D. Joannopoulos, M. J. Khan, C. Manolatou, y H. A
Haus. Theoretical analysis of channel drop tunneling processes. Phys. Rev. B,
59(24):1588215892, 1999.
[7] Y. Shi, D. Dai, y S He. Proposal for an ultracompact polarization-beam split-
ter based on a photonic-crystal-assisted multimode interference coupler. IEEE
Photon. Technol. Lett., 19(11):825827, 2007.
[8] O. Burmeister, M. Britzger, A Thring, D. Friedrich, F. Brckner, K. Danz-
mann, y R. Schnabel. All-reective coupling of two optical cavities with 3-port
diraction gratings. Opt. Express, 18(9):91199132, Apr 2010.
[9] T. Clausnitzer, E.-B. Kley, A. Tnnermann, A. Bunkowski, O. Burmeister,
K. Danzmann, R. Schnabel, S. Gliech, y A. Duparr. Ultra low-loss low-eciency
diraction gratings. Opt. Express, 13(12):43704378, Jun 2005.
[10] T. W. Stone. Selected Papers on Holographic and diractive lenses and mirrors,
volumen MS 34. SPIE Milestone Series, 1991.
18 BIBLIOGRAFA
[11] A. K. Richter y F. P. Carlson. Holographically generated lens. Applied Optics,
13:29242930, 1974.
[12] J. R. Magarios y F. P. Coleman. Holographic mirrors. Optical Engineering,
24:769780, 1985.
[13] S. Tibuleac, D. Wawro, y R. Magnuson. Resonant diractive structures in-
tegrating waveguide-gratings on optical ber endfaces. volumen 1, page 874,
1999.
[14] R. Esteban, M. Laroche, y J. J. Greet. Dielectric gratings for wide-angle,
broadband absorption by thin lm photovoltaic cells. Applied Physics Letters,
97(22):22111, 1999.
[15] M. A. Hembrecht. Optical coatings for mems devices. volumen 1, 2010.
[16] E. Denton. Reetors in shes. Sci. Am., 1(224):6472, 1971.
[17] D. Gabor. A new microscope principle. Nature, 161:777778, 1948.
[18] C. Fabry y A. Perot. Thorie et applications dune nouvelle mthode de spec-
troscopie interfrentielle. Ann. Chim. Phys., 16:869872, 1899.
[19] F. Shen y A. Wang. Fast-fourier-transform based numerical integration method
for the Rayleigh-Sommerfeld diraction formula. Appl. Opt., 45(6):11021110,
Feb 2006.
[20] G.. Lawrence y S.-H. Hwang. Beam propagation in gradient refractive-index
media. Appl. Opt., 31(25):52015210, Sep 1992.
[21] A. D. Papadopoulos y E.. Glytsis. Finite-dierence-time-domain analysis of
nite-number-of-periods holographic and surface-relief gratings. Appl. Opt., 47
(12):19811994, Apr 2008.
[22] C. M. Dissanayake, M. Premaratne, I. D. Rukhlenko, y G. P. Agrawal. Fdtd
modeling of anisotropic nonlinear optical phenomena in silicon waveguides. Opt.
Express, 18(20):2142721448, Sep 2010.
[23] D. M. H. Leung, B. M. A. Rahman, y K. T. V. Grattan. Numerical Analysis
of Asymmetric Silicon Nanowire Waveguide as Compact Polarization Rotator.
IEEE Photonics Journal, 3(3):381389, 2011.
[24] A. Taove. Computational Electrodynamics: The Finite-Dierence Time-
Domain Mehtod. Artech House Publishers, 1995.
BIBLIOGRAFA 19
[25] M. Clemens y T. Wiland. Discrete Electromagnetism with the Finite Inte-
gration Technique. En Proc. Progress. in Electromagnetics Research, PIERS,
volumen 32, pages 6587, 2001.
[26] C. Christopoulos. The Transmission-Line Modeling Method in Electromagnetics.
CA: Morgan and Claypool, primera edicin, 2006.
[27] L. Volakis, A. Chatterjee, y L. C. Kempel. Finite Element Methods for Electro-
magnetics with Applications to Antennas, Microwave Circuits and Scattering.
New York: IEEE Press, 1998.
[28] I. Munteanu, M. Timm, y T. Weiland. Its About Time. IEEE Microwave
Magazine, 11(2):6069, 2010.
[29] G. E. Moore. Progress in digital integrated electronics. pages 1113, 1975.
[30] H. Sutter y J. Larus. Software and the concurrency revolution. ACM Queue, 3
(7):5462, 2005.
[31] D. B. Kirk y W-M. W. Hwu. Programming Massively Parallel Processsors: A
Hands-on Approach. Morgan Kaufmann, 2010.
20 BIBLIOGRAFA
Captulo 2
Teora diferencial clsica en
medios peridicos
A lo largo de este captulo se van a introducir los conceptos bsicos de los mtodos
utilizados para el anlisis de los dispositivos pticos contemplados en este trabajo.
2.1. Teora de ondas acopladas
El anlisis de la difracin en RDH puede afrontarse en una primera aproximacin
mediante la TOA desarrollada por Kogelnik en sus trabajos [1, 2]. La TOA asume luz
monocromtica incidiendo en la red de difraccin cerca del ngulo de Bragg. Tambin
se asumen nicamente dos ondas, la onda de referencia R y la onda difractada S.
El resto de rdenes no son tomados en consideracin ya que fuera del ngulo de
Bragg dichos rdenes presentan una fuerte atenuacin. La Figura 2.1 muestra un
esquema de una red hologrca que sirve de referencia para el anlisis que se realiza
en esta seccin, donde se ilustra el eje z perpendicular al medio y el eje x en el
plano de incidencia y paralelo a la red. Las franjas de interferencia en el medio
presentan un ngulo respecto al eje z identicado como . El vector de red K est
orientado perpendicularmente a los planos de interferencia y su mdulo se dene
como K = 2/, donde es el perodo de red. El ngulo de incidencia en el medio
se identica como .
La propagacin de ondas en el interior de la red se puede modelar a partir de la
22 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
R
S

d
z
x

Figura 2.1: Esquema de una red de difraccin hologrca, donde con escala de gris se ha
representado la variacin de la permitividad relativa.
ecuacin de Helmholtz:

2
E(x, y) +k(x, y)
2
E(x, y) = 0, (2.1)
donde E(x, y) es la amplitud compleja de la componente y del campo elctrico,
la cual se asume independiente de dicha coordenada y con una frecuencia de os-
cilacin . Si denimos el plano de incidencia como el formado por el vector de
propagacin de la onda incidente y la normal exterior al medio, el campo elctrico
sera perpendicular a dicho plano mientras que el campo magntico estara denido
en un plano paralelo al de incidencia. Esta conguracin se conoce como incidencia
con polarizacin Transversal Elctrico (TE) [3]. La constante de propagacin k est
modulada espacialmente en funcin de la constante de permitividad relativa
r
y la
conductividad del medio como
k
2
=

2
c
2
0

r
j, (2.2)
donde c
0
es la velocidad de propagacin de la luz en el vaco y es la permeabilidad
magntica del medio considerada igual a la del vaco
0
como 410
7
H/m.
2.1 Teora de ondas acopladas 23
El patrn de interferencia induce en el material una variacin espacial en y
del tipo:

r
=
r0
+ cos (K x) , (2.3)
=
0
+ cos (K x) , (2.4)
donde y son las amplitudes de la modulacin espacial,
r0
es la constante
dielctrica promedio relativa y
0
es la conductividad promedio. Para simplicar la
notacin se ha recurrido a la siguiente formulacin:
x =
_
_
x
y
z
_
_
; K = K
_
_
sin
0
cos
_
_
; K = 2/. (2.5)
La expresin (2.2) puede reformularse teniendo en cuenta las ecuaciones (2.3)
y (2.4).
k
2
=
2
2j + 2
_
e
jKx
+e
jKx
_
, (2.6)
donde se han introducido las constantes de propagacin promedio y de absorcin
promedio :
= 2n
0
/; = c
0

0
/(2n
0
), (2.7)
donde n
0
es el ndice de refraccin promedio dentro de la red y la constante de
acoplamiento se ha denido como
=
1
4
_
2

/n
0
jc
0
/n
0
_
, (2.8)
siendo
0
la longitud de onda en espacio libre.
La constante describe el grado de acoplamiento entre la onda de referencia R y
la onda difractada S, y por lo tanto es uno de los parmetros ms relevantes dentro
de la TOA. Es fcil identicar que para = 0 no existe difraccin ya que no hay
acoplamiento entre R y S.
Tambin se considera que la absorcin por longitud de onda y las variaciones
relativas del ndice de refraccin son pequeas, y que:
2n
0
/
0
; 2n
0
/
0
; n
0
n. (2.9)
donde es la variacin espacial del constante de absorcin. Teniendo en cuenta
estos factores, la constante de acoplamiento se puede redenir como:
= n/
0
j/2. (2.10)
24 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
El campo elctrico total puede denirse como la superposicin de dos ondas complejas
R y S, las cuales intercambian energa entre s en funcin de los parmetros de
modulacin de la red: n y .
E = R(z)e
jx
+S(z)e
jx
. (2.11)
En este caso los vectores de propagacin y contienen la informacin sobre
las constantes de propagacin y las direcciones de las ondas R y S. El vector es
el vector de propagacin de la onda de referencia R y est denido por la red de
difraccin y se relacin con K de la forma:
= K =
_
_

x
0

z
_
_
=
_

_
sin
K

sin
0
cos
K

cos
_

_
. (2.12)
La relacin (2.12) se ilustra en la Figura 2.2 a partir de un conjunto de diagramas
vectoriales para los casos = 0
o
y = 90
o
. Ambos casos son los casos particulares
en los que la imagen reconstruida se produce por reexin o por transmisin respec-
tivamente.
Una vez llegados a este punto, estamos en disposicin de obtener las ecuaciones
diferenciales acopladas. Para ello combinamos las Ecuaciones (2.1) y (2.2) teniendo
en cuenta las relaciones (2.11) y (2.12):

2
R
z
2
2j
R
z

z
2jR + 2S = 0, (2.13)

2
S
z
2
2j
S
z

z
2jS + (
2

2
)S + 2R = 0. (2.14)
Si se considera que el intercambio de energa se realiza entre S y R, que la
absorcin del medio es pequea y que en ambos casos la velocidad de ambos procesos
es lenta, las segundas derivadas pueden despreciarse y se pueden deducir de manera
sencilla las siguientes igualdades:
c
R
R
z
+R = jS, (2.15)
c
S
S
z
+ ( +j)S = jR. (2.16)
En funcin de la relacin existente entre el valor del periodo de la red (distancia
entre los planos en los que las propiedades del material toman un mismo valor) y el
2.1 Teora de ondas acopladas 25
R
S

d
S
R
d

R
S
K

R
S
K

z
Red de transmisin
Red de reflexin
Figura 2.2: Esquema y diagrama vectorial asociado para una red de difraccin de trans-
misin (izquierda) y de reexin (derecha).
espesor d del material en el que se registra esta red, se distingue entre hologramas
delgados y hologramas de volumen. El parmetro Q, denominado de Klein-Cook [2]
proporciona una medida del grosor de la red a partir de la siguiente expresin:
Q =
2d
n
0

2
, (2.17)
donde n
0
es el ndice de refraccin promedio (relacionado directamente con la con-
stante dielctrica de la forma n
2
=
r
). Valores de Q < 1 se corresponden con redes
delgadas, mientras que valores de Q > 1 se corresponden con redes gruesas [4]. En
este trabajo nos centraremos en las redes de difraccin de volumen, ms concreta-
mente los valores de Q en las redes simuladas sern mayores a 10. Este parmetro
dene el rgimen de Bragg (red de volumen) para Q >> 10, para el cual esta teora
proporciona buenos resultados [1].
Las ecuaciones (2.15) y (2.16) se conocen como las ecuaciones de ondas acopladas
26 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
que son la base de la TOA. Los trminos c
R
y c
S
se denen como:
c
R
=
z
/ = cos , (2.18)
c
S
=
z
/ = cos
K

cos . (2.19)
El trmino indica la desviacin del ngulo de incidencia respecto al ngulo de Bragg
de la forma:
= K sin(
B
) K
2
/4n
0
, (2.20)
donde y representan las desviaciones en trminos de ngulo de incidencia y de
longitud de onda para el caso de incidencia prxima al ngulo de Bragg
B
denido
como:
cos (
B
) =
K
2n
0
k
0
=

0
2n
0

. (2.21)
Finalmente, la solucin de las ecuaciones acopladas puede obtenerse para el caso
concreto de redes de transmisin y redes de reexin. En concreto se asumir en
ambos casos redes de fase donde las constantes de prdidas sean nulas
0
= = 0
y que en todos los casos se cumple que Q >> 10 (redes de volumen), por lo que para
el caso concreto de redes por transmisin:
S(d) = j
_
c
R
c
S
_
1/2
e
j
sin
_

2
+
2
_
1/2
/
_
1 +
2
/
2
_
1/2
, (2.22)
= nd/(c
R
c
S
)
1/2
, (2.23)
= d/2c
S
. (2.24)
La expresin asociada para la eciencia en difraccin viene dada por la siguiente
igualdad:
=
[c
S
[
c
R
SS

= sin
2
_

2
+
2
_
/
_
1 +
2
/
2
_
. (2.25)
En la Figura 2.3 se muestran diferentes curvas para la eciencia en difraccin en
funcin del parmetro . Puede verse que para el caso de incidencia en ngulo de
Bragg ( = /2), la eciencia en difraccin es mxima. A medida que el ngulo de
incidencia se aleja del de Bragg se aprecia una relacin inversamente proporcional
entre el ancho del lbulo principal y la amplitud del lbulo secundario. Es fcil
deducir a partir de la expresin (2.25) que para incidencia en ngulo de Bragg, la
eciencia en difraccin es del tipo:
= [S(d)[
2
= sin
2
. (2.26)
Respecto al caso de redes de reexin se pueden obtener un conjunto similar a
las obtenidas para el caso de transmisin:
2.1 Teora de ondas acopladas 27
0 2 4 6 8
0
0.2
0.4
0.6
0.8
1
(rad)

=/2
=/4
=3/4
Figura 2.3: Selectividad angular y de longitud de onda para redes hologrcas de trans-
misin a partir del rendimiento en difraccin en funcin del parmetro , el cual mide la
desviacin respecto al ngulo de Bragg. Se han considerado tres valores para el parmetro
[1].
S =
_
c
R
c
S
_
1/2 _
j/ + (1
2
/
2
)
1/2
coth(
2

2
)
1/2
_
1
, (2.27)
= jnd/(c
R
c
S
)
1/2
, (2.28)
= d/2c
S
. (2.29)
La eciencia en difraccin para este tipo de redes viene dada por la siguiente
expresin:
=
[c
S
[
c
R
SS

= 1/
_
1 + (1
2
/
2
)/ sinh
2
_

2
_
1/2
_
. (2.30)
Y de manera similar, la Figura 2.4 muestra la eciencia en difraccin para redes
en reexin para diferentes valores del parmetro en funcin de . En este caso la
selectividad se ensancha a medida que aumenta . La ecuacin 2.30 puede reducirse
a la siguiente igualdad para ngulo de incidencia igual al de Bragg:
= [S(d)[
2
= tanh
2
(nd/
0
cos
B
) . (2.31)
28 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
0 2 4 6 8
0
0.2
0.4
0.6
0.8
1
(rad)

=/2 =3/2
=/4
Figura 2.4: Selectividad angular y de longitud de onda para redes hologrcas de reexin
a partir del rendimiento en difraccin en funcin del parmetro , el cual mide la desviacin
respecto al ngulo de Bragg. Se han considerado tres valores para el parmetro [1].
2.2. Teora rigurosa de ondas acopladas
La TOA sige en vigor y es utilizada en muchos estudios y trabajos en la actua-
lidad, aunque adolece de ciertas imprecisiones debido a las aproximacin e hiptesis
que la denen. Algunas de estas hiptesis se basan en despreciar los efectos de la
difraccin en los bordes y considera nulas las segundas derivadas de las amplitudes
de los campos y nicamente considera un orden difractado y transmitido.
La TROA analiza la difraccin producida por una onda plana electromagntica
incidente a una red de difraccin con ngulo arbitrario de incidencia y que est
situada entre el medio I y el medio III, tal y como se ilustra en la Figura 2.5. Este
formalismo puede aplicarse en los siguientes casos [57]:
Redes de difraccin hologrcas en aire o cualquier otro medio (
I
=
III
,=

II
).
Redes acstico-pticas (
I
=
III
=
II
).
Redes de acoplamiento utilizadas en ptica integrada (
I
,=
II
,=
III
,=
I
).
Tal y como se aprecia en la Figuras 2.1 y 2.5, el problema bajo estudio se basa
en el anlisis de una onda plana en incidencia oblicua con polarizacin TE, sobre
un medio dielctrico peridico y para este caso, sin prdidas. La variacin del ndice
2.2 Teora rigurosa de ondas acopladas 29
R

d
z
x

Medio II

Medio III

Medio I

Ondas difractadas
transmitidas
Ondas difractadas
reflejadas
0
-2
4
-1
0
1
2
3
-1
-2
1
Figura 2.5: Geometra de una red de difraccin hologrca que contempla los diferentes
rdenes difractados y transmitidos [5].
de permitividad dielctrica relativa en el medio II puede reformularse de manera
sencilla a partir de las expresiones (2.3) y las relaciones en (2.5) de la siguiente
forma:

II
(x, z) =
r0
+ cos [K (xsin +z cos )] . (2.32)
Los valores de la constante dielctrica en los medios I y III toman los valores de
I
y
III
respectivamente.
El problema reside en encontrar la solucin de la ecuacin de onda (2.1) en cada
una de las tres regiones para aplicar las condiciones de contorno relacionadas con la
continuidad del campo elctrico y magntico tangencial en las dos interfases (z = 0
y z = d) que permitan resolver el sistema de ecuaciones planteado. En la regin I
se localizan las ondas reejadas, y que por lo tanto se propagan en direccin z
junto con la onda incidente. Estas ondas se producen por la difraccin generada en
el interior de la red de difraccin (bulk diraction) y por la propia discontinuidad
presente en z = 0 (boundary diraction). Estos dos procesos producen en espectro
de ondas que viajan hacia el interior de la regin I (z < 0) que pueden expresarse a
30 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
partir de la siguiente expresin:
E
I
= e
j[(k
x0
x+k
I
z0
z)]
+

n
R
n
e
j[(k
xn
xk
I
zn
z)]
, (2.33)
donde k
xn
= k
I
sin nK sin siendo n un entero que identica el nmero de
orden, k
l
zn
=
_
k
2
l
k
2
xn
con l = I, III que identica el medio y k
l
= 2n
l
/
0
con l = I, II, III. Para el caso particular del medio I, k
I
zn
=
_
k
2
I
k
2
xn
y k
I
=
2n
I
/
0
, con n
I
deniendo el ndice de refraccin en dicho medio. Los trminos R
n
se corresponden con la amplitud normalizada del modo n-simo reejado, y forma el
conjunto de variables que deben obtenerse a partir de la aplicacin de las condiciones
de contorno de los campos.
Respecto a la regin III (z > d) el espectro de ondas transmitidas puede denirse
de la siguiente forma:
E
III
=

n
T
n
e
j[k
xn
x+k
III
zn
(zd)]
, (2.34)
donde k
III
zn
= k
l
zn
con l = III, por lo que k
III
zn
=
_
k
2
III
k
2
xn
y se relaciona con el
medio III a partir del nmero de onda k
III
= 2n
III
/
0
, siendo n
III
el ndice de
refraccin para el medio III. De forma similar, las amplitudes normalizadas T
n
se
corresponden con las incgnitas a resolver a partir de las condiciones de contorno en
la interfase entre los medios II y III.
En la regin peridica (II) el campo elctrico puede denirse a partir de la
siguiente serie innita:
E
II
=

n
S
n
(z)e
jk
xn
x
. (2.35)
Por otro lado, el nmero de onda puede desarrollarse en armnicos de Fourier de
la siguiente forma:
k
2
=

n=
k
2
n
e
jnKx
. (2.36)
Por lo que sustituyendo la expresin (2.34) en (2.1) considerando la relacin
(2.36)

n=

2
S
n
(z)
z
2
e
jk
xn
x

n=
k
2
xn
S
n
(z)e
jk
xn
x
+ (2.37)

m=

p=
k
2
m
S
p
(z)e
j[(k
kp
mK)x]
= 0, (2.38)
2.2 Teora rigurosa de ondas acopladas 31
donde a partir de un cambio de variable y simplicando trminos se puede llegar a
la siguiente ecuacin que modela el acoplamiento entre diferentes rdenes y que es
la base de la TROA:

2
S
n
(z)
z
2
k
2
xn
S
n
(z) +

p=
k
2
np
S
p
(z) = 0. (2.39)
La ecuacin (2.39) puede reformularse en forma matricial tal y como sigue:
S

= [K
x
2


K]S, (2.40)
donde S

y S son vectores de 2N + 1 las, y la prima denota la derivada respecto


la coordenada z. La matriz K
x
es una matriz diagonal con los valores de k
xn
y la
matriz

K son las componentes de Fourier de la expresin (2.36) y que se sitan
en la diagonal y adyacentes a la misma. Para el caso de redes de difraccin con
patrn sinusoidal, nicamente tendramos dos coecientes alrededor de la diagonal y
el trmino de continua, mientras que para perles ms complejos, se podran tomar
hasta p coecientes.
A continuacin se particulariza la expresin (2.39) para el caso de una red de
difraccin hologrca con variacin de la permitividad de tipo sinusoidal y sin incli-
nacin = 0:

2
S
n
(z)
z
2
k
2
xn
S
n
(z) +k
2
0
_

2
S
n1
(z) +
r0
S
n
(z) +

2
S
n+1
(z)
_
= 0. (2.41)
De manera sencilla se pueden identicar los trminos de las matrices K
x
y

K:
K
x
=
_

_
k
xN
0 0
0
.
.
.
0
.
.
.
.
.
. k
x0

.
.
.
.
.
. 0
.
.
.
0
0 0 k
x(N)
_

_
, (2.42)

K = k
2
0
_

r0
/2 0 0
/2
r0
/2 0
0 /2
r0
/2 0
.
.
. 0 /2
r0
/2
.
.
. 0 /2
r0
_

_
. (2.43)
32 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
El sistema de ecuaciones diferenciales planteado en (2.40) puede resolverse de
manera directa en trminos de los autovalores y autovectores de la matriz K
x
2


K.
S
i
(u) =

m
C
m
w
im
e
q
m
u
, (2.44)
donde u = jz/2
0
n, q
m
son los autovalores y w
im
es el elemento m-simo de la
la de matriz de autovectores. A continuacin se aplican las condiciones de contorno
que se basan en la continuidad de las componentes tangenciales del campo elctrico
y magntico en los planos z = 0 y z = d. Para el caso concreto de z = 0, tenemos el
siguiente par de relaciones:
R
i
+
i0
=

m
C
m
w
im
, (2.45)
k
I
zi
(R
i

i0
) =

m
C
m
w
im
(q
m
k
II
zi
), (2.46)
para z = d:
T
i
=

m
C
m
w
im
e
j(q
m
k
II
z
)d
, (2.47)
k
III
z
T
i
=

m
C
m
w
im
(q
m
k
II
zi
)e
j(q
m
k
II
zi
)d
, (2.48)
donde
i0
la la delta del Kronecker, denida como:

i0
=
_
1 i = 0
0 i ,= 0
(2.49)
Se puede eliminar T
i
y R
i
de estas ecuaciones y obtener la siguiente igualdad:
2
i0
k
I
zi
=

m
C
m
w
im
(k
II
zi
q
m
+k
I
zi
), (2.50)
0 =

m
C
m
w
im
(k
II
zi
q
m
k
III
zi
)e
jq
m

. (2.51)
El sistema lineal de ecuaciones formado por las ecuaciones (2.50) y (2.51) permite
resolver las incgnitas C
m
y posteriormente las amplitudes de los rdenes difractados
R
i
y T
i
a partir de las ecuaciones (2.46) y (2.47).
Finalmente las eciencias en difraccin pueden calcularse a partir de las siguientes
expresiones:
DE
I
i
= '
_
k
I
zi
k
III
z0
_
R
i
R

i
, (2.52)
DE
III
i
= '
_
k
III
zi
k
III
z0
_
T
i
T

i
, (2.53)
2.3 Mtodo matricial basado en las funciones de Mathieu 33
donde ' denota la parte real.
2.3. Mtodo matricial basado en las funciones
de Mathieu
El anlisis terico de redes de difraccin inclinadas necesita de formalismos aa-
didos a los vistos hasta el momento debido a que la TOA y la TROA son vlidas
para cualquier ngulo de incidencia y para ngulos de inclinacin de las franjas de
interferencia distinto a cero ( ,= 0). Para este caso concreto, las franjas de interfer-
encia son paralelas al plano de incidencia, constituyendo lo que se conoce como una
red de difraccin hologrca de reexin pura. En este tipo de conguraciones, la
modulacin no es peridica de manera rigurosa ya que en la red hay nmero nito de
perodos, por lo que las expresiones (2.33)-(2.35) no son vlidas ya que son deduci-
das a partir del teorema de Floquet [6], el cual es vlido para estructuras peridicas
innitas. Aun as, segn detalla Moharam y Gaylord el anlisis con la TROA de
redes de reexin puede llevarse a cabo considerando un ngulo de inclinacin del
vector de red ( = ), siendo un valor muy pequeo. A medida que tiende a cero,
tanto las ondas reejadas en el medio I y las transmitidas en el medio III tienden a
superponerse ya que presentan prcticamente el mismo vector de onda k
xi
k
1
sin
y k
l
zi

_
(2n
l

0
)
2
k
2
xi
con l = I, III. Por ello, es necesario recurrir a otros for-
malismos que modelen de una manera ms precisa el comportamiento de este tipo
de dispositivos.
Recientemente, Carretero et al en su trabajo publicado en 2006 [8], aplican un
mtodo matricial para evaluar la transmitancia para el caso unidimensional de una
red de difraccin en reexin en incidencia normal. Este tipo de mtodos se han
utilizado con anterioridad en medios estraticados y bsicamente la idea se basa
en denir una matriz que caracterice el medio y que relacione las componentes del
campo magntico de ambos extremos de la capa. La adicin de capas puede modelarse
por una simple multiplicacin de matrices elementales. En nuestro caso particular,
el mtodo se aplica al anlisis del campo electromagntico en redes de difraccin
hologrcas no inclinadas para cualquier ngulo de incidencia. Para ello, se calcula
la matriz que caracteriza este tipo de redes a partir de dos soluciones particulares de
la ecuacin de Helmholtz [9].
De la misma manera que para el caso de la TOA y la TROA partimos del anlisis
de una red hologrca con variacin sinusoidal no inclinada, por lo que la variacin
en el medio se dene a partir de expresin (2.3) teniendo nicamente en cuenta la
dependencia respecto al eje z.
34 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
La geometra del problema se ilustra en la Figura 2.5 para el caso de = 0 y de
manera similar que para el caso de la TROA, para polarizacin TE los campos en
los medios I y III se denen tal y como sigue:
E
I
=
_
exp(jk
I
z
z) +Rexp(k
I
z
z)

exp(j(k
x
x t)), (2.54)
E
III
= T exp(jk
III
z
z) exp(j(k
x
x t)), (2.55)
donde k
x
es la componente en el eje x del vector de onda;
k
x
= n
I
k
0
sin
I
= n
III
k
0
sin
III
, (2.56)
donde
I
and
III
son los ngulos que forman la normal de los planos de incidencia
de la red de difraccin y los vectores de onda en los medios I y III respectivamente.
De manera sencilla se puede identicar la siguiente relacin para las componentes en
z del vector de onda:
k
I
z
= n
I
k
0
cos
I
, (2.57)
k
III
z
= n
III
k
0
cos
III
. (2.58)
Sin embargo, en el interior de la red (medio II) el campo puede denirse a partir
de la siguiente expresin:
E
II
= E(z) exp[i(k
x
x t)]. (2.59)
2.3.1. Formacin de la matriz
En el interior del medio peridico, E(z) verica la siguiente ecuacin diferencial
de segundo orden:
d
2
E
dz
2
+
_
k
2
0
(z) k
2
x
_
E = 0. (2.60)
Supongamos las soluciones de la ecuacin (2.60) E
c
1
, E
c
2
linealmente independientes.
Suponiendo para este caso que el medio se extiende desde z = z
1
to z = z
2
, la matriz
de capa Mpuede denirse siguiendo el razonamiento propuesto por Lekner [9], el cual
relaciona los campos y sus derivadas en ambos extremos (denidos por la coordenada
z) de la siguiente forma:
_
E(z
2
)
d
dz
E(z
2
)
_
= M
_
E(z
1
)
d
dz
E(z
1
)
_
, (2.61)
o
_
E(z
2
)
d
dz
E(z
2
)
_
=
_
m
11
m
12
m
21
m
22
__
E(z
1
)
d
dz
E(z
1
)
_
, (2.62)
2.3 Mtodo matricial basado en las funciones de Mathieu 35
donde M tiene la forma de:
M = W
1
_

_
d
dz
E
c
1
, E
c
2
_
(E
c
1
, E
c
2
)

_
d
dz
E
c
1
,
d
dz
E
c
2
_ _
E
c
1
,
d
dz
E
c
2
_
_
, (2.63)
W = E
c
1
d
dz
E
c
2
E
c
2
d
dz
E
c
1
. (2.64)
siendo W el Wronskiano de dos soluciones independientes, el cual es constante.
Adems si se considera que la matriz de capa M es unimodular y las siguientes
relaciones:
(E
c
1
, E
c
2
) = E
c
1
(z
1
)E
c
2
(z
2
) E
c
2
(z
1
)E
c
1
(z
2
), (2.65)
_
d
dz
E
c
1
, E
c
2
_
= E
c
2
(z
2
)
d
dz
E
c
1
(z
1
) E
c
1
(z
2
)
d
dz
E
c
2
(z
1
), (2.66)
_
E
c
1
,
d
dz
E
c
2
_
= E
c
1
(z
1
)
d
dz
E
c
2
(z
2
) E
c
2
(z
1
)
d
dz
E
c
1
(z
2
), (2.67)
_
d
dz
E
c
1
,
d
dz
E
c
2
_
=
d
dz
E
c
1
(z
1
)
d
dz
E
c
2
(z
2
)
d
dz
E
c
2
(z
1
)
d
dz
E
c
1
(z
2
), (2.68)
la matriz de capa M que caracteriza la red de difraccin no inclinada, puede cons-
truirse a partir de las dos soluciones independientes de la ecuacin (2.60) y teniendo
en cuenta las relaciones (2.63) y (2.64)-(2.68).
2.3.2. Solucin en trminos de las funciones de Mathieu
Para obtener el conjunto de dos soluciones linealmente independientes de la
ecuacin (2.60), se puede deducir de manera sencilla que a partir de transforma-
ciones sencillas puede obtenerse la ecuacin de Mathieu [10]:
d
2
du
E + [a 2q cos (2u)] E = 0, (2.69)
teniendo en cuenta los siguientes cambios de variable:
u =
Kz
2
, (2.70)
a =
4
K
2
_
k
2
0

r
0
k
2
x
_
, (2.71)
q =
2
K
2
k
2
0

r
1
. (2.72)
Las dos soluciones linealmente independientes de la ecuacin (2.69) estn denidas
por las funciones coseno y seno de Mathieu, como C
m
(a, q, u) y S
m
(a, q, u) respecti-
vamente. En la Figura 2.6 se representan ambas funciones en funcin del parmetro
u y para q = 1.
36 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
C
m
(a, q, 0) = 1 ;
d
dz
C
m
(a, q, 0) = 0,
S
m
(a, q, 0) = 0 ;
d
dz
S
m
(a, q, 0) = 1.
(2.73)
0 10 20 30 40 50 60 70 80 90
-1.5
-1
-0.5
0
0.5
1
1.5
u
C
m
0 10 20 30 40 50 60 70 80 90
-1.5
-1
-0.5
0
0.5
1
1.5
u
S
m
a=0
a=2
a=3
a=4
a=5
a=1
a=2
a=3
a=4
a=5
(a)
(b)
a=1
Figura 2.6: Funciones de Mathieu C
m
y S
m
para q = 1, en funcin del parmetro a denido
por la ecuacin (2.73). (a) Funciones par. (b) Funciones impar.
Por lo tanto cualquier solucin de la ecuacin (2.60) puede expresarse en trminos
de las funciones de Mathieu:
E(z) = AC
m
(a, q, Kz/2) +BS
m
(a, q, Kz/2), (2.74)
donde A y B son constantes arbitrarias. Llegado a esto punto se puede redenir la
matriz M presente en la ecuacin (2.60) en trminos de:
E
c
1
= C
m
(a, q, Kz/2), (2.75)
E
c
2
= S
m
(a, q, Kz/2). (2.76)
2.3 Mtodo matricial basado en las funciones de Mathieu 37
2.3.3. Condiciones de contorno
Para el caso particular de una red de difraccin en reexin de espesor d, los val-
ores de reectancia y transmitancia pueden obtenerse a partir de las relaciones (2.62),
(2.54) and (2.55), con z
1
= 0 y z
2
= d.
_
T exp(ik
II
z
d)
jk
II
z
T exp(ik
II
z
d)
_
= M
_
1 +R
jk
I
z
[1 R]
_
. (2.77)
De esta manera las amplitudes de los rdenes reejados y transmitidos pueden cal-
cularse a partir de las siguientes expresiones:
R =
k
I
z
k
II
z
m
12
+m
21
+ik
I
z
m
22
ik
II
z
m
11
k
I
z
k
II
z
m
12
m
21
+ik
I
z
m
22
ik
II
z
m
11
, (2.78)
T = exp(ik
II
z
d)
2ik
I
z
k
I
z
k
II
z
m
12
m
21
+ik
I
z
m
22
ik
II
z
m
11
(2.79)
Finalmente, la eciencia del orden reejado DE
1
puede calcularse como:
DE
1
= [R[
2
, (2.80)
y la eciencia del transmitido como:
DE
0
= '
_
k
II
z
k
I
z
_
[T[
2
. (2.81)
2.3.4. Estructura de bandas
En esta seccin se va a detallar el razonamiento que muestra como el anlisis de
un nico perodo de la red proporciona informacin suciente de la estructura global.
Para ello, redenimos la matriz Mcomo la matriz de capa de un nico perodo, la
cual se dene a partir de la ecuacin (2.63) particularizada para z
1
= 0 y z
2
= . Ya
que una red de reexin se constituye con un nmero nito de perodos, por ejemplo
N, la estructura global puede denirse a partir de la N-sima potencia de M. Para
el caso de una matriz unimodular se verica la siguiente relacin [11]:
M
T
=
_
m
11
m
12
m
21
m
22
_
N
=
_
m
11
S
N
S
N1
m
12
S
N
m
21
S
N
m
22
S
N
S
N1
_
, (2.82)
donde
S
N
=
sin(N)
sin()
, (2.83)
38 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
y
cos =
1
2
(m
11
+m
22
) . (2.84)
En consecuencia, las eciencias de los rdenes transmitido y el reejado pueden
obtenerse siguiendo el mismo procedimiento detallado en la seccin 2.3.3, sustituyen-
do la matriz M por la matriz M
T
de la ecuacin (2.82). Este procedimiento nos
proporciona una alternativa robusta para el clculo de las eciencias de redes de
difraccin hologrcas de reexin no inclinadas.
De manera sencilla, se puede realizar un anlisis de la estructura de bandas de
este tipo de redes a partir de la informacin de un nico perodo, a partir de su
matriz de capa, tal y como se detalla en el trabajo de Lekner. Tal y como se detalla
en dicho trabajo [9] el factor de block puede determinarse a partir de la condicin
det (MI) = 0. (2.85)
Considerando trM= 2 cos , la ecuacin (2.84), y det(M) = 1:

= cos
_
cos
2
1
_
1/2
. (2.86)
Los lmites de las bandas estn denidos por cos
2
= 1, mientras que la desigual-
dad cos
2
> 1 proporciona las bandas gap de la red de difraccin. En consecuencia,
la condicin trM= 2 delimita los extremos de la banda.
Para nuestro caso en particular:
trM=
1
W
_

_
dE
c1
dz
, E
c2
_
+
_
E
c1
,
dE
c2
dz
__
, (2.87)
donde E
c1
y E
c2
se detallan en las ecuaciones (2.75) y (2.76).
Considerando una modulacin de ndice pequea ( 0), en (2.72) podemos
aproximar q a cero. Para este caso [12]:
E
c1
= C
m
(a, q, Kz/2) cos
_
aKz/2
_
, (2.88)
E
c2
= S
m
(a, q, Kz/2) sin
_
aKz/2
_
. (2.89)
Por lo que evaluando la traza de M en el intervalo [0, ]:
_
dE
c1
dz
, E
c2
_
=

aK
2
cos
_
aK/2
_
, (2.90)
_
E
c1
,
dE
c2
dz
_
=

aK
2
cos
_
aK/2
_
, (2.91)
W(0) = W() =

aK
2
. (2.92)
2.4 Teora del medio equivalente 39
Por ello, la ecuacin (2.87) puede reescribirse como:
trM= 2 cos
_
a
_
. (2.93)
Donde de la ecuacin (2.93) puede deducirse fcilmente que [trM[ 2 y por lo
tanto que no existen bandas prohibidas, pero s una fuerte reexin en los lmites
de la banda jados por trM= 2, que recurriendo a la relacin (2.93) se obtiene la
siguiente condicin:
cos
_
a
_
= 1

a = 1, (2.94)
por lo tanto, de la ecuacin (2.71):
2
K
_
k
2
0

r0
k
2
x
= 1, (2.95)

n
0
cos
B
=

cos
B
=

2n
0

, (2.96)
donde
B
es el ngulo de incidencia en el interior del medio peridico y n
0
=

r0
.
La relacin (2.96) es exactamente la condicin de Bragg para redes de difraccin
no inclinadas. Aunque, cabe destacar que para obtener la identidad (2.96) se ha
despreciado el efecto de la modulacin de ndice, se debe de tener en cuenta que
la condicin de Bragg es de carcter geomtrico y que no presenta inuencias de la
variacin relativa de la constante de permitividad relativa. Por ello, la ecuacin (2.96)
puede considerarse vlida para cualquier valor de .
En la Figura 2.7 se muestra la parte real de (parte imaginaria nula), as como la
reectancia en funcin del ngulo de incidencia para una red de reexin con perodo
= 0,2 m, espesor d = 15 m y modulacin de ndice n = 0,025. La longitud de
onda incidente es de 633 nm. La curva correspondiente con la reectancia muestra
un mximo en la banda prohibida, la cual est relacionada con el ngulo de Bragg
de la red.
2.4. Teora del medio equivalente
En esta seccin se detalla el procedimiento terico utilizado para analizar dis-
positivos pticos de tipo estraticado. Un ejemplo de estos elementos son los FCF,
los cuales se basan en un conjunto de capas dielctricas que en la mayora de los
casos presentan una periodicidad en la direccin del vector de onda de la onda de
40 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
-80 -60 -40 -20 0 20 40 60 80
0
0,2
0,4
0,6
0,8
1
-80 -60 -40 -20 0 20 40 60 80
0
0,7
1,4
2,1
2,8
3,5
()
DE
-1
R()
D
E
-
1

(
a
.
n
)
R
(

)

(
r
a
d
)

Figura 2.7: Parte real de y de la reectancia en funcin del ngulo de incidencia. Parmet-
ros de la red: = 0,2 m, d = 15 m, n = 0,025 y = 633.
incidencia. El ndice de refraccin de las capas suele alternarse entre ndices elevados
(n
H
) e ndices bajos (n
L
) que proporcionan caractersticas interesantes en los haces
transmitidos y reejados. A continuacin se detallar el esquema terico utilizado
para analizar estos elementos y tambin se explicar como se aplica a medios estra-
ticados y para el caso concreto de redes de difraccin hologrca, cuya variacin es
del tipo sinusoidal.
2.4.1. Matriz caracterstica
El mtodo de la matriz caracterstica se basa en denir una matriz que rela-
cione los campos elctricos y magnticos en ambos extremos de una capa dielctrica
homognea. Este esquema se ilustra en la Figura 2.8.
En esta seccin se introduce la notacin a seguir para el anlisis de este tipo de
problemas donde el smbolo + es indicativo de ondas que se propagan en direccin
positiva del eje z y el smbolo ondas que se propagan en direccin negativa en el
mismo eje. Si consideramos las componentes tangenciales del campo y asumimos la
ausencia de ondas viajando en el sentido negativo del eje z en el substrato, podemos
2.4 Teora del medio equivalente 41
n
1
Capa delgada
Interfase a
Interfase b
Medio incidente
Substrato
Normal al plano
de incidencia
Grosor de
la capa
n
0
n
s
d
z

0
Figura 2.8: Esquema ilustrativo donde se representa la incidencia de una onda plana sobre
una capa delgada.
denir el siguiente conjunto de relaciones:
E
b
= E
+
1b
+E

1b
, (2.97)
H
b
=
q
1
E
+
1b

q
1
E

1b
, (2.98)
donde
q
i
es la admitancia en el medio i, y q indica el tipo de polarizacin TM o TE.
Considerando la nomenclatura utiliza en [13], las admitancias pueden particularizarse
para ambas polarizaciones de la siguiente forma:

TM
i
= n
r
/ cos
i
, (2.99)

TE
i
= n
r
cos
i
, (2.100)
(2.101)
con representando la admitancia en el vaco ( = 2, 6544 10
3
). Para el ca-
so concreto mostrado en la Figura 2.8 el ndice i toma el valor unitario, ya que
nicamente realizamos el anlisis sobre una nica capa. Cabe destacar que en las ex-
presiones (2.97) y (2.98) se han omitido los trminos de fase comunes. Desarrollando
ambas expresiones en trminos de ondas progresivas y regresivas, se pueden deducir
las siguientes ecuaciones:
E
+
1b
=
1
2
_
H
b

q
i
+E
b
_
, (2.102)
E

1b
=
1
2
_

H
b

q
i
+E
b
_
, (2.103)
H
+
1b
=
q
1
E
+
1b
=
1
2
(H
b
+
q
1
E
b
) , (2.104)
H

1b
=
q
1
E
+
1b
=
1
2
(H
b

q
1
E
b
) . (2.105)
Los campos en los mismos puntos x e y en la interfase a pueden obtenerse a
partir de la adicin de un trmino de fase que desplace en la coordenada z desde 0
42 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
a d. La ondas progresivas y regresivas presentaran una fase proporcional a
e
j
, (2.106)
con
= 2n
1
d cos
1
/
0
, (2.107)
donde tanto como
1
pueden ser complejos. El ngulo
1
se relaciona con el ngulo

0
denido en la Figura 2.8 a travs de la ley de Snell. Para la interfase a, se pueden
denir los campos a partir de las expresiones (2.102)-(2.105),
E
+
1a
= E
+
1b
e
j
=
1
2
_
H
b

q
i
+E
b
_
e
j
, (2.108)
E

1a
= E

1b
e
j
=
1
2
_

H
b

q
i
+E
b
_
e
j
, (2.109)
H
+
1a
= H
+
1b
e
j
=
q
1
E
+
1b
=
1
2
(H
b
+
q
1
E
b
) e
j
, (2.110)
H

1a
= H

1b
e
j
=
q
1
E
+
1b
=
1
2
(H
b

q
1
E
b
) . (2.111)
Aplicando las ecuaciones (2.97) y (2.98) sobre la interfase a y teniendo en cuen-
ta (2.108)-(2.111) podemos realizar el siguiente procedimiento:
E
a
= E
+
1a
+E

1a
= E
b
_
e
j
+e
j
2
_
+H
b
_
e
j
+e
j
2
q
1
_
= E
b
cos +H
b
j sin

q
1
, (2.112)
H
a
= H
+
1a
+H

1a
= E
b

q
1
_
e
j
+e
j
2
_
+H
b
_
e
j
+e
j
2
_
= E
b
j
q
1
sin +H
b
sin, (2.113)
Las ecuaciones (2.112) y (2.113) se pueden expresar en forma matricial de la
siguiente forma:
_
E
a
H
a
_
=
_
cos (j sin)/
q
1
j
q
i
sin cos
_ _
E
b
H
b
_
. (2.114)
Donde las componentes transversales de E y H son continuas en los interfases y no
existe onda regresiva en el substrato. La ecuacin (2.114) relaciona las componentes
2.4 Teora del medio equivalente 43
tangenciales de E y H en la regin a con los transmitidos en el plano b. La matriz
22 denida en (2.114) recibe el nombre de matriz caracterstica de la capa.
Dado que habitualmente se desea obtener la reectancia de un sistema como el
mostrado en este punto entre el vaco y la capa dielctrica, debemos recurrir a la
denicin bsica del coeciente de reexin :
=

0
Y

0
+Y
, (2.115)
donde Y es la admitancia de las componentes transversales del campo Y = H
a
/E
a
.
De manera directa, la reectancia puede calcularse a partir del coeciente de reex-
in:
R =
_

0
Y

0
+Y
__

0
Y

0
+Y
_

, (2.116)
Para poder calcular este parmetro de manera ms directa, se puede realizar una
normalizacin de la ecuacin (2.114) respecto de la componente tangencial del campo
elctrico E
b
[14]:
_
E
a
/E
b
H
a
/E
b
_
=
_
B
C
_
=
_
cos (j sin)/
q
1
j
q
i
sin cos
_ _
1

q
2
_
. (2.117)
Es fcil interpretar los trminos B y C como las amplitudes normalizadas del
campo elctrico y magntico en la interfase a y que nos permiten analizar las carac-
tersticas de la capa ya que:
Y =
H
a
E
a
=
C
B
=

q
2
cos +j
q
1
sin
cos +j(
q
2
/
q
1
) sin
, (2.118)
2.4.2. Extensin a medios estraticados
El procedimiento para obtener la matriz caracterstica de capa para el caso de
mltiples capas es similar al mostrado en la seccin 2.4.1. De manera sencilla vamos a
estudiar el caso mostrado en la Figura 2.9 en el que se ha aadido una capa adicional
respecto al caso de la Figura 2.8.
La matriz caracterstica para la nueva capa est denida como:
_
cos
2
(j sin
2
)/
q
2
j
q
2
sin
2
cos
2
_
, (2.119)
44 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
n
1
Interfase a
Interfase b
Medio incidente
Substrato
n
0
n
2
d
1
d
2
n
s
Interfase c
Figura 2.9: Notacin para el caso de dos capas dielctricas.
y de la expresin (2.114) puede denirse la relacin entre los campos en el plano b y
c:
_
E
b
H
b
_
=
_
cos
2
(j sin
2
)/
q
2
j
q
2
sin
2
cos
2
_ _
E
c
H
c
_
. (2.120)
Por lo que se puede aplicar de nuevo la ecuacin (2.114) para relacionar los planos a
y c.
_
E
a
H
a
_
=
_
cos
1
(j sin
1
)/
q
1
j
q
1
sin
1
cos
1
_ _
cos
2
(j sin
2
)/
q
2
j
q
2
sin
2
cos
2
_ _
E
c
H
c
_
, (2.121)
y de manera anloga a la obtencin de la relacin (2.117) se pueden obtener los
coecientes B y C para esta estructura:
_
B
C
_
=
_
cos
1
(j sin
1
)/
q
1
j
q
1
sin
1
cos
1
_ _
cos
2
(j sin
2
)/
q
2
j
q
2
sin
2
cos
2
_ _
1

q
3
_
. (2.122)
Este resultado puede extenderse al caso general para k capas, ya que la matriz
caracterstica del conjunto se obtiene a partir del producto de las matrices carac-
tersticas de cada una de las capas:
_
B
C
_
=
_
k

r=1
_
cos
r
(j sin
r
)/
q
r
j
q
r
sin
r
cos
r
_
_
_
1

q
s
_
, (2.123)
donde

r
=
2n
r
d
r
cos
r

0
. (2.124)
El clculo de los ngulos
r
puede realizarse a partir los ndices de refraccin de cada
capa (n
r
) y del substrato (n
s
) aplicando la ley de Snell:
n
0
sin
0
= n
r
sin
r
= n
s
sin
s
. (2.125)
2.4 Teora del medio equivalente 45
A partir de este procedimiento pueden obtenerse tanto la transmitancia como la
reectancia construyendo la matriz caracterstica del dispositivo compuesto por la
yuxtaposicin de capas de dielctrico.
R =
_

0
B C

0
B +C
__

0
B C

0
B +C
_

, (2.126)
T =
4
0
'
q
s

(
0
B +C)(
0
B +C)

. (2.127)
En la Figura 2.10 se muestran algunos ejemplos de la aplicacin del mtodo a ca-
sos prcticos. En todos los casos, las curvas se han contrastado con las proporcionadas
en la bibliografa con el propsito de realizar una primera etapa de validacin de la
formulacin.
2.4.3. Aplicacin a redes de difraccin hologrcas en re-
exin
El mtodo del medio efectivo surge de aplicar el mtodo de la matriz caracterstica
a medios que no estn constituidos de manera directa mediante capas delgadas y
homogneas. Si consideramos el caso concreto de una red de difraccin hologrca
de fase en reexin ( = 0
o
) (vase esquema en la Figura 2.1), se aprecia que el patrn
de interferencia en el medio es de tipo cosenoidal, por lo que la aproximacin mediante
capas delgadas y homogneas puede llevarse a cabo mediante una discretizacin del
medio. Existen precedentes de esta tcnica para el caso de redes de difraccin de
transmisin de tipo binarias [15], donde = 90
o
y el medio en el interior de la
red se aproxima mediante desarrollos en serie por una matriz caracterstica como la
mostrada en la ecuacin (2.122).
En nuestro caso, la idea es utilizar en una primera instancia este mtodo para
el anlisis de redes de difraccin hologrcas de reexin, donde el vector de red es
transversal al plano de incidencia y de manera sencilla, el patrn cosenoidal de la
red puede aproximarse por un conjunto de capas delgadas, tal y como se ilustra en
la Figura 2.11.
Para el caso ilustrado en la Figura 2.11, cada perodo de red se representa a par-
tir de cuatro muestras, cumpliendo el teorema de muestreo de Nyquist-Shannon [16].
El nmero total de matrices a considerar en la expresin (2.121) ser el entero ms
cercano a 4d/. Aunque el mtodo es bastante similar al detallado en la seccin 2.3,
46 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
0.7 0.8 0.9 1 1.1 1.2 1.3
0
5
10
15
20
25
30
/
0
R
(
%
)
0 0.5 1 1.5 2
0
20
40
60
80
100
R(%) 2 Capas
T(%) 2 Capas
R(%) 3 Capas
T(%) 3 Capas
/
0
(a)
(b)
60-TE
30-TE
0
30-TM
60-TM
E
f
i
c
i
e
n
c
i
a

(
%
)
Figura 2.10: Ejemplo de aplicacin del mtodo de la matriz caracterstica sobre varios
casos prcticos: (a) Rendimiento terico para dos lminas anti-reectantes. El sistema de
2 capas est compuesto por las siguientes lminas de un cuarto de longitud de onda: n
1
=
1,587, n
2
= 2,52; mientras que para el caso de 3 capas: n
1
= 1,587, n
2
= 2,0 y n
3
= 2,52.
En ambos casos el substrato presenta un ndice de refraccin de n
s
= 4 [14]. (b) Clculo de
la reectancia para varios ngulos de incidencia para un sistema compuesto por una capa
con ndice n = 2,2 sobre un substrato con n = 4,0.
2.4 Teora del medio equivalente 47
0 0,5 1 1,5 2
1,55
1,6
1,65
z (m)
1,7
n
Figura 2.11: Variacin del ndice de refraccin en una red de reexin en funcin del eje
z, el cual es normal al plano de incidencia de la red. Mediante crculos se representan los
valores discretizados de la red para el caso de aproximar el patrn de interferencia mediante
un conjunto de capas delgadas de longitud /4.
el uso de este mtodo es interesante a la hora de comparar la precisin entre el mto-
do numrico DFDT, TROA y el MM, ya que la discretizacin realizada en el mtodo
numrico y en esta aplicacin particular es muy similar.
48 CAPTULO 2. TEORA DIFERENCIAL CLSICA EN MEDIOS PERIDICOS
Bibliografa
[1] H. Kogelnik. Coupled wave theory for thick hologram gratings. The Bell System
Technical Journal, 48:29092947, November 1969.
[2] H. Kogelnik. Bragg diraction in hologram gratings with multiple internal re-
ections. J. Opt. Soc. Am., 57(3):431433, 1967.
[3] M. Born y E. Wolf. Principles of Optics. Pergamon, Oxford, UK, 6
a
edicin,
1980.
[4] P. Hariharan. Basics of Holography. Cambridge University Press, 2001.
[5] M. G. Moharam y T. K. Gaylord. Rigurous coupled-wave analysis of planar-
grating diraction. Journal of the Optical Society of America, 71(7):811818,
1981.
[6] M. G. Moharam y T. K. Gaylord. Coupled-wave analysis of reection gratings.
Applied Optics, 20(2):240244, 1981.
[7] M. G. Moharam y T. K. Gaylord. Rigorous coupled-wave analysis of metallic
surface-relief gratings. J. Opt. Soc. Am. A., 3(11):17801787, 1986.
[8] L. Carretero, M. Prez-Molina, P. Acebal, S. Blaya, y A. Fimia. Matrix method
for the study of wave propagation in one-dimensional general media. Optics
Express, 14(23):1138511391, 2006.
[9] J. Lekner. Theory of Reection Of Electromagnetic and Particle Waves. Kluwer
Academic Publishers Group, 1987.
[10] G. Blanch. Handbook of Mathematical Functions with Formulas, Graphs, and
Mathematical Tables, chapter 20, pages 722748. Dover Publications, 1972.
[11] F. Abeles. Optics of thin lms in Advanced Optical Techniques. North-Holland
Publishing Co., Amsterdam, 1967.
50 BIBLIOGRAFA
[12] D. Frenkel y R. Portugal. Algebraic Methods to Compute Mathieu Functions.
J. Phys. A: Math. Gen., 3(17):35413551, 2001.
[13] C. A. Balanis. Advanced Engineering Electromagnetics. New York: Wiley, 1989.
[14] H. A. Macleod. Thin-Film Optical Filters. Institute of Physics Publishing, 2001.
[15] X. Jing y Y. Jin. Transmittance analysis of diraction phase gratings. Applied
Optics, 50(9):1118, 2010.
[16] J. G. Proakis y D. G. Manolakis. DIGITAL SIGNAL PROCESSING: Princi-
ples, Algorithms and Applications. Prentice Hall, New Jersey, USA, 1996.
Captulo 3
Mtodo de las Diferencias Finitas
en el Dominio del Tiempo
En este captulo, se presentan las bases de la formulacin del mtodo de las DFDT
desde el caso de una dimensin hasta el el caso tridimensional pasando por el caso
bidimensional. Antes de estudiar los problemas bi y tridimensional, se introducirn
conceptos relacionados con la fuente de excitacin, las condiciones de frontera y la
propagacin en medios dielctricos. Esta estructura permitir abordar dichos concep-
tos de manera sencilla para los casos 2-D y 3-D, ampliando la formulacin explicada
previamente.
3.1. Formulacin FDTD para el caso 1-D
Consideremos inicialmente una regin libre de fuentes, dentro de la cual pueden
existir materiales que absorban energa de tipo elctrica o magntica. En esta situacin,
las ecuaciones de Maxwell en su forma diferencial se pueden expresar de la siguiente
manera [1, 2]:

D
t
=
1

0
_
H

E
_
, (3.1)

D() =

r
()

E, (3.2)
H
t
=
1


E

m

0
H, (3.3)
52
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
donde
0
es la permitividad dielctrica en faradios por metro,

r
es la permitividad
dielctrica relativa compleja,
0
es la permeabilidad magntica en el vaco en henrios
por metro,
m
es la resistividad magntica equivalente en ohmios por metro y es la
conductividad elctrica en siemens por metro. El vector desplazamiento elctrico est
representado por

D que al igual que el campo elctrico

E, han sido normalizados
respecto a la impedancia intrnseca del vaco
0
, denida como
_

0
/
0
:

E =
_

0
E, (3.4)

D =
_
1

0
D, (3.5)
donde E, es el vector campo elctrico denido en voltios por metro y H es el vector
de campo magntico denido en amperios por metro.
El par de ecuaciones denidas en (3.1) y (3.3) denira un sistema de seis ecua-
ciones escalares, tres por cada variable vectorial asociadas a las tres coordenadas
espaciales. El caso ms simple se correspondera con una onda plana con el campo
elctrico orientado en el eje x y el campo magntico polarizado en el y, y propagn-
dose a lo largo del eje z en el vaco.

E
x
t
=
1

0
H
y
, (3.6)
H
y
t
=
1


E
x
. (3.7)
Aproximando mediante diferencias centrales tanto las derivadas espaciales como
temporales, podemos reescribir ambas ecuaciones tal y como sigue:

E
x
[
n+1/2
k


E
x
[
n1/2
k
t
=
1

0
H
y
[
n
k+1/2
H
y
[
n
k1/2
x
, (3.8)
H
y
[
n+1/2
k+1/2
H
y
[
n+1/2
k+1/2
t
=
1

E
x
[
n
k+1


E
x
[
n
k1
x
. (3.9)
En ambas ecuaciones, el tiempo est denido mediante el superndice entero n,
donde t = t n. El subndice entero k representa las celdas en la coordenada z,
por lo que la distancia en dicho eje se dene como z = x k. A lo largo de esta
Tesis Doctoral y cuando se haga referencia al mtodo de las DFDT, siempre se usar
esta notacin, donde el superndice dene la variable temporal y los subndices las
variables espaciales.
Las ecuaciones (3.8) y (3.9) describen una estructura entrelazada de las compo-
nentes E y H tanto en el espacio como en el tiempo. En la gura 3.1 se aprecia
3.1 Formulacin FDTD para el caso 1-D 53
como para la descripcin del campo magntico H se utilizan los subndices k 1/2
y k + 1/2 para indicar que los valores de H se encuentran entre valores de E. Es-
ta idea se representa en la Figura 3.1, donde se sitan las componentes del campo
electromagntico en el espacio y en el tiempo de manera discreta.
z = 0
t = 1,5t
H
y
H
y
H
y
E
z
E
z
E
z
E
z
H
y
H
y
H
y
E
z
E
z
E
z
E
z
t = t
t = 0,5t
t = 0
z = z z = 2z z = 3z
Figura 3.1: Entrelazado de las componentes E
z
y H
y
en el espacio y en el tiempo
0 20 40 60 80 100
-0,5
0
0,5
Celdas
E
x

(
A
/
m
)
0 20 40 60 80 100
-0,5
0
0.5
Celdas
H
y

(
A
/
m
)
(a)
(b)
Figura 3.2: Simulacin de un pulso introducido en la celda 50 propagndose hacia los
extremos (n = 150). (a) Campo elctrico. (b) Campo magntico.
Reorganizando trminos en (3.8) y en (3.9), podemos obtener un conjunto de
ecuaciones que pueden ser resueltas de manera iterativa. En la Figura 3.2 se muestra
un ejemplo de un pulso propagndose en el espacio libre. El pulso se ha introducido
en el centro del mallado y la simulacin se ha detenido en la iteracin nmero 150. Los
campo elctrico y magntico representados en las Figuras 3.2a y b respectivamente,
permiten identicar la direccin de propagacin del pulso a lo largo de la malla de
54
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
simulacin.

E
x
[
n+1/2
k
=

E
x
[
n1/2
k

1

0
t
x
_
H
y
[
n
k+1/2
H
y
[
n
k1/2
_
, (3.10)
H
y
[
n+1
k+1/2
= H
y
[
n1
k+1/2

0
t
x
_

E
x
[
n+1/2
k+1


E
x
[
n+1/2
k1
_
. (3.11)
3.1.1. Condicin de estabilidad
La relacin entre la resolucin temporal (t) y espacial (x) puede ser deter-
minada de manera intuitiva a partir del caso unidimensional. Una onda electromag-
ntica que se propaga en el vaco, necesita un tiempo como mnimo de t = x/c
0
para recorrer una celda, siendo c
0
la velocidad de propagacin de la luz en el vaco.
Para el caso bidimensional, tenemos que tener en cuenta la propagacin en diagonal
a travs de la celda, lo cual implica que el tiempo necesario por la onda en atraves-
ar la celda aumenta, siendo t = x/(2

2c
0
), para el caso de que x = y. De
manera anloga, se puede obtener la misma relacin para el caso tridimensional que
requiere una resolucin temporal de t = x/(

3c
0
). En general la relacin que
deben vericar x y t para que se garantice la estabilidad del algoritmo, se conoce
como condicin de Courant [3, 4]:
t
x

pc
0
, (3.12)
donde p es el nmero de dimensiones en la simulacin.
Por simplicidad, se utilizar la siguiente expresin para nuestras simulaciones,
tanto en 1-D, 2-D y 3-D.
t
x
2c
0
. (3.13)
Llegado a este punto, teniendo en cuenta la relacin (3.13) y simplicando los
trminos que multiplican al campo magntico en (3.10) y al campo elctrico (3.11)
se obtiene la siguiente relacin
1

0
t
x
= c
0
x/2 c
0
x
=
1
2
. (3.14)
Para el caso de un medio homogneo y sin prdidas, las ecuaciones (3.10) y (3.11)
se pueden replantear de una manera ms sencilla:

E
x
[
n+1/2
k
=

E
x
[
n1/2
k
0,5
_
H
y
[
n
k+1/2
H
y
[
n
k1/2
_
, (3.15)
H
y
[
n+1
k+1/2
= H
y
[
n1
k+1/2
0,5
_

E
x
[
n+1/2
k+1


E
x
[
n+1/2
k1
_
. (3.16)
3.1 Formulacin FDTD para el caso 1-D 55
Determinar la relacin entre la resolucin temporal y espacial del algoritmo, para
que ste sea estable, conlleva unos anlisis ms extensos, los cuales se pueden hallar
en [3].
3.1.2. Insercin de ondas incidentes
Se conoce como el mtodo de fuente dura (hard source[1]-[3]) a la asignacin
de una funcin analtica conocida a una de las variables del campo en una zona
del mallado, sin tener en cuenta los valores previos obtenidos por el algoritmo. La
designacin de fuente dura viene dada por el hecho de que en cada iteracin del
algoritmo el valor del campo obtenido en la regin de iluminacin es substituido por
el de la fuente. Para el caso de un problema unidimensional con polarizacin TE, el
campo elctrico E
z
puede ser jado en un punto del mallado (i
s
) con el valor de una
funcin analtica conocida. El primer tipo de funcin a tratar es el de una funcin
armnica de frecuencia f
0
:
E
z
[
n
i
s
= E
0
sin(2f
0
nt). (3.17)
Otro tipo de fuente dura usada con frecuencia en este tipo de problemas es la de
un pulso Gaussiano de espectro limitado centrado en el instante de tiempo n
0
y de
cada para n
decay
iteraciones de 1/e.
E
z
[
n
i
s
= E
0
e
[(nn
0
)/n
decay]
2
. (3.18)
El tercer tipo de fuente dura utilizada en este trabajo, tiene como ventaja que puede
evitar las componentes en continua presentes en la fuente Gaussiana desplazando el
espectro de la misma a una frecuencia de inters dada por f
0
.
E
z
[
n
i
s
= E
0
e
[(nn
0
)/n
decay]
2
sin(2f
0
(n n
0
)t). (3.19)
Este tipo de fuentes se propagan por igual en todas las direcciones del espacio desde
el punto de iluminacin (i
s
).
Las fuentes duras se comportan como conductores perfectos ante las ondas que
puedan llegar al punto i
s
debido a reexiones o scattering. Para evitar reexiones
indeseadas en el punto de excitacin, se utilizan las fuentes blandas (soft source) que
permiten a las ondas atravesar la celda al mismo tiempo que se introduce la fuente de
excitacin. Las fuentes blandas son aquellas que no jan un valor al campo, sino que
se aade al valor previamente calculado. La siguiente expresin modela el mtodo
de iluminacin mencionado, siendo E
fuente
z
[
n
i
s
cualquiera de funciones anteriormente
mencionadas (3.17)-(3.19).
56
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
E
z
[
n
i
s
= E
z
[
n1
i
s
+E
fuente
z
[
n
i
s
. (3.20)
3.1.3. Condiciones de frontera para una dimensin
Las Condiciones de Frontera Absorbentes (CFA) se aplican en los bordes del malla
de simulacin para evitar que las reexiones de los campos E y H vuelvan hacia el
interior. El algoritmo de las DFDT calcula iterativamente los valores de E a partir
de los valores almacenados de H (de manera anloga ocurre lo mismo con el campo
H), esto deja de ser posible en los extremos, ya que en los puntos inmediatamente
externos a la malla de simulacin, los valores del campo son desconocidos y tomados
arbitrariamente como nulos. En la gura 3.3 se muestra la simulacin del mismo pulso
anteriormente mostrado en la gura 3.2 para T = 150, pero ahora para el instante
T = 250, donde se aprecian las reexiones en los bordes del mallado viajando de
nuevo hacia el punto central del mallado.
0 20 40 60 80 100
-0,5
0
0,5
Celdas
E
x

(
A
/
m
)
0 20 40 60 80 100
-0,5
0
0,2
Celdas
H
y

(
A
/
m
)
(a)
(b)
Figura 3.3: Simulacin de un pulso propagndose en espacio libre para T = 250. Para
este instante de tiempo, el pulso ya ha llegado al extremo del mallado y vuelve debido a la
reexin.
Para que los campos en los lmites sigan propagndose hacia el innito, se hace
uso de las ABC. Estas herramientas se basan principalmente en anular el campo en
los extremos para que las reexiones sean mnimas. Para el caso de una dimensin, y
3.1 Formulacin FDTD para el caso 1-D 57
teniendo en cuenta la relacin vista en (3.13), una onda electromagntica propagn-
dose a velocidad c
0
, hara uso de dos pasos temporales para recorrer una celda. Por
ello, se pueden cancelar los campos mediante las expresiones (3.21) y (3.22) en ambos
extremos tal y como puede apreciarse en la gura 3.4.
E
x
[
n
0
= E
x
[
n2
1
, (3.21)
E
x
[
n
N
= E
x
[
n2
N1
. (3.22)
0 10 20 30 40 50 60 70 80 90 100
0
0,2
0,4
0 10 20 30 40 50 60 70 80 90 100
0
0,2
0,4
0 10 20 30 40 50 60 70 80 90 100
0
0,2
0,4
Celdas
(a)
(b)
(c)
E
x

(
A
/
m
)
E
x

(
A
/
m
)
E
x

(
A
/
m
)
-0,1
0,5
-0,1
0,5
-0,1
0,5
Figura 3.4: Propagacin del pulso en espacio libre con ABC en los extremos. a) t = 150t.
b) t = 190t. c) t = 210t
3.1.4. Propagacin en medios dielctricos
La constante dielctrica y la conductividad de la mayora de los materiales varan
en funcin de la frecuencia. Una de las caractersticas ms importantes del algo-
ritmo FDTD es la posibilidad de simular este tipo de materiales. En el rango de
las longitudes pticas, los fenmenos de polarizacin en los materiales dielctricos
son ocasionados por polarizacin dipolar o tambin denominada orientacional. Este
comportamiento es diferente al que nos podemos encontrar en longitudes de onda de
microondas debidos a polarizacin inica o electrnica.
58
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
Para el caso que nos ocupa, en las longitudes de onda pticas, los fenmenos de
dispersin se han descartado y se han llegado a simular materiales dielctricos con
prdidas pero con caractersticas estticas en funcin de la frecuencia. Para simular
medios dielctricos se recurre a la forma ms general de las ecuaciones de Maxwell
(3.1)-(3.3) [1, 2].
Cabe destacar que la expresin (3.2) est denida en el dominio de la frecuencia.
Por ello, es necesario transformar dicha expresin al dominio temporal para poder
aplicar el algoritmo de las DFDT. Si modelamos un medio dielctrico de la forma

r
(w) =
r
+

jw
0
, (3.23)
donde
r
es la constante dielctrica relativa y es la conductividad dada en siemens
por metro, podemos redenir (3.2) a partir de (3.23) particularizada para una onda
plana polarizada en x:

D
x
(w) =
r


E
x
(w) +

j
0

E
x
(w). (3.24)
En el caso del primer trmino de la ecuacin, no es difcil establecer su representacin
en el dominio temporal. Por otro lado, el segundo trmino presenta un trmino 1/j
en el dominio de la frecuencia. Segn la teora de Fourier el trmino 1/j puede
trasladarse al dominio temporal mediante una integral denida, por ello la expresin
(3.24) podra reescribirse de la siguiente forma:

D
x
(t) =
r


E
x
(t) +

0
_
t
0

E
x
(t

)dt

. (3.25)
De manera sencilla, podemos convertir la integral continua en un sumatorio:

D
x
[
n
k
=
r
[
k


E
x
[
n
k
+
[
k
t

0
n

i=0

E
x
[
i
k
., (3.26)
ya que

E y

D estn denidas en t = n t nos encontramos con el inconveniente
de que necesitamos el valor de

E
x
[
n
k
en el sumatorio para obtener el de

D
x
[
n
k
. Para
resolver esta situacin, basta con extraer del sumatorio el ltimo trmino y reescribir
la expresin en funcin de

E
x
[
n
k
:

D
x
[
n
k
=
r
[
k


E
x
[
n
k
+
[
k
t

E
x
[k
n
+
[
k
t

0
n1

i=0

E
x
[
i
k
, (3.27)

E
x
[
n
k
=

D
x
[k
n

|
k
t

n1
i=0

E
x
[
i
k

r
[
k
+
|
k
t

0
. (3.28)
3.1 Formulacin FDTD para el caso 1-D 59
De esta manera, podemos obtener el valor actual del campo elctrico

E
x
[
n
k
a partir
de los valores previos del campo y del vector desplazamiento elctrico. Para hacer
ms sencillo la compresin del algoritmo se recurre a una variable para la integracin,
I
x
[
n
k
=
[
k
t

0
n

i=0

E
x
[
i
k
, (3.29)
que permite reformular la expresin (3.28) de una forma ms compacta:

E
x
[
n
k
=

D
x
[
n
k
I
x
[
n1
k

r
[
k
+
|
k
t

0
, (3.30)
I
x
[
n
k
= I
x
[
n1
k
+
[
k
t

E
x
[
n
k
. (3.31)
En la gura 3.5, se muestra la propagacin de un pulso gaussiano que incide en
un medio de constante dielctrica
r
= 2 y de constante de prdidas = 0,01. Se
aprecia el efecto de las prdidas a medida que el pulso penetra en el medio dielctrico.
0 20 40 60 80 100 120 140150
0
0,5
1
Celdas
(a)
0 20 40 60 80 100 120 140 150
0
0,5
1
(b)
0 20 40 60 80 100 120 140 150
0
0,5
1
(c)
Fuente

r
= 2
= 0,01 S/m
Fuente
Fuente
-0,5
-0,5
-0,5
E
x

(
A
/
m
)
E
x

(
A
/
m
)
E
x

(
A
/
m
)
Figura 3.5: Propagacin del pulso que incide en un medio dielctrico. El plano de comienzo
del medio dielctrico est situado a 50 celdas del plano de excitacin en i
s
= 20x. a)
t = 150t. b) t = 220t. c) t = 280t
60
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
3.2. Formulacin FDTD para el caso 2-D
A partir de las ecuaciones de Maxwell anteriormente descritas en las ecuaciones
(3.1), (3.2) y (3.3) podemos obtener seis componentes del campo:

E
x
,

E
y
,

E
z
, H
x
,
H
y
y H
z
. El nmero de componentes del campo involucradas en en el problema
bidimensional pueden ser reducidas a tres componentes para los casos TE con

E
z
, H
x
y H
y
o Transversal Magntico (TM) con H
z
,

E
x
y

E
y
, considerando el plano xy como
referencia [5, 6]. En esta seccin se trabajar por comodidad con polarizacin TE,
aunque de manera similar se pueden extender los principios a la polarizacin TM.
Las ecuaciones de Maxwell para el caso TE, presentan las siguientes componentes:

D
z
t
=
1

0
_
H
y
x

H
x
y
_
, (3.32)

D
z
(w) =

r
(w)

E
z
(w), (3.33)
H
x
t
=
1

0
_

E
z
y
_
, (3.34)
H
y
t
=
1

0
_

E
z
x
_
. (3.35)
Al igual que para el caso de una dimensin, es necesario un entrelazado entre las
componentes de campo elctrico y magntico. Esta conguracin se muestra en la
Figura 3.6, que ilustra la celda de Yee para el caso 2-D.
i -1 i i+1
x
y
j+1
j
j -1
E
z
E
z
E
z
E
z
E
z
E
z
E
z
E
z
E
z
H
y
H
y
H
y
H
y
H
y
H
y
H
x
H
x
H
x
H
x
H
x
H
x
H
x
H
x
H
x
Figura 3.6: Celda de Yee para la formulacin TE en el caso bidimensional.
3.2 Formulacin FDTD para el caso 2-D 61
El anlisis detallado de la celda de Yee ([3] y [1]) se tratar con ms detalle en
el apartado 3.3.
Las ecuaciones (3.32), (3.33), (3.34) y (3.35) segn la red mostrada en la Figura
3.6 pueden reescribirse como siguen.

D
z
[
n+1/2
i,j
=

D
z
[
n1/2
i,j
+
t

0
_
H
y
[
n
i+1/2,j
H
y
[
n
i1/2,j
x

H
x
[
n
i,j+1/2
H
x
[
n
i,j+1/2
y
_
, (3.36)

E
z
[
n+1/2
i,j
= G
az
[
i,j
_

D
z
[
n+1/2
i,j
I
z
[
n+1/2
i,j
_
, (3.37)
I
z
[
n+1/2
i,j
= I
z
[
n1/2
i,j
+G
bz
[
i,j


E
z
[
n+1/2
i,j
, (3.38)
H
x
[
n+1
i,j+1/2
= H
x
[
n
i,j+1/2

0
_

E
z
[
n+1/2
i,j+1


E
z
[
n+1/2
i,j
y
_
, (3.39)
H
y
[
n+1
i+1/2,j
= H
y
[
n
i+1/2,j
+
t

0
_

E
z
[
n+1/2
i+1,j


E
z
[
n+1/2
i,j
y
_
. (3.40)
Las relaciones entre D
z
y E
z
son las mismas que las mostradas en (3.30), pero ex-
tendidas al problema TE bidimensional. La variable G
az
contiene para cada posicin
del espacio las caractersticas del medio en relacin a la permitividad (), resolucin
temporal y prdidas (), mientras que la variable G
bz
contiene nicamente informa-
cin sobre las prdidas y la resolucin temporal.
G
az
[
i,j
=
1

r
[
i,j
+
|
i,j
t

0
, (3.41)
G
bz
[
i,j
=
[
i,j
t

0
. (3.42)
A modo de ejemplo, se ilustra en la Figura 3.7 una secuencia de la simulacin de
un pulso propagndose en espacio libre. En la Figura 3.7a, muestra la distribucin del
campo elctrico para t = 20t y la perturbacin producida por la fuente puntual en
el centro de la malla. En la Figura 3.7b, se representa el campo elctrico en el instante
temporal t = 50t. Para este caso en concreto, se aprecia como el campo originado
por la fuente puntual se propaga hacia los extremos de la malla de simulacin.
62
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
0
1
2
3
4
1
2
3
4
-0,05
0
0,05
0,1
0,15
a)
E
z

(
V
/
m
)
1
2
3
4
0
1
2
3
4
-0,06
-0,04
-0,02
0
0,02
0,04
0,06
b)
x (m)
x (m)
y (m) y (m)
Figura 3.7: Simulacin de un pulso propagndose en un mallado bidimensional. a) t =
20t. b) t = 50t.
3.2.1. Dispersin numrica
El fenmeno de la dispersin es sobradamente conocido y se maniesta cuando
la velocidad de fase de los diferentes modos diere de la velocidad del vaco c
0
.
El mtodo de las DFDT presenta una dispersin inherente ocasionada al evaluar
las ecuaciones aproximadas (3.36)-(3.40) para calcular las componentes del campo
electromagntico. Dichas expresiones se han obtenido a partir de la aproximacin en
diferencias nitas de las derivadas presentes en las ecuaciones de Maxwell.
Esta dispersin presenta una dependencia con la longitud de onda, la direccin
de propagacin en el interior de la celda y la resolucin espacial. Intuitivamente, se
puede interpretar que el algoritmo DFDT simula las componentes del campo con la
interaccin de las ondas en un medio de constante dielctrica muy cercana a la del
vaco, pero no igual. Este fenmeno causara la acumulacin de retardos que pueden
ocasionar resultados carentes de signicado fsico tal y como deformaciones en la
forma de onda y pseudorefraccin entre otros. Para obtener expresiones analticas
que relacionen la dispersin con los parmetros fsicos anteriormente mencionados,
se considerar rgimen permanente sinusoidal, propagacin de ondas planas en solu-
ciones TE y diferentes ngulos de incidencia. La problemtica de la dispersin para
3.2 Formulacin FDTD para el caso 2-D 63
tres dimensiones se puede obtener directamente a partir del siguiente razonamiento,
obteniendo relaciones muy similares.
Suponiendo ondas monocromticas, se puede denir el siguiente juego de ecua-
ciones para el caso TE:
E
z
[
n
I,J
= E
z
0
e
j(

k
x
Ix+

k
y
Jynt)
, (3.43)
H
x
[
n
I,J
= H
x
0
e
j(

k
x
Ix+

k
y
Jynt)
, (3.44)
H
y
[
n
I,J
= H
y
0
e
j(

k
x
Ix+

k
y
Jynt)
, (3.45)
donde

k
x
y

k
y
son, respectivamente, las componentes del vector de onda en los ejes x
e y respectivamente. Sustituyendo las ecuaciones (3.43)-(3.45) en las (3.32)-(3.35) y
teniendo en cuenta las relaciones entre el campo elctrico y el vector desplazamien-
to normalizado, as como las propiedades de la transformada de Fourier, podemos
obtener las siguientes expresiones:
H
x
0
=
tE
z
0
y
sin
_

k
y
y/2
_
sin(y/2)
, (3.46)
H
y
0
=
tE
z
0
y
sin
_

k
x
x/2
_
sin(x/2)
, (3.47)
E
z
0
sin
_
t
2
_
=
t

0
_
H
x
0

y
sin
_

k
y
y
2
_

H
y
0

x
sin
_

k
x
x
2
__
. (3.48)
Las expresiones (3.46) y (3.47) pueden sustituirse en (3.48) para obtener la si-
guiente relacin:
_
1
ct
sin
_
t
2
__
2
=
_
1

x
sin
_

k
x
x
2
__
2
+
_
1

y
sin
_

k
y
y
2
__
2
. (3.49)
Aproximando la celda de Yee a un cuadrado de aristas iguales (x = y = )
y un ngulo de propagacin respecto al eje positivo de las x (

k
x
=

k cos ;

k
y
=

k sin). La relacin que dene la dispersin numrica (3.49) puede ser resuelta en
64
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
funcin del ngulo mediante el siguiente mtodo iterativo de Newton:

k
i+1
=

k
i

sin
2
(A

k
i
) + sin
2
(B

k
i
) C
Asin(2A

k
i
) +Bsin(B

k
i
)
, (3.50)
A =
cos
2
, (3.51)
B =
sin
2
, (3.52)
C =

ct
sin
2
_
t
2
_
, (3.53)
donde

k
i+1
es la prediccin de

k, y

k
i
es la estimacin previa de

k. La convergencia
de este mtodo suele ser muy rpida y pocas iteraciones suelen ser necesarias. De
este modo la velocidad de fase v
p
vendra dada por la siguiente expresin.
v
p
c
=
2

k
nal
(3.54)
0 30 60 90
0,94
0,96
0,98
1
()
V
e
l
o
c
i
d
a
d

d
e

f
a
s
e

n
u
m

r
i
c
a

n
o
r
m
a
l
i
z
a
d
a

(
v
p
/
c
0
)
= /20
= /10
= /5
Figura 3.8: Variacin de la velocidad de fase numrica en funcin del ngulo de incidencia
en un mallado 2D para resoluciones de celda de /5, /10 y /20.
En la gura 3.8 se muestra la anisotropa inherente al algoritmo de Yee en la ve-
locidad de fase. Se han representado las curvas para diferentes resoluciones espaciales,
manteniendo la relacin (3.13). Esta relacin suele utilizarse tanto para problemas
bidimensionales como tridimensionales ya que cumple la condicin de estabilidad de
manera holgada. Puede apreciarse que v
p
es siempre menor a la velocidad de propa-
gacin en el vaco, alcanzando un mximo en 45
o
y un mnimo en 0
o
y en 90
o
para
3.2 Formulacin FDTD para el caso 2-D 65
todas las resoluciones. El error acumulativo inherente a la formulacin de Yee de
segundo orden puede reducirse ampliando la resolucin espacial o bien a partir de
aproximaciones de cuarto orden que reducen el error de fase en gran medida [3].
3.2.2. Condiciones de frontera para el caso bidimensional
La necesidad del uso de condiciones de frontera de tipo absorbente en los ex-
tremos de la malla viene dado por el hecho de que las ondas que se propagan hacia
los extremos de la red, producen unas reexiones indeseadas e imprevisibles, que
ocasionan resultados incorrectos en la zona de anlisis. Una primera aproximacin
para paliar el problema sera aumentar el tamao de la red y detener la simulacin
en un instante en el que las reexiones an no se hayan originado (debido a que
las ondas no han llegado a los bordes de la simulacin) o bien no hayan alcanzado
la regin de inters. Esta alternativa se hace inviable a medida que aumentamos el
nmero de celdas. El coste de una simulacin bidimensional, es de aproximadamente
O(3n
f
n
c
n
steps
), siendo n
f
y n
c
el nmero de celdas en el eje x y en el eje y respecti-
vamente (o bien el nmero de las y de columnas de las matrices E
z
, H
x
, H
y
, G
ax
y
G
bx
). El trmino n
steps
hace referencia al nmero de pasos temporales que calcular
el mtodo. Por ello se recurre a las condiciones de contorno absorbentes como la
explicada en el punto 3.1.3, ya que un aumento en el nmero de celdas en cualquiera
de las dimensiones repercute en gran medida en el coste temporal del mtodo. El
uso de las CFA permite reducir las dimensiones de la malla y por tanto del coste
temporal del algoritmo.
La condicin de contorno analizada en el punto 3.1.3, nicamente es til para el
caso unidimensional, cuando el ngulo de incidencia de las ondas es nico y conocido.
Para el caso bidimensional y tridimensional se utilizan las conocidas condiciones de
frontera denominadas capas de adaptacin perfecta o por el trmino anglosajn Per-
fectly Matched Layers (PML) denidas por Berenger [7, 8]. A partir del trabajo de
Berenger, se han realizado diversas aportaciones relacionadas con este formalismo
y su implementacin en las DFDT [9, 10]. En este trabajo nos centraremos en una
versin simplicada de las PMLs de Berenger detalladas en [1, 10].
Esta tcnica se basa en el uso de unas capas diseadas para absorber las on-
das electromagnticas que inciden sobre las mismas. La absorcin se lleva a cabo
generando unas prdidas de manera independiente en cada una de las componentes
del campo involucradas. Este proceso se realiza teniendo en cuenta que una discon-
tinuidad entre dos medios produce una reexin relacionada con las impedancias
intrnsecas de cada uno de ellos y que dicho factor de reexin debe anularse para
evitar reexiones indeseadas (vase gura 3.5 donde se produce una reexin del pul-
66
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
so que incide sobre la supercie dielctrica). El factor de reexin entre dos medios,
A y B se dene tal y como sigue:
=

A

A
+
B
, (3.55)
donde las impedancias intrnsecas de cada uno de los medios se denen a partir de
la constante dielctrica y la permeabilidad .
=
_

. (3.56)
La nalidad de la PML es introducir un nmero de capas adicionales (N
PML
capas) en la regin frontera de la simulacin (vase gura 3.9) que modelen un
medio con prdidas. La atenuacin producida sobre las ondas electromagnticas que
recorren la regin PML favorecer que las amplitudes de las ondas reejadas en los
bordes sean reducidas y en la mayora de las situaciones despreciables. Para ello, la
constante dielctrica y la permeabilidad deben ser complejas, de forma que se puedan
simular medios con prdidas. Para estudiar las PMLs de Berenger partimos de la
reformulacin las expresiones (3.32), (3.33), (3.34) y (3.35) en el dominio frecuencial
(substituyendo las derivadas temporales d/dt por j).
x
y
N
PML Regin PML
Figura 3.9: Esquema de un mallado bidimensional con PMLs.
j

D
z
= c
0
_
H
y
x

H
x
y
_
, (3.57)

D
z
() =

r
()

E
z
(), (3.58)
jH
x
= c
0
_

E
z
y
_
, (3.59)
jH
y
= c
0
_

E
z
x
_
. (3.60)
3.2 Formulacin FDTD para el caso 2-D 67
Para realizar las PML se aaden unas constantes dielctricas y permeabilidades
[10]

F
z
,

F
x
y

F
y
, denidas en (3.69) y (3.70):
j

D
z

F
z
(x)

F
z
(y) = c
0
_
H
y
x

H
x
y
_
, (3.61)

D
z
() =

r
()

E
z
(), (3.62)
jH
x

F
x
(x)

F
x
(y) = c
0
_

E
z
y
_
, (3.63)
jH
y

F
y
(x)

F
y
(y) = c
0
_

E
z
x
_
. (3.64)
Cabe destacar que las variables aadidas, no tienen un signicado fsico con-
creto, ni relacin ninguna con las caractersticas del medio dadas por
r
()

. En el
trabajo realizado por Sacks et al en [11] se denen dos condiciones bsicas para la
construccin de las PML:
1. La impedancia vista desde el interior del medio hacia la PML debe ser con-
stante.

0
=
m
=

F
x

F
x
= 1. (3.65)
2. La constante dielctrica y la permeabilidad en una direccin dada deben ser
inversas a las mismas en la direccin perpendicular.

F
x
=
1

F
y
, (3.66)

F
x
=
1

F
y
. (3.67)
(3.68)
Seguidamente asumiremos que estas variables cticias estn denidas de la si-
guiente forma

F
m
=
F
m
+

D
m
j
0
con m = x, y, (3.69)

F
m
=
F
m
+

H
m
j
0
con m = x, y. (3.70)
68
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
Teniendo en cuenta las dos condiciones impuestas, se muestran los valores escogi-
dos para las variables mostradas en (3.69) y (3.70):

F
m
=
F
m
= 1, (3.71)

D
m
j
0
=

H
m
j
0
=

D

0
. (3.72)
Donde
D
se dene numricamente en le expresin (3.83). Puede comprobarse
que la substitucin de (3.71) y (3.72) en (3.65) sigue manteniendo la misma relacin.
Por lo que sustituyendo las expresiones (3.71) y (3.72) en (3.69) y en (3.70),
podemos reescribir las expresiones (3.61), (3.63) y (3.64).
j

D
z
_
1 +

D
(x)
j
0
__
1 +

D
(y)
j
0
_
= c
0
_
H
y
x

H
x
y
_
, (3.73)
jH
x
_
1 +

D
(x)
j
0
_
1
_
1 +

D
(y)
j
0
_
= c
0
_

E
z
y
_
, (3.74)
jH
y
_
1 +

D
(x)
j
0
__
1 +

D
(y)
j
0
_
1
= c
0
_

E
z
x
_
. (3.75)
Reorganizando trminos, se pueden llegar a las siguientes ecuaciones (el lector
interesado puede ver todo el proceso en [1, 11]).

D
z
[
n+1/2
i,j
= C
x
[
i
C
y
[
j

D
z
[
n1/2
i,j
+B
x
[
i
B
y
[
j
1
2
_
H
y
[
n
i+1/2,j
H
y
[
n
i1/2,j

H
x
[
n
i,j+1/2
+H
x
[
n
i,j1/2
_
, (3.76)
C
e
[
i,j
=
_

E
z
[
n+1/2
i+1,j


E
z
[
n+1/2
i,j
_
, (3.77)
I
H
y
[
n+1/2
i+1/2,j
= I
H
y
[
n+1/2
i1/2,j
+A
y
[
j
C
e
[
i,j
, (3.78)
H
y
[
n+1
i+1/2,j
= C
x
[
i+1/2
H
y
[
n
i+1/2,j
B
x
[
i+1/2
1
2
_
C
e
i, j +I
H
y
[
n+1/2
i+1/2,j
_
, (3.79)
C
e
[
i,j
=
_

E
z
[
n+1/2
i,j


E
z
[
n+1/2
i,j+1
_
, (3.80)
I
H
x
[
n+1/2
i,j+1/2
= I
H
x
[
n+1/2
i,j+1/2
+A
x
[
i
C
e
[
i,j
, (3.81)
H
x
[
n+1
i,j+1/2
= C
y
[
j+1/2
H
x
[
n
i,j+1/2
B
y
[
j+1/2
1
2
_
C
e
i, j +I
H
x
[
n+1/2
i,j+1/2
_
. (3.82)
Los valores de las constantes que conforman la PML se jan de la siguiente forma
segn [1, 11]:
3.2 Formulacin FDTD para el caso 2-D 69
A
m
[
n
= 0,333
_
n
N
PML
_
3
m = x y, n = 1, 2, . . . , N
PML
, (3.83)
B
m
[
n
=
_
1
1 +A
m
[
n
_
, (3.84)
C
m
[
n
=
_
1 A
m
[
n
1 +A
m
[
n
_
. (3.85)
En la Figura 3.10 se muestra un ejemplo de como una pulso propagndose hacia
los extremos de la red, se atena al entrar en contacto con las PMLs.
0
1
2
3
4
1
2
3
4
-0,03
-0,02
-0,01
0
0,01
0,02
0,03
0,04
a)
0
1
2
3
4
1
2
3
4
-0,03
-0,02
-0,01
0
0,01
0,02
0,03
b)
E
z

(
V
/
m
)
x (m)
x (m)
y (m) y (m)
Figura 3.10: Ejemplo del efecto de las PMLs con un pulso propagndose hacia los extremos
de la red para el caso bidimensional. a) t = 60t. b) t = 75t
3.2.3. Formulacin de campo total y campo dispersado
La formulacin de Campo Total-Campo Dispersado (CT-CD) [1, 3] y [12, 13] se
ide con el propsito de poder predecir la seccin radar de elementos mediante la
iluminacin con ondas planas de tipo arbitrario. En nuestro caso, es una herramienta
til para poder estudiar el comportamiento de elementos pticos ante la incidencia
de una onda plana.
70
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
La formulacin se basa en la linealidad de las ecuaciones de Maxwell y en la
descomposicin de los campos de la siguiente manera:
E
tot
= E
inc
+E
disp
, (3.86)
H
tot
= H
inc
+H
disp
, (3.87)
donde E
inc
y H
inc
son los valores del campo de la onda incidente que son conocidos
en todo el mallado para cada iteracin del algoritmo. ste sera el campo total en el
caso de propagacin en el vaco, pero en el caso de que existan elementos que provo-
quen una perturbacin en el campo, E
disp
y H
disp
representaran dicha contribucin
al campo total. El algoritmo de las FDTD puede ser aplicado por igual haciendo
una distincin entre regiones, separadas por una supercie virtual que delimita la
separacin entre la regin de campo total y de campo dispersado.
En la regin de campo total, el algoritmo de Yee se aplica sobre todos los campos
(incidente y dispersado), y en el interior de esta zona se encuentran los elementos
que perturbarn la distribucin de campo. Es decir, se trata de la regin donde se
produce la interaccin entre el campo electromagntico con el dispositivo fotnico
considerado.
En la regin de campo dispersado, el algoritmo de Yee nicamente tiene en cuen-
ta las componentes de campo dispersado connando la onda incidente en la regin
interna del campo total. En general, en aplicaciones de ptica difractiva suele ser
de inters analizar una zona de observacin, que est espacialmente separada del
campo incidente, y que se correspondera con la regin del campo dispersado. En
una simulacin numrica la separacin espacial implicara aumentar considerable-
mente el tamao de la malla de simulacin con el consiguiente aumento del coste
computacional y de memoria. La regin de campo dispersado esta en contacto con
las capas PMLs. Dicha conguracin, permite que las ondas que lleguen a las PMLs
sean de un nivel reducido ya que no est presente la onda incidente, reduciendo la
amplitud de las reexiones en la regin de la PML.
A las celdas que sirven de interfase entre ambas regiones, se les aplica un con-
junto de ecuaciones denominadas Connecting Conditions (3.90)-(3.95), que permiten
connar el haz incidente en el interior de la regin de campo total.
En la Figura 3.11 se muestra un esquema donde aparecen las zonas comentadas.
Tambin se muestra un vector unidimensional que contiene los valores del campo
incidente, para incidencia normal (

k = y) en toda la regin de campo total. Este


vector es necesario para forzar la fuente en cada punto del espacio del campo total
y permite aplicar las connecting conditions en las celdas que separan las regiones de
campo total y campo dispersado. El crear un vector en lugar de una matriz para
la fuente es debido a que se asume que la onda plana viajar paralela al eje y ya
3.2 Formulacin FDTD para el caso 2-D 71
que los valores del campo incidente a lo largo del eje x son iguales y por lo tanto
es innecesario almacenar dicha informacin redundante. Como ltima ventaja, cabe
mencionar que al ser un array unidimensional pueden aplicarse las condiciones de
contorno CFA vistas en el apartado 3.1.3 en lugar de las PMLs.
x
y
N
PML Regin PML
Campo Total
Campo dispersado
j
a
j
b
i
a
i
b
Generacin
de la onda
incidente
Sustraccin
de la onda
incidente
Vector unidimensional
con la fuente y las CFA
Figura 3.11: Esquema del problema bidimensional con la formulacin CT-CD y PMLs.
Las Connecting Conditions pueden deducirse de manera sencilla, con la ayuda
de la Figura 3.12 en la cual se puede ver como el clculo de las componentes de
E
z
recurre a los valores contiguos de H
x
y H
y
. Algunos de estos valores pueden
encontrarse fuera de la regin de campo total.
Para ilustrar este problema, podemos obtener la relacin de E
z
con las compo-
nentes del campo magntico adyacentes en una regin de la interfase, por ejemplo,
en la lnea jada por i = i
a
e j = j
a
, . . . , j
b
.
E
z
tot
[
n+1
i
a
,j
= E
z
tot
[
n+1
i
a
,j
+

t

x
_
H
y
tot
[
n+1/2
i
a
+1/2,j
H
y
tot
[
n+1/2
i
a
1/2,j
+
H
x
disp
[
n+1/2
i
a
,j1/2
H
x
tot
[
n+1/2
i
a
,j+1/2
_
+

t

x
H
x
inc
[
n+1/2
i
a
,j1/2
,(3.88)
H
x
disp
[
n+1/2
i
a
,j1/2
= H
x
disp
[
n+1/2
i
a
,j1/2
+H
x
inc
[
n+1/2
i
a
,j1/2
, (3.89)
donde podemos ver que se ha aadido un trmino de campo incidente (H
x
inc
[
n+1/2
i
a
,j1/2
)
para mantener la coherencia de las expresiones (3.86)-(3.87). Cabe mencionar que los
trminos del interior del parntesis, son conocidos y presentes en memoria en tiempo
de ejecucin del algoritmo, mientras que el campo incidente es conocido ya que viene
denida por el usuario y obtenido a partir de una expresin analtica.
72
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
Campo incidente necesario
a) H
x
b)H
y
Puntos especiales de E
z
Region de Campo Total
j

=

j
a
j

=

j
a


-
1
/
2
j

=

j
b
j

=

j
b


+
1
/
2
i=i
a
i=i
a
-1/2
i=i
b
i=i
b
+1/2
Interfase entre la regin de
Campo Total y Campo Dispersado
Figura 3.12: Componentes del campo con polarizacin TE donde se aprecian las interfases
entre la regin de campo total y campo dispersado
El resto de las Connecting Conditions pueden ser obtenidas de manera similar,
particularizando las expresiones de cada una de las componentes de cada una de las
aristas que delimitan el rea de campo total y de campo dispersado. A continuacin
se muestran todas las Connecting Conditions para las tres componentes del campo
involucradas, teniendo en cuenta que la expresin (3.88) puede reescribirse de una
manera ms compacta haciendo referencia a la expresin (3.36) (la cual puede ser re-
denida en trminos de campo elctrico en lugar de vector desplazamiento de manera
sencilla, recurriendo a la ecuacin (3.33). As estas Connecting Conditions seran:
1. Para la componente E
z
en j = j
a
y j = j
b
E
z
[
n+1
i,j
a
=
_
E
z
[
n+1
i,j
a
_
(3.36)
+

t

0
x
H
x
inc
[
ja1/2
, (3.90)
E
z
[
n+1
i,j
b
=
_
E
z
[
n+1
i,j
b
_
(3.36)

0
x
H
x
inc
[
jb+1/2
. (3.91)
3.2 Formulacin FDTD para el caso 2-D 73
2. Para la componente H
x
en j = j
a
y j = j
b
H
x
[
n+1/2
i,j
a
1/2
=
_
H
x
[
n+1/2
i,j
a
1/2
_
(3.39)
+

t

0
z
E
z
inc
[
ja
, (3.92)
H
x
[
n+1/2
i,j
b
+1/2
=
_
H
x
[
n+1/2
i,j
b
+1/2
_
(3.39)

0
z
E
z
inc
[
jb
. (3.93)
3. Para la compenente H
y
en i = i
a
e i = i
b
H
y
[
n+1/2
ia1/2,j
=
_
H
y
[
n+1/2
i
a
1/2,j
_
(3.40)

0
z
E
z
inc
[
j
, (3.94)
H
y
[
n+1/2
ib+1/2,j
=
_
H
y
[
n+1/2
i
b
+1/2,j
_
(3.40)
+

t

0
z
E
z
inc
[
j
. (3.95)
En la Figura 3.13 se muestra una secuencia de la simulacin de una onda plana
propagndose en el espacio libre con incidencia normal. La onda plana se genera en
el plano y = 15x = 30 cm y es suprimida en el plano y = 45x = 90 cm.
0
2
4
6
8
10
0
5
10
-0,5
0
0,5
y (m)
a)
x (m)
b)
c) d)
E
z

(
V
/
m
)
0
2
4
6
8
10
0
5
10
-0,5
0
0,5
y (m) x (m)
E
z

(
V
/
m
)
0
2
4
6
8
10
0
5
10
-0,5
0
0,5
y (m)
x (m)
E
z

(
V
/
m
)
0
2
4
6
8
10
0
5
10
-0,5
0
0,5
y (m) x (m)
E
z

(
V
/
m
)
Figura 3.13: Simulacin de una onda plana propagndose a lo largo del espacio libre.a)
t = 60t b) t = 80t c) t = 95t. d) t = 100t
Para introducir una onda plana con un ngulo de incidencia arbitrario es nece-
sario reformular las connectiong conditions. Esta tarea se basa principalmente en
la generacin de lo que se conoce como la tabla de verdad (look-up table[3]) que
74
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
permite describir el comportamiento de una onda plana con indcidencia arbitraria
sin tener que calcular y almacenar el valor del campo incidente en toda la regin
de campo total. nicamente es necesario el cmputo de un vector unidimensional
que posteriormente es procesado para calcular el valor exacto del campo que hay
que introducir en las ecuaciones (3.90)-(3.95). El punto (i
0
, j
0
) ser el primer punto
del mallado que entrar en contacto con el vector de onda incidente. Este punto, se
establece como el origen de coordenadas a la hora de calcular el retardo de cada uno
de los puntos de las connecting conditions. Para cada punto de la interfase se calcula
el retardo y con l, la posicin dentro del vector incidente que entrara en contacto
con el punto de la interfase de inters. Un ejemplo esquemtico de este proceso se
muestra en al Figura 3.14, donde se ilustra para un punto de la interfase (situado en
r
comp
) la proyeccin sobre el vector de onda incidente.
Regin de Campo Total
j

=

j
a
j

=

j
a
-
1
/
2
j

=

j
b
j

=

j
b

+
1
/
2
i = i
a
i = i
a
-1/2
i = i
b
i =i
b
+1/2
k
inc
E
z
inc
H
x
inc
d
r
comp
m
0
m
0

-

1
0 << 90
E
z
H
x
H
y
Figura 3.14: Diagrama del clculo del campo incidente en la interfase entre regiones a
partir del vector de campo incidente
3.2 Formulacin FDTD para el caso 2-D 75
El retardo en muestras se calcula a partir de la siguiente ecuacin:
n
delay
=
d
v
p
()t
(3.96)
donde v
p
() hace referencia a la expresin (3.54) y dene la velocidad de fase numri-
ca de la onda incidente con un ngulo de propagacin (vase seccin 3.2.1). La
distancia en celdas desde el origen de coordenadas (i
0
, j
0
) hasta la componente del
campo en cuestin es d, la cual puede expresarse como sigue:
d =

k
inc

r
comp
, (3.97)
donde

k
inc
es el vector de onda incidente denido por

k
inc
= xsin() + y cos , (3.98)
y

r
comp
es la posicin desde el origen hasta la posicin de la componente del campo
en la que se quiere calcular la proyeccin del vector campo incidente denida por

r
comp
= x(i
comp
i
0
) + y (j
comp
j
0
) (3.99)
donde i
comp
y j
comp
son enteros 1/2 ya que las componentes del campo elctrico y
magntico pueden estar situadas en el punto medio entre celdas.
El procedimiento para calcular el campo en cada uno de los puntos de la interfase
reside en obtener la proyeccin del campo incidente en el punto de la interfase. Para
cada instante de tiempo, la propagacin unidimensional del vector campo incidente
se realiza teniendo en cuenta el ngulo de incidencia y por tanto la diferencia de
velocidad de fase numrica a aplicar segn (3.54). Calculando la distancia d para un
punto en concreto de la malla TE, el campo incidente en dicho punto puede obtenerse
a partir de una interpolacin lineal de los valores del campo adyacentes al punto
m
0
+ d en el vector unidimensional. En la Figura 3.14 se muestra la representacin
geomtrica para un ngulo comprendido entre 0
o
y 180
o
.
Mediante este procedimiento, nicamente se computa la funcin analtica para
iluminar el mallado reduciendo los costes computacionales de manera considerable.
Las ecuaciones para el vector incidente unidimensional han de ser redenidas para
que tengan en cuenta la variacin de la velocidad de fase numrica.
H
inc
[
n+1/2
m+1/2
= H
inc
[
n+1/2
m+1/2
+
t

_
v
p
(=0
o
v
p
()
_
_
E
inc
[
n
m
E
inc
[
n
m+1
_
, (3.100)
E
inc
[
n+1
m
= E
inc
[
n+1
m
+
t

_
v
p
(=0
o
v
p
()
_
_
H
inc
[
n+1/2
m1/2
H
inc
[
n+1/2
m+1/2
_
.(3.101)
76
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
La interpolacin lineal se lleva a cabo mediante las siguientes expresiones teniendo
en cuenta que la notacin FLOOR(r) indica el mximo entero contemplado en r.
d

= d FLOOR(d)
E
inc
[
n
d
= (1 d

)E
inc
[
n
m
0
+FLOOR(d)
+d

E
inc
[
n
m
0
+FLOOR(d)+1
(3.102)
Para el campo magntico localizado en d, tenemos expresiones similares tales
como
d

= d + 1/2
d

= d FLOOR(d)
H
inc
[
n+1/2
d
= (1 d

)H
inc
[
n+1/2
m
0
1/2+FLOOR(d

)
+d

H
inc
[
n+1/2
m
0
+1/2+FLOOR(d

)
(3.103)
Finalmente, para calcular las contribuciones del campo incidente en las ecuaciones
(3.90)-(3.95) basta con calcular las componentes del campo en las tres coordenadas
del espacio. Para el caso TE bajo estudio, las expresiones quedan de la siguiente
forma:
E
z
inc
[
n
d
= E
inc
[
n
d
, (3.104)
H
x
inc
[
n+1/2
d
= H
inc
[
n+1/2
d
cos(), (3.105)
H
y
inc
[
n+1/2
d
= H
inc
[
n+1/2
d
sin(). (3.106)
(3.107)
En la Figura 3.15 se muestra la evolucin de una onda plana propagndose en la
regin de campo total con un ngulo de 30
o
respecto al eje y.
3.2.4. Transformacin de campo cercano a lejano en dos
dimensiones
El estudio de diversos dispositivos electromagnticos u pticos, hace necesario
conocer la distribucin del campo en regiones alejadas en trminos de longitudes
de onda. El algoritmo de las FDTD se suele utilizar para calcular la distribucin
de campos en la regin de campo cercano o de fuentes. La extensin del mallado
hasta regiones alejadas, repercute de manera directa en el coste computacional y en
los recursos del sistema a utilizar. Por ello, existen diferentes tcnicas que se basan
en propagar los campos electromagnticos desde zonas cercanas a la fuente hasta
3.2 Formulacin FDTD para el caso 2-D 77
x
(

m
)
(a)
0 2
0
1
2
3
(b)
0 2
0
1
2
3
-0.5
0
0.5
-0.5
0
0.5
y(m)
(c)
0 2
0
1
2
3
-0.5
0
0.5
(d)
0 2
0
1
2
3
-0.5
0
0.5
x
(

m
)
x
(

m
)
x
(

m
)
y(m)
y(m) y(m)
Figura 3.15: Simulacin de una onda plana propagndose a lo largo del espacio libre con
=30
o
.a) t = 80t b) t = 90t c) t = 100t. d) t = 110t.
regiones alejadas evitando aumentar los lmites de la regin de simulacin para que
el campo lejano est comprendido en el interior del mallado a resolver.
Un gran nmero de las transformaciones de campo cercano a campo lejano se
basan en el principio de equivalencia, introducido en 1936 por Schelkuno [14] que
permite modelar los campos en el exterior de una supercie cerrada imaginaria que
contenga las cargas, sustituyendolas por unas corrientes cticias en la supercie imag-
inaria que cumplan las condiciones de contorno del problema. Este principio ha sido
utilizado por numerosos autores [1519] para resolver las ecuaciones integrales en el
dominio del tiempo de los campos electromagnticos (Time Domain Integral Expres-
sion TDIE).
Por otro lado, en el caso bidimensional, las ecuaciones TDIE en dos dimensiones
ya no se pueden plantear de una manera tan directa que para el caso tridimensional.
Por lo tanto, para el caso bidimensional, Luebbers et. al.[20] propuso en su trabajo
un algoritmo mixto que involucraba tanto el dominio temporal como el espectral.
78
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
Este mtodo haca uso de dos transformadas de Fourier para obtener la respuesta
temporal. En este trabajo, se ha implementado un mtodo alternativo basado en el
principio de equivalencia en el dominio del tiempo [21], evaluando directamente la
ecuacin TDIE para el caso bidimensional. El procedimiento permite implementar un
algoritmo sencillo que consiste en la solucin de una integral doble. Este algoritmo,
puede ser implementado en tiempo de ejecucin y permite propagar los campos
electromagnticos calculados en campo cercano a una posicin en campo lejano que
no tiene por que estar comprendida dentro de la regin de simulacin.
El principio de equivalencia [2] permite sustituir las fuentes que originan los cam-
pos por un conjunto de densidades de corrientes superciales tanto elctricas como
magnticas localizadas en la regin de campo cercano. stas corrientes se denen
por las siguientes relaciones:
J
S
(r

, t) = n H(r

, t), (3.108)
M
S
(r

, t) = n E(r

, t), (3.109)
donde n es el vector normal con direccin de salida a la supercie. Las variables
primadas hacen referencia a la fuente mientras que las variables sin la prima se
corresponden con la posicin en la que se quiere calcular el campo. Para resolver el
problema bidimensional, se recurre a formular un problema tridimensional con un eje
z innito. La notacin y el esquema ilustrado en la Figura 3.16 muestra la supercie
rectangular a integrar y la variables involucradas:
x
y
Contorno
L
a
E
H
k
P
lejano
r'
'
r
R
z'
z

P
P
lejano
proy
Figura 3.16: Esquema de la transformacin de campo cercano a lejano.
3.2 Formulacin FDTD para el caso 2-D 79
P
lejano
= Punto a calcular el campo lejano.
P
proj
lejano
= proyeccin de P
lejano
sobre el plano z = 0.
r = vector de posicin en la zona de observacin.
= proyeccin de r sobre el plano z = 0.
r

= vector de posicin de la fuente.

= proyeccin de r

sobre el plano z = 0.
R = vector desde la fuente hasta el punto en campo lejano
P = proyeccin de R sobre el plano z = 0.
La manera en la que las densidades de corriente contribuyen a los campos radiados
es de la forma [22]:
E(r, t)
rad
e
=

0
4
_
S

([
t
J
S
(r

,t)]

R)R
R
3
dS

, (3.110)
E(r, t)
rad
m
=
1
4c
0
_
S

([
t
M
S
(r

,t)]

R)R
R
2
dS

, (3.111)
(3.112)
donde R = r r

es el vector comprendido entre la regin de fuente y el punto en


campo lejano. El subndice = t (R/c) indica un retardo temporal. El campo elc-
trico total es la superposicin de las contribuciones provocadas por ambas corrientes:
E(r, t)
rad
= E(r, t)
rad
e
+E(r, t)
rad
m
.
El principio de funcionamiento de este mtodo, basndose en trabajos prvios
[21, 23], radica en la evaluacin de la integral a lo largo del plano z

, teniendo en
cuenta que las propiedades de traslacin de la delta de Dirac. Deniendo dS

= dl

dz

,
y tomando L
a
como el contorno de la seccin transversal de la supercie, podemos
denir la siguiente expresin para la contribucin al campo elctrico de la densidad
de corrientes magntica:
E(, t)
rad
m
=
1
4c
_
L
a
dl

_
z

=+
z

=
_
t

=+
t

t
M
S
(

, t

) R
R
2

_
t

_
t
R
c
__
dt

. (3.113)
Intercambiando el orden de las integrales en z

y en t

as como incluyendo la
relacin R = Pz

z,
80
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
_
z

=+
z

t
M
S
(

, t

) R
R
2

_
t

_
t
R
c
__
dz

=
_
z

=+
z

t
M
S
(

, t

) P
P
2
+z
2

_

P
2
+z
2
c
t +t

_
dz

+ z
_
z

=+
z

=
z

t
M
S
(

, t

)
P
2
+z
2

_

P
2
+z
2
c
t +t

_
, (3.114)
donde se puede comprobar que el segundo trmino es nulo ya que la integral es par
en z

. El integrando del primer trmino es impar, por lo que el valor de su integral


desde hasta +es el doble de la integral desde 0 hasta +. Teniendo en cuenta
estos factores, se puede realizar el siguiente cambio de variable:
=

P
2
+z
2
c
, (3.115)
y recurriendo a la propiedad de la translacin de la delta de Dirac:
_
=
=
P
c
( t +t

_
c
2

2
P
2
d =
_

_
1
(tt

c
2
(tt

)
2
P
2
, si t t

>
P
c
0, si t t

<
P
c
, si t t

=
P
c
(3.116)
Por lo que podemos reescribir el primer trmino de la ecuacin (3.114) de la
siguiente forma:
E(, t)
rad
m
=
1
2
_
L
a
dl

_
t

=tP/c
t

=
P
t
M
S
(

, t

)

P
c(t t

)
_
c
2
(t t

)
2
P
2
dt

. (3.117)
La contribucin del campo elctrico debida al trmino dependiente de la densidad
de corriente elctrica se puede obtener de manera anloga [21]:
E(, t)
rad
e
=

0
c
2
_
L
a
dl

_
t

=tP/c
t

=
P
2

t
J
S
(

, t

)

P
c(t t

)
_
c
2
(t t

)
2
P
2
s
dt

. (3.118)
3.2 Formulacin FDTD para el caso 2-D 81
Las expresiones (3.117) y (3.118) puede simplicarse dado que ambos tiene tienen
un lmite cuando P tiende a de la forma:
lim
P
_
t

=t(P/c)
t

=
f(t

)P
n
c
n
(t t

)
n
_
c
2
(t t

)
2
P
2
dt

=
_
t

=t(P/c)
t

=
f(t

2
_
c(t t

) P
dt

(3.119)
De la misma forma, el lmite de

P cuando P tiende a tiende a , por lo que la
expresin nal para el campo elctrico quedara de la siguiente forma:
E(r, t)
far
=
1
2

r
_
L
a
_
t

=tR/c
0
t

t
J
S
(r

, t) +
t
M
S
(r

, t) r
_
c
0
(t t

) R
dl

dt

,
(3.120)
La resolucin de la integral impropia (3.120) cuando t

(t R/c
0
)

, se lleva a
cabo combinando tcnicas numricas y analticas [21, 24].
Para vericar la precisin de la transformacin, se llevar a cabo una simulacin
que contiene una apertura. Dicha apertura es iluminada mediante la formulacin
de CT-CD vista en el captulo 3.2.4. La simulacin tambin incluye una regin de
PMLs detallada en la seccin 3.2.2. En la Figura 3.17.a se muestra un diagrama
esquemtico de la simulacin realizada as como la comparativa entre los campos
obtenidos a partir de la transformacin (la cual propaga los campos obtenidos por el
mtodo de las DFDT en el plano de la apertura) y los calculados numricamente a
partir del mtodo DFDT en cada uno de los puntos de campo lejano (Figura 3.17.b).
Se puede ver, como las curvas del campo elctrico calculado a partir de la transforma-
cin presentan valores prcticamente coincidentes con los calculados va numrica;
lo que demuestra la precisin del mtodo implementado.
82
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
-1
0
1
(b)
DFDT
CC-CL
-0,2
0
0,2
(c)
DFDT
CC-CL
0 0,005 0,01 0,015 0,02 0,025 0,03 0,035
-0,5
0
0,5
Tiempo (ps)
E
z

(
V
/
m
)
(d)
DFDT
CC-CL
Punto 1
Punto 2
Punto 3
Conductor perfecto
Onda plana CT-CD
=633 nm
5,3 m (100 celdas)
5,3 m
(100 celdas)
Apertura
a=1,1 m
(20 celdas)
Region PML
(a)
E
z

(
V
/
m
)
E
z

(
V
/
m
)
Figura 3.17: Validacin de la transformacin de campo cercano a lejano . a) Diagrama
de la simulacin para validar la transformacin de campo cercano a lejano. Se muestra la
posicin de los tres puntos donde se calculan los campos mediante el mtodo de las DFDT y
mediante la transformacin de campo cercano a lejano a partir de los campos en la apertura.
b) Campo E
z
para el punto 1. c) Campo E
z
para el punto 2. d) Campo E
z
para el punto 1
3.3 Formulacin FDTD para el caso 3-D 83
3.3. Formulacin FDTD para el caso 3-D
En 1966, Kane Yee desarrollo a partir de las ecuaciones de Maxwell, un algoritmo
aplicado a lo que hoy en da se conoce como la celda de Yee [25] (vase Figura 3.18). El
trabajo de Yee, se basa en las relaciones de las ecuaciones de Maxwell, que muestran
la dependencia entre las variaciones temporales del campo y su relacin con las
variaciones espaciales. En la Figura 3.18 se aprecia que las componentes vectoriales
E y H estn entrelazados en el interior de la celda, centrada en los ndices i, j, k
para las coordenadas espaciales x, y, z respectivamente. A partir de las ecuaciones de
Maxwell (3.1) y (3.3) se puede obtener un conjunto de seis ecuaciones que modelan
el campo electromagntico en un problema tridimensional:

D
x
t
=
1

0
_
H
z
y

H
y
z
_
, (3.121)

D
y
t
=
1

0
_
H
x
z

H
z
x
_
, (3.122)

D
z
t
=
1

0
_
H
y
x

H
x
y
_
, (3.123)
H
x
t
=
1

0
_

E
y
z

E
z
y
_
, (3.124)
H
y
t
=
1

0
_

E
z
x

E
x
z
_
, (3.125)
H
z
t
=
1

0
_

E
x
y

E
y
x
_
. (3.126)
El siguiente paso es tomar la aproximacin de las derivadas por las diferencias
centrales, tal como hemos realizado en los apartados anteriores. Como ejemplo, ni-
camente se va a desarrollar la expresin (3.123), para el resto el procedimiento sera
similar.

D
z
[
n+1/2
i,j,k+1/2
=

D
z
[
n1/2
i,j,k+1/2
+
t
x

0
_
H
y
[
n
i+1/2,j,k+1/2

H
y
[
n
i1/,j,k+1/2
H
x
[
n
i,j+1/2,K+1/2
+H
x
[
n
i,j1/2,k+1/2
_
. (3.127)
Finalmente, se obtendra un conjunto de seis ecuaciones (tres para el vector
desplazamiento y otras tres para el campo magntico). El mtodo de resolucin de
84
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
(i,j,k)
(i,j+1,k)
(i,j,k+1)
(i+1,j,k)
E
z
E
x
E
y
H
x
H
z
H
y
x
y
z
Figura 3.18: Celda de Yee para el caso tridimensional
este sistema de ecuaciones es conocido como el algoritmo leapfrog, que se basa en
calcular de manera iterativa las componentes del campo elctrico a partir del campo
elctrico y magntico calculado previamente. A continuacin se realiza el mismo
procedimiento para el campo magntico donde se toman los valores calculados en el
paso anterior del campo elctrico. Este proceso se repite para cada iteracin temporal,
por lo que al acabar cada ciclo se disponen de los valores del campo electromagntico
para dicho instante de tiempo en toda la regin de simulacin. Un diagrama de ujo
en la Figura 3.19 resume el procedimiento mencionado.
3.3.1. Generalizacin de las condiciones de frontera a tres
dimensiones
El formalismo de las PMLs para el caso 3-D es similar al explicado para el caso
de dos dimensiones. La ecuacin (3.73) puede ser replanteada para el caso 3-D de la
siguiente forma:
j

D
z
_
1 +

D
(x)
j
0
__
1 +

D
(y)
j
0
_

_
1 +

D
(z)
j
0
_
1
= c
0
_
H
y
x

H
x
y
_
, (3.128)
El desarrollo de esta expresin es similar al realizado en el apartado anterior, por lo
que reorganizando trminos y teniendo en cuenta que los trminos 1/j se convierten
en una integral en el dominio temporal. La expresin (3.128) puede ser redenida
3.3 Formulacin FDTD para el caso 3-D 85
t
n
=nt
NO
END
D
n+1/2
H
n
E
n+1/2
D
n

D
n-1/2
C
H
n+1
H
n
E
n+1/2
t
n
=t
n
+1
t
n
=n
steps
~ ~
~ ~
~
Figura 3.19: Diagrama de ujo del algoritmo leapfrog.
agrupando el trmino que involucra derivadas espaciales en la variable C
H
, tal y
como sigue:
j

D
z
_
1 +

D
(x)
j
0
__
1 +

D
(y)
j
0
_
= c
0
_
1 +

D
(z)
j
0
__
H
y
x

H
x
y
_
c
0
C
H
+c
0

z
(z)

0
1
j
C
H
, (3.129)
donde denimos
I
D
z
=
1
j
C
H
. (3.130)
Por lo que reorganizando trminos de la expresin obtenemos el siguiente con-
junto de ecuaciones a introducir en nuestro algoritmo.
C
H
=
_
H
y
[
n
i+1/2,j,k+1/2
H
y
[
n
i1/2,j,k+1/2

H
x
[
n
i,j+1/2,k+1/2
+H
x
[
n
i,j1/2,k+1/2
_
(3.131)
I
D
z
[
n
i,j,k+1/2
= I
D
z
[
n1
i,j,k+1/2
+C
H
(3.132)

D
z
[
n+1/2
i,j,k+1/2
= C
x
[
i
C
y
[
j

D
z
[
n1/2
i,j,k+1/2
+
B
x
[
i
B
y
[
j
1
2
_
C
H
+A
z
[kI
D
z
[
n
i,j,k+1/2
_
(3.133)
86
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
La matriz I
D
z
se ha limitado a la regin de inters (PML) para reducir el requerim-
iento en memoria, para ello, dicha matriz se ha segmentado en dos de dimensiones
ms reducidas mejorando las prestaciones del algoritmo.
En la Figura 3.20 se muestra una simulacin de un pulso propagndose en el
vaco. Los grcos representan la componente E
z
en el plano xy a la altura de la
excitacin.
0
2
4
0
2
4
-0.01
0
0.01
0.02
y(m)
(a)
x(m)
E
z

(
V
/
m
)
0
2
4
0
2
4
-0,01
0
0,01
y(m)
(b)
x(m)
0
2
4
0
2
4
-0,01
0
0,01
y(m)
(c)
x(m)
0
2
4
0
2
4
-0,01
0
0,01
y(m)
(d)
x(m)
E
z

(
V
/
m
)
Figura 3.20: Simulacin de un pulso propagndose en el vaco con condiciones de frontera
de Berenger (N
PML
=10). a) t = 65t.b) t = 100t.c) t = 125t. d) t = 160t.
3.3.2. Formulacin campo total y campo dispersado en
tres dimensiones
La formulacin de campo total-campo dispersado para el problema tridimensional
es muy similar a la vista para el caso bidimensional (captulo 3.2.1). La onda plana
es generada en un plano en lugar de en una lnea, y las condiciones de contorno
mostradas para el caso bidimensional (3.90)-(3.95), pasan de ser evaluadas en una
lnea, a ser aplicadas a lo largo de un plano. Por otro lado, el problema tridimensional
3.3 Formulacin FDTD para el caso 3-D 87
aade una variable dimensional extra, implicando que las regiones de campo total y
campo dispersado pasen a ser cubos en lugar de planos. Por ello, surgen dos nuevos
planos en k = k
a
y en k = k
b
, los cuales se han de aplicar las connecting conditions
[1],[3].

D
y
[
n+1
i,j+1/2,k
a
=

D
y
[
n+1
i,j+1/2,k
a

1
2
H
x
inc
[
j
, (3.134)

D
y
[
n+1
i,j+1/2,k
b
+1
=

D
y
[
n+1
i,j+1/2,k
b
+
1
2
H
x
inc
[
j
. (3.135)
(i,j,k)
(i,j+1,k)
(i,j,k+1)
(i+1,j,k)
x
y
z
i
b
i
a
j
b
j
a
k
b
k
b
Generacin de las
ondas planas en el
plano xz
Figura 3.21: Esquema tridimensional de las regiones de campo total y campo dispersado
Al igual que para el caso bidimensional, la formulacin de campo total y campo
dispersado para tres dimensiones en incidencia normal puede ser extendido de manera
sencilla al caso de incidencia oblicua aplicando las expresiones (3.104)-(3.106) en
lugar de una lnea, en los planos que conforman las Connecting Conditions.
En la Figura 3.22 se muestra la distribucin del campo elctrico en z para dos
planos perpendiculares de una simulacin tridimensional. Podemos ver como la dis-
tribucin de campo incidente se conna nicamente en una regin acotada por un
cubo imaginario en el interior de la regin de simulacin.
3.3.3. Transformacin de campo cercano a campo lejano
La aplicacin del algoritmo de las DFDT a sistemas pticos implica utilizar lon-
gitudes de onda del orden de nanmetros, con lo que la resolucin espacial es del
88
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
1
2
3
4
0
2
4
1
2
3
4
(a)
1
2
3
4
0
2
4
1
2
3
4
(b)
1
2
3
4
0
2
4
1
2
3
4
(c)
1
2
3
4
0
2
4
1
2
3
4
(d)
z

(

m
)
z

(

m
)
z

(

m
)
z

(

m
)
y (m) x (m) y (m) x (m)
y (m) x (m)
y (m) x (m)
Figura 3.22: Representacin del campo elctrico en z (E
z
(V/m)) para diferentes instantes
de tiempo. a) t = 75t.b) t = 100t.c) t = 110t. d) t = 125t
orden de dcimas de nanmetro. El estudio de regiones grandes en ptica es usual,
ya que normalmente se desean ver patrones de difraccin en regiones consideradas
como campo lejano. Esto implicara realizar mallados grandes contribuyendo a au-
mentar el coste computacional y los requisitos de memoria. Por ello, se ha incluido
una herramienta de clculo del campo lejano a partir de los valores de campo cer-
cano [1],[3] y [19]. El mtodo, se basa en crear unos arrays para almacenar el campo
elctrico en campo lejano. Para cada iteracin temporal, cada elemento del array es
calculado a partir de una suma recursiva de los campos en la regin S

jada en
campo cercano. Cada una de stas contribuciones son retrasadas en el tiempo en
funcin de la distancia entre los puntos de S

y el punto de observacin en campo


lejano.
Para ilustrar el formalismo matemtico, tomaremos el ejemplo mostrado en [1],[19]
basado en calcular el campo lejano de una apertura.
Comenzaremos con el planteamiento del potencial vector [2],[26]:
A(r) =
1
4
_ _
S
J
S
(r

)
e
jkR
R
dS

, (3.136)
3.3 Formulacin FDTD para el caso 3-D 89
donde
R = [r r

[ =
_
(x x

)
2
+ (y y

)
2
+z
2

, (3.137)
J
S
= Densidad de corriente, (3.138)
e
jkR
R
= Funcin de Green. (3.139)
Las vectores primados se corresponden con la regin de fuentes, mientras que los
no primados se corresponden con la posicin en el espacio donde se desea calcular el
campo. El campo magntico puede obtenerse a partir de la siguiente expresin:
H =
r
A. (3.140)
Sustituyendo (3.136) en (3.140)
H =
1
4
_
S

_
J
S
(r

)
e
jkR
R
_
dS

. (3.141)
Teniendo en cuenta las identidades de campos vectoriales, que el trmino
r

J
S
(r

) puede suprimirse ya que J


S
es funcin nicamente de r

y considerando las
siguientes igualdades:

r
e
jkR
R
=
r
e
jkR
R
,

r
e
jkR
R
=
r
e
jkR
R
_
jk +
1
R
_
r, (3.142)
donde
r = r
x
x +r
y
y +r
z
z =
R
R
. (3.143)
La ecuacin (3.141) se puede replantear, tal y como sigue:
H =
1
4
_ _
S

_
J(r

)

R
_
_
jk +
1
R
_
e
jkR
R
. (3.144)
Teniendo en cuenta el principio de dualidad [26], podemos denir una expresin
similar para las componentes del campo elctrico:
E =
1
4
_ _
S

_
M(r

)

R
_
_
jk +
1
R
_
e
jkR
R
, (3.145)
90
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
donde las corrientes magnticas denidas en M son una herramienta matemtica de
naturaleza fsica cticia, que permite denir el campo elctrico en la regin S

. Para
el caso de una apertura, M= 2E
a
n, donde E
a
es el campo en la apertura.
Suponiendo polarizacin TE, y que jk = jw/c
0
, las expresin (3.145 se reescri-
bira tal y como sigue:
E
z
(x, y, z, w) =
1
2
_ _
S

r
x
E
a
jk
e
jkR
R
+
1
2
_ _
S

r
x
E
a
e
jkR
R
2
dS

, (3.146)
siendo r
x
es la distancia entre los puntos de fuente y campo lejano en el eje x. Para
poder ser implementadas en el algoritmo de las DFDT es necesario pasar al dominio
temporal, obteniendo la siguiente expresin:
E
z
(x, y, z, w) =
1
2c
0
_ _
S

r
x
d
dt
E
z
(x

, y

, t R/c
0
)
R
dx

dy

+
1
2
_ _
S

r
x
E
z
(x

, y

, t R/c
0
)
R
2
dS

(3.147)
Finalmente podemos substituir las integrales espaciales y temporales por sus corres-
pondientes sumatorios.
E
z
[
n
i,j,k
=
1

r
x
R
x
_
E
z
[
n2R
x
i

,j

,k

E
z
[
n12R
x
i

,j

,k

t
+
E
z
[
n2R
x
i

,j

,k

2R
x
_
, (3.148)
teniendo en cuenta que la distancia R ha sido redondeada al entero ms prximo de
la forma R

= xR
x
.
A continuacin se muestran los resultados obtenidos de la simulacin de una
apertura. Para validar, la transformacin de campo cercano a lejano, se han escogi-
do tres puntos del interior del mallado (vase Figura 3.24.a), el campo elctrico E
z
en dichos puntos se calcula directamente mediante el mtodo DFDT y a partir de
la transformacin campo cercano a lejano haciendo uso del campo en la apertura.
En la Figura 3.23 se muestran varios instantes de la simulacin, mientras que en
la Figura 3.24 se comparan los valores del campo E
z
en en cada uno de los puntos
mostrados en la Figura 3.24a obtenidas mediante el mtodo de las DFDT y mediante
la transformacin de campo cercano a lejano. La curva continua se corresponde con
los valores del campo en funcin del tiempo, obtenidos directamente en los puntos
seleccionados, mediante las DFDT, mientras que la curva a rayas muestran los val-
ores del campo en funcin del tiempo estimados a partir del campo obtenido en la
apertura mediante DFDT y propagados a los tres puntos escogidos. Se aprecia que la
similutud entre los valores obtenidos mediante el clculo directo del campo mediante
el algoritmo DFDT y la transformacin es notable.
3.3 Formulacin FDTD para el caso 3-D 91
a)
0 1 2 3 4 5 6
0
0,5
1
1,5
2
2,5
3
3,5
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
b)
0 1 2 3 4 5 6
0
0,5
1
1,5
2
2,5
3
3,5
-0,2
0
0,2
0,4
0,6
0,8
c)
0 1 2 3 4 5 6
0
0,5
1
1,5
2
2,5
3
3,5
-1
-0,5
0
0,5 d)
0 1 2 3 4 5 6
0
0,5
1
1,5
2
2,5
3
3,5
-0,03
-0,02
-0,01
0
0,01
0,02
0,03
x

(

m
)
x

(

m
)
y (m)
y (m)
y (m)
y (m)
x

(

m
)
x

(

m
)
Figura 3.23: Capturas de la simulacin del pulso propagndose e incidiendo en la ranura.
a)t = 80t. b) t = 100. c) t = 120.t. d)t = 180.t
92
CAPTULO 3. MTODO DE LAS DIFERENCIAS FINITAS EN EL DOMINIO DEL
TIEMPO
0 50 100 150 200 250 300
-1
-0,5
0
0,5
1
DFDT
CC-CL
0 50 100 150 200 250 300
-0,5
0
0,5
0 50 100 150 200 250 300
-0,2
0
0,2
Iteraciones
b)
c)
d)
Punto 1
Punto 2
Punto 3
Conductor perfecto
Onda plana CT-CD
=633 nm
5,3 m (100 celdas)
5,3 m
(100 celdas)
Apertura
a=1,1 m
(20 celdas)
Region PML
a)
DFDT
CC-CL
DFDT
CC-CL
Figura 3.24: Validacin de la transformacin de campo cercano a lejano en tres dimen-
siones. a) Diagrama de la simulacin para validar la transformacin de campo cercano a
lejano. Se muestra la posicin de los tres puntos donde se calculan los campos mediante las
dos vas. A la derecha, se muestran las formas de onda del campo elctrico E
z
. b) Punto 1.
c) Punto 2. d) Punto 3.
Bibliografa
[1] D. M. Sullivan. Electromagnetic Simulation using the FDTD Method. IEEE
Press Editorial Board, 2000. ISBN 0-7803-4747-1.
[2] C. A. Balanis. Advanced Engineering Electromagnetics. New York: Wiley, 1989.
[3] A. Taove. Computational Electrodynamics: The Finite-Dierence Time-
Domain Mehtod. Artech House Publishers, 1995.
[4] K. S. Kunz y R. J. Luebbers. The Finite Dierence Time Domain Method for
Electromagnetics. CRC Press, 1993. ISBN 0-8493-8657-8.
[5] M. Born y E. Wolf. Principles of Optics. Pergamon, Oxford, UK, 6
a
edicin,
1980.
[6] E. de los Reyes, L. Nuo, J. V. Balbastre, L. Juan, y V. Soriano. Campos
Electromagnticos II. Universidad Politcnica de Valencia, 1999.
[7] J. P. Berenger. A perfectly matched layer for the absoprption of electromagnetic
waves. J. Comput. Phys, 114:185200, 1994.
[8] J. P. Berenger. Three-dimensional perfectly matched layer for the absorption of
electromagnetic waves. J. Comput. Phys, 127:363379, 1995.
[9] Prez-Ocn. Exponential discretization of the perfectly matched layer (PML)
absorbing boundary condition simulation in FD-TD 3D. Optik - International
Journal for Light and Electron Optics, 113(8):354360, 2002.
[10] D. M. Sullivan. A simplied pml for use with the fdtd method. Microwave and
Guided Wave Letters, IEEE, 6(2):97, Feb 1996.
[11] Z. S. Sacks, D. M. Kingsland, R. Lee, y J-L Lee. A perfectly matched anisotropic
absorber for use as an absorbing boundary condition. Antennas and Propaga-
tion, IEEE Transactions on, 43(12):14601463, Dec 1995.
94 BIBLIOGRAFA
[12] G. Mur. Absorbing boundary conditions for the nite-dierence approximation
of the time-domain electromagnetic eld equations. IEEE Trans. Electromag-
netic Compatibility, 23:377382, 1981.
[13] Taove A. Umashankar, K. R. A novel method to analyze electromagnetic
scattering of complex objects. IEEE Trans. Electromagnetic Compatibility, 24:
397405, 1982.
[14] S. A. Schelkuno. Some equivalence theorems of electromagnetics and their
application to radiation problems. Bell Systems Tech. J., 15:92112, 1936.
[15] M. J. Barth, M. M McLeod, y R. W Ziolkowski. A near and far-eld projection
algorithm for nite-dierence time-domain codes. J. Electromag Waves Appl.,
6:518, 1992.
[16] K. L. Shlager y G. S Smith. Near-eld to near-eld transformation for use with
fdtd method and its application to pulsed antenna problems. Electron Lett, 30:
12621264, 1994.
[17] K. L. Shlager y G. S Smith. Comparison of two fdtd near-eld to far-eld
transformations applied to pulsed antenna problems. Electron Lett, 31:936938,
1995.
[18] K. S. Yee, D. Ingham, y K. Shlager. Time-domain extrapolation to the far eld
based on fdtd calculations. Antennas and Propagation, IEEE Transactions on,
39(3):410413, Mar 1991.
[19] Kunz K. S. Schneider M. Hunsberger F. Luebbers, R. J. A nite-dierence
time-domain near zone to far zone transformation. IEEE Trans. Antennas and
Propagation, 39:429433, 1991.
[20] R. Luebbers, D. Ryan, y J. Beggs. A two-dimensional time-domain near-zone
to far-zone transformation. Antennas and Propagation, IEEE Transactions on,
40(7):848851, Jul 1992.
[21] S. Gonzlez Garca, B. Garca Olmedo, y R. Gmez Martn. A time-domain
near- to far-eld transformation for fdtd in two dimensions. Microwave and
Optical Technology Letters, 27(6):427432, December 2000.
[22] W Panofsky y M Phillips. Classical electricity and magnetism. Addison-Wesley
series in physics, CA, 2nd edicin, 1968.
[23] Leonard C. Bennett, Jr. A technique for computing approximate electromagnetic
impulse response ofconducting bodies. PhD thesis, West Lafayette, IN, USA,
1968.
BIBLIOGRAFA 95
[24] F. Xu, W. Hong, y X. Zhu. A new time domain near eld to far eld trans-
formation for fdtd in two dimensions. En Microwave Symposium Digest, 2002
IEEE MTT-S International, volumen 3, pages 20572060, 2002.
[25] K. S. Yee. Numerical solution of initial boundary value problemas involving
maxwells equations in isotropic media. IEEE Trans. on Antennas and Propa-
gation, AP(17):585589, 1966.
[26] R. Harrington. Time-Harmonic Electromagnetic Fields. New York: McGraw-
Hill, 1961.
96 BIBLIOGRAFA
Captulo 4
Optimizacin computacional
En este captulo se van a introducir los conceptos relacionados con la arquitectura
del hardware utilizado para la implementacin numrica, as como las estrategias con-
sideradas para reducir el coste temporal del mtodo de las DFDT. Un conocimiento
elemental del funcionamiento del hardware es necesario, debido a que la optimizacin
en trminos generales suele implicar un acercamiento al nivel fsico (del hardware)
desde el punto de vista de la programacin. Con frecuencia, el programador de este
tipo de aplicaciones no est pendiente de gestionar los recursos del dispositivo y es-
pera que el sistema operativo y el propio microprocesador realice esta tarea por l,
ejecutando las operaciones secuenciales en el menor tiempo posible. Sin embargo,
un conocimiento ms profundo de la arquitectura de los microprocesadores y de las
unidades de procesado grco actuales permiten explotar cualidades de las mismas
que habitualmente no son utilizadas, e inclusive ignoradas en muchos casos. Este es
un ejemplo de las instrucciones vectoriales proporcionadas en los microprocesadores
Intel
TM
desde el Pentium III
TM
. Las cuales permiten realizar operaciones aritmticas
en paralelo sobre un grupo de datos en el mismo tiempo que se realiza una operacin
convencional sobre un nico dato.
En primer lugar se presentar la arquitectura de los microprocesadores actuales
para introducir el conjunto de instrucciones vectoriales utilizadas de manera implci-
ta en el cmputo del mtodo numrico de las DFDT. En segundo lugar se introducir
la arquitectura de las UPG basadas en la familia Fermi
TM
. Esta clase de procesadores
grcos comenzaron a comercializarse en el 2010 y son la evolucin de la primera
familia de procesadores grcos diseados expresamente para la computacin cient-
ca. Una vez introducidas ambas arquitecturas, se detallarn las decisiones tomadas
para la optimizacin del mtodo numrico en las UPC y en las UPG.
98 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
4.1. Optimizacin del mtodo de las DFDT en
microprocesadores
4.1.1. Introduccin a la arquitectura de los microproce-
sadores
Los microprocesadores Intel actuales estn basados en lo que se denomina micro
arquitectura del procesador Intel Core
TM
detallada en la Figura 4.1. En dicha ilus-
tracin se muestra un diagrama de bloques, entre los que se identican la Unidad
Aritmtico Lgica (UAL) encargada de realizar las operaciones aritmticas, los blo-
ques de gestin de entrada y salida, as como el gestor de instrucciones y la memoria.
Cabe destacar que uno de los conceptos ms importantes a la vista de la arquitectura
mostrada en la Figura 4.1, es la jerarqua de memorias. En los microprocesadores
actuales existen diferentes niveles de memoria cach. Dichas memorias, generalmente
se suelen numerar normalmente como L1, L2 y L3 [1, 2]. A medida que el nmero
que las identica aumenta, tambin lo hace su capacidad, as como la latencia, que
aumenta a medida que la capacidad de la memoria tambin crece [3]. En la Tabla 4.1
se muestra la latencia y el caudal (el cual dene el nmero de ciclos necesarios
para proporcionar un dato) para diferentes tipos de memoria. Por otro lado, cabe
2 M/4M
L2
Compartida
UAL
MMX/SSE
Lectura Escritura
Gestin de
instrucciones
L1 Cach 32k
Figura 4.1: Arquitectura de procesador Intel
TM
Core.
destacar que en la Figura 4.1 nicamente se muestra el diagrama de bloques bsi-
co de un ncleo, pero es ampliamente conocido la proliferacin en la actualidad de
los microprocesadores con varios ncleos o multincleos. Dentro de la familia de
4.1 Optimizacin del mtodo de las DFDT en microprocesadores 99
Nivel Capacidad Latencia (ciclos) Caudal (ciclos)
L1 32 kB 3 1
L2 2, 4 MB 14 2
L3 8, 12, 16 MB 110 12
Tabla 4.1: Datos sobre la estructura de la memoria cach en los microprocesadores mod-
ernos.
dichos microprocesadores existen diferentes variantes en funcin del tipo de micro-
procesador. De manera esquemtica y global se puede resumir la arquitectura de los
mismos como dos procesadores integrados en el mismo encapsulado, los cuales cada
uno de ellos presentan dos ncleos y por lo tanto dos hilos de ejecucin. La jerarqua
de memorias cach y su interconexin es una de las caractersticas que ms se ha
investigado en los ltimos aos y lo que ha dado lugar a la ltima familia de micro-
procesadores. Por ejemplo el procesador Intel Pentium D, incluye dos procesadores
lgicos en el interior del encapsulado, los cuales cada uno de ellos tiene un ncleo
de ejecucin diferente y una jerarqua de cach separada del otro procesador. En los
nuevos microprocesadores Intel Xeon (familia i7) se ha reducido la frontera fsica
de cada ncleo y las cachs se han estraticado y unicado para interconectar de
manera ms eciente cada uno de los ncleos de cada procesador, al mismo tiempo
que ha aumentado el nmero de procesadores en el interior del encapsulado.
Cada uno de los bloques se encarga de realizar diferentes procesos, como es el
caso de la UAL la cual se encarga de realizar las operaciones matemticas y/o lgicas
sobre nmeros enteros, de coma otante tanto de precisin simple como de doble,
etctera. La realizacin de estas operaciones suele tener asociada un nmero de ciclos
desde que los operandos entran en la unidad hasta que el resultado nal es calculado
y disponible para futuras operaciones o el almacenamiento en memoria. Este tipo de
unidades son las que se utilizan de manera convencional cuando un usuario progra-
ma en lenguajes de alto nivel operaciones aritmticas bsicas como sumas, restas,
divisiones o multiplicaciones.
En cambio, tambin estn disponibles el conjunto de registros MultiMedia eXten-
sion o Multiple Math o Matrix Math eXtension (MMX). Esta tecnologa fue incluida
por Intel
TM
en 1997 a partir de los microprocesadores de la familia Pentium
TM
.
El funcionamiento de cada uno de estos registros MMX de 64 bits se basa en la
posibilidad de almacenar y procesar diferentes datos de longitud menor o igual a 64
bits. Por ejemplo, en un registro MMX se puede almacenar una palabra de 64 bits, o
dos enteros de 32 bits o 4 enteros de 16 bits. La ejecucin de instrucciones aritmti-
cas se realiza sobre todo el registro pudiendo obtener el resultado sobre 1 o varios
operandos en el mismo nmero de ciclos de reloj. Sin embargo, el juego de instruc-
100 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
ciones MMX presentaba algunos inconvenientes, como por ejemplo la incapacidad de
trabajar con nmeros de coma otante. Por ello, Intel
TM
en 1999 actualiz el con-
junto de instrucciones MMX con las nuevas Streaming SIMD Extensions (SSE) con
el Pentium III. El objetivo perseguido con estas instrucciones era el de mejorar las
prestaciones multimedia de los microprocesadores: codicacin y decodicacin de
vdeo, computacin cientca o procesamiento grco tridimensionales entre otras.
Algunas de las caractersticas que necesitan cumplir las instrucciones a implementar
con este recurso se listan a continuacin [1]:
Paralelismo inherente: Lo que implica que se puedan realizar clculos en parale-
lo sin haber conictos entre los datos debido a dependencias entre los mismos.
Acceso a memoria ordenado: Uno de los factores ms importantes en la reali-
zacin ptima de una aplicacin es la latencia producida por fallos de pgina.
Un fallo de pgina ocurre cuando un dato no est presente en la memoria cach
y el procesador necesita recurrir a la memoria global para recuperar dicha in-
formacin. En consecuencia, algn fragmento o pgina de la memoria cach
debe ser liberada para permitir la entrada de la informacin necesaria. Este
proceso es crtico, cuando la pgina que se libera de la cach es necesitada en
un momento posterior.
Operaciones localizadas sobre un conjunto de datos: Si el algoritmo realiza unas
operaciones concretas sobre un conjunto de datos, estas pueden realizarse de
una vez sobre los datos que con seguridad estarn presentes en las memorias
ms rpidas del sistema.
Flujo de control independiente de los datos: Este posiblemente, sea uno de los
requisitos ms complejos de satisfacer ya que no depende del programador en
gran medida sino del propio algoritmo. Si el algoritmo presenta una estructura
independiente de los datos, es decir, evitando saltos condicionales que puedan
modicar el ujo de informacin del algoritmo, la paralelizacin y el uso de
instrucciones vectoriales es aplicable y proporciona en la mayora de los casos
resultados satisfactorios.
Las novedades ms signicativas de estas instrucciones respecto al juego MMX
fue la capacidad de trabajar con datos en coma otante de precisin simple (32
bits) a travs de ocho registros (xmm0 al xmm7) de 128 bits cada uno de ellos con la
posibilidad de almacenar 4 nmeros de 32 bits. En la Figura 4.2 se muestra el cambio
de losofa entre el uso de instrucciones individuales para datos nicos (conocido ms
popularmente por el trmino anglosajn Single Instruction, Single Data (SISD)). En
la Figura 4.2a se muestra el caso del uso de una operacin aritmtica de tipo suma
4.1 Optimizacin del mtodo de las DFDT en microprocesadores 101
C
A
B
+
1x32-bit
+
1x32-bit
+
1x32-bit
+
1x32-bit
B
+
1x32-bit
(a) (b)
Suma SIMD Suma SISD
Figura 4.2: Ejemplo de una operacin de suma mediante SISD (a) y SIMD (b).
sobre la UAL convencional, mientras en la Figura 4.2b se ilustra la misma operacin
pero para el caso de cuatro palabras de 32 bits.
Aunque no hay una equivalencia directa general entre el nmero de ciclos nece-
sarios por la UAL y los necesarios por las instrucciones SSE, de manera terica se
considera que el ratio de mejora entre el uso de los registros SSE frente a la UAL es
de 4 para nmeros en coma otante de precisin simple, ya que en el mismo nmero
ciclos se realizan cuatro operaciones en lugar de una sola [4]. Este proceso puede
entenderse como una vectorizacin de los operandos aritmticos. Aunque es cierto,
que en la mayora de los casos no se consiguen obtener rendimientos tan elevados ya
que el microprocesador tambin invierte ciclos en instrucciones de lectura y escritu-
ra, as como otro tipo de gestiones que en la mayora de los casos resulta difcil de
determinar, debido a que dependen del sistema operativo y su gestin.
El conjunto de instrucciones SSE est clasicado en las siguientes clases:
Instrucciones SSE de transferencia de datos.
Instrucciones SSE de conversin.
Instrucciones SSE aritmticas.
Instrucciones SSE lgicas.
De todo el abanico de instrucciones disponibles, las relevantes desde el punto
de vista de la optimizacin de mtodos numricos son las de transferencia de datos
y aritmticas, ya que el procedimiento bsico que se realizar ser: cargar datos de
memoria en los registros MMX, realizar alguna operacin aritmtica sobre los mismos
y, por ltimo, devolver el resultado a memoria.
102 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
Las operaciones de lectura y escritura se recomienda que sean realizadas sobre
segmentos de operadores alineados en memoria. Tal y como se aprecia de manera
indirecta en la Figura 4.2, la operacin en paralelo de la suma implica que en el
registro se encuentren los cuatro valores consecutivos en precisin simple que se
deseen utilizar. Por ello, es necesario alinear de manera fsica la memoria, ya que
mejora la carga en paralelo de los datos en los registros. En particular, para las
instrucciones SSE es necesario alinear los datos en grupos de 32 bytes para favorecer
que las cargas en los registros sean ecientes.
De manera esquemtica, el procedimiento a realizar para aplicar el juego de
instrucciones SSE en un programa debe de seguir el diagrama de bloques mostrado
en la Figura 4.3.
SIMD
aplicable?
Reorganizacin de
los datos
Alineamiento de
memoria
Conversin del cdigo
secuencial a SIMD
Gestin de instrucciones
para mejorar el rendimiento
Implementacin
convencional
Ejecucin
S No
Figura 4.3: Diagrama de bloques de la conversin de un cdigo secuencial a uno vectorial
mediante el uso de instrucciones SIMD
Tal y como se ilustra en la Figura 4.3, en primer lugar es necesario decidir si la
aplicacin cumple los requisitos que la conviertan en paralelizable. Si esto es posible,
4.1 Optimizacin del mtodo de las DFDT en microprocesadores 103
en primera instancia se deben de reorganizar los datos para favorecer la proximidad
fsica entre los mismos. Una vez que se tiene clara la estructura de datos que se va a
utilizar, es necesario alinear estas estructuras en grupos de 4 bytes para facilitar las
operaciones vectoriales de lectura y escritura. A continuacin se realiza la conversin
del cdigo secuencial a cdigo vectorial mediante las instrucciones SIMD. En este
punto es necesario detenerse y evaluar ciertas posibilidades antes de aplicar esta
alternativa.
A la hora de implementar las funciones SSE sobre un programa, existen diferen-
tes alternativas. El resumen de estas alternativas se ilustra en la Figura 4.4 donde
se sitan las diferentes tcnicas de vectorizacin en funcin de la facilidad de im-
plementacin junto a la portabilidad a otras arquitecturas y respecto al rendimiento
obtenido. La alternativa de aadir cdigo en ensamblador es una opcin de altas
prestaciones ya que acerca en gran medida al programador al hardware del dispos-
itivo. El rendimiento obtenido mediante esta alternativa es elevado aunque limita
la ejecucin de dichas instrucciones a la arquitectura en la que se est trabajando,
ya que cada arquitectura necesita de sus propias instrucciones mquina (vase Figu-
ra 4.4b). Por otro lado estn las funciones intrnsecas del sistema, las cuales son unas
transcripciones ms o menos amigables de las funciones de cdigo mquina a lengua-
jes de programacin de alto nivel, como C, C++ o Fortran. Estas funciones son
convertidas a cdigo mquina por el compilador y presentan una portabilidad mayor
respecto a la opcin comentada anteriormente. Un ejemplo de este razonamiento se
muestra en la Figura 4.4 donde se ilustra el cdigo necesario para paralelizar un
simple bucle de 4 iteraciones con el uso de ambas alternativas. En la Figura 4.4c
se muestra el cdigo utilizado para la versin vectorial con el uso de las funciones
intrnsecas. Tal y como se puede apreciar, esta alternativa resulta ms amigable que
la mostrada en la Figura 4.4b, ms cercana al lenguaje mquina.
Finalmente, existe tambin la posibilidad de que el propio compilador realize
una vectorizacin automtica del cdigo secuencial. Este proceso automtico se basa
en identicar bucles predominantes y vectorizarlos mediante las instrucciones SSE.
Aunque los resultados de esta optimizacin son muy dependientes de factores como:
El modo de acceso y el tipo de datos utilizados en los bucles.
Dependencias de acceso a datos en cada iteracin del bucle.
La interaccin entre el usuario y el compilador que en muchas ocasiones nece-
sita de la sealizacin en el cdigo fuente, as como en el propio momento de
ejecucin a travs de directivas.
En ocasiones, la vectorizacin automtica es dependiente de la propia versin del
104 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
void add(float *a,
float *b,
float *c)
{
int i;
for (i = 0; i < 4; i++)
{
c[i] = a[i] + b[i];
}
}
void add(float *a, float *b, float *c){
__asm
{
mov eax, a
mov edx, b
mov ecx, c
movaps xmm0, XMMWORD PTR [eax]
addps xmm0, XMMWORD PTR [edx]
movaps XMMWORD PTR [ecx], xmm0
}
}
#include <xmmintrin.h>
void add(float *a, float *b, float *c)
{
__m128 t0, t1;
t0 = _mm_load_ps(a);
t1 = _mm_load_ps(b);
t0 = _mm_add_ps(t0, t1);
_mm_store_ps(c, t0);
}
(a) (b)
(c)
Figura 4.4: Ejemplo de paralelizacin automtica de un bucle. (a) Implementacin normal
en C de un bucle for de 4 iteraciones. (b) Implementacin mediante directivas de ensamblador
con uso de instrucciones SSE. (c) Implementacin mediante el uso de funciones intrnsecas.
compilador y de los hbitos de programacin del usuario, por lo que no es una alter-
nativa viable si se desea obtener el mximo rendimiento de este tipo de instrucciones.
Tal y como se detallar en la Seccin 4.1.2, en este trabajo se ha optado por el uso de
las directivas intrnsecas, ya que se han considerado como una solucin que permite
una portabilidad del cdigo a otras plataformas al mismo tiempo que se consigue
mejorar de manera ptima el rendimiento.
4.1.2. Vectorizacin del mtodo de las DFDT
La vectorizacin de cualquier mtodo numrico debe de seguir las etapas deta-
lladas en la Figura 4.3. Tal y como se indica en el ujo del diagrama de bloques, es
necesario en primer lugar decidir si el conjunto de instrucciones SSE vectoriales son
aplicables a este tipo de datos. Tal y como se ha visto en la seccin 3, el conjunto de
4.1 Optimizacin del mtodo de las DFDT en microprocesadores 105
ecuaciones del mtodo de las DFDT se basa en evaluar las diferentes celdas de Yee
que representan el espacio y realizar operaciones aritmticas bsicas sobre cada una
de las componentes de los campos situados en dichas celdas y las adyacentes. Para
simplicar la explicacin del proceso realizado en este punto se recurrirn al caso
bidimensional del mtodo sin tener en cuenta ningn tipo de condicin absorbente o
formulacin extra, es decir las ecuaciones (3.36)-(3.40). La manera funcional de tra-
bajar con este tipo de problemas en lenguajes de programacin como puede ser C++,
es mediante el uso de matrices para cada una de las componentes de los campos. El
recorrido de las matrices es ms o menos ordenado y secuencial, lo que favorece la
implantacin de las instrucciones vectoriales SSE.
Una vez considerada la posibilidad de implementar las ecuaciones del mtodo de
las DFDT mediante las instrucciones vectoriales del procesador, es necesario reorga-
nizar las operaciones para favorecer la implantacin de dichas directivas. En el caso
de la implementacin realizada se ha optado por almacenar un nico vector por cada
una de las componentes involucradas y que contenga todos los datos almacenados
de la matriz en un nico vector columna. Por ejemplo, si se considera una matriz
de dimensiones n
f
n
c
, para acceder a la la i y a la columna j se recurrir a la
posicin del vector columna j n
c
+ i. Esta decisin simplica la etapa de reserva
y liberacin de memoria, as como el proceso de alineamiento fsico de la misma.
Por ello, la ecuacin (3.36) puede reformularse de manera matricial y teniendo en
cuenta que los registros SSE son capaces de almacenar y procesar 4 nmeros en coma
otante de precisin simple (tipo oat):
_
_
_
_
_
d
j
z
[i]
d
j
z
[i + 1]
d
j
z
[i + 2]
d
j
z
[i + 3]
_
_
_
_
_
=
_
_
_
_
_
d
j
z
[i]
d
j
z
[i + 1]
d
j
z
[i + 2]
d
j
z
[i + 3]
_
_
_
_
_
+C
d
_

_
_
_
_
_
_
h
j
y
[i] h
j
y
[i 1]
h
j
y
[i + 1] h
j
y
[i]
h
j
y
[i + 2] h
j
y
[i + 1]
h
j
y
[i + 3] h
j
y
[i + 2]
_
_
_
_
_
_

_
C
d
_

_
_
_
_
_
_
h
j
x
[i] h
j1
x
[i]
h
j
x
[i + 1] h
j1
x
[i + 1]
h
j
x
[i + 2] h
j1
x
[i + 2]
h
j
x
[i + 3] h
j1
x
[i + 3]
_
_
_
_
_
_

_
(4.1)
donde i = 0, 4, 8, . . . , n 4 y j = 0, 1, , m 1. El coeciente C
d
contiene cuatro
valores relacionados con las resoluciones temporales y espaciales que para nuestro
caso concreto toma el valor en todos los casos de [1/2 1/2 1/2 1/2]
T
debido a
la relacin (3.13). En consecuencia, mediante el conjunto de instrucciones SSE de
transferencia se pueden realizar cargas de memoria en los registros MMX para acto
seguido ser procesadas por las instrucciones aritmticas. En la Figura 4.5 se muestra
la comparativa de la implementacin secuencial del bucle que actualiza la compo-
106 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
nentes del vector desplazamiento en z, junto con la implementacin con las funciones
intrnsecas. Como se aprecia en la Figura 4.5 la actualizacin de la componente z del
vector desplazamiento implica que el nmero de iteraciones del bucle interior se ha
reducido en un factor de cuatro. Se recurre a un prembulo inicial para realizar las
tres primeras operaciones involucradas con las tres primeras las para cada columna
de la matriz. Las funciones de carga introducen en los registros MMX los operandos a
utilizar por las funciones aritmticas para nalmente almacenar en la matriz corres-
pondiente el resultado de la actualizacin del campo. A partir de Figura 4.5, puede
interpretarse que la implementacin de la ecuacin (4.1) puede considerarse como la
unidad de trabajo dentro del mtodo y de la propia implementacin. Esta unidad de
trabajo puede extrapolarse al resto de ecuaciones que se encargan de actualizar los
campos elctricos y magnticos (3.39) y (3.40).
4.1.3. Paralelizacin del mtodo de las DFDT mediante
OpenMP
La tendencia del aumento del nmero de ncleos en los microprocesadores ha
favorecido el desarrollo de estndares basados en memoria compartida. Hasta la
fecha, el uso de servidores de clculo basados en memoria distribuida y mediante
aplicaciones basadas en pasos de mensajes Message Passing Interface (MPI) era la
alternativa ms eciente en trminos de rendimiento y coste. Aunque, es cierto que
las instalaciones basadas en este tipo de arquitecturas presentan inconvenientes rela-
cionados con el mantenimiento, el coste econmico y el tiempo durante el cual las
prestaciones de la red de ordenadores es competitiva frente a las nuevas tecnologas.
Por ello, junto a la capacidad de los fabricantes de aumentar la cantidad de transis-
tores en sus dispositivos de estado slido, los microprocesadores modernos pueden
ser considerados como pequeos servidores con varias unidades de proceso. En la
Figura 4.6 se ilustran las diferencias entre la alternativa de memoria compartida y
distribuida.
Por ello, resulta interesante utilizar alternativas como el paralelismo a nivel de
procesos para optimizar mtodos numricos. Una de las alternativas ms interesantes
y que en la actualidad est siendo ms utilizada es el uso de tcnicas basadas en
memoria compartida. En un microprocesador moderno existe la posibilidad de eje-
cutar ms de un hilo de instrucciones debido a la rplica de recursos. La posibilidad
de que varios procesos realicen una nica tarea de manera conjunta puede consid-
erarse en un primer momento una tarea relegada al sistema operativo, el cual debe
coordinar los diferentes hilos de proceso y los recursos de la mquina. Sin embargo,
hoy en da existen directrices para paralelizar algoritmos mediante la creacin de
procesos que se ejecuten en el mismo procesador (con varios ncleos) y compartan la
4.1 Optimizacin del mtodo de las DFDT en microprocesadores 107
for(int j = 1; j < N
columns
; j++){
for(int i = 1; i< M
rows
; i++){
D
z
[i][j] = D
z
[i][j] +C[i][j]*(H
y
[i][j] - H
y
[i-1][j]
-H
x
[i][j] + H
x
[i][j-1]);}}
Implementacin convencional (SISD)
Versin optimizada mediante instrucciones vectoriales (SIMD)
for(j = 1; j < N
columns
;j++){
pdz = &Dz_(0) + j*M
rows
+ 1;
phy = &Hy_(0) + j*M
rows
+ 1;
phx = &Hx_(0) + j*M
rows
+ 1;
phy_rm = &Hy_(0) + j * M
rows
;
phx_cm = &Hx_(0) + (j - 1) *M
rows
+ 1;
*(pdz++) = *pdz + c_*(*(phy++) - *(phy_rm++) -
*(phx++) + *(phx_cm++));
*(pdz++) = *pdz + c_*(*(phy++) - *(phy_rm++) -
*(phx++) + *(phx_cm++));
*(pdz++) = *pdz + c_*(*(phy++) - *(phy_rm++) -
*(phx++) + *(phx_cm++));
for (i = 4; i < M
rows
; i+=4){
xmm0 = _mm_loadu_ps(phy_rm);
xmm1 = _mm_load_ps(phy);
xmm2 = _mm_load_ps(phx);
xmm3 = _mm_load_ps(phx_cm);
xmm5 = _mm_sub_ps(xmm1, xmm0);
xmm6 = _mm_sub_ps(xmm3, xmm2);
xmm7 = _mm_add_ps(xmm5, xmm6);
xmm5 = _mm_mul_ps(xmm7, xmm4);
xmm1 = _mm_load_ps(pdz);
xmm6 = _mm_add_ps(xmm1, xmm5);
_mm_store_ps(pdz, xmm6);
pdz+=4;
phy+=4;
phx+=4;
phy_rm+=4;
phx_cm+=4;
}
}
Instrucciones SIMD
Inicializacin de
punteros para cada
columna
Actualizacin de
punteros
Prembulo
Figura 4.5: Comparativa entre el cdigo secuencial y vectorial de la actualizacin del vector
desplazamiento en la componente z.
108 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
Memoria
Interconexin
Proc Proc Proc Proc UPC
Memoria
UPC
Memoria
UPC
Memoria
Interconexin
...
(a) (b)
Figura 4.6: Esquema ilustrativo que muestra las diferencias entre la aproximacin de
memeoria distribuida (a) y memoria compartida (b).
Hilo Maestro
Regiones paralelas
Figura 4.7: Modelo de programcin OpenMP
informacin entre ellos. El estndar ms importante al respecto es el que se conoce
como OpenMP [5]. La idea bsica de OpenMP es la de utilizar las libreras del sis-
tema ya existentes para la generacin de procesos (Win32 API y POSIX en Unix)
para paralelizar aplicaciones mediante directivas OpenMP.
El modelo de programacin de OpenMP se basa en la idea de que un problema
de grandes dimensiones que inicialmente es procesado por un nico proceso, puede
ser dividido en problemas ms pequeos y cada uno de ellos ser procesado por di-
ferentes sub-procesos, los cuales trabajen de manera colaborativa para resolver el
problema global. Esta estrategia recibe el nombre de divide y vencers y asume
que la resolucin de los sub-problemas es generalmente ms sencilla que resolver to-
do el problema. Inicialmente, la creacin de procesos se lleva a cabo en los bucles
ya que si no hay dependencias entre los datos, las diferentes iteraciones de un bucle
podran evaluarse en paralelo evitando que las ltimas iteraciones esperen a que se
completen las primeras. Esta idea se ilustra en la Figura 4.7
4.1 Optimizacin del mtodo de las DFDT en microprocesadores 109
Tal y como se aprecia en la Figura 4.7 la ejecucin de un proceso inicial o hilo
maestro puede generar mltiples procesos ante la llegada de una seccin de cdigo
paralelo. Una vez creados los diferentes procesos, stos pueden trabajar de manera
paralela compartiendo informacin a travs de variables compartidas. Esta carac-
terstica es muy til en los sistemas de memoria compartida y diere de alternativas
como por ejemplo MPI, donde se realiza una segmentacin de los datos que va a
procesar cada uno de los nodos (normalmente un nodo es una CPU perteneciente
a una red de ordenadores) de manera independiente. La comunicacin entre nodos
se lleva a cabo mediante paso de mensajes cuya velocidad es sensiblemente menor y
por ello suele evitarse en la medida de lo posible.
Algunas de las ventajas ms importantes de esta tcnica frente a tcnicas basadas
en memoria distribuida son:
Los datos pueden ser privados o pblicos, es decir, cada hilo puede manipular
datos de manera privada o de manera compartida entre diferentes hilos.
La memoria compartida es visible por todos los hilos.
La memoria privada es slo visible por el proceso que la deni como tal.
La transferencia de memoria es transparente al usuario.
Adems, alguna de las caractersticas ms importantes desde el punto de vista del
usuario es que un programa secuencial puede paralelizarse con relativamente poco
esfuerzo mediante directivas OpenMP. Estas directivas se basan en indicar que bucles
o partes de cdigo van a ejecutarse por diferentes hilos, por lo que en la mayora de
los casos, un cdigo paralelo con esta tcnica es muy similar al cdigo secuencial.
Por el contrario tcnicas basadas en memoria distribuida, requieren de un complejo
sistema de envo de mensajes y adems de una reestructuracin del cdigo secuencial
que permita la segmentacin y la divisin del problema en partes ms pequeas.
En la Figura 4.8 se muestra un ejemplo de un cdigo secuencial mediante directi-
vas OpenMP. Tal y como se puede apreciar, la incorporacin de directivas OpenMP
paraleliza el cdigo de una manera relativamente sencilla y transparente al usuario.
Esta losofa puede incluirse en el mtodo de las DFDT de manera sencilla te-
niendo en cuenta que la ecuacin (4.1) puede evaluarse de manera independiente
para cada columna, ya que las ecuaciones de actualizacin de las componentes son
independientes. Es decir, calcular el campo elctrico para una celda depende exclusi-
vamente del valor del campo en dicha celda y las componentes del campo magntico
adyacentes. Este razonamiento es extrapolable al campo magntico de manera sim-
ilar. Por lo que diferentes procesos residentes en la misma UPC pueden actualizar
110 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
void main()
{
int i, k, N=1000;
double A[N], B[N], C[N];
for (i=0; i<N; i++)
{
A[i] = B[i] + k*C[i]
}
}
#include omp.h
void main()
{
int i, k, N=1000;
double A[N], B[N], C[N];
#pragma omp parallel for
for (i=0; i<N; i++) {
A[i] = B[i] + k*C[i];
}
}
Programa secuencial Programa paralelo
Figura 4.8: Ejemplo paralelizacin de un cdigo secuencial mediante directivas OpenMP.
al mismo tiempo los valores de una componente del campo sin problemas de depen-
dencias entre los datos. Esta idea se ilustra en la Figura 4.9, donde se muestra el
esquema realizado por la implementacin del mtodo de las DFDT mediante las in-
strucciones SSE y OpenMP. Debido a que las matrices se almacenan como un vector
unidimensional con preferencia de almacenamiento en columnas, las instrucciones
vectoriales se aplican de manera directa a lo largo de cada una de las columnas.
Este procedimiento, es el que ya se ha explicado con anterioridad al introducir las
instrucciones vectoriales SSE de tipo aritmtico. Para aprovechar la presencia de
mltiples ncleos en el interior de una UPC, se crean tantos procesos como ncleos
haya en el sistema. Este mecanismo es inherente a OpenMP y por defecto detecta
el nmero de ncleos y genera tantos procesos como ncleos. Aunque esta opcin es
modicable, en nuestra aplicacin no se han generado ms hilos que ncleos ya que
pruebas preliminares demostraron un detrimento en el rendimiento. En denitiva, se
generan k procesos donde k es el nmero de ncleos disponibles en el sistema. La
carga computacional generada por la actualizacin de los campos se distribuye por
cada uno de los ncleos de manera equitativa (en columnas), por lo que se reduce la
carga neta que soportara un nico ncleo.
Cada uno de estos ncleos evaluarn las ecuaciones que actualizan cada una de
las componentes del campo electromagntico utilizando los registros SSE disponibles
en el sistema, optimizando el uso de la UPC presente en las computadoras modernas
de una manera relativamente sencilla.
A modo de ejemplo, se muestra en la Figura 4.10 el cdigo utilizado para imple-
mentar la ecuacin (3.37) para medios no dispersivos y sin prdidas. Concretamente,
este segmento de cdigo se encarga de actualizar la componente en z del campo
elctrico a partir de la componente z del vector desplazamiento. Esta operacin es
la ms sencilla del mtodo y se basa en una multiplicacin matricial punto a punto.
4.1 Optimizacin del mtodo de las DFDT en microprocesadores 111
MMX Register
Valor de 4 bytes
4 44 4
P1 P2 P3 P4
D
z
[n
f
n
c
]
n
c
n
f
D
z
|
i,j
n+1
~
H
x
|
i,j-1/2
n
H
x
|
i,j+1/2
n
H
y
|
i,j
n
Figura 4.9: Esquema ilustrativo de la paralelizacin mediante OpenMP y la vectorizacin
mediante el uso de las instrucciones SSE en la actualizacin del desplazamiento elctrico en
z para el mtodo de las DFDT.
En nuestra implementacin, debido a que las matrices son almacenadas por un nico
vector, esta operacin se convierte en la realidad en una multiplicacin de un vector
de longitud n
f
n
c
. La variable que almacena este valor se dene como n_cells_. Las
lneas de cdigo 7, 8 y 9 implementan esta operacin a partir de un cdigo conven-
cional de C++. Se ha recurrido al uso de punteros, ya que tal y como se mencionar
ms adelante favorecer la rapidez de ejecucin para la versin secuencial. A partir
de la lnea 10 se muestra el cdigo optimizado. Las lneas 11, 12 y 14 inicializan los
registros MMX del microprocesador para utilizar las instrucciones vectoriales SSE.
En las lneas 19-22 se realizan las cargas de cuatro en cuatro del campo D
z
, y del
vector con las caractersticas del medio G
a
, para posteriormente almacenar el pro-
ducto en el vector E
z
. La variable rem almacena el nmero de celdas del vector que
hacen que el tamao de los vectores no sea mltiplo de cuatro. Estas posiciones se
computan por un bucle extra que realizar como mximo 3 operaciones.
Las lneas 16 y 17 de la Figura 4.10 muestran las directivas OpenMP que para-
lelizan dicho bucle. Las variables static y chunk conguran los procesos para que
se distribuyan de manera especca las iteraciones del bucle, es decir, cada uno de
los procesos realizar el nmero de iteraciones denidas en la variable chunk, el cual
depende del nmero de celdas y del nmero de procesos. El numero de procesos se
obtiene a partir del nmero de ncleos en el sistema a partir de la funcin de Open-
MP omp_get_num_procs(). En la lnea 17 se indican que variables son privadas para
cada uno de los procesos y cuales son compartidas. Las variables privadas son las
que se encargan de computar cada una de las celdas, por lo que normalmente, los
registros MMX, y los ndices de los bucles suelen ser privados, mientras que los pun-
teros a los vectores son compartidos ya que los mismos son accedidos y manipulados
por los diferentes procesos.
112 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
void Array< T >::Mul_dot_Array(Array <T>* B, Array <T>* D, int opt){
1 T *a Aligned32;
2 T *b Aligned32;
3 T *d Aligned32;
4 a = &cells_[0];
5 b = &(*B)(0);
6 d = &(*D)(0);
7 if (opt == 0){
8 for (int i = 0; i < n_cells_; i++, a++, b++, d++)
9 *d = *a * (*b);
10 }else if (opt == 1){
11 register int i, rem;
12 register __m128 xmm0, xmm1;
13 rem = n_cells_ % 4;
14 _mm_empty();
15 int chunk = n_cells_/(omp_get_num_procs()*omp_get_num_procs());
16 #pragma omp parallel for schedule (static, chunk) \
17 private (i, xmm0, xmm1, rem) shared(a, b, d, chunk)
18 for (i = 0; i < n_cells_ - rem; i+=4){
19 xmm0 = _mm_load_ps(&a[i]);
20 xmm1 = _mm_load_ps(&b[i]);
21 xmm0 = _mm_mul_ps (xmm0, xmm1);
22 _mm_store_ps(&d[i], xmm0);
23 }
24 for (i = n_cells_ - rem; i < n_cells_; i++)
25 d[i] = a[i] * b[i];
26 }
Figura 4.10: Cdigo que implementa la ecuacin (3.37) para las versiones secuencial y
optimizada mediante vectorizacin con los registros SSE y paralelizada con OpenMP.
4.1 Optimizacin del mtodo de las DFDT en microprocesadores 113
Esta losofa de paralelizar los bucles se puede aplicar al resto de operaciones
relacionadas con la actualizacin del campo electromagntico, (3.36)-(3.40) para el
caso de simulacin de medios dielctricos y (3.76)-(3.82) para la simulacin con CFA.
En este trabajo se han utilizado dos estaciones de computo con las caracters-
ticas listadas en la Tabla 4.2. Las dos estaciones presentan un hardware similar.
Sin embargo, hay que destacar la diferencia de arquitecturas entre el microproce-
sador disponible en Bell, respecto al instalado en Clerk. La memoria cach de nivel 3
disponible en la estacin Clerk est basada en 4 mdulos de 2 MB compartidos por
los cuatro ncleos disponibles por el microprocesador i7-950. Por otro lado, la arqui-
tectura del microprocesador Q6600 se basa en dos microprocesadores Dual Core
TM
en el mismo encapsulado. Cada microprocesador Dual Core
TM
dispone de 4 MB de
memoria cache. Estas diferencias en la arquitectura del hardware repercutirn en el
rendimiento de aplicaciones tal y como se mostrar en la Seccin 5.
Bell Clerk
Procesador Intel Q6600 Intel i7-950
Ncleos 4 4
Procesos 4 8
Reloj 2,4 GHz 3,06 GHz
Cach L2 8 MB L3 8 MB
DRAM 8 GB DDR2-800 6 GB DDR3-1333
GPU GeForce GTX-460 GeForce GTX-470
Tabla 4.2: Especicaciones tcnicas de las estaciones de cmputo utilizadas.
A continuacin se muestran algunos indicios sobre el impacto de la vectorizacin
y el paralelismo en las UPC sobre la implementacin del mtodo de las DFDT sobre
las ecuaciones (3.76)-(3.82) para medios dielctricos sin prdidas y no dispersivos.
En la Tabla 4.3 se muestran los tiempos de ejecucin y el rendimiento en nmero
de operaciones de coma otante por segundo (denido a partir del trmino an-
glosajn Floating Point Operations per Second (Flops)) para las dos estaciones con-
sideradas. Cada una de las versiones se corresponde con un estado del cdigo que
implementa el mtodo de las DFDT. Para el primer caso (no ags) se obtienen los
tiempos de ejecucin ms largos en ambas plataformas ya que se corresponde con la
implementacin secuencial convencional, sin vectorizacin automtica. El caso ag
-O3 se corresponde con la vectorizacin automtica realizada por el compilador. Se
puede deducir que el cdigo secuencial presenta una morfologa apropiada para la
auto vectorizacin ya que en ambas plataformas se reduce el tiempo de computo
de manera considerable. Las principales caractersticas que facilitan la vectorizacin
automtica son principalmente, el uso de punteros, la proximidad de datos y el uso
114 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
de bucles sin saltos condicionales. Tal y como se ha mostrado en la Figura 4.10 (para
las lneas que implementan la versin secuencial), el uso de punteros y la conversin
del operador de multiplicacin punto a punto de una matriz al mismo operador pero
para el caso de un vector unidimensional favorece que las prestaciones obtenidas por
la vectorizacin automtica, sean signicativas.
El tercer caso contempla la adicin de los registros MMX y por lo tanto el proceso
de vectorizacin implcita. Se aprecia que para este caso, se produce una reduccin
signicativa del tiempo de ejecucin y por lo tanto un aumento del caudal. Final-
mente, se muestran los tiempos de ejecucin aadiendo la paralelizacin mediante
OpenMP. Vemos que para este caso se consiguen los tiempos de ejecucin ms re-
ducidos, ya que se estn utilizando mltiples procesos y las instrucciones vectoriales
al unsono.
Bell Clerk
Versin T(ms) GFlops T(ms) GFlops
no ags 150,58 0,181 48,61 0,56
ag -O3 115,92 0,2349 22,41 1,2
SSE 90,93 0,3 11 2,48
SSE+OpenMP 67 0,4 4,41 6,18
Tabla 4.3: Tiempos de ejecucin y rendimiento para las dos estaciones de trabajo y en
funcin de la optimizacin introducida.
Si se dene el SpeedUp como el cociente entre el tiempo de ejecucin de la versin
secuencial de un cdigo entre la versin paralela
SpeedUp =
T
sec
T
par
, (4.2)
y se computa dicho valor para ambas estaciones de cmputo, considerando el tiempo
de la versin secuencial como aquella obtenida a partir de la auto vectorizacin, se
obtienen los siguientes valores:
SpeedUp
Bell
=
T
O3
T
SSE+OpenMP
=
115,92 10
3
67 10
3
= 1,72 (4.3)
SpeedUp
Clerk
=
T
O3
T
SSE+OpenMP
=
22,41 10
3
4,41 10
3
= 5,1 (4.4)
Si analizamos estos datos de manera preliminar, podemos llegar a la conclusin
de que la optimizacin implementada es satisfactoria, ya que es cercana al nmero
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 115
de ncleos presentes en cada microprocesador, tal y como se detalla en la Tabla 4.2.
Realmente, aunque el microprocesador Q6600 detalle en sus especicaciones que
contiene 4 ncleos, en la realidad contiene 2 ncleos cada uno de los cuales tiene
replicadas ciertas partes de su arquitectura. Adems, cada par de ncleos presenta
una memoria cach L2 de 4 MB cada una, por lo que el ratio de mejora terico
se acercara 2. Por el contrario, la arquitectura de los i7 es mucho ms verstil, ya
que la cach de L3 est unicada para todos los ncleos, por lo que mejora en gran
medida las prestaciones del microprocesador. Este razonamiento se ver corroborado
en el Captulo 5 donde los resultados relacionados con la optimizacin se analicen de
manera exhaustiva.
4.2. Optimizacin del mtodo de las DFDT en
unidades de procesado grco
En esta seccin se va a introducir la arquitectura de las UPG y las decisiones
tomadas para la implementacin del mtodo de las DFDT en esta arquitectura. El
familiarizarse con esta arquitectura es de vital importancia para poder llevar a cabo
una programacin en estos dispositivos con xito. Si bien adaptar los programas
para esta arquitectura es sencillo, es ms complicado optimizar estas implementa-
ciones para sacar el mximo partido de las mismas.
4.2.1. Historia de los procesadores grcos
El desarrollo de las tarjetas grcas durante esta ltima dcada es fruto de la
constante revolucin en el mundo de los videojuegos y de las aplicaciones multi-
media. Desde 1999, NVIDIA
TM
ha desarrollado una gran cantidad de procesadores
grcos con la nalidad de permitir la computacin en tiempo real de aplicaciones
grcas y multimedia. No fue hasta aproximadamente el ao 2003, cuando diferentes
lenguajes de alto nivel como DirectX, OpenGL y Cg permitieron adaptar diferentes
algoritmos altamente paralelizables, obteniendo mejoras sustanciales. Estas primeras
tentativas basadas en utilizar alguna UPG grca fueron las que crearon el trmi-
no de programas de Propsito General basado en Unidades de Procesado Grco
(PGUPG).
Los resultados ofrecidos por los programas de PGUPG ofrecan muy buenas ex-
pectativas sobre esta tecnologa, pero al mismo tiempo tambin una gran serie de
116 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
inconvenientes. El primero de ellos se basaba en la necesidad por parte del progra-
mador, de conocer exhaustivamente tanto la arquitectura de la UPG, como la interfaz
de programacin de aplicacin (conocida por el trmino anglosajn Application Pro-
gramming Interface (API)). El segundo de los inconvenientes era que los problemas a
implementar deban abstraerse a identidades grcas como coordenadas de vrtices,
pxeles, texturas, etctera. El tercer factor a tener en cuenta era que operaciones bsi-
cas como lecturas y escrituras aleatorias no estaban contempladas en los primeros
procesadores grcos, ya que no estaban ideados para la computacin fuera del m-
bito grco. El ltimo de los factores y posiblemente uno de los ms importantes y
que ha sido resuelto relativamente hace poco tiempo, ha sido la compatibilidad con
nmero de coma otante de precisin doble.
Para subsanar estos inconvenientes, NVIDIA
TM
desarroll el procesador grco
G80 y CUDA. Tanto el hardware como el software fueron ideados para ser progra-
mados por lenguajes de alto nivel y reconocidos en el mbito cientco (C/C++, y
Fortran, entre otros). Las extensiones de CUDA permiten ser utilizadas en lenguajes
de alto nivel y por lo tanto evitan al usuario tener que dominar APIs complejas
diseadas para otro tipo de aplicaciones.
A partir de esta generacin de UPG, NVIDIA
TM
deni un nuevo trmino rela-
cionado con el modelo de ejecucin, este trmino se dene como instruccin nica
sobre mltiples hilos o denida en ingls como Single Instruction Multiple Thread
(SIMT), donde una nica instruccin se ejecuta de manera simultnea sobre dife-
rentes hilos de ejecucin. Cabe destacar que aunque el concepto es muy similar al
modelo SIMD, el contexto es ligeramente diferente.
En Junio de 2008, NVIDIA
TM
comenz a distribuir una revisin de la arquitectura
G80, en los productos GeForce GTX 280, Quadro FX 5800 y Tesla T10. Esta segunda
generacin de UPG destac por el aumento del nmero de Streaming Processors
(SMs), y por lo tanto de los denominados ncleos CUDA (de 128 a 240). Tambin se
incluy el acceso coalescente de memoria para aumentar el rendimiento en el acceso
a memoria y el soporte a nmeros en coma otante de precisin doble para suplir las
necesidades de la computacin de alto rendimiento.
La evolucin natural de estas unidades de procesamiento en la actualidad se
sitan en la familia Fermi
TM
, la cual se basa en un cambio sustancial de la arquitec-
tura interna de las UPG transparente al usuario y que ha favorecido el aumento de
las prestaciones y la reduccin de la complejidad en la implementacin de algoritmos
en este tipo de dispositivos.
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 117
Bloque (0,0) Bloque (1,0) Bloque (2,0)
Bloque (0,1) Bloque (1,1) Bloque (2,1)
Hilo (0,1) Hilo (0,1) Hilo (0,1) Hilo (1,1) Hilo (2,1) Hilo (3,1) Hilo (3,1) Hilo (3,1)
Hilo (0,0) Hilo (0,0) Hilo (0,0) Hilo (1,0) Hilo (2,0) Hilo (3,0) Hilo (3,0) Hilo (3,0)
Hilo (0,2) Hilo (0,2) Hilo (0,2) Hilo (1,2) Hilo (2,2) Hilo (3,2) Hilo (3,2) Hilo (3,2)
Bloque (1,1)
Figura 4.11: Organizacin de los hilos en CUDA.
4.2.2. Introduccin a la arquitectura de los procesadores
grcos
CUDA es un concepto que engloba tanto la parte hardware como la software
que permite al usuario utilizar lenguajes de alto nivel como C++ o Fortran para
programar las UPG [6]. Un programa en CUDA se basa en la llamada a un kernel.
Un kernel se ejecuta de forma paralela a lo largo de mltiples hilos. El programador
y el compilador organiza estos hilos en bloques y su vez, la agrupacin de bloques
recibe el nombre de malla o Grid. Cada hilo perteneciente a un bloque ejecuta una
instancia del kernel y presenta un Identicador (ID) que lo dene en el bloque de
forma inequvoca. Un bloque de hilos es un conjunto de hilos que trabajan de forma
concurrente y que pueden colaborar entre ellos a travs de barreras de sincronizacin
y memoria de tipo compartida. Cada bloque de hilos tiene un ID nico en la malla.
Un conjunto de bloques conforman la malla, la cual ejecuta el mismo kernel, lee y
escribe los datos de entrada y salida en la memoria global del sistema, etctera. En
la Figura 4.11 se ilustra la jerarqua de hilos, bloques y malla en CUDA
TM
.
118 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
En el modelo de programacin CUDA, cada hilo tiene asignado una regin de
memoria privada y un nmero determinado de registros. De forma similar, cada
bloque tiene una memoria compartida limitada la cual es utilizada para compartir
datos y comunicar los diferentes hilos que conforman el bloque. Llegado a este punto,
cabe hacer un inciso en la jerarqua de memorias en CUDA [7] para presentarlas al
lector adecuadamente:
Registros: Cada multiprocesador contiene varios centenares de registros, cuyo
acceso es de tipo local y extremadamente rpido. El mbito de aplicacin de
estos registros es a nivel de kernel, por lo que una vez nalizada la funcin en
el dispositivo, estos registros pierden el valor almacenado.
Memoria compartida: Los procesadores presentes en un multiprocesador tienen
acceso a un tamao nito de este tipo de memoria en la arquitectura Fermi.
En concreto se puede utilizar hasta 48 kB, la cual sirve de va de comunicacin
entre los diferentes hilos en un bloque. Esta memoria est fsicamente en el chip
junto a los ncleos por lo que su latencia es muy reducida y se usa esencialmente
en aplicaciones de alto rendimiento. Presenta el mismo mbito de aplicacin
que los registros. Por lo que al nalizar el kernel, no se asegura que la memoria
compartida mantenga los datos del antiguo kernel.
Memoria global: Es la memoria ms extensa (como mximo es de hasta 6
GB) y fsicamente est localizada fuera del chip grco, pero en la tarjeta.
Esta memoria permite accesos desde cualquier hilo y cualquier bloque, aunque
su velocidad de acceso es la ms lenta de todas las memorias presentes en
el sistema, con una latencia del orden de pocos cientos de ciclos de reloj. El
mbito de aplicacin de la memoria global es a nivel de aplicacin, por lo que
mltiples kernels pueden ser llamados desde el host (husped, el cual hace
referencia a la UPC del computador) y que manipulen los datos de la memoria
global.
Memoria constante y de texturas: Este tipo de memorias presentan la misma
velocidad de acceso que la memoria global, aunque el acceso a la mismas es
ligeramente diferente, lo que permite acelerar su lectura, aunque estrictamente
son memorias de slo lectura. Tienen el mismo mbito de aplicacin que la
memoria global.
Memoria de Host: La memoria de la UPC no es accesible desde la UPG, por
lo que es necesario realizar cargas y descargas de memoria desde el host a la
tarjeta grca y de la tarjeta al host para analizar los resultados. Este proceso
debe realizarse por el bus del sistema PCI Express, el cual representa el punto
ms dbil de la arquitectura por su reducido ancho de banda comparado con el
presente en la UPG. En todos los casos se recomienda minimizar el trco por
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 119
este bus y limitarlo a los procesos de carga y descarga de informacin inicial
y nal respectivamente.
En la Figura 4.12 se ilustra la arquitectura Fermi desarrollada por NVIDIA
TM
.
En dicha ilustracin se muestran 16 Streaming Processors (SMs), los cuales pueden
albergar uno o ms bloques de hilos. Cada uno de los ncleos CUDA, as como el resto
de unidades presentes en el SM ejecutan hilos. Cada uno de los SM ejecuta grupos
de 32 hilos los cuales se identican como warp y es la unidad de trabajo en CUDA.
La gestin de los warps es transparente al usuario, aunque el seguir un conjunto
de reglas respecto a la manipulacin de estos warps permite reducir la latencia y
aumentar el rendimiento de las aplicaciones en gran medida.
Red de interconexin
Unidades de Funciones especiales
Unidades de Lectura/Escritura
Unidades de ejecucin
Registros y cach L1
Gestor y distribuidor de hilos
D
R
A
M
I
n
t
e
r
f
a
z
H
o
s
t
G
e
s
t
i

n
d
e

H
i
l
o
s
D
R
A
M
D
R
A
M
D
R
A
M
D
R
A
M
D
R
A
M
Cach L2
Figura 4.12: Arquitectura Fermi.
La primera UPG basada en la arquitectura Fermi
TM
contiene 512 ncleos CUDA.
Cada ncleo CUDA ejecuta una operacin en coma otante o entera por ciclo de
reloj y por hilo. Cada uno de los ncleos contiene una UAL y una Unidad de Coma
Flotante (UCF) completa. Cada SM dispone de 16 unidades de lectura y escritura
120 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
Ncleo Ncleo
L/E
L/E
L/E
L/E
L/E
L/E
L/E
L/E
L/E
L/E
L/E
L/E
L/E
L/E
L/E
L/E
UFE
UFE
UFE
UFE
Cach de instrucciones
Gestor de warps Gestor de warps
Unidad de distribucin Unidad de distribucin
Banco de registros
(32.768 x 32-bits)
Memoria compartida 64 kB / Cach L1
Red de interconexin
Cach uniforme
Figura 4.13: Estructura de un multiprocesador en la arquitectura Fermi
TM
.
que permiten realizar operaciones de entrada/salida entre la memoria global (DRAM)
y/o memoria cach a 16 hilos al unsono y en un nico ciclo de reloj. Adems,
las funciones especiales como pueden ser las trigonomtricas, racionales, etctera,
son realizadas en una Unidad de Funciones Especiales (UFE). En cada SM hay
disponibles cuatro UFEs y un warp consume 8 ciclos de reloj en realizar una de estas
operaciones especiales. Los 512 ncleos estn organizados en 16 SMs de 32 ncleos
cada uno. El multiprocesador existente en la arquitectura Fermi
TM
se considera el
tercero de su generacin. En la Figura 4.13 se muestra un esquema en detalle de
un SM de los 16 ilustrados en la Figura 4.12.
La capacidad de la memoria DRAM es de hasta 6 GB y de tipo GDDR5. Existe
una interfaz que se encarga de gestionar las comunicaciones con el host va bus PCI-
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 121
Express, y el encargado de distribuir los diferentes bloques entre los SMs es el gestor
global. Cada uno de los SMs contiene un gestor de hilos que asigna los recursos
presentes en cada multiprocesador a cada uno de los hilos que conforman el bloque.
Una de las innovaciones que ms ha repercutido en la mejora de las prestaciones
de estos dispositivos es la presencia de la memoria compartida en el propio encapsu-
lado del microprocesador. La memoria compartida facilita la cooperacin entre hilos
y la reutilizacin de datos reduciendo el trco entre memoria global y la UPG. De
hecho, el buen uso de esta memoria es la clave a la hora de trasladar los algoritmos
a la UPG. Los primeros modelos (G80 y GT200) presentaban 16 kB de memoria
compartida por multiprocesador, mientras que en la nueva arquitectura Fermi
TM
hay disponibles 64 kB por SM. Esta memoria puede congurarse como 48 kB de
memoria compartida con 16 kB de cach L1 o como 16 kB de memoria compartida
y 48 kB de memoria cach L1.
Esta posibilidad permite que aplicaciones que realizan un uso exhaustivo de la
memoria compartida sigan siendo compatibles con esta arquitectura, vindose favore-
cidas por el aumento del tamao de esta memoria. Por otro lado, se puede obviar el
uso de la memoria compartida de manera directa y utilizarla de manera implcita, a
travs de la cach, la cual es gestionada directamente por el hardware del SM.
4.2.3. Modelo de programacin
El modelo de programacin de las UPGs se basan en que los hilos CUDA se
ejecutan en un dispositivo diferente al microprocesador disponible en el host, el cual
ejecuta un programa en C/C++. Del mismo modo, tanto el host como el dispositivo
tienen memorias DRAM separadas, por lo que una reserva y posterior liberacin, as
como transferencias entre dispositivos sern necesarias para proporcionar el conjunto
de datos necesarios al dispositivo. Este concepto se ilustra en la Figura 4.14, donde
la ejecucin comienza con un proceso en el host. Dicho proceso despus de haber
realizado las reservas en la memoria global necesarias para la aplicacin y su posterior
transferencia, invoca una funcin kernel. En este punto la ejecucin se traslada a
la UPC, donde un gran nmero de hilos procesan los datos alojados en la memoria
global del dispositivo. Todos los hilos generados por el kernel se agrupan en lo que
se conoce como la malla. La organizacin de la malla puede diferir de un kernel en
funcin de los intereses del usuario, ya que los ndices que estructuran la malla estn
relacionados con los ID de los hilos y por lo tanto, del rango de datos que pueden
acceder. Cuando los hilos completan todos los clculos, la malla naliza transriendo
los datos resultantes a la memoria en el host. La ejecucin del programa continua en
el propio host hasta que se produzca una nueva llamada a un kernel.
122 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
Bloque (0,0) Bloque (1,0) Bloque (2,0)
...
Bloque (0,0) Bloque (1,0) Bloque (2,0)
...
Cdigo secuencial UPC
Kernel paralelo
KernelA<<<M, B>>>(args)
Cdigo secuencial UPC
Kernel paralelo
KernelB<<<M, B>>>(args)
Malla
Malla
Figura 4.14: Ejecucin de un programa CUDA
Dado que todos los hilos ejecutan el mismo kernel, es necesario una jerarqua
y un orden en la distribucin de los hilos. El mecanimo que utiliza CUDA para
esta tarea es la asignacin de unas coordenadas nicas a cada uno de ellos. Esta
coordenada permite identicar la porcin de datos que el hilo debe de procesar. La
jerarqua mencionada consta de dos niveles indexados por coordenadas nicas. Cada
uno de los hilos identicados por la variable threadIdx estn organizados en bloques
(indexados por la variable blockIdx). Ambas variables son un tipo predenido y
preinicializado en CUDA, las cuales pueden ser consultadas en todo momento dentro
de un kernel.
Un hilo ejecutndose en un kernel puede acceder a sus coordenadas accediendo a
las variables blockIdx y threaIdx. Tambin existen un conjunto de variables extras
que permiten conocer las dimensiones de la malla y el tamao de cada bloque, las
cuales son gridDim y blockDim respectivamente.
En la Figura 4.15 se ilustra un ejemplo sencillo en CUDA basado en la suma de
dos vectores. Los vectores son de tamao L y la malla en este caso est formada por
N bloques de hilos, cada uno de ellos tiene un identicador nico (blockIdx.x) que
toma valores de 0 a N 1. Cada uno de los bloques consiste en M hilos identicados
por el ndice threadIdx.x, el cual toma valores de 0 a M1. En este caso particular,
tanto los bloques como los hilos estn organizados en estructuras unidimensionales.
La malla en total tiene N M hilos realizando la suma de los vectores a y b.
Las cajas grises de la Figura 4.15 muestran el fragmento del cdigo presente
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 123
__global__ void add (int* a, int* b, int* c){
int tid = blockIdx.x*
blockDim.x + threadIdx.x;
if (tid < L){
c[tid] = a[tid] + b[tid];
}}
0 2 3 4 M-1 1 5 ...
Bloque de Hilos 0
__global__ void add (int* a, int* b, int* c){
int tid = blockIdx.x*
blockDim.x + threadIdx.x;
if (tid < L){
c[tid] = a[tid] + b[tid];
}}
0 2 3 4 M-1 1 5 ...
Bloque de Hilos 1
__global__ void add (int* a, int* b, int* c){
int tid = blockIdx.x*
blockDim.x + threadIdx.x;
if (tid < L){
c[tid] = a[tid] + b[tid];
}}
0 2 3 4 M-1 1 5 ...
Bloque de Hilos N-1
.
.
.
+ +
...
...
a
b
c
...
+
...
a
0
a
1
a
2
a
3
a
4
a
5
a
L-1
b
0
b
1
b
2
b
3
b
4
b
5
b
L-1
c
0
c
1
c
2
c
3
c
4
c
5
c
L-1
Figura 4.15: Ejemplo de una suma de vectores en CUDA, a la derecha se muestra la
organizacin de los hilos y el kernel que ejecutan cada uno de ellos.
124 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
en el kernel. Este cdigo utiliza la variable tid para identicar el fragmento de los
datos tanto de entrada como de salida a procesar. Por ejemplo, el hilo 3 del bloque
0 tendr un identicador tid = blockIdx.x*blockDim.x + threadIdx.x = 0*M +
3 = 3. De forma anloga, el hilo 3 del bloque 5 tendr un identicador tid = 5 *
M + 3.
Si se considera una malla de 128 bloques (N = 128) y que cada bloque contenga
32 hilos (M = 32), la variable blockDim ser igual a 32, por lo que el nmero total de
hilos en la malla ser de 12832 = 4096. Es tarea del programador vericar que cada
uno de los hilos presenta un identicador nico y que al mismo tiempo, la longitud
del vector sea menor o igual al nmero de hilos presentes en la malla. De esta forma,
se asegura que cada uno de los hilos compute un dato de salida del vector c.
Generalmente, la malla se organiza en bloques formando matrices bidimension-
ales, y cada bloque puede distribuir sus hilos en tipologas tridimensionales. Para
indexar cada una de estas dimensiones, se recurren a las mismas variables men-
cionadas con anterioridad (threadIdx y blockIdx). Estas variables son bsicamente
una estructura de datos de C con tres enteros: .x, .y y .z. Para el caso de la malla,
la tercera dimensin es ignorada. El uso estas tipologas a la hora de gestionar los
hilos es muy comn, ya que existen unas limitaciones respecto al nmero mximo
de hilos por dimensin en un bloque. Estas limitaciones y algunas especicaciones
tcnicas ms se enumeran en la Tabla 4.4, la cual resume algunos de los conceptos
tratados hasta el momento relacionados con la arquitectura de la familia Fermi
TM
.
Especicacin Tcnica Fermi
TM
(C.C 2.x)
Mximo valor en dimensin x e y en un malla 65535
Nmer mximo de hilos por bloque 1024
Mximo valor en dimensin x e y en un bloque 1024
Mximo valor en dimensin z 64
Tamao de warp 32
Nmero mximo de bloques por SM 8
Nmero mximo de warps por SM 48
Nmero mximo de hilos por SM 1536
Nmero de registros de 32-bit por SM 32 k
Tamao memoria compartida 48 kB
Tabla 4.4: Especicaciones tcnicas para la familia Fermi
TM
.
La organizacin en cada kernel se establece en cada llamada al mismo. El primer
parmetro de la conguracin de ejecucin especica las dimensiones de la malla en
trmino de bloques y el segundo parmetro establece las forma de agrupacin de los
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 125
hilos en cada uno de los bloques. Cada uno de estos parmetros es del tipo dim3.
Siguiendo el ejemplo anterior de la suma de dos vectores, la llamada a la funcin
kernel sera de la siguiente forma:
dim3 dimGrid(128, 1, 1);
dim3 dimBlock(32, 1, 1);
KernelFunction <<< dimGrid, dimBlock >>> (...);
Los dos primeros comandos inicializan los parmetros de conguracin tipo dim3.
Para ambos casos se ha optado por una estructura tipo unidimensional, por ello el
resto de componentes se inicializa a uno. El tercer comando es la llamada a la funcin
kernel, donde entre la secuencia <<< y >>> se sitan los parmetros de conguracin.
Cabe destacar, que para el caso del tamao de bloque no todas las combinaciones
son posibles, ya que tal y como se muestra en la Tabla 4.4, nicamente se pueden
situar 1024 hilos por bloque. Por lo que tamaos de bloque de (512, 1, 1), (8, 16,
4) o (32, 16, 2) seran admisibles mientras que (32, 32, 2) no sera posible ya que el
nmero total de hilos por bloque excedera 1024.
En denitiva, la arquitectura presentada ofrece una multitud de posibilidades
y una gran capacidad de cmputo, pero bajo ciertas condiciones, el rendimiento
ofrecido por estos dispositivos puede verse comprometido y reducido hasta el punto
de que pueden ser menores que los obtenidos por computacin tradicional basada
en una nica UPC. Para ello, se recomiendan las siguientes estrategias en cualquier
programa o aplicacin implementada en CUDA [8, 9]:
Buscar alternativas para paralelizar el cdigo a implementar: Es una de las
tareas ms complicadas y en la que muchos investigadores enfocan su trabajo
y sus esfuerzos [7, 1012]. La bsqueda de paralelizar algoritmos ya conocidos
y aceptados es una tarea compleja y depende en gran medida de la aplicacin
concreta y de la pericia del programador. La primera alternativa para con-
vertir un cdigo secuencial en uno paralelo se basa en la reorganizacin de
las operaciones, tal y como se ha mostrado en el punto 4.1. Aunque existen
situaciones en las que las fuertes dependencias entre los datos no son salvables
y es necesario reformular el algoritmo o realizar algunas aproximaciones para
salvar dicho problema [13].
Minimizar las transferencias de datos entre el host y el dispositivo: La velocidad
del bus PCI-Express es considerada un cuello de botella comparada con la
velocidad del bus de la memoria disponible en una UPG, tal y como se muestra
en la Tabla 4.5. Por ello, es de vital importancia minimizar los accesos por el
bus PCI-Express en la medida de lo posible. En la prctica, el uso de este bus
126 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
se limita al inicio y al nal del cmputo con UPG. En el inicio para cargar los
datos iniciales y la estructuras de datos necesarias para realizar el proceso y
al nal para descargar de la tarjeta los resultados del clculo.
Bus Ancho de banda (GB/s)
PCI-Express 2.0 x16 4
GTX-460 115,2
GTX-470 133,9
Tesla C2050 144
Tabla 4.5: Velocidad de bus para los buses vinculados a una UPG
Ajustar los parmetros del kernel (tamao de bloque y malla) para maximizar
la utilizacin de la UPG: Los recursos existentes en un multiprocesador in-
cluyen registros, ranuras para bloques de hilos, as como ranuras para hilos.
Estos recursos se administran de manera dinmica a hilos que estn prepara-
dos para la ejecucin. Para el caso de la UPG GTX 470 que forma parte de
la familia de procesadores grcos Fermi
TM
(vase Tabla 4.4), hay disponibles
1536 ranuras que pueden ser utilizadas por hilos preparados para ser procesa-
dos. Estos recursos se administran en tiempo de ejecucin y del mismo modo
existe una limitacin en cuanto al nmero de bloques residentes en un multi-
procesador, que en este caso es de 8 bloques. Por lo que por ejemplo, si tenemos
bloques de 192 hilos, los 1536 hilos se reparten a lo largo de 8 bloques. Esta
distribucin dinmica de recursos puede ocasionar que en algunos casos se den
situaciones de infrautilizacin de los recursos. Por ejemplo si suponemos que
cada bloque presenta 128 hilos, los 1536 hilos sern asignados a 12 bloques,
dado que nicamente caben 8 bloques por multiprocesador, slo 512 hilos se
procesarn en cada multiprocesador, por lo que nicamente el 33 % de los
recursos estarn siendo utilizados. Es conveniente que cada multiprocesador
presente una alto porcentaje de ocupacin, ya que la gestin dinmica de hi-
los permite ocultar latencias debido a divergencias en los warps o cualquier
otro factor que haga que un warp tenga que esperar para ser ejecutado. Ante
este suceso, el gestor de hilos substituye el warp en espera por otro que est
preparado para ejecucin evitando tiempos de espera innecesarios. Cuando el
porcentaje de utilizacin es bajo, las latencias y los tiempos de espera son ms
apreciables y por lo tanto el rendimiento del sistema se reduce en gran medida.
Los registros son otro de los factores que pueden limitar la ocupacin del
multiprocesador. En la arquitectura Fermi
TM
hay disponibles 32.768 registros
en cada multiprocesador. Estos registros se utilizan para almacenar variables
utilizadas en los kernels, y es el medio ms ecaz para reducir las latencias
a memoria. Las variables automticas del kernel se sitan en estos registros.
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 127
Si por ejemplo tenemos un kernel que utiliza 25 registros por hilo, y ten-
emos un bloque de 3216 hilos, el nmero total de registros utilizados es de
321625 = 12800 y de 512 hilos. Si calculamos los recursos utilizados por dos
bloques con esta conguracin obtendramos que se utilizaran 25600 registros
y 1024 hilos, donde ambos valores estaran por debajo de los valores lmites
establecidos por la arquitectura. Sin embargo si aadimos un bloque extra,
tendramos 1536 hilos en el multiprocesador y una ocupacin de 38400 reg-
istros, siendo este ltimo dato superior al disponible, por lo que nicamente
podran residir dos bloques por multiprocesador, teniendo un porcentaje de
ocupacin del 67 %.
Por ltimo, uno de los factores que pueden limitar el paralelismo es el uso de la
memoria compartida. Para este punto supondremos que la cach L1 se utiliza
como una regin de memoria compartida de 48 kB por multiprocesador ms
una de 16 kB de cach interna. Hay que tener en cuenta que la memoria com-
partida se utiliza a nivel de bloque y que cada multiprocesador puede albergar
hasta 8 bloques. A partir de este razonamiento se puede deducir fcilmente,
que cada bloque no debe almacenar ms de 6 kB. En el caso de que se exceda
este tamao, el nmero de bloques residente en un multiprocesador ser limi-
tado por el uso de la memoria compartida. Por ejemplo, si tenemos un tamao
de bloque de 3216 hilos y almacenamos dos matrices de las mismas dimen-
siones que el tamao de bloque se necesitarn 32 16 2 4 = 4096 Bytes.
Dado que pueden haber hasta 8 bloques por multiprocesador, la memoria com-
partida utilizada en total ascendera a 32,768 kB, lo cual est por debajo de
la capacidad de la memoria. En realidad, en este caso el factor que limita el
nmero de bloques por multiprocesador es el nmero de hilos, ya que 3 bloques
saturara el nmero total de hilos disponibles por multiprocesador.
Para facilitar estos clculos, hay disponible una hoja de clculo en Excel [14]
disponible de forma gratuita que permite calcular los porcentajes de ocupacin
a partir de los parmetros de conguracin del kernel. El nmero de registros
utilizados por kernel, as como la cantidad de memoria compartida reserva-
da puede obtenerse de manera sencilla mediante inspeccin o mediante datos
proporcionados por el compilador, en ambos casos de manera sencilla.
Maximizar en la medida de lo posible los accesos a memoria global de tipo
coalescente: El acceso coalescente a memorias DRAM se basa en la idea de
optimizar el acceso a memoria global del sistema mediante un proceso de pa-
ralelizacin. Este mecanismo consiste en que para cada acceso a memoria, las
posiciones adyacentes a la posicin solicitada pueden ser accedidas en el mismo
proceso de lectura, aumentando la velocidad de lectura. A nivel hardware se
identica si las direcciones que se desean acceder son consecutivas, unicando
todo el acceso en uno solo. Dado que en un warp ejecuta el mismo cdigo
128 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
m
00
m
01
m
02
m
03
m
10
m
11
m
12
m
13
m
20
m
21
m
22
m
23
m
30
m
31
m
32
m
33
t(0) t(1) t(2) t(3) t(0) t(1) t(2) t(3)
m
00
m
10
m
20
m
30
m
01
m
11
m
21
m
31
Direccin de acceso del
cdigo en el kernel
m
00
m
01
m
02
m
03
m
10
m
11
m
12
m
13
m
20
m
21
m
22
m
23
m
30
m
31
m
32
m
33
Direccin de acceso del
cdigo en el kernel
Iteracin 1 Iteracin 2
t(0) t(1)
m
00
m
10
m
20
m
30
m
01
m
11
m
21
m
31
Iteracin 1
Iteracin 2
t(0) t(1)
...
...
(a)
(b)
Figura 4.16: (a) Patrn de acceso coalescente. (b) Patrn de acceso no coalescente.
dentro de un kernel, a priori es fcil identicar si el acceso a memoria global
va a ser de tipo coalescente (contiguo) o no. Un ejemplo de este fenmeno se
muestra en la Figura 4.16. En concreto, en la Figura 4.16a se ilustra el caso
de un acceso a una matriz almacenada por columnas. En dicha ilustracin se
muestra que los accesos producidos en la primera iteracin se realizan en el
mismo instante ya que todas las posiciones estn contiguas en memoria global,
adems estos accesos se realizan por hilos ordenados del 0 al 3. En este caso
la lectura se realiza por columnas, por lo que se favorece la coalescencia ya
que se est leyendo en el mismo orden de almacenamiento. En cambio, en la
Figura 4.16b se muestra el caso para un acceso no coalescente. En este caso el
orden de acceso del kernel es por las, por lo que el hardware detectar que
no puede acceder de una sola vez y deber realizar mltiples accesos para leer
toda la la.
Substituir los accesos a memoria global por memoria compartida siempre que
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 129
sea posible: Esta estrategia se basa en la reutilizacin de datos, y es la que
consigue aumentar el rendimiento hasta los lmites mximos del dispositivo.
Debido a que la memoria compartida presenta una velocidad de acceso prxima
a la de los registros, los datos ms frecuentes en el algoritmo pueden situarse en
esta memoria para evitar accesos a memoria global innecesarios. Usualmente,
es una tarea difcil ya que el tamao de la memoria compartida es reducido
y en la mayora de los casos insuciente para abarcar toda la informacin
necesaria, aunque existen alternativas basadas en la segmentacin del problema
que permiten reutilizar en gran medida los datos y mejorar las prestaciones
del algoritmo. En el caso de la arquitectura Fermi
TM
se puede obviar el uso
de la memoria compartida como tal y utilizar memoria de cach de nivel 1 o
L1. Esta cach funciona de la misma forma que la memoria compartida con la
salvedad de que es gestionada automticamente por el dispositivo. Una manera
de monitorizar el patrn de accesos es a partir de la medida del Ancho de Banda
Efectivo AB
ef
. Esta mtrica se obtiene a partir de la siguiente expresin [8]:
AB
ef
=
B
l
+B
e
T 10
9
, (4.5)
donde B
l
y B
e
son el nmero de bytes ledos y escritos en memoria global
por un kernel y T es el tiempo en segundos de ejecucin de dicho kernel. El
resultado est proporcionado en GB/s. Esta medida indirecta permite conocer
el estado del bus entre la memoria global y el procesador grco. Valores
muy bajos comparados con el mximo proporcionado por el fabricante indican
que el acceso a memoria no es eciente y por lo tanto que las prestaciones
de la UPG estarn por debajo de los valores ptimos. Por otro lado valores
superiores al 75 % del ancho de banda mximo se consideran valores ms que
aceptables [12, 15]. En algunas situaciones es posible superar el ancho de banda
mximo debido al uso intensivo de la cach. Este fenmeno, se va a explicar
con ms detalle en la Seccin 4.2.4.
Evitar divergencia en los caminos de los warps: La divergencia de un conjunto
de hilos que conforman el warp viene dada por comandos de tipo condicional.
El ujo de instrucciones puede degradar el rendimiento de la aplicacin si se
rompe el paralelismo a nivel de warp, es decir, si hilos pertenecientes a un mis-
mo warp ejecutan diferentes instrucciones debido a una bifurcacin ocasionada
por una condicin del tipo if,else. Bajo esta situacin, el warp est ocupan-
do los recursos del multiprocesador hasta que todos los ujos de instrucciones
de los hilos que lo conforman hayan nalizado. En concreto, la ejecucin del
warp se realizara en dos ciclos. El primero de ellos se encargara de evaluar
el conjunto de hilos dentro del warp que realizan las instrucciones dentro del
if, mientras el resto de hilos estn a la espera. Una vez nalizada esta etapa,
es necesario un segundo ciclo para que los hilos que estaban inactivos realicen
130 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
las instrucciones de la seccin else. Durante estas dos etapas, parte del warp
se mantiene activo realizando instrucciones mientras que el resto del mismo
est detenido a la espera, reduciendo la eciencia en el uso de los recursos del
sistema. Para minimizar esta situacin se debe recurrir al identicador de hilo
y tratar que el warp al completo siga el mismo ujo de informacin.
4.2.4. Implementacin del mtodo de las DFDT prelimi-
nar mediante CUDA
La actualizacin de las ecuaciones que gobiernan el mtodo de las DFDT en
una UPG sigue una estructura similar a la denida en el punto 4.1. El objetivo
principal se basa en proyectar un conjunto de hilos que se encarguen de actualizar
el conjunto de ecuaciones (3.36)-(3.40). Para ello se va a utilizar la estructura de
kernels mostrada en la Figura 4.18a. En este diagrama de bloques se muestran los
kernels que se invocan en cada iteracin del mtodo de las DFDT y las ecuaciones
que implementan cada uno de los mismos.
Las dimensiones de cada bloque se muestran en la Figura 4.18b, donde se orga-
nizan 512 hilos en un bloque de 256 las y 2 columnas. Esta conguracin permite
maximizar el rendimiento debido a varios factores:
Favorece el acceso a memoria coalescente, ya que 256 hilos acceden de manera
consecutiva a posiciones de memoria contigua.
Dado que la actualizacin de las ecuaciones que actualizan los campos presen-
tan trminos que necesitan del valor en celdas adyacentes, el bloque denido
permite reutilizar la cach del sistema de manera eciente.
El que la dimensin de los bloques sea mayor en las que en columnas, favorece
que existan un mayor nmero de warps y que por lo tanto, el gestor de hilos
pueda enmascarar las latencias de algunos de ellos introduciendo unidades de
trabajo en espera a la cola de ejecucin.
La estructura de bloque ilustrada en la Figura 4.18b es aplicada al clculo total
del campo mediante una malla de n
c
/2 1, donde n
c
es el nmero de columnas que
conforman el espacio de simulacin, es decir el nmero de celdas en el eje fsico y
tal y como se ilustra en la celda de Yee bidimensional (vase Figura 3.6). Por lo que
al lanzar el kernel se inicializan n
c
/2 bloques de 512 hilos organizados en dos las
de 256 cada una de ellas. Cada uno de estos bloques recorre las dos columnas que
tenga asignadas a partir de su identicador. Por ejemplo, el bloque 3 se encargar de
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 131
Kernel CUDA: Update_Electric_Kernel
D
z
|
i,j
= D
z
|
i,j
+ cC
h
|
i,j
n+1/2 n-1/2
C
h
|
i,j
= H
y
|
i+1/2,j
- H
y
|
i-1/2,j
- H
x
|
i,j+1/2
+ H
x
|
i,j-1/2
n n n n
Kernel CUDA: Update_Magnetic_Kernel
H
y
|
i+1/2,j
= H
y
|
i+1/2,j
- cC
e
|
i,j
n+1 n
C
e
|
i,j
= E
z
|
i+1,j
- E
z
|
i,j
n+1/2 n+1/2
H
x
|
i,j+1/2
= H
x
|
i,j+1/2
- cC
e
|
i,j
n+1 n
C
e
|
i,j
= E
z
|
i,j
- E
z
|
i,j+1
n+1/2 n+1/2
E
z
|
i,j
= G
a
|
i,j
D
z
|
i,j
n+1/2 n+1/2
~ ~
~ ~
~ ~
~ ~
B
l
o
c
k

N
Thread
(0, 0)
Thread
(0, 1)
Thread
(1, 0)
Thread
(1, 1)
Thread
(255, 0)
Thread
(255, 1)
.
.
.
...
B
l
o
c
k

1
B
l
o
c
k

2
(b)
(a)
Figura 4.17: (a) Esquema de los kernels invocados para el clculo del campo electromag-
ntico en dos dimensiones mediante CUDA. (b) Estructura de cada uno de los bloques de
la malla.
132 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
BlockDim.x
BlockDim.y
n
f
n
c
Figura 4.18: Clculo de las componentes del campo a partir de la estructura de bloque
propuesta.
actualizar las componentes de las columnas 6 y 7. Concretamente, cada hilo calcula
la columna que tiene que procesar a partir de la relacin blockIdx.y*blockDim.y
+ threadIdx.y. Por ejemplo, para el caso de una simulacin de tamao 256256
(n
f
= 256 y n
c
= 256), el hilo (64, 2) del bloque (1, 13), se encargar de procesar la
columna 213 + 2 = 38, mientras que el hilo (64, 1) realizar la misma tarea para
la columna 37.
Para el caso en el que el nmero de las sea mayor que el tamao de bloque en
la primera dimensin (256) hay que realizar una estrategia de barrido que consiste
en que cada bloque procesa los datos de cada par de columnas en n
f
/256 pasos.
Por ello, es necesario introducir un bucle en el kernel que se encargue de recorrer las
columnas. Siguiendo con el ejemplo del hilo (64, 2) del bloque (1, 13), se encargara
de procesar las columnas 37 y 38, mientras que para la primera iteracin del bucle en
el interior del kernel computara las las de la 0 a la 255. Para la segunda iteracin
se actualizaran las componentes del campo de la 256 a la 511, y as sucesivamente.
Esta estrategia permite obtener muy buenos resultados en trminos de ancho de
banda entre memoria global y procesador grco, as como unas buenas prestaciones
en trminos de rendimiento. En nuestro caso, las UPG utilizadas son dos tarjetas
NVIDIA
TM
instaladas en dos computadores diferentes. Las especicaciones tcnicas
de dichas tarjetas se muestran en la tabla 4.6.
La conguracin del bloque en trminos de organizacin y tamao se ha estable-
cido para favorecer el acceso coalescente, y la reutilizacin de la memoria cach. Por
ello, se ha optado por denir bloques bidimensionales con un nmero mayor de -
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 133
Frecuencia (MHz) Memoria
Modelo Memoria (MB) SM Nucleo Memoria AB (GB/s) GFlops
460 1024 7 1350 1700 115,2 907,2
470 1280 14 1215 1674 133,9 1088,64
Tabla 4.6: Especicaciones tcnicas para las tarjetas grcas GeForce GTX 460 y 470.
las que de columnas. El jar un nmero de las elevado es para favorecer el acceso
coalescente a lo largo de las columnas. Para decidir el tamao de bloque ptimo,
se han realizado diversas pruebas con diferentes tamaos de bloque. Para cada una
de estas pruebas se ha medido el tiempo invertido por cada uno de los dos kernels
detallados en la Figura 4.18. En concreto se identica el primer kernel como k
e
, ya
que actualiza las componentes del campo elctrico, mientras que el segundo kernel
actualiza el campo magntico, por lo que se identicar a travs del ndice k
h
.
Para cada uno de los casos se ha calculado el rendimiento en Flops por segundo,
el cual dene el nmero de operaciones en coma otante realizadas en un segundo. En
la actualidad, dado que los microprocesadores presentan rendimientos del orden de
billones de operaciones, se suele utilizar para simplicar el trmino de GFlops/s. Para
obtener este parmetro basta con evaluar el nmero de operaciones que involucran
trminos en como otante (sumas, restas, multiplicaciones, etctera) y dividir dicha
cantidad de operaciones entre el tiempo invertido en ellas.
2562 1284 1924 2564 648
t
k
e
(ms) 1,41 1,44 1,52 1,47 1,51
t
k
h
(ms) 1,19 1.25 1,21 1,21 1,31
AB
k
e
ef
(GB/s) 148,81 145,78 137,78 142,97 138,64
AB
k
h
ef
(GB/s) 88,02 83,54 86,4 86,87 79,83
Rendimiento
k
e
(GFlops) 27,9 27,33 25,83 26,81 26
Rendimiento
k
h
(GFlops) 33 31,32 32,4 32,57 29,94
RendimientoT (GFlops) 30,24 29,2 28,75 29,41 27,83
Tabla 4.7: Comparativa de diferentes tamaos de bloque para el el mtodo de las DFDT
en dos dimensiones. Datos obtenidos con la tarjeta GeForce GTX 470 para un tamao de
simulacin de 25602560 celdas.
En la Tabla 4.7 se muestran los tiempos de cmputo de los dos kernels ilustrados
en la Figura 4.18a. Para los datos mostrados en la Tabla 4.7 el nmero de celdas
tomadas en la simulacin era de n
f
= 2560 y n
c
= 2560. De manera sencilla, a partir
de la Figura 4.18, se puede determinar que el nmero de operaciones otantes para
el primer kernel es de (n
f
1) (n
c
1) 6, mientras que para el segundo kernel el
134 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
nmero de operaciones en coma otantes es de 3n
f
(n
c
1)+3(n
f
1)n
c
3.
Respecto al clculo del ancho de banda efectivo, se ha recurrido a la expre-
sin (4.5). A partir de una inspeccin sencilla de las expresiones evaluadas en los
kernels, se pueden obtener los siguientes nmeros de operaciones de lectura y escrit-
ura para cada uno de los kernels:
B
k
e
l
= (n
f
1) (n
c
1) 4 6, (4.6)
B
k
e
e
= (n
f
1) (n
c
1) 4 2, (4.7)
B
k
h
l
= [n
f
n
c
+n
f
(n
c
1) + (n
f
1) n
c
] 4, (4.8)
B
k
h
e
= [n
f
(n
c
1) + (n
f
1) n
c
] 4, (4.9)
donde en todos los casos se multiplica por 4 ya que un nmero en coma otante de
precisin simple ocupa 4 bytes. A la vista de los datos proporcionados, cabe destacar
ciertos puntos interesantes. Uno de los factores que llama ms la atencin es el hecho
de que el ancho de banda efectivo para el kernel del campo elctrico supere el terico
proporcionado por el fabricante en la Tabla 4.6 en un 111 %. Esto es debido a que
en la realidad, la cach L1 introducida en la arquitectura NVIDIA, reduce el nmero
de accesos totales a memoria global. Ya que el mtodo de las DFDT recurre a celdas
adyacentes, es posible que estos valores hayan sido accedidos previamente por un
mismo hilo presente en el bloque. En nuestro caso particular, el nmero de accesos a
memoria global del primer kernel es mucho menor, ya que el acceso a la matriz H
y
se benecia de la cach de primer nivel. Si despreciamos uno de los accesos de dicha
matriz y obtenemos de nuevo el nmero de lecturas para dicho kernel, obtenemos
que:
B
k
e
l
= [n
f
(n
c
1) + (n
f
1) (n
c
) +(n
f
1) (n
c
1) 2] 4. (4.10)
Si volvemos a obtener el ancho de banda para dicho kernel obtendramos un valor
de AB
ef
de 111,48 GB/s, que es mucho ms cercano al valor mximo terico. Te-
niendo en cuenta el uso de la cach obtenemos un uso del ancho de banda cercano
83,3 % del valor mximo del fabricante, y superior al 75 %. Por lo que podemos con-
cluir, que el tamao de bloque de 2562 es el tamao ptimo y que proporciona
mejores prestaciones. El hecho de aumentar en columnas dicho bloque no favorece
al rendimiento del sistema, debido a que se reducen el nmero de hilos totales que
acceden de forma coalescente en la dimensin de almacenamiento de los datos, es
decir, en columnas. Por lo que el gestor de hilos encuentra muchas ms dicultades
para enmascarar los cambios de contexto, ya que existen menos warps listos para
entrar en el multiprocesador.
Otro dato importante a partir de las medidas preliminares realizadas, es que el
mtodo de las DFDT es un algoritmo de una intensidad operacional muy baja. Si
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 135
calculamos la relacin entre las instrucciones de coma otante y el ancho de banda,
obtenemos el siguiente valor:
IP =
Flops
AB
ef
=
27, 9 10
9
111, 48 10
9
= 0, 25, (4.11)
lo que indica que el mtodo necesita hasta cuatro transferencias para calcular un
resultado. Por lo que el patrn de acceso a memoria es vital para la optimizacin
de este mtodo numrico, y que el rendimiento del algoritmo vendr limitado por el
ancho de banda entre memoria global y la UPG. Por ello, los rendimientos en Flops
estn del orden del 2 % del valor mximo de pico proporcionado por el fabricante.
Es necesario destacar, que los rendimiento mximos proporcionados por el fabricante
son cotas mximas calculadas a partir del hardware y su capacidad en situaciones
completamente favorables. En la realidad, existen muy pocas casos en los que se al-
cancen dichas cotas en aplicaciones cientcas y los rendimientos son muy sensibles al
tipo de aplicacin. Trabajos recientes sobre computacin de alto rendimiento basado
en UPG corroboran que los valores obtenidos son aceptables y por lo tanto verican
el esquema propuesto [12, 15].
4.2.5. Implementacin del mtodo de las DFDT en CUDA
para el anlisis de medios innitos
En este punto se va a detallar la implementacin de las CFA en las UPG. Este
formalismo fue introducido en el punto 3.2.2, y concretamente se han considerado
las PMLs desarrolladas en [1620].
En la Figura 4.19 se muestran los kernels invocados para el clculo del campo
electromagntico en dos dimensiones con las PMLs. Dichas expresiones fueron de-
sarrolladas en el Captulo 3. Tal y como se aprecia en la Figura 4.19, el algoritmo
sigue constando de dos kernels, pero la complejidad de ambos ha aumentado consi-
derablemente. Siguiendo el mismo procedimiento detallado en el apartado anterior
se muestra un anlisis de los tamaos de bloques para ambos kernels en la Tabla 4.8.
En la Tabla 4.8 se muestran los tiempos de cmputo de los dos kernels ilustrados
en la Figura 4.19. Para los datos mostrados en la Tabla 4.8 el nmero de celdas
consideradas en la simulacin es de n
f
= 2560 y n
c
= 2560, al igual que para el caso
anterior. De manera sencilla, a partir de la Figura 4.19, se puede determinar que el
nmero de operaciones otantes para el primer kernel es de (n
f
1) (n
c
1) 10,
mientras que para el segundo kernel el nmero de operaciones en coma otante es
de n
f
(n
c
1) 8 + (n
f
1) n
c
8.
136 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
Kernel CUDA: Update_Electric_Kernel
D
z
|
i,j
= C
x
|
i
C
y
|
j
D
z
|
i,j
+ cB
x
|
i
B
y
|
j
C
h
|
i,j
n+1/2 n-1/2
C
h
|
i,j
= H
y
|
i+1/2,j
- H
y
|
i-1/2,j
- H
x
|
i,j+1/2
+ H
x
|
i,j-1/2
n n n n
Kernel CUDA: Update_Magnetic_Kernel
H
y
|
i+1/2,j
= C
x
|
i+1/2
C
y
|
j
H
y
|
i+1/2,j
-cB
x
|
i+1/2
[C
e
|
i,j
+I
H
y
|
i+1/2,j
]
n+1 n
C
e
|
i,j
= E
z
|
i+1,j
- E
z
|
i,j
n+1/2 n+1/2
I
H
y
|
i+1/2,j
=I
H
y
|
i+1/2,j
+ A
y
|
j
C
e
|
i,j
n+1/2
n+1/2
n+1/2
H
x
|
i,j+1/2
= C
y
|
j+1/2
H
x
|
i,j+1/2
- cB
y
|
j+1/2
[C
e
|
i,j
+I
H
x
|
i,j+1/2
]
n+1 n
C
e
|
i,j
= E
z
|
i,j
- E
z
|
i,j+1
n+1/2 n+1/2
I
H
x
|
i,j+1/2
=I
H
x
|
i,j+1/2
+ A
x
|
i
C
e
|
i,j
n+1/2
n+1/2
n+1/2
E
z
|
i,j
= G
a
|
i,j
D
z
|
i,j
n+1/2 n+1/2
~ ~
~ ~
~ ~
~ ~
Figura 4.19: Esquema de los kernels invocados para el clculo del campo electromagntico
en dos dimensiones mediante CUDA incluyendo las CAP.
El comportamiento del ancho de banda sigue la misma tendencia que para el caso
de la simulacin sin CFA, aunque en este caso los dos kernels sobrepasan el ancho de
banda terico especicado por el fabricante (vase Tabla 4.6) en un 131,38 % y en un
106,78 % para el caso del kernel del campo elctrico y magntico, respectivamente.
A partir de una inspeccin sencilla de las expresiones evaluadas en los kernels, se
pueden obtener los siguientes nmeros de operaciones de lectura y escritura para
cada uno de los kernels:
B
k
e
l
= (n
f
1) (n
c
1) 4 6 + [(n
f
1) 2 +n
c
1 2] 4, (4.12)
B
k
e
e
= (n
f
1) (n
c
1) 4 2, (4.13)
B
k
h
l
= [n
f
n
c
+n
f
(n
c
1) 2 + (n
f
1) n
c
2 +
(n
f
1) 3 +n
c
1 3] 4, (4.14)
B
k
h
e
= [n
f
(n
c
1) 2 + (n
f
1) n
c
2] 4, (4.15)
Siguiendo el mismo procedimiento descrito para el caso de la implementacin
preliminar del mtodo se puede realizar un clculo aproximado del ancho de banda
efectivo real, teniendo en cuenta la cach L1, por lo que los accesos de lectura para
el primer kernel seran
B
k
e
l
= [n
f
(n
c
1) + (n
f
1) (n
c
) +(n
f
1) (n
c
1) 3 +
(n
c
1) 2] 4. (4.16)
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 137
2562 1284 1924 2564 648
t
k
e
(ms) 1,48 1,46 1,55 1,49 1,49
t
k
h
(ms) 2,2 2,24 2,39 2,25 2,3
AB
k
e
ef
(GB/s) 175,92 179 149,67 169,27 176,24
AB
k
h
ef
(GB/s) 142,98 140,56 131,71 139,67 136,63
Rendimiento
k
e
(GFlops) 43,97 44,74 37,41 42,31 44,1
Rendimiento
k
h
(GFlops) 47,65 46,84 43,9 46,54 46,55
RendimientoT (GFlops) 46,16 46,01 41,15 44,82 44,95
Tabla 4.8: Comparativa de diferentes tamaos de bloque para el el mtodo de las DFDT en
dos dimensiones con la incorporacin de las PMLs. Datos obtenidos con la tarjeta GeForce
GTX 470 para un tamao de simulacin de 25602560 celdas.
Con estos datos, el ancho de banda del kernel k
e
pasara a ser realmente cercano a
123 GB/s, el cual es ligeramente mayor al del implementacin preliminar e inferior al
mximo terico. En esta implementacin, tambin se va a estudiar el ancho de banda
para el kernel que actualiza las componentes H
x
y H
y
, ya que es signicativamente
diferente al de la implementacin preliminar. Para este kernel en concreto, si tenemos
en cuenta los efectos de la cach de primer nivel, los accesos a memoria se reduciran
de la siguiente forma:
B
k
h
l
= [n
f
n
c
+n
f
(n
c
1) 2 + (n
f
1) n
c
+
(n
c
1) 2] 4. (4.17)
B
k
h
e
= [n
f
(n
c
1) 2 + (n
f
1) n
c
2] 4 (4.18)
Estos valores implican una ancho de banda del kernel de 95,3 GB/s, el cual sigue
siendo menor al mostrado en la tabla 4.8 por el uso de la cach de primer nivel y al
mismo tiempo sigue siendo menor al terico.
En esta implementacin, la intensidad operacional para ambos kernels es de:
IP
k
e
=
Flops
AB
ef
=
43, 97 10
9
123 10
9
= 0, 36, (4.19)
IP
k
h
=
Flops
AB
ef
=
47, 64 10
9
95, 3 10
9
= 0, 5. (4.20)
En este caso, la implementacin mejora la intensidad operacional, a costa de
aumentar ligeramente la memoria y en consecuencia el ancho de banda.
Una vez realizado estos anlisis, se decide que para la implementacin del mtodo
de las DFDT el mejor tamao de bloque es el de 2562 hilos. El cual proporciona
138 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
buenas prestaciones tanto en la versin preliminar del mtodo como con la incorpo-
racin de las CFA.
4.2.6. Implementacin del mtodo de las DFDT en CUDA
para el anlisis de medios innitos y ondas planas
En este punto se va a introducir la formulacin de CT-CD para dos dimensiones
introducida en el Captulo 3.2.2. Incluir este formalismo implica una modicacin en
la estructura de los kernels mostrados con anterioridad en las Figuras 4.18 y 4.19.
KERNEL CUDA: Conn-Condition_Dz_columns
D
z
|
i
a
,j
= D
z
|
i
a
,j
- H
x
inc
|
i
a-1/2,
j
(d,)
n+1/2 n-1/2
n
D
z
|
i
b
,j
= D
z
|
i
b
,j
+ H
x
inc
|
i
b+1/2,
j
(d,)
n+1/2 n-1/2
n
~ ~
~
~
KERNEL CUDA: Update_Dz_Field
D
z
|
i,j
= C
x
|
i
C
y
|
j
D
z
|
i,j
+ 0.5B
x
|
i
B
y
|
j
C
h
|
i,j
C
h
|
i,j
= H
y
|
i+1/2,j
- H
y
|
i-1/2,j
- H
x
|
i,j+1/2
+ H
x
|
i,j-1/2
n n
n+1/2 n-1/2
n n
~ ~
n+1/2
~
KERNEL CUDA: Update_Ez_Field
E
z
|
i,j
= G
a
|
i,j
D
z
|
i,j
n+1/2
~
n+1/2 n-1/2
n
KERNEL CUDA: Conn-Condition_Dz_rows
D
z
|
i,j
a
= D
z
|
i,j
a
+ H
x
inc
|
i
,
j
a
-1/2
(d,)
D
z
|
i,j
b
= D
z
|
i,j
b
- H
x
inc
|
i,j
b
-1/2
(d,)
n+1/2 n-1/2
n
~ ~
~
~
KERNEL CUDA: Update_Einc_Field
e
z
inc
|
k
= e
z
inc
|
k
+ c|
k
( h
x
inc
|
k-1
-h
x
inc
|
k
)
n n n+1/2 n-1/2
+ABC-1D
Figura 4.20: Esquema de los kernels invocados para el clculo del campo elctrico en dos
dimensiones mediante CUDA incluyendo las PMLs y la formulacin de CT-CD.
En la Figura 4.20 se muestra como el kernel que calcula el vector desplazamiento
y el campo elctrico se ha divido en dos kernels ya que se ha introducido la formu-
lacin de campo total y dispersado para el vector desplazamiento. Tambin se ha
introducido un kernel extra que se encarga de calcular el campo elctrico en el vector
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 139
destinado a albergar la informacin relacionada con la fuente. Tal y como se ilustra
en el esquema de la Figura 3.14, el campo incidente en el plano bidimensional es
calculado a partir de dos vectores que contienen la propagacin de la fuente en el
caso unidimensional. Ambos vectores constituyen una simulacin bsica del mtodo
de las DFDT en una dimensin. Su implementacin en CUDA
TM
se ha llevado a
cabo mediante bloques unidimensionales de 128 hilos y un nmero de bloques que
cubra la longitud total de dicho bloque. Es decir, si la longitud del vector incidente se
dene como l
inc
, el nmero de bloques ser el nmero entero menor q que cumpla la
desigualdad 128 q l
inc
. Dicha propagacin es interpolada en funcin de la posicin
para calcular el valor correcto de campo incidente en las interfases entre el campo
total y el campo dispersado. Este proceso est gobernado por las expresiones (3.90)-
(3.94) para el caso de incidencia plana, y las expresiones (3.96)-(3.99) que denen
las variables a aplicar en los valores del campo incidente (3.100)-(3.101) en funcin
del ngulo de incidencia y de la posicin.
El clculo en la interfase entre el campo total y campo dispersado para el vector
desplazamiento se han divido a su vez en dos kernels. Esto es debido a que el primero
de ellos si que presenta una implementacin directa en CUDA debido al acceso coa-
lescente a lo largo de las columnas j
a
y j
b
. Para este kernel se ha utilizado un tamao
de bloque unidimensional de 128 hilos y una malla unidimensional de tamao igual
al menor entero p que cumpla la desigualdad 128 p (i
b
i
a
).
El segundo kernel encargado de calcular las denominadas connecting conditions
en i = i
a
e i = i
b
presentan un acceso no coalescente en el caso de que se dese acceder
en la direccin de las las, por lo que se ha optado por estructurar la malla y el bloque
de dicho kernel para evitar latencias en los accesos a memoria. El procedimiento
realizado a sido denir un bloque unidimensional de un nico warp, es decir, con
32 hilos. La malla se establece de forma similar al caso anterior, salvo que cada
bloque se encargar de actualizar un nico valor de las connecting conditions. Para
ello la malla se dene con un tamao de j
b
j
a
bloques. Cada uno de los bloques se
encargar de actualizar un nico valor por columna, por lo que cada bloque realizar
un acceso coalescente desde la la i hasta la i + 31, siendo i
a
i i
b
. El escoger
el tamao de bloque de un nico warp es debido a que el acceso a memoria global
de un warp es realizado en un ciclo de reloj de la UPG, por lo que es indiferente
acceder a una posicin que a 32, ya que el hardware del sistema implica que al
acceder a una posicin de memoria se acceden a las 31 consecutivas. De los 32 hilos
que conforman el warp nicamente el primero realizar el clculo de actualizar el
campo en la interfase entre el campo total y el dispersado, mientras que el resto se
mantienen ociosos.
Este procedimiento se ilustra en la Figura 4.21, donde se muestra la malla de
simulacin y la regin de CT-CD. La interfase entre el campo total y el campo
140 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
Accesos coalescentes
filas
columnas
warp
4 warps
Acceso no coalescente
i
b
i
a
j
a
j
b
Figura 4.21: Estratega utilizada para evitar accesos no coalescentes en la evaluacin de
las connecting conditions.
dispersado en las columnas j = j
a
y j = j
b
, es procesada por un bloque que accede
a memoria global de forma coalescente. Este bloque se desplaza a lo largo de la
dimensin de las las para recorrer toda la interfase, tanto en j = j
a
, como en
j = j
b
. Para el caso de la interfase entre el campo total y el campo dispersado a lo
largo de la dimensin de las las (i = i
a
y i = i
b
), es de tipo no coalescente, por lo
que un bloque de un nico warp de tamao se desplaza a lo largo de las columnas
para actualizar la posicin de la interfase correspondiente.
La Figura 4.22 ilustra el esquema de kernels aplicados al cmputo del campo
magntico, donde se han utilizado las mismas estrategias para optimizar el proced-
imiento que para el caso del campo elctrico.
Kernel textbfMalla Bloque
Update_Einc_Field (l
inc
/128,1) (128,1)
Update_Dz_Field (n
f
/256,n
c
/2) (256,2)
Conn-Condition_Dz_rows ((i
b
-i
a
)/128,1) (128,1)
Conn-Condition_Dz_columns ((j
b
-j
a
),1) (32,1)
Update_Ez_Field (n
f
/256,n
c
/2) (256,2)
Update_Hinc_Field (l
inc
/128,1) (128,1)
Update_Magnetic_Field (n
f
/256,n
c
/2) (256,2)
Conn-Condition_Hy ((j
b
-j
a
),1) (32,1)
Conn-Condition_Hx ((i
b
-i
a
)/128,1) (128,1)
Tabla 4.9: Resumen de los tamaos de bloque y de malla para cada uno de los kernels
mostrados en las Figuras 4.20 y 4.22.
4.2 Optimizacin del mtodo de las DFDT en unidades de procesado grco 141
n+1 n
n+1
KERNEL CUDA: Conn-Condition_Hy
H
y
|
i
a-1/2
,j
= H
y
|
i
a-1/2
,j
- E
z
inc
|
i
a,
j
(d,)
n+1/2
H
y
|
i
b+1/2
,j
= H
y
|
i
b+1/2
,j
+E
z
inc
|
i
b,
j
(d,)
n+1/2
n
n+1 n
n+1
KERNEL CUDA: Conn-Condition_Hx
H
x
|
i,j
a-1/2
= H
x
|
i,j
a-1/2
+ E
z
inc
|
i
,
ja
(d,)
n+1/2
H
x
|
i,j
b+1/2
= H
x
|
i,j
b+1/2
- E
z
inc
|
i
,
jb
(d,)
n+1/2 n
n+1
n+1/2
n+1/2
n+1/2
KERNEL CUDA: Update_Magnetic_Field
H
y
|
i+1/2,j
= C
x
|
i+1/2
C
y
|
j
H
y
|
i+1/2,j
- cB
x
|
i+1/2
[C
e
|
i,j
+I
H
y
|
i+1/2,j
]
n
C
e
|
i,j
= E
z
|
i+1,j
- E
z
|
i,j
n+1/2
I
H
y
|
i+1/2,j
=I
H
y
|
i+1/2,j
+ A
y
|
j
C
e
|
i,j
n+1/2
~ ~
H
x
|
i,j+1/2
= C
y
|
j+1/2
H
x
|
i,j+1/2
- 0.5B
y
|
j+1/2
[C
e
|
i,j
+I
H
x
|
i,j+1/2
]
n+1 n
C
e
|
i,j
= E
z
|
i,j
- E
z
|
i,j+1
n+1/2 n+1/2
I
H
x
|
i,j+1/2
=I
H
x
|
i,j+1/2
+ A
x
|
i
C
e
|
i,j
n+1/2
n+1/2
n+1/2
~ ~
KERNEL CUDA: Update_Einc_Field
h
x
inc
|
k
= h
x
inc
|
k
+ c|
k
( e
z
inc
|
k
-e
z
inc
|
k+1
)
n-1/2 n n
+ABC-1D
n-1/2
Figura 4.22: Esquema de los kernels invocados para el clculo del campo magntico en dos
dimensiones mediante CUDA incluyendo las PMLs y la formulacin de CT-CD.
Finalmente, en la Tabla 4.9 se resumen los tamaos de bloque y de malla para
las llamadas de cada uno de los kernels que computan el campo electromagntico,
recogidos en las Figuras 4.20 y 4.22.
142 CAPTULO 4. OPTIMIZACIN COMPUTACIONAL
Bibliografa
[1] Intel
R
64 and IA-32 Architectures Optimization Reference Manual. Intel Cor-
poration, 2011.
[2] J. Doweck. White Paper: Inside Intel
R
Core
TM
Microarchitecture and Smart
Memory Access. Intel Corporation, 2006.
[3] W. P. Petersen y P. Arbenz. Introduction to Parallel Computing: A Practical
Guide with Examples in C. Oxford texts in Applied and Engineering Mathe-
matics, 2004.
[4] T. Shreekant y T. Hu. The internet streaming simd extensions. Intel Technol-
ogy Journal, Q2:18, 1999.
[5] OpenMP Application Program Interface. OpenMP Architecture Review Board,
2008.
[6] Whitepaper NVIDAs Next Generation CUDA
TM
Compute Architecture:
Fermi
TM
. NVIDIA Corporation, 1.1 edicin, 2009.
[7] M. Weigel. Simulating spin models on GPU. Computer Physics Communica-
tions, In Press, Corrected Proof:, 2010. ISSN 0010-4655.
[8] NVIDIA CUDA
TM
: CUDA C Best Practices Guide. NVIDIA Corporation, 3.2
edicin, 2010.
[9] Tunning CUDA
TM
Applications for Fermi
TM
. NVIDIA Corporation, 1.3 edicin,
2010.
[10] M. Bernaschi, G. Parisi, y L. Parisi. Benchmarking gpu and cpu codes for
heisenberg spin glass over-relaxation. Computer Physics Communications, 182
(6):12651271, 2011.
144 BIBLIOGRAFA
[11] N. Ferrando, M.A. Goslvez, J. Cerd, R. Gadea, y K. Sato. Octree-based,
GPU implementation of a continuous cellular automaton for the simulation of
complex, evolving surfaces. Computer Physics Communications, 182(3):628
640, 2011.
[12] K-H. Kim, K. Kim, y Q-H. Park. Performance analysis and optimization of
three-dimensional fdtd on gpu using rooine model. Computer Physics Com-
munications, 182(6):12011207, 2011.
[13] J. M. Cecilia, J. M. Garca, G. Guerrero, M. Martnez-del-Amor, I. Prez-
Hurtado, y journal = J. Logic and Algebraic Programming year = 2009 vol-
ume = 79 pages = 317325 Prez-Jimnez, M.". Simulating a p system based
ecient solution to SAT by using GPUs.
[14] NVIDIA Corporation. CUDA occupancy calculator.
http://news.developer.nvidia.com/2007/03/cuda_occupancy_.html, 03 2007.
[15] F. Ino, Y. Okitsu, T. Kishi, S. Ohnishi, y K. Hagihara. Out-of-core cone beam
reconstruction using multiple gpus. En Biomedical Imaging: From Nano to
Macro, 2010 IEEE International Symposium on, pages 792 795, 2010.
[16] A. Taove. Computational Electrodynamics: The Finite-Dierence Time-
Domain Mehtod. Artech House Publishers, 1995.
[17] J. P. Berenger. A perfectly matched layer for the absoprption of electromagnetic
waves. J. Comput. Phys, 114:185200, 1994.
[18] J. P. Berenger. Three-dimensional perfectly matched layer for the absorption of
electromagnetic waves. J. Comput. Phys, 127:363379, 1995.
[19] D. M. Sullivan. Electromagnetic Simulation using the FDTD Method. IEEE
Press Editorial Board, 2000. ISBN 0-7803-4747-1.
[20] D. M. Sullivan. A simplied pml for use with the fdtd method. Microwave and
Guided Wave Letters, IEEE, 6(2):97, Feb 1996.
Captulo 5
Resultados
En este captulo se van a mostrar los resultados obtenidos mediante la aplicacin
del algoritmo de las DFDT a diferentes sistemas pticos. Se parte de problemas bien
establecidos dentro del mundo de la ptica como el experimento de una rendija y
de doble rendija de Young. Estos dos experimentos junto con el de la simulacin de
N aperturas y la apertura circular, servirn para validar el mtodo de las DFDT
aplicado a un problema ptico. Las irradiancias (magnitud proporcional al cuadrado
del campo elctrico [1]) obtenidas mediante expresiones analticas conocidas y las
obtenidas en campo cercano y lejano (regiones de Fresnel y de Fraunhofer respecti-
vamente) a partir del mtodo de las DFDT en dos y tres dimensiones nos permiten
comprobar la rigurosidad del mtodo numrico y vericar la implementacin.
Posteriormente se analizarn los resultados obtenidos al analizar ltros de capa
delgada: en concreto se analizarn lminas de alta reectancia. A continuacin, se
tratarn las redes hologrcas de volumen tanto en reexin como en transmisin,
cuyas aplicaciones son diversas y varan desde la reconstruccin de imgenes hasta
el almacenamiento de informacin. Para este caso, se han estudiado la eciencia
en difraccin y en transmisin en funcin del grosor de la red, de la longitud de
onda y la selectividad angular. Finalmente se muestran los resultados obtenidos de
la optimizacin computacional introducida en el mtodo para su ejecucin en UPC
y UPG.
146 CAPTULO 5. RESULTADOS
5.1. Difracin de aperturas
El tratamiento considerado en esta Seccin hace uso de la aproximacin de la
teora escalar, donde no se tiene en cuenta el carcter vectorial del campo electro-
magntico. La implementacin numrica del mtodo de las DFDT permite calcular
efectos de polarizacin por tratarse de un formalismo que permite resolver de man-
era directa, las expresiones vectoriales presentes en las ecuaciones de Maxwell. Sin
embargo, en este trabajo no se va a explotar este carcter vectorial.
En este punto se va a analizar el comportamiento de la luz al interferir en un plano
con una apertura de reducidas dimensiones. A partir de experiencias sencillas, se
puede determinar como la luz emitida en el plano de la apertura que incide sobre otro
plano cercano presenta un patrn muy similar a la forma de la apertura, junto con
algunos lbulos que suavizan los bordes [1]. A medida que el plano de observacin se
aleja del plano de las aperturas , la forma de la apertura sigue siendo identicable
pero la intensidad de los lbulos laterales comienza a ser ms signicativa. Este
fenmeno se conoce como difraccin de Fresnel o de campo cercano. Si la distancia
entre la pantalla y la apertura aumenta, es ms difcil identicar el patrn de
difraccin con la forma de la apertura. Una vez que la distancia entre planos supera
un umbral, el patrn de difraccin se estabiliza y no presenta cambios signicativos
en trminos de forma. Esta distancia delimita la regin de Fraunhofer, cuyo patrn
de difraccin recibe el nombre de difraccin de Fraunhofer.
Para poder comparar las curvas numricas obtenidas a travs del mtodo numri-
co se va a introducir la teora bsica que permite obtener expresiones analticas de la
difraccin en ambas regiones. Esta teora es bien conocida y se ha decidido introducir
en esta seccin ya que permite introducir el esquema y la nomenclatura utilizada para
cada una de las conguraciones presentadas.
Si consideremos una abertura rectangular, como una fuente lineal de osciladores,
tal y como se muestra en la Figura 5.1 por una radiacin luminosa monocromtica
coherente de longitud de onda (en nuestro caso = 633 nm), el campo elctrico
debido a la apertura en cualquier punto P, se dene a travs de la siguiente integral
denida [1]:
E = E
L
_
b/2
b/2
sin(t kr)
r
dx, (5.1)
donde E
L
es la eciencia de la fuente por unidad de longitud, k es el nmero de
onda, r = r(x) es la distancia entre un punto de la apertura y el punto del espacio
P y b es la anchura de la apertura. La expresin (5.1) y sus soluciones obtenidas en
funcin de las aproximaciones consideradas permite denir el campo en la regin de
Fresnel y de Fraunhofer.
5.1 Difracin de aperturas 147
P
y
z
x

b/2
b/2
R
r(x)
Figura 5.1: Esquema de una fuente lineal coeherente.
La aproximacin de Fresnel parte de la expresin (5.1), en forma diferencial y
considerando la geometra mostrada en la Figura 5.2, donde la contribucin a la
perturbacin ptica en P, dE
p
, de las fuentes secundarias puede denirse como:
dE
p
=
E
0
r
sin[k( +r) t] dS, (5.2)
o utilizando la notacin fasorial
dE
p
=
E
0
r
e
j[k(+r)t]
dS, (5.3)
con E
0
siendo la amplitud de la onda que se propaga libremente.
r
0
r
P
z
x
O
-b/2
b/2
-d/2
d/2

S
Figura 5.2: Esquema de una apertura.
Tal y como se muestra en la Figura. 5.2, el trmino de fase puede aproximarse a
partir de la siguiente serie binomial:
=
_

2
0
+x
2
+z
2
_
1/2
r =
_
r
2
0
+x
2
+z
2
_
1/2
_
+r
0
+r
0
+
_
x
2
+z
2
_


0
+r
0
2
0
r
0
. (5.4)
148 CAPTULO 5. RESULTADOS
Cabe destacar que la principal diferencia entre la aproximacin de Fraunhofer
y Fresnel reside en que en Fraunhofer, los trminos superiores al segundo no son
considerados. La expresin (5.2) en notacin compleja y al aplicar la aproximacin
de Fresnel denida en (5.4) permite deducir las siguientes expresiones:

E
p
=
E
0
e
jt

0
r
0

_
d/2
d/2
dy
_
b/2
b/2
e
jk(+r)
dz
E
0
e
j[k(
0
+r
0
)t]

0
r
0

_
u(d/2)
u(d/2)
e
j
u
2
2
du
_
v(b/2)
v(b/2)
e
j
v
2
2
dv, (5.5)
donde u(z) z
_
2(
0
+r
0
)
r
0
_
1/2
,v(x) x
_
2(
0
+r
0
)
r
0
_
1/2
y el trmino que precede a
la integral puede denirse en trminos de

E
u
/2. Ambas integrales puede se ree-
scribir en funcin de las integrales de Fresnel C() =
_

cos(
2
/2)d

y S() =
_

sin(
2
/2)d

. Para el caso concreto de ondas planas ( ), las variables u y


v pueden redenirse como u = y
_
2
r
0
_
2
y v = z
_
2
r
0
_
2
.
Por lo tanto, la ecuacin (5.5) puede reformularse de manera sencilla como:

E
p
=
E
u
2
[C(u) jS(u)]
u
2
u
1
[C(v) jS(v)]
v
2
v
1
=

B
12
(u)

B
12
(v), (5.6)
donde, para el caso particular de aperturas innitas a lo largo del eje y, la irradiancia
producida por la apertura en un punto P puede obtenerse como:
I
p
=
I
0
2
[

B
12
(v)[
2
. (5.7)
A partir de la relacin (5.7) y del teorema de superposicin, se obtiene de manera
directa la irradiancia producidas por varias aperturas delgadas innitas que se hallen
paralelas entre s.
Por otro lado, la aproximacin de Fraunhofer se basa en la condicin de que la
distancia R b (vase Figura 5.1). Bajo esta suposicin r(x) presenta un valor prx-
imo a R. El trmino r(x) se redene a partir de la series de MacLaurin despreciando
todos los trminos superiores al tercer orden.
r = R xsin + (x
2
/2R) cos
2
+ R xsin, (5.8)
donde se miden en el plano xy y x = b/2 siendo R sucientemente grande.
Introduciendo la relacin (5.8) en (5.1), la siguiente expresin puede ser deducida:
E =
L
_
b/2
b/2
sin(t kr)
r
=

L
R
_
b/2
b/2
sin[t k(R xsin)] dx, (5.9)
5.1 Difracin de aperturas 149
Tabla 5.1: Regin lmite entre las aproximaciones de Fresnel y Fraunhofer
Fraunhofer Fresnel
F 0.6 F > 0.6
Tabla 5.2: Expresiones en regin de Fraunhofer de la irradiancia normalizada en funcin
del nmero de aperturas
1 aperture 2 apertures N apertures
I()
I(0)
_
sin

_
2
4
_
sin

_
2
cos
2

_
sin
N
_
2
_
sin N

_
2
por lo que
E =
b
L
R
sin

sin(t kR) , (5.10)


con = (kb/2) sin. Adems, si se tiene en cuenta que la irradiancia puede denirse
como I() = E
2
)
T
y que el trmino independiente en (5.10) es igual a 1/2 [1], es
fcil deducir la siguiente ecuacin
I() = I(0)
_
sin

_
2
, (5.11)
con I(0) =
1
2
_

L
b
R
_
2
. El rango de validez de estas expresiones denen lo que se
denomina la regin de Fraunhofer y dicha regin est denida a partir de la condicin
de Fraunhofer, F = b
2
/L 1, siendo b la anchura de la apertura y L la distancia
entre los planos y . Sin embargo, algunos autores denen un lmite ms preciso
entre las regiones de Fresnel y Fraunhofer [3] recogido en la Tabla 5.1. Adems, la
Tabla 5.2 resume el conjunto de expresiones que denen la irradiancia para diferentes
nmeros de aperturas, as como la expresin general, con = (ka/2) sin, y a siendo
la distancia entre aperturas.
A partir de las expresiones mostradas en la Tabla 5.1 para la regin de Fraunhofer
y la expresin (5.7) para la regin de Fresnel, se pueden calcular de manera terica
las curvas de irradiancia para cualquier punto denido en un plano alejado del
plano de las aperturas .
De la expresin mostrada en la Tabla 5.2 para el caso de una apertura se puede
deducir que la irradiancia toma valores mnimos para valores z tales que
sinc
2
_
bx
L
_
= 0
bx
L
= m x
m
= m
L
b
, (5.12)
150 CAPTULO 5. RESULTADOS
-2 0 2 3 -3 1 -1
0
0,2
0,4
0,6
0,8
1
I
(

)
/
I
(
0
)

(
a
.
n
.
)
(b)
-2 0 2 1 -1
0
0,2
0,4
0,6
0,8
1
(a)
Fraunhofer
DFDT-2D
DFDT-3D
I
(

)
/
I
(
0
)

(
a
.
n
.
)
/ (adim.) / (adim.)
Figura 5.3: Patrn de difraccin obtenido para la simulacin de una rendija comparado
con el modelo terico de Fraunhofer. Para ambos casos = 63,3 nm, d = 50 = 3,17m,
= 633 nm. a) b = 50 = 3,17 m. b)b = 80x = 5,1 m.
donde para ngulos pequeos, el seno del ngulo se puede aproximar a z/L.
Todos los lbulos presentarn la misma anchura, dada por L/b. La distancia L
a la cual se calcula la propagacin de campo cercano a lejano debe de satisfacer la
condicin de campo lejano o regin de Fraunhofer, dada por F = b
2
/L 1 o por el
contrario mostrada en la Tabla 5.1. Para nuestro caso, hemos escogido una distancia
L = 4000, que para el caso de una rendija de b = 50, F = 0,0625; mientras
que para una de anchura b = 80, F = 0,16. Respecto a los puntos inspeccionados
para detectar la irradiancia, se han recorrido puntos comprendidos entre -2000 y
2000 a pasos de 40. En la Figura 5.3 se se muestran los resultados tanto para
la versin 2D como para la 3D para dos valores de anchura de apertura (b). La
motivacin principal de realizar anlisis bi y tridimensionales del mismo tipo de
aperturas se basa en vericar que ambas implementaciones son correctas, por ello,
en ambos casos se analizan los mismos puntos situados en campo lejano. Se puede ver
que para ambas aperturas y ambas versiones del algoritmo, los resultados obtenidos
se ajustan con gran precisin al modelo terico. El aumento de la apertura, repercute
5.1 Difracin de aperturas 151
/10 /20
error ( %) 0,32 0,37
dimensiones (celdas) 100 60 100 200 60 240
tiempo (min) 6 min 23 min
Tabla 5.3: Comparativa entre resolucin del mallado y prestaciones del algoritmo (versin
secuencial).
en un mayor nmero de lbulos producidos por la difraccin, por ello en la gura
5.3b se pueden encontrar un mayor nmero de nulos y mximos relativos que para
el caso de la gura 5.3a en los mismos puntos del plano de observacin.
Cabe mencionar, que se han realizado diferentes simulaciones con diversas resolu-
ciones espaciales para estudiar el efecto de dicha variacin en la precisin del calculo
del campo lejano. El error se ha evaluado a partir del error cuadrtico medio entre
las curvas analticas y numricas. A la vista de los resultados de la Tabla 5.3 se puede
interpretar que un aumento de la resolucin del mallado, implica para el mismo tipo
de ranura y la misma distancia de propagacin del campo, errores similares, mien-
tras que el tiempo de clculo aumenta signicativamente, junto con los recursos de
memoria necesarios.
La simulacin para obtener el patrn de difraccin de la doble rendija se realiza
con un procedimiento similar al realizado en el apartado anterior. En la Figura 5.4
se muestra la conguracin de la doble rendija, donde el parmetro a indica la sepa-
racin entre aperturas.
En aquellos casos en los que se pueda asegurar que a b, la distribucin de
irradiancia se puede calcular a partir de las expresin dada en la Tabla 5.2 para el
caso de dos aperturas en regin de Fraunhofer. El perl de irradiancia para este caso
est compuesto por la combinacin lineal correspondiente con una apertura y un
trmino de modulacin cosenoidal. Dicho factor, presenta mnimos de z tales que

ax
L
= (2n + 1) x
min
= (2n + 1)
L
2a
, (5.13)

ax
L
= n x
max
= n
L
a
. (5.14)
La distancia entre dos de estos mximos o mnimos consecutivos viene dada por
L/a.
En la Figura 5.5 se representan las curvas de irradiancia obtenidas mediante el
mtodo DFDT en 2-D y 3-D, junto a la curva terica en la regin de Fraunhofer o
152 CAPTULO 5. RESULTADOS
b
d
R

a
y
z
x
y
x
(b)
b
d
(a)
Figura 5.4: Conguracin del sistema para la simulacin y anlisis de difraccin provocado
por dos rendijas. a) Esquema tridimensional. b) Esquema bidimensional.
campo lejano para el caso de dos aperturas. Las irradiancias obtenidas mediante el
mtodo de las DFDT se han calculado a partir del campo elctrico calculado con la
transformacin de campo cercano a lejano. Esta herramienta ha permitido obtener
los valores del campo elctrico en puntos externos a la malla simulada, a partir de
los calculados prximos a la apertura. Estos resultados muestran la precisin de
la herramienta y las prestaciones que proporciona en la simulacin de dispositivos
pticos, donde la simulacin de grandes mallas repercutira en tiempos de clculo
elevados.
A continuacin se muestra un anlisis del patrn de difraccin de una y dos aper-
turas en funcin de la distancia de observacin L. En la Figura 5.6 se muestran las
curvas obtenidas obtenidas con el mtodo de las DFDT en su versin bidimensional
junto con las curvas tericas en la regin de Fresnel y de Fraunhofer. Con este anlisis
se pretende analizar la precisin del mtodo numrico tanto en la regin de Fraun-
hofer como en la regin de Fresnel y por lo tanto tambin en campo prximo. Las
curvas tericas han sido obtenidas a partir de las expresiones en regin de Fraunhofer
enumeradas en la Tabla 5.2 y las integrales de Fresnel en la ecuacin (5.7).
Cabe recordar, que las curvas obtenidas mediante el mtodo de las DFDT tan-
to en dos dimensiones como en tres son obtenidas a partir de la transformacin de
campo cercano a lejano en sus versiones bidimensional y tridimensional respectiva-
mente. Ambos formalismos se basan en propagar los campos obtenidos a partir del
mtodo numrico en campo prximo a una regin alejada de la fuente y por tanto
5.1 Difracin de aperturas 153
-2 0 2
0
0,2
0,4
0,6
0,8
1
(a)
I
(

)
/
I
(
0
)

(
a
.
n
.
)
/ (adim.)
-2 0 2
0
0,2
0,4
0,6
0,8
1
(b)
I
(

)
/
I
(
0
)

(
a
.
n
.
)
/ (adim.)
Fraunhofer
DFDT-2D
DFDT-3D
-1 1 -1 1
Figura 5.5: Patrn de difraccin obtenido para la simulacin de dos rendijas comparado
con el modelo terico de Fraunhofer (d = 50 = 3,17m, = 633 nm, = 63,3 nm). a)
b = 50 = 3,17, a = 70 = 4,43m. b)b = 50 = 3,17 m, a = 100 = 0,633m.
no contemplada en la malla de simulacin. Esto implica que tanto los campos en
Fraunhofer, como en Fresnel y en campo prximo son vlidos y la implementacin
en todas sus vertientes es correcta.
En la Figura 5.7 se muestra una secuencia con la magnitud del campo elctrico
en z en funcin del tiempo para el campo difractado por una apertura y por dos
aperturas. Se puede apreciar que a medida los pasos temporales se suceden, el campo
difractado en la apertura va propagndose hacia el innito cambiando su patrn de
interferencia. En campo cercano la difraccin es ms compleja y ms similar a la
obtenida en la Figura 5.6a y 5.6b. A medida que que nos alejamos del plano de
apertura el campo se asemeja ms a las funciones analticas listadas en la Tabla 5.2
y por lo tanto a las curvas mostradas en la Figuras 5.3 y 5.4 as como en la secuencia
mostrada en la Figura 5.6.
Para el caso particular de N aperturas, el proceso es muy similar al realizado en
el experimento de la doble rendija. En este caso, la expresin analtica que dene
la irradiancia en la regin de Fraunhofer, para N aperturas se ha recogido en la
154 CAPTULO 5. RESULTADOS
(a)
-500 -250 0 250 500
0
0.2
0.4
0.6
0.8
1
z (celdas)
(c)
-0,6 -0,4 -0,2 0 0,2 0,4 0,6
0
0.2
0.4
0.6
0.8
1
z (kceldas)
(e)
L = 500
N = 1
b = 40
L = 1000
N = 1
b = 40
L = 900
N = 2
b = 40
a = 80
-2,5 -1,5 -0,5 0 0,5 1,5 2,5
z (kceldas)
(f)
L = 4500
N = 2
b = 40
a = 80
-100 -50 0 50 100
0
0.2
0.4
0.6
0.8
1
z (celdas)
L = 100
N = 1
b = 40
-300 -200 -100 0 100 200 300
z (celdas)
L = 300
N = 2
b = 40
a = 80
-500 -250 0 250 500
z (celdas)
(b)
(d)
FDTD
Fresnel
Fraunhofer
Figura 5.6: Irradiancias normalizadas obtenidas por las expresiones tericas en la regin
de Fresnel y Fraunhofer y numricas a partir del mtodo de las DFDT. Se ha estudiado el
caso de una nica apertura en funcin de la distancia entre el plano de iluminacin y de
medida: casos (a), (c) and (e). Y para dos aperturas: casos (b), (d) and (f).
5.1 Difracin de aperturas 155
0 50 100 150 200
0
100
200
y (celdas)
x

(
c
e
l
l
s
)
(a)
0 50 100 150 200
0
100
200
y (celdas)
x

(
c
e
l
l
s
)
(b)
0 50 100 150 200
0
100
200
y (celdas)
x

(
c
e
l
l
s
)
(c)
0 50 100 150 200
0
100
200
y (celdas)
x

(
c
e
l
l
s
)
(d)
0 50 100 150 200
0
100
200
y (celdas)
x

(
c
e
l
l
s
)
(e)
0 50 100 150 200
0
100
200
y (celdas)
x

(
c
e
l
l
s
)
(f)
0 50 100 150 200
0
100
200
y (celdas)
x

(
c
e
l
l
s
)
(g)
0 50 100 150 200
0
100
200
y (celdas)
x

(
c
e
l
l
s
)
(h)
Figura 5.7: Secuencias de la propagacin del campo elctrico en funcin del tiempo para
una apertura: (a) t = 50t, (c) t = 150t, (e) t = 250t, (g) t = 350t con b=40 celdas.
Para dos aperturas: (b) t = 50t, (d) t = 150t, (f) t = 250t, (h) t = 350t con b = 40
celdas y a = 80 celdas.
156 CAPTULO 5. RESULTADOS
-1 0 1
0
0.2
0.4
0.6
0.8
1
a)
-1 0 1
0
0.2
0.4
0.6
0.8
1
b)
Fraunhofer
DFDT2D
DFDT3D
1,8 -1,8 -1,8 1,8
I
(

)
/
I
(
0
)

(
a
.
n
.
)
/ (adim.)
I
(

)
/
I
(
0
)

(
a
.
n
.
)
/ (adim.)
Figura 5.8: Patrn de difraccin obtenido para la simulacin N aperturas comparado con
las curvas tericas en la regin de Fraunhofer (a = 50x = 3,17m, = 633 nm, = 63,3
nm). a) Curva terica para 5 aperturas y patrn de irradancia obtenido a partir del mtodo
de las DFDT tanto para 2D y 3D, los parmetros de la simulacin son: b = 50x = 3,17
(nicamente en 3D), d = 70x = 4,43m. b) Curva terica para 7 aperturas y patrn
de irradiancia obtenido a partir de las DFDT tanto para 2D y 3D, los parmetros de la
simulacin son: b = 50x = 3,17 m, d = 70 = 4,43m.
Tabla 5.2 y su obtencin es sencilla y est completamente detallada en [1].
En la gura 5.8 se muestran los resultados para 5 y 7 aperturas. En ambos casos,
se han obtenido las irradiancias numricas para el caso bi y tridimensional. En todos
los casos, las irradiancias se calculan a partir de la propagacin del campo elctrico
en campo cercano a campo lejano. Esto permite reducir el tamao de simulacin a
la mnima expresin y en consecuencia los requisitos en trminos de memoria y de
tiempo de simulacin. En la Figura 5.9b se muestra el patrn del campo elctrico en
campo lejano y como a partir del mismo puede obtenerse la curva de la irradiancia
ilustrada en la Figura 5.9a.
Por ltimo se va analizar el caso de la apertura circular, la cual presenta un patron
de irradiancia proporcional a la funcin de Bessel de orden cero. Estas funciones
5.1 Difracin de aperturas 157
0
1
(a)
-1,2 -0,8 -0,4 0 0,4 0,8 1,2
8,4
8,6
8,8
9
9,2
0
-1,2 -0,8 -0,4 0 0,4 0,8 1,2
8,4
-1
8,6
8,8
9
9,2
x (mm)
T
e
m
p
o

(
p
s
)
(b)
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
I
(

)
/
I
(
0
)
I
(

)
/
I
(
0
)
Figura 5.9: Distribucin del campo elctrico (y=4000) generado por la perturbacin de la
luz sobre 5 aperturas.(a) Irradiancia normalizada. (b) I en funcin del tiempo y del espacio
obtenido a partir de la transformacin de campo cercano a lejano
son bastante conocidas y tabuladas en numerosas fuentes [1]. Dada la simetra del
problema, ilustrado en la Figura 5.10, nicamente ha podido abordarse desde la
versin tridimensional del mtodo de las DFDT.
El patrn de irradiancia producido por una apertura circular es muy conocido y
caracterstico. En el punto central se encuentra la amplitud mxima de irradiancia,
el cual est rodeado por un disco oscuro correspondiente con el primer nulo de la
funcin de Bessel (J
1
(u)) conocido como el disco de Airy.
I() = I(0)
_
2J
1
()

_
2
= I(0)
_
2J
1
(krq/R)
krq/R
_
2
, (5.15)
donde al = kr sin, y el seno del ngulo puede aproximarse como q/R para ngulos
pequeos.
En la gura 5.11 se muestran los resultados de las simulaciones, donde se puede
apreciar que los valores numricos son semejantes a las curvas analticas. Para el caso
de las simulacin de una apertura circular, se han obtenido el patron de irradiancia
a lo largo de dos lneas perpendiculares entre s, cuyo plano es paralelo a al plano de
la apertura circular en campo lejano.
158 CAPTULO 5. RESULTADOS
P

R
r
x
z
q
Figura 5.10: Conguracin del sistema para la simulacin y anlisis de difraccin provocado
por una apertura
5.2. Filtros de capa delgada
En esta seccin se van a mostrar los resultados obtenidos a partir del anlisis de
FCF. Estos tipo concreto de FCF se basan en obtener elevadas reectancias a partir
de la superposicin de lminas de cuarto de onda que alternan ndices de refraccin
elevados y bajos. Esta conguracin favorece a que todas las ondas reejadas en cada
una de las interfases estn en fase cuando alcanzan el plano de salida, donde todas
contribuyen de manera constructiva en el haz reejado.
A partir de la expresin (2.123) desarrollada en la seccin 2.4.1 se puede deducir
de manera sencilla una expresin analtica de la admitancia ptica de una serie
de capas de un cuarto de longitud de onda. Esto es posible debido a que la matriz
caracterstica se puede simplicar de manera notable si la distancia ptica es mltiplo
de un cuarto de la longitud de onda.
= m(/4) , m = 0, 1, 2, 3, . . . . (5.16)
Para m par, tenemos que cos = 1 y sin = 0, por lo que el grosor de la capa es
mltiplo par de la semi longitud de onda y la matriz caracterstica toma la siguiente
5.2 Filtros de capa delgada 159
-8
-4
0
4
8
-8
-4
0
4
8
0
0.2
0.4
0.6
0.8
1
(a)
-14
-7
0
7
14
-14
-7
0
7
14
0.2
0.4
0.6
0.8
1
(b)
Fraunhofer
FDTD3D
I
(

)
/
I
(
0
)

(
a
.
n
.
)
I
(

)
/
I
(
0
)

(
a
.
n
.
)
0
/ /
/
/
Figura 5.11: Patrn de difraccin obtenido para la simulacin aperturas circulares con
diferentes radios comparado con las curvas tericas en la regin de Fraunhofer ( = 633 nm,
x = 63,3 nm). a) Curva terica para apertura circular de radio 30x(1.9m) y patrn de
irradancia obtenido a partir del mtodo de las DFDT en 3D. b) Curva terica para apertura
circular de radio 45x(1.9m) y patrn de irradiancia obtenido a partir del mtodo de las
DFDT en 3D.
160 CAPTULO 5. RESULTADOS
forma:
_
B
C
_
=
_
1 0
0 1
_
. (5.17)
Esta matriz es la matriz unidad y no tiene efecto alguno ni sobre la reectancia
ni la transmitancia. Es decir, es como si la capa no existiese.
Para el caso de que m sea impar, sin = 1 y cos = 0, ya que el grosor de la
capa es mltiplo impar de la semi longitud de onda. La matriz caracterstica para
este caso toma los siguientes valores:
_
B
C
_
=
_
0 1/
j 0
_
. (5.18)
En este caso, el signicado fsico de esta capa no es tan evidente como el de la
ecuacin (5.17), aunque la matriz sigue siendo fcilmente manipulable. Por ejemplo,
si una combinacin de capas delgadas presenta una admitancia Y , la adicin de una
capa extra de longitud ptica un nmero impar de la semi longitud de onda y con
admitancia modica la admitancia global de la forma
2
/Y . De manera anloga,
la sucesin de capas de longitud de un cuarto de longitud de onda se puede calcular
de forma sencilla como por ejemplo, se muestra a continuacin para el caso de una
batera de 5 capas delgadas:
Y =

2
1

2
3

2
5

2
2

2
4

s
, (5.19)
donde los smbolos se han denido en la seccin 2.4. Debido a la simplicacin obteni-
da a partir de este razonamiento, el diseo de estos dispositivos se realiza en trminos
de capas de un cuarto de onda referidas a la longitud de onda en reectancia. Habit-
ualmente, se suelen utilizar dos tipos de materiales, como mucho tres, cuya notacin
es A, M y B para ndices de refraccin altos, medios y bajos respectivamente. Capas
de mitad de onda se denen como AA, MM, LL o 2A, 2M y as sucesivamente.
La ecuacin (5.19) puede generalizarse de la siguiente forma:
Y =
_
n
A
n
B
_
2p
n
2
A
n
s
, (5.20)
donde 2p + 1 es el nmero de capas.
De manera sencilla se puede deducir la reectancia en el vaco como:
R =
_
1 (n
A
/n
B
)
2p
(n
A
/n
s
)
1 + (n
A
/n
B
)
2p
(n
A
/n
s
)
_
2
. (5.21)
5.2 Filtros de capa delgada 161
Esta expresin nos permite deducir que a medida que el nmero de capas au-
menta, tambin lo hace la reectancia. La mxima reectancia se obtiene para capas
impares que presenten la lmina con n
A
en el exterior. Si se da este caso, se cumple
que (n
A
/n
B
)
2p
n
2
A
/n
s
> 1, por lo que:
R 1 4
_
n
B
n
A
_
2
n
s
n
2
A
, (5.22)
y
T = 1 R 4
_
n
B
n
A
_
2
n
s
n
2
A
, (5.23)
lo cual demuestra que cuando la reectancia es alta, la adicin de dos capas extras
(de ndices n
A
y n
B
) reduce la transmisin en un factor (n
B
/n
A
)
2
. Esta tendencia,
y el comportamiento general de este tipo de dispositivos peridicos es muestra en
la Figura 5.12, donde se comparan los resultados obtenidos a partir del MMC y del
mtodo de las DFDT en dos dimensiones. En concreto se ha realizado un simulacin
bidimensional de estos sistemas con polarizacin TE.
En la Figura 5.12a, se muestra el comportamiento, en trminos de reectancia
de una secuencia de tres lminas con ndice de refraccin alterno en funcin del
parmetro
0
/, donde
0
es la longitud de onda de sintona de las capas dielctricas,
es decir, cada una de ellas, presenta un grosor ptico de
0
/4. El resto de grcas
muestran la misma informacin para dispositivos con ms capas. En la Tabla 5.4 se
recogen los parmetros de la simulacin utilizados para la simulacin mediante el
mtodo de las DFDT.

0
t n
f
n
c
N
steps
230 nm 460 nm 2,3 nm 3,8310
9
ns 1024 1024 4096
Tabla 5.4: Parmetros de simulacin del mtodo de las DFDT.
La componente reejada en estos dispositivos es elevada en una banda estrecha
centrada en la longitud de onda de sintona de las lminas de cuarto de onda. Esta
reectancia cae de manera abrupta y presenta un comportamiento oscilante. La adi-
cin de nuevas capas vara el ancho del lbulo con alta reectancia, la magnitud de
la propia reectancia as como el comportamiento oscilatorio fuera de dicha banda.
Los resultados numricos mediante el mtodo de las DFDT y del MMC son muy
prximos entre s y demuestran la precisin del mtodo numrico, el cual permite
obtener instantneas del campo elctrico en funcin del espacio y del tiempo.
En la Figura 5.13 se muestra el mdulo del campo elctrico en funcin de la
relacin
0
/ para los casos representados en la Figura 5.12a, y 5.12c, que se corre-
sponden con lminas de alta reectancia con 3 y 7 capas respectivamente. Junto con
162 CAPTULO 5. RESULTADOS
0 0,5 1
0
50
100
R
(
%
)
n = 3
0 0,5 1
0
50
100
R
(
%
)
n = 5
0 0,5 1
0
50
100
R
(
%
)
n = 7
0 0,5 1
0
50
100
R
(
%
)
n = 9
MMC
DFDT
MMC
DFDT
MMC
DFDT
MMC
DFDT

0
/

0
/

0
/

0
/
Figura 5.12: Reectancia R para incidencia normal en capas de dielctrico de longitud
ptica
0
/4 y alternancia de ndices de refraccin alto (n
A
= 2,3) y bajo (n
B
= 1,38) en
susbstrato transparente (n
s
= 1,52) en funcin del parmetro
0
/.
cada representacin del mdulo del campo elctrico se muestra el perl del ndice
de refraccin en funcin del eje x. Las lneas vertical discontinua ilustra el plano
de incidencia de la onda plana. En concreto, se ha variado el grosor de las capas
dielctricas, y con ello la longitud de onda de sintona de las capas
0
. Tal y como
se muestra en la Figura 5.13, se aprecia un aumento considerable de la reectancia
a medida que la relacin
0
/ se acerca a 1, y con el aumento de capas en
0
/4. El
instante de tiempo seleccionado en todos los casos ha sido aquel que ha asegurado
la llegada al rgimen estacionario.
5.2 Filtros de capa delgada 163
1
2
3
n
0 1 2
0,5
1
1,5
2
y (m)
x

(

m
)
0,2
0,4
0,6
1
2
3
n
0 1 2
0,5
1
1,5
2
y (m)
x

(

m
)
0,2
0,4
0,6
1
2
3
n
0 1 2
0,5
1
1,5
2
y (m)
x

(

m
)
0,2
0,4
0,6
0,8
1
2
3
n
0 1 2
0,5
1
1,5
2
y (m)
x

(

m
)
0,2
0,4
0,6
0,8
1
2
3
n
0 1 2
0,5
1
1,5
2
y (m)
x

(

m
)
0,2
0,4
0,6
1
2
3
n
0 1 2
0,5
1
1,5
2
y (m)
x

(

m
)
0,2
0,4
0,6
0,8
1
1,2
(a) (b)
(c)
(d)
(f)
(e)
Figura 5.13: En cada una de las grcas se ilustra el mdulo del campo elctrico y arriba
el prl del ndice de refraccin, para lminas de alta reectancia en funcin de la relacin

0
/. En las grcas (a), (c) y (e) se ilustra una lmina compuesta por tres capas para
los casos
0
/ = 0,2,
0
/ = 0,6 y
0
/ = 1 respectivamente. En las grcas (b), (d),
(f) se muestra el caso para 7 capas para los casos
0
/ = 0,2,
0
/ = 0,6 y
0
/ = 1
respectivamente.
164 CAPTULO 5. RESULTADOS
5.3. Redes de difraccin hologrcas de volumen
En esta seccin se recogen los resultados relacionados con las RDH. En particular
se han estudiado las redes de difraccin hologrcas en transmisin y en reexin.
La diferencia bsica entre ellas reside bsicamente en el ngulo de orientacin de las
franjas de interferencia que las denen. En ambos casos, los dispositivos han sido
analizados mediante el mtodo de las DFDT y las curvas obtenidas a partir de su
anlisis han sido comparadas con las curvas tericas esperadas. Estas curvas tericas
provienen de la TROA para el caso de RDH en transmisin y del MM denido a
partir de las funciones de Mathieu para las RDH en reexin. Posteriormente, se
realizar un breve anlisis sobre el efecto de la discretizacin espacial tanto en el
mtodo de las DFDT tanto como en el MMC.
5.3.1. Redes de difraccin hologrcas de transmisin
Las redes de difraccin se registran generalmente en una emulsin fotogrca,
en la cual se graban los patrones de interferencia de dos ondas. Dicho patrn de
interferencia modica algunas de las propiedades pticas del material, como puede
ser el ndice de difraccin. En el caso de que se produzca variacin o modulacin
sinusoidal del ndice de refraccin se hablan de redes hologrcas de fase.
En una red de volumen en transmisin, la separacin de los planos en los que la
intensidad del registro es constante es mucho menor que el espesor de la emulsin.
La red peridica registrada est formada por un conjunto de planos paralelos como
los que se esquematizan en la conguracin de la red en 2D en la Figura 5.14. En
esta gura se muestran los valores de los ndices de refraccin, del periodo de red
y de las longitudes de la red as como los ngulos involucrados en el anlisis de las
redes de difraccin de volumen.
Cabe mencionar que el modelado de este tipo de estructuras mediante el mtodo
de las DFDT permite el anlisis completo del problema, sin considerar las aproxima-
ciones que necesita el mtodo las ondas acopladas de Kogelnik. Los valores obtenidos
a partir del mtodo de las DFDT van a ser contrastados con las expresiones analticas
aproximadas de la TOA y la TROA.
El problema se ha modelado mediante el algoritmo de las DFDT para una lon-
gitud de onda de 633 nm. A la hora de simular la red de difraccin surgen diversos
inconvenientes debidos a que la red debe de ser innita en la dimensin del plano
de incidencia. En el modelado de problemas mediante las DFDT, se debe limitar la
5.3 Redes de difraccin hologrcas de volumen 165
Plano de incidencia
Plano de salida de la red
Plano de observacin
0,83 m
12 m
n
0
= 1,63
n = 0,025

0
Figura 5.14: Esquema de los ngulos involucrados en una red de difraccin de volumen.
malla a una regin nita, por lo que el plano de incidencia de la red debe ser trunca-
do. Otro problema reside en que la formulacin de campo total y campo dispersado
fue concebida para estudiar el comportamiento del campo reejado por cualquier el-
emento que se sita en el interior la regin de campo total. En nuestro caso, tenemos
el inconveniente que la red no est en el interior de la regin de campo total sino que
pasa a travs de ella. En la Figura 5.15 se muestra un diagrama esquemtico de la
simulacin 2D (o una seccin xy de una simulacin 3D) de una red de difraccin. Se
puede apreciar como surgen unos artefactos indeseados justo en la interfase entre el
campo total y campo dispersado situada en la red de difraccin.
Para evitar el fenmeno de la difraccin en bordes, se ha optado por truncar
la regin de campo total y campo dispersado. En concreto, en lugar de substraer
la onda plana a la salida de la red, se ha eliminado una de las lneas donde se
evalan las connecting conditions para que la onda plana connada en el interior de
la zona de campo total salga por un nico lado, la cual est enfrentada al plano de
entrada de la red de difraccin. De esta manera se evita que las connecting conditions
sean evaluadas en el interior de la red a costa de que la onda plana que incide en
la red pierde cierta plenitud. En la Figura 5.16 se ilustra una secuencia de una
simulacin de una RDH en transmisin para diferentes pasos de tiempo. La red est
166 CAPTULO 5. RESULTADOS
y (m)
x

(

m
)
0 2 4 6 8 10 12 14 16 18
0
5
10
15
20
25
30
Campo
dispersado
Red de difraccion
Campo
total
artefactos indeseados
PML
Campo total
Campo dispersado
m=0
m=1
Origen de
interferencias
por difraccin
en bordes
y
PML
(a)
(b)
x
Figura 5.15: Esquema de la simulacin de la red de difraccin de volumen.
5.3 Redes de difraccin hologrcas de volumen 167
denida como el medio II y presenta una dependencia sinusoidal en x. La lnea
discontinua ilustra el plano de entrada de la onda plana. Resaltar que en dicho
plano la onda es generada y no es substrada en ningn plano a la salida de la
red. Tal y como se aprecia en la secuencia, a medida que la onda plana profundiza
en el medio peridico, se va generando un patrn del campo peridico tanto en
el interior de la red como en el exterior de la red. En este caso, tanto el medio
I como el III son el vaco (n
I
= n
II
= 1). Es interesante destacar la regin de
interferencia entre los rdenes transmitidos y difractados a la salida de la red, en el
medio III. Tambin se demuestra que los artefactos producidos por la evaluacin
de las connecting conditions han sido subsanados mediante la reformulacin de la
regin de CT-CD.
10 20 30
15
20
25
30
35
y (m)
x

(

m
)
(a)
0,5
1
1,5
10 20 30
15
20
25
30
35
y (m)
x

(

m
)
(b)
0,5
1
1,5
2
10 20 30
15
20
25
30
35
y (m)
x

(

m
)
(c)
0,5
1
1,5
2
10 20 30
15
20
25
30
35
y (m)
x

(

m
)
(d)
0,5
1
1,5
2
2,5
I II III
I II III
I II III
I II III
Figura 5.16: Distribucin del mdulo del campo elctrico en funcin del espacio para dife-
rentes pasos temporales en una simulacin de una red de difraccin hologrca de transmisin
con parmetros d = 6m, = 0, 83m, n
0
= 1, 63, n = 0,025,
I
= 22,64
o
. Parmetros
FDTD: n
f
= 3196, n
c
= 2500, = 633 nm, = /40, t = /(2c
0
). (a) t = 2500 t.
(b)t = 4000 t. (c) t = 5000 t. (d) t = 7500 t.
168 CAPTULO 5. RESULTADOS
En la Figura 5.16d muestra como a la salida de la red, el orden difractado y
transmitido forman una regin de interferencia espacial. En la Figura 5.17 se repre-
senta el mdulo del campo elctrico ([E
z
[) para una red de difraccin de transmisin
similar a la mostrada en la secuencia de la Figura 5.16, sin embargo en este caso
se han aumentado las dimensiones de la malla a simular para identicar mejor los
rdenes transmitido y difractado. Esta representacin es un ejemplo cualitativo de
la distribucin del campo elctrico en funcin de las regiones I, II y III, para este
tipo de dispositivos.
0 10 20 30 40
10
15
20
25
30
35
40
y (m)
x

(

m
)
0.5
1
1.5
2
2.5 I II III
R
T
S
R
Figura 5.17: Distribucin del campo nal para el mismo caso ilustrado en la Figura 5.16,
donde se visualiza la zona central de interferencia entre el haz transmitido y el difractado.
En primera instancia, el discernir las amplitudes del orden difractado y trans-
mitido requerira simulaciones de elevadas dimensiones para poder ver de manera
aislada, cada uno de los rdenes a la salida de la red (tal y como se ha realizado
para obtener el campo en la Figura 5.17). Sin embargo, se puede calcular la dis-
tribucin de campo lejano para obtener la amplitud del orden difractado, evitando
aumentar el tamao de simulacin y en consecuencia el coste temporal del mtodo.
En puntos lo sucientemente alejados al plano de salida de red, es fcil identicar el
orden transmitido y difractado de manera sencilla ya que no presentan solapamiento
espacial.
Para ejemplicar dicho fenmeno se ilustra en la Figura 5.18 la irradiancia para
5.3 Redes de difraccin hologrcas de volumen 169
diferentes grosores de red en un plano paralelo al de la salida de la red situado a 4000
celdas. Si recurrimos a la expresin (2.23), la cual dene el parmetro de modulacin
de red y recordamos que el mximo en difraccin se obtiene para incidencia en Bragg
( = /2), podemos identicar en la Figura 5.18b como a medida que el parmetro
de modulacin se acerca ms a /2 la amplitud de orden difractado aumenta.
x

(
m
m
)
(a)
0,9 1 1,1 1,2
-0,1
-0,05
0
0,05
0,1
x

(
m
m
)
(b)
0,9 1 1,1 1,2
-0,1
0
0,1
Tiempo (ps)
x

(
m
m
)
(c)
0,9 1 1,1 1,2
-0,1
0
0,1
0,05
0,1
0,15
0,05
0,1
0,15
0,2
0,25
0,05
0,1
0,15
0,2
Figura 5.18: Distribucin de la irradiancia [E
z
[
2
en campo lejano (y=4000y) calculado
a partir del campo a la salida de la red de difraccin con n
0
= 1.63, n = 0,025, = 0,63
nm. Simulacin 3D. a) d = 2,25 m y = 0,29. b)d = 12,3 m y = 1,57 . c)d = 19,85 m.
y = 2,53.
Finalmente se puede realizar un anlisis ms detallado de la eciencia de la red
en funcin del espesor de la misma, tal y como se ilustra en las Figuras 5.19 y 5.20.
En la Figura 5.19 se recogen las curvas de las eciencias en difraccin y transmisin
para una red de difraccin con modulacin de ndice n de 0,025 mientras que en la
Figura 5.20 se representa el mismo anlisis para una modulacin de ndice de 0,015.
En ambos casos, el perodo de red es de = 0,83 m o 1200 lneas por milmetro.
Respecto a la conguracin del mtodo de las DFDT, en la Tabla 5.5 se resumen los
170 CAPTULO 5. RESULTADOS
t n
f
n
c
N
steps
630 nm 63 nm 105 10
9
ns 1500 1000 5000
Tabla 5.5: Parmetros de simulacin del mtodo de las DFDT para redes de difraccin por
transmisin.
0 5 10 15 20 25
0
0,2
0,4
0,6
0,8
1
d (m)
E
f
i
c
i
e
n
c
i
a

e
n

d
i
f
r
a
c
c
i

n

(
a
.

n
.
)
0 5 10 15 20 25
0
0,2
0,4
0,6
0,8
1
d (m)
E
f
i
c
i
e
n
c
i
a

e
n

t
r
a
n
s
m
i
s
i

n

(
a
.

n
.
)
TROA
DFDT
TOA
TROA
DFDT
TOA
(a) (b)
Figura 5.19: Anlisis del oren difractado y transmitido para una RHV en transmisin con
n=0.025. (a) Eciencia en difraccin (m = 1). b) Eciencia en transmisin (m = 0).
parmetros escogidos.
En ambos casos se han comparado las curvas numricas obtenidas mediante el
mtodo de las DFDT mediante la TROA y la teora de Kogelnik (TOA). Debido a las
limitaciones expuestas en el Captulo 2, la TOA se muestra menos precisa a la hora
de modelar el comportamiento fsico de estos dispositivos. Las mltiples reexiones y
los rdenes superiores rompen el perl sinusoidal presente en la TOA. Sin embargo,
en todos los casos, el mtodo de las DFDT proporciona unos valores satisfactorios y
bastante precisos comparados con las curvas tericas.
Por otro lado, tambin se ha estudiado la selectividad angular de este tipo de
redes. Para ello, se ha escogido un valor para el grosor de la red (d=12.3 m) para
el cual se ha realizado un barrido angular centrado en ngulo de Bragg. Para el caso
de la red de difraccin con modulacin de ndice n
1
= 0,025, el mximo de las curvas
5.3 Redes de difraccin hologrcas de volumen 171
0 5 10 15 20 25
0
0,2
0,4
0,6
0,8
1
d (m)
E
f
i
c
i
e
n
c
i
a

e
n

d
i
f
r
a
c
c
i

n

(
n
.

a
.
)
0 5 10 15 20 25
0
0,2
0,4
0,6
0,8
1
d (m)
E
f
i
c
i
e
n
c
i
a

e
n

t
r
a
n
s
m
i
s
i

n

(
n
.

a
.
)
(a) (b)
TROA
DFDT
TOA
TROA
DFDT
TOA
Figura 5.20: Anlisis del oren difractado y transmitido para una RHV en transmisin con
n=0.015. (a) Eciencia en difraccin (m = 1). b) Eciencia en transmisin (m = 0).
(representadas en la gura 5.21a alcanza la unidad, ya que el grosor escogido junto
con dicha modulacin de ndice se obtenga el 100 % de eciencia ( = /2)). Por
otro lado, el grosor escogido (d = 12.3 m) para la red con modulacin de ndice de
n
1
=0.015, nunca alcanza eciencias superiores al 75 % ya que aunque se excite en
ngulo de Bragg, para esas condiciones, la eciencia es de alrededor del 65 %. Todos
estos resultados, junto con las curvas tericas se muestran en la gura 5.21.
5.3.2. Redes de difraccin hologrcas de reexin
Las redes de difraccin hologrcas en transmisin presentan un ngulo de in-
clinacin de las franjas de interferencia igual a 90
o
. En la Figura 2.2 se ilustra el
esquema y el diagrama vectorial de ambas redes, aunque se ha considerado conve-
niente recordar la geometra del problema, por ello, en la Figura 5.22 se muestra la
conguracin de una red de difraccin hologrca en reexin. De manera similar al
caso de redes por transmisin, se va a recurrir a la versin bidimensional del mtodo
de las DFDT y en particular se contemplar la polarizacin TE desarrollada en la
seccin 3.2. En la Figura 5.23 se muestra la adaptacin del sistema a una simulacin
con el mtodo de las DFDT. En dicha gura se representa el campo elctrico pro-
ducido por la interaccin de una onda plana con una RDH en reexin en funcin
172 CAPTULO 5. RESULTADOS
10 15 20 25 30 35
0
0,2
0,4
0,6
0,8
1
10 15 20 25 30 35
0
0,2
0,4
0,6
0,8
1
TROA
TOA
DFDT-2D
DFDT-3D
()
()
E
D
-
1
E
D
-
1
TROA
TOA
DFDT-2D
DFDT-3D
(a)
(b)
Figura 5.21: Curvas de eciencia angular en funcin del ngulo de incidencia () para una
red de difraccin de volumen con n=0.025, =0.83 m, =633 nm. a) Modulacin de
ndice n = 0,025, = pi/2. b)n = 0,015, = 0,94.
5.3 Redes de difraccin hologrcas de volumen 173
d
y
S
R

I
MedioI
n
I

III
Medio III
n
III
T
Figura 5.22: Esquema ilustrativo de la conguracin de una red de difraccin hologrca
de reexin
del espacio para un instante de tiempo en el cual se considera que la red ha entrado
en estado estacionario. En dicha ilustracin se pueden identicar las diferentes he-
rramientas detalladas en el Captulo 3, como pueden ser las CFA y la formulacin
de CT-CD.
Para este tipo de redes, se va a comprobar las deciencias que presenta tanto
la TOA como la TROA debido a las razones mencionadas en la seccin 2.1 y 2.2.
En este punto se va a recurrir al mtodo desarrollado a partir de las funciones de
Mathieu detallado en el punto 2.3. Este mtodo salva los inconvenientes que sufren
los mtodos clsicos de resolucin de medios peridicos debido a que la hiptesis de
partida no presenta incompatibilidades con medios no innitamente peridicos.
En la Figura 5.24 se representa la selectividad angular del orden difractado para
una red de difraccin de reexin. Los medios I y III se corresponden con el vaco,
por lo que n
I
= n
III
= 1. Los parmetros de la simulacin numrica se recopilan en la
Tabla 5.6. En este caso, se ha obviado el uso de la transformacin de campo cercano
a lejano y se ha recurrido a las versiones optimizadas del cdigo para simular mallas
ms densas. Para reexin, no existe el problema que exista en transmisin que
consista en que el orden difractado y transmitido estaban solapados espacialmente.
En este caso, un anlisis en el plano de entrada a la red es suciente para analizar
la eciencia en difraccin.
Tal y como se puede identicar en las curvas mostradas en la Figura 5.24, la
teora de Kogelnik no proporciona resultados satisfactorios, mientras que la curva
numrica obtenida por el mtodo de las DFDT es mucho ms prximo a la curva
obtenida a partir del mtodo MM. Por otro lado, este resultado tambin permite
deducir, que aunque el anlisis de este tipo de redes a priori parezca ms sencillo que
174 CAPTULO 5. RESULTADOS
y (m)
-1,5
-1
-0,5
0
0,5
1
1,5
0 0,5 1 1,5 2
0
0,5
1
1,5
2
2,5
3
x

(

m
)
Red
CT-CD
d
CFA
T
R
S
Figura 5.23: Representacin del campo elctrico para un paso temporal en el que se ha
alcanzado el estado estacionario.
20 30 40 50 60 70 75 15
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
()
Mathieu
Kogelnik
DFDT
D
E
-
1
= 0,22 m
= 632,1 nm
n
0
= 1,63
n

= 0,025
d = 11,06 m
n
I
= 1
n
III
= 1
Figura 5.24: Eciencia en difraccin en funcin del ngulo de incidencia. Comparativa entre
el MM a partir de las funciones de Mathieu, la teora de Kogelnik y el mtodo numrico de
las DFDT.
5.3 Redes de difraccin hologrcas de volumen 175
t n
f
n
c
N
steps
633 nm 15,83 nm 26,38 10
9
ns 3072 1280 9000
Tabla 5.6: Parmetros de simulacin del mtodo de las DFDT para la red de difraccin de
transmisin analizada en la Figura 5.24.
el de las redes por transmisin, la morfologa y la comparativa con curvas tericas es
ms compleja que las obtenidas para el caso de redes por transmisin.
De manera similar tambin se ha realizado un anlisis comparativo de la precisin
del mtodo de las DFDT en funcin de la resolucin espacial. Del mismo modo,
la Teora del Medio Equivalente (TME) se ha aplicado a este tipo de problemas y hay
que tener en cuenta que est sujeto a las mismas limitaciones en cuanto a resolucin
espacial se reere. Cabe recordar que la TME se basa en aproximar mediante capas
dielctricas homogneas el medio que se quiere estudiar. Para el caso de las RDH, el
perl sinusoidal de la red es muestreado y discretizado. Este fenmeno es analizado
en la Figura 5.27, donde se comparan tanto el mtodo de las DFDT, como la TME
con el MM basado en las funciones de Mathieu y la teora de Kogelnik. El MM es la
referencia terica ya que este mtodo no es sensible a una discretizacin espacial.
Tal y como se muestra en las Figuras 5.27a y 5.27b, se puede identicar una
dependencia tanto en el mtodo de las DFDT como en la TME. En particular, en
la Figura 5.27a, se muestran los resultados para el caso de 8 muestras por perodo
espacial de red (). En este caso, la similitud entre la curva numrica y terica son
aceptables, aunque a medida que nos alejamos del ngulo de Bragg se aprecia un
desplazamiento o desfase de los nulos en las curvas del mtodo de las DFDT y en el
de la TME. En la Figura 5.27b, se muestran las mismas curvas pero particularizadas
para el caso de considerar 16 muestras por perodo espacial. Tal y como se puede
identicar, la similitud entre las respuestas tericas del MM y de las numricas a
partir de la TME y de las DFDT se ha visto mejorado notablemente a costa de
aumentar de manera considerable la malla a simular.
A la vista de estos resultados se puede interpretar que parte de las diferencias
entre la curva numrica obtenida por el mtodo de las DFDT y el MM se basan
en la discretizacin espacial inherente al mtodo de diferencias nitas. El uso de
mtodo numricos basados en la discretizacin del espacio de simulacin implican
acotar el plano de incidencia de la onda plana, lo cual discrepa de las hiptesis
de los mtodos de anlisis convencionales de este tipo de dispositivos. El MM, al
igual que la TROA consideran que la red es un medio innito en la dimensin del
plano de incidencia, mientras que el mtodo numrico basado en las DFDT no puede
asumir dicha condicin. Por otro lado, tambin existe una discretizacin en el propio
176 CAPTULO 5. RESULTADOS
20 30 40 50 60 70 75 15
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
()
D
E
-
1
Kogelnik
Mathieu
DFDT
MME
(a)
20 30 40 50 60 70 75 15
0
0.1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
()
D
E
-
1
Kogelnik
Mathieu
DFDT
MME
(b)
Figura 5.25: Anlisis de la eciencia angular en funcin de la resolucin espacial en los
mtodos de las DFDT y de la matriz efectiva. En ambas grcas las curvas del MM y de
Kogelnik son las mismas. (a) Curvas de FDTD y de MME para 8 muestras por . (b) Curvas
de FDTD y de MME para 16 muestras por .
5.4 Optimizacin computacional 177
medio peridico, que tal y como se ha identicado en el mtodo de las DFDT y en
la TME afecta de una manera muy concreta en el anlisis de la reectancia en estos
dispositivos. Estas razones, son las que principalmente condicionan la precisin del
mtodo. Sin embargo, cabe destacar que los resultados obtenidos tanto para las redes
de difraccin en transmisin y en reexin son bastante aproximadas a las tericas
exactas.
Siguiendo con el anlisis de redes de difraccin hologrcas en reexin, se ha
realizado un anlisis de una conguracin alternativa, pero en este caso modicando
el medio III con un substrato en lugar del vaco. Los parmetros tanto de la red a
simular como del mtodo de las DFDT se muestran en la Tabla 5.7. A partir de estos
datos, se han realizado diversas simulaciones para analizar la selectividad angular
y en longitud de onda, del orden 0 y del orden -1, los cuales se corresponden con
el difractado y el transmitido respectivamente. En la Figura 5.26 se representa la
eciencia de ambos rdenes en funcin del ngulo de incidencia (en el medio I) para
ambos rdenes. Los resultados mostrados en este caso se corresponden con el mtodo
numrico de las DFDT y el MM. Al igual que para casos anteriores, la tendencia en
ambas curvas es muy similar validando la aproximacin numrica.
d n
0
n n
I
n
III
n
f
n
c
N
steps
0,22 632,1 11,06m 1,63 0,055 1 1,63 /40 3072 1280 9000
Tabla 5.7: Parmetros de simulacin del mtodo de las DFDT para redes de difraccin por
reexin.
A la vista de los resultados obtenidos del estudio de la selectividad angular y
de la reectancia y la transmitancia en funcin de la longitud de onda, se puede
armar que los resultados numricos obtenidos con el mtodo de las DFDT siguen
siendo robustos comparados con el MM. Tambin se ha comprobado que al cambiar
el medio III por un substrato transparente, los lbulos presentes fuera de la regin
de Bragg se atenan considerablemente, suavizando las oscilaciones de las curvas de
la reectancia y la transmitancia.
5.4. Optimizacin computacional
En esta seccin se van a presentar los resultados obtenidos del anlisis del rendimien-
to de las diferentes versiones del algoritmo de las DFDT. En concreto se disponen
de tres versiones del algoritmo:
178 CAPTULO 5. RESULTADOS
20 30 40 50 60 70
0
0,2
0,4
0,6
0,8
1

()
D
E
0
(a)
20 30 40 50 60 70
0
0,2
0,4
0,6
0,8
1

()
D
E
-
1
(b)
MM
FDTD
MM
FDTD
Figura 5.26: Comparativa entre los resultados numricos obtenidos mediante el mtodo de
las DFDT y el MM, los parmetros de simulacin se recogen en la Tabla 5.7. (a) Reectan-
cia en funcin ngulo de incidencia de la red. (b) Transmitancia en funcin del ngulo de
incidencia.
5.4 Optimizacin computacional 179
650 700 750 800 850 900
0
0.2
0.4
0.6
0.8
1
(nm)
E
f
i
c
i
e
n
c
i
a

(
a
.
n
)
DE
-1
MM
DE
-1
DFDT
DE
0
MM
DE
0
DFDT
Figura 5.27: Transmitancia y reectancia en funcin de la longitud de onda. Parmetros
de la simulacin recogidos en la Tabla 5.7.
Versin 1: Simulacin bsica del mtodo de las DFDT en dos dimensiones,
cuya excitacin se realiza mediante una fuente puntual.
Versin 2: Se corresponde con la versin 1 presentada con la adicin de las CFA,
en concreto se han implementado las PMLs desarrolladas en el punto 3.2.2.
Versin 3: Simulacin completa del mtodo de las DFDT para el anlisis de
elementos complejos, la cual incluye las PMLs y la formulacin de CT-CD
introducida en la seccin 3.2.4.
El rendimiento de estas tres versiones se ha analizado en funcin de la opti-
mizacin realizada, as como del hardware encargado de computar el mtodo. En
concreto se disponen de tres cdigos para las tres versiones anteriores:
Cdigo secuencial: Implementacin secuencial del mtodo con la incorporacin
del la directiva de compilacin -O3, la cual vectoriza automticamente el cdi-
go secuencial con el uso de instrucciones SSE en el microprocesador. Este
implementacin se identicar a partir del trmino secuencial.
Cdigo paralelo: Implementacin implcita de las instrucciones vectoriales SSE
y uso de mltiples procesos con directivas OpenMP. Esta versin se espera que
obtenga el mximo rendimiento de las UPC de los computadores modernos
ya que explota el paralelismo a nivel de instruccin y a nivel de procesos,
mediante el uso de varios hilos sobre diferentes ncleos en el microprocesador.
Esta implementacin se identicar a partir del trmino SSE+OpenMP.
180 CAPTULO 5. RESULTADOS
T
Sec
(sin -O3) T
Sec
(con -O3) T
SSE+OpenMP
T
CUDA
465.39 s 158.71 s 50.93 s 7.8 s
Tabla 5.8: Tiempos de simulacin para la versin 3 del mtodo de las DFDT para una malla
de 25602560 para la versin secuencial, la versin SSE+OpenMP y la versin CUDA.
Cdigo UPG: En este caso el procesado se realiza en las UPG y explota el
paralelismo de manera exhaustiva debido al gran nmero de ncleos presentes
en las UPG. Esta implementacin del cdigo se identicar como la versin
CUDA.
Cabe destacar, que en este trabajo el cdigo secuencial puede ser considerado una
versin mejorada respecto a un cdigo secuencial estndar, ya que se ha realizado
teniendo en cuenta los mecanismos utilizados por el compilador para la vectorizacin
automtica. El rendimiento obtenido por esta vectorizacin es muy sensible a malos
hbitos de programacin e inclusive en algunas ocasiones puede provocar resultados
inesperados debido a una incorrecta programacin, la cual es dicil de identicar para
la versin secuencial convencional. En el caso que nos ocupa, la versin secuencial se
ha implementado de una manera eciente, proporcionado una mejora considerable
mediante tcnicas de vectorizacin automtica basadas en la etapa de compilacin.
En consecuencia se demuestra que uno de los primeros pasos a la hora de optimizar
una aplicacin es invertir un tiempo en depurar el cdigo secuencial, el cual puede
proporcionar buenos rendimientos si se tienen en cuenta caractersticas como el acceso
contiguo a memoria, proximidad espacial de los datos, etctera.
Esta idea se plasma en la Tabla 5.8, donde se ilustra el tiempo invertido por
cada una de las implementacin de la versin 3 del mtodo incluyendo la versin sin
vectorizacin automtica. Como puede verse a partir de los datos proporcionados,
la vectroizacin automtica proporciona una reduccin del tiempo de simulacin
cercana a tres, lo cual demuestra la importancia de que el cdigo secuencial presente
caractersticas favorables para la esta vectorizacin.
Sin embargo, el ratio de mejora introducido por el uso implcito de las instruc-
ciones SSE es mayor tal y como se muestra en la Tabla 4.3 y la Tabla 5.8.
La aplicacin de este mtodo a mallas de elevadas dimensiones y a longitudes de
onda cortas implica un aumento de los requisitos computacionales del mtodo. Por
ello, la mejora obtenida por la autovectorizacin no es suciente en la mayora de los
casos. A continuacin se muestran los resultados obtenidos a partir de las diferentes
implementaciones en funcin del tamao de simulacin.
5.4 Optimizacin computacional 181
0,5 1 1,5 2 2,5
0,5
1
1,5
2
2,5
n
c
x 1000
n
f

x

1
0
0
0
(c)
50
100
150
0,5 1 1,5 2 2,5
0,5
1
1,5
2
2,5
n
c
x 1000
n
f

x

1
0
0
0
(e)
2
4
6
8
0,5 1 1,5 2 2,5
0.5
1
1,5
2
2,5
n
c
x 1000
n
f

x

1
0
0
0
(a)
100
200
300
n
f

x

1
0
0
0
0,5 1 1,5 2 2,5
0,5
1
1,5
2
2,5
n
c
x 1000
(f)
2
4
6
0,5 1 1,5 2 2,5
0,5
1
1,5
2
2,5
n
c
x 1000
n
f

x

1
0
0
0
(b)
50
100
150
0,5 1 1,5 2 2,5
0,5
1
1,5
2
2,5
n
c
x 1000
n
f

x

1
0
0
0
(d)
20
40
60
Figura 5.28: Representacin del tiempo de ejecucin de la versin 1 del mtodo de las
DFDT para las diferentes implementaciones y estaciones de trabajo. El grupo de guras
(a), (c) y (e) se corresponden con las versiones secuencial, SSE+OpenMP y CUDA respec-
tivamente para Bell. El grupo de guras (b), (d) y (f) se corresponden con las versiones
secuencial, SSE+OpenMP y CUDA respectivamente para Clerk. Para ms informacin so-
bre cada una de las estaciones ver Tabla 4.2.
182 CAPTULO 5. RESULTADOS
Si analizamos en detalle los costes temporales para una de las estaciones de
cmputo (Bell y Clerk), por ejemplo para la estacin Clerk (grcas (b), (d) y (f) de
la Figura 5.28), podemos ver como el tiempo de simulacin aumenta a medida que
lo hacen las longitudes en x e y de la malla. Cabe destacar que el coste del mtodo
de las DFDT es exponencial ya que el mtodo se basa en sendos bucles que recorren
de manera ordenada cada una de las dimensiones de la malla. Este comportamiento
es comn a todas las plataformas de calculo.
Un parmetro bsico en el anlisis del rendimiento de cdigos secuenciales y
paralelos es el de SpeedUp, denido en la ecuacin (4.2), el cual indica el ratio de
mejora de una versin paralela sobre una versin secuencial en trminos temporales.
Dado que tanto Bell como Clerk presentan comportamientos similares (debido a sus
similitudes hardware), a partir de este punto se va a analizar con profundidad el
rendimiento obtenido por Clerk ya que es la que presenta un mayor rendimiento
enla UPC, y es la que puede proporcionar valores ms conservadores sobre el ratio
de mejora entre el uso de UPG frente a UPC. En la Figura 5.29a se muestra el
1 2 3
1
2
3
n
f
x 1000
n
f

x

1
0
0
0
(c)
2
4
6
8
1 2 3
1
2
3
n
c
x 1000
n
f

x

1
0
0
0
(a)
2
4
6
8
10
n
c
x 1000
1 2 3
1
2
3
n
f

x

1
0
0
0
(b)
10
20
30
40
Figura 5.29: (a) SpeedUp para la versin SSE+OpenMP en Clerk y para la versin 2 del
mtodo de las DFDT. (b) SpeedUp para la versin CUDA en la Clerk y para la versin 2 del
mtodo de las DFDT. (c) Cociente entre los tiempos de la versin SSE+OpenMP y CUDA
para la Clerk y la versin 2 del mtodo de las DFDT.
5.4 Optimizacin computacional 183
SpeedUp de la versin SSE+OpenMP, mientras que en la Figura 5.29b se muestra
el SpeedUp para la implementacin en CUDA. Respecto a la implementacin opti-
mizada en la UPC (Figura 5.29a, se identica una regin en la cual el rendimiento
de esta versin alcanza valores mximos de hasta 10 comparados con la versin se-
cuencial vectorizada automticamente. El descenso del rendimiento a medida que las
las y las columnas aumentan es debido principalmente a que la cach del micro-
procesador no puede almacenar todos los datos necesarios para procesar el problema.
Este hecho desemboca en sucesivos fallos de pgina y que en denitiva la tendencia
del SpeedUp converja a cerca de 4, el cual se corresponde con el nmero de ncleos
en este dispositivo. La tendencia mostrada en la Figura 5.29a y 5.29b mediante una
lnea blanca continua delimita la regin en la cual el tamao de simulacin excede
los lmites de la memoria cach del microprocesador. Esta curva se obtiene a travs
de la prediccin aproximada de la memoria necesaria para una simulacin de n
f
las
y n
c
columnas, la cual se puede obtener como n
f
n
c
4 7, donde el multiplicar
por 4 es debido al nmero de bytes necesarios para representar un nmero de coma
otante en precisin simple y por 7 debido a que en el mtodo utiliza 7 matrices para
realizar los clculos: D
z
, E
z
, H
x
, H
y
junto a dos matrices auxiliares que computan
la integral necesaria para las Capas de Adaptacin Perfecta (CAP) y una extra que
almacena las caractersticas fsicas del medio.
Por otro lado, en la Figura 5.29b se representa el SpeedUp para el caso de la
implementacin CUDA. En este caso el SpeedUp muestra un perl mucho ms ho-
mogneo y constante. En concreto, se consigue reducir el tiempo de clculo hasta 40
veces comparado con los tiempos requeridos para la versin secuencial vectorizada
automticamente.
Sin embargo, si comparamos las dos plataformas hardware de Clerk, es de-
cir, UPG frente a UPC se obtienen unos ratios de mejora mucho ms reducidos,
tal y como se ilustra en la Figura 5.29c. En este caso, se puede identicar una regin,
en la cual, el uso de UPG reduce en poco ms de la mitad el tiempo respecto a
la versin SSE+OpenMP en la UPC. Por el contrario, a medida que el tamao de
simulacin aumenta, la UPG se muestra ms competitiva reduciendo el tiempo de
clculo hasta en 8 unidades respecto a la versin SSE+OpenMP.
Respecto a la simulacin que contempla todos los formalismos necesarios para la
simulacin de dispositivos pticos difractivos (versin 3) se presentan las siguientes
grcas, las cuales se corresponden con el SpeedUp en funcin del nmero de colum-
nas para diferentes nmeros de las. Tal y como se aprecia en la Figura 5.30a, a
medida que el nmero de columnas crece la versin SSE+OpenMP tiende a ser cu-
atro veces ms rpida que la versin secuencial. Para el caso concreto de n
f
= 256,
se obtiene un mximo en el SpeedUp alrededor de n
c
= 1000. Si realizamos clculos
sencillos del tamao de memoria que se est utilizando en en la simulacin, podemos
184 CAPTULO 5. RESULTADOS
1 2 3 4 5 6 6,3
2
4
6
8
10
n
c
x 1000
S
p
e
e
d
U
p
(a)
n
f
= 256 celdas
n
f
= 512 celdas
n
f
= 1536 celdas
n
f
= 2560 celdas
0,09
0
10
20
30
n
c
x 1000
S
p
e
e
d
U
p
(b)
n
f
= 256 celdas
n
f
= 512 celdas
n
f
= 1536 celdas
n
f
= 2560 celdas
1 2 3 4 5 6 6,3 0,09
0
2
4
6
8
(c)
n
f
= 256 celdas
n
f
= 512 celdas
n
f
= 1536 celdas
n
f
= 2560 celdas
n
c
x 1000
1 2 3 4 5 6 6,3 0,09 T
S
S
E
+
O
p
e
n
M
P
/
T
G
P
U
Figura 5.30: Comparativa entre tiempos de proceso de la versin 3 del mtodo de las
DFDT en la estacin 2: (a) SpeedUp para la versin SSE+OpenMP. (b) SpeedUp para la
versin CUDA. (c) Cociente entre los tiempos de la versin SSE+OpenMP y CUDA.
llegar a obtener aproximadamente 7 MB de memoria. El valor de 7 MB es prxi-
mo a la cach de nivel 2 disponible en el procesador i7 disponible en Clerk. Por lo
que se puede comprobar que a medida que el tamao de simulacin excede la cach
disponible en el microprocesador, el rendimiento del mtodo se reduce de manera
drstica. Este razonamiento es extendible al resto de casos en la Figura 5.30, por
ello, a medida que el nmero de las aumenta, la regin donde el microprocesador
proporciona mayor SpeedUp se estrecha en la dimensin de las columnas.
En la Figura 5.30b se muestra el mismo anlisis anteriormente realizado para la
versin SSE+OpenMP del microprocesador pero para el caso de la implementacin
CUDA sobre UPG. En este caso, el SpeedUp se muestra mucho ms homogneo en
funcin de las columnas utilizadas en la simulacin al igual que para las versiones 1
y 2 del mtodo DFDT implementadas en CUDA.
5.4 Optimizacin computacional 185
En la Figura 5.30c se compara la mejora introducida en la implementacin CUDA
respecto a la optimizada en la UPC, es decir la SSE+OpenMP. Tal y como se ha
mencionado anteriormente, para simulaciones de tamao reducido, es decir, aquellas
dimensiones que pueden ser almacenadas completamente en la cach de nivel 2 del
microprocesador, el ratio de mejora obtenido por la UPG es nicamente de dos.
Sin embargo, a medida que el tamao de simulacin aumenta, los fallos de pgina
en el microprocesador reducen las prestaciones de la versin SSE+OpenMP y la
versin CUDA predomina como una alternativa mucho ms competitiva. Tambin
cabe destacar, que para tamaos de simulacin pequeos, la versin CUDA presenta
un detrimento en el rendimiento frente a las versiones secuenciales debido a que los
recursos de la UPG estn siendo infrautilizados. Tal y como se ha detallado en el
apartado 4.2.3, en ocasiones, el gestor de hilos de la UPG realiza cambios de contexto
o debe de esperar a que algunos grupos de hilos estn listos para operar. Estos estados
repercuten en el rendimiento global del sistema y son enmascarados en aplicaciones
con un alto porcentaje de ocupacin debido a que el gestor se encarga de proporcionar
hilos preparados para ser procesados a los multiprocesadores. Cuando el nmero de
hilos totales se reduce, estas latencias son ms difciles de solventar por el gestor de
la UPG y por lo tanto, el rendimiento global de la aplicacin se reduce de manera
signicativa.
En la Figura 5.31 se ilustra el rendimiento en GFlops por segundo para la ver-
sin completa del mtodo de las DFDT para ambas estaciones, as como para las
dos implementaciones optmizadas en la UPC y en la UPG. En las Figuras 5.31a y b
se representa el rendimiento en funcin del tamao de la simulacin para el caso de
los microprocesadores Intel
TM
Quad-Core Q6600 e Intel
TM
i7-950 respectivamente.
La tendencia es proporcional al SpeedUp, ya que el nmero de operaciones en coma
otante es proporcional a las dimensiones de la malla, al igual que el coste tem-
poral. Anlogamente, al estudio del SpeedUp, se identica una regin en la cual el
rendimiento es mayor ya que toda la simulacin puede ser almacenada en el interior
de la cach. Al igual que para el anlisis del SpeedUp, la curva blanca delimita el
tamao de la malla que excede el tamao de cach en una simulacin completa en
dos dimensiones y con polarizacin TE. Para el caso del microprocesador Q6600,
el rendimiento se reduce antes de lo esperado debido a la propia arquitectura del
microprocesador, ya que presenta dos cachs de nivel 2 de 4 MB intercomunicadas.
Debido a que fsicamente no estn juntas, como en el caso del i7-950, el rendimiento
nal es ligeramente menor producido por las comunicaciones entre ambas cachs.
En las Figuras 5.31b y c se muestra el rendimiento para ambas UPG, la GeForce
GTX-460 y 470 respectivamente. En ambas el patrn es prcticamente idntico sal-
vo un factor de escalado, el cual puede ser debido principalmente a la diferencia en
el nmero de multiprocesadores (mayor en la 470), junto con la velocidad del reloj
del sistema, tambin superior en la 470. Para el caso de la Figura 5.31 se consiguen
rendimientos cercanos a los 40 GFlops, los cuales son del orden a los obtenidos por
186 CAPTULO 5. RESULTADOS
otros investigadores en trabajos recientes, como Kim et al en su trabajo recien-
temente publicado [4], cuyos resultados, en trminos de GFlops/s son ligeramente
superados en este trabajo.
1 2 3
0,5
1
1,5
2
2,5
3
n
c
x 1000
n
f

x

1
0
0
0
(a)
2
3
4
5
6
1 2 3
0,5
1
1,5
2
2,5
3
n
c
x 1000
n
f

x

1
0
0
0
(b)
5
10
15
20
25
30
1 2 3
0,5
1
1,5
2
2,5
3
n
c
x 1000
n
f

x

1
0
0
0
(c)
6
8
10
12
14
1 2 3
0,5
1
1,5
2
2,5
3
n
c
x 1000
n
f

x

1
0
0
0
(d)
10
20
30
40
Figura 5.31: Rendimiento en Gops/s para la versin 3 del mtodo de las DFDT: (a)
SSE+OpenMP en la estacin 1. (b) SSE+OpenMP en la estacin 2. (c) CUDA en la estacin
1. (d) CUDA en la estacin 2.
Bibliografa
[1] E. Hecht. ptica. Pearson: Addison Wesley, 2003.
[2] J. C. Maxwell. A Dynamical Theory of the Electromagnetic Field. Philosophical
Transactions of the Royal Society of London, 155:459512, dec 1865.
[3] S. A Rueda, F. F Medina, y J. F Barrera. Criterio generalizado para la distincin
entre la difraccin de fraunhofer y fresnel. Revista Colombiana de Fsica, 41(1):
128130, Enero 2009.
[4] K-H. Kim, K. Kim, y Q-H. Park. Performance analysis and optimization of
three-dimensional fdtd on gpu using rooine model. Computer Physics Commu-
nications, 182(6):12011207, 2011.
188 BIBLIOGRAFA
Captulo 6
Conclusiones
Hay una fuerza motriz ms poderosa
que el vapor, la electricidad y
la energa atmica: la voluntad.
Albert Einstein
A continuacin se van a enumerar las principales conclusiones obtenidas a partir
de los resultados obtenidos:
Se han aplicado una serie de mtodos numricos para el anlisis electromag-
ntico de dispositivos peridicos en longitudes de onda pticas. En concreto se
han analizado redes de difraccin hologrcas de volumen y medios estrati-
cados basados en capas delgadas.
Se ha recurrido al mtodo de las DFDT para el anlisis electromagntico en
funcin del tiempo y del espacio. Este mtodo se ha implementado en su to-
talidad y en sus versiones unidimensional, bidimensional y tridimensional. Del
mismo modo se han incluido diferentes formalismos que han permitido la simu-
lacin de dispositivos pticos complejos como son las condiciones absorbentes
de frontera, la incorporacin de medios dielctricos, la transformacin de cam-
po cercano a campo lejano, y la incorporacin del campo total y campo dis-
persado permitiendo la simulacin de ondas planas.
El mtodo de las DFDT se ha aplicado inicialmente a redes de difraccin de
apertura obteniendo los patrones de interferencia en las regiones de Fresnel y
Fraunhofer. Las irradiancias en campo lejano se han calculado a travs de la
190 CAPTULO 6. CONCLUSIONES
propagacin del campo prximo, por lo que la comparativa entre los patrones
de interferencia calculados a travs del mtodo numrico y los calculados a
travs de expresiones analticas ha permitido validar la implementacin del
mtodo de las DFDT en su totalidad y comprobar la rigurosidad de los esque-
mas bi y tridimensional implementados.
Se han utilizado formalismos clsicas como la Teora de Ondas Acopladas
(TOA) de Kogelnik y la Teora Rigurosa de Ondas Acopladas (TROA) de-
sarrollada por Moharam y Gaylord para el anlisis terico de las redes de
difraccin hologrcas de volumen. Los rendimientos en difraccin obtenidos
a partir del anlisis de estas teoras han permitido validar la aplicacin del
mtodo de las DFDT a este tipo de medios. De manera similar, se ha recur-
rido al formalismo terico basado en el Mtodo de la Matriz Caracterstica
(MMC) de un medio dielctrico homogneo pera el anlisis de una sucesin de
capas dielctricas homogneas, las cuales conforman los ltros de capa delgada.
En particular, se ha utilizado esta teora para contrastar los valores obtenidos
mediante el mtodo de las DFDT del estudio de lminas de alta reectancia,
cuyos resultados han mostrado ser consistentes con los tericos.
El anlisis de RDH en transmisin mediante el mtodo de las DFDT ha pro-
porcionado informacin til relacionada con la distribucin instantnea del
campo electromagntico en funcin del espacio y del tiempo. Esta informacin
ha permitido obtener la distribucin del campo lejano y por lo tanto las irradi-
ancias de los ordenes transmitidos y difractados. Dichas magnitudes han sido
calculadas mediante el mtodo numrico y comparadas con las curvas teri-
cas calculadas a partir de la TOA y de la TROA. Los resultados obtenidos
a partir de estas teoras han permitido corroborar la rigurosidad del mtodo
de las DFDT, ya que proporciona resultados cercanos a la TROA, al mismo
tiempo que ilustra las deciencias de la teora de Kogelnik.
Se han comprobado las deciencias de la TOA y de la TROA en el anlisis
de RDH en reexin. Por ello, se ha desarrollado un mtodo matricial a partir
de la ecuacin de Mathieu, el cual no presenta las limitaciones de los mtodos
anteriores. Este formalismo ha permitido comparar los resultados obtenidos
mediante el mtodo de las DFDT con curvas tericas obteniendo resultados
satisfactorios.
Se ha estudiado el efecto de la discretizacin espacial en el mtodo de las DFDT,
identicado un desplazamiento de los lbulos en el anlisis de la eciencia an-
gular en funcin de este parmetro y por lo tanto del nmero de muestras
que denen el perl sinusoidal en una red de difraccin. Esta armacin ha
sido obtenida a partir del anlisis conjunto del mtodo de las DFDT y de la
aplicacin del MMC a medios peridicos continuos. En ambos casos, la dis-
191
cretizacin espacial ha ocasionado el mismo comportamiento, lo cual relaciona
directamente este fenmeno con la resolucin espacial. Sin embargo, en to-
dos los casos, el desplazamiento de los lbulos disminuye a medida que nos
acercamos a la regin de Bragg, por lo que se puede armar, que el anlsis
en Bragg de estos dispositivos est libre en cierta medida de este tipo de er-
rores. La resolucin espacial y temporal disminuye en todos los casos el error
producido por la discretizacin, lo cual repercute en un aumento de los requi-
sitos temporales y computacionales del mtodo. Otros factores que afectan a
la precisin del mtodo se basan en que el anlisis clsico de este tipo de dispo-
sitivos, considera innito el plano de incidencia. Sin embargo, en el mtodo de
las DFDT es necesaria una discretizacin fsica del medio y por lo tanto una
acotacin de la regin de simulacin, que junto a la reduccin en la planitud
de la onda incidente constituyen las principales fuentes de error introducidas
por el mtodo.
Se han introducido diversas estrategias de optimizacin en el mtodo de las
DFDT en su versin bidimensional. Estas estrategias se han basado en opti-
mizar la implementacin del cdigo secuencial del mtodo tanto en las UPC
disponibles en los microprocesadores comercializados en la actualidad, como
en las UPG existentes en las tarjetas grcas instaladas en los computadores.
Para el caso de la optimizacin introducida en la versin del cdigo para el
microprocesador, se ha optado por explotar sus recursos mediante el uso ex-
haustivo de operadores vectoriales y de paralelismo. Para el primer caso, se
ha recurrido al conjunto de instrucciones vectoriales SSE presentes en los mi-
croprocesadores Intel
TM
. Estas instrucciones han mejorado las prestaciones del
mtodo de las DFDT permitiendo el clculo del campo electromagntico de
forma vectorial. Respecto al paralelismo, se han aplicado directivas OpenMP
que generen mltiples procesos y de esta manera utilizar todos los ncleos
presentes en los microprocesadores actuales. Esta optimizacin ha permitido
reducir los tiempos de clculo hasta 10 veces respecto a la versin secuencial
vectorizada de manera automtica.
Respecto a la implementacin del mtodo en las UPG, concluir que ha sido
necesario familiarizarse con la arquitectura de las UPG para poder implemen-
tar con xito el mtodo numrico en esta plataforma hardware. El mtodo
numrico se ha implementado satifactoriamente en estos dispositivos, obte-
niendo ratios de mejora en trminos de tiempo de simulacin de hasta 40
veces respecto a la versin secuencial y de hasta 10 veces respecto a la ver-
sin optimizada en la UPC. El rendimiento obtenido por las UPG en trminos
de instrucciones en coma otante por segundo (GFlops) presenta un com-
portamiento ms homogneo y constante en funcin del tamao de simulacin
192 CAPTULO 6. CONCLUSIONES
comparado con el de las UPC, y son ligeramente superiores a trabajos recientes
en este campo.
El rendimiento de ambas plataformas optimizadas se ha analizado en funcin
del tamao de la malla en el mtodo de las DFDT. Se ha identicado una
regin en la cual, la versin optimizada de la UPC presenta mximos en tr-
minos de SpeedUp y de rendimiento (GFlops), la cual est limitada al tamao
de la memoria cach. En esta regin, la comparativa de esta versin respecto
a la versin en las UPG muestra que la alternativa del uso del microproce-
sador como herramienta de clculo, sigue siendo competitiva frente a a los
potentes procesadores grcos, los cuales son poco ms del doble de rpidos.
Sin embargo, la computacin basada en UPG es esencial en aplicaciones de
alto rendimiento, donde los tamaos de la malla y la envergadura del proble-
ma son demasiado grandes como para procesarlos ecientemente por las UPC
disponibles en los microprocesadores actuales.
Debido a que el mtodo de las DFDT es un algoritmo con un intensidad com-
putacional baja, el rendimiento en las UPG est limitado por el ancho de banda
entre la memoria global del sistema y la UPG. Por lo tanto, estrategias en la
reduccin de accesos a memoria deberan de ser estudiados si se desea mejorar
el rendimiento en este tipo de aplicaciones. En la versin implementada, se ha
recurrido al uso de la cach disponible en la familia de procesadores grcos
Fermi
TM
, la cual ha mejorado de manera notable las prestaciones del mto-
do. Lo que permite armar, que el rendimiento potencialmente obtenible por
esta tecnologa es muy sensible al tipo de aplicacin, por lo que es necesario
un anlisis previo que permita justicar el tiempo de desarrollo que necesi-
ta esta plataforma. Aunque las nuevas arquitecturas de procesadores grcos
presentan facilidades para la incorporacin de mtodo numricos, la curva de
aprendizaje en este tipo de dispositivos sigue siendo bastante abrupta en sus
primeras fases.
Finalmente, el estudio realizado pone de maniesto que el mtodo de las DFDT
es una buena alternativa para el anlisis de medios difractivos de tipo peridico:
redes de difraccin, lminas de capa delgada e inclusive redes de difraccin de
aperturas. Adems se ha demostrado que el mtodo puede ser optimizado
en trminos de ejecucin tanto en los microprocesadores actuales como en
plataformas ms novedosas como pueden ser las unidades de procesado grco,
reduciendo los tiempos hasta en 40 veces, convirtiendo este mtodo numrico
en una alternativa ms que competitiva frente a teoras clsicas u otros mtodos
numricos como pueden ser el MEF o MoM.
Reunido el Tribunal que suscribe en el da de la fecha acord otorgar, por a
la Tesis Doctoral de Don/Da. la calicacin de .
Alicante de de .
El Secretario,
El Presidente,
UNIVERSIDAD DE ALICANTE
CEDIP
La presente Tesis de D. ha sido registrada con el n
o
del registro de entrada correspondiente.
Alicante de de .
El Encargado del Registro,

También podría gustarte