DM de potenciais descontínuos

De Física Computacional
Revisão de 13h02min de 20 de junho de 2016 por Amorim (discussão | contribs)
Ir para navegação Ir para pesquisar

Dinâmica molecular de potenciais descontínuos é uma abordagem computacional utilizada para determinar o movimento de partículas duras que só interagem por forças de contato. Assim, fica evidente a diferença entre o potencial Lennard-Jones pois este se baseia em uma interação de curto alcance, como é mostrado em DM: um primeiro programa. Para entender como as colisões ocorrem, conhecer a forma do potencial a ser estudado é vital. Como estamos considerando corpos rígidos, ou seja, que não sofrem deformação, percebe-se que a força de contato entre as partículas será infinita e o tempo de interação zero, o que torna impossível a descrição do problema a partir de uma integração de movimento simples. O método utilizado, a ser explicitado aqui, que resolve este problema é o evento dirigido.

Evento dirigido

A ideia do método para resolver o problema do força infinita é, ao invés de avançar o sistema em pequenos passos de tempo dt, avançar a simulação conforme as colisões forem ocorrendo. Para isso deve-se encontrar o par de partículas i,j que colidirá no menor intervalo de tempo entre todas as partículas, denotaremos tal intervalo por dtmin, e, então, avançar o sistema. Neste ponto teremos dois objetos colados, portanto aqui deve ser feita a mudança de velocidades de tal forma a respeitar uma colisão elástica.

Fluxograma de um programa simples usando o método de evento dirigido com a otimização aqui explicitada.

Determinação do tempo de colisão

Os objetos a serem usados para o cálculo do tempo de colisão entre um par de partículas i,j serão discos de raio σi, σj, de distância denotada por σ. Portanto, segue que a condição de colisão é:

|ri(t+dtij)rj(t+dtij)|=σ

Com ri sendo o vetor posição da partícula i e dtij o tempo de colisão entre as partículas i,j. Tal condição nos leva a determinação de dtij a partir da expressão:

dtij={se d<0se Δr.Δv>0Δr.Δv+dΔv.Δvnos demais casos

Onde d(Δr.Δv)2(Δv.Δv)(Δr.Δrσ2), Δr=rirj e Δv=vivj.
Com isso, consegue-se determinar o valor de dtmin encontrando o menor valor de dtij.

Mudança de velocidade em uma colisão elástica

Para fazer a mudança de velocidades temos que considerar o caso de colisão elástica entre as partículas i,j, sendo impulso dado por:

J=2mimj(Δr.Δv)σ2(mi+mj)Δr.

Assim, a variação de velocidades pode ser determinada por:

Δvi=Jmi e Δvj=Jmj.

Otimização básica

Dado uma simulação de N partículas, determinar o valor de dtmin é da ordem de N2, ou seja, evitar fazer esse processo todo passo de tempo economiza grande parte do tempo computacional. Uma forma simples de fazer isso é determinar e armazenar o menor dtij para cada partícula i e o índice j antes do loop temporal e a cada passo de tempo determinar o valor de dtmin a partir dos dtij armazenados. Assim, a cada passo de tempo seria necessário apenas atualizar o valor de dtij das partículas i,j e das que colidiriam com i ou j.

Implementação computacional

Adição do campo gravitacional