no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


forum:data:2021:number_of_states [2021/01/20 20:34] (current) – Created from the form at forum:start BODRY TEGOMO CHIOGO
Line 1: Line 1:
 +====== Number of states ======
 +;;#
 +asked by [[mailto:bodry.tegomo-chiogo@univ-lorraine.fr|BODRY TEGOMO CHIOGO]] (2021/01/20 20:34)
 +;;#
 +== ==
 +<WRAP center box 100%>
 +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:
 +
 +<code>
 +  #    <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
 +</code>
 +
 +2- With spin orbit : zeta_4f = 0.087
 +
 +<code>
 +#    <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
 +
 +</code>
 +
 +below is the script I used:
 +
 +<code>
 +--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")
 +
 +
 +</code>
 +
 +Here is the Hybridization hamiltonien that I used
 +
 + <code>
 +
 +
 +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)
 +</code>
 +
 +</WRAP>
 +
 +~~DISCUSSION|Answers~~
  
Print/export