estudo da propagação de ondas - lemag.ufpa.brlemag.ufpa.br/publicacoes/tcc_marcelo.pdf · estudo...
TRANSCRIPT
Estudo da Propagação de Ondas Eletromagnéticas em Estruturas Periódicas
Marcelo Bruno da Silva Dias
Segundo Semestre de 2003
CENTRO TECNOLÓGICO
UNIVERSIDADE FEDERAL DO PARÁ CAMPUS UNIVERSITÁRIO DO GUAMÁ
BELÉM – PA
UFPA
ii
UNIVERSIDADE FEDERAL DO PARÁ
CENTRO TECNOLÓGICO
CURSO DE ENGENHARIA ELÉTRICA
Marcelo Bruno da Silva Dias
Estudo da Propagação de Ondas
Eletromagnéticas em Estruturas Periódicas
Belém 2003
TRABALHO SUBMETIDO AO COLEGIADO DO CURSO DE ENGENHARIA ELÉTRICA PARA OBTENÇÃO DO GRAU DE ENGENHEIRO ELETRICISTA – OPÇÃO TELECOMUNICAÇÕES.
iii
Estudo da Propagação de Ondas Eletromagnéticas em Estruturas Periódicas
Este trabalho foi julgado em 03/06/2004 adequado para a obtenção do Grau de
Engenheiro Eletricista – Opção Telecomunicações, e aprovado na sua forma final pela banca
examinadora, que atribuiu o conceito EXCELENTE.
_________________________________________
Prof. Dr. Carlos Leonidas da Silva Souza Sobrinho
ORIENTADOR
_________________________________________
Prof. Msc. José Felipe Souza de Almeida
CO-ORIENTADOR
_________________________________________
Prof. Dr. Ronaldo Oliveira dos Santos
MEMBRO DA BANCA EXAMINADORA
_________________________________________
Prof. Msc. Raimundo José Santos Mota
MEMBRO DA BANCA EXAMINADORA
_________________________________________
Prof. Dr. Orlando Fonseca Silva
COORDENADOR DO CURSO DE ENGENHARIA ELÉT RICA
iv
A meus pais, razões de minha vida, Belisário e Merice. A minhas irmãs, Denise e Marina. A minha Lene, meu amor, minha inspiração. A Jesus Cristo, Redentor dos Homens. A Maria de Nazaré, Nossa Senhora e Mãe do Céu.
v
AGRADECIMENTOS
Ao orientador, Prof. Dr. Carlos Leonidas da Silva Souza Sobrinho, por suas
explicações, sua paciência, seu bom humor e seus sábios conselhos.
Ao co-orientador, Prof. Msc. José Felipe Souza de Almeida, por seu excelente trabalho
de co-orientação, sua disposição, seu companheirismo e sua incessante busca pela perfeição.
Aos colegas do Laboratório de Análise Numérica em Eletromagnetismo (LANE), que
contribuíram diretamente para a conclusão deste trabalho: Prof. Dr. Ronaldo Oliveira dos
Santos, Prof. Msc. Eduardo Tannus Tuma e Rodrigo Melo e Silva de Oliveira.
À minha família, que me apoiou durante estes anos de graduação, fortalecendo-me e
proporcionando-me infraestrutura física e psicológica suficiente para que eu pudesse concluir
meus estudos com méritos.
À minha Lene, cujo auxílio foi fundamental para alcançar o sucesso deste trabalho e
cujo apoio reergueu-me nos momentos mais difíceis desta caminhada.
vii
LISTA DE SÍMBOLOS
O(∆xn) Erro de n-ésima ordem
σ Condutividade
σe Condutividade elétrica
σm Condutividade magnética
σl Condutividade elétrica ou magnética, na posição l
σdmax Condutividade elétrica ou magnética máxima, na direção d
ε Permissividade elétrica
ε1 Permissividade elétrica do meio 1
ε2 Permissividade elétrica do meio 2
εo Permissividade elétrica absoluta do vácuo (8,8541878 × 10–12 F/m)
εr Permissividade elétrica relativa
ε Tensor permissividade elétrica
µ Permeabili dade magnética
µ1 Permeabili dade magnética do meio 1
µ2 Permeabili dade magnética do meio 2
µo Permeabili dade magnética absoluta do vácuo (1,256637061 × 10–6 H/m)
µr Permeabili dade magnética relativa
µ Tensor permeabili dade magnética
E Vetor intensidade de campo elétrico
Ex,Ey,Ez Componentes do campo elétrico, nas direções x, y, z, respectivamente
En+1 Componente de campo elétrico no instante (n+1)
En Componente de campo elétrico no instante (n)
El
0 Valor inicial da componente de campo elétrico, na direção l, para o cálculo
intuitivo da derivada centrada
El
1 Valor final da componente de campo elétrico, na direção l, para o cálculo intuitivo
da derivada centrada
H Vetor intensidade de campo magnético
Hx,Hy,Hz Componentes do campo magnético, nas direções x, y, z, respectivamente
Hn+1/2 Componente de campo magnético no instante (n+1/2)
Hn–1/2 Componente de campo magnético no instante (n–1/2)
viii
H l
0 Valor inicial da componente de campo magnético, na direção l, para o cálculo
intuitivo da derivada centrada
H l
1 Valor final da componente de campo magnético, na direção l, para o cálculo
intuitivo da derivada centrada
D Vetor densidade de fluxo elétrico
Dx,Dy,Dz Componentes do vetor densidade de fluxo elétrico, nas direções x, y, z,
respectivamente
B Vetor densidade de fluxo magnético
Bx, By, Bz Componentes do vetor densidade de fluxo magnético, nas direções x, y, z,
respectivamente
J Vetor densidade de corrente de condução
Jx, Jy, Jz Componentes do vetor densidade de corrente de condução, nas direções x, y, z,
respectivamente
an ∂∂ Derivada parcial de n-ésima ordem em relação a a
I Índice indicador de célula de Yee, na direção x
J Índice indicador de célula de Yee, na direção y
K Índice indicador de célula de Yee, na direção z
n Índice da discretização temporal
∆x Dimensão da célula de Yee, na direção x
∆y Dimensão da célula de Yee, na direção y
∆z Dimensão da célula de Yee, na direção z
∆t Dimensão do menor incremento temporal
c Velocidade da luz no vácuo
vf Velocidade de fase
λ Comprimento de onda
λmin Menor comprimento de onda do sinal considerado
δ Erro cumulativo total
S Tensor
sl Elemento do tensor S na direção l
j 1−
ω Freqüência angular
m Ordem do polinômio que defini a condutividade da UPML
ix
nci Número de camadas da UPML, na direção i
d Distância entre planos atômicos
θ Ângulo de incidência da onda
α, γ, β Ângulos em graus
S21 Coeficiente de transmissão
V(t)trasm Voltagem computada na porta de acesso, até que o regime estacionário seja
atingido
V(t)inc Tensão total incidente gerada pelo campo
BW Largura de banda
fC Freqüência central do Band Gap
fH Freqüência mais alta da banda, definida para uma amplitude de 5% do pulso
fL Freqüência mais baixa da banda, definida para uma amplitude de 5% do pulso
v Velocidade do pulso Gaussiano no meio especificado
W Largura do pulso Gaussiano
2 Desvio padrão temporal do pulso Gaussiano
2z Desvio padrão em z do pulso Gaussiano
fmax Amplitude máxima do pulso
Acírculo Área do círculo
Aquadrado Área do quadrado
L Lado do quadrado
R Raio do quadrado
a Constante de rede
af Quantidade de células da constante de rede
x
LISTA DE FIGURAS
FIGURA DESCRIÇÃO PÁGINA
Figura 2.1 (a) Estrutura cilíndrica com periodicidade unidimensional; (b)
Estrutura com periodicidade unidimensional.
5
Figura 2.2 Estruturas periódicas com periodicidade bidimensional. 5
Figura 2.3 Exemplos de estruturas com periodicidade tridimensional. 5
Figura 2.4 (a) Formação de um guia planar com a retirada de uma fileira de
elementos do cristal; (b) Formação de uma cavidade ressonante de
Fabri-Perot após a retirada de um elemento.
6
Figura 2.5 (a) Simulação de modos de propagação na cavidade ressonante de
Fabri-Perot;(b) Acoplador direcional sintonizado (Channel-Drop
Filter) formado por dois guias de onda e uma cavidade ressonante.
7
Figura 2.6 (a) Guia de onda com curva acentuada de 90° (b) Guias de onda se
cruzando através de uma cavidade ressonante, sem haver
interferência entre os sinais de cada guia.
7
Figura 2.7 Onda refletindo nas várias camadas da matéria. 8
Figura 2.8 Célula unitária obtida por transladação da célula primária e estrutura
cristalina obtida por transladação da célula unitária.
9
Figura 2.9 Ilustração de uma rede cristalina quadrada obtida a partir da
estrutura cristalina da Figura 2.8; a é a constante de rede neste caso.
10
Figura 2.10 Os sete sistemas cristalográficos básicos. 10
Figura 2.11 Exemplo de célula de Wigner-Seitz. 11
Figura 3.1 Definição intuitiva da derivada de 1ª ordem. Curvas para as
deduções das fórmulas das derivadas (a) atrasada, (b) adiantada e
(c) central.
14
xi
Figura 3.2 Curva para outra forma de dedução intuitiva da derivada centrada. 16
Figura 3.3 Discretização em coordenadas retangulares do espaço de análise: (a)
Vista 3D (b) Vista Superior da malha 3D.
18
Figura 3.4 Célula de Yee com componentes elétricas no instante n. 19
Figura 3.5 Configuração de célula de Yee suficiente para mostrar a
aproximação por FD-TD da Lei de Faraday. As componentes com
índice 0 e 1 são equivalentes aos valores iniciais e finais,
respectivamente, usados no cálculo intuitivo da derivada centrada,
feito pela Equação (3.7) deduzida a partir da Figura 3.2.
19
Figura 3.6 Visão 3D do espaço discreto segundo Yee, para mostrar as
aproximações por FD TD das equações rotacionais de Maxwell .
20
Figura 3.7 Célula Secundária de Yee com componentes magnéticas no instante
n+1/2.
21
Figura 3.8 Erro em função da discretização da malha. 24
Figura 3.9 Variação da velocidade de fase normalizada versus o ângulo de
propagação da onda, provocada pela dispersão numérica.
25
Figura 3.10 Variação da velocidade de fase normalizada com a resolução da
malha para dado ângulo de propagação, causada pela dispersão
numérica.
25
Figura 3.11 Modelo geral, no plano x-y, do domínio numérico de um problema
aberto, mostrando a região de propagação eletromagnética em
análise, circundada pela condição de fronteira absorvente UPML.
27
Figura 3.12 Modelo de problema eletromagnético 2D aberto, fechado
artificialmente pela UPML.
27
Figura 3.13 Representação dos cantos da UPML. a) caso 3D; b) caso 2D. 28
Figura 3.14 Delimitações do domínio numérico para cálculos na UPML e célula
de Yee, para o modo de propagação TMz.
35
xii
de Yee, para o modo de propagação TMz.
Figura 3.15 Condições de contorno para o PEC. 37
Figura 4.1 Esquema de filt ro PBG. 40
Figura 4.2 Visão superior do modelo do Filt ro PBG. 40
Figura 4.3 Vista lateral do filt ro PBG. Deve-se observar a existência de uma
fileira de blocos abaixo da fita.
40
Figura 4.4 Vista ampliada do plano y-z do filt ro PBG, mostrando a porta de
acesso, onde se capta a tensão transmitida, gerada entre a placa
metálica, abaixo do substrato, e a linha de fita, acima dele.
41
Figura 4.5 Exemplo de domínio numérico do filt ro PBG, caso 2x7. Visão do
plano x-y superior. A distância a deve ser, preferencialmente, igual
ao comprimento de onda da freqüência central do pulso; b deve ser
um valor que possibilit e a, por exemplo, a + 10 células; c deve ser
no mínimo 10 células e d pode ser igual a distância entre dois
bastões.
44
Figura 4.6 Modelos do filt ro de 2 planos PBG. De cima para baixo os arranjos
2 x 5, 2 x 7, 2 x 9 e 2 x 11, respectivamente.
45
Figura 4.7 Curva do coeficiente reflexão para cálculo da largura de banda da
estrutura, nos casos 2 x 5, 2 x 7, 2 x 9 e 2 x 11.
46
Figura 4.8 Modelos do filt ro de 6 planos PBG. 47
Figura 4.9 Curva do coeficiente S21, para determinação do band gap nos
arranjos 6 x 5, 6 x 7, 6 x 9, 6 x 11.
48
Figura 4.10 Comparativo entre arranjos de 2 planos e 6 planos. 48
Figura 4.11 a) Vista 2D superior do guia de onda PBG bidimensional; b) Visão
3D em perspectiva do mesmo guia de onda (os espaços vazios entre
os bastões, e o canal, são preenchidos com ar).
49
xii i
Figura 4.12 Espectro da intensidade do sinal transmitido na estrutura mostrada
em [2].
50
Figura 4.13 Análise do domínio numérico do problema do guia de onda, para
processamento seqüencial.
52
Figura 4.14 Divisão do domínio numérico para processamento paralelo e
passagens de campos necessárias entre as máquinas.
53
Figura 4.15 Distribuição de campo após 600 iterações. A cor vermelha
representa o máximo positivo e a cor a azul escura o máximo
negativo.
54
Figura 4.16 Distribuição de campo após 1600 iterações. Apesar das curvas de
90o, o confinamento se mantém.
54
Figura 4.17 Distribuição de campo após 2500 iterações. 54
Figura 4.18 Plotagem 2,5D da onda confinada no guia após 2500 iterações. A
amplitude do campo é quase a mesma no começo e no fim do guia,
ou seja, a onda é guiada com poucas perdas.
55
Figura 4.19 Distribuição de campo após 150 iterações. 55
Figura 4.20 Distribuição de campo passadas 1500 iterações. 56
Figura 4.21 Distribuição após 2500 iterações. 56
Figura A.1 Modelo de formulário para código estruturado do FORTRAN 77. 61
Figura A.2 Código FORTRAN para propagação de uma onda num domínio
unidimensional.
78
xiv
LISTA DE TABELAS
TABELA DESCRIÇÃO PÁGINA
Tabela 4.1 Dimensões do domínio numérico e posição da porta de acesso
para cada caso.
45
Tabela 4.2 Dimensões do domínio numérico e posição da porta de acesso
para cada caso de filt ro de 6 planos.
47
Tabela A.1 Alguns conceitos básicos para iniciantes em FORTRAN. 62
Tabela A.2 Faixa de valor numérico para o tipo inteiro. 63
Tabela A.3 Tamanho de palavra para dados do tipo real. 63
Tabela A.4 Tamanho de palavra para dados do tipo complexo. 63
Tabela A.5 Operadores aritméticos utili zados na linguagem FORTRAN. 65
Tabela A.6 Operadores relacionais utili zados na linguagem FORTRAN. 65
Tabela A.7 Operadores lógicos utili zados na linguagem FORTRAN. 66
Tabela A.8 Algumas funções trigonométricas utili zadas na linguagem
FORTRAN.
66
Tabela A.9 Funções diversas utili zadas na linguagem FORTRAN. 67
Tabela A.10 Sintaxe para formatação de alguns tipos de dados e seus
significados.
69
Tabela A.11 Mais comandos para a construção de formatos. 70
Tabela A.12 Sintaxe para listas de seleção. 73
xv
SUMÁRIO
1. Introdução ..........................................................................................................................1
1.1. Objetivos......................................................................................................................2
1.2. Composição Estrutural ..............................................................................................2
Referências Bibliográficas................................................................................................3
2. As Estruturas Periódicas e os Cr istais Fotônicos ..........................................................4
2.1. Introdução...................................................................................................................4
2.2. Cr istais Fotônicos: Classificação e Aplicações ........................................................5
2.3. Teor ia Cr istalográfica Básica....................................................................................7
2.3.1. Redes ................................................................................................................9
2.3.2. Zona de Br ill ouin...........................................................................................10
Referências Bibliográficas..............................................................................................12
3. Método FD-TD em Coordenadas Retangulares ..........................................................13
3.1. Introdução.................................................................................................................13
3.2. Aproximação Algébr ica da Derivada – O Príncipio do Método das Diferenças
Finitas........................................................................................................................14
3.3. O Método FD-TD – Aplicação das Diferenças Finitas às Equações de Maxwell ...
....................................................................................................................................17
3.3.1. As Equações de Maxwell ...............................................................................17
3.3.2. O Algor itmo de Yee.......................................................................................18
3.3.3. Precisão e Estabili dade do Método ..............................................................23
3.4. As Condições de Fronteira Absorventes ................................................................26
3.4.1. Formulação da UPML .................................................................................27
3.4.2. Condições de Contorno do PEC...................................................................37
Referências Bibliográficas..............................................................................................38
4. Análise de Problemas e Resultados................................................................................39
xvi
4.1. Introdução.................................................................................................................39
4.2. Problema 1 – O Fil tro PBG .....................................................................................40
4.2.1. Características Construtivas do Problema .................................................42
a) Fonte de Excitação.........................................................................................42
4.2.2. Implementação Numérica.............................................................................43
4.2.3. Resultados ......................................................................................................44
a) Caso 1: Estruturas com dois Planos PBG Paralelos ..................................45
b) Caso 2: Estruturas com seis Planos PBG Paralelos ...................................46
4.3. Problema 2 – Guia de Onda PBG 2D .....................................................................49
4.3.1. Características Construtivas do Problema..................................................50
a) Fonte de Excitação.........................................................................................50
4.3.2. Implementação Numérica.............................................................................51
a) Serial ...............................................................................................................52
b) Paralelo ...........................................................................................................52
4.3.3. Resultados ......................................................................................................53
a) Seriais..............................................................................................................53
b) Paralelos.........................................................................................................55
Referências Bibliográficas..............................................................................................57
5. Conclusões .......................................................................................................................58
APÊNDICE A: Programação em FORTRAN....................................................................60
A.1. Fundamentos sobre a L inguagem de Programação FORTRAN.........................60
A.1.1. Tipos de Dados...............................................................................................62
a) Numéricos.......................................................................................................62
b) L iterais............................................................................................................64
c) Lógicos............................................................................................................64
A.1.2. Var iáveis e Constantes..................................................................................64
xvii
a) Declaração de Var iáveis e Constantes ........................................................64
A.1.3. Operadores.....................................................................................................65
a) Operadores Ar itméticos................................................................................65
b) Operadores Relacionais ...............................................................................65
c) Operadores Lógicos.......................................................................................66
A.1.4. Funções Intr ínsecas ......................................................................................66
A.1.5. Funções e Sub-rotinas...................................................................................67
a) Funções ..........................................................................................................68
b) Sub-rotina ......................................................................................................68
A.1.6. Comandos de Entrada e Saída .....................................................................69
a) Comando FORMAT......................................................................................69
b) Comando READ ............................................................................................71
c) Comando WRITE..........................................................................................71
A.1.7. Arquivos.........................................................................................................71
A.2. Estruturas de Programação ....................................................................................72
A.2.1. Estrutura Condicional ..................................................................................73
a) Estrutura Condicional Simples ...................................................................73
b) Estrutura Condicional Composta ................................................................73
c) Estrutura Condicional Composta Simpli ficada..........................................73
A.2.2. Estrutura de Repetição .................................................................................74
A.3. Recursos de Programação .......................................................................................74
A.3.1. Deslocamento ................................................................................................74
a) GO TO Implícito............................................................................................74
b) IF com deslocamento ....................................................................................74
A.3.2. Declarações e Atr ibuições Avançadas..........................................................75
a) DIMENSION..................................................................................................75
xvii i
b) PARAMETER ...............................................................................................75
c) DATA..............................................................................................................75
A.3.3. Designação de Memór ia ................................................................................76
a) COMM ON......................................................................................................76
b) BLOCK DATA ..............................................................................................76
A.3.4. Modular ização ...............................................................................................77
a) INCLUDE ......................................................................................................77
A.4. Código em L inguagem FORTRAN.........................................................................77
xix
RESUMO
Neste trabalho, são mostradas a teoria do método das Diferenças Finitas no Domínio
do Tempo e a técnica da condição de contorno absorvente UPML. É, também, mostrado como
essas técnicas se complementam e como podem ser usadas em conjunto para simular
problemas de propagação eletromagnética em regiões abertas. De posse dessas informações,
apresenta-se uma breve explanação sobre uma das mais promissoras áreas de pesquisa da
ciência moderna: as estruturas periódicas. De uma forma mais aplicada à área das
telecomunicações, são mostrados exemplos de estruturas capazes de controlar o fluxo
luminoso. Essas estruturas são os cristais fotônicos que, através da criação de band gaps
fotônicos (PBG), impedem a propagação da onda dentro de si, em determinadas direções.
Dois exemplos de estruturas formadas por materiais desse tipo são analisados. Um é o arranjo
de uma linha de fita em um substrato de cristais fotônicos, capaz de filt rar a onda transmitida
pela fita, e o outro é um guia de onda que confina e direciona a onda eletromagnética,
transmitindo-a com pouquíssima perda. Para as estruturas, cuja análise envolve um tempo de
processamento considerável, o processamento paralelo é considerado.
1
CAPÍTULO 1: Introdução
No mundo globalizado moderno, as telecomunicações assumiram papel fundamental
dentro das sociedades. A economia acirrada, a difusão cultural, a busca incessante por
conhecimento ou a necessidade de se saber o que acontece no mundo são alguns exemplos da
atual necessidade do homem. Nesse cenário, a evolução dos dispositivos ópticos para, por
exemplo, a comunicação de alta velocidade, é infraestrutura essencial para suportar o
crescente tráfego de dados, por causa da largura de banda e da velocidade que os dispositivos
de comunicações operando nessa faixa de freqüência são capazes de suportar.
Assim, a partir das duas últimas décadas do século XX, com o auxílio dos estudos
cristalográficos sobre as propriedades constitutivas dos sólidos, surgiram inúmeras pesquisas
sobre o desenvolvimento de materiais artificiais com diversas características elétricas e
ópticas. Nessas pesquisas, descobriu-se que combinações de materiais eletricamente
diferentes, em estruturas que se repetem em certas direções, podem controlar as características
de propagação eletromagnética, desde as freqüências de microondas até o espectro óptico.
Essas estruturas periódicas quando constituídas de material dielétrico são conhecidas como
cristais fotônicos [1].
Do mesmo modo que os cristais eletrônicos, os cristais fotônicos produzem uma banda
proibida (band gap) onde a propagação fotônica (modos eletromagnéticos) é atenuada para
determinadas faixas de freqüências (PBG – Photonic Band Gap). Dentre os exemplos de
estruturas formadas por cristais fotônicos pode-se citar guias de onda periodicamente
carregados para serem aplicados em dispositivos como válvulas de onda progressiva, filt ros e
guias de ondas de superfície [2]; estruturas dielétricas dispostas periodicamente usadas como
substrato em uma linha de microfita para funcionar como um filt ro PBG [3]; elementos
impressos metálicos planares distribuídos periodicamente na superfície de um dielétrico
(substrato) para serem usados em superfícies seletivas em freqüência [4]; antenas de arranjo
de fase integradas [5]; acopladores de onda direcionais PBG [6,7] e outros.
Para a análise da propagação eletromagnética em estruturas desse tipo será usado o
método numérico das diferenças finitas no domínio do tempo [8], associado à técnica da
UPML de truncagem de malha [8,9] e ao processamento paralelo [10-13]. O método FD-TD
(Finite-Difference Time-Domain) fornece a solução para os campos, como uma função do
tempo, em toda a região de análise.
2
1.1) Objetivos:
Neste trabalho, alguns códigos computacionais, usando o método FD-TD e o
processamento paralelo, são criados para o estudo da propagação de ondas eletromagnéticas
em cristais fotônicos. Esses códigos são válidos para a análise de estruturas isotrópicas, com
perfil de índice de refração variando continuamente. O método FD-TD também será usado
para identificar as bandas proibidas de algumas das estruturas mostradas [8], que também
terão suas larguras de banda calculadas.
1.2) Composição Estrutural:
Este trabalho é formado por 5 Capítulos e 1 Apêndice, divididos da seguinte maneira:
Capítulo 1: apresenta o assunto a ser abordado neste trabalho, seus objetivos e sua
composição estrutural.
Capítulo 2: mostra a teoria do método FDTD e a técnica de truncagem UPML.
Capítulo 3: aborda as estruturas periódicas e os cristais fotônicos, suas teorias, aplicações
práticas e tendências, classificando-as e destacando exemplos, além de mostrar uma
abordagem inicial do estudo cristalográfico.
Capítulo 4: analisa um filt ro PBG, constituído de uma linha de fita sobre uma estrutura PBG,
e um guia óptico PBG, produzido pela abertura de um canal em um cristal fotônico, e
apresenta os resultados das simulações numéricas computacionais realizadas para os dois
dispositivos.
Capítulo 5: são as conclusões deste trabalho e as sugestões para trabalhos futuros.
Apêndice A: rápida introdução à linguagem FORTRAN, suas sintaxes, seus comandos, suas
técnicas de programação e diversas funções intrínsecas.
3
Referências Bibliográficas
[1] J. D. Joannopoulous, R.D. Meade, e J. N. Winn, Photonic crystals: molding the flow of light, 1ª Edição, Princeton Univ. Press, 1995.
[2] R. S. Elli ot, An Introduction to Guided Waves and Microwave Circuits, 1ª Edição, Prentice Hall , 1993.
[3] J. F. S. de Almeida, “Análise fotônica em estruturas planares usando o método FD-TD com processamento paralelo” , Proposta de Tese para Quali ficação ao Doutorado, Programa de Pós-graduação em Engenharia Elétrica, Universidade Federal do Pará, 2004.
[4] J. P. Montgomery, “Scattering by na Infinite Periodic Array of Thin Conductors on a Dieletric Sheet” , IEEE Trans. Antennas Propagat., vol AP -23, pp. 70-75, 1975.
[5] R. J. Maill ox, J. F. Mcllenna, e N. P. Kernweis, “Microstrip Array Technology” , IEEE Trans. Antennas Propagat., vol AP-29, pp. 25-37, 1981.
[6] S. Fan, P. R. Vill eneuve, e J. D. Joannopoulos, “Channel drop tunneling through localized states” , Phys. Rev. Letters, vol. 80, no. 5, pp. 960-963, 1998.
[7] S. Fan, P. R. Vill eneuve, e J. D. Joannopoulos, “Channel drop filters in photonic crystals” , Optics Express, vol. 3, no. 1, pp. 4-11, 1998.
[8] A. Taflove, e S. C. Hagness, Computational electrodynamics: the finite difference time domain method, 2a Edição, Artech House, 2000.
[9] S. D. Gedney, “An anisotropic perfectly matched layer-absorbing medium for the truncation of FDTD lattices” . IEEE Trans. Antennas Propagat. 44, pp. 1631-1639, 1996.
[10] J. Rocha, “Cluster Beowulf, Aspectos de Projeto e Implementação”, Dissertação de Mestrado, Programa de Pós-graduação em Engenharia Elétrica, Universidade Federal do Pará, 2003.
[11] A. D. Bueno, “ Introdução ao processamento paralelo e ao uso de clusters de workstations em sistemas gnu/linux parte I: filosofia”, Laboratório de Meios Porosos e Propriedades Termofísicas,Universidade Federal de Santa Catarina, 2002.
[12] R. Samudrala, “Linux cluster howto” , www.ram.org/computing/linux/linux/cluster/, 2003.
[13] J. Araújo, “Análise de antenas em 2-D utili zando o método das diferenças finitas no domínio do tempo com processamento paralelo” , Tese de Mestrado, Programa de Pós-graduação em Engenharia Elétrica, Universidade Federal do Pará, 2003.
4
CAPÍTULO 2: As Estruturas Periódicas e os Cristais Fotônicos
2.1) Introdução:
A história da evolução humana sempre esteve marcada pelas descobertas de novos
materiais e de técnicas de manipulação dos mesmos, para moldá-los de acordo com as
necessidades do homem. Todas as vezes que um novo material era descoberto ou inventado,
uma nova era se iniciava. Foi assim, por exemplo, na idade da pedra, quando o homem
percebeu que a rocha era mais forte que a madeira e passou a talhá-la para construir armas
úteis para proteger-se de seus inimigos e para caçar; e na idade dos metais, quando o bronze e
as ligas metálicas passaram a ser usados, tanto na construção de armas quanto na confecção
de ferramentas mais resistentes para o cultivo da terra. Durante o século XX, os materiais
semicondutores, baseados na quebra da periodicidade da estrutura cristalina, revolucionaram
o mundo contemporâneo com o transistor. Atualmente, materiais com características
periódicas têm sido alvo de pesquisas.
O estudo dos cristais possibilit ou a compreensão da constituição e das propriedades da
matéria sólida. Em cristais perfeitos, a formação da estrutura atômica apresenta disposição
periódica de átomos ou moléculas agrupados em rede. Usando essa idéia, pode-se projetar
estruturas periódicas com características particulares para diversas utili zações. Dependendo
das dimensões da estrutura é possível construir-se dispositivos para atenuar as ondas de
choque de abalos sísmicos, isolar acusticamente ambientes e até guiar feixes de luz com
perdas reduzidíssimas. Por isso, de forma similar ao estudo dos cristais, o estudo de estruturas
periódicas tem evoluído bastante e se mostrado uma vasta teoria.
Durante as duas últimas décadas do século XX, o estudo de estruturas periódicas tem
sido amplamente aplicado. Por exemplo, na área das telecomunicações, projetos de
dispositivos como lentes de microondas, guias de onda (válvulas de ondas progressivas, filt ros
e guias de ondas de superfície), superfícies seletivas em freqüência, antenas de arranjo de fase
integradas, arrays de microfita e outros [1-3], têm sido desenvolvidos sob a luz dessas teorias.
Isto é feito combinando-se, artificialmente, materiais de diferentes propriedades constitutivas
numa estrutura básica que se repete ao longo de todas as direções. Assim, é possível construir
dispositivos para operarem desde a faixa de freqüência de microondas até a faixa do espectro
óptico. Neste último caso, o controle das propriedades óticas dos materiais, possibilit a a
construção de dispositivos que impedem, em determinadas direções e para certas freqüências,
a propagação eletromagnética.
5
Estruturas periódicas, para operarem na faixa óptica, podem ser feitas de materiais
dielétricos ou metálicos [4]. Essas estruturas podem gerar bandas de freqüências proibidas.
Quando fótons são lançados em um cristal deste tipo, seus modos decaem exponencialmente
dentro da estrutura. Isso acontece devido ao número de onda se tornar complexo (caso em que
os modos são evanescentes) e, com isso, a luz é fortemente atenuada em todas as direções (ou
apenas algumas) do arranjo periódico [2]. Assim, analogamente aos cristais, estruturas
macroscópicas podem ser projetadas para terem bandas proibidas (band gaps) de energia que
impedem a propagação eletromagnética. Essas estruturas são denominadas como PBG
(Photonic Band Gap). 2.2) Cr istais Fotônicos: Classificação e Aplicações:
Uma estrutura periódica pode ter sua periodicidade em uma, duas ou três direções.
Assim, pode ser classificada em unidimensional, quando suas características constitutivas
variam em apenas uma direção, bidimensional, se tem periodicidade em duas direções, ou
tridimensional, quando sua estrutura é periódica nas três direções [5] (Figuras 2.1, 2.2, 2.3).
(a) (b) Figura 2.1: (a) Estrutura cilíndr ica com periodicidade unidimensional; (b) Estrutura com periodicidade unidimensional.
Figura 2.2: Estruturas periódicas com periodicidade bidimensional.
Figura 2.3: Exemplos de estruturas com periodicidade tr idimensional.
6
Dentro desta classificação, os materiais PBG possuem aplicações para diversos fins.
Estruturas unidimensionais são usadas para aumentar o ganho de antenas de circuito impresso
[6,7], pela colocação, por exemplo, de um conjunto periódico de múltiplas camadas
dielétricas em cima de uma antena. Pode-se conseguir este mesmo efeito usando-se estruturas
bidimensionais [8]. Estruturas fotônicas bidimensionais, também, são usadas em
optoeletrônica, para aumentar a eficiência de LED’s e lasers através do fenômeno da inibição
da emissão espontânea [9]. Quanto às estruturas fotônicas tridimensionais, existe uma alta
potencialidade no uso das mesmas em microestruturas ressonantes, atuando como uma
cavidade do tipo Fabry-Perot, que reflete a radiação propagante em todas as direções para
dentro de si própria.
Provocando-se imperfeições ou defeitos de maneira proposital na estrutura de um
cristal fotônico, retirando-se, trocando-se, ou modificando-se, os elementos da rede e
quebrando-se a periodicidade da estrutura em determinada região, é possível manter-se a
propagação, no defeito, dos modos eletromagnéticos proibidos da estrutura. Por isso, os
cristais fotônicos podem funcionar como guias ópticos ou como cavidades ressonantes, por
exemplo, conduzindo o feixe de luz por determinado caminho ou confinando-o em
determinada região da estrutura. Assim, os cristais fotônicos podem ser aplicados em diversos
dispositivos práticos como: circuitos fotônicos, acopladores direcionais [10,11], cavidades do
tipo Fabri-Perot, LED’s, antenas, filt ros PBG e outros. Exemplos de cristais fotônicos
alterados pela retirada, colocação ou modificação de elementos de sua rede cristalina são
mostrados na Figuras 2.4, 2.5 e 2.6.
(a) (b) Figura 2.4: (a) Formação de um guia planar com a retirada de uma fileira de elementos do cristal; (b) Formação de uma cavidade ressonante de Fabr i-Perot após a retirada de um elemento.
7
(a) (b)
Figura 2.5: (a) Simulação de modos de propagação na cavidade ressonante de Fabr i-Perot; (b) Acoplador direcional sintonizado (Channel-Drop Fil ter) formado por dois guias de onda e uma cavidade ressonante.
(a) (b)
Figura 2.6: (a) Guia de onda com curva acentuada de 90°; (b) Guias de onda se cruzando através de uma cavidade ressonante, sem haver interferência entre os sinais de cada guia.
2.3) Teor ia Cr istalográfica Básica:
A cristalografia é a ciência que classifica e descreve os cristais, em suas estruturas,
suas formas e nas leis que presidem seu processo de formação. Utili zando-se os métodos do
estudo cristalográfico é possível determinar de forma satisfatória as posições relativas de
todos os átomos que constituem a molécula (estrutura molecular) e a posição relativa de todas
as moléculas na célula unitária do cristal. Da primeira dependem as propriedades químicas do
material e da segunda, fundamentalmente, as propriedades físicas.
Em 1912, o físico alemão Max von Laue, mostrou que um cristal podia servir como
uma rede de difração tridimensional, “se o comprimento de onda de uma radiação incidente
no mesmo fosse da ordem de grandeza da distância entre as partículas do sólido” [12]. Ele
utili zou para isso os raios-X, que tem comprimento de onda nas dimensões do espaçamento
8
interatômico da matéria (cerca de 0,1nm), e percebeu que cada átomo do cristal atingido por
eles absorvia parte da energia do mesmo e a retransmitia em todas as direções. As ondas
emitidas por cada átomo somavam-se construtivamente (se em fase) ou destrutivamente (se
fora de fase) e, assim, era possível observar-se emissões intensas de raios-X em determinadas
direções, enquanto em outras não. A partir desses experimentos, Laue percebeu a natureza
ondulatória eletromagnética dos raios-X e a natureza descontínua da matéria, concluindo com
isso que todos os materiais são constituídos por átomos e/ou moléculas.
Depois, Willi am Bragg tratou esse fenômeno como um processo de reflexão da onda
incidente nas sucessivas camadas de partículas dentro do cristal [12]. Assim, feixes refletidos
por camadas mais profundas necessitam percorrer um caminho maior e interferirem-se
construtivamente com os raios refletidos por camadas mais externas, para chegarem ao
detector. Pode-se concluir, com isso, que a distância maior percorrida pelo feixe mais
penetrante deve ser um múltiplo inteiro do comprimento de onda dos raios-X.
Portanto, considere-VH�R� FDPLQKR�$%&� LOXVWUDGR�QD�)LJXUD������6H�$%&� �û�� HQWão,
deve-se esperar uma interferência construtiva para os raios refletidos pela rede atômica. Ou
VHMD��û� �n���HP�TXH���é o comprimento da radiação. Assim, û��� �d VHQ�, é geometricamente
igual a:
n� = 2d senθ ; n = 1, 2, …, (2.1)
que é a lei de Bragg.
θθ
θθCA
Bd = distância
interplanar
Raios-Xincidentes
Planos atômicos
Raios-Xdifratados
θθ
θθCA
Bd = distância
interplanar
Raios-Xincidentes
Planos atômicos
Raios-Xdifratados
Figura 2.7: Onda refletindo nas vár ias camadas da matéria.
Essa equação serve de base para o estudo da estrutura cristalina por difração de raios-
X. O que se faz é registrar em, por exemplo, uma película fotográfica, os ângulos nos quais os
raios-X de comprimento de onda conhecido são refletidos por um cristal. De posse desses
ângulos, torna-se fácil calcular as distâncias dos planos de átomos do cristal. Além disso, se
9
forem medidas as intensidades dos raios-X, então, pode-se deduzir através de um
procedimento mais complexo, as posições reais dos átomos no sólido.
2.3.1) Redes:
Uma estrutura é considerada periódica quando os átomos, moléculas ou células que a
constituem, estão dispostos regularmente no espaço. Basicamente, nessas estruturas pode-se
caracterizar um arranjo denominado célula primária, que é a molécula básica de seu arranjo
estrutural. Quando a célula primária é transladada em todas as direções, forma-se a célula
unitária do dispositivo, que é a disposição geométrica espacial fundamental da estrutura do
mesmo. Se da mesma forma, a célula unitária do material for trasladada em todas as direções,
então, chegar-se-á a estrutura periódica. Como para a análise aqui desenvolvida o que
interessará serão apenas os aspectos simétricos geométricos do arranjo, então, o padrão será
descrito simplesmente pela estrutura periódica sem as células (base) das células unitárias, ou
seja, em termos de um conjunto de pontos espaçados das mesmas distâncias existentes na
estrutura, arranjados em linhas orientadas sob os mesmos ângulos, formando o que se chama
rede. Quando essa rede é usada para a descrição da disposição das partículas num sólido ela é
denominada rede cristalina. Um exemplo de rede cristalina formada por uma célula unitária
(Figura 2.8) cúbica de corpo centrado, é mostrado na Figura 2.9 e a distância a é a constante
de rede para este caso [13].
Célula pr imár ia
a
Célula uni tár ia
a
a
a
Estrutura cr istal ina
Figura 2.8: Célula unitár ia obtida por transladação da célula pr imár ia e estrutura cristalina obtida por transladação da célula unitár ia.
10
a
a
a
Rede cr istali na
Figura 2.9: I lustração de uma rede cristalina quadrada obtida a par tir da estrutura cristalina da Figura 2.8; a é a constante de rede neste caso.
Um detalhe importante a respeito das redes é que o mesmo tipo de rede pode servir
para se fazer vários arranjos diferentes. Em 1848, Auguste Bravais mostrou que são possíveis
apenas 14 tipos diferentes de redes, que podem ainda ser divididas em 7 sistemas cristalinos
básicos [12] (Figura 2.10).
ab
c
α
γ
β
γab
c
αβ αβ
γab
c
αβa
bγ
c
γab
c
β α βγa
bα
c
a
b
c βγ
α
Triclínico
α ≠ β ≠ γ ≠ 90º
a ≠ b ≠ c
Monoclínico
α = β = 90º ≠ γ
a ≠ b ≠ c
Tetragonal
α = β = γ = 90º
a = b ≠ c
Hexagonal
α = β = 90º; γ = 120º
a = b ≠ c
Rômbico
α = β = γ = 90º
a ≠ b ≠ c
α = β = γ = 90º
a = b = c
Regular Romboédrico
α = β = γ ≠ 90º
a = b = c
ab
c
α
γ
β
γab
c
αβ αβ
γab
c
αβa
bγ
c
γab
c
β α βγa
bα
c
βγa
bα
c
a
b
c βγ
α
Triclínico
α ≠ β ≠ γ ≠ 90º
a ≠ b ≠ c
Monoclínico
α = β = 90º ≠ γ
a ≠ b ≠ c
Tetragonal
α = β = γ = 90º
a = b ≠ c
Hexagonal
α = β = 90º; γ = 120º
a = b ≠ c
Rômbico
α = β = γ = 90º
a ≠ b ≠ c
α = β = γ = 90º
a = b = c
Regular Romboédrico
α = β = γ ≠ 90º
a = b = c Figura 2.10: Os sete sistemas cristalográficos básicos.
Normalmente, os sólidos são estruturas não orientadas de policristais. No entanto, os
monocristais, com exceção dos casos em que os limites do mesmo são determinados por
defeitos na rede, têm uma estrutura orientada. De acordo com a ordenação desses
monocristais pode-se classificar até 230 grupos de simetria, reduzíveis a 32 classes, que por
sua vez, se subdividem nos sete sistemas de cristalização relativos à rede de Bravais [14].
2.3.2) Zona de Br ill ouin:
Para se estudar as características de propagação dos cristais fotônicos é interessante
definir-se a primeira zona de Brill ouin. Ela é a célula primitiva de Wigner-Seitz (Figura 2.11),
11
uma região compreendida entre linhas de contorno, que são os planos de espalhamento do
espaço real. Esta zona define a região no espaço dos vetores de onda que determina os modos
de propagação possíveis, assim como, a célula unitária define toda a informação
cristalográfica e estrutural. Os vetores fora desta zona são rebatidos por um vetor equivalente
dentro dela. Os motivo disto são as condições de contorno periódicas usadas para tratar-se das
propagações eletromagnéticas em cristais fotônicos ou outros problemas periódicos.
Figura 2.11: Exemplo de célula de Wigner-Seitz.
A largura efetiva da banda proibida é determinada pela análise das características de
dispersão dos modos propagantes nos cristais fotônicos, na região da primeira zona de
Brill ouin, mais especificamente no contorno da zona irredutível de Brill ouin, que
correspondem justamente às direções principais da rede cristalina recíproca [1]. Para um
maior aprofundamento na teoria dos cristais e da propagação eletromagnética em cristais
fotônicos e estruturas periódicas sugerem-se as consultas à, respectivamente, [4,5,14].
12
Referências Bibliográficas
[1] R. V. do E. Santo, “Caracterização das bandas fotônicas para estruturas periódicas 2D constituídas de dielétricos anisotrópicos” , Dissertação de Mestrado, Programa de Pós-graduação em Engenharia Elétrica, Universidade Federal do Pará, pp. 1-17, 2001.
[2] P. A. dos S. Ramalho, “Utili zação do método FDFD para a análise dos modos TM propagantes em estruturas periódicas 2-D”, Trabalho de Conclusão de Curso, Departamento do Engenharia Elétrica da Computação, Universidade Federal do Pará, pp. 1-15, 2003.
[3] J. P. Zhang at al, “Nanofabrication of 1-D photonic bandgap structures along a photonic wire”, IEEE Photon. Tech. Letters, vol. 8, no. 3, pp. 491-493, 1996.
[4] J. D. Joannopoulous, R.D. Meade, e J. N. Winn, Photonic crystals: molding the flow of light, 1ª Edição, Princeton Univ. Press, 1995.
[5] S. G. Johnson, e J. D. Joannopoulos, “ Introduction to photonic crystals: Bloch’s theorem, band diagrams, and gaps (but no defects)” , MIT, 2003.
[6] N.G. Alexopoulos, e D.R. Jackson, “Gain enhancement methods for printed circuit antennas” , IEEE Trans. Antennas Propagat., vol. AP-33, pp. 976-987, 1985.
[7] H.Y. Yang, e N.G. Alexopoulos, “Gain enhancement methods for printed circuit antennas through multiple superstrates,” IEEE Trans. Antennas Propagat., vol. AP-35, pp. 860-863, 1987.
[8] H. Y. D. Yang, N.G. Alexopoulos, e E. Yablonovitch, “Photonic Band-Gap Materials for High-Gain Printed Circuit Antennas, “ IEEE Trans. Antennas Propagat., vol. AP-45, no. 1, 1997.
[9] E. Yablonovitch, “ Inhibited spontaneous emission in solid state physics and electronics,” Phys. Rev. Letters, 58, pp. 2059-2062, 1987.
[10] S. Fan, P. R. Vill eneuve, e J. D. Joannopoulos, “Channel drop tunneling through localized states” , Phys. Rev. Letters, vol. 80, no. 5, pp. 960-963, 1998.
[11] S. Fan, P. R. Vill eneuve, e J. D. Joannopoulos, “Channel drop filters in photonic crystals” , Optics Express, vol. 3, no. 1, pp. 4-11, 1998.
[12] J. E. Brady, e G.E. Huminston, Química geral, vol. 1, 2ª Edição, LTC, pp. 284-290, 1986.
[13] R. B. M. Balbi, Fundamentos físicos e matemáticos dos materiais elétricos, 1ª Edição, Editora Universitária UFPA, pp. 130-133, 1998.
[14] J. F. S. de Almeida, “Análise fotônica em estruturas planares usando o método FD-TD com processamento paralelo” , Proposta de Tese para Quali ficação ao Doutorado, Programa de Pós-graduação em Engenharia Elétrica, Universidade Federal do Pará, 2004.
13
CAPÍTULO 3: Método FD-TD em Coordenadas Retangulares
3.1. Introdução:
Em 1966, Kane S. Yee apresentou sua solução numérica das equações rotacionais de
Maxwell para campos variantes no tempo [1], para analisar problemas de espalhamento
eletromagnético em meios isotrópicos. O pesquisador aplicou a essas equações no domínio
temporal, o método numérico das diferenças finitas. Ao fazer isso, Yee discretizou o domínio
de análise do problema, substituindo as componentes derivativas parciais em relação ao
espaço e ao tempo por suas aproximações finitas equivalentes, e transformou as leis de
Faraday e Ampère em equações de diferenças algébricas mais simples de serem tratadas. Esse
método ficou conhecido como o método das Diferenças Finitas no Domínio do Tempo (FD-
TD). Ele permite o estudo da onda em todo o seu espectro de freqüências e em ambientes
complexos, sendo baseado na aproximação de diferenças centradas para as componentes
derivativas das equações diferenciais, o que permite se alcançar um erro de segunda ordem no
tempo e no espaço [2].
O algoritmo inicial, no entanto, apresentava equívocos na definição da condição de
estabili dade numérica do método [3] e limitações para a simulação de problemas abertos [4]
(não haviam sido determinadas condições de truncamento da região de análise para problemas
abertos; neste caso, as iterações simplesmente paravam ao chegar-se nos limites do domínio
de análise, devidamente determinado pelo programador).
Na década de 60, porém, os métodos numéricos tornavam-se impraticáveis, por causa
do custo computacional envolvido, representado pelos limites arquiteturais do hardware
existente àquela época, que não permitiam o tratamento de valores numéricos com a precisão
necessária e num tempo razoável de processamento. Era natural, então, que esses métodos não
fossem tão apreciados.
A partir da década de 1970, com a evolução da informática, o surgimento dos
supercomputadores massivos paralelos de Cray e a popularização de máquinas seqüenciais
com grande poder de processamento, pôde-se implementar os métodos numéricos, em geral,
de forma mais econômica que os métodos analíticos e experimentais. Com isso e a melhoria
do algoritmo de Yee, realizado por Taflove et al [5], o método FD-TD passou a ser usado na
solução de problemas em áreas como de projetos de antenas, caracterização de
comportamento de placas de circuitos e componentes eletrônicos, na medicina, em aplicações
14
militares e outras [2].
Dentre as possíveis técnicas de solução de problemas de eletromagnetismo, pode-se
destacar as técnicas numéricas pela sua praticidade, relativa simplicidade e excelente
aproximação dos resultados reais.
3.2. Aproximação Algébr ica da Derivada – O Príncipio do Método das Diferenças
Finitas:
Basicamente, o método das diferenças finitas converte equações diferenciais em
equações de diferenças finitas mais simples e passíveis de tratamentos computacionais,
substituindo os termos derivativos de uma dada EDP (Equação Diferencial Parcial) por
expressões algébricas equivalentes. Para a implementação deste método, portanto, deve-se
estimar numericamente as derivadas das funções.
De uma forma intuitiva, uma função genérica f(x) pode ter sua derivada em P
aproximada, ou pela inclinação da reta AP, ou pela inclinação da reta PB, ou pela inclinação
da reta AB [6], Figura 3.1(a), (b) e (c), respectivamente.
f(x0–∆x)
f(x0)
x0–∆x x0
f(x)
x
A
P
(a)
f(x0)
f(x0+∆x)
x0 x0+∆x
f(x)
x
P
B
(b)
f(x0)
f(x0+∆x)
x0 x0+∆x
f(x)
x
P
B
f(x0–∆x)
x0–∆x
A
(c) Figura 3.1: Definição intuitiva da derivada de 1ª ordem. Curvas para as deduções das fórmulas das derivadas (a) atrasada, (b) adiantada e (c) central.
A fórmula da derivada de 1ª ordem de f(x), pela aproximação da diferença atrasada
(Figura 3.1a), é:
x
xxfxfxf
∆∆−−
≅′ )()()( 00
0 (3.1)
Pela aproximação da diferença adiantada (Figura 3.1b), a fórmula da 1ª derivada de
f(x) é:
x
xfxxfxf
∆−∆+
≅′ )()()( 00
0 (3.2)
15
E, pela aproximação da diferença centrada (Figura 3.1c), é:
x
xxfxxfxf
∆∆−−∆+
≅′2
)()()( 00
0 (3.3)
Essas fórmulas podem ser deduzidas de forma mais geral através da série infinita de
Taylor. Sendo assim, da representação em série de Taylor da função f(xo – ∆x):
�
!3
1)(
!2
1)()()()( 0
30
2000 ⋅′′′⋅∆−⋅′′⋅∆+′⋅∆−=∆− xfxxfxxfxxfxxf (3.4a)
pode-se chegar a equação da diferença atrasada a partir da truncagem da mesma até o termo
de segunda ordem em relação a x∆ :
( )2000 )()()( xOxfxxfxxf ∆+′⋅∆−≅∆−
de onde se tira que:
( )xOx
xxfxfxf ∆+
∆∆−−
≅′ )()()( 00
0 , (3.4b)
resultando em uma aproximação de primeira ordem para )( 0xf ′ .
O mesmo procedimento pode ser realizado com a função f(xo + ∆x) para obter-se a
equação da diferença adiantada (3.5):
�
!3
1)(
!2
1)()()()( 0
30
2000 ⋅′′′⋅∆+⋅′′⋅∆+′⋅∆+=∆+ xfxxfxxfxxfxxf (3.5a)
( )2000 )()()( xOxfxxfxxf ∆+′⋅∆+≅∆+
( )xOx
xfxxfxf ∆+
∆−∆+
≅′ )()()( 00
0 , (3.5b)
resultando também em um erro de primeira ordem para )( 0xf ′ .
A fórmula da derivada centrada pode ser alcançada pela subtração de (3.4a) em (3.5a):
�+⋅⋅∆⋅+′⋅∆⋅=∆−−∆+!3
1)(2)(2)()( 0
3000 xfxxfxxxfxxf
e pela truncagem da seqüência resultante no termo de terceira ordem, subseqüente a 1ª
derivada de f(x = xo):
( )3000 )(2)()( xOxfxxxfxxf ∆+′⋅∆⋅≅∆−−∆+
16
( )2000 2
)()()( xO
x
xxfxxfxf ∆+
∆⋅∆−−∆+
≅′ (3.6)
Nesse caso, obtém-se um erro de 2ª ordem. Portanto, quanto mais termos da série
infinita forem tomados, melhor será a aproximação. Como os sistemas computacionais têm
limites de armazenamento em memória e de tamanho do registro da unidade aritmética, o
resultado exato, que poderia ser alcançado com a utili zação de toda a série infinita na
representação da derivada, não pode, a princípio, ser conseguido. Ou seja, a série sempre
deverá ser truncada em algum termo para conseguir tratar-se numericamente a equação, o que
poderá acarretar num erro implícito em todas as soluções por diferenças finitas [6]. Portanto,
pelas deduções através da série de Taylor, percebe-se que a formulação por derivada centrada
ocasiona um erro menor se comparada às deduções por derivada atrasada e adiantada. Por
isso, a aproximação por derivada centrada é escolhida para a implementação do método na
solução das equações de Maxwell .
Essa aproximação pode ser ajustada para o caso do espaçamento entre os valores final
e inicial de f(x) em torno de sua derivada em P, usados na aproximação por derivada centrada,
serem separados por uma distância de apenas ∆x e não 2.∆x (Figura 3.2).
f(x0)
f(x0+∆x/2)
x0 x0+∆x/2
f(x)
x
P
B
f(x0–∆x/2)
x0–∆x/2
A
Figura 3.2: Curva para outra forma de dedução intuitiva da aproximação centrada da derivada.
Nestas condições, a fórmula da derivada em diferenças finitas por aproximação
centrada será:
( )2000
)2()2()( xO
x
xxfxxfxf ∆+
∆∆−−∆+
=′ (3.7)
17
3.3. O Método FD-TD – Aplicação das Diferenças Finitas às Equações de Maxwell :
3.3.1. As Equações de Maxwell : Para a aplicação da técnica de Yee, as equações de Maxwell utili zadas são as equações
rotacionais para campos variantes no tempo. Essas equações são suficientes para caracterizar
o deslocamento espacial da onda eletromagnética provocado pela sua variação temporal.
Apesar da técnica FD-TD já ter sido adaptada para meios anisotrópicos, o algoritmo original
de Yee considerou a propagação em meios isotrópicos (σ, ε e µ são escalares, ou seja, não
variam com a direção) onde as equações de Maxwell são escritas da seguinte forma:
• Lei de Faraday:
t
BE
∂∂−=×∇ (3.8a)
• Lei de Ampère:
Jt
DH +
∂∂=×∇ (3.8b)
onde HB µ= e ED ε= são as relações constitutivas do meio e EJ σ= .
Desta forma, pode-se escrever explicitamente o operador ∇ (nabla) e as componentes
direcionais de todos os vetores das equações (3.8), mostrando-se o conjunto de seis equações
escalares que elas representam. Para tal, seja o sistema de coordenadas retangulares. Então,
das equações (3.8) obtêm-se:
t
H
z
E
y
E xyz
∂∂
−=
∂
∂−
∂∂ µ ⇒
∂
∂−
∂∂
=∂
∂y
E
z
E
t
H zyx
µ1
(3.9a)
t
H
x
E
z
E yzx
∂∂
−=
∂∂
−∂
∂µ ⇒
∂∂
−∂
∂=
∂∂
z
E
x
E
t
Hxzy
µ1
(3.9b)
t
H
y
E
x
Ezxy
∂∂
−=
∂
∂−
∂∂
µ ⇒
∂
∂−
∂∂
=∂
∂x
E
y
E
t
H yxz
µ1
(3.9c)
xxyz E
t
E
z
H
y
Hσε +
∂∂
=
∂
∂−
∂∂
⇒ x
yzx Ez
H
y
H
t
E
εσ
ε−
∂
∂−
∂∂
=∂
∂ 1 (3.9d)
18
y
yzx Et
E
x
H
z
Hσε +
∂∂
=
∂∂
−∂
∂ ⇒ y
zxyE
x
H
z
H
t
E
εσ
ε−
∂∂
−∂
∂=
∂∂ 1
(3.9e)
zzxy
Et
E
y
H
x
Hσε +
∂∂
=
∂
∂−
∂∂
⇒ zxyz E
y
H
x
H
t
E
εσ
ε−
∂
∂−
∂∂
=∂
∂ 1 (3.9f)
respectivamente.
3.3.2. O Algor itmo de Yee:
Considere um espaço tridimensional contínuo representado em coordenadas
retangulares pelas direções x, y, z. O primeiro passo do método consiste na discretização do
espaço de análise do problema. Para isso, representam-se as variáveis x, y e z por i∆x, j∆y,
k∆z. Uma função do espaço e do tempo f(x,y,z,t), nesta região, será representada por Fn(i,j,k),
onde o tempo t é substituído por n∆t. Os índices i, j, k e n assumem valores inteiros e ∆x, ∆y,
∆z, ∆t valores reais, que representa a discretização do espaço e do tempo. Quanto menores
forem os incrementos, ou seja, mais refinada for a malha, melhor será a aproximação do
espaço contínuo. O espaço discretizado é mostrado na Figura 3.3.
z
y
x
∆z
∆y
∆x
y
x z
∆y
∆x
(i, j, k)
(a) (b)
Figura 3.3: Discretização em coordenadas retangulares do espaço de análise: (a) Visão em perspectiva da malha 3D; (b) Visão superior da malha 3D.
Se em um desses paralelepípedos forem representadas as 6 componentes dos campos
elétrico e magnético das equações de Maxwell , nas metades de suas arestas e nos centros de
suas faces, respectivamente, formar-se-á um volume elementar com uma configuração básica
conhecida como célula de Yee (Figura 3.4). Essa célula fornece uma visão melhor de como
aproximar as equações diferenciais de Maxwell por equações de diferenças finitas.
19
∆y
∆x
∆z
x
y
z
(i,j,k)
Ez
Ey
Ex
Hx
Hz
Hy
Tempo (n) (n+1/2) (n+1)
E E H
(n–1/2)
H Figura 3.4: Célula de Yee com componentes elétr icas no instante n.
Deve-se notar que as componentes elétricas e magnéticas, além de serem
perpendiculares entre si, afastam-se de meio incremento espacial e de meio incremento
temporal. Isto é feito por causa da dependência entre os campos elétrico e magnético, que não
devem ser calculados ao mesmo tempo. Portanto, numa mesma iteração, um é calculado antes
para atualizar o outro em seguida, caracterizando-se numericamente o fenômeno da
propagação da onda eletromagnética.
Na configuração da célula da Figura 3.4, pode-se estabelecer que esta é a célula (i,j,k)
e que todas as componentes aparecendo lhe pertencem. A aplicação do algoritmo pode ser
mais bem visualizada se forem mostradas mais algumas componentes de campo pertencentes
às células vizinhas, que serão utili zadas na aproximação por diferenças finitas das derivadas
que aparecem nas equações de Maxwell (Figura 3.5 e Figura 3.6).
x
y
z
(i,j,k)
Ez0
Ey0
Ex0
Hx
Hz
Hy
Ex1
Ey1
(i,j,k+1)
Ex1
Ez1
(i,j+1,k)
(i+1,j,k)
Ez1
Ey1
∆y
∆x
∆z
Figura 3.5: Configuração de célula de Yee suficiente para mostrar a aproximação por FD-TD da Lei de Faraday. As componentes com índice 0 e 1 são equivalentes aos valores iniciais e finais, respectivamente, usados no cálculo intuitivo da derivada centrada, feito pela Equação (3.7) deduzida a par tir da Figura 3.2.
20
x
y
z
(i-1,j, k)
Hy0
Hz0
(i,j-1,k)
Hx0
Hz0
Hx0
Hy0
(i,j,k+1)
(i,j,k)
Ez0
Ey0
Ex0
Hx1
Hz1
Hy1
Ex1
Ez1
(i,j+1,k)
Ex1
Ey1
(i,j,k+1)
(i+1,j,k)
Ez1
Ey1
∆y
∆x
∆z
Figura 3.6: Visão 3D do espaço discreto segundo Yee, para mostrar as aproximações por FD-TD das equações rotacionais de Maxwell .
Aplicando-se as considerações acima, levando-se em conta a equação (3.7) e que não
existem cargas livres em movimento na região de análise ( 0=σ ), as equações (3.9) podem
ser reescritas da seguinte forma:
∆
−−
∆
−∆+=++++++−
++
+
++ y
EE
z
EEtHH
n
kjiz
n
kjiz
n
kjiy
n
kjiyn
kjix
n
kjix
)21,,()2
1,1,(),21,()1,2
1,(2
1
)21,2
1,(2
1
)21,2
1,( µ
(3.10a)
∆
−−
∆
−∆+=++++++−
++
+
++ z
EE
x
EEtHH
n
kjix
n
kjix
n
kjiz
n
kjizn
kjiy
n
kjiy
),,21()1,,2
1()21,,()2
1,,1(2
1
)21,,2
1(2
1
)21,,2
1( µ
(3.10b)
21
∆
−−
∆
−∆+=++++++−
++
+
++ x
EE
y
EEtHH
n
kjiy
n
kjiy
n
kjix
n
kjixn
kjiz
n
kjiz
),21,(),2
1,1(),,21(),1,2
1(2
1
),21,2
1(2
1
),21,2
1( µ
(3.10c)
∆
−−
∆
−∆+=
+
−+
+
++
+
−+
+
++
++
+ z
HH
y
HHtEE
n
kjiy
n
kjiy
n
kjiz
n
kjizn
kjix
n
kjix
21
)21,,2
1(2
1
)21,,2
1(2
1
),21,2
1(2
1
),21,2
1(
),,21(
1
),,21( ε
(3.10d)
∆
−−
∆
−∆+=
+
+−
+
++
+
−+
+
++
++
+ x
HH
z
HHtEE
n
kjiz
n
kjiz
n
kjix
n
kjixn
kjiy
n
kjiy
21
),21,2
1(2
1
),21,2
1(2
1
)21,2
1,(2
1
)21,2
1,(
),21,(
1
),21,( ε
(3.10e)
∆
−−
∆
−∆+=
+
+−
+
++
+
+−
+
++
++
+ y
HH
x
HHtEE
n
kjix
n
kjix
n
kjiy
n
kjiyn
kjiz
nkjiz
21
)21,2
1,(2
1
)21,2
1,(2
1
)21,,2
1(2
1
)21,,2
1(
)21,,(
1)21,,( ε
(3.10f)
Analisando-se a figura 3.6, é possível definir-se dois tipos de células de Yee,
separadas por metade dos incrementos no tempo e no espaço. Uma é denominada célula
primária e já foi comentada (Figura 3.4) e a outra possui as componentes de campo magnético
nas metades de suas arestas e as componentes de campo elétrico nos centros de suas faces, na
disposição mostrada na Figura 3.7, e é denominada célula secundária de Yee.
x
y
z
(i,j,k)
Ez
Ey
Ex
Hx
Hz
Hy
(i,j+1/2,k)
(i,j,k+1/2)
(i+1/2,j,k)
Figura 3.7: Célula Secundár ia de Yee com componentes magnéticas no instante n+1/2.
22
A primeira facilit a o cálculo do rotacional do campo elétrico no instante n, o que gera
as equações de atualização temporal das componentes magnéticas Hn+1/2 (3.10a-c). A segunda
é muito útil para o cálculo do rotacional do campo magnético no instante n+1/2, gerando as
equações de atualização temporal das componentes elétricas En+1 (3.10d-f).
No desenvolvimento do método FD-TD, porém, as posições físicas dos campos já
estão inerentemente vinculadas pela aproximação da derivada centrada. Assim, não há
necessidade de se explicitar, nas equações de atualização das componentes de campo da
região de análise, índices fracionários para definir a célula a qual pertencem [7]. Por isso, a
componente Ex(i+1/2,j,k) será definida como Ex(i,j,k), pois pertence à célula (i,j,k), assim como, a
componente Ex(i+3/2,j+1,k+1) será definida como Ex(i+1,j+1,k+1), porque pertence à célula
(i+1,j+1,k+1), e assim por diante. Como, em códigos baseados em FD-TD, os índices dos
vetores de armazenamento das componentes dos campos são inteiros, isso simpli fica a
implementação computacional, pois não há a necessidade de se definir as coordenadas
espaciais das componentes de campo com valores fracionários. Portanto, as equações (3.10)
poderão ser reescritas como:
∆
−−
∆
−∆+= ++−+
y
EE
z
EEtHH
nkjiz
nkjiz
nkjiy
nkjiyn
kjixn
kjix),,(),1,(),,()1,,(21
),,(21
),,( µ (3.11a)
∆
−−
∆
−∆+= ++−+
z
EE
x
EEtHH
nkjix
nkjix
nkjiz
nkjizn
kjiyn
kjiy),,()1,,(),,(),,1(21
),,(21
),,( µ (3.11b)
∆
−−
∆
−∆+= ++−+
x
EE
y
EEtHH
nkjiy
nkjiy
nkjix
nkjixn
kjizn
kjiz),,(),,1(),,(),1,(21
),,(21
),,( µ (3.11c)
∆−
−
∆−∆+=
+−
++−
++
z
HH
y
HHtEE
nkjiy
nkjiy
nkjiz
nkjizn
kjixn
kjix
21)1,,(
21),,(
21),1,(
21),,(
),,(1
),,( ε (3.11d)
∆−
−
∆−∆+=
+−
++−
++
x
HH
z
HHtEE
nkjiz
nkjiz
nkjix
nkjixn
kjiyn
kjiy
21),,1(
21),,(
21)1,,(
21),,(
),,(1
),,( ε (3.11e)
∆−
−
∆−∆+=
+−
++−
++
y
HH
x
HHtEE
nkjix
nkjix
nkjiy
nkjiyn
kjizn
kjiz
21),1,(
21),,(
21),,1(
21),,(
),,(1
),,( ε (3.11f)
respectivamente.
23
São, as equações (3.11), usadas na implementação computacional da simulação da
propagação eletromagnética, dentro da região de análise.
3.3.3. Precisão e Estabili dade do Método:
Para uma solução confiável e útil , qualquer método numérico precisa ter precisão na
medida certa e dentro de condições de estabili dade bem definidas. A precisão significa o
quanto mais perto da solução analítica (se existir) a solução numérica se encontra, e a
estabili dade, se o problema converge para uma solução finita com o passar do tempo.
Dependendo do nível da aproximação e de como ela foi feita, o algoritmo poderá ou não ser
preciso e estável; isto depende diretamente do nível de erro do mesmo.
Os erros de um algoritmo numérico são basicamente decorrentes de três fontes:
9�Err os de Modelagem
São causados pelas diversas suposições e aproximações feitas no modelamento
do problema, para simpli ficar a análise do mesmo e, até mesmo em alguns casos,
torná-la possível (por exemplo, um sistema não-linear ser modelado por uma
equação diferencial li near).
9�Err os de truncagem
Provocados pela truncagem da série infinita de Taylor, para deduzir-se as
aproximações algébricas da derivada.
9�Err os de arredondamento (roundoff )
Ocorrem por causa da aproximação inevitável feita pelo sistema computacional
em números de mantissa maior que o limite de tamanho dos registradores de sua
unidade de lógica aritmética, influenciando na precisão dos cálculos envolvendo
números fracionários.
Os erros de modelagem podem ser reduzidos se as aproximações do modelo forem
melhoradas ou, se possível, evitadas. Os erros de truncagem podem ser diminuídos se a malha
discreta for mais refinada – se os incrementos de espaço e de tempo forem reduzidos –, ou
usando-se mais termos da série de Taylor na aproximação algébrica da derivada. Já os erros
de arredondamento (roundoff) , são minimizados pelo uso de dupla precisão aritmética, ou
evitados se houverem apenas operações com inteiros aritméticos no código (algo muito
trabalhoso, que tornaria o código mais pesado e extenso).
24
Porém, usar termos de ordem superior ao da EDP do sistema na aproximação da série
de Taylor pode introduzir soluções espúrias, assim como, aumentar indefinidamente o
refinamento da malha não é recomendável, pois, apesar de diminuir os erros de truncagem,
aumenta o roundoff por causa do aumento do número de operações aritméticas, com números
de mantissa muito grandes. Logo, para qualquer algoritmo, existe um ponto em particular
onde ocorre um erro total mínimo para um dado comprimento de palavra (Figura 3.8).
Erro de discretização Erro de roundoff
Erro Total
Discretização da Malha
Erro
Figura 3.8: Err o em função da discretização da malha.
A precisão do método FD-TD é geralmente assegurada se o maior incremento espacial
da malha for igual ou menor a décima parte do comprimento de onda, menor ou igual à menor
dimensão do elemento espalhador [6]:
10,,
mínzyx
λ≤∆ (3.12)
Esse compromisso entre o tamanho das células da malha e a precisão da solução
numérica define o nível de discretização da região de análise, através do número de divisões
por comprimento da onda suficiente para representar o meio de propagação e fornecer
resultados com o detalhamento desejado, evitando-se o efeito da dispersão numérica
provocado pelo método FD-TD nos modos da onda simulada. Na dispersão numérica, a
velocidade de fase dos modos numéricos da onda, dentro da malha FD-TD, pode variar com o
comprimento de onda modal, a direção de propagação e o tamanho da discretização da malha,
levando a resultados não-físicos como distorção do pulso, anisotropia artificial e pseudo-
refração. As Figuras 3.9 e 3.10 mostram o decaimento da velocidade de fase normalizada com
25
a variação do ângulo de propagação da onda, para determinada resolução de grade, e com a
variação da resolução de grade, para um certo ângulo de propagação, respectivamente.
Ângulo de propagação da onda
vf / c
0º 10º 20º 30º 40º 50º 90º 80º 70º 60º
0.95
0.94
0.97
0.96
0.98
1.00
0.99
Caso ideal
∆x,y,z = λ/20 ∆x,y,z = λ/10
∆x,y,z = λ/5
Figura 3.9: Var iação da velocidade de fase normalizada versus o ângulo de propagação da onda, provocada pela dispersão numérica.
Resolução da grade (tamanho da célula)
vf / c
Caso ideal
0 0.1λ 0.2λ
0.2
0.0
0.6
0.4
0. 8
1.0
0.3λ 0.4λ 0.5λ
α =0º, 90º
α = 45º
Figura 3.10: Var iação da velocidade de fase normalizada com a resolução da malha para dado ângulo de propagação, causada pela dispersão numérica.
Um algoritmo numérico é considerado estável se o erro cumulativo total num
momento qualquer, é menor que o erro cumulativo total num instante anterior. Ou seja:
nn δδ ≤+1 (3.13)
Para se alcançar a estabili dade no método FD-TD, é suficiente que o incremento
temporal ∆t satisfaça a condição de Courant [5]:
26
222
111
1
zyxv
t
f ∆+
∆+
∆
≤∆ (3.14)
onde minrf cv ε= e εrmin representa a menor constante dielétrica da estrutura a ser analisada.
Em (3.14), tem-se uma relação geral usada para os casos tridimensionais de
espalhamento eletromagnético. Para os casos, unidimensionais e bidimensionais deve-se
simplesmente eliminar os termos com os incrementos que não existem. A condição de
Courant para guias de onda, que leva em consideração a constante de fase da onda, pode ser
vista em [7]. Para mais explicações sobre como deduzir as condições de estabili dade de um
algoritmo numérico de um esquema de diferenças finitas qualquer veja [6].
3.4. As Condições de Fronteira Absorventes:
Na aplicação do método FD-TD é necessário definir-se a região de análise do
problema, para que a simulação tenha resultados consistentes. Quando o problema é fechado,
essa região é naturalmente limitada, devendo-se somente caracterizar-se eletricamente seus
contornos. No caso de um problema aberto, os limites da região de análise estão localizados
no infinito, o que torna a simulação FD-TD deste tipo de problema, a princípio, impraticável
devido às limitações de memória dos sistemas computacionais, incapazes de armazenar uma
quantidade ilimit ada de dados. Nestas circunstâncias, o que se faz é “fechar” com condições
artificiais (condições de fronteira absorventes – ABCs) uma certa extensão do domínio de
análise, de maneira a simular a onda propagando-se para o infinito. Logo, quanto maior a
precisão dessas condições, maior será a precisão da simulação FD-TD do problema.
Nas simulações deste trabalho, a condição absorvente utili zada será a UPML (Uniaxial
Perfectly Matched Layers). Existem outras ABCs, como por exemplo Mur 1ª e 2ª ordens [8].
A técnica UPML, porém, tem se destacado por seu alto nível de precisão e vem
revolucionando e expandindo o leque de aplicações do método FD-TD, com constantes
aprimoramentos realizados por diversos grupos de pesquisa [9].
A idéia da UPML é limitar artificialmente o domínio de análise, onde se deseja
verificar os fenômenos da propagação eletromagnética com o método FD-TD, por uma região
anisotrópica dispersiva finita casada em impedância com a região de análise, que absorva
gradualmente a onda (independentemente de seu ângulo de incidência, sua freqüência e sua
polarização) com a máxima eficiência possível, evitando a inserção de erros, nos cálculos
dentro da região de análise, pela interferência e modificação da solução por meio de reflexões
27
e refrações espúrias, e simulando, assim, o efeito da propagação ao infinito. Portanto, o
domínio numérico é dividido em duas regiões: a região de análise, onde a propagação da onda
é regida pelas equações discretizadas de Maxwell , e a região da UPML, onde o fenômeno de
propagação é regido por equações especiais de propagação com perdas (Figura 3.11).
x
yy
z VOLUME NUMÉRICO Região de Análi se
UPML
Condutor Elétrico Perfeito
Figura 3.11: Modelo geral, no plano x-y, do domínio numérico de um problema aberto, mostrando a região de propagação eletromagnética em análise, circundada pela condição de fronteira absorvente UPML e pelo condutor elétr ico perfeito.
3.4.1. Formulação da UPML:
No caso da UPML, esta região é basicamente composta de diversas camadas dispostas
lado a lado, cada qual com um valor particular de condutividade. Quanto mais se entra na
região absorvente, mais dispersivo torna-se o meio. Esse crescimento se dá apenas na direção
normal à interface das regiões de análise e de UPML. Por fim, a região absorvente é
circundada por um condutor elétrico perfeito (PEC). Assim, se a onda atravessar a última
camada da UPML e não tiver sido completamente dissipada, ela será refletida pelo PEC para
terminar de ser atenuada no caminho de volta (Figura 3.12).
x
y
z
REGIÃO DE
ANÁLISE
UPML
Frente de Onda Região de vértice
PEC
Figura 3.12: Modelo de problema eletromagnético aberto 2D, fechado ar tificialmente pela UPML.
28
Na Figura 3.12, as várias camadas que compõem a região UPML são mostradas em
cores distintas para caracterizar suas diferentes condutividades. Deve-se notar que cada um
dos quatro vértices desse domínio 2D é a intersecção de dois lados, cada um com
condutividade variando em apenas uma direção, e são caracterizados pelas duas
condutividades nas direções de variação dos dois lados que os compõem, respectivamente.
Portanto, as regiões dos 4 cantos da UPML de um domínio 2D retangular e dos cruzamentos
das faces da UPML de um domínio cúbico 3D têm atenuações em duas direções, assim como,
as regiões dos vértices do mesmo domínio cúbico 3D provocam atenuações nas três direções
(Figura 3.13).
x
y
z
Região de análise (σx = σy = σz = 0)
UPML
σx ≠ 0 σz ≠ 0
σx ≠ 0 σy ≠ 0 σz ≠ 0
Região de análise
(σx = σy = σz = 0)
UPML
σy ≠ 0 σx = 0
σy ≠ 0 σx ≠ 0
σy = 0 σx ≠ 0
(a) (b)
Figura 3.13: Representação dos cantos da UPML. a) caso 3D ; b) caso 2D.
As equações em diferenças finitas da propagação eletromagnética na UPML foram
apresentadas por S. D. Gedney [10], em 1996, e desenvolvidas a partir do conceito da PML de
Berenger [11,12], publicado em 1994, e das condições de casamento de impedância entre dois
meios para transmissão total definidas por Holland e Willi ams [13], em 1983. De uma forma
geral, as equações rotacionais de Maxwell no domínio da freqüência e as relações
constitutivas, para um meio anisotrópico são, respectivamente:
HSjE ϖµ−=×∇ (3.15a)
ESjH ϖε=×∇ (3.15b)
HSB µ= (3.16a)
ESD ε= (3.16b)
Onde ε = εoεr e µ = µoµr e S é, para um domínio 3D genérico, uma matriz diagonal
3x3 resultante do produto de três matrizes diagonais 3x3, cada uma referente a absorção em
29
uma direção específica da geometria da UPML, e disposta de tal forma que as condições de
transmissão total entre dois meios seja satisfeita [11]:
µ1 = µ2 (3.17a) ε1 = ε2 (3.17b) µ
σε
σ me = (3.17c)
Uma forma da matriz S que garante as condições de transmissão sem reflexão é:
=
⋅
⋅
==
z
yx
y
xz
x
zy
z
z
z
y
y
y
x
x
x
zyx
s
sss
sss
ss
s
s
s
ss
s
s
ss
SSSS
00
00
00
100
00
00
00
010
00
00
00
001
(3.18)
onde os elementos dessas matrizes são dados pela fórmula geral:
ϖεσj
s ll +=1 , l = x, y ou z (3.19)
Da equação (3.15a), pode-se escrever:
−=
∂∂
−∂
∂∂
∂−∂
∂∂
∂−
∂∂
z
y
x
z
yx
y
xz
x
zy
xy
zx
yz
H
H
H
s
sss
sss
ss
j
y
E
x
Ex
E
z
Ez
E
y
E
00
00
00
ϖµ (3.20)
Por simpli ficação nos cálculos, evitando-se o aparecimento de convoluções entre as
componentes do campo magnético e o tensor S após a passagem das equações para o
domínio do tempo, o que tornaria o código ineficiente, o sistema (3.20) é dividido em dois e
as componentes do vetor densidade de fluxo magnético são definidas:
−=
∂∂
−∂
∂∂
∂−
∂∂
∂∂
−∂
∂
z
y
x
y
x
z
xy
zx
yz
B
B
B
s
s
s
j
y
E
x
Ex
E
z
Ez
E
y
E
00
00
00
ϖ (3.21)
30
onde:
⋅
=
z
y
x
z
x
y
z
x
y
z
y
x
H
H
H
s
ss
ss
s
B
B
B
00
00
00
µ (3.22)
As linhas dos sistemas (3.21) e (3.22) são, respectivamente, dependentes entre si e,
duas a duas, se complementam no cálculo da atualização das componentes de campo. Como o
que se tem a princípio é o valor das componentes de campo elétrico, então, são calculadas as
componentes do vetor densidade de fluxo magnético correspondente e depois são atualizadas
as componentes do vetor intensidade de campo magnético. Ajustando-se as equações dos
sistemas (3.21)-(3.22), com o auxílio de (3.19), e agrupando-as linha a linha,
correspondentemente, tem-se os pares para atualização das componentes do vetor intensidade
de campo magnético:
xzyz Bsj
z
E
y
E ϖ−=
∂
∂−
∂∂
⇒ y
E
z
EBj zy
xz
∂∂
−∂
∂=
+
εσ
ϖ (3.23a)
e
xx
yx H
s
sB µ= ⇒ xxxy BsHs
µ1= ⇒ x
xx
y BjHj
+=
+ ε
σϖµε
σϖ 1
(3.23b)
yxzx Bsj
x
E
z
E ϖ−=
∂∂
−∂
∂ ⇒
z
E
x
EBj xz
yx
∂∂
−∂
∂=
+
εσ
ϖ (3.24a)
e
yy
zy H
s
sB µ= ⇒ yyyz BsHs
µ1= ⇒ y
yy
z BjHj
+=
+ ε
σϖµε
σϖ 1
(3.24b)
31
zyxy Bsj
y
E
x
Eϖ−=
∂
∂−
∂∂
⇒ x
E
y
EBj
yxz
y
∂∂
−∂
∂=
+
εσ
ϖ (3.25a)
e
zz
xz H
s
sB µ= ⇒ zzzx BsHs
µ1= ⇒ z
zz
x BjHj
+=
+ εσϖ
µεσϖ 1
(3.25b)
Operações semelhantes podem ser realizadas com (3.15b), resultando em:
=
∂∂
−∂
∂∂
∂−
∂∂
∂∂
−∂
∂
z
y
x
z
yx
y
xz
x
zy
xy
zx
yz
E
E
E
s
sss
sss
ss
j
y
H
x
Hx
H
z
Hz
H
y
H
00
00
00
ϖε (3.26)
Dividindo-se o sistema em dois, a partir da definição das componentes do vetor
densidade de fluxo elétrico:
=
∂∂
−∂
∂∂
∂−∂
∂∂
∂−
∂∂
z
y
x
y
x
z
xy
zx
yz
D
D
D
s
s
s
j
y
H
x
Hx
H
z
Hz
H
y
H
00
00
00
ϖ (3.27)
onde:
⋅
=
z
y
x
z
x
y
z
x
y
z
y
x
E
E
E
s
ss
ss
s
D
D
D
00
00
00
ε (3.28)
Agrupando-as e ajustando-se as equações dos sistemas (3.27)-(3.28), obtém-se num
arranjo mais lógico, os pares para atualização das componentes elétricas :
xzyz Dsj
z
H
y
H ϖ=
∂
∂−
∂∂
⇒ z
H
y
HDj
yzx
z
∂∂
−∂
∂=
+
εσ
ϖ (3.29a)
32
e
xx
yx E
s
sD ε= ⇒ xxxy DsEs
ε1= ⇒ x
xx
y DjEj
+=
+ ε
σϖεε
σϖ 1
(3.29b)
yxzx Dsj
x
H
z
Hϖ=
∂∂
−∂
∂ ⇒
x
H
z
HDj zx
yx
∂∂
−∂
∂=
+
εσ
ϖ (3.30a)
e
yy
zy E
s
sD ε= ⇒ yyyz DsEs
ε1= ⇒ y
yy
z DjEj
+=
+ ε
σϖεε
σϖ 1
(3.30b)
zyxy Dsj
y
H
x
Hϖ=
∂
∂−
∂∂
⇒ y
H
x
HDj xy
z
y
∂∂
−∂
∂=
+
εσ
ϖ (3.31a)
e
zz
xz E
s
sD ε= ⇒ zzzx DsEs
ε1= ⇒ z
zz
x DjEj
+=
+ εσϖ
εεσϖ 1
(3.31b)
Nos pares de equações (3.23)-(3.25) e (3.29)-(3.31) pode-se aplicar o método das
diferenças finitas para obter-se as equações de propagação em meios anisotrópicos uniaxiais
na forma discreta:
∆
−−
∆
−
∆
+
∆+
∆+
∆−
=++++++−
++
+
++ y
EE
z
EE
t
tt
t
BB
n
kjiz
n
kjiz
n
kjiy
n
kjiy
zz
z
n
kjix
n
kjix
)2
1,,()
2
1,1,(),
2
1,()1,
2
1,(
2
1
)2
1,
2
1,(
2
1
)2
1,
2
1,(
21
21
21
εσµ
εσ
εσ
(3.32a)
e
33
∆
−−
∆
+
∆+
+
∆+
∆−
=−
++
+
++
−
++
+
++ εσ
εσ
εσ
µε
σε
σ
21
21
21
1
21
21
2
1
)2
1,
2
1,(
2
1
)2
1,
2
1,(
2
1
)2
1,
2
1,(
2
1
)2
1,
2
1,(
tB
tB
tt
t
HH xn
kjix
xn
kjix
yy
y
n
kjix
n
kjix
(3.32b)
∆
−−
∆
−
∆
+
∆+
∆+
∆−
=++++++−
++
+
++ z
EE
x
EE
t
tt
t
BB
n
kjix
n
kjix
n
kjiz
n
kjiz
xx
x
n
kjiy
n
kjiy
),,2
1()1,,
2
1()
2
1,,()
2
1,,1(
2
1
)2
1,,
2
1(
2
1
)2
1,,
2
1(
21
21
21
εσµ
εσ
εσ
(3.32c)
e
∆−−
∆+
∆
++
∆+
∆−
=+
++
+
++
−
++
+
++ εσ
εσ
εσ
µε
σε
σ
21
21
21
1
21
21
2
1
)2
1,,
2
1(
2
1
)2
1,,
2
1(
2
1
)2
1,,
2
1(
2
1
)2
1,,
2
1(
tB
tB
tt
t
HH yn
kjiy
yn
kjiy
zz
z
n
kjiy
n
kjiy
(3.32d)
∆
−−
∆
−
∆+
∆+
∆+
∆−
=++++++−
++
+
++ x
EE
y
EE
t
tt
t
BB
n
kjiy
n
kjiy
n
kjix
n
kjix
yy
y
n
kjiz
n
kjiz
),2
1,(),
2
1,1(),,
2
1(),1,
2
1(
2
1
),2
1,
2
1(
2
1
),2
1,
2
1(
21
21
21
εσ
µε
σε
σ
(3.32e)
e
∆
−−
∆
+
∆
++
∆+
∆−
=−
++
+
++
−
++
+
++ εσ
εσ
εσ
µε
σε
σ
21
21
21
1
21
21
2
1
),2
1,
2
1(
2
1
),2
1,
2
1(
2
1
),2
1,
2
1(
2
1
),2
1,
2
1(
tB
tB
tt
t
HH zn
kjiz
zn
kjiz
xx
x
n
kjiz
n
kjiz
(3.32f)
∆
−−
∆
−
∆+
∆+
∆+
∆−=
+
−+
+
++
+
−+
+
++
+
+
+ z
HH
y
HH
tt
t
t
DD
n
kjiy
n
kjiy
n
kjiz
n
kjiz
zz
z
n
kjix
n
kjix
2
1
)2
1,,
2
1(
2
1
)2
1,,
2
1(
2
1
),2
1,
2
1(
2
1
),2
1,
2
1(
),,2
1(
1
),,2
1(
21
21
21
εσε
εσ
εσ
(3.33a)
e
34
∆
−−
∆
+
∆+
+
∆+
∆−
=+
+
++
+
+ εσ
εσ
εσ
εε
σε
σ
21
21
21
1
21
21
),,2
1(
1
),,2
1(),,
2
1(
1
),,2
1(
tD
tD
tt
t
EE xn
kjix
xn
kjix
yy
y
n
kjix
n
kjix
(3.33b)
∆
−−
∆
−
∆+
∆+
∆+
∆−=
+
+−
+
++
+
−+
+
++
++
+ x
HH
z
HH
tt
t
t
DD
n
kjiz
n
kjiz
n
kjix
n
kjix
xx
x
n
kjiyn
kjiy
2
1
),2
1,
2
1(
2
1
),2
1,
2
1(
2
1
)2
1,
2
1,(
2
1
)2
1,
2
1,(
),2
1,(
1
),2
1,(
21
21
21
εσε
εσ
εσ
(3.33c)
e
∆−−
∆+
∆+
+
∆+
∆−=
+
+
++
+
+ εσ
εσ
εσε
εσ
εσ
21
21
21
1
21
21
),2
1,(
1
),2
1,(),
2
1,(
1
),2
1,(
tD
tD
tt
t
EE yn
kjiyyn
kjiyzz
z
n
kjiyn
kjiy
(3.33d)
∆
−−
∆
−
∆+
∆+
∆+
∆−
=
+
+−
+
++
+
+−
+
++
+
+
+ y
HH
x
HH
tt
t
t
DD
n
kjix
n
kjix
n
kjiy
n
kjiy
yy
y
n
kjiz
n
kjiz
2
1
)2
1,
2
1,(
2
1
)2
1,
2
1,(
2
1
)2
1,,
2
1(
2
1
)2
1,,
2
1(
)2
1,,(
1
)2
1,,(
21
21
21
εσ
εε
σε
σ
(3.33e)
e
∆−−
∆+
∆+
+
∆+
∆−=
+
+
++
+
+ εσ
εσ
εσε
εσ
εσ
21
21
21
1
21
21
)2
1,,(
1
)2
1,,()
2
1,,(
1
)2
1,,(
tD
tD
tt
t
EE zn
kjiz
zn
kjiz
xx
x
n
kjiz
n
kjiz
(3.33f)
Essas fórmulas de propagação especiais (3.32)-(3.33), que levam em consideração as
perdas de um meio dispersivo, podem também ser usadas em meios sem perdas (σ = 0), pois
nesta situação os termos que caracterizam a absorção são anulados e as expressões se
transformam nas equações de Maxwell para meios isotrópicos. O uso, porém, dessas equações
especiais em toda o domínio numérico, é indicado com cautela, devendo-se atentar para as
35
dimensões de malha, pois se corre o risco de tornar o código menos eficiente pela inclusão de
um maior número de cálculos e de variáveis no mesmo.
Os valores das condutividades elétrica e magnética na UPML variam uniaxialmente,
porque com isso reduz-se o efeito de reflexão provocado pela aproximação discreta dos
campos e dos parâmetros materiais na interface entre os dois meios, resultante de uma
impedância descasada na mesma [10]. Essa variação gera, no fundo, o aparecimento de várias
camadas postas lado a lado na região de truncagem. Essas condutividades, ou as
condutividades elétrica e magnética de cada camada da UPML, podem ser definidas através
do seguinte polinômio:
( )( ) ( )
( )m
zyx
m
zyx
zyxnc
lll
,,
max,,
,,
ασσ
−= , l = i, j ou k e α = 0, 1 (3.34)
De acordo com [10], a ordem do polinômio para que a UPML gere reflexões
suficientemente baixas é a quarta ordem (m = 4) e a espessura de 10 camadas (nc = 10) para a
mesma parece mais do que suficiente, sem aumentar significativamente o nível de erro e o
tempo de processamento da simulação. Para um cálculo mais preciso, técnicas de otimização
podem ser usadas para encontrar os parâmetros acima [14]. Como (3.34) depende, também, de
σmax, então, o valor ótimo para o mesmo para reduzir as reflexões será dado pela seguinte
expressão [10]:
( )
r
dd
m
επσ
...150
1max ∆
+≈ , d = x, y ou z (3.35)
Assim, para uma célula de Yee caracterizada para um problema de propagação 2D em
modo TMz (Figura 3.14) tem-se que as condutividades serão:
z x
y
j1
i0 i1
j0
Região de Análise
UPM L
Ez
Hy
Hx
Célula de Yee
PEC
1
2 3 4
5
6 7 8
Figura 3.14: Delimitações do domínio numérico para cálculos na UPML e célula de Yee, para o modo de propagação TMz.
36
Para Hx:
( )mx
m
xx
nc
iii ασ
σ−
= max (3.36a)
( )my
m
y
ync
jjj
ασσ
−+=+ 2
121
max (3.36b)
Para Hy:
( )mx
m
x
xnc
iii
ασσ
−+=+ 2
121
max (3.37a)
( )my
m
y
ync
jjj
ασσ
−= max (3.37b)
Para Ez:
( )mx
m
xx
nc
iii ασ
σ−
= max (3.38a)
( )my
m
y
ync
jjj
ασσ
−= max (3.38b)
Onde:
α = 0 ou 1, max1
1
jjj
jj
≤≤<≤ 0 e
max1
1
iii
ii
≤≤<≤ 0
Sendo respeitadas as condições (Figura 3.14):
1) Os σx’s são nulos nas regiões 3 e 7;
2) Os σy’s são nulos nas regiões 1 e 5;
3) Nas regiões não citadas as condutividades são dadas por (3.36), (3.37) e (3.38).
Deve-se notar que na região de UPML as posições exatas das componentes (valores de
índice fracionários) dentro da célula de Yee, devem ser explicitadas. Isso se deve por causa da
necessidade de uma caracterização eficiente da variação da condutividade dentro da UPML.
Por isso, a condutividade é calculada e armazenada em posições intermediárias da célula,
como se pode perceber em (3.36), (3.37) e (3.38). A utili zação dos valores dos σ’s nas
37
posições geométricas exatas de ocorrência das componentes de campo dentro das células
deste meio, torna a anisotropia do mesmo mais suave e produz menos reflexões. Por isso,
também, cada componente dos campos elétrico e magnético tem uma condutividade particular
de acordo com a sua posição na célula de Yee.
3.4.2) Condições de Contorno do PEC:
As condições de contorno apropriadas para caracterizar-se um condutor elétrico
perfeito são tais que as componentes tangenciais do campo elétrico são nulas. Esta condição
vai implicar que a componente normal do campo magnético vai anular-se nessa superfície. A
superfície condutora será com isso aproximada por uma coleção de faces de cubos, cujos
lados são paralelos aos eixos de coordenadas. Superfícies planas perpendiculares ao eixo x,
por exemplo, serão escolhidas tais que contenham pontos onde Ey e Ez sejam definidos como
zero (Figura 3.15). Similarmente, superfícies planas perpendiculares aos outros eixos também
serão escolhidas.
z x
y
PEC
E z =0
E y =0
Componente de campo entrando ou saindo do plano do papel.
Figura 3.15: Condições de contorno para o PEC.
38
Referências Bibliográficas
[1] K. S. Yee, “Numerical solution of initial bondary value problems involving Maxwell ´s equations in isotropic media”, IEEE Trans. Antennas and Propagat. 14, pp. 302-307, 1966.
[2] A. Taflove, e S. C. Hagness, Computational electrodynamics: the finite difference time domain method, 2a Edição, Artech House, 2000.
[3] A. Taflove, “Review of the formulation and applications of the finite-difference time-domain method for numerical modeling of electromagnetic wave interactions with arbitrary structures” , Wave Motion 10, pp. 547-582, 1988.
[4] A.N. Belém, “Caracterização bidimensional de canais de rádio através de diferenças finitas no domínio do tempo”, Dissertação de Mestrado, Universidade Federal de Minas Gerais, pp. 11-50, 2001.
[5] A.Taflove, e M.E. Brodwin, “Numerical solution of steady-state electromagnetic scattering problems using the time-dependent Maxwell ’s equations” , IEEE Trans. Microwave Theory and Tech. 8, vol. MTT-23, pp. 623-630, 1975.
[6] M. N. O. Sadiku, Numerical techniques in electromagnetics, 2a Edição, CRC Press, 2000.
[7] R. M. S. Oliveira, “Método FD-TD aplicado na análise da propagação eletromagnética em ambientes indoor e outdoor” , Trabalho de Conclusão de Curso, Departamento de Engenharia Elétrica e da Computação, Universidade Federal do Pará, pp. 4-21, 2003.
[8] G. Mur, “Absorbing boundary conditions for finite-difference approximation of the time-domain electromagnetic field equations” , IEEE Trans. Electromagn. Compat. 23, pp. 377-382, 1981.
[9] Website www.fdtd.org
[10] S. D. Gedney, “An anisotropic perfectly matched layer-absorbing medium for the truncation of FD-TD lattices” . IEEE Trans. Antennas Propagat. 44, pp. 1631-1639, 1996.
[11] J. P. Berenger, “A perfectly matched layer for the absortion of electromagnetic waves” , J. Computat. Phys., 1994.
[12] J. P. Berenger, “Perfectly matched layer for the FD-TD solution of wave-structure interaction problems”, IEEE Trans. Ant. Propagat.1, vol. 44, pp. 110-117, 1996.
[13] R. Holland, e J. Willi ams, “Total field versus scattered-field finite-difference”, IEEE Trans. Nuclear Science 30, pp. 4583-4587, 1983.
[14] T. Venkartaraman, Applied optimization with MATLAB programming, 1a Edição, John Wiley & Sons, 2002.
39
CAPÍTULO 4: Análise de Problemas e Resultados
4.1) Introdução:
Neste capítulo, são analisadas duas estruturas PBG com redes periódicas de célula
unitária quadrada. No primeiro caso, o arranjo constitui-se de uma linha de fita colocada sobre
a estrutura PBG, obtendo-se assim as características de um filt ro [1]. Levou-se em conta a
quantidade de elementos dispostos, formando linhas e colunas na estrutura, e foram feitas,
então, alterações no número dos elementos, tanto no sentido longitudinal, quanto no
transversal, em relação à fita. No segundo caso, foi criado um guia de onda baseado na
estrutura PBG apresentada em [2,3], com a retirada de algumas células da mesma. Assim,
obteve-se um guia PBG bidimensional [4], que confina o sinal e transmite-o sem quase
nenhuma perda. Esse guia pode ser utili zado, por exemplo, no projeto de circuitos ópticos.
Foram feitas simulações da propagação eletromagnética nessas estruturas utili zando-se
o método FD-TD e a técnica da UPML, mostradas no capítulo 3. O modo de propagação
considerado nestes problemas foi o TMz (Ex = Ey = Hz = 0). Para o caso do filt ro foram
escritos apenas códigos seqüenciais, pois, apesar do problema ser tridimensional, sua malha
não era muito grande e, assim, o processamento não era tão longo. Já para o guia de onda
foram feitos dois programas: um seqüencial e outro paralelo. Com isso, pôde-se avaliar a
eficiência do processamento paralelo na simulação de problemas com grande nível de
discretização, que exigem sistemas com maior capacidade de processamento e
armazenamento. Todos os programas foram codificados em FORTRAN 77/90 [Apêndice A].
Para as simulações com processamento paralelo, foi utili zado um cluster do tipo
Beowulf [5-7] composto por 12 máquinas – um nó mestre: composto por um sistema AMD
Athlon Dual com dois processadores de 1.8 GHz, 2GB de memória RAM PC266, um disco
rígido de 60 GB, uma placa de rede Ethernet 100Mb e uma placa de rede Ethernet de 1Gb; e
onze nós escravos: sistemas AMD Athlon com um processador de 1.8 GHz, 1.5GB de
memória RAM PC266, um disco rígido de 20 Gb e uma placa de rede Ethernet 100Mb. O
sistema era interligado por um switch Ethernet de 24 portas 10/100Mb e uma porta 1Gb
Ethernet e baseado no sistema operacional Linux Red Hat 9.0 [8] e na biblioteca de
comunicação LAM/MPI [9].
Com os dados de saída gerados por estes programas, foram plotados os band gaps e
calculadas as larguras de banda das diferentes configurações do filt ro PBG e geradas imagens
40
da distribuição de campo no guia de onda, em diferentes instantes da simulação. De posse
destas imagens, foram gerados filmes, onde se pode observar os fenômenos referentes a
propagação da onda (reflexão, refração e difração). Para o tratamento desses dados, foram
usados os softwares Microcal Origin 6, para a plotagem dos gráficos, Matlab 5.3, para a
geração das imagens e o VirtualDub, para a edição do vídeo. 4.2) Problema 1 – O Fil tro PBG:
Este dispositivo consiste de uma linha de fita colocada sobre uma estrutura PBG
composta por elementos dielétricos dispostos periodicamente. Dessa forma, a linha é
sobreposta à estrutura (substrato), sendo fixada acima de uma das fileiras de células. O
substrato caracterizado por PBG é feito de um material homogêneo de permissividade relativa
εr = 2,2, que tem incluído, em seu interior, elementos de alta permissividade elétrica (εr =
10,2) em forma de bastões de base quadrada (Figuras 4.1, 4.2 e 4.3).
linha de fita
plano de terra (metal)
substrato
bastão
Figura 4.1: Esquema de fil tro PBG.
εεr = 10,2
εεr = 2,2
linha
de
fita
substrato PBG a
x z
y
Figura 4.2: Visão superior do modelo do Fil tro PBG.
li nha de fi ta substrato
x y
z
Figura 4.3: Vista lateral do fil tro PBG. Deve-se observar a existência de uma fileira de blocos abaixo da fita.
41
Estes bastões são dispostos numa rede quadrada. Desse modo, o número de células da
rede é alterado e os efeitos sobre o band gap são analisados em termos do coeficiente da
matriz de espalhamento, S21. Com essas modificações, em relação ao número de linhas e
colunas de bastões do substrato PBG, são feitos testes de eficiência entre as diferentes
configurações construídas.
Para os cálculos dos band gaps, nos diferentes casos do filt ro, será necessário captar-
se os valores dos coeficientes de transmissão da estrutura. Para isso, deve-se captar a tensão
num ponto abaixo da linha, após a estrutura PBG, produzida por um campo eletromagnético
excitado num local também abaixo da linha, antes da estrutura PBG (V(t)trans). O local de
coleta da tensão elétrica é denominado porta de acesso [1]. Deve-se usar um esquema para
registrar, no mesmo local, a tensão incidente (V(t)inc) gerada por este campo, considerando-se
uma linha de fita infinita sem estrutura PBG.
Na verdade, o que se faz é registrar o campo elétrico num ponto de coordenada (x,y),
integrando-o na direção z a partir deste ponto, do plano de terra (camada metálica inferior) até
a parte mais alta do substrato (interface com a linha de fita), para calcular-se a tensão de
acordo com a integral de linha que define a tensão entre dois potenciais (Figura 4.4):
bastões
Tensão transmitida
Metal
Substrato
Linha de Microfita
Figura 4.4: Vista ampliada do plano y-z do fil tro PBG, mostrando a por ta de acesso, onde se capta a tensão transmitida, gerada entre a placa metálica, abaixo do substrato, e a linha de fita, acima dele.
( ) ∫ •=1
0
z
z
tV dlE (4.1)
Depois de se registrar os valores assumidos por estas tensões no domínio do tempo,
durante um intervalo suficientemente grande para que o campo atinja o regime permanente
(ou seja, de posse do histórico da variação dessas tensões), pode-se encontrar os resultados
correspondentes no domínio da freqüência, necessários para o cálculo do coeficiente de
transmissão, usando-se a transformada de Fourier:
( ) ( ){ }( ){ }tinc
trans
tV
tVS
ℑℑ=ϖ21 (4.2)
42
Estes cálculos podem ser feitos em um único código computacional, servindo para
determinar os coeficientes da matriz de espalhamento. Através da plotagem de S21, pode-se
encontrar o band gap da estrutura e medir-se a sua largura de banda (BW). O ponto de menor
transmissão ocorre na freqüência central (fC). A freqüência inferior e a freqüência superior são
dadas no ponto imediatamente anterior e no ponto imediatamente posterior à freqüência
central, respectivamente, onde a transmissão decai 3dB [10]:
C
LH
f
ffBW
−⋅=100(%) (4.3)
2
LHC
fff
+= (4.4)
onde fH é a freqüência superior do band gap e fL é a freqüência inferior do band gap.
4.2.1) Características Construtivas do Problema:
Para todos os casos simulados, as dimensões dos bastões, o tamanho da constante de
rede, as dimensões da fita e a espessura de substrato são os mesmos. Assim, a base de cada
bastão foi definida com as dimensões de 3,2mm x 3,2mm e altura igual à espessura do
substrato. A constante de rede é de 4,80mm, a fita tem 2,4mm de largura e a espessura do
substrato é de 0,80mm.
a) Fonte de Excitação:
O pulso Gaussiano foi escolhido porque com ele é possível obter-se, de uma só vez,
informações do comportamento da estrutura numa determinada faixa de freqüências,
simplesmente ajustando-se a sua largura. Pode-se definir um pulso Gaussiano no domínio do
tempo, com propagação na direção z, pela expressão:
( ) ( ) ( ) ( )
−−⋅
−−⋅=
2
20
2
20
maxexpexp,,
z
zztttzftzf
ττ (4.5)
As escolhas dos parâmetros 2, 2z, t0 e z0 estão sujeitas às condições de estabili dade e
precisão numéricas vistas no capítulo 3. A largura de banda, W, do pulso é medida entre dois
pontos simétricos que estão localizados a 5% do valor da amplitude máxima de f(z, t). Este
máximo é atingido quando z = z0 e t = t0.
( ) ( )( )
( ) ( ) ( )maxmax2
2
max,%53exp,
2exp, tzftzf
Wtzf ⋅≈−⋅=
−⋅
ντ (4.6)
Para garantir-se uma dispersão numérica mínima [1], define-se:
43
zW ∆= 20 ⇒ zW ∆=
10
2 (4.7)
Com isto, 2 é calculado como:
ν
τ z∆⋅= 10
3
1 (4.8)
A freqüência máxima será calculada por (4.9) [1]:
z
f∆⋅⋅=
20
3
2
1max
ντ
(4.9)
No domínio do tempo, essa função pode ser definida apenas por f(t). Nas simulações
realizadas neste trabalho, o pulso gaussiano usado foi:
( ) ( )
−−=
2
20exp
τtt
tf , τ30 =t (4.10)
Esta função é adicionada a componente de campo elétrico Ez na posição (x, y, z) do
domínio. O pulso de excitação utili zado nas análises deste caso tem largura de banda de
22GHz, com duração de 2 = 22,0 ps, e foi excitado abaixo da linha de fita em uma célula
depois da UPML, antes da estrutura PBG.
4.2.2) Implementação Numérica:
Os domínios numéricos considerados para todos os casos do filt ro PBG foram
tridimensionais (Figura 4.2). Os valores definidos para os incrementos espaciais foram ∆x =
0,40mm, ∆y = 0,40mm e ∆z = 0,1588mm. Assim, no domínio discreto, as dimensões dos
bastões, que constituem a estrutura periódica, são 8 x 8 x 5 células (lado x lado x altura), a
constante de rede possui 12 células, a fita tem largura de 6 células e a espessura do substrato é
de 5 células. Para o cálculo do coeficiente de transmissão, a porta de acesso ficou afastada de
10∆y células do último plano de bastões e na célula localizada no meio da dimensão x do
volume numérico (Figura 4.5). No domínio discreto, a integral (4.1) transforma-se num
somatório algébrico.
( ) ∑=
∆⋅=max
0
k
kk zEnV (4.11)
No domínio discreto, o pulso de excitação é obtido de (4.10) e pode ser escrito como:
44
( ) ( )
−∆−=2
23exp
ττtn
nf (4.12)
Este pulso foi, então, adicionado à componente Ez, na posição (i, j, k) do domínio
numérico, com i assumindo o valor do índice de uma das células entre a UPML e a estrutura
PBG, j variando em toda a espessura da linha e k variando entre o plano de terra e a linha de
fita.
io 1
1
jo
j1
ny
i1 nx
x z
y
PEC
Célula da porta de acesso
Conjunto de Células onde é excitada a onda
UPML
UPML
UP
ML
UP
ML
mic
rofi
ta
Ez
a b
c d
Figura 4.5: Exemplo de domínio numérico do fil tro PBG, caso 2x7. Visão do plano x-y superior . A distância a deve ser, preferencialmente, igual ao compr imento de onda da freqüência central do pulso; b deve ser um valor que possibili te a, por exemplo, a + 10 células; c deve ser no mínimo 10 células e d pode ser igual a distância entre dois bastões.
A UPML foi implementada com uma espessura de 10 camadas. Para manter a
estabili dade da simulação numérica, o incremento temporal usado foi 90% do valor calculado
pela condição de estabili dade de Courant (3.14), o que resultou em ∆t = 0,6162 ps. Em todos
os casos analisados, 1000 passos no tempo foram suficientes para obter-se o estado
estacionário do processo iterativo.
4.2.3) Resultados:
Para verificar a performance do band gap, foram feitas simulações baseadas no
modelo de domínio numérico mostrado na Figura 4.5, com o número de linhas de bastões
sendo ajustadas para quantidades fixas de planos de células da estrutura. No primeiro grupo
de simulações, usaram-se apenas dois planos PBG paralelos, transversais ao comprimento da
45
linha de fita e variou-se o número de colunas de cada lado. Depois um novo grupo de
resultados foi obtido usando-se, desta vez, seis planos PBG e seguindo o procedimento
anterior no acréscimo de colunas. Em todos os casos, a linha de fita foi sempre mantida sobre
os blocos e posicionada simetricamente em relação a estes.
a) Caso 1: Estruturas com dois Planos PBG Paralelos
Neste caso, uma estrutura composta de 2 planos paralelos de bastões teve seu número
de colunas ajustado para 5, 7, 9 e 11. Os modelos criados são mostrados na Figura 4.6.
Lin
ha d
e fi
ta
E inc
E trans
Lin
ha d
e fi
ta
E inc
E trans
Lin
ha d
e fi
ta
E inc
E trans
E inc
E trans
Lin
ha d
e fi
ta
Figura 4.6: Modelo do fil tro de 2 planos PBG. De cima para baixo os arr anjos 2 x 5, 2 x 7, 2 x 9 e 2 x 11, respectivamente.
Na Tabela 4.1, são informados os tamanhos dos domínios numéricos e a posição da
porta de acesso, usada para cada caso.
Caso Dimensões do domínio numérico (células) Posição da por ta de acesso 2 x 5 84 x 74 x 20 43 x 51 x k 2 x 7 108 x 74 x 20 55 x 51 x k
46
2 x 9 132 x 74 x 20 67 x 51 x k 2 x 11 156 x 74 x 20 79 x 51 x k
Tabela 4.1: Dimensões do domínio numérico e posição da por ta de acesso para cada caso.
O valor da posição k da fonte varia de 1 a 5, de acordo com o domínio já definido. Os
band gaps encontrados estão colocados num mesmo gráfico, mostrado na Figura 4.7.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20-5
-4
-3
-2
-1
0
Tra
nsm
issã
o (d
B)
Freqüência (GHz)
2 x 5 2 x 7 2 x 9 2 x11
Figura 4.7: Curva do coeficiente reflexão para cálculo da largura de banda da estrutura nos casos 2 x 5, 2 x 7, 2 x 9 e 2 x 11.
Como se percebe, as curvas de 2 x 5 e 2 x 7 são, assim como as de 2 x 9 e 2 x 11,
idênticas entre si. Numa análise mais geral, as curvas pouco diferem umas das outras, ou seja,
para dois planos paralelos, usar esta estrutura PBG com 5 ou 11 colunas resulta num efeito de
filt ragem aproximadamente igual. Apesar de haver uma atenuação um pouco mais marcante
na faixa de aproximadamente 9~13,25GHz, ela não é suficiente para impedir a transmissão de
boa parte do sinal dentro dessa faixa de freqüência (pois, é pouco maior que 3dB). Portanto,
pode-se concluir que para estes casos, todas as freqüências na faixa de 1~20GHz estão sendo
transmitidas com mínimas perdas. Isso, talvez seja mais bem percebido pelo gráfico
comparativo na Figura 4.10. Ainda, assim a largura de banda desse filt ro foi calculada por
(4.3) e (4.4) em, aproximadamente, 38,20%.
b) Caso 2: Estruturas com seis Planos PBG Paralelos
Para este caso, tem-se uma estrutura composta de 6 planos de bastões e número de
colunas também sendo ajustado para 5, 7, 9 e 11 como mostra a Figura 4.8.
47
Lin
ha d
e fi
ta
E inc
E trans
L
inha
de
fita
E inc
E trans
Lin
ha d
e fi
ta
E inc
E trans
Lin
ha d
e fi
ta
E inc
E trans
x z
y
(1)
(2)
(3)
(4)
Figura 4.8: Modelos do fil tro de 6 planos PBG: (1) 6 x 5; (2) 6 x 7; (3) 6 x 9 e (4) 6 x 11.
Na Tabela 4.2, são mostrados os tamanhos dos domínios numéricos e a posição da
porta de acesso, usada para cada caso.
Caso Dimensões do domínio numérico (células) Posição da por ta de acesso 6 x 5 84 x 119 x 20 43 x 99 x k 6 x 7 108 x 119 x 20 55 x 99 x k 6 x 9 132 x 119 x 20 67 x 99 x k 6 x 11 156 x 119 x 20 79 x 51 x k
Tabela 4.13: Dimensões do domínio numérico e posição da por ta de acesso para cada caso de fil tro de 6 planos.
O valor da posição k da fonte varia de 1 a 5, de acordo com o domínio já definido. Os
gráficos dos band gaps estão plotados na Figura 4.9.
48
2 4 6 8 10 12 14 16 18 20-30
-27
-24
-21
-18
-15
-12
-9
-6
-3
0
Tra
snm
iss
ão
(d
B)
Freqüência (GHz)
6 x 5 6 x 7 6 x 9 6 x11
Figura 4.9: Curva do coeficiente S21, para determinação do band gap nos arr anjos 6 x 5, 6 x 7, 6 x 9, 6 x 11.
Assim, como no caso para 2 planos, as curvas do coeficiente de reflexão para os casos
6 x 5 e 6 x 7, da mesma forma que nos casos 6 x 9 e 6 x 11, são idênticas. Há apenas um
pequeno desvio no band gap, com o aumento do número de colunas.
Nestes casos, já é bastante perceptível a filt ragem que a estrutura PBG provoca na
transmissão da linha de fita, deixando passar todas as freqüências de 1-20GHz com exceção
da faixa de aproximadamente 10~15GHz. A largura de banda para este band gap foi calculada
por (4.3) e (4.4) aproximadamente igual a 40%.
Na Figura 4.10, mostra-se os dois casos. Percebe-se que a filt ragem proporcionada por
6 planos de bastões tem fator de qualidade bem superior a do filt ro com 2 planos.
2 4 6 8 10 12 14 16 18 20-30
-27
-24
-21
-18
-15
-12
-9
-6
-3
0
Tra
nsm
iss
ão
(dB
)
Freqüência (GHz)
2 x 5 2 x 11 6 x 5 6 x 11
Figura 4.10: Comparativo entre arr anjos de 2 planos e 6 planos.
49
4.3) Problema 2 – Guia de Onda PBG 2D
A estrutura PBG usada em um filt ro acoplador desenvolvido em [2], foi usada para a
construção de um guia de onda bidimensional. Desta estrutura PBG foram retiradas alguns de
seus bastões, de maneira a se criar um caminho onde a onda pode se propagar li vremente.
Porém, ao contrário dos bastões cilíndricos da estrutura de [2], os bastões usados nesta
simulação foram colunas com base quadrada (Figura 4.11).
(a) (b) Figura 4.11: a) Vista 2D superior do guia de onda PBG bidimensional; b) Visão 3D em perspectiva do mesmo guia de onda (os espaços vazios entre os bastões, e o canal, são preenchidos com ar).
Para não descaracterizar a geometria da estrutura, ajustou-se o tamanho dos lados dos
bastões quadrados recorrendo-se a uma relação de equivalência entre as áreas do quadrado e
do círculo e à condição de que o raio do bastão circular tem que ser igual a 20% da constante
de rede da estrutura [2] (4.12).
círculo quadradoA A= ⇒ 2 2R Lπ = ⇒ L R π= ⇒ 0,20. .L a π=
0,3545.L a= (4.12)
Essa estrutura, também, baseia-se numa rede cristalina de base quadrada, porém suas
dimensões são diferentes da estrutura do filt ro PBG, mostrada anteriormente. Essa estrutura
pode confinar uma onda e transmiti-la numa determinada freqüência, com aproximadamente
nenhuma perda.
Para o estudo da propagação eletromagnética neste dispositivo foram escritos dois
códigos: um seqüencial e outro paralelo. Isso foi feito para demonstrar as alternativas que
podem ser realizadas com a maior capacidade de processamento e armazenamento de um
sistema de processamento paralelo relativamente barato, como um cluster de PCs. Depois,
uma análise de desempenho entre estes dois códigos foi realizada. Também, com estes
50
programas, obtiveram-se imagens da distribuição de campo em diversos instantes de tempo
durante a propagação eletromagnética. Com essas “ fotos” , foram criados filmes que mostram
a evolução da onda propagando-se nesta estrutura.
4.3.1) Características Construtivas do Problema:
Em ambos os casos, este problema foi analisado em apenas um plano x-y. Ou seja, as
simulações foram realizadas dentro de um domínio numérico bidimensional. Assim, os
bastões da estrutura foram definidos apenas por suas bases quadradas. Como a constante da
rede quadrada, a, foi definida como 10 mm de comprimento, as bases dos bastões foram
dimensionadas em 3,5 x 3,5 mm. As permissividades usadas para o espaço entre os bastões e
para os bastões foram εr = 1 e εr = 11,56, respectivamente. Apenas 15 linhas e 23 colunas de
bastões do guia de onda foram representadas.
a) Fonte de Excitação:
Uma fonte de onda plana puramente senoidal (formada por uma única componente de
freqüência) de amplitude unitária serviu como excitação para este guia. Assim, a excitação
neste caso foi definida por:
)2cos()( fttf π= (4.13)
A freqüência f dessa fonte foi ajustada para o valor fw. É possível definir-se essa
freqüência, para a estrutura mostrada em [2], a partir do espectro de intensidade do sinal
transmitido visto em [2] e reproduzido na Figura 4.12.
Figura 4.12: Espectro da intensidade do sinal transmitido na estrutura mostrada em [2].
51
De acordo com a Figura 4.12, o valor dessa freqüência, normalizada por (c/a), é de
aproximadamente 0,3695. Logo, a freqüência da excitação senoidal será, para este caso:
3695,0)/(
=ac
f w
( )acf w ⋅= 3695,0 ≅ 11,085 GHz (4.14)
onde c é a velocidade da luz no vácuo e a é a constante de rede da estrutura periódica.
Apesar da estrutura usada no guia ter sido ligeiramente modificada em relação à
estrutura de [2], o confinamento da onda se deu na faixa de transmissão máxima deste canal.
4.3.2) Implementação Numérica:
Na implementação computacional do problema, deve-se levar em conta que o domínio
FD-TD de análise é discreto. Assim, as equações (4.13) e (4.14) foram discretizadas.
).2cos()( tnfnf w ∆= π (4.15)
∆⋅= xacf
fw .3695,0 (4.16)
onde af é a quantidade de células da constante de rede no domínio discreto.
Essas equações são úteis para definir a fonte de excitação no código computacional.
Outro detalhe importante é o posicionamento desta fonte. Ela deve ser colocada no começo do
canal do guia (canto superior esquerdo), preferencialmente a uma distância mínima de um
comprimento de onda da UPML, para garantir que a frente de onda chegue da forma mais
plana possível a fronteira da camada absorvente. Com isso, a coordenada i da fonte pode ser
definida por:
∆+= xii wλ
0 ⇒
∆+=
wfxcii .0
+= 3695,00
faii (4.17)
A coordenada j varia na largura do canal do guia e deve ser definida de acordo com as
dimensões da malha.
52
a) Serial:
Neste caso, os tamanhos dos incrementos foram ∆x = ∆y = 0,500mm. Isso implicou
em bastões com seção transversal de 7 x 7 células e, a partir de (4.12), uma constante de rede
aproximada por 20 células. Com esses valores definidos, as dimensões do domínio numérico
foram determinadas em 473 x 313, com a primeira linha e a primeira coluna de bastões sendo
escritas nas posições j = 13 e i = 13. Para este caso, a fonte foi colocada na posição i = 66 e
200 < j < 233. O domínio numérico está representado na Figura 4.13.
473
313
1 io i1
jo
j1
Pulso de excitação
UPM
L
UPML
UPM
L
UPML
PEC
Figura 4.13: Análise do domínio numérico do problema do guia de onda, para processamento seqüencial.
b) Paralelo:
Neste caso, o domínio de análise foi dividido para processamento paralelo entre 8
máquinas. Para demonstrar o poder e a eficiência do processamento paralelo, a malha do
problema foi bastante refinada. Assim, os incrementos foram ajustados para ∆x = ∆y =
0,0555mm. Isso gerou bastões com seção transversal de 64 x 64 células e, de (4.12), uma
constante de rede de 180 células. Com esses valores definidos, as dimensões totais da malha
foram 4072 x 2632 células. Cada uma das máquinas ficou responsável por um subdomínio do
domínio, definido em 1018 x 1316 células, com a primeira linha e a primeira coluna de
bastões sendo escritas nas posições j = 24 e i = 24, respectivamente. A fonte de excitação de
onda plana foi colocada nas coordenadas i = 500 e 392 < j < 688.
53
É importante salientar que para o correto cálculo dos campos em todo o domínio, cada
máquina envolvida neste processo dependerá de valores de componentes de campo calculadas
em máquinas vizinhas. Assim, estas máquinas, dentro da análise numérica do problema,
deverão trocar “mensagens” entre si informando esses valores quando requisitadas. Para
melhor entendimento da divisão do domínio de análise, na Figura 4.14, pode-se ver o domínio
dividido entre 8 máquinas e a passagem das componentes de campo que serão necessárias
entre elas para o modo de propagação TMz.
4072
2632
1 io i1
jo
j1
Pulso de excitação
UPM
L
UPML
UPM
L
UPML
PEC
Máquina 4 Máquina 5 Máquina 6 Máquina 7
Máquina 0 Máquina 1 Máquina 2 Máquina 3
1018 2036 3054
1316 Hx
Ez
Hx
Ez
Hx
Ez
Hx
Ez
Hy
Ez
Hy
Ez
Hy
Ez
Hy
Ez
Hy
Ez
Hy
Ez
Figura 4.14: Divisão do domínio numérico para processamento paralelo e passagens de campos necessár ias entre as máquinas.
Melhores esclarecimentos a respeito dessa técnica de processamento paralelo e suas
sintaxes de programação são dados em [9].
4.3.3) Resultados:
a) Seriais:
Para este caso, foram obtidas as distribuições da componente Ez de campo elétrico em
diversos instantes de tempo (Figuras 4.15-4.18). As imagens aqui exibidas foram geradas
através do software Matlab 5.3. O número de iterações suficiente para a onda preencher todo
o guia foi de 2300 instantes de tempo.
54
Figura 4.15: Distr ibuição de campo após 600 iterações. A cor vermelha representa o máximo positivo e a cor a azul escura o máximo negativo.
Figura 4.16: Distr ibuição de campo após 1600 iterações. Apesar das curvas de 90o, o confinamento se mantém.
Figura 4.17: Distr ibuição de campo após 2500 iterações.
55
Figura 4.18: Plotagem 2,5D da onda confinada no guia após 2500 iterações. A ampli tude do campo é quase a mesma no começo e no fim do guia, ou seja, a onda é guiada com poucas perdas.
Nesta simulação, pôde-se perceber os efeitos de reflexão, difração e refração na onda
ao chocar-se com a estrutura PBG, além do efeito de absorção da UPML simulando o infinito,
como se fosse uma câmara anecóica computacional. O tempo de execução deste código foi t =
158s. Com essas imagens foi gerado um vídeo mostrando a evolução da onda no tempo.
b) Paralelos:
Neste caso, também foram obtidas as distribuições de campo elétrico em diferentes
instantes. Os resultados foram idênticos àqueles obtidos por processamento serial, porque este
problema não requer, para se obter resultados satisfatórios, um nível de detalhamento maior
que o conseguido através do sistema seqüencial. As imagens (Figuras 4.19-4.21) foram
geradas com o software Matlab 5.3, através da junção das saídas das 8 máquinas numa
imagem única.
Figura 4.19: Distr ibuição de campo após 150 iterações.
56
Figura 4.20: Distr ibuição de campo passadas 1500 iterações.
Figura 4.21: Distr ibuição após 2500 iterações.
O tempo de execução deste código foi t = 183s. Como o domínio numérico foi
aumentado, um comparativo de desempenho, usando-se um parâmetro como o speedup
[9,11], por exemplo, não descreveria o verdadeiro ganho de processamento desse sistema.
Mas, a grande quantidade de memória exigida por este domínio numérico, tornava-o
impossível de ser executado em um dos sistemas seqüenciais disponíveis. Tal tarefa, só foi
possível graças a grande capacidade de armazenamento e processamento de dados do cluster.
O processamento paralelo é ferramenta fundamental para simular problemas que
precisam de um grande refinamento de malha. Neste caso, pôde-se constatar que o grande
poder de processamento e armazenamento do cluster, são essenciais para as tarefas de
simulações numéricas, pois proporcionam a possibili dade de uma melhor precisão à
aproximação numérica.
57
Referências Bibliográficas
[1] J. F. S. de Almeida, “Análise fotônica em estruturas planares usando o método FD-TD com processamento paralelo” , Proposta de Tese para Quali ficação ao Doutorado, Programa de Pós-graduação em Engenharia Elétrica, Universidade Federal do Pará, 2004.
[2] S. Fan, P. R. Vill eneuve, e J. D. Joannopoulos, “Channel drop tunneling through localized states” , Phys. Rev. Letters, vol. 80, no. 5, pp. 960-963, 1998.
[3] S. Fan, P. R. Vill eneuve, e J. D. Joannopoulos, “Channel drop filters in photonic crystals” , Optics Express, vol. 3, no. 1, pp. 4-11, 1998.
[4] J. D. Joannopoulous, R.D. Meade e J. N. Winn, Photonic crystals: molding the flow of light, 1ª Edição, Princeton Univ. Press, 1995.
[5] R. Samudrala, “Linux cluster howto” , www.ram.org/computing/linux/linux/cluster/, 2003.
[6] A. D. Bueno, “ Introdução ao processamento paralelo e ao uso de clusters de workstations em sistemas gnu/linux parte I: filosofia”, Laboratório de Meios Porosos e Propriedades Termofísicas,Universidade Federal de Santa Catarina, 2002.
[7] J. Rocha, “Cluster Beowulf, Aspectos de Projeto e Implementação”, Dissertação de Mestrado, Programa de Pós-graduação em Engenharia Elétrica, Universidade Federal do Pará, 2003.
[8] Website: www.redhat.com
[9] Josivaldo Araújo, “Análise de antenas em 2-D utili zando o método das diferenças finitas no domínio do tempo com processamento paralelo” , Tese de Mestrado, Programa de Pós-graduação em Engenharia Elétrica, Universidade Federal do Pará, 2003.
[10] A. D. Sedra, e K. C. Smith, Microeletrônica, 4ª edição, Makron Books, pp. 829-836, 2000.
[11] R. M. S. Oliveira, “Método FD-TD aplicado na análise da propagação eletromagnética em ambientes indoor e outdoor” , Trabalho de Conclusão de Curso, Departamento de Engenharia Elétrica e da Computação, Universidade Federal do Pará, pp. 4-21, 2003.
58
CAPÍTULO 5: Conclusões
A análise da propagação eletromagnética em estruturas periódicas através do método
FD-TD, mostrou ser bastante eficaz e robusta. Apesar de todas as aproximações que os
métodos numéricos carregam em si, por sua própria natureza discretizante, a criti cidade dos
band gaps das estruturas PBG aqui simuladas, principalmente aquela usada no guia PBG,
demonstrou a boa precisão da solução alcançada pela técnica FD-TD. Apesar de sua relativa
praticidade e simplicidade de implementação computacional, a técnica simula todos os
fenômenos que ocorrem na propagação da onda eletromagnética, gerando uma solução de
onda completa. Isso ocorre, simplesmente, porque o método FD-TD baseia-se na
discretização das equações rotacionais de Maxwell no domínio do tempo, onde os fenômenos
de reflexão, difração e refração estão, inerentemente, embutidos.
Porém, no caso deste trabalho em particular, de nada adiantaria toda a robustez desse
método se ele não pudesse ser aplicado a problemas abertos. E isso só foi possível graças, as
ABCs desenvolvidas para truncar artificialmente problemas dessa natureza, principalmente e
em particular, à técnica da UPML: uma ABC tão eficiente, robusta e precisa quanto o método
de Yee. Baseada na idéia do efeito de um domínio infinito, a UPML tornou possível a
simulação de problemas abertos antes impraticáveis. Não fosse esta técnica, as simulações
aqui realizadas, não teriam os mesmos resultados ou não poderiam ser realizadas em sistemas
computacionais seqüenciais comuns. A técnica da UPML, utili zada em conjunto com o
método FD-TD, provou sua eficiência, absorvendo a onda sem gerar reflexões espúrias de
grande magnitude, que poderiam influenciar no resultado do confinamento da onda no guia e
nos band gaps dos arranjos do filt ro.
Para expandir a utili zação destas técnicas, uma ferramenta de grande utili dade em
simulações computacionais, não só em problemas de propagação eletromagnética como
também em outras áreas da ciência, são os sistemas de processamento paralelo, como o
cluster Beowulf disponível no LANE – Laboratório de Análise Numérica em
Eletromagnetismo da Universidade Federal do Pará. Com sistemas assim, problemas que
exigem grande capacidade de memória computacional podem ser simulados. Este tipo de
sistema de processamento paralelo tem se popularizado por utili zar computadores pessoais
comuns ligados em rede, que se baseiam em sistemas operacionais e bibliotecas de
comunicação gratuitas. Como se pode deduzir, um cluster Beowulf é uma solução
59
relativamente barata se comparado a sistemas de processamento massivos proprietários, mas
nem por isso menos eficiente.
Por outro lado, como uma das mais promissoras áreas de pesquisa (pela própria
crescente demanda por sistemas de comunicação de alta velocidade), os dispositivos ópticos
formados por estruturas periódicas dielétricas surgem como solução para o projeto de, por
exemplo, circuitos impressos ópticos, acopladores, filt ros, processadores ópticos e, até
mesmo, sistemas computacionais ópticos, muito mais rápidos que os atuais sistemas baseados
em circuitos de semicondutores.
Todos esses fatores, fazem da análise e do projeto de dispositivos de cristais fotônicos
alvos de grandes pesquisas. Os resultados aqui mostrados provam que isso é perfeitamente
viável. Além do mais, como ferramentas auxili ares ao trabalho da pesquisa, existe uma grande
diversidade de softwares gratuitos, como plataformas de desenvolvimento visual para
programação C/FORTRAN (Linux/gcc), compiladores (g77), plataformas MatCad (Octave,
SciLab), editores de filmes (VirtualDub), editores de texto (Open Off ice, LaTeX), só para
citar alguns, que podem auxili ar na edição e na compilação de códigos, na análise de dados,
na criação de vídeos, na edição de textos científicos, etc.
Entende-se, por fim, que análises do band gap de estruturas periódicas utili zando o
método FD-TD, poderiam ser realizadas em diferentes configurações de redes; simulações de
propagação eletromagnética com o método FD-TD, poderiam ser aplicadas a outras estruturas
e os resultados, então, comparados com aqueles obtidos através do método das Diferenças
Finitas no Domínio da Freqüência (FD-FD), como forma de validação dos band gaps; outras
configurações do filt ro, como duas linhas colocadas lado a lado sobre o substrato de PBG
poderiam ser avaliadas. Outra linha de estudo e pesquisa poderia ser o projeto e a
implementação de cristais fotônicos, por meio de técnicas de otimização como, por exemplo,
algoritmos genéticos.
60
APÊNDICE A: Programação em FORTRAN
A linguagem de programação FORTRAN (corruptela de FORmula TRANslation) foi
desenvolvida por um grupo de programadores da IBM, com o primeiro compilador sendo
criado para um computador IBM 704, em 1956, otimizada para trabalhar no desenvolvimento
de códigos para aplicações científicas. Em 1958, a versão FORTRAN II foi lançada após a
correção de diversos erros da versão I. Em 1963, a linguagem passou a ser usada em
computadores de diferentes arquiteturas. A versão III não foi li berada para uso público, pois
dependia grandemente de recursos de máquina o que inviabili zava seu uso. Em 1966, foi
liberada a FORTRAN IV com duas versões padronizadas: a “Basic FORTRAN” e a
“FORTRAN”, dando origem ao padrão FORTRAN 66. No ano de 1977, após grandes
reformulações, surge a versão FORTRAN77 reconhecida como padrão em 1978 pela ANSI
(American National Standard Institute) e pela ISO (International Standard Organization). A
seguinte implementação ocorreu em 1991, com o lançamento da FORTRAN 90 (reconhecido
sob as normas ANSI e ISO), que foi ampliada em 1997 gerando a versão FORTRAN 95, em
conformidade com as normas ANSI e ISO. Em novembro de 2001, foi apresentada a versão
FORTRAN 2000 e já se comentava o lançamento da versão FORTRAN 2002.
Existem diversos compiladores modernos para FORTRAN, entre eles pode-se
destacar: Visual Fortran (Compaq/Hewlett Packard), Lahey/Fujtsu Fortran (Lahey Computer
Systems, Inc.), Intel Fortran (Intel Corporation), Fortran Power Station (Microsoft), G77
(compilador com licença GNU para diversos sistemas), etc. Os códigos para simulação de
propagação de ondas em estruturas periódicas utili zados neste trabalho foram escritos em
conformidade com as linguagens Fortran 77 e Fortran 90. A versão 77 é ainda muito usada
(com grande variedade de ferramentas, inclusive compiladores distribuídos em regime
freeware, como o G77), sendo a que melhor proporciona a visão técnica de escrever códigos
de forma estruturada.
Para uma melhor compreensão deste Apêndice observe exemplos das explicações, no
código-fonte exemplo mostrado na Figura A.2.
A.1) Fundamentos sobre a L inguagem de Programação FORTRAN
Em FORTRAN existem basicamente duas formas de se escrever um código: com
formulário fixo (‘ fixed form’) ou com formulário li vre (‘ free form’) . Este segundo é possível
apenas com os compiladores mais novos que suportam a programação em FORTRAN 90 (por
61
exemplo, Microsoft Developer Studio – Fortran Power Station). Outro ponto importante é que
existem comandos válidos somente para estes novos compiladores. Algumas versões dos
complil adores baseados em FORTRAN 77 aceitam funções ou comandos criados
posteriormente a essa versão (o G77, por exemplo), mas não aceitam todas as inovações dos
compiladores de FORTRAN 90.
A formatação dos códigos em FORTRAN 77 segue um estilo diferente dos usados na
maioria das linguagens de programação. Desta forma, os seguintes critérios devem ser
seguidos para se escrever um programa no modo de formulário fixo (Figura A.1):
9�Colunas 1 a 5: são usadas para escrever os rótulos ou índices de linhas, que devem ser
números inteiros não repetidos em ordem aleatória, e utili zados pelos comandos como
referência às mesmas;
9�Coluna 6: qualquer caractere diferente de 0 “zero” nesta coluna, indica continuação da
linha anterior ou da última linha que não seja um comentário. Um comando pode
dividir-se em 19 linhas, podendo haver, entre essas, linhas em branco ou comentários;
9�Colunas 7 a 72: comandos ou comentários;
9�Colunas 73 a 80: campos de identificação usados pelo compilador; não se deve
escrever nestas colunas.
C FOR Å COMMENT
STATEMENT NUMBER
CO
NT
INU
AT
ION
FORTRAN STATEMENT IDENTIFICATION
1 5 6 7 73 80
Figura A.16: Modelo de formulár io para código estruturado do FORTRAN 77.
No FORTRAN 90, o programa pode ser escrito em qualquer posição se o modo
formulário li vre estiver ativado1. Alguns pontos devem ser observados para este formato:
1 Cada compilador possui sua configuração padrão particular. Portanto, é obrigação do programador identificar se este modo está ativado ou, dependendo do caso, aprender como ativa-lo, nos próprios manuais do compilador.
62
9�As linhas de continuação podem ser indicadas pelo símbolo ‘&’ no fim da sentença e a
linha abaixo, que não seja um comentário, será tomada como tal. Deve-se deixar um
espaço entre os comandos e o símbolo de continuação e é permitida a inserção de
comentários após o símbolo ‘&’ ;
9�Os rótulos devem ser os primeiros caracteres da linha e podem estar em qualquer
coluna.
Na Tabela A.1, são mostrados alguns conceitos gerais importantes para a construção
de programas nesta linguagem.
CONCEITO EXPLICAÇÃO
Comentár ios
Não são interpretados pelo computador. São importantes para tornar o código mais explicativo para uma análise posterior. Em FORTRAN a letra ‘c’ ou o caractere ‘ * ’ na primeira coluna indica que toda a linha é um comentário. Alguns compiladores aceitam o uso de qualquer caractere diferente de números para iniciar a linha de comentário. Numa linha de comentário, é permitido o uso de qualquer caractere, especial ou não.
Var iáveis e Nomes de Blocos
Devem ter no máximo seis letras, não é permitido o uso de caracteres especiais e não podem começar com um número.
Caracteres Maiúsculas e Minúsculas
O FORTRAN não é ‘case sensitive’ , isto é, não faz qualquer distinção entre letras maiúsculas e minúsculas.
Nome do programa
Os programas devem conter um nome na primeira linha do início, após a instrução program (program nome_do _programa), e devem terminar com a instrução end ou end program.
Tabela A.14: Alguns conceitos básicos para iniciantes em FORTRAN.
A.1.1) Tipos de Dados:
Todo dado processado por um computador é armazenado internamente na forma de
dígitos binários, ou bits, para ser processado e transformado em informações que sejam úteis
para os seus usuários. Os tipos de dados básicos tratáveis por FORTRAN são os literais, os
numéricos e os lógicos. Os dados numéricos podem ser inteiros, reais e complexos, com
precisão simples ou dupla; os alfabéticos são caracteres simples ou em cadeia (string); e os
dados lógicos (booleanos) assumem valores verdadeiro ou falso.
a) Numéricos:
Contêm quaisquer valores reais, inteiros ou complexos. A parte decimal é separada da
parte inteira por um ponto. Os zeros antes e depois do ponto decimal podem ser omitidos, se
63
não forem significantes. O expoente decimal é indicado pela letra ‘e’ ou ‘E’ e deve vir entre o
número e seu expoente sem o uso de espaços entre eles. Números negativos assim como a
parte exponencial quando for negativa deve vir precedida do sinal menos ‘- ’ e o sinal ‘+’ é
opcional. Os números imaginários devem vir entre parênteses e a parte real (primeiro número)
deve ser separada, por uma vírgula, da parte imaginária (Ver Figura A.2).
• Tipo Inteiro: são os dados numéricos positivos ou negativos, excluindo-se qualquer
número fracionário, identificados pelos comandos ‘BYTE’ e ‘ INTEGER’ . A faixa numérica
estabelecida por cada comando pode ser observada pela Tabela A.2. O comando ‘ INTEGER’
tem sua faixa modificada de acordo com o processador utili zado e o tipo de dado inteiro pode
ainda ser definido como ‘ INTEGER*1’ , ‘ INTEGER*2’ , ‘ INTEGER*4’ e ‘ INTEGER*8’ .
TIPO FAIXA Byte ou integer*1 -127 a 128
Integer*2 (processador de 16 bits) -32.768 a 32.767 Integer*4 (processador de 32 bits) -2.147.483.648 a 2.147.483.647
Integer*8 -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
Tabela A.15: Faixa de valor numérico para o tipo inteiro.
• Tipo Real: são os dados numéricos positivos, negativos, fracionários e inteiros,
identificados pelos comandos ‘REAL ’ . O Comando ‘REAL ’ estabelece como padrão, valores
numéricos de 4 bytes com até seis casas decimais significativas e ainda pode ser definido
como ‘REAL*4’ e ‘REAL*8’ (Tabela A.3).
TIPO FAIXA Real*4 Valores de 4 bytes com até 7 casas decimais significativas Real*8 Valores de 8 bytes com até 15 casas decimais signifi cativas
Tabela A.16: Tamanho de palavra para dados do tipo real.
• Tipo Complexo: o comando ‘COMPLEX’ ou ‘COMPLEX*8’ , valor complexo de
precisão simples, estabelece como padrão valores numéricos de 8 bytes com até seis casas
decimais significativas e ‘COMPLEX*16’ , precisão dupla, valores com 16 bytes com até 15
casas decimais significativas (Tabela A.4).
TIPO FAIXA Complex*8 Valores de 8 bytes com até 6 casas decimais significativas Complex*16 Valores de 16 bytes com até 15 casas decimais signifi cativas
Tabela A.17: Tamanho de palavra para dados do tipo complexo.
64
b) L iterais:
Podem ser simples ou qualquer seqüência (string) de caracteres não especiais. Devem
vir entre aspas (“ ” ) ou apóstrofos (‘ ’) , sendo que as aspas tem preferência sobre os
apóstrofos, portanto, um valor literal pode conter apóstrofos desde que seu valor venha entre
aspas. Não é permitido o uso de caracteres especiais e letras acentuadas.
O tipo literal é identificado pelo comando ‘CHARACTER’ , o qual estabelece o uso
de um caractere apenas. Caso se necessite definir uma string, utili za-se a instrução
‘CHARACTER*n’ , em que n representa o número de caracteres a ser utili zado. Por
exemplo, imagine a definição de um tipo caractere para manipular a string ‘CURSO’. Nesse
caso deveria se utili zar o comando ‘CHARACTER*5’ .
c) Lógicos:
O dado booleano pode assumir apenas dois valores: TRUE (verdadeiro) ou FALSE
(Falso). O falso é representado pelo valor 0 (zero) e o verdadeiro é representado por qualquer
outro valor. O tipo lógico é definido por intermédio do comando ‘LOGICAL ’ .
A.1.2) Var iáveis e Constantes:
Em programação, variável tem por finalidade armazenar temporariamente informações
(dados), um valor por vez. O nome de uma variável é utili zado para sua identificação dentro
do programa, portanto é necessário estabelecê-lo para que a variável possa ser manipulada no
código. Deve-se determinar, também, o tipo desta variável para que o sistema possa alocar a
memória de acordo com as necessidades da mesma.
As constantes são alocações de memórias com atribuições que não variam no decorrer
do programa, ou seja, uma vez determinado o valor de uma constante, ele permanecerá o
mesmo independente das manipulações que houverem no programa, até o fim do seu
processamento. As constantes, também, precisam ter seus nomes declarados, assim como o
seu tipo determinado.
a) Declaração de Var iáveis e Constantes:
As variáveis e constantes podem ser inteiras, reais ou literais. A declaração de uma
variável ou constante deve vir antes que ela seja usada, se isto não ocorrer o compilador
assumirá que as variáveis que começam com as letras i até n são inteiras (INTEGER*4) e
todas as outras são reais (REAL*4).
65
Esta forma de declaração implícita pode ser modificada usando-se o comando
‘ implicit tipo (a1-a2,b1-b2,...)’ sendo a1, a2, b1, b2 quaisquer letras do alfabeto. A vírgula
separa os intervalos de letras e o sinal “ -” determina o intervalo. As letras que não estiverem
em nenhum dos intervalos terá o seu tipo dado pela declaração explícita ou pelo padrão. O
comando “ implicit TIPO1 (a, b, c, r-z)” indica que as variáveis começando com as letras a, b,
c e r até z são do tipo TIPO1.
Os espaços são usados para dar clareza e são ignorados pelo compilador. Quando se
deseja que nenhuma variável seja declarada implicitamente usa-se o comando ‘ implicit
none’ . Se este comando for usado e uma variável citada no programa não tiver sido declarada,
o complil ador acusará um erro.
Para se declarar variáveis que sejam matrizes e vetores deve-se indicar suas
dimensões, logo após o nome da variável, entre parênteses e separadas umas das outras por
vírgula. Por exemplo, a(4,3) indica uma matriz ‘a’ de 4 linhas por 3 colunas. Os valores dos
elementos de cada linha devem ser atribuídos através de um laço de repetição (do...enddo).
A.1.3) Operadores:
a) Operadores Ar itméticos:
Realizam operações aritméticas nos cálculos matemáticos. A Tabela A.5 apresenta um
resumo dos operadores aritméticos utili zados na linguagem FORTRAN.
OPERADOR OPERAÇÃO TIPO PRIORIDADE ** Exponenciação Binário 1 * Multipli cação Binário 2 / Divisão Binário 2 + Adição Binário 3 - Subtração Binário 3
Tabela A.18: Operadores ar itméticos utili zados na linguagem FORTRAN.
b) Operadores Relacionais:
Comparam variáveis, constantes ou expressões e retornam ‘ .TRUE.’ , ‘T’ ou ‘1’ se a
comparação for verdadeira e ‘ .FALSE.’ , ‘F’ ou ‘0’ se a comparação for falsa (Tabela A.6).
F77 F90 MATEMÁTICA TRADICIONAL SIGNIFICADO lt < < Menor que le <= ≤ Menor ou igual que eq = = = Igual a ne /= ≠ Diferente de gt > > Maior que ge >= ≥ Maior ou igual que
Tabela A.19: Operadores relacionais utili zados na linguagem FORTRAN.
66
c) Operadores Lógicos:
São usados quando há necessidade de mais de uma condição relacional ou quando é
preciso inverter seu resultado (Tabela A.7).
OPERADOR SIGNIFICADO and Junção – verdadeiro se os dois operadores forem verdadeiros or Disjunção – verdadeiro se um dos dois operadores forem verdadeiro not Negação – verdadeiro se o operador for falso
neqv ou xor Desigualdade Lógica – verdadeiro se somente um dos operadores for verdadeiro eqv Igualdade Lógica – verdadeiro se os dois operadores forem falsos ou verdadeiros
Tabela A.20: Operadores lógicos utili zados na linguagem FORTRAN.
A.1.4) Funções Intr ínsecas:
Existem várias funções predefinidas em FORTRAN, que podem ser usadas em
qualquer parte do programa (Tabela A.8-A.9).
• Funções Tr igonométr icas
NOME DEFINIÇÃO PARÂMETRO RESULTADO
sin (x) Seno (radianos). se x for complexo, a parte real é assumida como valor em radianos.
real ou complexo. real*4
sind (x) Seno (graus se x for complexo, a parte real é assumida como valor em graus.
real ou complexo real*4
cs in (x) Seno (radianos) complex*4 complex*4 cdsin (x) Seno (radianos) complex*8 complex*8 dsin (x) Seno (radianos) real*8 real*8 cs ind (x) Seno (graus) real*8 real*8
asin (x) Arcoseno (radianos). Retorna valores na faixa [-1/2,1/2 ]
real, |x| .le. 1 real*4
asind (x) Arcoseno (graus) retorna valores na faixa [-90, 90 ]
real |x| .le. 1 real*4
dasin (x) Arcoseno (radianos). Retorna valores na faixa [-1/2,1/2 ]
real*8 real*8
dasind (x) Arcoseno (graus) retorna valores na faixa [-90, 90 ]
real*8 real*8
cos (x) Coseno (radianos) se x for complexo, a parte real é assumida como valor em radianos.
real ou complexo real*4
cosd (x) Coseno (graus) se x for complexo, a parte real é assumida como valor em graus.
real ou complexo real*4
ccos (x) Coseno (radianos) complex*4 complex*4 cdcos (x) Coseno (radianos) complex*8 complex*8 dcos (x) Coseno (radianos) real*8 real*8
dcosd (x) Coseno (graus) real*8 real*8
acos (x) Arcocoseno (radianos). Retorna valores na faixa [0, π]
real, |x| .le. 1 real*4
acosd (x) Arcocoseno (graus). Retorna valores na faixa [0, 180]
real, |x| .le. 1 real*4
dacos (x) Arcocoseno (radianos). Retorna valores na faixa [0,π]
real*8, |x| .le. 1 real*8
dacosd (x) Arcocoseno (graus). Retorna valores na faixa [0, 180]
real*8, |x| .le. 1 real*8
tan (x) Tangente (radianos) real real*4 tand (x) Tangente (graus) real real*4
67
dtan (x) Tangente (radianos) real*8 real*8 dtand (x) Tangente (graus) real*8 real*8 cotan (x) Cotangente (radianos) real. x não pode ser 0. real*4
dcotan (x) Cotangente (radianos) real*8. x não pode ser 0.
real*8
atan (x) Arcotangente (radianos). Retorna valores na faixa [-π/2,π/2]
real real*4
atand (x) Arcotangente (graus). Retorna valores na faixa [-90,90]
real real*4
datan (x) Arcotangente (radianos). Retorna valores na faixa [-π/2, π/2]
real*8 real*8
datand (x) Arcotangente (graus). Retorna valores na faixa [-90,90]
real*8 real*8
atan2 (y,x) Arcotangente (y / x) em radianos. Retorna valores na faixa [-π,π]
real. x e y não podem ambos ser 0.
real*4
atan2d(y,x) Arcotangente (y / x) em graus. retorna valores na faixa [-180, 180]
real. x e não podem ambos ser 0.
real*4
datan2(y,x) Arcotangente (y / x) em radianos. Retorna valores na faixa [-π,π]
real*8 x e y não podem ambos ser 0.
real*8
datan2d(y,x) Arcotangente (y / x) em graus. Retorna valores na faixa [-180, 180]
real*8 x e y não podem ambos ser 0.
real*8
sinh (x) Seno hiperbólico (radianos) real real*4 dsinh (x) Seno hiperbólico (radianos) real*8 real*8 cosh (x) Coseno hiperbólico (radianos) real real*4
dcosh (x) Coseno hiperbólico (radianos) real*8 real*8 Tanh (x) Tangente hiperbólica (radianos) real real*4 dtanh (x) Tangente hiperbólica (radianos) real*8 real*8
Tabela A.21: Algumas funções tr igonométr icas utili zadas na linguagem FORTRAN.
• Funções Diversas:
NOME DEFINIÇÃO TIPO DE ARGUMENTO
TIPO DE FUNÇÃO
alog10(x) Logaritmo de x na base 10 real real alog(x) Logaritmo neperiano de x (x > 0) real real
exp(x) O número e (base dos logaritmos neperianos) elevado a x
real real
abs(x) Valor absoluto de x real real iabs(x) Valor absoluto de x inteiro inteiro ifix(x) Logaritmo de x na base 10 real real
float(x) Conversão de inteiro para real inteiro real
dble(x) Converte para dupla precisão real real (dupla precisão)
cmplx(x) Converte para o tipo complexo real complexo
sign(x,y) Fornece valor positi vo de x se y ≥ 0 e negativo de x se y < 0
real real
mod(x,y) Resto da divisão de x por y inteiro inteiro amod(x,y) Resto da divisão de x por y real real
sqr t(x) Raiz quadrada de x (x ≥ 0) real real
Tabela A.22: Funções diversas utili zadas na linguagem FORTRAN.
A.1.5) Funções e Sub-rotinas:
�� Funções e sub-rotinas podem ser usadas para economizar espaço e tempo de
programação, já que podem ser usadas várias vezes num mesmo programa. Outro ponto
68
importante é que elas podem dar ao programa maior clareza, pois várias seqüências de
cálculos ou execuções podem vir separadas do restante dos comandos.
O que dá grande versatili dade às funções e sub-rotinas, são os argumentos passados a
elas, que quando variam produzem resultados diferentes. As funções e sub-rotinas podem vir
em qualquer parte do programa, mas o mais comum é que apareçam no fim (após a declaração
‘end program’) , por motivo de clareza. As variáveis e rótulos usados nelas são locais e por
isso devem ser declarados novamente, podendo ser usados os mesmos nomes de variáveis e
rótulos de outras funções e sub-rotinas, ou mesmo do programa principal. Os parâmetros
necessários devem ser passados junto com a chamada da mesma e vir entre parênteses e
separados por vírgula. Os nomes das variáveis não precisam ser os mesmos na chamada e na
definição de uma função ou sub-rotina, devendo apenas estar na mesma ordem.
a) Funções:
Retornam sempre um valor e a ela podem ser passados quaisquer números de
parâmetros. As funções funcionam de forma semelhante às funções intrínsecas, com a
diferença de que agora é o programador que define o que a função deve gerar como resultado.
O tipo da função deve ser declarado no programa principal, como se fosse uma variável
comum. Uma função pode utili zar outras funções.
Chamada: nome_da_função (lista_de_parâmetros)
Definição: function nome_da_função (lista_de_parâmetros)
“definição e declaração das variáveis e
constantes locais”
“seqüência de comandos”
return
end
A palavra chave ‘ return’ é opcional, podendo aparecer em qualquer ponto e mais de
uma vez. Ela indica que o comando deve retornar ao programa principal, ou à função, ou à
sub-rotina que o chamou. A função retornará o valor do último comando do tipo
nome_da_função = expressão.
b) Sub-rotina:
Não retornam nenhum valor e também a elas podem ser passados quaisquer números
como parâmetros e inclusive valor nulo. As sub-rotinas podem conter quaisquer tipos de
69
comandos como imprimir resultados, abrir arquivos ou executar cálculos. Como ocorrem com
as funções, as sub-rotinas podem ‘chamar’ outras sub-rotinas ou funções.
Chamada: call nome_da_subrotina (lista_de_parâmetros)
Definição: subroutine nome_da_subrotina (lista_de_parâmetros)
“definição e declaração das variáveis e
constantes locais”
“seqüência de comandos”
return
end
A palavra chave ‘ return’ é opcional.
A.1.6) Comandos de Entrada e Saída:
Além de conhecer a estrutura de um programa escrito em linguagem de programação
FORTRAN, os conceitos de variável e constante e de saber utili zar os operadores, é
necessário conhecer a forma como os comandos de entrada e saída operam na linguagem.
É com os comandos de entrada e de saída que as operações de acesso ao teclado e
vídeo podem ser efetuadas. Assim sendo, é possível efetuar entrada de dados com o comando
READ e saída de dados com o comando WRITE para todas as operações realizadas por um
programa. As operações de entrada e saída rodam em conjunto com o comando FORMAT.
a) Comando FORMAT:
Permite estabelecer a forma como uma entrada ou saída de dados de um programa será
realizada. Este comando possui a sintaxe:
<rótulo> format <lista>
em que <rótulo> é o rótulo da linha e <lista> é a definição dos comandos de formatação a
serem utili zados, como por exemplo:
10 format (2x,a,I) ! imprime 2 espaços em branco, uma string ! e um valor inteiro �
Existem muitos comandos de formatos em FORTRAN, alguns deles podem ser
encontrados na Tabela A.10 ou em [1].
VERSÃO FORMATO USO F77 iw[ .m] Valores Inteiros F77 fw.d Valores Reais F77 ew.d[Ee] Valores Reais com expoente
70
F77 lw Valores Lógicos F77 a[w] Seqüência de Caracteres F77 gw.d[Ee] Mesmo que iw[ .m] , ew.d[Ee] , lw e a[w] F77 dw.d Valores Reais de Dupla Precisão G77 zw_hexedit Valores Hexadecimais F90 bw[ .m] Valores Binários F90 ow[ .m] Valores Octadecimais F90 enw.d[Ee] Valores Reais em Notação de Engenharia F90 esw.d[Ee] Valores Reais em Notação Cientifi ca
Tabela A.23: Sintaxe para formatação de alguns tipos de dados e seus significados.
Onde ‘w’ representa o tamanho do campo a ser impresso ou lido, ‘m’ representa o
número de zeros que virá antes do número, ‘d’ o número de casas decimais e ‘e’ o número de
casas para o expoente. O ponto decimal, o ‘e’ do expoente e o sinal ‘- ’ devem ser contados ao
se dar o tamanho do campo (‘w’) . Ao ler um dado que não possui ponto decimal e no seu
formato é esperado algum, o compilador lerá este dado como se lá houvesse um ponto.
Nas notações com expoente (enw.d[Ee], esw.d[Ee], ...) não se pode omitir o ‘E’ do
exponencial. Sempre que houver este termo, a parte exponencial vai existir independente do
seu valor. Por exemplo:
a = 12.345 b = 12345.789e6 write (*,1) a,b
1 format (‘ a=’,e10.4e3, ‘ e b=’,e10.4e3) Saída => a =.1235E+002 e b =.1235E+011
Outros comandos para a construção e formatos são mostrados na Tabela A.11.
VERSÃO FORMATO USO
F77 string Transmite uma string para a saída
F90 q A variável recebe o número de espaços que o valor ocupa F77 nh Transmite os próximos n caracteres para a saída F77 tc Move o ponto de leitura ou escrita para a posição c F77 tlc Move o ponto de leitura ou escrita c posições á esquerda F77 trc Move o ponto de leitura ou escrita c posições á direita F77 nx Deixa n posições em branco F77 sp Escreve o sinal ‘+’ onde ele é opcional F77 ss Omite o sinal ’+’ onde ele é opcional F77 s Retorna ou padrão ‘ss’ F77 / Muda de linha G77 \ Começa a escrever no ponto onde a ultima escrita parou G77 $ Começa a escrever no ponto onde a ultima escrita parou F77 : Termina a impressão se não houver mais itens na lista
71
F77 kp O número é multiplicado por 10 elevado à -k (se o número já possuir expoente não há efeito)
F77 bn Ignora os espaços em branco F77 bz Transforma os espaços em branco em zeros
Tabela A.24: Mais comandos para a construção de formatos.
Em FORTRAN 90, o formato pode vir dentro do comando read ou write, no local
onde deveria ser colocado o rótulo da linha da formatação e entre apóstrofos e parênteses:
‘(<lista>)’ . Se o compilador de FORTRAN77 utili zado for o G77 em sua versão mais atual,
então, esse recurso também estará disponível.
b) Comando READ:
Permite estabelecer a forma como uma entrada de dados de um programa será
realizada. Este comando possui a sintaxe:
read (<unidade> , <rótulo>) <variáveis>
em que <unidade> é a definição de um valor inteiro que identifica o dispositivo de entrada
em uso – normalmente os caracteres * (asterisco), o valor 5 (cinco) ou o valor 0 (zero) são
usados para representar a entrada via teclado –, <rótulo> é o rótulo da linha em que se
encontra a definição o comando FORMAT associado ao processo de formatação da entrada
de dados e <variáveis> é a definição da lista de variáveis que serão utili zadas para receber as
entradas de dados.
c) Comando WRITE:
O comando WRITE permite estabelecer a forma como uma saída de dados de um
programa será realizada. A estrutura desse comando é:
write (<unidade>, <rótulo>) <variáveis ou expressões aritméticas>
em que <unidade> é a definição de um valor inteiro que identifica o dispositivo de saída em
uso – normalmente utili zam-se os caracteres * (asterisco) ou o valor 0 (zero) para representar
a saída via monitor de vídeo –, <rótulo> é o rótulo da linha associada a formatação da saída
de dados e <variáveis ou expressões aritméticas> é a definição da lista de variáveis ou
expressões aritméticas que serão utili zadas na apresentação da saída de dados.
A.1.7) Arquivos:
Quando se deseja trabalhar com grandes quantidades de dados, o melhor é armazená-
los numa unidade de memória secundária, ou seja, em arquivos. Os dados salvos em arquivos
72
podem ser usados pelo próprio programa ou exportados para serem processados de outra
forma. Arquivos de leitura economizam um tempo precioso para o usuário do programa, pois
ele não vai precisar enviar dados via teclado e, com arquivos, milhares de dados podem ser
lidos em frações de segundos.
O primeiro passo para se usar arquivos em FORTRAN é indicar ao programa qual é o
nome do arquivo e o número da unidade referente a ele:
open (<unidade>,file = ‘nome.ext’ )
onde <unidade> deve ser um inteiro maior ou igual a zero e é uma referência a este arquivo.
Este número deve vir no comando read ou write, indicando que os dados serão retirados ou
armazenados nesta unidade. A abertura do arquivo pode ser feita em qualquer parte do
programa (inclusive dentro de funções e sub-rotinas), desde que venha antes de um comando
que o utili ze. No FORTRAN 90, o rótulo <unidade> pode ser uma string.
Quando não for utili zado o comando open, alguns compiladores emitirão uma
mensagem na tela pedindo um nome, podendo o usuário escolher um nome diferente a cada
vez que o programa for executado. Em outros compiladores serão dados nomes padrão como
fort.1, fort.2, etc para cada arquivo utili zado que não foi aberto. Todos os arquivos devem
estar ou serão criados no mesmo diretório em que estiver o programa a menos que se dê como
nome o caminho para um outro diretório. Esses caminhos seguem o mesmo padrão do DOS.
Um arquivo pode também ser fechado, isto fará com que o FORTRAN coloque uma
marca de fim de arquivo naquele ponto, esta marca pode ser identificada por outro comando
ou função:
close (unidade,status=’estado’ )
ou
endfile unidade
onde status=’estado’ é opcional. O status pode ser keep que mantém o arquivo na memória,
ou delete que apaga o arquivo da memória. Arquivos fechados podem ser reabertos em
qualquer parte do programa. Outros Recursos são:
rewind unidade ⇒ volta o controle de escrita à primeira linha do arquivo
backspace unidade ⇒ volta o controle de escrita uma linha do arquivo
A.2) Estruturas de Programação:
Os códigos em FORTRAN podem possuir diversas estruturas que modificam sua
forma de execução. Abaixo, destaca-se a sintaxe de algumas bastante usadas na concepção de
programas.
73
A.2.1) Estrutura Condicional:
a) Estrutura Condicional Simples:
if ( expressão de teste ) <comando> ou if ( expressão de teste ) then <seqüência de comandos> end if
b) Estrutura Condicional Composta:
if ( expressão de teste ) then <seqüência de comandos 1> else <seqüência de comandos 2> end if
c) Estrutura Condicional Composta Simpli ficada:
Outra forma de criar uma estrutura condicional composta, aceita por compiladores
FORTRAN 77 mais novos (como do G77), e FORTRAN 90. Esta estrutura testa o valor ‘exp.
case’ até encontrar o caso do mesmo. Se nenhum dos casos é satisfeito, então, case default,
que é opcional, será executado.
select case ( exp. case ) case ( lista de seleção 1 ) comandos 1 case ( lista de seleção 2 ) comandos 2
... case ( lista de seleção n ) comandos n case default comandos d end select
A sintaxe das listas de seleções é mostrada na Tabela A.12 e não se pode criar
intervalos fechados, superpondo-se valores.
ESTRUTURA CONDIÇÃO case (valor) Exp. teste igual à valor case (:valor) Exp. teste menor que valor case (valor:) Exp. teste maior que valor
case (valor1:valor2) Exp. teste entre valor1 e valor2 case (valor1,valor2,...,valorn) Exp. teste igual à valor1 ou igual à valor2 ou ... valorn.
Tabela A.25: Sintaxe para listas de seleção.
Os valores literais que vierem entre os comandos devem ser colocados entre
apóstrofos.
74
A.2.2) Estrutura de Repetição:
do r1 var =n1 , n2 , n3 seqüência de comandos
r1 continue
ou
do var =n1 , n2 , n3 seqüência de comandos end do
onde var é uma variável inteira ou real com valor inicial n1, incrementos de n3 e valor final
n2. Se a contagem for progressiva, então, n1<n2 e n3>0. Se a contagem for regressiva, então,
n1>n2 e n3<0.
A.3) Recursos de Programação:
A.3.1) Deslocamento:
a) GO TO Implícito:
goto ( r1 , r2 , ... , rn ) variável
onde ‘variável’ é uma variável ou expressão inteira que deve ter valor máximo igual ao
número de rótulos de linhas que estão dentro dos parênteses, se não o comando do programa
vai para a linha imediatamente abaixo do goto.
b) IF com deslocamento:
if ( exp. numérica ) r1 , r2 , r3
onde ‘exp. numérica’ não pode ser complexa e r1, r2, r3 são rótulos. Se o valor de
‘exp.numérica’ f or menor que zero o comando vai para a linha com o rótulo r1, quando for
igual a zero o comando vai para linha com o rótulo r2 e quando for maior que zero vai para
r3. A ‘exp. numérica’ pode ser uma expressão que gere como valores 0 (zero) que será
considerado como falso ou qualquer número diferente de 0 (zero) que será considerado como
verdadeiro.
A.3.2) Declarações e Atr ibuições Avançadas:
a) DIMENSION:
75
Uma outra forma de se declarar vetores e matrizes, com a vantagem de se poderem
especificar os índices mínimos e máximos em cada direção é usando o comando ‘dimension’ .
tipo var1 , var2 , ... , varn dimension var1(Li1:Ls1) , var2(Li2 : Ls2) , ... , varn(Lin : Lsn)
ou
tipo var1(Li1 : Ls1) , var2(Li2 : Ls2) , ...,varn(Lin : Lsn)
onde ‘ tipo’ pode ser inteiro, real, lógico, complexo ou literal; Li1, Li2,..., Lin são os índices
inferiores; e Ls1, Ls2,..., Ln são os índices superiores da matriz ou vetor. Os valores de Li e
Ls podem ser positivos, nulos ou negativos desde que sejam inteiros. Quando o valor de Li é
omitido, o valor um é usado como padrão. As variáveis podem ter duas ou mais dimensões,
sendo declaradas da mesma forma, com cada dimensão separada das outras por vírgulas.
var(Li1:Ls1 , Li2:Ls2, ...,Lin:Lsn)
b) PARAMETER:
Serve para definir uma constante que será usada como parâmetro apenas para cálculos
dentro do código, não podendo ser lida pelo comando read ou modificada. O tipo da
constante deve ser especificado antes, ou serão usadas às atribuições implícitas
tipo constante1 , constante2 ,...
parameter ( constante1 = valor , constante2 = valor ,...)
Os parênteses são opcionais e o tipo pode ser inteiro, real ou qualquer outro tipo de
variável, com exceção de vetores e matrizes.
c) DATA:
É o modo mais estruturado de se atribuir valores iniciais a variáveis. As diferenças
entre data e parameter é que as variáveis declaradas em data podem alterar seu valor
durante o programa e podem ser vetores ou matrizes.
data var1 / valor1 /, var2 / valor2 /, ... , varn / valorn /
ou data var1 , var2 , ... , varn / valor1 , valor2 , ... , valorn /
76
Os valores de vetores e matrizes devem ser declarados todos de uma vez, com a
separação entre eles feita por vírgula.
A.3.3) Designação de Memór ia:
a) COMM ON:
É usado quando muitos dados devem ser passados a funções ou subrotinas. Um
mesmo common pode ser usado várias vezes e carregar muitas variáveis ao mesmo tempo.
Este comando deve aparecer de forma igual no início do programa principal (logo após a
definição dos tipos de variáveis) e também no início de cada função ou subrotina que o utili ze.
common / nome/ lista de variáveis / nome2/ lista de variáveis2 ...
onde o nome do bloco é opcional, mas se for definido, agrupará as variáveis em um mesmo
bloco. As variáveis de um common sem nome não podem ser declaradas pelo comando data.
A ausência do nome e o nome ‘ / /’ têm o mesmo significado. Uma mesma variável não pode
ocupar mais de um comando common.
Na declaração de um common é recomendável que se siga uma ordem crescente no
tamanho das variáveis. O tamanho de uma variável é dado pelo número de bytes que ela
ocupa. A seqüência para essa declaração é: lógico, caractere, inteiro, real, vetores e matrizes.
As matrizes e vetores devem seguir esta mesma seqüência de tamanhos (vetores logical,
vetores character, ...). As strings são consideradas vetores de caracteres. Alguns compiladores
apenas mostrarão mensagens de advertência, quando está seqüência estiver incorreta; outros
não avaliam esta ordem e consideram como corretas, quaisquer ordens em que as variáveis
aparecerem.
b) BLOCK DATA:
Atribui valores iniciais às variáveis declaradas em um common com nome, de uma
forma mais estruturada. Aqui podem ser usados os seguintes recursos: common (com nome),
parameter, data e dimension.
block data nome_bloco declarações e atribuições end
O nome_bloco é opcional e segue as mesmas regras para nomes de variáveis.
77
A.3.4) Modular ização:
a) INCLUDE:
Declarações, atribuições e outros comandos que estejam em um arquivo de texto com
o mesmo formato usado no programa principal podem ser adicionados a ele através do
comando include. Esses arquivos podem ser adicionados a outros arquivos do programa
principal e a funções e sub-rotinas e ser usado várias vezes. Os arquivos serão interpretados
como parte do programa e, por isso, devem seguir as mesmas regras do programa escrito em
FORTRAN.
include ‘ nome.ext ’ ou
include “ nome.ext ”
É permitido o uso de caminhos completos no lugar do nome.
A.4) Código em L inguagem FORTRAN:
Na Figura A.2, vê-se um exemplo de código FORTRAN. Nele pode-se identificar
diversos comandos explicados neste anexo e a estrutura de formulário fixo, além da sintaxe de
escrita destes comandos e a organização do código. Este programa é uma simulação
unidimensional da propagação de uma onda em modo TMz, através do método numérico FD-
TD.