SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 1
Relatório de Iniciação Científica
Cálculo de Estados Eletrônicos
em Estruturas Semicondutoras
Período: 01/08/2013 a 30/06/2014
Instituição: Laboratório de Novos Materiais
Semicondutores do Instituto de Física da USP
Bolsista: Thiago Luiz Chaves de Melo
Orientadora: Profa. Euzi Conceição Fernandes da Silva
Resumo
Neste trabalho foi apresentado o método Split-Step FFT que
permite evoluir numericamente funções de onda submetidas a
potenciais arbitrários. O método – através do que é chamado de
propagação imaginária – permite a obtenção dos autoestados e
autofunções soluções da Equação de Schrödinger para o
potencial em questão.
A técnica foi utilizada para calcular autoestados e
autofunções em um potencial típico de estruturas semicondutoras
compostas, levando-se em conta as dimensões proporcionais de
sua composição. Isso foi possível devido ao fato de o método
Split-Step FFT atribuir comportamento periódico a suas soluções,
algo que se encaixa perfeitamente no contexto de cristais
semicondutores cujo arranjo é conhecidamente periódico.
No final é apresentado um método mais rápido de
propagação para funções de onda baseado em programação
paralela.
Índice
1. Introdução .................................................................................................................. 2
1.1. A Mecânica Quântica e a Física do Estado Sólido....................................... 2
1.1.1. Formalismo Quântico................................................................................... 3
1.1.2. Brevíssima Introdução à Física do Estado Sólido ..................................... 5
2. Método Split-Step FFT ................................................................................................ 9
2.1. A Transformada Rápida de Fourier................................................................... 9
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 2
2.2. A solução numérica da Equação de Schrödinger...................................... 16
2.3. Unidades atômicas........................................................................................... 23
2.4. Implementação do algoritmo ........................................................................ 24
2.5. Aplicação do método a um potencial típico de uma estrutura
semicondutora ......................................................................................................... 30
2.6. Autofunções e autovalores em função da largura do poço .................... 30
3. Método das Diferenças Finitas com Programação Paralela............................ 36
3.1. Equações diferenciais parciais ....................................................................... 36
3.2. Diferenças Finitas para Equações Parabólicas ............................................ 37
3.3. Programação paralela .................................................................................... 40
4. Conclusão................................................................................................................. 44
5. Bibliografia ................................................................................................................ 45
1. Introdução
1.1. A Mecânica Quântica e a Física do Estado Sólido
A descoberta e posteriores desdobramentos da Mecânica Quântica
permitiu que o ser humano olhasse novamente para a natureza sob uma nova
óptica. Uma das áreas por onde esse novo olhar pairou foi a ciência dos
materiais.
Desde eras muito distantes no tempo pessoas já utilizavam materiais
diferentes para as mais diversas finalidades. Independente de quais eram suas
motivações, o fato é que novos materiais foram sempre sendo descobertos,
aperfeiçoados e até mesmo sintetizados.
Classificando os materiais como: cerâmicas, metais e plásticos. É
possível pensar em vasos de barro (cerâmicas), laminas (metais) e borrachas
(plásticos). É bastante razoável imaginar que esses utensílios eram encontrados
com facilidade em uma sociedade da virada século XIX para o XX.
Após o advento da Mecânica Quântica, pode-se dizer que a história foi
reescrita em termos de aperfeiçoamento e desenvolvimento de novos
materiais. A compreensão do universo na escala atômica permitiu que novos
materiais fossem estruturados desde essa escala, o que se traduziu em objetos
capazes de reagir ao ambiente na sua forma mais fundamental.
Materiais avançados concebidos através dessa nova compreensão da
natureza são inúmeros e estão tão assimilados a realidade que passam
desapercebidos de tão comuns.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 3
Muitos ramos da física estão intrinsecamente relacionados com a
ciência dos materiais. Em especial a Física do Estado Sólido exerce um papel
fundamental.
1.1.1. Formalismo Quântico
A grosso modo, toda a Mecânica Quântica parte da Equação de
Schrödinger, que assim como a segunda lei de Newton, é uma equação que
permite se obter todas as informações à respeito da dinâmica de um sistema.
A Equação de Schrödinger que pode ser vista na Eq. 1,
( ) ( )
( )
(1)
é extremamente genérica ao permitir que todo o sistema seja expresso em
termos de sua massa e de sua interação com o meio, ou seja, o potencial
. O asterisco no símbolo da massa se refere à massa efetiva, algo que será
discutido mais adiante.
Por mais que a Eq. 1 seja extremamente genérica, ela contém um
problema absolutamente não trivial, que é o cálculo de ( ). Chamada de
função de onda, a função ( ) é de onde será possível extrair todas as
informações a respeito do sistema.
Antes de entrar no mérito de como se obtem ( ), é interessante
saber como ela pode ser capaz de fornecer tantas informações.
A aplicação de operadores sobre ( ) permite a obtenção de
determinados valores. Por exemplo, em um sistema com conservação de
energia total em um determinado instante de tempo , o operador
hamiltoniano aplicado sobre a função de onda deve satisfazer a
seguinte condição,
( ) ( ) (2)
sendo a energia cinética e a energia potencial. Sendo assim, a aplicação
de sobre a função de onda precisa ser igual a multiplicação do valor de
pela função. A aplicação de um operador sobre um vetor resultando em um
número escalar multiplicado pelo proprópio vetor só ocorre quando esse vetor
for um dos chamados autovetores da função e os valores de escalares são os
autovalores. Sendo a função ( ) como um vetor de dimensão infinita, ela
pode ser chamada de autofunção.
O fato importante aqui é o seguinte: se o sistema realmente conservar
sua energia e ( ) for realmente a função de onda desse sistema, então a
Eq. 2 será verdadeira. Isso reflete o fato de a função de onda conter
informações sobre o sistema. Sendo assim, dado que ( ) é a função de
onda de um sistema conservativo, ela é automaticamente autofunção do
operador hamiltoniano com autovalor igual ao valor da energia do sistema.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 4
Ao invés de se aplicar o operador hamiltoniano , cujos autovalores
são os valores de energia, pode-se aplicar outros operadores, como por
exemplo os operadores de momento angular , cujos autovalores serão os
valores de momento angular ou , cujos autovalores serão os valores da
projeção do momento angular sobre o eixo . Esses são apenas exemplos
comuns.
Outro detalhe importantíssimo à respeito de ( ) é que seu módulo
ao quadrado | ( )| é uma distribuição de probabilidade, ou seja
( ) ∫| ( )| (3)
é a probabilidade de que o sistem definido por ( ) se encontre dentro da
região , seja lá de quantas dimensões se esteja tratando.
Um último detalhe importante antes de mergulhar na obtenção de
( ) é que
〈 ( )〉 ∫ ( ) ( ) ( ) (4)
ou seja, a integral da Eq. 4 permite encontrar o valor médio do operador ( )
dentro da região . Se ( ) , então a Eq. 4 resultará no valor médio da
energia do sistema descrito por ( ) dentro da região .
A maneira mais comum de se resolver a Eq. 1 afim de se encontrar
( ) é supor um instante de tempo no qual a energia se conserve. Nesse
instante, as Eq. 1 e a Eq. 2 serão essencialmente a mesma. Isso acontece pois
( )
(5)
onde, em mecânica quântica, . Esses passos levam a
( ) ( ) ( ) (6)
onde tudo o mais fica em função do potencial , ou seja, a interação do
sistema com o meio. Para alguns potenciais existem soluções analíticas para
esse problema, mas a grande maioria dos casos, incluídos ai os de maior
interesse, não existem ou são muito complicadas de se obter.
Outra maneira de se chegar a Eq. 6 é supondo que ( ) pode ser
escrita como ( ) ( ) ( ), substituir isso na Eq. 1 e quebrá-la da seguinte
forma
( ) ( ) ( )
( ) ( )
(7)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 5
( ( ) ( ))
( ) ( )
( )
(8)
( ) ( ) ( )
( )
( )
(9)
Uma abordagem bastante comum é de se escrever a função ( )
como uma combinação linear de um conjunto ortogonormal de funções,
onde cada uma dessas componentes individualmente representa uma
possível autofunção do sistema correspondendo à uma possível autovalor. A
própria Eq. 9 se trabalhada levará a isso.
Como o instante de tempo poderia ser qualquer e as autofunções
instantâneas dependem apenas do potencial que nesse instante dependerá
apenas das coordenadas espaciais, a propria autofunção obtida para esse
instante de tempo não terá dependência temporal, sendo apenas ( )
( ). A decomposição de ( ) será
( ) ∑ ( ) (10)
onde as funções ( ) apresetarão a propriedade de
∫ ( ) ( ) (11)
com sendo todo o espaço.
A partir da segunda parte da Eq. (9), é possível chegar a solução
chegal do problema incluindo sua dependência temporal
( ) ∑ ( ) ( ) ∑ ( ) ⁄
(12)
Esta é apenas uma breve introdução não muito coerente, mas que
busca por expor alguns dos conceitos utilizados mais adiante.
1.1.2. Brevíssima Introdução à Física do Estado Sólido
Muitos materiais quando estão no estado sólido apresentam aquilo que
é chamado de estrutura cristalina. Os cristais possuem algumas propriedades
que facilitam em muito seu tratamento quântico. Entre essas propriedades, a
mais importante é o seu arranjo periódico.
Todo cristal possui um arranjo primário, chamado de célula unitária. Esse
arranjo primário se repete indefinidamente através do cristal. Por exemplo, a
Figura 1 mostra uma célula unitária e o cristal a que ela da origem.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 6
Figura 1 - Célula unitária e cristal resultante de sua repetição.
Existe uma série de propriedades a respeito das possíveis células
unitárias que um cristal pode apresentar. É interessante frisar que a repetição
do padrão, sob o ponto de vista da Mecânica Quântica, permite a resolução
do sistema para uma célula unitária e supor sua repetição indefinida, uma vez
que as dimensões dos materiais são, em boa aproximação, infinitas se
comparadas às dimensões dos sistemas quânticos que serão tratados.
É possível posicionar uma rede padronizado por sobre um cristal, tendo
como pontos da rede seus átomos, grupos de átomos ou mesmo posições
regularmente espaçadas entre átomos. Essa rede é chamada de rede
cristalina ou rede de Bravais.
Uma característica interessante a respeito da rede de Bravais é que
através de um conjunto de vetores (1 em uma dimensão, 2 em duas
dimensões e 3 em três dimensões) é possível ligar todos os pontos da rede.
Esses vetores e suas combinações são chamados de vetores da rede.
Um exemplo de rede de Bravais com seus vetores primitivos é mostrado
na Figura 2.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 7
Figura 2 - Exemplo de rede cristalina com seus vetores primitivos.
Para um conjunto de todos os possíveis vetores de uma rede de Bravais,
é possível encontrar um conjunto de vetores de onda (para ondas planas)
cuja periodicidade seja idêntica a da rede em questão. Esse conjunto de
vetores de onda recebe o nome de rede recíproca.
Matemáticamente, se forem os vetores primitivos da rede de
Bravais . Então qualquer vetor da rede pode ser escrito como
∑ (13)
sendo as componentes do vetor na direção . O mesmo vale para os
vetores da rede recíproca :
∑ (14)
que apresentam a seguinte propriedade conjunta
(15)
através da qual, conhecendo-se os vetores da rede de Bravais (ou direta) é
possível encontrar os vetores da rede recíproca e vice-versa.
Não existe uma única célula unitária para cada rede direta, sendo
possíveis algumas variações. Um tipo de célula que sempre é possível se
construir é a chamada célular primitiva de Wigner-Seitz, que pode ser
entendida a partir da Figura 3.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 8
Figura 3 - Célula Primitiva de Wigner-Seitz para uma rede cristalina.
Também existem células primitivas na rede recíproca. A célular primitiva
de Wigner-Seitz da rede recíproca recebe o nome de Primeira Zona de
Brillouin.
O teorema mais importante em Física do Estado Sólido é o Teorema de
Bloch. Sendo uma rede direta um arranjo periódico de átomos, ou algo do
tipo, é razoável de se esperar que o potencial também seja periódico
( ) ( ) (16)
para todos os vetores da rede. O teorema de Bloch diz que
( ) ( ) (17)
é a solução da equação de Schrödinger Eq. (1) para o potencial da Eq. (16).
Onde
( ) ( ) (18)
é uma função periódica para todo .
É interessante que,
( ) ( )
( ) ( ) (19)
portanto:
( ) ( ) (20)
sendo as Eq. (17) e Eq. (20) as duas possíveis formas do teorema de de Bloch,
em conjunto com a Eq. (16) do potencial.
Esta brevíssima introdução tem apenas o objetivo de como a Mecânica
Quântica é introduzida na Física do Estado Sólido, basicamente através do
teorema de Bloch.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 9
2. Método Split-Step FFT
2.1. A Transformada Rápida de Fourier
É possível de se representar uma função qualquer em um intervalo
qualquer através de uma Série de Fourier.
( ) ∑ ∑ (21)
sendo
∫ ( )
∫ ( )
(22)
com sendo o intervalo onde essa representação da função ( ) é válida.
Fora desse intervalo, a representação se comportará como uma repetição
deslocada em , chamada de repetição de Fourier, que pode ser vista na
Figura 4.
Figura 4 - Representação de Fourier e extensões de Fourier
Modificando um pouco as Eq. (21) e Eq. (22), chega-se a:
( ) ∑ (23)
sendo,
( ) ( )
(24)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 10
Uma Tranformada de Fourier consiste de se levar uma função ( ) do
espaço de para um outro espaço ( ) através de um núcleo de
transformação ( ). Isso se processa da seguinte forma:
( )
√
∫ ( ) (25)
Sendo a transformada inversa:
( )
√
∫ ( ) (26)
( ) ∫ ∫ ( ) (27)
A Transformada de Fourier advem de alguma forma das Séries de
Fourier [1, pgs. 708-709]. A vantagem de se usar Transformadas de Fourier para
levar funções de um espaço para outro é que muitas equações diferenciais
tem sua solução facilitadas através desse processo. A Figura 5 [1, pg. 707],
ilustra essa ideia.
Figura 5 - Processo de resolução de problema difícil através de Transformada de Fourier [1, pg.
707].
A Eq. (1), a Equação de Schrödinger é uma equação diferencial. Utilizar
Transformadas de Fourier para resolvê-la é um caminho, mas o foco deste
trabalho é utilizar soluções computacionais para resolver o problema.
A Eq. (27) não pode ser tratada diretamente por um computador. Sua
alternativa é chamada de Transformada Discreta de Fourier (TDF). A TDF
consiste em algumas modificações na transformada original. Primeiramente é
necessário se definit um conjunto de pontos sobre os quais a transformada
será realizada. Em um intervalo com de comprimento, tem-se que:
(28)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 11
(29)
e também se define:
(30)
(31)
que substituindo na Eq. (25) e trocando a integral por uma somatória:
( )
√
∑ ( ) (32)
( ) ∑ ∑ ( ) (33)
unindo as Eq. (28) e Eq. (30), tem-se que:
(34)
modificando isso na Eq. (33):
( ) ∑ ∑ ( ) ( )
( ) ∑ ∑ ( )
(35)
( ) ∑ ∑ ( ) (36)
A Transformada Discreta de Fourier fica, então:
( ) ∑ ( ) (37)
e a transformada inversa:
( ) ∑ ( ) (38)
sendo:
(39)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 12
É importante notar o seguinte: para o cálculo de cada um dos
valores de ( ) é necessário realizar operações. A transformada discreta
consome ( ) operações e o mesmo para a transformada inversa.
Computacionalmente a TDF é muito cara. Um computador com clock
de , implicando em um tempo de máquina , que levar em
média ciclos de máquina para fazer cada operação, levará:
( ) para realizar a transformada de 10.000 pontos.
Além do tempo que o computador levará para resolver o problema estando
no espaço inverso, ele levará outros para realizar a transformada inversa.
Se o programa precisar realizar essa tarefa muitas vezes, como é o caso do
método que será discutido nas próximas seções, poderá consumir um tempo
muito grande.
Uma forma de se resolver esse problema é utilizando a Transformada
Rápida de Fourier. Todo o método a seguir está descrito em [2, pgs. 392-409].
Esse método permite um aumento na velocidade da TDF através do
reaproveitamento de multiplicações. O termo chave é o seguinte:
( ) (40)
que subtituído na Eq. (37):
( ) ∑ ( ) (41)
Agora vem algo muito importante: precisa ser uma potência de , isso
ficará claro a seguir. Os valores de ( ) serão:
( ) ( ( ) ( ) ( ) ( ) ( ) )
( ) ( ( ) ( ) ( ) ( ) ( ) )
( ) ( ( ) ( ) ( ) ( ) ( ) )
( ) ( ( ) ( ) ( ) ( ) ( ) )
( ) ( ( ) ( ) ( ) ( )
( ) ( )
)
Pode-se representar isso da seguinte forma:
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 13
( ( ) ) (
( )
( )
( )
( )
( )) (
( )
( )
( )
( )
( ))
(42)
Lembrando que da Eq. (40), é um número complexo. Para
complexos, é válido: ( )
, já que: ( )
( ) ( )
( ) ( ), pela lei dos cossenos. Desta forma, , ,
, , , . A matriz então pode ser
modificada para:
( )(
( )
( )
( )
( )
( )) (
( )
( )
( )
( )
( ))
(43)
Agora só serão necessários os cálculos de até , todos os outros
são desnecessários. O próximo passo é separar o produto de matrizes acima
em pares:
( ) (
( )
( )
( )
( )
( )) (
( )
( )
( )
( )
( ) )
(44)
e ímpares:
( )(
( )
( )
( )
( )
( ))
(
( )
( )
( )
( )
( ) )
(45)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 14
A Eq. (44) apresenta apenas as colunas pares enquanto que a Eq. (45)
apresenta apenas as colunas ímpares. A soma das equações Eq. (44) e Eq.
(45) deve ser igual a Eq. (43).
Dado que a matriz da Eq. (44) possui linhas, a coluna da direita que
cai da seguinte forma: , , , , vai checar a zero novamente
na linha ⁄ , que é a primeira linha da segunda metade da matriz, de
cima para baixo. Outras regras semelhantes valem para as outras colunas. Dai
em diante a matriz se repete, sendo a metade superior igual a metade inferior.
A seguir isso é exemplificado para .
( )
(
( )
( )
( )
( ))
(
( )
( )
( )
( )
( ) )
(46)
( )
(
( )
( )
( )
( ))
(
( )
( )
( )
( )
( ) )
(47)
As equações a seguir representam as Eq. (44) e Eq.(45),
respectivamente:
( ) ∑ ( )
⁄
(48)
( ) ∑ ( ( )) ( )
⁄
(49)
Modificando a Eq. (41):
( ) ( ) ( ) (50)
( ) ( ∑ ( )
⁄
∑ ( ( )) ( )
⁄
) (51)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 15
( ) ( ∑ ( )
⁄
∑ ( ( ))
⁄
) (52)
Definindo:
( ) ( )
( ) ( )
(53)
( ) ( ∑ ( )
⁄
∑ ( )
⁄
) (53)
Com essa alteração, o lado porção ímpar da Eq. (43) passa a
apresentar um comportamento semelhante ao visto na Eq. (46), ou seja, uma
repetição da metade superior na metade inferior, diferindo apenas do fato de
todos seus termos estarem multiplicados por .
Voltando agora para a Eq. (41) e comparando-a com as Eq. (53) e Eq.
(40). Mudando ⁄ a Eq. (40) fica:
( ⁄ ) ( ) (54)
Defindindo:
(55)
Modifica-se a Eq. (53) para:
( ) ( ∑ ( )
⁄
∑ ( )
( )
⁄
∑ ( )
⁄
∑ ( )
( )
⁄
)
(56)
Definindo novamente:
( ) ( )
( ) ( )
( ) ( )
( ) ( )
(57)
A Eq. (56) é conduzida a:
( ) ( ∑ ( )
⁄
∑ ( )
⁄
( ∑ ( )
⁄
∑ ( )
⁄
))
(58)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 16
A Eq. (58) tem o poder de tranformar as Eq. (44) e Eq. (45) de modo que
as primeiras ⁄ linhas da matriz se repitam matriz abaixo, diminuindo mais uma
vez o número de valores de que precisam serem calculados. Esse
processo deve ser repetido até que a quantidade de linhas da matriz que se
repetem sejam apenas duas, está é a razão de precisar ser uma potência
de . Esse processo pode ser atingido por meio de um algoritmo recursivo, que
apesar de já existir, será um exercício interessante para o relatório final.
2.2. A solução numérica da Equação de Schrödinger
A forma utilizada aqui para se resolver a Equação de Schrödinger
numéricamente se encaixão no conjunto dos métodos conhecidos como
métodos espectrais. Esses métodos se apoiam fortemente na decomposição
da função de onda solução do problema como na Eq. (12).
O procedimento descrito a seguir é descrito em [5].
De forma semelhante a descrita na Eq. (12), a evolução temporal em
de uma função ( ) pode ser dada por
( ) ⁄
( ) (59)
Separando como na Eq. (5),
( ) ( ( ) ) ⁄
( ) (60)
onde a exponencial não pode ser separada de forma exata devido a não
comutabilidade entre ( ) e
[ ( ) ] ( ) ( ( ) ( )) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) (( ( )) ( ) ( ) ( ))
( ) ( ( ) ( ) ( ) ( )) [ ( )] ( )
(61)
Entretando, cada separação na exponencial da Eq. (60) adiciona um
erro da ordem de ( ). De modo que:
( ) ⁄
( ) ⁄
( ) ( ) (62)
e, ainda:
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 17
( )
( ) ⁄ ⁄
( ) ⁄
( ) ( ) (63)
podendo ser aproximada por
( )
( ) ⁄ ⁄
( ) ⁄
( ) (64)
se o intervalo for suficientemente pequeno.
Utilizando a Eq. (64) para evoluir em uma função ( )
( )
( ) ⁄ ⁄
( ) ⁄
( ) (65)
esse processo pode ser repetido indefinidamente para evoluir uma função
inicial conhecida a partir de seus autoestados.
A grande dificuldade encontra-se no cálculo do fator ⁄
, já que ele
apresenta uma derivada segunda nas coordenadas espaciais.
A solução desse problema é um amontoado de todo o amontoado
que já foi dito até aqui.
O materiais semicondutores apresentam estrutura cristalina, como foi
dito na seção 1.1.2. Isso significa que a cada certa distância o sistema unitário
se repete. Esse é o tipo de problema ideal para ser resolvido através de
Transformadas de fourier.
Em [6], onde são discutidas técnicas a respeito de crescimento de
semiconditores utilizando um processo chamado Molecular Beam Epitaxy
(MBE) – uma técnica utilizada no Laboratório de Novos Materiais
Semicondutores do Instituto de Física da USP, será explicada em maiores
detalhes no relatório final – onde o material produzido apresenta simetria em
duas direções, só sofrendo alterações do ponto de vista quântico na terceira.
Isso é esboçado na Figura 6.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 18
Figura 6 - Esquema de material que pode ser crescido com MBE submetido a uma diferença de
potencial.
Na Figura 6, um sólido composto por dois semicondutores diferentes,
intercalados, que for submetido a uma difereça de potencial conforme
indicada, apresentara diferenças sob o ponto de vista de um tratamento
quântico apenas na direção .
Para sólidos como o da Figura 6 o problema precisa ser resolvido
apenas em 1 dimensão. Essa direção será chamada de por conveniência.
A partir da Eq. (65):
( ) ( ) ⁄
( ) (66)
( ) ⁄
( ) (67)
( ) ⁄
( ) (68)
A exponencial da Eq. (68) carrega uma derivada segunda em . A
forma utilizada para se trabalhar esse termo é:
∑ (69)
Se:
̃( ) ∑ ( ) (70)
for a TDF de ( ) dada pela Eq. (37), então, pela Eq. (38):
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 19
( ) ∑ ̃( ) (71)
é uma forma de se representar ( ), de modo que:
( ) ⁄
∑ ̃( ) (72)
( ) ∑ ( ) ∑ ̃( ) (73)
( ) ∑ ( ) ( ) ∑ ̃( ) (74)
( ) ∑ ( ) ∑ ̃( ) ( ) (75)
Individualmente:
( ) ( ) ( )
(( ) ) ( ) ( ) ( ) ( ) ( )
Sendo assim, por indução é possível mostrar que:
( ) ( ) (76)
( ) ∑ ( ) ∑ ̃( )( ) (77)
Invertenco a ordem das somatórias:
( ) ∑ ∑ ( ) ̃( ) (78)
( ) ∑ ̃( ) (79)
Finalmente, multiplica-se ( ) pela parcela restante do potencial.
( ) ( ) ⁄
( ) (80)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 20
Esse procedimento permite evoluir uma função ( ) em , entretanto
o que se busca são as autofunções e autovalores. Supondo conhecidas todas
as autofunções ( ), todos os autovalores e todos os pesos de cada
autofunção na composição de ( ), então:
( ) ∑ ( ) ⁄
(81)
O processo utilizando para se descobrir essas autofunções e autovalores
é chamado de propagação imaginária. O primeiro passo é substituir por
na Eq. (81).
( ) ∑ ( ) ⁄
(82)
O próximo passo é normalizar essa função:
( )
∑ ( ) ⁄
√ ( ) ( )
(83)
( )
∑ ( ) ⁄
√(∑ ( ) ⁄ )(∑ ( ) ⁄ )
(84)
( )
∑ ( ) ⁄
√∑ | | ⁄
(85)
Isso porque, por definição:
∮ ( ) ( ) (86)
Os autovalores de energia respeitam a seguinte ordem:
. Sabendo disso e reformulando a Eq. (85).
( )
∑ ( ) ⁄
√| | ⁄ ∑ | | ⁄
(87)
( )
∑ ( ) ⁄
⁄ √ ∑
| |
| |
( ) ⁄
(88)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 21
( )
∑ ( ) ( ) ⁄
√ ∑
| |
| |
( ) ⁄
(89)
( )
( ) ∑ ( ) ( ) ⁄
√ ∑
| |
| |
( ) ⁄
(90)
Sendo a menor de todas as energias, as exponenciais tanto do
numerador quando do denominador da Eq. (90) tendem a zero quando .
Isso porque: . Isso significa que:
( ) ( ) (91)
A evolução temporal de ( ) com permite a obtenção do
estado fundamental ( ). Os estados excitados são obtidos através do
método da Ortogonalização de Gram-Schmidt, bastante comum em algebra
linear para ortogonalização de um conjunto de votores não ortogonais
inicialmente, ou seja, se { } for um conjunto de vetores de dimensão
não ortogonais, então:
(92)
( )
( )
(93)
( )
( )
(94)
O novo conjunto de vetores { } é ortogonal. Da mesma forma,
supõem-se um conjunto inicial de funções { ( ) ( ) ( ) ( )}.
Com ( ) ( ). Se o primeiro estado excitado for:
( ) ∑ ⁄
( ) (95)
Então o método diz que:
( )
( ) 〈 ( )| ( )〉 ( )
√〈 ( )| ( )〉 |〈 ( )| ( )〉|
(96)
( )
( ) 〈 ( )| ( )〉 ( )
√∑ | | ⁄ |〈 ( )| ( )〉|
(97)
〈 ( )| ( )〉 ⁄
(98)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 22
( )
( ) 〈 ( )| ( )〉 ( )
√∑ | | ⁄ | | ⁄
(99)
( )
( ) 〈 ( )| ( )〉 ( )
√| | ⁄ | | ⁄ ∑ | | ⁄ | | ⁄
(100)
( )
( ) 〈 ( )| ( )〉 ( )
√| | ⁄ ∑ | | ⁄
(101)
( )
∑ ( ) ⁄
( ) ( ) ⁄
( )
√ ∑
| |
| |
( ) ⁄
(102)
( )
( ) ∑ ( ) ⁄
( )
√ ∑
| |
| |
( ) ⁄
(103)
Onde, novamente:
( ) ( ) (104)
Este processo pode ser generalizado da seguinte forma:
( )
( ) ∑ ( ) ⁄
( )
√ ∑
| |
| |
( ) ⁄
(105)
( ) ( ) (106)
Depois de todas as autofunções serem obtidas, é possível obter os
autovalores através da Equação de Schrödinger, Eq. (1).
[ ( )] ( ) ( ) (107)
〈 ( )| [ ( )] | ( )〉 〈 ( )| | ( )〉 (108)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 23
〈 ( )| [ ( )] | ( )〉
〈 ( )| ( )〉
(109)
Como o processo todo é realizado, na verdade, com uma função
discreta a valores discretos, é interessante introduzir um método de se calcular
a derivada segunda de uma função discreta:
( ) [ ( ) ( ) ( )
( ) ( )] ( )
(110)
Essa fórmula não é utilizada por [5]. Será interessante no relatório final
checar se ela realmente acrescenta precisa ao método ou se todas as
aproximações feitas até aqui já tornar ela irrelevante.
2.3. Unidades atômicas
A razão de se utilizar unidades atômicas é devido ao esforço
computacional gasto computando números da ordem de para
menores. Essa técnica consiste em se multiplicar as equações trabalhadas por
constantes que as tornem menos custosas ao processamente. Tomando como
exemplo a Equação de Schrödinger, Eq. (6):
( ) ( ) ( ) (111)
( ) ( ) ( ) (112)
Se a massa especícica for definida como:
(113)
sendo a massa do elétron e uma constante. Reformulando a Eq. (112):
( ) ( ) ( ) (114)
( ) ( ) ( ) (115)
( ) ( ) ( ) (116)
Se a Eq. (116) for resolvida para , que deve ser o potencial real
multiplicado por ⁄ , os autovalores obtidos serão , que precisarão serem
multiplicados por ⁄ para se chegar aos valores verdadeiros.
Só com essa pequena alteração o programa de computador já deixará
de processar diversas vezes as constantes:
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 24
(117)
(118)
2.4. Implementação do algoritmo
A seguir está o algoritmo desenvolvido utilizando a linguagem de
programação Python e que implementa o método explicado na seção 1.3.
Importante: toda vez que aparece o caracter “” (barra invertida), significa
uma quebra de linha, ou seja, a linha de baixo é continuação da linha na qual
se encontra a “” independente de qualquer coisa.
001.| #######################################################
002.| ## Iniciacao Cientifica ##
003.| ## Thiago Luiz Chaves de Melo, 6431429 - IF-USP 2013 ##
004.| ## Prof Dra. Euzi Conceicao Fernandes da Silva ##
005.| #######################################################
006.| import numpy as np
007.| import matplotlib.pyplot as plt
008.| import scipy.integrate as integrate
009.| import matplotlib.animation as animation
010.| import cmath
011.| import math
012.| import copy as cp
013.| import sys
014.|
015.| class Wpuap:
016.|
017.| def __init__(self):
018.| self.bohr_radius = 5.291772108e-11
019.| self.charge = 1.60217653e-19
020.| self.pot = 1.0e-16
021.| self.angstrom = 1e-10
022.| self.me = 9.1093826e-31
023.| self.h_bar = 6.58211915e-16
024.| self.dt = 5.73e-3
025.|
026.| self.system_length = 300 # (Ã…)
027.| #self.well_width = 100 # (Ã…)
028.| self.well_height = 0.3 # (eV)
029.| self.well_width = np.arange(5, 105, 5) # (Ã…)
030.|
031.| self.system_size = self.system_length / 
032.| (self.bohr_radius / self.angstrom)
033.| self.number_of_points = 1024
034.| self.autovalue_adjust = ((self.h_bar)**2) / self.me
035.| self.time_ajust = self.me*((self.bohr_radius)**2) / 
036.| self.h_bar
037.| self.orbitals = 12
038.| self.sub_propagate = 100
039.| self.imaginary = True
040.| self.error = 100.0
041.| self.maxError = 1e-8
042.| self.cw = 7
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 25
043.| self.initialize()
044.|
045.| def initialize(self):
046.| self.total_time = 0
047.| self.wave_max_value = 0
048.| self.co = 0
049.| self.max_pot = 0.0
050.| self.min_pot = 0.0
051.| self.pot_graph_rate = 20.0
052.| self.potential = []
053.| self.m_ef = []
054.| self.autovalue_adjust_r = []
055.| self.potential2show = []
056.| self.wave = []
057.| self.wave2 = []
058.| self.wave2_4_visualization = []
059.| self.wave2_last_iteration = []
060.| self.axis = []
061.| self.autoValues = []
062.| self.last_auto_value = 1e30
063.| for n in range(0, self.orbitals):
064.| self.wave.append([])
065.| self.wave2.append([])
066.| self.wave2_4_visualization.append([])
067.| self.wave2_last_iteration.append([])
068.| self.autoValues.append([])
069.| self.generatePotential()
070.| self.initializeWave()
071.| self.generateWave2(1)
072.| self.wave2_last_iteration[0] = cp.copy(self.wave2[0])
073.|
074.| def printStates(self):
075.| f = open("saidas/autovalores_e_autofuncoes_" + ("%d" % 
076.| self.cw) + ".txt", "w")
077.| #f.write("nnn%d" % self.cw)
078.| for n in range(0, self.co + 1):
079.| f.write("nn%.10fn" % self.getAutoValue(n))
080.| for m in range(0, self.number_of_points):
081.| f.write("%.10ft" % (self.wave[n][m] * 
082.| self.wave[n][m].conjugate()).real)
083.| f.close()
084.|
085.| def propagateOnce(self):
086.| if self.error < self.maxError:
087.| if self.getAutoValue(self.co) > self.well_height 
088.| or self.co >= self.orbitals - 1:
089.| self.printStates()
090.| self.cw += 1
091.| if self.cw < len(self.well_width):
092.| self.initialize()
093.| else:
094.| sys.exit()
095.| else:
096.| self.co += 1
097.| self.last_auto_value = 1e30
098.| for n in range(0, self.sub_propagate):
099.| self.multiplyByHalfPotential()
100.| self.multiplyByKinetic()
101.| self.multiplyByHalfPotential()
102.| self.orthonormalize()
103.| self.generateAutoValues()
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 26
104.| #self.generateWave2(1)
105.| self.calculateError()
106.| self.total_time = self.total_time + self.dt
107.|
108.| def gaussian(self, x, u, sigma):
109.| return (np.exp(-((x-u)**2)/(2*(sigma**2)))+ 
110.| np.exp(-((x+u)**2)/(2*(sigma**2))))
111.|
112.| def calculateError(self):
113.| self.error = np.fabs((self.last_auto_value - 
114.| self.autoValues[self.co]) / self.last_auto_value)
115.| self.last_auto_value = self.autoValues[self.co]
116.|
117.| def generatePotential(self):
118.| self.min_pot = 0
119.| for n in range(0, self.number_of_points):
120.| x = -self.system_size/2.0+n*(self.system_size / 
121.| float(self.number_of_points))
122.| if n < int(self.number_of_points * 
123.| (self.system_length
124.| -self.well_width[self.cw]) / 
125.| (2.0 * self.system_length)) or n > int(
126.| self.number_of_points * (self.system_length
127.| +self.well_width[self.cw]) / (2.0 * 
128.| self.system_length)):
129.| self.potential.append(self.well_height / 
130.| 2.1026038911)
131.| self.m_ef.append(1.0)
132.| else:
133.| self.potential.append(0.0)
134.| self.m_ef.append(0.067)
135.| self.potential2show.append(self.potential[n])
136.| self.axis.append(x)
137.| for n in range(0, self.number_of_points):
138.| self.min_pot = min(self.min_pot, self.potential[n])
139.| self.max_pot = max(self.max_pot, self.potential[n])
140.| for n in range(0, self.number_of_points):
141.| self.potential2show[n] = (self.potential2show[n] - 
142.| self.min_pot) * self.pot_graph_rate / 
143.| (self.max_pot-self.min_pot)
144.|
145.| def transformToDirect(self):
146.| self.wave[self.co] = np.fft.ifft(self.wave[self.co])
147.|
148.| def transformToReciprocal(self):
149.| self.wave[self.co] = np.fft.fft(self.wave[self.co])
150.|
151.| def multiplyByHalfPotential(self):
152.| img = 1j if not self.imaginary else 1.0
153.| for n in range(0, self.number_of_points):
154.| self.wave[self.co][n] = self.wave[self.co][n] * 
155.| np.exp(-img*self.dt*self.potential[n]/(2.0))
156.|
157.| def multiplyByKinetic(self):
158.| self.transformToReciprocal()
159.| k = 2.0*np.pi/(self.system_size)
160.| img = 1j if not self.imaginary else 1.0
161.| for n in range(0, self.number_of_points):
162.| km = k*float(n) if n < self.number_of_points/2 
163.| else k*float(n-self.number_of_points)
164.| self.wave[self.co][n] = self.wave[self.co][n]
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 27
165.| * np.exp(-img*self.dt*((km)**2) / 
166.| (2.0*self.m_ef[n]))
167.| self.transformToDirect()
168.|
169.| def orthonormalize(self):
170.| dx = self.system_size/float(self.number_of_points)
171.| i = self.co
172.| total_dot = 0.0
173.| for n in range(0, self.number_of_points):
174.| total_dot += self.wave[i][n].conjugate() * 
175.| self.wave[i][n]
176.| total_dot *= dx
177.| for n in range(0, i):
178.| value = 0.0
179.| for m in range(0, self.number_of_points):
180.| value += self.wave[n][m].conjugate() * 
181.| self.wave[i][m]
182.| value *= dx
183.| total_dot -= (value*value.conjugate()).real
184.| for n in range(0, i):
185.| dot_prod = 0.0
186.| for m in range(0, self.number_of_points):
187.| dot_prod += self.wave[n][m].conjugate() * 
188.| self.wave[i][m]
189.| dot_prod *= dx
190.| for m in range(0, self.number_of_points):
191.| self.wave[i][m] -= dot_prod*self.wave[n][m]
192.| for n in range(0, self.number_of_points):
193.| self.wave[i][n] = self.wave[i][n]/(total_dot**0.5)
194.|
195.| def initializeWave(self):
196.| dx = self.system_size/float(self.number_of_points)
197.| sigma = 0.87
198.| a = 1.9
199.| for i in range(0, self.orbitals):
200.| legendre = self.legendrePolynomials(i, 
201.| -self.system_size/2.0, 
202.| self.system_size/2.0)
203.| for n in range(0, self.number_of_points):
204.| self.wave[i].append(legendre(self.axis[n]) * 
205.| complex(self.gaussian(self.axis[n], a, 
206.| sigma),0.0))
207.| total_dot = 0.0
208.| for n in range(0, self.number_of_points):
209.| total_dot += self.wave[i][n].conjugate() * 
210.| self.wave[i][n]
211.| total_dot *= dx
212.| for n in range(0, i):
213.| value = 0.0
214.| for m in range(0, self.number_of_points):
215.| value += self.wave[n][m].conjugate() * 
216.| self.wave[i][m]
217.| value *= dx
218.| total_dot -= (value*value.conjugate()).real
219.| for n in range(0, i):
220.| dot_prod = 0.0
221.| for m in range(0, self.number_of_points):
222.| dot_prod += self.wave[n][m].conjugate() * 
223.| self.wave[i][m]
224.| dot_prod *= dx
225.| for m in range(0, self.number_of_points):
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 28
226.| self.wave[i][m] -= dot_prod*self.wave[n][m]
227.| for n in range(0, self.number_of_points):
228.| self.wave[i][n] = self.wave[i][n]/ 
229.| (total_dot**0.5)
230.|
231.| def generateAutoValues(self):
232.| dx = self.system_size/float(self.number_of_points)
233.| dx2 = dx**2
234.| value = 0.0
235.| for n in range(0, self.number_of_points):
236.| derived = -30.0*self.wave[self.co][n]
237.| if n > 1:
238.| derived += -self.wave[self.co][n-2]+16.0* 
239.| self.wave[self.co][n-1]
240.| elif n == 1:
241.| derived += 16.0*self.wave[self.co][n-1]
242.| if n < self.number_of_points-2:
243.| derived += 16.0*self.wave[self.co][n+1]-
244.| self.wave[self.co][n+2]
245.| elif n == self.number_of_points-2:
246.| derived += 16.0*self.wave[self.co][n+1]
247.| derived /= 12.0*dx2
248.|
249.| value += (self.wave[self.co][n].conjugate())*(-(1/
250.| (2.0*self.m_ef[n]))*derived+self.potential[n] * 
251.| self.wave[self.co][n])
252.| self.autoValues[self.co] = dx*value.real
253.|
254.| def getAutoValue(self, n):
255.| if n < len(self.autoValues):
256.| return self.autoValues[n]*self.autovalue_adjust
257.| return 0.0
258.|
259.| def getTime(self):
260.| return self.total_time*self.time_ajust
261.|
262.| def getWave2(self, n):
263.| return (self.axis, self.wave2_4_visualization[n])
264.|
265.| def getPotential(self):
266.| return (self.axis, self.potential2show)
267.|
268.| def energy(self):
269.| return 0.0
270.|
271.| def getError(self):
272.| return self.error
273.|
274.| def getMaxPot(self):
275.| return self.max_pot/self.autovalue_adjust
276.|
277.| def getMinPot(self):
278.| return self.min_pot/self.autovalue_adjust
279.|
280.| def getCurrentWidth(self):
281.| return self.cw
282.|
283.| def generateWave2(self, forVisualization):
284.| adj = 1.0
285.| self.wave_max_value = 0.0
286.| if forVisualization:
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 29
287.| max_pot = max(self.potential2show)
288.| for i in range(0, self.orbitals):
289.| for n in range(0, self.number_of_points):
290.| self.wave_max_value = max( 
291.| self.wave_max_value, (
292.| self.wave[i][n] * 
293.| self.wave[i][n].conjugate()).real)
294.| #max_pot = 1.0
295.| adj = max_pot/self.wave_max_value
296.| firstTime = not len(self.wave2[0])
297.| for i in range(0, self.orbitals):
298.| for n in range(0, self.number_of_points):
299.| value = (self.wave[i][n] * 
300.| self.wave[i][n].conjugate()).real
301.| if firstTime:
302.| self.wave2_4_visualization[i].append(adj * 
303.| value)
304.| self.wave2[i].append(value)
305.| else:
306.| self.wave2_4_visualization[i][n] = adj*value
307.| self.wave2[i][n] = value
308.|
309.| def areaUnderTheCurve(self):
310.| return self.simpson(self.wave2[self.co])
311.|
312.| def simpson(self, array):
313.| h = self.system_size/float(self.number_of_points)
314.| n = 0
315.| I = array[0]
316.| for n in range(1, self.number_of_points-2):
317.| if (n % 2 != 0):
318.| I = I+4.0*array[n]
319.| elif (n % 2 == 0):
320.| I = I+2.0*array[n]
321.| I = I+array[self.number_of_points-1]
322.| I = (h/3.0)*I;
323.| return I
324.|
325.| def legendrePolynomials(self, n, a, b):
326.| return eval('lambda x: '+ self.legendreStr(n, a, b))
327.|
328.| def legendreStr(self, n, a, b):
329.| if n == 0:
330.| return '(1.0)'
331.| elif n == 1:
332.| return '(('+str(b)+'-'+str(a)+')*x/2.0+('+str(b) + 
333.| '+'+str(a)+')/2.0)'
334.| else:
335.| return '((2.0*float('+str(n)+')+1.0)/(float(' + 
336.| str(n)+')+1.0))*(('+str(b)+'-'+str(a) + 
337.| ')*x/2.0+('+str(b)+'+'+str(a)+')/2.0)*(' 
338.| +self.legendreStr(n-1,a,b)+')-(float('+
339.| str(n)+')/(float('+str(n)+')+1.0))*('+
340.| self.legendreStr(n-2,a,b)+')'
341.|
342.|
343.| evolution = Wpuap()
344.| while True:
345.| evolution.propagateOnce()
346.|
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 30
2.5. Aplicação do método a um potencial típico de uma
estrutura semicondutora
O algoritmo da seção anterior foi aplicado a um sistema semelhante ao
da Figura 6. O tamanho do sistema foi fixado em e um posso de potencial
central teve sua largura variada, como é sugerido na Figura 7.
Figura 7 - Potencial semelhante ao sentido por um elétron dentro de uma estrutura
semicondutora composta.
O fato de uma estrutura semicondutora como a da Figura 6 poder ser
representada através do potencial da Figura 7 é que por ser composta de dois
materias diferentes intercalados, o primeiro impõe uma barreira de potencial
de uma determinada altura. Se o material no centro impor uma barreira um
tanto menor e depois disso vier novamente uma parcela do primeiro material,
o resultado vai ser um potencial como o mostrado na Figura 7, sendo o
gap de energia entre os dois materiais.
2.6. Autofunções e autovalores em função da largura do
poço
Como já foi explicado anteriormente, apenas reforçando, foi utilizado o
método Split-Step FFT com propagação imaginária a fim de se obter os
autovalores e as autofunções de um potencial como o da Figura 7.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 31
O potencial utilizado teve sua altura mantida em , enquanto que a
largura do poço foi aumentando a partir de de em .
A dinâmica utilizada foi a seguinte:
Figura 8 - Dinâmica utilizada para cálculo dos autoestados e autofunções.
Utilizando esse processo da Figura 8, conforme a largura do poço
aumenta, mais autoestados “cabem” dentro desse posso.
Tabela 1 - Autoestados em função da largura do poço.
Energia (eV)
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10
Largura(Å)
5 0,173 0,510 -- -- -- -- -- -- -- -- --
10 0,064 0,246 0,498 -- -- -- -- -- -- -- --
15 0,033 0,130 0,283 0,477 -- -- -- -- -- -- --
20 0,020 0,079 0,175 0,305 -- -- -- -- -- -- --
25 0,013 0,053 0,118 0,207 0,319 -- -- -- -- -- --
30 0,009 0,037 0,083 0,147 0,228 0,324 -- -- -- -- --
35 0,007 0,028 0,064 0,113 0,175 0,251 0,338 -- -- -- --
40 0,005 0,022 0,049 0,087 0,135 0,193 0,262 0,340 -- -- --
45 0,004 0,018 0,040 0,070 0,110 0,157 0,214 0,278 0,349 -- --
50 0,004 0,014 0,032 0,057 0,089 0,128 0,173 0,226 0,285 0,350 --
55 0,003 0,012 0,027 0,048 0,075 0,108 0,146 0,191 0,241 0,296 0,357
A Tabela 1 mostra os autoestados até o primeiro que possui energia
maior do que a altura da barreira para diversos valores de largura do poço.
Quanto maior a largura, mais autovalores “cabem” dentro do poço.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 32
Figura 9 - Gráfico de energia em função da largura do poço.
O gráfico da Figura 9 mostra mais claramente o comportamento
presente na Tabela 1, ou seja, quanto maior a largura do poço, menor é a
energia de cada autoestado e, consequentemente, mais autoestados
possuirão valor inferior ao da barreira de potencial em ambos os lados do
poço.
Isso é um resultado surpreendente pois reflete a capacidade
impressionante de o método representar um possível fenômeno físico: quanto
menor o espaço disponível, mais difícil é de se colocar mais elétrons (de
mesmo spin) nesse espaço, isso se traduz através dos valores elevados dos
autoestados iniciais.
É interessante notar na Tabela 1 que o autoestado fundamental para
um poço de largura possui um valor quase igual ao de um estado para
um poço de largura .
0
0.1
0.2
0.3
0.4
0.5
0.6
5 10 15 20 25 30 35 40 45 50 55
Energia(eV)
Largura (Å)
Energia x Largura do Poço
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 33
Os gráficos a seguir mostram alguns poços do mais estreito e o mais
largo, exemplificando os comportamentos explicados até aqui.
Figura 10 - Potencial V (x) e autofunções para L = 5Å, funções de onda posicionadas na altura
dos autoestados, mas amplitude fora de escala.
Figura 11 - Potencial V (x) e autofunções para L = 20Å, funções de onda posicionadas na altura
dos autoestados, mas amplitude fora de escala.
0
0.1
0.2
0.3
0.4
0.5
0.6
-60 -40 -20 0 20 40 60
V(x)(eV)/|ψn(x)|2
x (Å)
Densidade de Probabilidade |ψn(x)|2 e
Potencial V (x)
|ψ0(x)|2 |ψ1(x)|2 V(x)
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
-60 -40 -20 0 20 40 60
V(x)(eV)/|ψn(x)|2
x (Å)
Densidade de Probabilidade |ψn(x)|2 e
Potencial V (x)
|ψ0(x)|2 |ψ1(x)|2 |ψ2(x)|2 |ψ3(x)|2 V(x)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 34
Figura 12 - Potencial V (x) e autofunções para L = 35Å, funções de onda posicionadas na altura
dos autoestados, mas amplitude fora de escala.
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
-60 -40 -20 0 20 40 60
V(x)(eV)/|ψn(x)|2
x (Å)
Densidade de Probabilidade |ψn(x)|2 e
Potencial V (x)
|ψ0(x)|2 |ψ1(x)|2 |ψ2(x)|2 |ψ3(x)|2
|ψ4(x)|2 |ψ5(x)|2 |ψ6(x)|2 V(x)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 35
Figura 13 - Potencial V (x) e autofunções para L = 55Å, funções de onda posicionadas na altura
dos autoestados, mas amplitude fora de escala.
É interessante notar que quanto maior a largura do poço, mais
“liberdade” (ou espaço) o elétron possui, não sendo “forçado” a ficar próximo
as bordas do poço.
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
-60 -40 -20 0 20 40 60
V(x)(eV)/|ψn(x)|2
x (Å)
Densidade de Probabilidade |ψn(x)|2 e
Potencial V (x)
|ψ0(x)|2 |ψ1(x)|2 |ψ2(x)|2 |ψ3(x)|2
|ψ4(x)|2 |ψ5(x)|2 |ψ6(x)|2 |ψ7(x)|2
|ψ8(x)|2 |ψ9(x)|2 |ψ10(x)|2 V(x)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 36
3. Método das Diferenças Finitas com Programação
Paralela
3.1. Equações diferenciais parciais
De grande interesse em numerosas áreas da física teórica, as equações
diferenciais parciais, ou EDPs, são equações do tipo:
( ) (119)
Em que ( ) é a função solução de . As derivadas podem ser de
qualquer ordem e inclusive serem mistas, ou seja:
A ordem da maior derivada presente na Eq. (119) determina a ordem
da EDP.
Existem muitas classes de EDPs, e a procura por suas soluções constitui
um grande ramo da matemática de grande interesse para a física teórica.
Uma classe muito importante de EDPs são as equações parciais de
segunda ordem da forma:
( ) ( ) ( ) ( ) (120)
Sendo ( ) , , e funções contínuas em , respeitando
ainda ( ) .
Utilizando uma analogia com cônicas, essa classe de EDP pode ser
subidividida em três tipos:
 Hiberbólico: na região em que ;
 Elíptico: na região em que ;
 Parabólico: na região em que ;
Para cada um dos tipos acima convem uma abordagem especifica a
fim de facilitar o seu tratamento e encontrar suas soluções. A Equação de
Schrödinger, Eq (1) é uma equação do tipo parabólica. Rearranjando a Eq. (1)
é possível obter:
( ) ( ) ( ) ( ) (121)
Identificando os termois:
( )
( ) ( )
(122)
De modo que , ou seja, parabólica.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 37
Tratamentos adequados para os demais tipos (hiperbólico e parabólico)
podem ser encontrados na referência [3], aqui será dado enfoque para o
tratamento de EDPs do tipo parabólico.
3.2. Diferenças Finitas para Equações Parabólicas
A ideia é aproximar as derivadas parciais da seguinte forma:
( )
( ) ( )
(123)
Essa aproximação é chamada de diferenças finitas progressivas. As
derivadas parciais também podem ser aproximadas por diferenças finitas
regressivas:
( )
( ) ( )
(124)
Existe ainda uma terceira forma, chamada de diferenças finitas centrais:
( ) ( )
( ) ( )
(125)
Utilizando as Eq. (123) e Eq. (124), calcula-se as derivadas parciais de
segunda ordem.
( ) ( )
( ) ( ) ( ) ( )
( ) ( )
( ) ( ) ( )
( )
(126)
Retornando à equação de Schrödinger, em uma dimensão:
( ( )) ( )
( )
(127)
É possível rearranjá-la da seguinte forma:
( ) ( ) ( ) ( ) (128)
Se ( ) estiver definida em um intervalo [ ] (sem perda de
generalidade), é conveniente discretizar este intervalo em partes da seguinte
forma:
( ) (129)
É conveniente, ainda, definir ( ) ( ). Utilizando essa notação e
substituindo as Eq. (125) e Eq. (126) na Eq. (127):
( )
( ) ( ) ( )
( )
( ) ( ) (130)
A substituição de ( ) por ( ) e as demais, indica cada ponto .
A Eq. (130) pode ser reescrita na forma:
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 38
( )
( )
( ) (
( )
( )) ( )
( )
( )
(131)
A Eq. (131) é uma equação matricial:
( ) ( ) ( ) ( ) (132)
Isto pode ser entendido da seguinte forma:
( )
[
( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ]
(133)
( )
[
( ) ( )
( ) ( )]
(134)
( )
[
( )
( )
( )
( )]
(135)
Onde:
( )
( )
(136)
( ) (
( )
( )) (137)
( )
( )
(138)
Na Eq. (131) é possível adotar uma estratégia chamada de método de
Crank-Nicolson. A ideia é utilizar diferenças finitas progressivas no lado
esquerdo e realizar a média aritmética do tempo e no lado direito.
Antes disso, convém adotar uma notação adequada:
( ) (139)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 39
Onde denota os valores espaciais, enquanto que denota valores
temporais. Sendo assim: e . Procedendo com o
método de Crank-Nicolson e adotando essa notação:
( )
( ) ( )
(140)
( ) ( ) ( ) ( ) ( ) ( ) (141)
{[ ]
[ ]}
(142)
Finalmente:
[ ]
[ ]
(143)
Que apesar de não parecer, é o resultado procurado. A Eq. (143), assim
como a Eq. (131) é uma equação matricial:
( ) ( ) ( ) ( ) ( ) ( ) (144)
Subtraindo ( ) e multiplicando ambos os lados pela matriz inversa
de ( ). Obtem-se:
( ) ( )[ ( ) ( ) ( ) ( )] (145)
As matrizes ( ) e ( ) dependem das condições de contorno e
são como a matriz ( ) da Eq. (134).
Para completar a notação, é conveniente adotar:
[ ] (146)
Explicitando um pouco as coisas:
[ ]
(147)
( )
[ ]
(148)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 40
[ ]
(149)
( )
[ ]
(150)
(151)
(152)
(153)
A Eq. (146) é uma alternativa à Eq. (64). A diferença entre elas é que
enquanto a Eq. (64) se utiliza de transformadas diretas e inversas de Fourier
para calcular ( ) a partir de ( ), a Eq. (146) faz uso de inversões e
multiplicações de matrizes.
Utilizando a Eq. (64), obteve-se resultados muito bons, entretanto o
tempo utilizado fui grande e existe a dificuldade de se introduzir um potencial
que dependa do tempo, indispensável para que se possa simular campos
elétricos e magnéticos.
As matrizes em questão são muito grandes, idealmente da ordem de
, mas espera-se que com a utilização de técnicas de programação
paralela descritas na próxima seção, seja possível realizar esse procedimento
de inversão e multiplicação de matrizes mais rápido do que as transformadas
diretas e inversas de Fourier.
3.3. Programação paralela
Devido aos limites físicos atingidos na indústria de processadores, tais
como a impossibilidade de aumento da frequência de clock e a própria
limitação da velocidade da luz, surgiu uma nova técnica para solução
problemas computacionais. Esta técnica se baseia na ideia de dividir o
problema em várias partes simples que possam ser resolvidas individualmente e
simultaneamente para serem unidas novamente no final, gerando a solução
do problema.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 41
A programação paralela é desenvolvida geralmente para operar em
um conjunto muito grande de processadores bastante simples
individualmente, mas que em conjunto são capazes de gerar muito mais
processamento do que um único processador mais complexo.
A NVIDIA® é uma empresa multinacional norte americana que
desenvolve placas de vídeo. Essas placas são bastante difundidas por serem
capazes de renderizar vídeos em alta definição, geralmente presentes em
jogos. Placas de vídeo são o ambiente perfeito para a programação paralela,
pois são compostas de centenas de processadores.
A própia NVIDIA® desenvolveu o CUDA™, uma plataforma capaz de
auxiliar no desenvolvimento de programas de alto desempenho através de
computação paralela.
Um processador comum é chamado de CPU (Central Processing Unit)
enquanto que uma placa de vídeo é chamada de GPU (Graphics Processing
Unit).
Um programa normal é processado serialmente, ou seja, o processador
processa em fila cada um dos conjuntos de dados que vão sendo enviados a
ele junto com as instruções. Já é comum que os computadores pessoais e
notebooks venham de fábrica com processadores compostos por mais de um
núcleo, geralmente conhecidos como Dual Core, Quad Core, etc. Nesses
casos, existem duas ou mais filas de processamento. Cada núcleo é capaz de
processar qualquer conjunto de dados, dependendo somente das instruções
que ele recebe.
Na figura a seguir está representado um modelo de como funciona o
processamente em uma CPU.
Figura 14 - Modo de processamento em uma CPU.
Ou seja, muitos tipos de dados podem ser processados serialmente
desde que contenham as instruções adequadas. Já em uma GPU, dados do
mesmo tipo, que podem ser tratados utilizando as mesmas instruções são
tratados paralelamente, como na figura a seguir.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 42
Figura 15 - Modo de processamento em uma GPU.
Como é possível ver na Figura 15, a GPU consegue processar muito mais
dados simultaneamente do que uma CPU, a unica limitação é que as
instruções para eles deve ser a mesma. Também é importante ressaltar que a
CPU é responsável por controlar o funcionamento da GPU, fornecenso-lhe as
instruções necessárias para o processamento dos dados.
3.4. Diferenças Finitas com Computação Paralela
A Eq. (146) permite a evolução de um sistema quântico dependente do
tempo. Após descobrir as eutofunções e autovalores pelo método Split-Step
FFT, é possível utilizar esse método para propagar uma onda que for uma
combinação desses estados.
Utilizando o método Split-Step FFT, obtem-se autoestados para um
potencial não tependende do tempo, mas se for utilizada propagação
imaginária para a Eq. (146), é possível descobrir autoestados de potenciais
dependentes do tempo. Entretanto, não é possível descobrir autoestados de
um potencial independente do tempo.
Para descobrir os autoestados de um potencial dependente do tempo
ou para propagar uma função de onda combinação de autoestados já
conhecidos pode-se utilizar programação paralela.
O processo por traz da Eq. (146) consiste basicamente em
multiplicações, somas e inversões de matrizes. Esse processo é repetido
arbitrariamente e pode ser muito bustoso.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 43
A multiplicação de duas matrizes de ordem é um processo que
envolve operações. A Eq. (146) envolve duas operações de multiplicação.
O processo de multiplicação de matrizes mais simples é o seguinte:
[ ] [ ]
[
∑ ∑ ∑
∑ ∑ ∑
∑ ∑ ∑
]
(154)
Isso significa que as operações podem ser separadas em
operações de custo e essas operações são completamente
independentes entre si. Esse é um caso perfeito para aplicação de
programação paralela, essas operações podem ser processadas
paralelamente.
A inversão de matriz que precisa ser processada na Eq. (146) pode ser
resolvida através de decomposição LU. Nesse método, uma matriz (A) é
decomposta em duas outras (L e U), de modo que o produto dessas duas
resulte na própria matriz (A). Além disso, a matriz L é uma matriz triangular
inferior (Low) e a matriz U é uma matriz triangular superior (Up).
[ ] [ ] [ ] (155)
As matrizes L e U podem ser obtidas por meio de eliminação gaussiana,
sendo a matriz U o resultado da eliminação e a matriz L composta pelos
multiplicadores e preenchida pelo valor na diagonal principal. O método da
eliminação gaussiana pode ser encontrado em [3, pg. 68].
De posse das matriz L e U, de acordo com [3, pg. 80]:
( ) (156)
Sendo , então:
∑
{
(157)
Sendo , então:
∑
(158)
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 44
4. Conclusão
É impressionante como o método utilizado (Split-Step FFT) é capaz de
representar os sistemas quânticos a que se aplica, mas como citado, ele possui
algumas limitações relacionadas a não abrangência de situações como, por
exemplo, aplicação de campos externos.
O método das diferenças finitas é mais abrangente, não só por se
adequar a potenciais dependentes do tempo, como os causados por campos
externos, mas também por ser passível de ser tratado com computação
paralela, que pode tornar o processo muito mais rápido. Como desvantagem,
esse método não possibilita a obtenção dos autoestados para um potencial
independente do tempo.
É interessante observar os gráficos da seção 2.6 e notar como “cabem”
mais estados quânticos dentro de um poço de acordo com sua largura. Esse é
o tipo de coisa da qual estudantes de física já esperam que terão que se
desapegar.
É importante ressaltar que o método das diferenças finitas é muito
flexível. Apesar de ter sido desenvolvido apenas para equações parabólicas,
que é a categoria na qual a Equação de Schrödinger dependente do tempo
se encaixa, é possível reformular o método para que ele se encaixe a outras
categorias de equações.
Apesar de este trabalho ser basicamente um exercício de mecânica
quântica, que utiliza a física do estado sólido apenas como pano de fundo.
Seu objetivo principal é ser subisídio para futuros trabalhos nessa área.
O próximo passo é buscar dados experimentais. Os dados experimentais
que mais se adequriam a esse trabalho seriam os valores de energia medidos
em estruturas semicondutoras compostas, pois sua composição ditaria o
potencial e as massas específicas a serem utilizadas e os valores de energia
seriam uma boa forma de se averiguar se a saída do sistema condiz com a
realidade.
Um outro passo seria buscar uma forma de se utilizar programação
paralela para calcular autoestados de um potencial independente do tempo,
pois mesmo para aplicações em potenciais dependentes do tempo (em razão
da presença de campos externos) é quase sempre necessário se conhecer os
autoestados do material (sem a aplicação dos campo).
O processo de cálculo de autoestados pelo método Split-Step FFT é
muito custoso. Levou 7 dias para que os dados da seção 2.6 fossem
calculados.
RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014
Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 45
5. Bibliografia
[1] Arfken, G. B; Weber, H. J. Título: Física Matemática – Métodos
Matemáticos para Engenharia e Física. Rio de Janeiro: Elsevier, 2007.
[2] Transational College of LEX. Título: Who is Fourier? A Mathematical
Adventure. Boston: Language Research Foundation, 2006.
[3] Sperandio, D.; Mendes, J. T.; Silva, L. H. M. Título: Cálculo Numérico –
Características Matemáticas e Computacionais dos Métodos Numéricos. São
Paulo: Pearson Prentice Hall, 2003.
[4] Ashcroft, N. W.; Mermin, N. D. Título: Física do Estado Sólido. São
Paulo: Cengage Learning, 2011.
[5] Degani, M. H.; Maialle, M. Z. Título: Numerical Calculations of the
Quantum States in Semiconductor Nanostructures. Journal of Computational
and Theorical Nanoscience, United States of America, Vol. 7, 454-473, 2010.
[6] Levin, A. Título: Propriedades óticas de estruturas semicondutoras
com dopagem planar do tipo n ou p. Tese (Doutorado em Física) – Instituto de
Física, Universidade de São Paulo, São Paulo, 1998.

Mais conteúdo relacionado

Mais procurados

Demonstração da equação de schrodinger
Demonstração da equação de schrodingerDemonstração da equação de schrodinger
Demonstração da equação de schrodingerRayane Sodré
 
Aula 19: O operador momento angular
Aula 19: O operador momento angularAula 19: O operador momento angular
Aula 19: O operador momento angularAdriano Silva
 
Aula 20: O átomo de hidrogênio
Aula 20: O átomo de hidrogênioAula 20: O átomo de hidrogênio
Aula 20: O átomo de hidrogênioAdriano Silva
 
Aula 1 experiências com projetéis e ondas
Aula 1   experiências com projetéis e ondasAula 1   experiências com projetéis e ondas
Aula 1 experiências com projetéis e ondasAdriano Silva
 
Aula 4: Função de onda e Equação de Schrödinger
Aula 4: Função de onda e Equação de SchrödingerAula 4: Função de onda e Equação de Schrödinger
Aula 4: Função de onda e Equação de SchrödingerAdriano Silva
 

Mais procurados (7)

Demonstração da equação de schrodinger
Demonstração da equação de schrodingerDemonstração da equação de schrodinger
Demonstração da equação de schrodinger
 
Wavelets portugues
Wavelets portuguesWavelets portugues
Wavelets portugues
 
Aula 19: O operador momento angular
Aula 19: O operador momento angularAula 19: O operador momento angular
Aula 19: O operador momento angular
 
Aula 20: O átomo de hidrogênio
Aula 20: O átomo de hidrogênioAula 20: O átomo de hidrogênio
Aula 20: O átomo de hidrogênio
 
Aula 1 experiências com projetéis e ondas
Aula 1   experiências com projetéis e ondasAula 1   experiências com projetéis e ondas
Aula 1 experiências com projetéis e ondas
 
Modulo 6
Modulo 6Modulo 6
Modulo 6
 
Aula 4: Função de onda e Equação de Schrödinger
Aula 4: Função de onda e Equação de SchrödingerAula 4: Função de onda e Equação de Schrödinger
Aula 4: Função de onda e Equação de Schrödinger
 

Destaque (20)

Mc kinley raby
Mc kinley rabyMc kinley raby
Mc kinley raby
 
Health Care Industry
Health Care IndustryHealth Care Industry
Health Care Industry
 
George Ohm
George OhmGeorge Ohm
George Ohm
 
Portraits
PortraitsPortraits
Portraits
 
eiKard Corporativa
eiKard CorporativaeiKard Corporativa
eiKard Corporativa
 
Internship Summary Pper
Internship Summary PperInternship Summary Pper
Internship Summary Pper
 
prathi resume new (1)
prathi resume new (1)prathi resume new (1)
prathi resume new (1)
 
Kb 3 epidemiologi
Kb 3 epidemiologiKb 3 epidemiologi
Kb 3 epidemiologi
 
La música en la informática
La música en la informáticaLa música en la informática
La música en la informática
 
904
904904
904
 
John &quot;Bluto&quot; Blutarski
John &quot;Bluto&quot; BlutarskiJohn &quot;Bluto&quot; Blutarski
John &quot;Bluto&quot; Blutarski
 
Acta y acuerdo n2 ilovepdf-compressed
Acta y acuerdo n2 ilovepdf-compressedActa y acuerdo n2 ilovepdf-compressed
Acta y acuerdo n2 ilovepdf-compressed
 
Merchandise smarter with Rately
Merchandise smarter with RatelyMerchandise smarter with Rately
Merchandise smarter with Rately
 
Apex training show
Apex training showApex training show
Apex training show
 
Anava dua-jalan1
Anava dua-jalan1Anava dua-jalan1
Anava dua-jalan1
 
Basin Resource Management and Carbon Storage
Basin Resource Management and Carbon Storage Basin Resource Management and Carbon Storage
Basin Resource Management and Carbon Storage
 
поиск, отбор и оценка Hr директора 13.05.2015
поиск, отбор и оценка Hr директора 13.05.2015поиск, отбор и оценка Hr директора 13.05.2015
поиск, отбор и оценка Hr директора 13.05.2015
 
Saudade
SaudadeSaudade
Saudade
 
Sua atitude espiritual
Sua atitude espiritualSua atitude espiritual
Sua atitude espiritual
 
La guerra fría
La guerra fríaLa guerra fría
La guerra fría
 

Semelhante a Cálculo de Estados Eletrônicosem Estruturas Semicondutoras

Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Físi...
Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Físi...Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Físi...
Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Físi...Wanderson Vieira
 
análise dimensional f
 análise dimensional f análise dimensional f
análise dimensional fcassionogueira
 
análise dimensional f
análise dimensional fanálise dimensional f
análise dimensional fbruno31ss
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasCasa Ciências
 
Prof. Dr. Fabrício Härter
Prof. Dr. Fabrício HärterProf. Dr. Fabrício Härter
Prof. Dr. Fabrício HärterDafmet Ufpel
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfBNBN31
 
Métodos numéricos aplicados à engenharia química
Métodos numéricos aplicados à engenharia químicaMétodos numéricos aplicados à engenharia química
Métodos numéricos aplicados à engenharia químicaDiego Silva
 
Quatro alternativas para resolver a equação de Schrödinger para o átomo de hi...
Quatro alternativas para resolver a equação de Schrödinger para o átomo de hi...Quatro alternativas para resolver a equação de Schrödinger para o átomo de hi...
Quatro alternativas para resolver a equação de Schrödinger para o átomo de hi...Adriano Silva
 
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...Patrick Pires Alvim
 
Excitação coerente de um vapor atômico por trens de pulsos ultracurtos e lase...
Excitação coerente de um vapor atômico por trens de pulsos ultracurtos e lase...Excitação coerente de um vapor atômico por trens de pulsos ultracurtos e lase...
Excitação coerente de um vapor atômico por trens de pulsos ultracurtos e lase...Marco Polo Moreno
 
Introd logica mat ii
Introd logica mat iiIntrod logica mat ii
Introd logica mat iiPaulo Martins
 
Pac elementos finitos 1 a parte
Pac elementos finitos 1 a partePac elementos finitos 1 a parte
Pac elementos finitos 1 a parteAndré Pissolatti
 

Semelhante a Cálculo de Estados Eletrônicosem Estruturas Semicondutoras (20)

Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Físi...
Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Físi...Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Físi...
Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Físi...
 
análise dimensional f
 análise dimensional f análise dimensional f
análise dimensional f
 
análise dimensional f
análise dimensional fanálise dimensional f
análise dimensional f
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de Partículas
 
diss_felipe_rev1
diss_felipe_rev1diss_felipe_rev1
diss_felipe_rev1
 
TF-VBF
TF-VBFTF-VBF
TF-VBF
 
65531 1
65531 165531 1
65531 1
 
Prof. Dr. Fabrício Härter
Prof. Dr. Fabrício HärterProf. Dr. Fabrício Härter
Prof. Dr. Fabrício Härter
 
326 td 01_p
326 td 01_p326 td 01_p
326 td 01_p
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdf
 
Relatorio_Parcial_rev2
Relatorio_Parcial_rev2Relatorio_Parcial_rev2
Relatorio_Parcial_rev2
 
Apostila Matlab
Apostila MatlabApostila Matlab
Apostila Matlab
 
Métodos numéricos aplicados à engenharia química
Métodos numéricos aplicados à engenharia químicaMétodos numéricos aplicados à engenharia química
Métodos numéricos aplicados à engenharia química
 
Quatro alternativas para resolver a equação de Schrödinger para o átomo de hi...
Quatro alternativas para resolver a equação de Schrödinger para o átomo de hi...Quatro alternativas para resolver a equação de Schrödinger para o átomo de hi...
Quatro alternativas para resolver a equação de Schrödinger para o átomo de hi...
 
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
 
Relatório I
Relatório IRelatório I
Relatório I
 
Excitação coerente de um vapor atômico por trens de pulsos ultracurtos e lase...
Excitação coerente de um vapor atômico por trens de pulsos ultracurtos e lase...Excitação coerente de um vapor atômico por trens de pulsos ultracurtos e lase...
Excitação coerente de um vapor atômico por trens de pulsos ultracurtos e lase...
 
Introd logica mat ii
Introd logica mat iiIntrod logica mat ii
Introd logica mat ii
 
Pac elementos finitos 1 a parte
Pac elementos finitos 1 a partePac elementos finitos 1 a parte
Pac elementos finitos 1 a parte
 
Elementos finitos 1 a parte
Elementos finitos 1 a parteElementos finitos 1 a parte
Elementos finitos 1 a parte
 

Cálculo de Estados Eletrônicosem Estruturas Semicondutoras

  • 1. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 1 Relatório de Iniciação Científica Cálculo de Estados Eletrônicos em Estruturas Semicondutoras Período: 01/08/2013 a 30/06/2014 Instituição: Laboratório de Novos Materiais Semicondutores do Instituto de Física da USP Bolsista: Thiago Luiz Chaves de Melo Orientadora: Profa. Euzi Conceição Fernandes da Silva Resumo Neste trabalho foi apresentado o método Split-Step FFT que permite evoluir numericamente funções de onda submetidas a potenciais arbitrários. O método – através do que é chamado de propagação imaginária – permite a obtenção dos autoestados e autofunções soluções da Equação de Schrödinger para o potencial em questão. A técnica foi utilizada para calcular autoestados e autofunções em um potencial típico de estruturas semicondutoras compostas, levando-se em conta as dimensões proporcionais de sua composição. Isso foi possível devido ao fato de o método Split-Step FFT atribuir comportamento periódico a suas soluções, algo que se encaixa perfeitamente no contexto de cristais semicondutores cujo arranjo é conhecidamente periódico. No final é apresentado um método mais rápido de propagação para funções de onda baseado em programação paralela. Índice 1. Introdução .................................................................................................................. 2 1.1. A Mecânica Quântica e a Física do Estado Sólido....................................... 2 1.1.1. Formalismo Quântico................................................................................... 3 1.1.2. Brevíssima Introdução à Física do Estado Sólido ..................................... 5 2. Método Split-Step FFT ................................................................................................ 9 2.1. A Transformada Rápida de Fourier................................................................... 9
  • 2. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 2 2.2. A solução numérica da Equação de Schrödinger...................................... 16 2.3. Unidades atômicas........................................................................................... 23 2.4. Implementação do algoritmo ........................................................................ 24 2.5. Aplicação do método a um potencial típico de uma estrutura semicondutora ......................................................................................................... 30 2.6. Autofunções e autovalores em função da largura do poço .................... 30 3. Método das Diferenças Finitas com Programação Paralela............................ 36 3.1. Equações diferenciais parciais ....................................................................... 36 3.2. Diferenças Finitas para Equações Parabólicas ............................................ 37 3.3. Programação paralela .................................................................................... 40 4. Conclusão................................................................................................................. 44 5. Bibliografia ................................................................................................................ 45 1. Introdução 1.1. A Mecânica Quântica e a Física do Estado Sólido A descoberta e posteriores desdobramentos da Mecânica Quântica permitiu que o ser humano olhasse novamente para a natureza sob uma nova óptica. Uma das áreas por onde esse novo olhar pairou foi a ciência dos materiais. Desde eras muito distantes no tempo pessoas já utilizavam materiais diferentes para as mais diversas finalidades. Independente de quais eram suas motivações, o fato é que novos materiais foram sempre sendo descobertos, aperfeiçoados e até mesmo sintetizados. Classificando os materiais como: cerâmicas, metais e plásticos. É possível pensar em vasos de barro (cerâmicas), laminas (metais) e borrachas (plásticos). É bastante razoável imaginar que esses utensílios eram encontrados com facilidade em uma sociedade da virada século XIX para o XX. Após o advento da Mecânica Quântica, pode-se dizer que a história foi reescrita em termos de aperfeiçoamento e desenvolvimento de novos materiais. A compreensão do universo na escala atômica permitiu que novos materiais fossem estruturados desde essa escala, o que se traduziu em objetos capazes de reagir ao ambiente na sua forma mais fundamental. Materiais avançados concebidos através dessa nova compreensão da natureza são inúmeros e estão tão assimilados a realidade que passam desapercebidos de tão comuns.
  • 3. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 3 Muitos ramos da física estão intrinsecamente relacionados com a ciência dos materiais. Em especial a Física do Estado Sólido exerce um papel fundamental. 1.1.1. Formalismo Quântico A grosso modo, toda a Mecânica Quântica parte da Equação de Schrödinger, que assim como a segunda lei de Newton, é uma equação que permite se obter todas as informações à respeito da dinâmica de um sistema. A Equação de Schrödinger que pode ser vista na Eq. 1, ( ) ( ) ( ) (1) é extremamente genérica ao permitir que todo o sistema seja expresso em termos de sua massa e de sua interação com o meio, ou seja, o potencial . O asterisco no símbolo da massa se refere à massa efetiva, algo que será discutido mais adiante. Por mais que a Eq. 1 seja extremamente genérica, ela contém um problema absolutamente não trivial, que é o cálculo de ( ). Chamada de função de onda, a função ( ) é de onde será possível extrair todas as informações a respeito do sistema. Antes de entrar no mérito de como se obtem ( ), é interessante saber como ela pode ser capaz de fornecer tantas informações. A aplicação de operadores sobre ( ) permite a obtenção de determinados valores. Por exemplo, em um sistema com conservação de energia total em um determinado instante de tempo , o operador hamiltoniano aplicado sobre a função de onda deve satisfazer a seguinte condição, ( ) ( ) (2) sendo a energia cinética e a energia potencial. Sendo assim, a aplicação de sobre a função de onda precisa ser igual a multiplicação do valor de pela função. A aplicação de um operador sobre um vetor resultando em um número escalar multiplicado pelo proprópio vetor só ocorre quando esse vetor for um dos chamados autovetores da função e os valores de escalares são os autovalores. Sendo a função ( ) como um vetor de dimensão infinita, ela pode ser chamada de autofunção. O fato importante aqui é o seguinte: se o sistema realmente conservar sua energia e ( ) for realmente a função de onda desse sistema, então a Eq. 2 será verdadeira. Isso reflete o fato de a função de onda conter informações sobre o sistema. Sendo assim, dado que ( ) é a função de onda de um sistema conservativo, ela é automaticamente autofunção do operador hamiltoniano com autovalor igual ao valor da energia do sistema.
  • 4. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 4 Ao invés de se aplicar o operador hamiltoniano , cujos autovalores são os valores de energia, pode-se aplicar outros operadores, como por exemplo os operadores de momento angular , cujos autovalores serão os valores de momento angular ou , cujos autovalores serão os valores da projeção do momento angular sobre o eixo . Esses são apenas exemplos comuns. Outro detalhe importantíssimo à respeito de ( ) é que seu módulo ao quadrado | ( )| é uma distribuição de probabilidade, ou seja ( ) ∫| ( )| (3) é a probabilidade de que o sistem definido por ( ) se encontre dentro da região , seja lá de quantas dimensões se esteja tratando. Um último detalhe importante antes de mergulhar na obtenção de ( ) é que 〈 ( )〉 ∫ ( ) ( ) ( ) (4) ou seja, a integral da Eq. 4 permite encontrar o valor médio do operador ( ) dentro da região . Se ( ) , então a Eq. 4 resultará no valor médio da energia do sistema descrito por ( ) dentro da região . A maneira mais comum de se resolver a Eq. 1 afim de se encontrar ( ) é supor um instante de tempo no qual a energia se conserve. Nesse instante, as Eq. 1 e a Eq. 2 serão essencialmente a mesma. Isso acontece pois ( ) (5) onde, em mecânica quântica, . Esses passos levam a ( ) ( ) ( ) (6) onde tudo o mais fica em função do potencial , ou seja, a interação do sistema com o meio. Para alguns potenciais existem soluções analíticas para esse problema, mas a grande maioria dos casos, incluídos ai os de maior interesse, não existem ou são muito complicadas de se obter. Outra maneira de se chegar a Eq. 6 é supondo que ( ) pode ser escrita como ( ) ( ) ( ), substituir isso na Eq. 1 e quebrá-la da seguinte forma ( ) ( ) ( ) ( ) ( ) (7)
  • 5. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 5 ( ( ) ( )) ( ) ( ) ( ) (8) ( ) ( ) ( ) ( ) ( ) (9) Uma abordagem bastante comum é de se escrever a função ( ) como uma combinação linear de um conjunto ortogonormal de funções, onde cada uma dessas componentes individualmente representa uma possível autofunção do sistema correspondendo à uma possível autovalor. A própria Eq. 9 se trabalhada levará a isso. Como o instante de tempo poderia ser qualquer e as autofunções instantâneas dependem apenas do potencial que nesse instante dependerá apenas das coordenadas espaciais, a propria autofunção obtida para esse instante de tempo não terá dependência temporal, sendo apenas ( ) ( ). A decomposição de ( ) será ( ) ∑ ( ) (10) onde as funções ( ) apresetarão a propriedade de ∫ ( ) ( ) (11) com sendo todo o espaço. A partir da segunda parte da Eq. (9), é possível chegar a solução chegal do problema incluindo sua dependência temporal ( ) ∑ ( ) ( ) ∑ ( ) ⁄ (12) Esta é apenas uma breve introdução não muito coerente, mas que busca por expor alguns dos conceitos utilizados mais adiante. 1.1.2. Brevíssima Introdução à Física do Estado Sólido Muitos materiais quando estão no estado sólido apresentam aquilo que é chamado de estrutura cristalina. Os cristais possuem algumas propriedades que facilitam em muito seu tratamento quântico. Entre essas propriedades, a mais importante é o seu arranjo periódico. Todo cristal possui um arranjo primário, chamado de célula unitária. Esse arranjo primário se repete indefinidamente através do cristal. Por exemplo, a Figura 1 mostra uma célula unitária e o cristal a que ela da origem.
  • 6. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 6 Figura 1 - Célula unitária e cristal resultante de sua repetição. Existe uma série de propriedades a respeito das possíveis células unitárias que um cristal pode apresentar. É interessante frisar que a repetição do padrão, sob o ponto de vista da Mecânica Quântica, permite a resolução do sistema para uma célula unitária e supor sua repetição indefinida, uma vez que as dimensões dos materiais são, em boa aproximação, infinitas se comparadas às dimensões dos sistemas quânticos que serão tratados. É possível posicionar uma rede padronizado por sobre um cristal, tendo como pontos da rede seus átomos, grupos de átomos ou mesmo posições regularmente espaçadas entre átomos. Essa rede é chamada de rede cristalina ou rede de Bravais. Uma característica interessante a respeito da rede de Bravais é que através de um conjunto de vetores (1 em uma dimensão, 2 em duas dimensões e 3 em três dimensões) é possível ligar todos os pontos da rede. Esses vetores e suas combinações são chamados de vetores da rede. Um exemplo de rede de Bravais com seus vetores primitivos é mostrado na Figura 2.
  • 7. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 7 Figura 2 - Exemplo de rede cristalina com seus vetores primitivos. Para um conjunto de todos os possíveis vetores de uma rede de Bravais, é possível encontrar um conjunto de vetores de onda (para ondas planas) cuja periodicidade seja idêntica a da rede em questão. Esse conjunto de vetores de onda recebe o nome de rede recíproca. Matemáticamente, se forem os vetores primitivos da rede de Bravais . Então qualquer vetor da rede pode ser escrito como ∑ (13) sendo as componentes do vetor na direção . O mesmo vale para os vetores da rede recíproca : ∑ (14) que apresentam a seguinte propriedade conjunta (15) através da qual, conhecendo-se os vetores da rede de Bravais (ou direta) é possível encontrar os vetores da rede recíproca e vice-versa. Não existe uma única célula unitária para cada rede direta, sendo possíveis algumas variações. Um tipo de célula que sempre é possível se construir é a chamada célular primitiva de Wigner-Seitz, que pode ser entendida a partir da Figura 3.
  • 8. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 8 Figura 3 - Célula Primitiva de Wigner-Seitz para uma rede cristalina. Também existem células primitivas na rede recíproca. A célular primitiva de Wigner-Seitz da rede recíproca recebe o nome de Primeira Zona de Brillouin. O teorema mais importante em Física do Estado Sólido é o Teorema de Bloch. Sendo uma rede direta um arranjo periódico de átomos, ou algo do tipo, é razoável de se esperar que o potencial também seja periódico ( ) ( ) (16) para todos os vetores da rede. O teorema de Bloch diz que ( ) ( ) (17) é a solução da equação de Schrödinger Eq. (1) para o potencial da Eq. (16). Onde ( ) ( ) (18) é uma função periódica para todo . É interessante que, ( ) ( ) ( ) ( ) (19) portanto: ( ) ( ) (20) sendo as Eq. (17) e Eq. (20) as duas possíveis formas do teorema de de Bloch, em conjunto com a Eq. (16) do potencial. Esta brevíssima introdução tem apenas o objetivo de como a Mecânica Quântica é introduzida na Física do Estado Sólido, basicamente através do teorema de Bloch.
  • 9. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 9 2. Método Split-Step FFT 2.1. A Transformada Rápida de Fourier É possível de se representar uma função qualquer em um intervalo qualquer através de uma Série de Fourier. ( ) ∑ ∑ (21) sendo ∫ ( ) ∫ ( ) (22) com sendo o intervalo onde essa representação da função ( ) é válida. Fora desse intervalo, a representação se comportará como uma repetição deslocada em , chamada de repetição de Fourier, que pode ser vista na Figura 4. Figura 4 - Representação de Fourier e extensões de Fourier Modificando um pouco as Eq. (21) e Eq. (22), chega-se a: ( ) ∑ (23) sendo, ( ) ( ) (24)
  • 10. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 10 Uma Tranformada de Fourier consiste de se levar uma função ( ) do espaço de para um outro espaço ( ) através de um núcleo de transformação ( ). Isso se processa da seguinte forma: ( ) √ ∫ ( ) (25) Sendo a transformada inversa: ( ) √ ∫ ( ) (26) ( ) ∫ ∫ ( ) (27) A Transformada de Fourier advem de alguma forma das Séries de Fourier [1, pgs. 708-709]. A vantagem de se usar Transformadas de Fourier para levar funções de um espaço para outro é que muitas equações diferenciais tem sua solução facilitadas através desse processo. A Figura 5 [1, pg. 707], ilustra essa ideia. Figura 5 - Processo de resolução de problema difícil através de Transformada de Fourier [1, pg. 707]. A Eq. (1), a Equação de Schrödinger é uma equação diferencial. Utilizar Transformadas de Fourier para resolvê-la é um caminho, mas o foco deste trabalho é utilizar soluções computacionais para resolver o problema. A Eq. (27) não pode ser tratada diretamente por um computador. Sua alternativa é chamada de Transformada Discreta de Fourier (TDF). A TDF consiste em algumas modificações na transformada original. Primeiramente é necessário se definit um conjunto de pontos sobre os quais a transformada será realizada. Em um intervalo com de comprimento, tem-se que: (28)
  • 11. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 11 (29) e também se define: (30) (31) que substituindo na Eq. (25) e trocando a integral por uma somatória: ( ) √ ∑ ( ) (32) ( ) ∑ ∑ ( ) (33) unindo as Eq. (28) e Eq. (30), tem-se que: (34) modificando isso na Eq. (33): ( ) ∑ ∑ ( ) ( ) ( ) ∑ ∑ ( ) (35) ( ) ∑ ∑ ( ) (36) A Transformada Discreta de Fourier fica, então: ( ) ∑ ( ) (37) e a transformada inversa: ( ) ∑ ( ) (38) sendo: (39)
  • 12. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 12 É importante notar o seguinte: para o cálculo de cada um dos valores de ( ) é necessário realizar operações. A transformada discreta consome ( ) operações e o mesmo para a transformada inversa. Computacionalmente a TDF é muito cara. Um computador com clock de , implicando em um tempo de máquina , que levar em média ciclos de máquina para fazer cada operação, levará: ( ) para realizar a transformada de 10.000 pontos. Além do tempo que o computador levará para resolver o problema estando no espaço inverso, ele levará outros para realizar a transformada inversa. Se o programa precisar realizar essa tarefa muitas vezes, como é o caso do método que será discutido nas próximas seções, poderá consumir um tempo muito grande. Uma forma de se resolver esse problema é utilizando a Transformada Rápida de Fourier. Todo o método a seguir está descrito em [2, pgs. 392-409]. Esse método permite um aumento na velocidade da TDF através do reaproveitamento de multiplicações. O termo chave é o seguinte: ( ) (40) que subtituído na Eq. (37): ( ) ∑ ( ) (41) Agora vem algo muito importante: precisa ser uma potência de , isso ficará claro a seguir. Os valores de ( ) serão: ( ) ( ( ) ( ) ( ) ( ) ( ) ) ( ) ( ( ) ( ) ( ) ( ) ( ) ) ( ) ( ( ) ( ) ( ) ( ) ( ) ) ( ) ( ( ) ( ) ( ) ( ) ( ) ) ( ) ( ( ) ( ) ( ) ( ) ( ) ( ) ) Pode-se representar isso da seguinte forma:
  • 13. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 13 ( ( ) ) ( ( ) ( ) ( ) ( ) ( )) ( ( ) ( ) ( ) ( ) ( )) (42) Lembrando que da Eq. (40), é um número complexo. Para complexos, é válido: ( ) , já que: ( ) ( ) ( ) ( ) ( ), pela lei dos cossenos. Desta forma, , , , , , . A matriz então pode ser modificada para: ( )( ( ) ( ) ( ) ( ) ( )) ( ( ) ( ) ( ) ( ) ( )) (43) Agora só serão necessários os cálculos de até , todos os outros são desnecessários. O próximo passo é separar o produto de matrizes acima em pares: ( ) ( ( ) ( ) ( ) ( ) ( )) ( ( ) ( ) ( ) ( ) ( ) ) (44) e ímpares: ( )( ( ) ( ) ( ) ( ) ( )) ( ( ) ( ) ( ) ( ) ( ) ) (45)
  • 14. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 14 A Eq. (44) apresenta apenas as colunas pares enquanto que a Eq. (45) apresenta apenas as colunas ímpares. A soma das equações Eq. (44) e Eq. (45) deve ser igual a Eq. (43). Dado que a matriz da Eq. (44) possui linhas, a coluna da direita que cai da seguinte forma: , , , , vai checar a zero novamente na linha ⁄ , que é a primeira linha da segunda metade da matriz, de cima para baixo. Outras regras semelhantes valem para as outras colunas. Dai em diante a matriz se repete, sendo a metade superior igual a metade inferior. A seguir isso é exemplificado para . ( ) ( ( ) ( ) ( ) ( )) ( ( ) ( ) ( ) ( ) ( ) ) (46) ( ) ( ( ) ( ) ( ) ( )) ( ( ) ( ) ( ) ( ) ( ) ) (47) As equações a seguir representam as Eq. (44) e Eq.(45), respectivamente: ( ) ∑ ( ) ⁄ (48) ( ) ∑ ( ( )) ( ) ⁄ (49) Modificando a Eq. (41): ( ) ( ) ( ) (50) ( ) ( ∑ ( ) ⁄ ∑ ( ( )) ( ) ⁄ ) (51)
  • 15. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 15 ( ) ( ∑ ( ) ⁄ ∑ ( ( )) ⁄ ) (52) Definindo: ( ) ( ) ( ) ( ) (53) ( ) ( ∑ ( ) ⁄ ∑ ( ) ⁄ ) (53) Com essa alteração, o lado porção ímpar da Eq. (43) passa a apresentar um comportamento semelhante ao visto na Eq. (46), ou seja, uma repetição da metade superior na metade inferior, diferindo apenas do fato de todos seus termos estarem multiplicados por . Voltando agora para a Eq. (41) e comparando-a com as Eq. (53) e Eq. (40). Mudando ⁄ a Eq. (40) fica: ( ⁄ ) ( ) (54) Defindindo: (55) Modifica-se a Eq. (53) para: ( ) ( ∑ ( ) ⁄ ∑ ( ) ( ) ⁄ ∑ ( ) ⁄ ∑ ( ) ( ) ⁄ ) (56) Definindo novamente: ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (57) A Eq. (56) é conduzida a: ( ) ( ∑ ( ) ⁄ ∑ ( ) ⁄ ( ∑ ( ) ⁄ ∑ ( ) ⁄ )) (58)
  • 16. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 16 A Eq. (58) tem o poder de tranformar as Eq. (44) e Eq. (45) de modo que as primeiras ⁄ linhas da matriz se repitam matriz abaixo, diminuindo mais uma vez o número de valores de que precisam serem calculados. Esse processo deve ser repetido até que a quantidade de linhas da matriz que se repetem sejam apenas duas, está é a razão de precisar ser uma potência de . Esse processo pode ser atingido por meio de um algoritmo recursivo, que apesar de já existir, será um exercício interessante para o relatório final. 2.2. A solução numérica da Equação de Schrödinger A forma utilizada aqui para se resolver a Equação de Schrödinger numéricamente se encaixão no conjunto dos métodos conhecidos como métodos espectrais. Esses métodos se apoiam fortemente na decomposição da função de onda solução do problema como na Eq. (12). O procedimento descrito a seguir é descrito em [5]. De forma semelhante a descrita na Eq. (12), a evolução temporal em de uma função ( ) pode ser dada por ( ) ⁄ ( ) (59) Separando como na Eq. (5), ( ) ( ( ) ) ⁄ ( ) (60) onde a exponencial não pode ser separada de forma exata devido a não comutabilidade entre ( ) e [ ( ) ] ( ) ( ( ) ( )) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (( ( )) ( ) ( ) ( )) ( ) ( ( ) ( ) ( ) ( )) [ ( )] ( ) (61) Entretando, cada separação na exponencial da Eq. (60) adiciona um erro da ordem de ( ). De modo que: ( ) ⁄ ( ) ⁄ ( ) ( ) (62) e, ainda:
  • 17. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 17 ( ) ( ) ⁄ ⁄ ( ) ⁄ ( ) ( ) (63) podendo ser aproximada por ( ) ( ) ⁄ ⁄ ( ) ⁄ ( ) (64) se o intervalo for suficientemente pequeno. Utilizando a Eq. (64) para evoluir em uma função ( ) ( ) ( ) ⁄ ⁄ ( ) ⁄ ( ) (65) esse processo pode ser repetido indefinidamente para evoluir uma função inicial conhecida a partir de seus autoestados. A grande dificuldade encontra-se no cálculo do fator ⁄ , já que ele apresenta uma derivada segunda nas coordenadas espaciais. A solução desse problema é um amontoado de todo o amontoado que já foi dito até aqui. O materiais semicondutores apresentam estrutura cristalina, como foi dito na seção 1.1.2. Isso significa que a cada certa distância o sistema unitário se repete. Esse é o tipo de problema ideal para ser resolvido através de Transformadas de fourier. Em [6], onde são discutidas técnicas a respeito de crescimento de semiconditores utilizando um processo chamado Molecular Beam Epitaxy (MBE) – uma técnica utilizada no Laboratório de Novos Materiais Semicondutores do Instituto de Física da USP, será explicada em maiores detalhes no relatório final – onde o material produzido apresenta simetria em duas direções, só sofrendo alterações do ponto de vista quântico na terceira. Isso é esboçado na Figura 6.
  • 18. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 18 Figura 6 - Esquema de material que pode ser crescido com MBE submetido a uma diferença de potencial. Na Figura 6, um sólido composto por dois semicondutores diferentes, intercalados, que for submetido a uma difereça de potencial conforme indicada, apresentara diferenças sob o ponto de vista de um tratamento quântico apenas na direção . Para sólidos como o da Figura 6 o problema precisa ser resolvido apenas em 1 dimensão. Essa direção será chamada de por conveniência. A partir da Eq. (65): ( ) ( ) ⁄ ( ) (66) ( ) ⁄ ( ) (67) ( ) ⁄ ( ) (68) A exponencial da Eq. (68) carrega uma derivada segunda em . A forma utilizada para se trabalhar esse termo é: ∑ (69) Se: ̃( ) ∑ ( ) (70) for a TDF de ( ) dada pela Eq. (37), então, pela Eq. (38):
  • 19. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 19 ( ) ∑ ̃( ) (71) é uma forma de se representar ( ), de modo que: ( ) ⁄ ∑ ̃( ) (72) ( ) ∑ ( ) ∑ ̃( ) (73) ( ) ∑ ( ) ( ) ∑ ̃( ) (74) ( ) ∑ ( ) ∑ ̃( ) ( ) (75) Individualmente: ( ) ( ) ( ) (( ) ) ( ) ( ) ( ) ( ) ( ) Sendo assim, por indução é possível mostrar que: ( ) ( ) (76) ( ) ∑ ( ) ∑ ̃( )( ) (77) Invertenco a ordem das somatórias: ( ) ∑ ∑ ( ) ̃( ) (78) ( ) ∑ ̃( ) (79) Finalmente, multiplica-se ( ) pela parcela restante do potencial. ( ) ( ) ⁄ ( ) (80)
  • 20. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 20 Esse procedimento permite evoluir uma função ( ) em , entretanto o que se busca são as autofunções e autovalores. Supondo conhecidas todas as autofunções ( ), todos os autovalores e todos os pesos de cada autofunção na composição de ( ), então: ( ) ∑ ( ) ⁄ (81) O processo utilizando para se descobrir essas autofunções e autovalores é chamado de propagação imaginária. O primeiro passo é substituir por na Eq. (81). ( ) ∑ ( ) ⁄ (82) O próximo passo é normalizar essa função: ( ) ∑ ( ) ⁄ √ ( ) ( ) (83) ( ) ∑ ( ) ⁄ √(∑ ( ) ⁄ )(∑ ( ) ⁄ ) (84) ( ) ∑ ( ) ⁄ √∑ | | ⁄ (85) Isso porque, por definição: ∮ ( ) ( ) (86) Os autovalores de energia respeitam a seguinte ordem: . Sabendo disso e reformulando a Eq. (85). ( ) ∑ ( ) ⁄ √| | ⁄ ∑ | | ⁄ (87) ( ) ∑ ( ) ⁄ ⁄ √ ∑ | | | | ( ) ⁄ (88)
  • 21. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 21 ( ) ∑ ( ) ( ) ⁄ √ ∑ | | | | ( ) ⁄ (89) ( ) ( ) ∑ ( ) ( ) ⁄ √ ∑ | | | | ( ) ⁄ (90) Sendo a menor de todas as energias, as exponenciais tanto do numerador quando do denominador da Eq. (90) tendem a zero quando . Isso porque: . Isso significa que: ( ) ( ) (91) A evolução temporal de ( ) com permite a obtenção do estado fundamental ( ). Os estados excitados são obtidos através do método da Ortogonalização de Gram-Schmidt, bastante comum em algebra linear para ortogonalização de um conjunto de votores não ortogonais inicialmente, ou seja, se { } for um conjunto de vetores de dimensão não ortogonais, então: (92) ( ) ( ) (93) ( ) ( ) (94) O novo conjunto de vetores { } é ortogonal. Da mesma forma, supõem-se um conjunto inicial de funções { ( ) ( ) ( ) ( )}. Com ( ) ( ). Se o primeiro estado excitado for: ( ) ∑ ⁄ ( ) (95) Então o método diz que: ( ) ( ) 〈 ( )| ( )〉 ( ) √〈 ( )| ( )〉 |〈 ( )| ( )〉| (96) ( ) ( ) 〈 ( )| ( )〉 ( ) √∑ | | ⁄ |〈 ( )| ( )〉| (97) 〈 ( )| ( )〉 ⁄ (98)
  • 22. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 22 ( ) ( ) 〈 ( )| ( )〉 ( ) √∑ | | ⁄ | | ⁄ (99) ( ) ( ) 〈 ( )| ( )〉 ( ) √| | ⁄ | | ⁄ ∑ | | ⁄ | | ⁄ (100) ( ) ( ) 〈 ( )| ( )〉 ( ) √| | ⁄ ∑ | | ⁄ (101) ( ) ∑ ( ) ⁄ ( ) ( ) ⁄ ( ) √ ∑ | | | | ( ) ⁄ (102) ( ) ( ) ∑ ( ) ⁄ ( ) √ ∑ | | | | ( ) ⁄ (103) Onde, novamente: ( ) ( ) (104) Este processo pode ser generalizado da seguinte forma: ( ) ( ) ∑ ( ) ⁄ ( ) √ ∑ | | | | ( ) ⁄ (105) ( ) ( ) (106) Depois de todas as autofunções serem obtidas, é possível obter os autovalores através da Equação de Schrödinger, Eq. (1). [ ( )] ( ) ( ) (107) 〈 ( )| [ ( )] | ( )〉 〈 ( )| | ( )〉 (108)
  • 23. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 23 〈 ( )| [ ( )] | ( )〉 〈 ( )| ( )〉 (109) Como o processo todo é realizado, na verdade, com uma função discreta a valores discretos, é interessante introduzir um método de se calcular a derivada segunda de uma função discreta: ( ) [ ( ) ( ) ( ) ( ) ( )] ( ) (110) Essa fórmula não é utilizada por [5]. Será interessante no relatório final checar se ela realmente acrescenta precisa ao método ou se todas as aproximações feitas até aqui já tornar ela irrelevante. 2.3. Unidades atômicas A razão de se utilizar unidades atômicas é devido ao esforço computacional gasto computando números da ordem de para menores. Essa técnica consiste em se multiplicar as equações trabalhadas por constantes que as tornem menos custosas ao processamente. Tomando como exemplo a Equação de Schrödinger, Eq. (6): ( ) ( ) ( ) (111) ( ) ( ) ( ) (112) Se a massa especícica for definida como: (113) sendo a massa do elétron e uma constante. Reformulando a Eq. (112): ( ) ( ) ( ) (114) ( ) ( ) ( ) (115) ( ) ( ) ( ) (116) Se a Eq. (116) for resolvida para , que deve ser o potencial real multiplicado por ⁄ , os autovalores obtidos serão , que precisarão serem multiplicados por ⁄ para se chegar aos valores verdadeiros. Só com essa pequena alteração o programa de computador já deixará de processar diversas vezes as constantes:
  • 24. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 24 (117) (118) 2.4. Implementação do algoritmo A seguir está o algoritmo desenvolvido utilizando a linguagem de programação Python e que implementa o método explicado na seção 1.3. Importante: toda vez que aparece o caracter “” (barra invertida), significa uma quebra de linha, ou seja, a linha de baixo é continuação da linha na qual se encontra a “” independente de qualquer coisa. 001.| ####################################################### 002.| ## Iniciacao Cientifica ## 003.| ## Thiago Luiz Chaves de Melo, 6431429 - IF-USP 2013 ## 004.| ## Prof Dra. Euzi Conceicao Fernandes da Silva ## 005.| ####################################################### 006.| import numpy as np 007.| import matplotlib.pyplot as plt 008.| import scipy.integrate as integrate 009.| import matplotlib.animation as animation 010.| import cmath 011.| import math 012.| import copy as cp 013.| import sys 014.| 015.| class Wpuap: 016.| 017.| def __init__(self): 018.| self.bohr_radius = 5.291772108e-11 019.| self.charge = 1.60217653e-19 020.| self.pot = 1.0e-16 021.| self.angstrom = 1e-10 022.| self.me = 9.1093826e-31 023.| self.h_bar = 6.58211915e-16 024.| self.dt = 5.73e-3 025.| 026.| self.system_length = 300 # (Ã…) 027.| #self.well_width = 100 # (Ã…) 028.| self.well_height = 0.3 # (eV) 029.| self.well_width = np.arange(5, 105, 5) # (Ã…) 030.| 031.| self.system_size = self.system_length / 032.| (self.bohr_radius / self.angstrom) 033.| self.number_of_points = 1024 034.| self.autovalue_adjust = ((self.h_bar)**2) / self.me 035.| self.time_ajust = self.me*((self.bohr_radius)**2) / 036.| self.h_bar 037.| self.orbitals = 12 038.| self.sub_propagate = 100 039.| self.imaginary = True 040.| self.error = 100.0 041.| self.maxError = 1e-8 042.| self.cw = 7
  • 25. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 25 043.| self.initialize() 044.| 045.| def initialize(self): 046.| self.total_time = 0 047.| self.wave_max_value = 0 048.| self.co = 0 049.| self.max_pot = 0.0 050.| self.min_pot = 0.0 051.| self.pot_graph_rate = 20.0 052.| self.potential = [] 053.| self.m_ef = [] 054.| self.autovalue_adjust_r = [] 055.| self.potential2show = [] 056.| self.wave = [] 057.| self.wave2 = [] 058.| self.wave2_4_visualization = [] 059.| self.wave2_last_iteration = [] 060.| self.axis = [] 061.| self.autoValues = [] 062.| self.last_auto_value = 1e30 063.| for n in range(0, self.orbitals): 064.| self.wave.append([]) 065.| self.wave2.append([]) 066.| self.wave2_4_visualization.append([]) 067.| self.wave2_last_iteration.append([]) 068.| self.autoValues.append([]) 069.| self.generatePotential() 070.| self.initializeWave() 071.| self.generateWave2(1) 072.| self.wave2_last_iteration[0] = cp.copy(self.wave2[0]) 073.| 074.| def printStates(self): 075.| f = open("saidas/autovalores_e_autofuncoes_" + ("%d" % 076.| self.cw) + ".txt", "w") 077.| #f.write("nnn%d" % self.cw) 078.| for n in range(0, self.co + 1): 079.| f.write("nn%.10fn" % self.getAutoValue(n)) 080.| for m in range(0, self.number_of_points): 081.| f.write("%.10ft" % (self.wave[n][m] * 082.| self.wave[n][m].conjugate()).real) 083.| f.close() 084.| 085.| def propagateOnce(self): 086.| if self.error < self.maxError: 087.| if self.getAutoValue(self.co) > self.well_height 088.| or self.co >= self.orbitals - 1: 089.| self.printStates() 090.| self.cw += 1 091.| if self.cw < len(self.well_width): 092.| self.initialize() 093.| else: 094.| sys.exit() 095.| else: 096.| self.co += 1 097.| self.last_auto_value = 1e30 098.| for n in range(0, self.sub_propagate): 099.| self.multiplyByHalfPotential() 100.| self.multiplyByKinetic() 101.| self.multiplyByHalfPotential() 102.| self.orthonormalize() 103.| self.generateAutoValues()
  • 26. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 26 104.| #self.generateWave2(1) 105.| self.calculateError() 106.| self.total_time = self.total_time + self.dt 107.| 108.| def gaussian(self, x, u, sigma): 109.| return (np.exp(-((x-u)**2)/(2*(sigma**2)))+ 110.| np.exp(-((x+u)**2)/(2*(sigma**2)))) 111.| 112.| def calculateError(self): 113.| self.error = np.fabs((self.last_auto_value - 114.| self.autoValues[self.co]) / self.last_auto_value) 115.| self.last_auto_value = self.autoValues[self.co] 116.| 117.| def generatePotential(self): 118.| self.min_pot = 0 119.| for n in range(0, self.number_of_points): 120.| x = -self.system_size/2.0+n*(self.system_size / 121.| float(self.number_of_points)) 122.| if n < int(self.number_of_points * 123.| (self.system_length 124.| -self.well_width[self.cw]) / 125.| (2.0 * self.system_length)) or n > int( 126.| self.number_of_points * (self.system_length 127.| +self.well_width[self.cw]) / (2.0 * 128.| self.system_length)): 129.| self.potential.append(self.well_height / 130.| 2.1026038911) 131.| self.m_ef.append(1.0) 132.| else: 133.| self.potential.append(0.0) 134.| self.m_ef.append(0.067) 135.| self.potential2show.append(self.potential[n]) 136.| self.axis.append(x) 137.| for n in range(0, self.number_of_points): 138.| self.min_pot = min(self.min_pot, self.potential[n]) 139.| self.max_pot = max(self.max_pot, self.potential[n]) 140.| for n in range(0, self.number_of_points): 141.| self.potential2show[n] = (self.potential2show[n] - 142.| self.min_pot) * self.pot_graph_rate / 143.| (self.max_pot-self.min_pot) 144.| 145.| def transformToDirect(self): 146.| self.wave[self.co] = np.fft.ifft(self.wave[self.co]) 147.| 148.| def transformToReciprocal(self): 149.| self.wave[self.co] = np.fft.fft(self.wave[self.co]) 150.| 151.| def multiplyByHalfPotential(self): 152.| img = 1j if not self.imaginary else 1.0 153.| for n in range(0, self.number_of_points): 154.| self.wave[self.co][n] = self.wave[self.co][n] * 155.| np.exp(-img*self.dt*self.potential[n]/(2.0)) 156.| 157.| def multiplyByKinetic(self): 158.| self.transformToReciprocal() 159.| k = 2.0*np.pi/(self.system_size) 160.| img = 1j if not self.imaginary else 1.0 161.| for n in range(0, self.number_of_points): 162.| km = k*float(n) if n < self.number_of_points/2 163.| else k*float(n-self.number_of_points) 164.| self.wave[self.co][n] = self.wave[self.co][n]
  • 27. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 27 165.| * np.exp(-img*self.dt*((km)**2) / 166.| (2.0*self.m_ef[n])) 167.| self.transformToDirect() 168.| 169.| def orthonormalize(self): 170.| dx = self.system_size/float(self.number_of_points) 171.| i = self.co 172.| total_dot = 0.0 173.| for n in range(0, self.number_of_points): 174.| total_dot += self.wave[i][n].conjugate() * 175.| self.wave[i][n] 176.| total_dot *= dx 177.| for n in range(0, i): 178.| value = 0.0 179.| for m in range(0, self.number_of_points): 180.| value += self.wave[n][m].conjugate() * 181.| self.wave[i][m] 182.| value *= dx 183.| total_dot -= (value*value.conjugate()).real 184.| for n in range(0, i): 185.| dot_prod = 0.0 186.| for m in range(0, self.number_of_points): 187.| dot_prod += self.wave[n][m].conjugate() * 188.| self.wave[i][m] 189.| dot_prod *= dx 190.| for m in range(0, self.number_of_points): 191.| self.wave[i][m] -= dot_prod*self.wave[n][m] 192.| for n in range(0, self.number_of_points): 193.| self.wave[i][n] = self.wave[i][n]/(total_dot**0.5) 194.| 195.| def initializeWave(self): 196.| dx = self.system_size/float(self.number_of_points) 197.| sigma = 0.87 198.| a = 1.9 199.| for i in range(0, self.orbitals): 200.| legendre = self.legendrePolynomials(i, 201.| -self.system_size/2.0, 202.| self.system_size/2.0) 203.| for n in range(0, self.number_of_points): 204.| self.wave[i].append(legendre(self.axis[n]) * 205.| complex(self.gaussian(self.axis[n], a, 206.| sigma),0.0)) 207.| total_dot = 0.0 208.| for n in range(0, self.number_of_points): 209.| total_dot += self.wave[i][n].conjugate() * 210.| self.wave[i][n] 211.| total_dot *= dx 212.| for n in range(0, i): 213.| value = 0.0 214.| for m in range(0, self.number_of_points): 215.| value += self.wave[n][m].conjugate() * 216.| self.wave[i][m] 217.| value *= dx 218.| total_dot -= (value*value.conjugate()).real 219.| for n in range(0, i): 220.| dot_prod = 0.0 221.| for m in range(0, self.number_of_points): 222.| dot_prod += self.wave[n][m].conjugate() * 223.| self.wave[i][m] 224.| dot_prod *= dx 225.| for m in range(0, self.number_of_points):
  • 28. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 28 226.| self.wave[i][m] -= dot_prod*self.wave[n][m] 227.| for n in range(0, self.number_of_points): 228.| self.wave[i][n] = self.wave[i][n]/ 229.| (total_dot**0.5) 230.| 231.| def generateAutoValues(self): 232.| dx = self.system_size/float(self.number_of_points) 233.| dx2 = dx**2 234.| value = 0.0 235.| for n in range(0, self.number_of_points): 236.| derived = -30.0*self.wave[self.co][n] 237.| if n > 1: 238.| derived += -self.wave[self.co][n-2]+16.0* 239.| self.wave[self.co][n-1] 240.| elif n == 1: 241.| derived += 16.0*self.wave[self.co][n-1] 242.| if n < self.number_of_points-2: 243.| derived += 16.0*self.wave[self.co][n+1]- 244.| self.wave[self.co][n+2] 245.| elif n == self.number_of_points-2: 246.| derived += 16.0*self.wave[self.co][n+1] 247.| derived /= 12.0*dx2 248.| 249.| value += (self.wave[self.co][n].conjugate())*(-(1/ 250.| (2.0*self.m_ef[n]))*derived+self.potential[n] * 251.| self.wave[self.co][n]) 252.| self.autoValues[self.co] = dx*value.real 253.| 254.| def getAutoValue(self, n): 255.| if n < len(self.autoValues): 256.| return self.autoValues[n]*self.autovalue_adjust 257.| return 0.0 258.| 259.| def getTime(self): 260.| return self.total_time*self.time_ajust 261.| 262.| def getWave2(self, n): 263.| return (self.axis, self.wave2_4_visualization[n]) 264.| 265.| def getPotential(self): 266.| return (self.axis, self.potential2show) 267.| 268.| def energy(self): 269.| return 0.0 270.| 271.| def getError(self): 272.| return self.error 273.| 274.| def getMaxPot(self): 275.| return self.max_pot/self.autovalue_adjust 276.| 277.| def getMinPot(self): 278.| return self.min_pot/self.autovalue_adjust 279.| 280.| def getCurrentWidth(self): 281.| return self.cw 282.| 283.| def generateWave2(self, forVisualization): 284.| adj = 1.0 285.| self.wave_max_value = 0.0 286.| if forVisualization:
  • 29. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 29 287.| max_pot = max(self.potential2show) 288.| for i in range(0, self.orbitals): 289.| for n in range(0, self.number_of_points): 290.| self.wave_max_value = max( 291.| self.wave_max_value, ( 292.| self.wave[i][n] * 293.| self.wave[i][n].conjugate()).real) 294.| #max_pot = 1.0 295.| adj = max_pot/self.wave_max_value 296.| firstTime = not len(self.wave2[0]) 297.| for i in range(0, self.orbitals): 298.| for n in range(0, self.number_of_points): 299.| value = (self.wave[i][n] * 300.| self.wave[i][n].conjugate()).real 301.| if firstTime: 302.| self.wave2_4_visualization[i].append(adj * 303.| value) 304.| self.wave2[i].append(value) 305.| else: 306.| self.wave2_4_visualization[i][n] = adj*value 307.| self.wave2[i][n] = value 308.| 309.| def areaUnderTheCurve(self): 310.| return self.simpson(self.wave2[self.co]) 311.| 312.| def simpson(self, array): 313.| h = self.system_size/float(self.number_of_points) 314.| n = 0 315.| I = array[0] 316.| for n in range(1, self.number_of_points-2): 317.| if (n % 2 != 0): 318.| I = I+4.0*array[n] 319.| elif (n % 2 == 0): 320.| I = I+2.0*array[n] 321.| I = I+array[self.number_of_points-1] 322.| I = (h/3.0)*I; 323.| return I 324.| 325.| def legendrePolynomials(self, n, a, b): 326.| return eval('lambda x: '+ self.legendreStr(n, a, b)) 327.| 328.| def legendreStr(self, n, a, b): 329.| if n == 0: 330.| return '(1.0)' 331.| elif n == 1: 332.| return '(('+str(b)+'-'+str(a)+')*x/2.0+('+str(b) + 333.| '+'+str(a)+')/2.0)' 334.| else: 335.| return '((2.0*float('+str(n)+')+1.0)/(float(' + 336.| str(n)+')+1.0))*(('+str(b)+'-'+str(a) + 337.| ')*x/2.0+('+str(b)+'+'+str(a)+')/2.0)*(' 338.| +self.legendreStr(n-1,a,b)+')-(float('+ 339.| str(n)+')/(float('+str(n)+')+1.0))*('+ 340.| self.legendreStr(n-2,a,b)+')' 341.| 342.| 343.| evolution = Wpuap() 344.| while True: 345.| evolution.propagateOnce() 346.|
  • 30. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 30 2.5. Aplicação do método a um potencial típico de uma estrutura semicondutora O algoritmo da seção anterior foi aplicado a um sistema semelhante ao da Figura 6. O tamanho do sistema foi fixado em e um posso de potencial central teve sua largura variada, como é sugerido na Figura 7. Figura 7 - Potencial semelhante ao sentido por um elétron dentro de uma estrutura semicondutora composta. O fato de uma estrutura semicondutora como a da Figura 6 poder ser representada através do potencial da Figura 7 é que por ser composta de dois materias diferentes intercalados, o primeiro impõe uma barreira de potencial de uma determinada altura. Se o material no centro impor uma barreira um tanto menor e depois disso vier novamente uma parcela do primeiro material, o resultado vai ser um potencial como o mostrado na Figura 7, sendo o gap de energia entre os dois materiais. 2.6. Autofunções e autovalores em função da largura do poço Como já foi explicado anteriormente, apenas reforçando, foi utilizado o método Split-Step FFT com propagação imaginária a fim de se obter os autovalores e as autofunções de um potencial como o da Figura 7.
  • 31. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 31 O potencial utilizado teve sua altura mantida em , enquanto que a largura do poço foi aumentando a partir de de em . A dinâmica utilizada foi a seguinte: Figura 8 - Dinâmica utilizada para cálculo dos autoestados e autofunções. Utilizando esse processo da Figura 8, conforme a largura do poço aumenta, mais autoestados “cabem” dentro desse posso. Tabela 1 - Autoestados em função da largura do poço. Energia (eV) E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 Largura(Å) 5 0,173 0,510 -- -- -- -- -- -- -- -- -- 10 0,064 0,246 0,498 -- -- -- -- -- -- -- -- 15 0,033 0,130 0,283 0,477 -- -- -- -- -- -- -- 20 0,020 0,079 0,175 0,305 -- -- -- -- -- -- -- 25 0,013 0,053 0,118 0,207 0,319 -- -- -- -- -- -- 30 0,009 0,037 0,083 0,147 0,228 0,324 -- -- -- -- -- 35 0,007 0,028 0,064 0,113 0,175 0,251 0,338 -- -- -- -- 40 0,005 0,022 0,049 0,087 0,135 0,193 0,262 0,340 -- -- -- 45 0,004 0,018 0,040 0,070 0,110 0,157 0,214 0,278 0,349 -- -- 50 0,004 0,014 0,032 0,057 0,089 0,128 0,173 0,226 0,285 0,350 -- 55 0,003 0,012 0,027 0,048 0,075 0,108 0,146 0,191 0,241 0,296 0,357 A Tabela 1 mostra os autoestados até o primeiro que possui energia maior do que a altura da barreira para diversos valores de largura do poço. Quanto maior a largura, mais autovalores “cabem” dentro do poço.
  • 32. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 32 Figura 9 - Gráfico de energia em função da largura do poço. O gráfico da Figura 9 mostra mais claramente o comportamento presente na Tabela 1, ou seja, quanto maior a largura do poço, menor é a energia de cada autoestado e, consequentemente, mais autoestados possuirão valor inferior ao da barreira de potencial em ambos os lados do poço. Isso é um resultado surpreendente pois reflete a capacidade impressionante de o método representar um possível fenômeno físico: quanto menor o espaço disponível, mais difícil é de se colocar mais elétrons (de mesmo spin) nesse espaço, isso se traduz através dos valores elevados dos autoestados iniciais. É interessante notar na Tabela 1 que o autoestado fundamental para um poço de largura possui um valor quase igual ao de um estado para um poço de largura . 0 0.1 0.2 0.3 0.4 0.5 0.6 5 10 15 20 25 30 35 40 45 50 55 Energia(eV) Largura (Å) Energia x Largura do Poço E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10
  • 33. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 33 Os gráficos a seguir mostram alguns poços do mais estreito e o mais largo, exemplificando os comportamentos explicados até aqui. Figura 10 - Potencial V (x) e autofunções para L = 5Å, funções de onda posicionadas na altura dos autoestados, mas amplitude fora de escala. Figura 11 - Potencial V (x) e autofunções para L = 20Å, funções de onda posicionadas na altura dos autoestados, mas amplitude fora de escala. 0 0.1 0.2 0.3 0.4 0.5 0.6 -60 -40 -20 0 20 40 60 V(x)(eV)/|ψn(x)|2 x (Å) Densidade de Probabilidade |ψn(x)|2 e Potencial V (x) |ψ0(x)|2 |ψ1(x)|2 V(x) 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 -60 -40 -20 0 20 40 60 V(x)(eV)/|ψn(x)|2 x (Å) Densidade de Probabilidade |ψn(x)|2 e Potencial V (x) |ψ0(x)|2 |ψ1(x)|2 |ψ2(x)|2 |ψ3(x)|2 V(x)
  • 34. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 34 Figura 12 - Potencial V (x) e autofunções para L = 35Å, funções de onda posicionadas na altura dos autoestados, mas amplitude fora de escala. 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 -60 -40 -20 0 20 40 60 V(x)(eV)/|ψn(x)|2 x (Å) Densidade de Probabilidade |ψn(x)|2 e Potencial V (x) |ψ0(x)|2 |ψ1(x)|2 |ψ2(x)|2 |ψ3(x)|2 |ψ4(x)|2 |ψ5(x)|2 |ψ6(x)|2 V(x)
  • 35. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 35 Figura 13 - Potencial V (x) e autofunções para L = 55Å, funções de onda posicionadas na altura dos autoestados, mas amplitude fora de escala. É interessante notar que quanto maior a largura do poço, mais “liberdade” (ou espaço) o elétron possui, não sendo “forçado” a ficar próximo as bordas do poço. 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 -60 -40 -20 0 20 40 60 V(x)(eV)/|ψn(x)|2 x (Å) Densidade de Probabilidade |ψn(x)|2 e Potencial V (x) |ψ0(x)|2 |ψ1(x)|2 |ψ2(x)|2 |ψ3(x)|2 |ψ4(x)|2 |ψ5(x)|2 |ψ6(x)|2 |ψ7(x)|2 |ψ8(x)|2 |ψ9(x)|2 |ψ10(x)|2 V(x)
  • 36. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 36 3. Método das Diferenças Finitas com Programação Paralela 3.1. Equações diferenciais parciais De grande interesse em numerosas áreas da física teórica, as equações diferenciais parciais, ou EDPs, são equações do tipo: ( ) (119) Em que ( ) é a função solução de . As derivadas podem ser de qualquer ordem e inclusive serem mistas, ou seja: A ordem da maior derivada presente na Eq. (119) determina a ordem da EDP. Existem muitas classes de EDPs, e a procura por suas soluções constitui um grande ramo da matemática de grande interesse para a física teórica. Uma classe muito importante de EDPs são as equações parciais de segunda ordem da forma: ( ) ( ) ( ) ( ) (120) Sendo ( ) , , e funções contínuas em , respeitando ainda ( ) . Utilizando uma analogia com cônicas, essa classe de EDP pode ser subidividida em três tipos:  Hiberbólico: na região em que ;  Elíptico: na região em que ;  Parabólico: na região em que ; Para cada um dos tipos acima convem uma abordagem especifica a fim de facilitar o seu tratamento e encontrar suas soluções. A Equação de Schrödinger, Eq (1) é uma equação do tipo parabólica. Rearranjando a Eq. (1) é possível obter: ( ) ( ) ( ) ( ) (121) Identificando os termois: ( ) ( ) ( ) (122) De modo que , ou seja, parabólica.
  • 37. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 37 Tratamentos adequados para os demais tipos (hiperbólico e parabólico) podem ser encontrados na referência [3], aqui será dado enfoque para o tratamento de EDPs do tipo parabólico. 3.2. Diferenças Finitas para Equações Parabólicas A ideia é aproximar as derivadas parciais da seguinte forma: ( ) ( ) ( ) (123) Essa aproximação é chamada de diferenças finitas progressivas. As derivadas parciais também podem ser aproximadas por diferenças finitas regressivas: ( ) ( ) ( ) (124) Existe ainda uma terceira forma, chamada de diferenças finitas centrais: ( ) ( ) ( ) ( ) (125) Utilizando as Eq. (123) e Eq. (124), calcula-se as derivadas parciais de segunda ordem. ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (126) Retornando à equação de Schrödinger, em uma dimensão: ( ( )) ( ) ( ) (127) É possível rearranjá-la da seguinte forma: ( ) ( ) ( ) ( ) (128) Se ( ) estiver definida em um intervalo [ ] (sem perda de generalidade), é conveniente discretizar este intervalo em partes da seguinte forma: ( ) (129) É conveniente, ainda, definir ( ) ( ). Utilizando essa notação e substituindo as Eq. (125) e Eq. (126) na Eq. (127): ( ) ( ) ( ) ( ) ( ) ( ) ( ) (130) A substituição de ( ) por ( ) e as demais, indica cada ponto . A Eq. (130) pode ser reescrita na forma:
  • 38. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 38 ( ) ( ) ( ) ( ( ) ( )) ( ) ( ) ( ) (131) A Eq. (131) é uma equação matricial: ( ) ( ) ( ) ( ) (132) Isto pode ser entendido da seguinte forma: ( ) [ ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ] (133) ( ) [ ( ) ( ) ( ) ( )] (134) ( ) [ ( ) ( ) ( ) ( )] (135) Onde: ( ) ( ) (136) ( ) ( ( ) ( )) (137) ( ) ( ) (138) Na Eq. (131) é possível adotar uma estratégia chamada de método de Crank-Nicolson. A ideia é utilizar diferenças finitas progressivas no lado esquerdo e realizar a média aritmética do tempo e no lado direito. Antes disso, convém adotar uma notação adequada: ( ) (139)
  • 39. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 39 Onde denota os valores espaciais, enquanto que denota valores temporais. Sendo assim: e . Procedendo com o método de Crank-Nicolson e adotando essa notação: ( ) ( ) ( ) (140) ( ) ( ) ( ) ( ) ( ) ( ) (141) {[ ] [ ]} (142) Finalmente: [ ] [ ] (143) Que apesar de não parecer, é o resultado procurado. A Eq. (143), assim como a Eq. (131) é uma equação matricial: ( ) ( ) ( ) ( ) ( ) ( ) (144) Subtraindo ( ) e multiplicando ambos os lados pela matriz inversa de ( ). Obtem-se: ( ) ( )[ ( ) ( ) ( ) ( )] (145) As matrizes ( ) e ( ) dependem das condições de contorno e são como a matriz ( ) da Eq. (134). Para completar a notação, é conveniente adotar: [ ] (146) Explicitando um pouco as coisas: [ ] (147) ( ) [ ] (148)
  • 40. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 40 [ ] (149) ( ) [ ] (150) (151) (152) (153) A Eq. (146) é uma alternativa à Eq. (64). A diferença entre elas é que enquanto a Eq. (64) se utiliza de transformadas diretas e inversas de Fourier para calcular ( ) a partir de ( ), a Eq. (146) faz uso de inversões e multiplicações de matrizes. Utilizando a Eq. (64), obteve-se resultados muito bons, entretanto o tempo utilizado fui grande e existe a dificuldade de se introduzir um potencial que dependa do tempo, indispensável para que se possa simular campos elétricos e magnéticos. As matrizes em questão são muito grandes, idealmente da ordem de , mas espera-se que com a utilização de técnicas de programação paralela descritas na próxima seção, seja possível realizar esse procedimento de inversão e multiplicação de matrizes mais rápido do que as transformadas diretas e inversas de Fourier. 3.3. Programação paralela Devido aos limites físicos atingidos na indústria de processadores, tais como a impossibilidade de aumento da frequência de clock e a própria limitação da velocidade da luz, surgiu uma nova técnica para solução problemas computacionais. Esta técnica se baseia na ideia de dividir o problema em várias partes simples que possam ser resolvidas individualmente e simultaneamente para serem unidas novamente no final, gerando a solução do problema.
  • 41. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 41 A programação paralela é desenvolvida geralmente para operar em um conjunto muito grande de processadores bastante simples individualmente, mas que em conjunto são capazes de gerar muito mais processamento do que um único processador mais complexo. A NVIDIA® é uma empresa multinacional norte americana que desenvolve placas de vídeo. Essas placas são bastante difundidas por serem capazes de renderizar vídeos em alta definição, geralmente presentes em jogos. Placas de vídeo são o ambiente perfeito para a programação paralela, pois são compostas de centenas de processadores. A própia NVIDIA® desenvolveu o CUDA™, uma plataforma capaz de auxiliar no desenvolvimento de programas de alto desempenho através de computação paralela. Um processador comum é chamado de CPU (Central Processing Unit) enquanto que uma placa de vídeo é chamada de GPU (Graphics Processing Unit). Um programa normal é processado serialmente, ou seja, o processador processa em fila cada um dos conjuntos de dados que vão sendo enviados a ele junto com as instruções. Já é comum que os computadores pessoais e notebooks venham de fábrica com processadores compostos por mais de um núcleo, geralmente conhecidos como Dual Core, Quad Core, etc. Nesses casos, existem duas ou mais filas de processamento. Cada núcleo é capaz de processar qualquer conjunto de dados, dependendo somente das instruções que ele recebe. Na figura a seguir está representado um modelo de como funciona o processamente em uma CPU. Figura 14 - Modo de processamento em uma CPU. Ou seja, muitos tipos de dados podem ser processados serialmente desde que contenham as instruções adequadas. Já em uma GPU, dados do mesmo tipo, que podem ser tratados utilizando as mesmas instruções são tratados paralelamente, como na figura a seguir.
  • 42. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 42 Figura 15 - Modo de processamento em uma GPU. Como é possível ver na Figura 15, a GPU consegue processar muito mais dados simultaneamente do que uma CPU, a unica limitação é que as instruções para eles deve ser a mesma. Também é importante ressaltar que a CPU é responsável por controlar o funcionamento da GPU, fornecenso-lhe as instruções necessárias para o processamento dos dados. 3.4. Diferenças Finitas com Computação Paralela A Eq. (146) permite a evolução de um sistema quântico dependente do tempo. Após descobrir as eutofunções e autovalores pelo método Split-Step FFT, é possível utilizar esse método para propagar uma onda que for uma combinação desses estados. Utilizando o método Split-Step FFT, obtem-se autoestados para um potencial não tependende do tempo, mas se for utilizada propagação imaginária para a Eq. (146), é possível descobrir autoestados de potenciais dependentes do tempo. Entretanto, não é possível descobrir autoestados de um potencial independente do tempo. Para descobrir os autoestados de um potencial dependente do tempo ou para propagar uma função de onda combinação de autoestados já conhecidos pode-se utilizar programação paralela. O processo por traz da Eq. (146) consiste basicamente em multiplicações, somas e inversões de matrizes. Esse processo é repetido arbitrariamente e pode ser muito bustoso.
  • 43. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 43 A multiplicação de duas matrizes de ordem é um processo que envolve operações. A Eq. (146) envolve duas operações de multiplicação. O processo de multiplicação de matrizes mais simples é o seguinte: [ ] [ ] [ ∑ ∑ ∑ ∑ ∑ ∑ ∑ ∑ ∑ ] (154) Isso significa que as operações podem ser separadas em operações de custo e essas operações são completamente independentes entre si. Esse é um caso perfeito para aplicação de programação paralela, essas operações podem ser processadas paralelamente. A inversão de matriz que precisa ser processada na Eq. (146) pode ser resolvida através de decomposição LU. Nesse método, uma matriz (A) é decomposta em duas outras (L e U), de modo que o produto dessas duas resulte na própria matriz (A). Além disso, a matriz L é uma matriz triangular inferior (Low) e a matriz U é uma matriz triangular superior (Up). [ ] [ ] [ ] (155) As matrizes L e U podem ser obtidas por meio de eliminação gaussiana, sendo a matriz U o resultado da eliminação e a matriz L composta pelos multiplicadores e preenchida pelo valor na diagonal principal. O método da eliminação gaussiana pode ser encontrado em [3, pg. 68]. De posse das matriz L e U, de acordo com [3, pg. 80]: ( ) (156) Sendo , então: ∑ { (157) Sendo , então: ∑ (158)
  • 44. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 44 4. Conclusão É impressionante como o método utilizado (Split-Step FFT) é capaz de representar os sistemas quânticos a que se aplica, mas como citado, ele possui algumas limitações relacionadas a não abrangência de situações como, por exemplo, aplicação de campos externos. O método das diferenças finitas é mais abrangente, não só por se adequar a potenciais dependentes do tempo, como os causados por campos externos, mas também por ser passível de ser tratado com computação paralela, que pode tornar o processo muito mais rápido. Como desvantagem, esse método não possibilita a obtenção dos autoestados para um potencial independente do tempo. É interessante observar os gráficos da seção 2.6 e notar como “cabem” mais estados quânticos dentro de um poço de acordo com sua largura. Esse é o tipo de coisa da qual estudantes de física já esperam que terão que se desapegar. É importante ressaltar que o método das diferenças finitas é muito flexível. Apesar de ter sido desenvolvido apenas para equações parabólicas, que é a categoria na qual a Equação de Schrödinger dependente do tempo se encaixa, é possível reformular o método para que ele se encaixe a outras categorias de equações. Apesar de este trabalho ser basicamente um exercício de mecânica quântica, que utiliza a física do estado sólido apenas como pano de fundo. Seu objetivo principal é ser subisídio para futuros trabalhos nessa área. O próximo passo é buscar dados experimentais. Os dados experimentais que mais se adequriam a esse trabalho seriam os valores de energia medidos em estruturas semicondutoras compostas, pois sua composição ditaria o potencial e as massas específicas a serem utilizadas e os valores de energia seriam uma boa forma de se averiguar se a saída do sistema condiz com a realidade. Um outro passo seria buscar uma forma de se utilizar programação paralela para calcular autoestados de um potencial independente do tempo, pois mesmo para aplicações em potenciais dependentes do tempo (em razão da presença de campos externos) é quase sempre necessário se conhecer os autoestados do material (sem a aplicação dos campo). O processo de cálculo de autoestados pelo método Split-Step FFT é muito custoso. Levou 7 dias para que os dados da seção 2.6 fossem calculados.
  • 45. RELATÓRIO DE INICIAÇÃO CIENTÍFICA AO CNPQ IF – USP / 2014 Thiago L. C. Melo | Orientadora: Profa. Euzi Conceição Fernandes da Silva 45 5. Bibliografia [1] Arfken, G. B; Weber, H. J. Título: Física Matemática – Métodos Matemáticos para Engenharia e Física. Rio de Janeiro: Elsevier, 2007. [2] Transational College of LEX. Título: Who is Fourier? A Mathematical Adventure. Boston: Language Research Foundation, 2006. [3] Sperandio, D.; Mendes, J. T.; Silva, L. H. M. Título: Cálculo Numérico – Características Matemáticas e Computacionais dos Métodos Numéricos. São Paulo: Pearson Prentice Hall, 2003. [4] Ashcroft, N. W.; Mermin, N. D. Título: Física do Estado Sólido. São Paulo: Cengage Learning, 2011. [5] Degani, M. H.; Maialle, M. Z. Título: Numerical Calculations of the Quantum States in Semiconductor Nanostructures. Journal of Computational and Theorical Nanoscience, United States of America, Vol. 7, 454-473, 2010. [6] Levin, A. Título: Propriedades óticas de estruturas semicondutoras com dopagem planar do tipo n ou p. Tese (Doutorado em Física) – Instituto de Física, Universidade de São Paulo, São Paulo, 1998.