[molpro-user] Optimizing the squared energy difference of distinct states with molpro
Dr Seth Olsen
s.olsen1 at uq.edu.au
Thu Nov 17 04:35:29 GMT 2005
Hi Molpro-users,
I would like to perform an optimization on a surface given by the
squared energy difference of two electronic states. It seems MolPro
should have the capacity to do this using the ADD and SCALE commands on
the gradients for the different states. However, I cannot seem to
master the syntax. Below is an example input using ethylene, which is
known to have a low-lying s0/s1 CI seam. With simple calculus, I
reason the gradient of
E'=grad(E_s1-E_s0)**2=2((E_s1*gradE_s1)-(E_s1*gradE_s0)-(E_s0*gradE_s1)+(E_s0*gradE_s0))
and implementing this in a molpro non-automatic optimization loop (as
below) I get errors starting with 'Illegal command scale' and proceeding
through the rest of the cpmcscf cards. I cannot find an example in the
manual that makes clear the syntax for doing what I want to do. Does
anyone know the correct syntax?
Cheers,
Seth
***
memory,30,m
gprint,orbitals,civector
file,1,ethylenediffsqopt.int
file,2,ethylenediffsqopt.wfn
geomtyp=xyz
basis=6-31G*
geometry,{nosymm,noorient
6
ethylene
C 0.000000 0.000000 0.000000
C 0.000000 0.000000 1.400000
H 0.943102 0.000100 -0.544500
H -0.943102 0.000100 -0.544500
H 0.000000 -0.943102 1.879500
H 0.000000 0.943102 1.879500
}
rhf
wf,16,1,0
show,cpustep
show,wallstep
maxstep=40
do i=1,maxstep
mcscf
occ,9
closed,7
state,2
weight,1,1
fac1=energy(1)
fac2=energy(2)
fac3=-1.0*$fac1
fac4=-1.0*$fac2
mcscf
occ,9
closed,7
state,2
weight,1,1
cpmcscf,grad,1.1;scale,$fac1
cpmcscf,grad,2.1;add,$fac2
cpmcscf,grad,2,1;add,$fac3
cpmcscf,grad,1.1;add,$fac4
force
opt
show,cpustep
show,wallstep
end do
matrop
load,orbitals,orb,2140.2
write,orbitals,'ethylenediffsqopt.orb',new
put,molden,ethylenediffsqopt.molden
---
More information about the Molpro-user
mailing list