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)

Answers

, 2021/02/08 21:40

Dear Bodry,

The total number of states possible is 1 for the f0 L14 configuration 14 * 14 = 196 for the f1 L13 configuration such that in total you could expect 197 states.

At the moment your iterative calculation starts from a single state, the f0 L14 configuration. You ask however for 27 eigenstates. If you look at the output there must be a warning, if you would not have set the verbosity to 0. I would suggest to set the initial restrictions to be the same as the calculation restrictions.

Furthermore in order to understand which state is what it is often nice to lift the degeneracies. You can do this with a small magnetic field in the z direction for example.

Best wishes and good luck, Maurits

, 2021/02/09 11:18

Dear Maurits, Thank you a lot for your answer.

Sorry but I don't understand what you suggest! Indeed, I tryed to set the initial restrictions to be the same as the final restrictions. I don't get anymore the warning but the result in output is very strange for me.

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


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

also, when I would like to understand which state is what, I also calculate the weigth of the $f^0$,$f^1$, and $f^2$, in each state. When I set the initial restrictions to be the same as the final restrictions as you suggest, all the weigth of the differents configuration in each state is equal to zero.

Thank you, Bodry

, 2021/02/09 11:30

Dear Bodry,

Yes, I see the problem, my mistake.

You now specify that the ligand orbitals need to have either 13 or 14 electrons. The Ce f orbitals have no restrictions. You thus defined a Hilbert space with a total number of electrons between 13 and 28.

The restrictions

InitialRestrictions = {NF, NB, {"11111111111111 11111111111111",14,14}, {"00000000000000 11111111111111",14 - (NConfigurations - 1), 14}}

should do the trick. Once the total number of electrons is fixed we do not have to impose this again, as the Hamiltonian is particle conserving, such that the CalculationRestrictions can stay the way they are

Maurits

, 2021/02/09 11:59

Dear Maurits

Thank you a lot for your very quick reply. I juste tryied the new initial restrictions but there is still on probleme.

I get that in output

C:\Users\manip\Documents\Quanty>quanty xas_restriction.lua
=============================================================
====    written by Maurits W. Haverkort                  ====
====    with contributions from:                         ====
====    Yi Lu, Robert Green, Sebastian Macke             ====
====    Marius Retegan, Martin Brass, and Simon Heinze   ====
====    (C) 1995-2018   All rights reserved              ====
====    www.quanty.org                                   ====
====    Beta version, be critical and report errors!!!   ====
=============================================================
====    Version 0.6 Autumn 2018                          ====
====            compiled at: Nov 26 2018 at 08:25:03     ====
=============================================================
====    When used in scientific publications please cite ====
====    one of the following papers as appropriate with  ====
====    respect to the methods used in your publication: ====
====    Phys. Rev. B 85, 165113 (2012)                   ====
====    Phys. Rev. B 90, 085102 (2014)                   ====
====    Euro Phys. Lett. 108, 57004 (2014)               ====
====    J. of Phys.: Conf. Series 712, 012001 (2016)     ====
=============================================================
Program executed on: Tue Feb 09 11:54:42 2021
Running on host    : Windows
number of available processors              : 4
maximum number of threads in parallel region: 4
Smallest positive float  : 2.225074E-308
Smallest deviation from 1: 2.220446E-016

Cannot fullfill all restrictions in CreateStartingFunctions
CreateStartingFunctions failed in BlockGroundState

best regards

Bodry

You could leave a comment if you were logged in.
Print/export