LOP and LOP2

31 views
Skip to first unread message

Gileadc

unread,
Jan 9, 2022, 9:33:47 AM1/9/22
to molpro-user
Dear molpro users and devs

I have a rather silly question, how does one use the gexpec directive to calculate Lz and Lz^2 properties? I tired following the example in the molpro manual (shown here https://www.molpro.net/manual/doku.php?id=program_control#one-electron_operators_and_expectation_values_gexpec) but when adding lop/lop2 it does not compute anything. As a matter of fact lop2 is said to be invalid ("Invalid operator on EXPEC directive: LOP2 (2-electron operator)" ).


***,h2o properties
geometry={o;h1,o,r;h2,o,r,h1,theta}   !Z-matrix geometry input
r=1 ang                               !bond length
theta=104                             !bond angle
gexpec,dm,sm,qm,lop,lop2                       !compute dipole and quarupole moments
$methods=[hf,multi,ci]                !do hf, casscf, mrci
do i=1,#methods                       !loop over methods
$methods(i)                           !run energy calculation
e(i)=energy
dip(i)=dmz                            !save dipole moment in variable dip
quadxx(i)=qmxx                        !save quadrupole momemts
quadyy(i)=qmyy
quadzz(i)=qmzz
smxx(i)=xx                            !save second momemts
smyy(i)=yy
smzz(i)=zz
angmomz(i)=lz
angmomz2(i)=lzlz
enddo
table,methods,dip,smxx,smyy,smzz        !print table of first and second moments
table,methods,e,quadxx,quadyy,quadzz    !print table of quadrupole moments

what am I doing wrong here?
Thanks in advance

Gilead 

Piotr Gniewek

unread,
Apr 26, 2022, 12:26:07 PM4/26/22
to molpro-user
Dear Gilead,

you can calculate < L_x^2 >, < L_y^2 >, and < L_z^2 > using 'expec2,lxx,lyy,lzz' in MULTI. For Molpro this is a "two electron operator" and cannot be calculated with "expec," you need "expec2".

I usually use this code template:

{MULTI;
....
natorb,ci,print;                       !Print natural orbitals and associated ci-coefficients
tran,lz                                !Compute transition matrix elements over LZ
expec2,lxx,lyy,lzz}                    !compute expectation values for LXLX, LYLY, LZLZ, and L^2

This is most useful for atomic systems (single atom or atomic ion in empty space) or linear molecules. For linear molecules you can make sure you have a desired state: Sigma, Pi, Delta, ... by checking < L_z^2 > (assuming the atoms are placed on the z axis, as is the default). For instance you will have < L_z^2 > = 0 for a Sigma state, and < L_z^2 >= 4 for a Delta state.

Best Regards,
Piotr Gniewek
Reply all
Reply to author
Forward
0 new messages