[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