[molpro-user] Transition dipole moment, phase convention

Kirk Peterson kipeters at wsu.edu
Sat Oct 29 01:20:54 BST 2005


Michael,

As you've found out, this is a real pain and there is no way to get  
around it
as far as I know (the overall phase is arbitrary).  What we've done  
in the past is
to just keep track of the relative phases between the two electronic  
wavefunctions.
This is done via:

ci;trans,4100.2,4200.2;
phase1 = trov(1)

and the look for sign changes.

trov(1) is the overlap(s) between the wavefunctions on 4100.2 and  
those on 4200.2.  The
indexing depends on how many states are in each record.

Hope that helps,

-Kirk

On Oct 28, 2005, at 3:50 PM, Michael Hayes wrote:

> Dear Molpro users,
>
> I am trying to calculate a smooth transition dipole moment surface
> between the lowest two A' states of H3+. However, I believe that the
> output does not maintain a consistent phase convention for the two
> electronic wavefunctions, resulting in a transition dipole moment that
> sometimes switches sign abruptly between adjacent nuclear geometries.
>
> Does anyone know of a way to automatically ensure that the phases of
> the wavefunctions remain consistent between single point calculations?
>
> My input file is attached at the end. Any help would be greatly
> appreciated.
>
> Michael Hayes
>
> ! The bond coordinates x(i),y(i) and z(i) are specified in a separate
> ! input file
> thresh=0.00000001
> do i=1,npts
>   r1=x(i)
>   r2=y(i)
>   r3=z(i)
>   rrr=sqrt((r1**2+r2**2-0.5*r3**2)/2.0)
>   sss=r3
>   cost=(r1**2-rrr**2-0.25*r3**2)/(rrr*sss)
>   sint=sqrt(1.0-cost**2)
>   if(abs(cost-1.0).lt.thresh) sint=0.0
>   xx1=rrr+sss*cost/2
>   yy1=sss*sint/2
>   xx2=rrr-sss*cost/2
>   yy2=-sss*sint/2
>   geomtyp=zmat
>   geometry={
>     H,, 0.0, 0.0, 0.0
>     H,, xx1, yy1, 0.0
>     H,, xx2, yy2, 0.0
>   }
>   GEXPEC,DM;
>   TRAN,DM;
>   aoint,c_seward=0
>   multi;occ,3;wf,2,1,0;state,2;
>   CI;state,2;option,nstati=5;
>   e1(i)=energy(1)
>   e2(i)=energy(2)
>   dx1(i)=dmx(1)
>   dx2(i)=dmx(2)
>   dx12(i)=trdmx(1)
>   dy1(i)=dmy(1)
>   dy2(i)=dmy(2)
>   dy12(i)=trdmy(1)
> enddo
>
>




More information about the Molpro-user mailing list