Skip to content

Commit 02289da

Browse files
authored
Remove molecular rotation before numerical Hessian (#1426)
* While tiny, this causes direct comparison with an externally computed numerical Hessian (or the Hessian reported by the C-API) not to match. Signed-off-by: Ty Balduf <ty.balduf@schrodinger.com>
1 parent 34c2da0 commit 02289da

1 file changed

Lines changed: 1 addition & 41 deletions

File tree

src/hessian.F90

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ subroutine numhess( &
107107
real(wp),allocatable :: aux (:)
108108
real(wp),allocatable :: isqm(:)
109109
real(wp),allocatable :: gl (:,:)
110-
real(wp),allocatable :: xyzsave(:,:)
111110
real(wp),allocatable :: pold(:)
112111
real(wp),allocatable :: dipd(:,:), dalphadr(:,:), dalphadq(:,:)
113112
real(wp),allocatable :: amass_au(:), amass_amu(:)
@@ -127,7 +126,7 @@ subroutine numhess( &
127126
res%n3true = n3-3*freezeset%n
128127

129128
allocate(hss(n3*(n3+1)/2),hsb(n3*(n3+1)/2),h(n3,n3),htb(n3,n3),hbias(n3,n3), &
130-
& gl(3,mol%n),isqm(n3),xyzsave(3,mol%n),dipd(3,n3), amass_amu(n3), &
129+
& gl(3,mol%n),isqm(n3),dipd(3,n3), amass_amu(n3), &
131130
& pold(n3),nb(20,mol%n),indx(mol%n),molvec(mol%n),bond(mol%n,mol%n), &
132131
& freq_scal(n3),fc_tb(n3),fc_bias(n3),amass_au(n3), h_dummy(n3,n3), izero(n3))
133132

@@ -137,11 +136,6 @@ subroutine numhess( &
137136
end if
138137

139138
rd=.false.
140-
xyzsave = mol%xyz
141-
142-
step=0.0001_wp
143-
call rotmol(mol%n,mol%xyz,step,2.*step,3.*step)
144-
145139
! step length
146140
step=set%step_hess
147141
if(set%extcode.eq.5) step=step*2.0_wp ! MOPAC is not very accurate
@@ -642,40 +636,6 @@ end subroutine numhess_rmsd
642636

643637
!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
644638

645-
subroutine rotmol(n,xyz,xrot,yrot,zrot)
646-
use xtb_mctc_accuracy, only : wp
647-
use xtb_mctc_constants, only: pi
648-
implicit none
649-
integer :: n,i
650-
real(wp) :: xrot,yrot,zrot,xyz(3,n)
651-
real(wp) :: ang,xo,yo
652-
653-
ang=xrot*pi/180.0_wp
654-
do i=1,n
655-
xo=xyz(2,i)
656-
yo=xyz(3,i)
657-
xyz(2,i)= xo*cos(ang)+yo*sin(ang)
658-
xyz(3,i)=-xo*sin(ang)+yo*cos(ang)
659-
enddo
660-
ang=yrot*pi/180.0_wp
661-
do i=1,n
662-
xo=xyz(1,i)
663-
yo=xyz(3,i)
664-
xyz(1,i)= xo*cos(ang)+yo*sin(ang)
665-
xyz(3,i)=-xo*sin(ang)+yo*cos(ang)
666-
enddo
667-
ang=zrot*pi/180.0_wp
668-
do i=1,n
669-
xo=xyz(1,i)
670-
yo=xyz(2,i)
671-
xyz(1,i)= xo*cos(ang)+yo*sin(ang)
672-
xyz(2,i)=-xo*sin(ang)+yo*cos(ang)
673-
enddo
674-
675-
end subroutine rotmol
676-
677-
!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
678-
679639
subroutine distort(mol,freq,u)
680640
use xtb_mctc_accuracy, only : wp
681641
use xtb_mctc_filetypes, only : generateFileName

0 commit comments

Comments
 (0)