Number of states

asked by BODRY TEGOMO CHIOGO (2021/01/20 20:34)

Dear Quanty developers, I am working in the simulation of 3d XPS of cerium compounds with the full-multiplet configuration interaction approach. first of all, I started to calculate the ground state but I don't understand the number of states that Quanty gives in output when I take into account the spin orbit interaction. Indeed, wihtout spin orbit I got 6 states $f^1_{5/2}$,8 states $f^1_{7/2}$ and 1 states $f^0$. But when I take into account the spin orbit,the number of states corresponding to $f^1_{5/2}$ and $f^1_{7/2}$ are multiplied by 2 respectively. I got the same effet when i also took into account the crytal field. I expected to have same number of states with and without spin-orbit! Here is the 2 calculations with and without spin-orbit

1- without spin orbit i got 15 states:

  #    <E>        <S^2>      <L^2>      <L_z^4f>      <J^2>     <l.s>      <F[2]>     <F[4]>     <F[6]>    <N^4f>   <N^Lf>
  1    -2.4570     0.0000     0.0000    -0.0001     0.0000     0.0000     0.0000     0.0000     0.0000     0.9773    13.0227
  2    -2.4000     1.1490     8.8431    -2.8367     9.9921     1.3720     0.0000     0.0000     0.0000     1.0000    13.0000
  3    -2.4000     1.2120    16.8268    -1.9485    18.0388     0.7827     0.0000     0.0000     0.0000     1.0000    13.0000
  4    -2.4000     1.0000    14.0000    -2.0000    15.0000    -0.5000     0.0000     0.0000     0.0000     1.0000    13.0000
  5    -2.4000     1.0749    18.3876    -1.5786    19.4626    -0.4384     0.0000     0.0000     0.0000     1.0000    13.0000
  6    -2.4000     1.0000    20.0000    -1.0000    21.0000    -0.5000     0.0000     0.0000     0.0000     1.0000    13.0000
  7    -2.4000     1.0641    22.9427    -0.5272    24.0068    -0.4663     0.0000     0.0000     0.0000     1.0000    13.0000
  8    -2.4000     1.0000    22.0000     0.0000    23.0000    -0.5000     0.0000     0.0000     0.0000     1.0000    13.0000
  9    -2.4000     1.0641    22.9426     0.5272    24.0067    -0.4663     0.0000     0.0000     0.0000     1.0000    13.0000
 10    -2.4000     1.0000    20.0000     1.0000    21.0000    -0.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 11    -2.4000     1.0749    18.3874     1.5786    19.4623    -0.4384     0.0000     0.0000     0.0000     1.0000    13.0000
 12    -2.4000     1.0000    14.0000     2.0000    15.0000    -0.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 13    -2.4000     1.2120    16.8269     1.9485    18.0388     0.7827     0.0000     0.0000     0.0000     1.0000    13.0000
 14    -2.4000     1.1490     8.8429     2.8367     9.9919     1.3720     0.0000     0.0000     0.0000     1.0000    13.0000
 15     0.0570     0.0000     0.0000     0.0000     0.0000     0.0000     0.0000     0.0000     0.0000     0.0227    13.9773

2- With spin orbit : zeta_4f = 0.087

#    <E>        <S^2>      <L^2>      <L_z^4f>      <J^2>     <l.s>      <F[2]>     <F[4]>     <F[6]>    <N^4f>   <N^Lf>
  1    -2.7432     1.0430     1.0430    -0.0002     0.0000    -1.9753     0.0000     0.0000     0.0000     0.9913    13.0087
  2    -2.7202     1.7551    11.7551    -2.8571    12.0000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
  3    -2.7202     1.3299    13.1106    -2.4725     9.1628    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
  4    -2.7202     1.5918    19.5918    -1.7143    20.0000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
  5    -2.7202     1.4783    22.6103    -1.2270    16.4360    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
  6    -2.7202     1.5102    23.5102    -0.5714    24.0000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
  7    -2.7202     1.5266    25.7020     0.0001    18.8031    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
  8    -2.7202     1.5102    23.5102     0.5714    24.0000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
  9    -2.7202     1.4783    22.6099     1.2271    16.4357    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
 10    -2.7202     1.5918    19.5918     1.7143    20.0000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
 11    -2.7202     1.3298    13.1100     2.4726     9.1624    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
 12    -2.7202     1.7551    11.7551     2.8571    12.0000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000
 13    -2.1945     0.9564     0.9564    -0.0003     0.0000     1.4667     0.0000     0.0000     0.0000     0.9853    13.0147
 14    -2.1599     1.1096     9.9441    -2.7340    12.3684     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 15    -2.1599     1.7551    11.7551    -2.1429    12.0000     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 16    -2.1599     1.3487    18.5540    -1.8112    24.0873     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 17    -2.1599     1.5918    19.5918    -1.2857    20.0000     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 18    -2.1599     1.4886    23.5897    -0.9033    30.9415     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 19    -2.1599     1.5102    23.5102    -0.4286    24.0000     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 20    -2.1599     1.5348    25.2543     0.0000    33.2072     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 21    -2.1599     1.5102    23.5102     0.4286    24.0000     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 22    -2.1599     1.4886    23.5894     0.9033    30.9412     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 23    -2.1599     1.5918    19.5918     1.2857    20.0000     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 24    -2.1599     1.3487    18.5535     1.8112    24.0867     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 25    -2.1599     1.7551    11.7551     2.1429    12.0000     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 26    -2.1599     1.1095     9.9436     2.7341    12.3677     1.5000     0.0000     0.0000     0.0000     1.0000    13.0000
 27     0.0577     0.0006     0.0006     0.0000    -0.0000     0.0086     0.0000     0.0000     0.0000     0.0235    13.9765

below is the script I used:

--Verbosity(0*0000)

NF = 28
NB = 0

IndexDn_4f = {0,2,4,6,8,10,12}
IndexUp_4f = {1,3,5,7,9,11,13}
IndexDn_Lf = {14,16,18,20,22,24,26}
IndexUp_Lf = {15,17,19,21,23,25,27}

NElectrons_4f = 0
V = 0.1
Delta_4f_Lf_i = -2.4
NConfigurations = 2
Npsis = 27


OppSx_4f = NewOperator("Sx", NF, IndexUp_4f,IndexDn_4f)
OppSy_4f = NewOperator("Sy", NF, IndexUp_4f,IndexDn_4f)
OppSz_4f = NewOperator("Sz", NF, IndexUp_4f,IndexDn_4f)
OppSsqr_4f = NewOperator("Ssqr", NF, IndexUp_4f,IndexDn_4f)
OppSplus_4f = NewOperator("Splus", NF, IndexUp_4f,IndexDn_4f)
OppSmin_4f = NewOperator("Smin", NF, IndexUp_4f,IndexDn_4f)

OppLx_4f = NewOperator("Lx", NF, IndexUp_4f,IndexDn_4f)
OppLy_4f = NewOperator("Ly", NF, IndexUp_4f,IndexDn_4f)
OppLz_4f = NewOperator("Lz", NF, IndexUp_4f,IndexDn_4f)
OppLsqr_4f = NewOperator("Lsqr", NF, IndexUp_4f,IndexDn_4f)
OppLplus_4f = NewOperator("Lplus", NF, IndexUp_4f,IndexDn_4f)
OppLmin_4f = NewOperator("Lmin", NF, IndexUp_4f,IndexDn_4f)

OppJx_4f = NewOperator("Jx", NF, IndexUp_4f,IndexDn_4f)
OppJy_4f = NewOperator("Jy", NF, IndexUp_4f,IndexDn_4f)
OppJz_4f = NewOperator("Jz", NF, IndexUp_4f,IndexDn_4f)
OppJsqr_4f = NewOperator("Jsqr", NF, IndexUp_4f,IndexDn_4f)
OppJplus_4f = NewOperator("Jplus", NF, IndexUp_4f,IndexDn_4f)
OppJmin_4f = NewOperator("Jmin", NF, IndexUp_4f,IndexDn_4f)

Oppldots_4f = NewOperator("ldots", NF, IndexUp_4f,IndexDn_4f)



-- Angular momentum operator for the figand f-shell

OppSx_Lf = NewOperator("Sx", NF, IndexUp_Lf,IndexDn_Lf)
OppSy_Lf = NewOperator("Sy", NF, IndexUp_Lf,IndexDn_Lf)
OppSz_Lf = NewOperator("Sz", NF, IndexUp_Lf,IndexDn_Lf)
OppSsqr_Lf = NewOperator("Ssqr", NF, IndexUp_Lf,IndexDn_Lf)
OppSplus_Lf = NewOperator("Splus", NF, IndexUp_Lf,IndexDn_Lf)
OppSmin_Lf = NewOperator("Smin", NF, IndexUp_Lf,IndexDn_Lf)

OppLx_Lf = NewOperator("Lx", NF, IndexUp_Lf,IndexDn_Lf)
OppLy_Lf = NewOperator("Ly", NF, IndexUp_Lf,IndexDn_Lf)
OppLz_Lf = NewOperator("Lz", NF, IndexUp_Lf,IndexDn_Lf)
OppLsqr_Lf = NewOperator("Lsqr", NF, IndexUp_Lf,IndexDn_Lf)
OppLplus_Lf = NewOperator("Lplus", NF, IndexUp_Lf,IndexDn_Lf)
OppLmin_Lf = NewOperator("Lmin", NF, IndexUp_Lf,IndexDn_Lf)

OppJx_Lf = NewOperator("Jx", NF, IndexUp_Lf,IndexDn_Lf)
OppJy_Lf = NewOperator("Jy", NF, IndexUp_Lf,IndexDn_Lf)
OppJz_Lf = NewOperator("Jz", NF, IndexUp_Lf,IndexDn_Lf)
OppJsqr_Lf = NewOperator("Jsqr", NF, IndexUp_Lf,IndexDn_Lf)
OppJplus_Lf = NewOperator("Jplus", NF, IndexUp_Lf,IndexDn_Lf)
OppJmin_Lf = NewOperator("Jmin", NF, IndexUp_Lf,IndexDn_Lf)

Oppldots_Lf = NewOperator("ldots", NF, IndexUp_4f,IndexDn_4f)


-- SUM OF THE OPERATOR

OppSx = OppSx_4f + OppSx_Lf
OppSy = OppSy_4f + OppSy_Lf
OppSz = OppSz_4f + OppSz_Lf
OppSsqr = OppSx*OppSx + OppSy*OppSy + OppSz*OppSz

OppLx = OppLx_4f + OppLx_Lf
OppLy = OppLy_4f + OppLy_Lf
OppLz = OppLz_4f + OppLz_Lf
OppLsqr = OppLx*OppLx  + OppLy*OppLy + OppLz*OppLz

OppJx = OppJx_4f + OppJx_Lf
OppJy = OppJy_4f + OppJy_Lf
OppJz = OppJz_4f + OppJz_Lf
OppJsqr = OppJx*OppJx + OppJy*OppJy + OppJz*OppJz

 OppF0_4f = NewOperator("U", NF, IndexUp_4f, IndexDn_4f, {1, 0, 0, 0})
 OppF2_4f = NewOperator("U", NF, IndexUp_4f, IndexDn_4f, {0, 1, 0, 0})
 OppF4_4f = NewOperator("U", NF, IndexUp_4f, IndexDn_4f, {0, 0, 1, 0})
 OppF6_4f = NewOperator("U", NF, IndexUp_4f, IndexDn_4f, {0, 0, 0, 1})
 
OppNUp_4f = NewOperator("Number", NF, IndexUp_4f,IndexUp_4f,{1,1,1,1,1,1,1})
OppNDn_4f = NewOperator("Number", NF, IndexDn_4f,IndexDn_4f,{1,1,1,1,1,1,1})

OppN_4f = OppNUp_4f + OppNDn_4f

OppNUp_Lf = NewOperator("Number", NF, IndexUp_Lf,IndexUp_Lf,{1,1,1,1,1,1,1})
OppNDn_Lf = NewOperator("Number", NF, IndexDn_Lf,IndexDn_Lf,{1,1,1,1,1,1,1})
OppN_Lf = OppNUp_Lf + OppNDn_Lf




 -- spin orbit for the f shell and ligand shell   
 
 zeta_4f_i = 0.087* 0.92
 zeta_Lf_i = 0.087* 0.92
 
 U_4f_4f_i = 0
 F2_4f_4f_i = 0 * 0.55
 F4_4f_4f_i = 0 * 0.55
 F6_4f_4f_i = 0 * 0.55
 F0_4f_4f_i = U_4f_4f_i + 4 / 195 * F2_4f_4f_i + 2 / 143 * F4_4f_4f_i + 100 / 5577 * F6_4f_4f_i
 
 Bz = 0.000001
 
H_i = Chop(F0_4f_4f_i *OppF0_4f + F2_4f_4f_i *OppF2_4f+ F4_4f_4f_i *OppF4_4f + F6_4f_4f_i *OppF6_4f +  zeta_4f_i * Oppldots_4f +  zeta_Lf_i * Oppldots_Lf +  Bz*(2*OppSz_4f + OppLz_4f))





e_4f_i = (28 * Delta_4f_Lf_i - 27 * U_4f_4f_i * NElectrons_4f - U_4f_4f_i * NElectrons_4f^2) / (2 * (14 + NElectrons_4f))

e_Lf_i = NElectrons_4f * (-2 * Delta_4f_Lf_i + U_4f_4f_i * NElectrons_4f + U_4f_4f_i) / (2 * (NElectrons_4f + 14))


H_i = H_i + Chop( e_4f_i * OppN_4f + e_Lf_i * OppN_Lf)

-- hybridization Hamiltonian

OppV = NewOperator("Number", NF, IndexUp_4f,IndexUp_Lf, {1,1,1,1,1,1,1}) +
					NewOperator("Number", NF, IndexDn_4f,IndexDn_Lf, {1,1,1,1,1,1,1})+ 
					NewOperator("Number", NF, IndexUp_Lf,IndexUp_4f, {1,1,1,1,1,1,1})+ 
					NewOperator("Number", NF, IndexDn_Lf,IndexDn_4f, {1,1,1,1,1,1,1})
					
					
H_i  = H_i +Chop(V*OppV)


InitialRestrictions = {NF, NB, {" 11111111111111 00000000000000",NElectrons_4f,NElectrons_4f}, {" 00000000000000 11111111111111",14,14}}


CalculationRestrictions = {NF, NB, {' 00000000000000 11111111111111', 14 - (NConfigurations - 1), 14}}



psiList = Eigensystem(H_i, InitialRestrictions, Npsis, {{'restrictions', CalculationRestrictions}})


print(psiList[1])

-- weight of each configuration

Oppf1    =  NewOperator ( "Identity"    , NF ) 
Oppf1.Restrictions =  { NF , NB , { " 11111111111111 00000000000000" ,  1 ,  1 } }
Oppf0    =  NewOperator ( "Identity"    , NF ) 
Oppf0.Restrictions =  { NF , NB , { " 11111111111111 00000000000000" ,  0 ,  0 } } 
Oppf2    =  NewOperator ( "Identity"    , NF ) 
Oppf2.Restrictions =  { NF , NB , { " 11111111111111 00000000000000" ,  2 , 2 } }


oppList={H_i, OppSsqr, OppLsqr,OppLz_4f, OppJsqr, Oppldots_4f, OppF2_4f, OppF4_4f, OppF6_4f,OppN_4f, OppN_Lf}


print("  #    <E>        <S^2>      <L^2>      <L_z^4f>      <J^2>     <l.s>      <F[2]>     <F[4]>     <F[6]>    <N^4f>   <N^Lf>   ");


for i = 1,#psiList do
  io.write(string.format("%3i ",i))
  for j = 1,#oppList do
    expectationvalue = Chop(psiList[i]*oppList[j]*psiList[i])
    io.write(string.format("%10.4f ",expectationvalue))
  end
  io.write("\n")
end

print("Finished")

Here is the Hybridization hamiltonien that I used


OppV = NewOperator("Number", NF, IndexUp_4f,IndexUp_Lf, {1,1,1,1,1,1,1}) +
		NewOperator("Number", NF, IndexDn_4f,IndexDn_Lf, {1,1,1,1,1,1,1})+ 
		NewOperator("Number", NF, IndexUp_Lf,IndexUp_4f, {1,1,1,1,1,1,1})+ 
		NewOperator("Number", NF, IndexDn_Lf,IndexDn_4f, {1,1,1,1,1,1,1})
					
					
H_i  = H_i +Chop(V*OppV)