[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