Differences

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

Link to this comparison view

Next revision
Previous revision
forum:data:2021:reuse_every_single_determinant_constituting_the_eigenstate [2021/11/11 10:40] – Created from the form at forum:start Ruiwen Xieforum:data:2021:reuse_every_single_determinant_constituting_the_eigenstate [2021/11/11 12:21] (current) Ruiwen Xie
Line 1: Line 1:
 ====== Reuse every single determinant constituting the eigenstate ====== ====== Reuse every single determinant constituting the eigenstate ======
 ;;# ;;#
-asked by [[mailto:ruiwen.xie@tu-darmstadt.de|Ruiwen Xie]] (2021/11/11 10:40)+asked by [[mailto:ruiwen.xie@tu-darmstadt.de|Ruiwen Xie]] (2021/11/11 12:20)
 ;;# ;;#
 == == == ==
Line 7: Line 7:
 Dear Quanty developers, Dear Quanty developers,
  
-I am now trying to use quanty to build the model proposed by A.Kotani in PHYSICAL REVIEW B 78, 195115 2008, in order to get the L23 XAS and XMCD for Ce-based compounds with Ce mix-valency. First I got the eigenstates for Ce 4f^0 and 4f^1 configurations (the script on this forum from BODRY TEGOMO CHIOGO is of great help for this part). +I am now trying to use quanty to build the model proposed by A.Kotani in PHYSICAL REVIEW B 78, 1951152008, in order to get the L23 XAS and XMCD for Ce-based compounds with Ce mix-valency. First I got the eigenstates for Ce 4f^0 and 4f^1 configurations (the script on this forum from BODRY TEGOMO CHIOGO is of great help for this part). 
 The following is the part of script to get eigenstates The following is the part of script to get eigenstates
  
----------------------------------------------------------+<code>
 Verbosity(0) Verbosity(0)
- 
 NF = 44 NF = 44
 NB = 0 NB = 0
- 
 IndexDn_4f = {0,2,4,6,8,10,12} IndexDn_4f = {0,2,4,6,8,10,12}
 IndexUp_4f = {1,3,5,7,9,11,13} IndexUp_4f = {1,3,5,7,9,11,13}
Line 51: Line 50:
 OppJplus_4f = NewOperator("Jplus", NF, IndexUp_4f,IndexDn_4f) OppJplus_4f = NewOperator("Jplus", NF, IndexUp_4f,IndexDn_4f)
 OppJmin_4f = NewOperator("Jmin", NF, IndexUp_4f,IndexDn_4f) OppJmin_4f = NewOperator("Jmin", NF, IndexUp_4f,IndexDn_4f)
- 
 Oppldots_4f = NewOperator("ldots", NF, IndexUp_4f,IndexDn_4f) Oppldots_4f = NewOperator("ldots", NF, IndexUp_4f,IndexDn_4f)
  
--- Angular momentum operator for the Ligand f-shell +-- Angular momentum operator for the Ligand f-shell  
 OppSx_Lf = NewOperator("Sx", NF, IndexUp_Lf,IndexDn_Lf) OppSx_Lf = NewOperator("Sx", NF, IndexUp_Lf,IndexDn_Lf)
 OppSy_Lf = NewOperator("Sy", NF, IndexUp_Lf,IndexDn_Lf) OppSy_Lf = NewOperator("Sy", NF, IndexUp_Lf,IndexDn_Lf)
Line 69: Line 66:
 OppLplus_Lf = NewOperator("Lplus", NF, IndexUp_Lf,IndexDn_Lf) OppLplus_Lf = NewOperator("Lplus", NF, IndexUp_Lf,IndexDn_Lf)
 OppLmin_Lf = NewOperator("Lmin", NF, IndexUp_Lf,IndexDn_Lf) OppLmin_Lf = NewOperator("Lmin", NF, IndexUp_Lf,IndexDn_Lf)
 +  
 OppJx_Lf = NewOperator("Jx", NF, IndexUp_Lf,IndexDn_Lf) OppJx_Lf = NewOperator("Jx", NF, IndexUp_Lf,IndexDn_Lf)
 OppJy_Lf = NewOperator("Jy", NF, IndexUp_Lf,IndexDn_Lf) OppJy_Lf = NewOperator("Jy", NF, IndexUp_Lf,IndexDn_Lf)
Line 76: Line 73:
 OppJplus_Lf = NewOperator("Jplus", NF, IndexUp_Lf,IndexDn_Lf) OppJplus_Lf = NewOperator("Jplus", NF, IndexUp_Lf,IndexDn_Lf)
 OppJmin_Lf = NewOperator("Jmin", NF, IndexUp_Lf,IndexDn_Lf) OppJmin_Lf = NewOperator("Jmin", NF, IndexUp_Lf,IndexDn_Lf)
 + 
 Oppldots_Lf = NewOperator("ldots", NF, IndexUp_4f,IndexDn_4f) Oppldots_Lf = NewOperator("ldots", NF, IndexUp_4f,IndexDn_4f)
  
 -- SUM OF THE OPERATOR -- SUM OF THE OPERATOR
- 
 OppSx = OppSx_4f + OppSx_Lf OppSx = OppSx_4f + OppSx_Lf
 OppSy = OppSy_4f + OppSy_Lf OppSy = OppSy_4f + OppSy_Lf
 OppSz = OppSz_4f + OppSz_Lf OppSz = OppSz_4f + OppSz_Lf
 OppSsqr = OppSx*OppSx + OppSy*OppSy + OppSz*OppSz OppSsqr = OppSx*OppSx + OppSy*OppSy + OppSz*OppSz
- 
 OppLx = OppLx_4f + OppLx_Lf OppLx = OppLx_4f + OppLx_Lf
 OppLy = OppLy_4f + OppLy_Lf OppLy = OppLy_4f + OppLy_Lf
 OppLz = OppLz_4f + OppLz_Lf OppLz = OppLz_4f + OppLz_Lf
 OppLsqr = OppLx*OppLx  + OppLy*OppLy + OppLz*OppLz OppLsqr = OppLx*OppLx  + OppLy*OppLy + OppLz*OppLz
- 
 OppJx = OppJx_4f + OppJx_Lf OppJx = OppJx_4f + OppJx_Lf
 OppJy = OppJy_4f + OppJy_Lf OppJy = OppJy_4f + OppJy_Lf
Line 102: Line 96:
  
 OppNUp_4f = NewOperator("Number", NF, IndexUp_4f,IndexUp_4f,{1,1,1,1,1,1,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}) +OppNDn_4f = NewOperator("Number", NF, IndexDn_4f,IndexDn_4f,{1,1,1,1,1,1,1})  
 OppN_4f = OppNUp_4f + OppNDn_4f OppN_4f = OppNUp_4f + OppNDn_4f
  
Line 112: Line 105:
 zeta_4f_i = 0.087* 0.92 zeta_4f_i = 0.087* 0.92
 zeta_Lf_i = 0.087* 0.92 zeta_Lf_i = 0.087* 0.92
 + 
 U_4f_4f_i = 0 U_4f_4f_i = 0
 F2_4f_4f_i = 0 * 0.55 F2_4f_4f_i = 0 * 0.55
 F4_4f_4f_i = 0 * 0.55 F4_4f_4f_i = 0 * 0.55
 F6_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+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.001 Bz = 0.001
Line 130: Line 123:
 -- hybridization Hamiltonian -- hybridization Hamiltonian
 OppV = NewOperator("Number", NF, IndexUp_4f,IndexUp_Lf, {1,1,1,1,1,1,1}) + 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, 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, 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})+NewOperator("Number", NF, IndexDn_Lf,IndexDn_4f, {1,1,1,1,1,1,1})
  
 H_i  = H_i +Chop(V*OppV) H_i  = H_i +Chop(V*OppV)
Line 144: Line 137:
  
 -- weight of each configuration -- weight of each configuration
-Oppf1    =  NewOperator ( "Identity"    , NF ) +Oppf1  =  NewOperator ( "Identity" , NF ) 
-Oppf1.Restrictions =  { NF , NB , { " 11111111111111 00000000000000 000000 0000000000" 1 ,  1 } } +Oppf1.Restrictions = { NF , NB , {  " 11111111111111 00000000000000 000000 0000000000" , 1 , 1   
-Oppf0    =  NewOperator ( "Identity"    , NF ) +Oppf0  =  NewOperator ( "Identity" , NF ) 
-Oppf0.Restrictions =  { NF , NB , { " 11111111111111 00000000000000 000000 0000000000" 0 ,  0 } }+Oppf0.Restrictions = { NF , NB , {  " 11111111111111 00000000000000 000000 0000000000" , 0 , 0   }
  
 oppList={H_i, OppSsqr, OppLsqr,OppLz_4f, OppJsqr, OppJz_4f, Oppldots_4f, OppF2_4f, OppF4_4f, OppF6_4f,OppN_4f, OppN_Lf, Oppf1, Oppf0, OppN_5d} oppList={H_i, OppSsqr, OppLsqr,OppLz_4f, OppJsqr, OppJz_4f, Oppldots_4f, OppF2_4f, OppF4_4f, OppF6_4f,OppN_4f, OppN_Lf, Oppf1, Oppf0, OppN_5d}
- +   
-print("    <E>        <S^2>      <L^2>      <L_z^4f>      <J^2>   <J_z>    <l.s>      <F[2]>     <F[4]>     <F[6]>    <N^4f>   <N^Lf>   <Weight_f1>   <Weight_f0> ");+print("  <E>  <S^2>  <L^2>  <L_z^4f>  <J^2> <J_z>  <l.s>  <F[2]> <F[4]> <F[6]>  <N^4f> <N^Lf> <Weight_f1> <Weight_f0> ");
  
 for i = 1,#psiList do for i = 1,#psiList do
-  io.write(string.format("%3i ",i)) +io.write(string.format("%3i ",i)) 
-  for j = 1,#oppList do +for j = 1,#oppList do 
-    expectationvalue = Chop(psiList[i]*oppList[j]*psiList[i]) +expectationvalue = Chop(psiList[i]*oppList[j]*psiList[i]) 
-    io.write(string.format("%10.4f ",expectationvalue)+io.write(string.format("%10.4f ",expectationvalue))
-  end +
-  io.write("\n")+
 end end
--------------------------------------------------------------- +io.write("\n") 
-Then the output I got is as follows+end 
 +</code>
  
---------------------------------------------------------------+Then the output I got is as follows 
 +<code>
 WaveFunction: Wave Function WaveFunction: Wave Function
 QComplex                  0 (Real==0 or Complex==1) QComplex                  0 (Real==0 or Complex==1)
Line 200: Line 193:
   27   1.448360665541E-01       10000000000000011111111111111111110000000000   27   1.448360665541E-01       10000000000000011111111111111111110000000000
  
- +  #    <E>        <S^2>      <L^2>      <L_z^4f>      <J^2>   <J_z>    <l.s>      <F[2]>     <F[4]>     <F[6]>    <N^4f>   <N^Lf>   <Weight_f1>   <Weight_f0> 
-  #    <E>        <S^2>      <L^2>      <L_z^4f>      <J^2>   <J_z>    <l.s>      <F[2]>     <F[4]>     <F[6]>    <N^4f>   <N^Lf>   <Weight_f1>   <Weight_f0>  +  1    -1.8044     0.1911     0.1911    -0.0082     0.0000    -0.0079    -0.9124     0.0000     0.0000     0.0000     0.7476    13.2524     0.7476     0.2524 
-  1    -1.8044     0.1911     0.1911    -0.0082     0.0000    -0.0079    -0.9124     0.0000     0.0000     0.0000     0.7476    13.2524     0.7476     0.2524  +  2    -1.3223     1.7545    11.7545    -2.8567    12.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
-  2    -1.3223     1.7545    11.7545    -2.8567    12.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  +  3    -1.3223     1.8567     6.8598    -2.8567     7.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
-  3    -1.3223     1.8567     6.8598    -2.8567     7.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  +  4    -1.3223     1.1433    12.5732    -2.8567    12.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
-  4    -1.3223     1.1433    12.5732    -2.8567    12.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  +  5    -1.3223     1.8567    18.2866    -2.8567    15.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
-  5    -1.3223     1.8567    18.2866    -2.8567    15.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  +  6    -1.3223     1.1433    18.2866    -2.8567    18.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
-  6    -1.3223     1.1433    18.2866    -2.8567    18.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  +  7    -1.3223     1.8567    24.0000    -2.8567    19.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
-  7    -1.3223     1.8567    24.0000    -2.8567    19.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  +  8    -1.3223     1.1433    41.1402    -2.8567    42.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
-  8    -1.3223     1.1433    41.1402    -2.8567    42.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  +  9    -1.3223     1.1433    35.4268    -2.8567    36.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
-  9    -1.3223     1.1433    35.4268    -2.8567    36.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  + 10    -1.3223     1.8567    29.7134    -2.8567    23.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
- 10    -1.3223     1.8567    29.7134    -2.8567    23.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  + 11    -1.3223     1.1433    24.0000    -2.8567    24.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
- 11    -1.3223     1.1433    24.0000    -2.8567    24.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  + 12    -1.3223     1.1433    29.7134    -2.8567    30.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
- 12    -1.3223     1.1433    29.7134    -2.8567    30.0000    -2.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  + 13    -1.3220     1.3306    13.1170    -2.4719     9.1633    -2.1634    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
- 13    -1.3220     1.3306    13.1170    -2.4719     9.1633    -2.1634    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  + 14    -1.3214     1.5912    19.5912    -1.7136    20.0000    -1.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
- 14    -1.3214     1.5912    19.5912    -1.7136    20.0000    -1.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  + 15    -1.3214     1.7136    13.7187    -1.7136    14.0000    -1.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000 
- 15    -1.3214     1.7136    13.7187    -1.7136    14.0000    -1.5000    -2.0000     0.0000     0.0000     0.0000     1.0000    13.0000     1.0000     0.0000  +</code>
------------------------------------------------------------- +
  
 Then I defined the Hamiltonian for final state 4fLf2p^55d^1 Then I defined the Hamiltonian for final state 4fLf2p^55d^1
  
-------------------------------------------------------------+<code>
 OppUdfG1 = NewOperator("U", NF, IndexUp_5d, IndexDn_5d, IndexUp_4f, IndexDn_4f, {0,0,0}, {1,0,0}) --only considered G1_5d4f OppUdfG1 = NewOperator("U", NF, IndexUp_5d, IndexDn_5d, IndexUp_4f, IndexDn_4f, {0,0,0}, {1,0,0}) --only considered G1_5d4f
  
Line 267: Line 258:
 Spectra_ave = (Spectra_z + Spectra_r + Spectra_l)/3 Spectra_ave = (Spectra_z + Spectra_r + Spectra_l)/3
 Spectra_XMCD = Spectra_r - Spectra_l Spectra_XMCD = Spectra_r - Spectra_l
-------------------------------------------------------+</code>
  
 Following the model given by A.Kotani, in order to get proper XMCD, one should rescale the transition operator based on the exchange between 4f and 5d, i.e., the 4f spin for Ce can be fixed according to Hund's rule, and the transition from 2p to 5d thus has preference due to the 4f and 5d exchange. They introduced an enhance parameter alpha and renormalize the transition operator by sqrt(1-alpha*E_df_ex) to consider such effect, where E_df_ex is the exchange interaction energy between 4f and 5d states.  Following the model given by A.Kotani, in order to get proper XMCD, one should rescale the transition operator based on the exchange between 4f and 5d, i.e., the 4f spin for Ce can be fixed according to Hund's rule, and the transition from 2p to 5d thus has preference due to the 4f and 5d exchange. They introduced an enhance parameter alpha and renormalize the transition operator by sqrt(1-alpha*E_df_ex) to consider such effect, where E_df_ex is the exchange interaction energy between 4f and 5d states. 
  
-As I understand from the Quanty output, the first eigenstate is a combination of several determinants.  +As I understand from the Quanty output, the first eigenstate is a combination of several determinants. I want to find a way to easily reuse every determinant, for example, if I define 
-I want to find a way to easily reuse every determinant, for example, if I define +<code>
------------+
 wf1 = NewWavefunction(NF, NB, {{"00000000000100111111111111011111110000000000", 0.05799}}) wf1 = NewWavefunction(NF, NB, {{"00000000000100111111111111011111110000000000", 0.05799}})
------------+</code>
 so that I can first get the corresponding TXASr|wf1>. And then the new wave function TXASr|wf1> will be used to get E_df_ex by using TXASr|wf1> * OppUdfG1 * TXASr|wf1>. With the obtained E_df_ex, I can then renormalize the transition intensity for each single wave function accordingly.  so that I can first get the corresponding TXASr|wf1>. And then the new wave function TXASr|wf1> will be used to get E_df_ex by using TXASr|wf1> * OppUdfG1 * TXASr|wf1>. With the obtained E_df_ex, I can then renormalize the transition intensity for each single wave function accordingly. 
  
Line 281: Line 271:
 Or is this a correct way to renormalize the transition intensity? I am very appreciated if you could tell me your opinions on this regard.  Or is this a correct way to renormalize the transition intensity? I am very appreciated if you could tell me your opinions on this regard. 
  
-Thanks a lot for your time!+Thanks a lot for your help!
  
 Best Regards, Best Regards,
Print/export