Skip to content

Commit eb29270

Browse files
authored
Optimize distance calculation in three-body term (#139)
1 parent be6c011 commit eb29270

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

src/dftd3/damping/atm.f90

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,7 @@ subroutine get_atm_dispersion_energy(mol, trans, cutoff, s9, rs9, alp, rvdw, c6,
157157
vik(:) = mol%xyz(:, kat) + trans(:, ktr) - mol%xyz(:, iat)
158158
r2ik = vik(1)*vik(1) + vik(2)*vik(2) + vik(3)*vik(3)
159159
if (r2ik > cutoff2 .or. r2ik < epsilon(1.0_wp)) cycle
160-
vjk(:) = mol%xyz(:, kat) + trans(:, ktr) - mol%xyz(:, jat) &
161-
& - trans(:, jtr)
160+
vjk(:) = vik(:) - vij(:)
162161
r2jk = vjk(1)*vjk(1) + vjk(2)*vjk(2) + vjk(3)*vjk(3)
163162
if (r2jk > cutoff2 .or. r2jk < epsilon(1.0_wp)) cycle
164163
r2 = r2ij*r2ik*r2jk
@@ -284,8 +283,7 @@ subroutine get_atm_dispersion_derivs(mol, trans, cutoff, s9, rs9, alp, rvdw, c6,
284283
vik(:) = mol%xyz(:, kat) + trans(:, ktr) - mol%xyz(:, iat)
285284
r2ik = vik(1)*vik(1) + vik(2)*vik(2) + vik(3)*vik(3)
286285
if (r2ik > cutoff2 .or. r2ik < epsilon(1.0_wp)) cycle
287-
vjk(:) = mol%xyz(:, kat) + trans(:, ktr) - mol%xyz(:, jat) &
288-
& - trans(:, jtr)
286+
vjk(:) = vik(:) - vij(:)
289287
r2jk = vjk(1)*vjk(1) + vjk(2)*vjk(2) + vjk(3)*vjk(3)
290288
if (r2jk > cutoff2 .or. r2jk < epsilon(1.0_wp)) cycle
291289
r2 = r2ij*r2ik*r2jk
@@ -439,8 +437,7 @@ subroutine get_atm_pairwise_dispersion(mol, trans, cutoff, s9, rs9, alp, rvdw, c
439437
vik(:) = mol%xyz(:, kat) + trans(:, ktr) - mol%xyz(:, iat)
440438
r2ik = vik(1)*vik(1) + vik(2)*vik(2) + vik(3)*vik(3)
441439
if (r2ik > cutoff2 .or. r2ik < epsilon(1.0_wp)) cycle
442-
vjk(:) = mol%xyz(:, kat) + trans(:, ktr) - mol%xyz(:, jat) &
443-
& - trans(:, jtr)
440+
vjk(:) = vik(:) - vij(:)
444441
r2jk = vjk(1)*vjk(1) + vjk(2)*vjk(2) + vjk(3)*vjk(3)
445442
if (r2jk > cutoff2 .or. r2jk < epsilon(1.0_wp)) cycle
446443
r2 = r2ij*r2ik*r2jk

0 commit comments

Comments
 (0)