Após o cálculo das forças, podemos calcular as componentes da aceleração de cada átomos e após calcular as novas posições e velocidades.
Para calcular as componentes da aceleração utilizaremos a equação 6.5.1.
!... ! VARIAVEIS QUE DEVEM ESTAR NO MODULE real(kind=8), allocatable, dimension(:) :: ax, ay, az integer :: natom ! VARIAVEIS LOCAIS integer :: i !... do i = 1, natom ax(i) = fx(i)/m(i) ay(i) = fy(i)/m(i) az(i) = fz(i)/m(i) end do !...
Com o procedimento realizado até o momento, temos as posições (, , ), as velocidades (, , ), as acelerações (, , ) e as forças (, , ), que compõe o conjunto inicial. Para obter o conjunto das posições (, , ), das velocidades (, , ), das acelerações (, , ) e das forças (, , ) devemos utilizar algum integrador das equaçõe de movimento de Newton, e a escolha aqui é o método de Velocity Verlet pela simplicidade e facilidade de implementação. Assim poderemos evoluir o sistema até o conjunto das posições (, , ), das velocidades (, , ), das acelerações (, , ) e das forças (, , ).
De acordo com as equações 5.3.14, novamente exposta abaixo, é necessário primeiro calcular as posições para o tempo ( ), na sequência calcular as componentes das forças para o tempo ( ), para termos então as componentes das velocidades e das acelerações no tempo ( ).
!... ! VARIAVEIAS QUE DEVEM ESTAR NO MODULE real(kind=8), allocatable, dimension(:) :: x,y,z real(kind=8), allocatable, dimension(:) :: vx,vy,vz real(kind=8), allocatable, dimension(:) :: ax,ay,az integer :: dt1 integer :: natom ! VARIAVEIS LOCAIS real(kind=8), allocatable, dimension(:) :: vnx1,vny1,vnz1 real(kind=8) :: vxcm,vycm,vzcm integer :: i do i = 1, natom ! POSICAO PARA T+DELTAT ! NESTE MOMENTO PERDE-SE AS POSICOES NO TEMPO T x(i) = x(i) + vx(i)*dt1 + 0.5d0*ax(i)*dt1*dt1 y(i) = y(i) + vy(i)*dt1 + 0.5d0*ay(i)*dt1*dt1 z(i) = z(i) + vz(i)*dt1 + 0.5d0*az(i)*dt1*dt1 ! VELOCIDADE PARA T+DELTAT/2 vnx1(i) = vx(i) + 0.5d0*ax(i)*dt1 vny1(i) = vy(i) + 0.5d0*ay(i)*dt1 vnz1(i) = vz(i) + 0.5d0*az(i)*dt1 end do ! CALCULA FORCA BASEADA NAS NOVAS POSICOES ! NESTE MOMENTO PERDE-SE AS FORCAS NO TEMPO T call forca ! CALCULA ACELERACAO BASEADA NAS NOVAS FORCAS ! NESTE MOMENTO PERDE-SE AS ACELERACOES NO TEMPO T call aceleracao ! CALCULANDO NOVAS VELOCIDADES ! NESTE MOMENTO PERDE-SE AS VELOCIDADES NO TEMPO T do i = 1, natom vx(i) = vnx1(i) + 0.5d0*ax(i)*dt1 vy(i) = vny1(i) + 0.5d0*ay(i)*dt1 vz(i) = vnz1(i) + 0.5d0*az(i)*dt1 ! CALCULANDO AS COMPONENTES DA VEL DO CENTRO DE MASSA vxcm = vxcm + vx(i) vycm = vycm + vy(i) vzcm = vzcm + vz(i) end do ! ARTIFICIO UTILIZADO PARA ZERAR O MOMENTO LINEAR do i=1, natom vx(i) = vx(i) - (vxcm/natom) vy(i) = vy(i) - (vycm/natom) vz(i) = vz(i) - (vzcm/natom) end do !...