Monte Carlo Cinético - Kinetic Monte Carlo

O método cinético Monte Carlo (KMC) é uma simulação computacional do método Monte Carlo que visa simular a evolução temporal de alguns processos que ocorrem na natureza. Normalmente, esses são processos que ocorrem com taxas de transição conhecidas entre os estados. É importante entender que essas taxas são entradas para o algoritmo KMC, o método em si não pode predizê-las.

O método KMC é essencialmente o mesmo que o método Monte Carlo dinâmico e o algoritmo de Gillespie .

Algoritmos

Uma classificação possível dos algoritmos KMC é como KMC de rejeição (rKMC) e KMC sem rejeição (rfKMC).

KMC livre de rejeição

Taxas de transferência entre um estado inicial e quatro estados finais
Em cada etapa, o sistema pode saltar para vários estados finais, as taxas de transferência entre o estado inicial e todos os estados finais possíveis devem ser conhecidas.
Escolha do estado final: uma var aleatória é escolhida entre 0 e Γ tot ; a probabilidade de que o sistema salte para o estado i é proporcional a Γ i .

Um algoritmo rfKMC, muitas vezes chamado apenas de KMC, para simular a evolução no tempo de um sistema, onde alguns processos podem ocorrer com taxas conhecidas r, pode ser escrito, por exemplo, da seguinte forma:

  1. Defina a hora .
  2. Escolha um estado inicial k .
  3. Forme a lista de todas as taxas de transição possíveis no sistema , do estado k para um estado genérico i . Os estados que não se comunicam com k terão .
  4. Calcule a função cumulativa para . A taxa total é .
  5. Obtenha um número aleatório uniforme .
  6. Encontre o evento para realizar i encontrando o i para o qual (isso pode ser alcançado de forma eficiente usando a pesquisa binária ).
  7. Execute o evento i (atualize o estado atual ).
  8. Obtenha um novo número aleatório uniforme .
  9. Atualize a hora com , onde .
  10. Volte para a etapa 3.

(Nota: porque o valor médio de é igual à unidade, a mesma escala de tempo médio pode ser obtida usando em vez disso na etapa 9. Neste caso, no entanto, o atraso associado com a transição i não será extraído da distribuição de Poisson descrita por a taxa , mas será a média dessa distribuição.)

Este algoritmo é conhecido em diferentes fontes como o algoritmo de tempo de residência ou a forma n- dobrada ou o algoritmo de Bortz-Kalos-Lebowitz (BKL) . É importante notar que o intervalo de tempo envolvido é uma função da probabilidade de que todos os eventos i não ocorreram.

Rejeição KMC

Rejeição KMC tem normalmente a vantagem de um tratamento de dados mais fácil e cálculos mais rápidos para cada etapa tentada, uma vez que a ação demorada de obter todos não é necessária. Por outro lado, o tempo evoluído em cada etapa é menor do que no rfKMC. O peso relativo dos prós e contras varia de acordo com o caso em questão e com os recursos disponíveis.

Um rKMC associado às mesmas taxas de transição acima pode ser escrito da seguinte forma:

  1. Defina a hora .
  2. Escolha um estado inicial k .
  3. Obtenha o número de todas as taxas de transição possíveis, do estado k para um estado genérico i .
  4. Encontre o evento candidato a realizar i por amostragem uniforme das transições acima.
  5. Aceite o evento com probabilidade , onde é um limite superior adequado para . Muitas vezes, é fácil encontrar sem ter que calcular tudo (por exemplo, para probabilidades de taxa de transição de Metrópolis).
  6. Se aceito, execute o evento i (atualize o estado atual ).
  7. Obtenha um novo número aleatório uniforme .
  8. Atualize a hora com , onde .
  9. Volte para a etapa 3.

(Nota: pode mudar de uma etapa MC para outra.) Este algoritmo é geralmente chamado de algoritmo padrão .

Comparações teóricas e numéricas entre os algoritmos foram fornecidas.

Algoritmos dependentes do tempo

Se as taxas dependem do tempo, a etapa 9 no rfKMC deve ser modificada por:

.

A reação (etapa 6) deve ser escolhida após isso por

Outro algoritmo muito semelhante é chamado de Método de Primeira Reação (FRM). Consiste em escolher a primeira reação que ocorre, ou seja, escolher o menor tempo e o número de reação correspondente i , da fórmula

,

onde são N números aleatórios.

Comentários sobre o algoritmo

A propriedade chave do algoritmo KMC (e do FRM) é que se as taxas estão corretas, se os processos associados às taxas são do tipo de processo Poisson e se diferentes processos são independentes (ou seja, não correlacionados), então algoritmo fornece a escala de tempo correta para a evolução do sistema simulado. Houve algum debate sobre a exatidão da escala de tempo para algoritmos rKMC, mas isso também foi rigorosamente demonstrado como correto.

Se, além disso, as transições seguem o equilíbrio detalhado , o algoritmo KMC pode ser usado para simular o equilíbrio termodinâmico. No entanto, o KMC é amplamente utilizado para simular processos de não equilíbrio, caso em que o equilíbrio detalhado não precisa ser obedecido.

O algoritmo rfKMC é eficiente no sentido de que toda iteração tem garantia de produzir uma transição. No entanto, na forma apresentada acima, ele requer operações para cada transição, o que não é muito eficiente. Em muitos casos, isso pode ser muito melhorado categorizando os mesmos tipos de transições em compartimentos e / ou formando uma estrutura de dados em árvore dos eventos. Um algoritmo de escala de tempo constante desse tipo foi desenvolvido e testado recentemente.

A principal desvantagem do rfKMC é que todas as taxas e reações possíveis devem ser conhecidas com antecedência. O método em si não pode fazer nada para prevê-los. As taxas e reações devem ser obtidas a partir de outros métodos, tais como experimentos de difusão (ou outros), dinâmica molecular ou simulações da teoria funcional da densidade .

Exemplos de uso

KMC tem sido usado em simulações dos seguintes sistemas físicos:

  1. Difusão de superfície
  2. Mobilidade de deslocamento
  3. Crescimento de superfície
  4. Difusão de vacância em ligas (este era o uso original)
  5. Engrenagem da evolução do domínio
  6. Mobilidade e agrupamento de defeitos em sólidos irradiados com íons ou nêutrons, incluindo, mas não se limitando a, modelos de acumulação de dano e amorfização / recristalização.
  7. Viscoelasticidade de redes fisicamente reticuladas

Para dar uma idéia do que os "objetos" e "eventos" podem ser na prática, aqui está um exemplo simples e concreto, correspondendo ao exemplo 2 acima.

Considere um sistema onde átomos individuais são depositados em uma superfície um de cada vez (típico de deposição física de vapor ), mas também podem migrar na superfície com alguma taxa de salto conhecida . Nesse caso, os "objetos" do algoritmo KMC são simplesmente átomos individuais.

Se dois átomos estiverem próximos um do outro, eles ficarão imóveis. Então, o fluxo de átomos que chegam determina uma taxa r de depósito , e o sistema pode ser simulado com KMC considerando todos os átomos móveis depositados que (ainda) não encontraram uma contraparte e se tornaram imóveis. Dessa forma, são possíveis os seguintes eventos em cada etapa do KMC:

  • Um novo átomo chega com taxa de depósito r
  • Um átomo já depositado dá um salto com a taxa w .

Depois que um evento foi selecionado e realizado com o algoritmo KMC, é necessário verificar se o átomo novo ou recém-saltado tornou-se imediatamente adjacente a algum outro átomo. Se isso aconteceu, o (s) átomo (s) que agora são adjacentes precisam ser movidos para longe da lista de átomos móveis e, correspondentemente, seus eventos de salto removidos da lista de eventos possíveis.

Naturalmente, ao aplicar o KMC a problemas de física e química, deve-se primeiro considerar se o sistema real segue os pressupostos subjacentes ao KMC bem o suficiente. Processos reais não têm necessariamente taxas bem definidas, os processos de transição podem ser correlacionados, no caso de saltos de átomos ou partículas os saltos podem não ocorrer em direções aleatórias, e assim por diante. Ao simular escalas de tempo amplamente díspares, também é necessário considerar se novos processos podem estar presentes em escalas de tempo mais longas. Se qualquer uma dessas questões for válida, a escala de tempo e a evolução do sistema prevista pelo KMC podem estar distorcidas ou mesmo completamente erradas.

História

A primeira publicação que descreveu as características básicas do método KMC (ou seja, usando uma função cumulativa para selecionar um evento e um cálculo de escala de tempo da forma 1 / R ) foi por Young e Elcock em 1966. O algoritmo de tempo de residência também foi publicado quase ao mesmo tempo.

Aparentemente independente do trabalho de Young e Elcock, Bortz, Kalos e Lebowitz desenvolveram um algoritmo KMC para simular o modelo de Ising , que eles chamaram de caminho n-fold . O básico de seu algoritmo é o mesmo de Young, mas eles fornecem muito mais detalhes sobre o método.

No ano seguinte, Dan Gillespie publicou o que agora é conhecido como algoritmo de Gillespie para descrever reações químicas. O algoritmo é semelhante e o esquema de avanço de tempo essencialmente o mesmo que no KMC.

Não há até o momento da redação deste (junho de 2006) nenhum tratado definitivo da teoria do KMC, mas Fichthorn e Weinberg discutiram a teoria para simulações KMC de equilíbrio termodinâmico em detalhes. Uma boa introdução é dada também por Art Voter, [1] e por APJ Jansen, [2] , e uma revisão recente é (Chatterjee 2007) ou (Chotia 2008). A justificativa do KMC como uma granulação grossa da dinâmica de Langevin usando a abordagem de distribuição quase estacionária foi desenvolvida por T. Lelièvre e colaboradores.


Em março de 2006, o, provavelmente, o primeiro software comercial usando Kinetic Monte Carlo para simular a difusão e ativação / desativação de dopantes em silício e materiais semelhantes ao silício é lançado pela Synopsys , relatado por Martin-Bragado et al.

Variedades de KMC

O método KMC pode ser subdividido de acordo com a forma como os objetos se movem ou como ocorrem as reações. Pelo menos as seguintes subdivisões são usadas:

  • Lattice KMC ( LKMC ) significa KMC realizado em uma rede atômica . Freqüentemente, essa variedade também é chamada de KMC atomística ( AKMC ). Um exemplo típico é a simulação de difusão de vacância em ligas , onde uma vacância é permitida saltar ao redor da rede com taxas que dependem da composição elemental local.
  • Objeto KMC ( OKMC ) significa KMC realizado para defeitos ou impurezas , que estão saltando em direções aleatórias ou específicas da rede. Apenas as posições dos objetos saltadores são incluídas na simulação, não aquelas dos átomos da rede de 'fundo'. A etapa básica do KMC é um salto de objeto.
  • Evento KMC ( EKMC ) ou KMC de primeira passagem ( FPKMC ) significa uma variedade OKMC onde a seguinte reação entre objetos (por exemplo, agrupamento de duas impurezas ou vacância - aniquilação intersticial ) é escolhida com o algoritmo KMC, levando em consideração as posições do objeto, e este evento é então realizado imediatamente.

Referências

links externos