| |
— | forum:data:2021:number_of_states [2021/01/20 20:34] (current) – Created from the form at forum:start BODRY TEGOMO CHIOGO |
---|
| ====== 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~~ |
| |