4.2 Solu¸c˜ ao das equa¸c˜ oes de movimento
4.2.1 Ensemble microcanˆ onico
As equa¸c˜oes (4.32) e (4.33) formam um sistema de 6N equa¸c˜oes diferenciais n˜ao- lineares que devem ser resolvidas computacionalmente. Resolver estas equa¸c˜oes significa encontrar a posi¸c˜ao e o momento (ou velocidade) de cada ´atomo como fun¸c˜ao do tempo. ´E exatamente isso que se faz em uma simula¸c˜ao de dinˆamica molecular. V´arios algoritmos num´ericos podem ser usados para se resolver as equa¸c˜oes de movimento. Esses algoritmos se baseiam na discretiza¸c˜ao das equa¸c˜oes de movimento, ou seja, em vez de resolver a equa¸c˜ao no intervalo [0, t] ⊂ R, resolve- se em somente alguns pontos desse intervalo separados por δt [68].
Para construir um modelo num´erico, come¸camos expandindo os vetores posi¸c˜ao nos instantes t + δt e t − δt em s´erie de Taylor:
ri(t + δt) = ri(t) + dri dtδt + 1 2! d2r i dt2 δt 2+ 1 3! d3r i dt3 δt 3+ O(δt4) (4.35) ri(t − δt) = ri(t) − dri dt δt + 1 2! d2r i dt2 δt 2− 1 3! d3r i dt3 δt 3+ O(δt4). (4.36)
Adicionando as equa¸c˜oes (4.35) e (4.36), chegamos a
ri(t + δt) = 2ri(t) − ri(t − δt) + ai(t)δt2+ O(δt4), (4.37)
onde ai(t) = d2ri/dt2 ´e a acelera¸c˜ao do ´atomo i, que pode ser calculada por
ai(t) =
Fi(t)
mi
, (4.38)
onde Fi(t) ´e a for¸ca resultante sobre o ´atomo i, que ´e definida por
de forma que,
ri(t + δt) = 2ri(t) − ri(t − δt) +
Fi(t)
2mi
δt2 + O(δt4). (4.40) Este ´e o chamado algoritmo de Verlet. Conhecendo as posi¸c˜oes num instante t podemos determinar as for¸cas pela equa¸c˜ao (4.39). Sabendo tamb´em as posi¸c˜oes no tempo t − δt, podemos achar as posi¸c˜oes no tempo t + δt pela equa¸c˜ao (4.40). As velocidades no tempo t podem ser obtidas subtraindo-se a equa¸c˜ao (4.36) da (4.35): vi(t) = ri(t + δt) − ri(t − δt) 2δt + O(δt 2 ). (4.41)
Este esquema pode ser repetido v´arias vezes at´e atingir o tempo desejado.
O algoritmo de Verlet tem a vantagem de computar as posi¸c˜oes com erros da ordem de δt4. Entretanto, algumas desvantages fazem com que este n˜ao seja um
dos algoritmos mais utilizados. A propaga¸c˜ao das velocidades est´a sujeita a erros maiores, da ordem de δt2. Al´em disso, o termo Fi(t)
2miδt
2, que ´e muito pequeno por
conta do δt2, ´e adicionado aos termos de ordem de grandeza muito maior 2r i(t)
e ri(t − δt), gerando consider´aveis erros de arrendondamento. Por fim, conforme
a equa¸c˜ao (4.41), as velocidades no tempo t s´o podem ser computadas ap´os a computa¸c˜ao das posi¸c˜oes no tempo t + δt. Isso gera dificuldades na implementa¸c˜ao para simula¸c˜oes em temperatura constante.
Uma variante do algoritmo de Verlet ´e o chamado algoritmo Velocity-Verlet. Resolvendo a (4.41) para ri(t − δt) e substituindo na (4.40), chegamos a
ri(t + δt) = ri(t) + vi(t)δt + Fi 2mi δt2 (4.42) Substituindo (4.40) em (4.41), obtemos vi(t) = ri(t) δt − ri(t − δt) δt + Fi(t) 2mi δt (4.43)
Adicionando a express˜ao correspondente a vi(t + δt), temos:
vi(t + δt) + vi(t) = ri(t + δt) − ri(t − δt) δt + [Fi(t + δt) + Fi(t)]δt 2mi (4.44) Finalmente, usando a equa¸c˜ao (4.41), chegamos a
vi(t + δt) = vi(t) +
[Fi(t + δt) + Fi(t)]δt
2mi
4.2. Solu¸c˜ao das equa¸c˜oes de movimento 39 As equa¸c˜oes (4.42) e (4.45) constituem o algoritmo Velocity-Verlet. Conhecendo as posi¸c˜oes iniciais, podemos calcular as for¸cas por meio de (4.39). Tendo tamb´em as velocidades iniciais, podemos calcular as novas posi¸c˜oes atrav´es de (4.42). Com as novas posi¸c˜oes, obtemos as novas for¸cas e, ent˜ao, podemos obter as novas velo- cidades por meio de (4.45). Assim, o algoritmo fornece as posi¸c˜oes e as velocidades no mesmo instante de tempo. Os erros de arrendondamento s˜ao minimizados por conta do termo em δt da equa¸c˜ao (4.42). Com estas vantagens, o algoritmo Velocity-Verlet ´e um dos mais utilizados em simula¸c˜oes de dinˆamica molecular [71]. V´ınculos
Se o sistema em estudo cont´em graus de liberdade associados a movimentos de frequˆencia muito alta e, ao mesmo tempo, de amplitude muito pequena, como ´e o caso de liga¸c˜oes qu´ımicas que envolvem ´atomos de hidrogˆenio, ´e uma boa pr´atica manter estes graus de liberdade fixos durante a simula¸c˜ao. As altas frequˆencias associadas a estes graus de liberdade exigiriam a ado¸c˜ao de passos de integra¸c˜ao su- ficientemente pequenos, tornando as simula¸c˜oes muito caras computacionalmente. Al´em disso, devido `a baixa amplitude, tais movimentos tˆem pouca influˆencia nos outros graus de liberdade, o que justifica a introdu¸c˜ao de v´ınculos [68]. Adicio- nalmente, `a medida que a frequˆencia de vibra¸c˜ao aumenta, a descri¸c˜ao expl´ıcita dos efeitos quˆanticos come¸ca a se tornar importante [73], fazendo-se necess´ario a retirada de tais graus de liberdade do sistema.
Ao fixar a distˆancia de uma liga¸c˜ao qu´ımica entre dos ´atomos i e j quaisquer, introduzimos um v´ınculo σk expresso por:
σk(r) = |ri(t) − rj(t)|2− d2ij = 0, (4.46)
em que dij ´e o comprimento da liga¸c˜ao qu´ımica. Se existirem M v´ınculos (um para
cada par de ´atomos i e j), ent˜ao haver˜ao M equa¸c˜oes semelhantes `a (4.46). V´ınculos expressos dessa forma s˜ao chamados de v´ınculos holˆonomos. Em simula¸c˜oes de dinˆamica molecular, a introdu¸c˜ao de v´ınculos ´e feita usando multiplicadores de Lagrange1, atrav´es da integra¸c˜ao das seguintes equa¸c˜oes de movimento:
mi¨ri = −∇ri V (r) − M X k λkσk(r) ! , i = 1, . . . , N, (4.47)
1Este procedimento ´e formalmente derivado a partir de um princ´ıpio variacional e pode ser
em que {λk} s˜ao os multiplicadores de Lagrange, que devem ser escolhidos de forma
que todos os M v´ınculos sejam simultaneamente satisfeitos.
Ao aplicar um algoritmo de integra¸c˜ao `as equa¸c˜oes (4.47), chegamos a
ri(t + δt) = ˜ri(t + δt) + M
X
k
λk∇riσk(r), i = 1, . . . , N, (4.48)
em que ˜ri(t + δt) ´e a posi¸c˜ao obtida se n˜ao houvesse nenhuma for¸ca de v´ınculo
atuando no ´atomo i. O problema a ser resolvido ´e a determina¸c˜ao de todos os multiplicadores de Lagrange {λk}, que devem satisfazer as equa¸c˜oes de v´ınculo no
instante t + δt: σl(r(t + δt) = |˜ri(t + δt) − ˜rj(t + δt) + + M X k λk m−1i ∇riσk(r) − m −1 j ∇rjσk(r) | 2 = 0, l = 1, . . . , M (4.49)
Conforme a equa¸c˜ao (4.49), a determina¸c˜ao de {λk} implica em resolver um sistema
de M equa¸c˜oes alg´ebricas n˜ao-lineares para os M multiplicadores {λk}.
V´arios algoritmos foram desenvolvidos para a incorpora¸c˜ao de v´ınculos em si- mula¸c˜oes de dinˆamica molecular e eles diferem na forma de resolver o sistema de equa¸c˜oes (4.49). Um dos mais usados, o algoritmo SHAKE [66] considera somente os termos lineares em λke resolve o sistema de equa¸c˜oes iterativamente, considerando
um v´ınculo de cada vez. O algoritmo RATTLE ´e um variante do SHAKE adaptado para o integrador Velocity-Verlet na etapa do c´alculo das velocidades, que tamb´em s˜ao afetadas pelas for¸cas de v´ınculo [83]. O RATTLE remove qualquer componente da velocidade que seja paralela ao vetor formado pelos dois ´atomos fixos. O algoritmo SETTLE [65] utiliza uma express˜ao anal´ıtica para os multiplicadores de Lagrange para situa¸c˜ao em que M = 3. Este algoritmo ´e geralmente utilizado para manter mol´eculas de ´agua r´ıgidas, onde uma terceira liga¸c˜ao fict´ıcia H – H ´e introduzida para fixar o ˆangulo H ˆOH.