[molpro-user] Around CASSCF transition state optimizations.
Sve N
goretoffel at hotmail.de
Fri Feb 1 15:48:55 GMT 2013
Dear Molpro users,
I have some questions and also possible solutions around transition state optimizations using casscf. I tried to attach all inputs and outputs, but it was to big, so now I only put the inputs at the end of this mail.
Molpro for some reason (?) seems to have a hard time optimizing
transition states (or me, using molpro :) - see ts_norm, a transition state optimization for
ethylene). Neither QSD, the default (contrary to what's
stated in the manual
http://www.molpro.net/info/2012.1/doc/manual/node593.html), nor RF or
DIIS converge in the 30 steps.
Molpro sometimes says, it recalculates the hessian, during the
optimization, but I'm not exactly sure, what it is doing, or if it is
doing something at all there. My first attempt to fix this, was to use a
procedure to really recalculate the hessian every once in a while (see ts_proc), but the input changes absolutely nothing for the
calculation. I don't know, btw, if there's any difference using options
or directives in the optg-routine, many configurations seem possible to
be made in both ways. From how I read the manual, the procedure might
only be used to calculate the hessian numerically, but not even that is
done.
A possible solution here, is to manually write a loop, which
recalculates the hessian every once in a while (ts_loop). The
optimization works fine, then. Please let me know, if there are better ways to do it.
The next problems come with analytical casscf hessians. If you only
calculate the first state it works fine (as can be seen in the ts_* outputs), as long as you don't do a gradient calculation in the same
multiblock. Else the frequency analysis suddenly gives you around ten
negative eigenvalues with values up to -12000 or so. This is probably a
bug (run freq_cpmcscf). Unfortunately it sometimes also occurs, if gradients, or sa-gradients are saved on file 2, or something alike, even if you don't do a gradient calculation in the same block - I'm not sure here, couldn't reproduce this up to now.
In the case you need other states to keep certain orbitals in your active space, it is possible to do a state average casscf calculation and then in another multi block only calculate the first state and the hessian using "dont,orbitals". Yet I'm not sure if the results of the hessian-calculation are effected by the frozen orbitals. (When you calculate a ss-rs2 gradient, the program at one point returns to the multi-routine and doesn't optimize the orbitals, too. When comparing a single state casscf with and from that point without orbital optimization yielded very similar, yet not exactly the same numbers - run freq_todontornottodont.) I found no way to calculate the hessian for excited states in similar fashion (a weight,0,1 e.g. still counts as state average calculation) - if someone does, please let me know.
On a sidenote, molpro writes "TRUNCATING FILE 2 BEFORE RECORD 2141" although I used "data,nen,2141.2" and it truncates _after_ the given record. The manual is difficult to understand there, too, what's the difference between "truncate,nen" and "truncate,rec" (http://www.molpro.net/info/2012.1/doc/manual/node75.html) for truncating before, or after?
Best regards, Sven
_________________________________________________________________________
***ts_norm
memory,100,m
gprint,civector
basis,6-31G*
symmetry,nosym
orient,noorient
Angstrom
geomtyp=xyz
geometry={
6
C 0.000000 0.000000 0.000000
C 0.000000 0.000000 1.335000
H 1.023325 0.000000 -0.372460
H -0.943102 0.000000 -0.544500
H 0.322560 0.886226 1.879500
H -0.471551 -0.816750 1.879500
}
{hf;save,2140.2}
{multi
start,2140.2
occ,9
closed,7
state,1
cpmcscf,hess,accu=1.d-5
natorb,2140.2
}
frequencies
put,molden,ts_norm.molden;
{multi
start,2140.2
occ,9
closed,7
state,1
natorb,2140.2
}
{optg,root=2,update=pms,maxupd=30,readhess,maxit=30,startcmd=multi
print,history;}
put,molden,ts_norm.molden;
---
_________________________________________________________________________
***ts_proc
memory,100,m
gprint,civector
basis,6-31G*
symmetry,nosym
orient,noorient
Angstrom
geomtyp=xyz
geometry={
6
C 0.000000 0.000000 0.000000
C 0.000000 0.000000 1.335000
H 1.023325 0.000000 -0.372460
H -0.943102 0.000000 -0.544500
H 0.322560 0.886226 1.879500
H -0.471551 -0.816750 1.879500
}
{hf;save,2140.2}
{multi
start,2140.2
occ,9
closed,7
state,1
cpmcscf,hess,accu=1.d-5
natorb,2140.2
}
frequencies
put,molden,ts_proc.molden;
{multi
start,2140.2
occ,9
closed,7
state,1
natorb,2140.2
}
{optg,root=2,update=pms,maxupd=5,readhess,maxit=30,startcmd=multi,hessproc=calch
print,history;}
put,molden,ts_proc.molden;
calch={
text,calculate H using the procedure
{multi
start,2140.2
occ,9
closed,7
state,1
cpmcscf,hess,accu=1.d-5
natorb,2140.2
}
}
---
_________________________________________________________________________
***ts_loop
memory,100,m
gprint,civector
basis,6-31G*
symmetry,nosym
orient,noorient
Angstrom
geomtyp=xyz
geometry={
6
C 0.000000 0.000000 0.000000
C 0.000000 0.000000 1.335000
H 1.023325 0.000000 -0.372460
H -0.943102 0.000000 -0.544500
H 0.322560 0.886226 1.879500
H -0.471551 -0.816750 1.879500
}
{hf;save,2140.2}
do i=1,100
{multi
start,2140.2
occ,9
closed,7
state,1
cpmcscf,hess,accu=1.d-5
natorb,2140.2
}
frequencies
put,molden,ts_loop.molden;
c=0
{multi
start,2140.2
occ,9
closed,7
state,1
natorb,2140.2
}
c=c+1
{optg,root=2,update=pms,maxupd=5,readhess,maxit=5,startcmd=multi
print,history;}
if(c.NE.6) then
goto,FRTG:
endif
enddo
FRTG:
{multi
start,2140.2
occ,9
closed,7
state,1
cpmcscf,hess,accu=1.d-5
natorb,2140.2
}
put,molden,ts_loop.molden;
---
_________________________________________________________________________
***freq_cpmcscf
memory,100,m
gprint,civector
basis,6-31G*
symmetry,nosym
orient,noorient
Angstrom
geomtyp=xyz
geometry={
6
C 0.000000 0.000000 0.000000
C 0.000000 0.000000 1.335000
H 1.023325 0.000000 -0.372460
H -0.943102 0.000000 -0.544500
H 0.322560 0.886226 1.879500
H -0.471551 -0.816750 1.879500
}
{hf;save,2140.2}
{multi
start,2140.2
occ,9
closed,7
state,1
cpmcscf,grad,1.1
cpmcscf,hess,accu=1.d-5
natorb,2140.2
}
frequencies
---
_________________________________________________________________________
***freq_todontornottodont
memory,100,m
gprint,civector
basis,6-31G*
symmetry,nosym
orient,noorient
Angstrom
geomtyp=xyz
geometry={
6
C 0.000000 0.000000 0.000000
C 0.000000 0.000000 1.335000
H 1.023325 0.000000 -0.372460
H -0.943102 0.000000 -0.544500
H 0.322560 0.886226 1.879500
H -0.471551 -0.816750 1.879500
}
{hf;save,2140.2}
{multi
start,2140.2
occ,9
closed,7
state,1
cpmcscf,hess
natorb,2140.2
}
frequencies
{multi
start,2140.2
occ,9
closed,7
state,1
dont,orbitals
cpmcscf,hess
natorb,2140.2
}
frequencies
---
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.molpro.net/pipermail/molpro-user/attachments/20130201/18ca0ed4/attachment.html>
More information about the Molpro-user
mailing list