Algorithm 4.
Real-space non-bonded interaction kernel used for KNL
| do ij = 1, M |
| icel = cell_index(1,ij) |
| jcel = cell_index(2,ij) |
| do i = 1, N(icel) |
| if (Neighbor(i,ij) == 0) cycle |
| force_temp(1:3) = 0.0 do j = 1, N (jcel) |
| rij(1) = coord(i,1,icel)-coord(j,1,jcel) |
| rij(2) = coord(i,2,icel)-coord(j,2,jcel) |
| rij(3) = coord(i,3,icel)-coord(j,3,jcel) |
| calculate f (1:3):force component from given distance |
| force_temp(1) = force_temp(1) – f (1) |
| force_temp(2) = force_temp(2) – f (2) |
| force_temp(3) = force_temp(3) – f (3) |
| force(j,1,jcel) = force(j,1,jcel) + f (1) |
| force(j,2,jcel) = force(j,2,jcel) + f (2) |
| force(j,3,jcel) = force(j,3,jcel) + f (3) |
| end do |
| force(i,1,icel) = force(i,1,icel) + force_temp(1) |
| force(i,2,icel) = force(i,2,icel) + force_temp(2) |
| force(i,3,icel) = force(i,3,icel) + force_temp(3) end do |
| end do |