Differences
This shows you the differences between two versions of the page.
documentation:tutorials:nio_ligand_field:xas_l23_partial_excitations [2016/10/09 15:49] – created Maurits W. Haverkort | documentation:tutorials:nio_ligand_field:xas_l23_partial_excitations [2016/10/10 09:41] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | {{indexmenu_n> | ||
+ | ====== XAS $L_{2,3}$ partial excitations ====== | ||
+ | ### | ||
+ | In order to understand where a particular peak originates from one can look at the character of the excited state. Quanty works with Green' | ||
+ | ### | ||
+ | |||
+ | ### | ||
+ | The input file is: | ||
+ | <code Quanty XAS_partial.Quanty> | ||
+ | -- In order to understand the different peaks in an absorption experiment one can look | ||
+ | -- at the character of the states one excites into. | ||
+ | |||
+ | -- here we calculate the 2p to 3d x-ray absorption of NiO within the Ligand-field theory | ||
+ | -- approximation. The script is basically a copy of tutorial 41. The difference is in how | ||
+ | -- we define the transition operator. | ||
+ | |||
+ | -- we calculate the spectra separated to t2g and eg excitations, | ||
+ | -- excitations and to excitations into d9 L^10 or d10L9 states. | ||
+ | |||
+ | -- from the previous example we know that within NiO there are 3 states close to each other | ||
+ | -- and then there is an energy gap of about 1 eV. We thus only need to consider the 3 | ||
+ | -- lowest states (Npsi=3 later on) | ||
+ | |||
+ | NF=26 | ||
+ | NB=0 | ||
+ | IndexDn_2p={ 0, 2, 4} | ||
+ | IndexUp_2p={ 1, 3, 5} | ||
+ | IndexDn_3d={ 6, 8,10,12,14} | ||
+ | IndexUp_3d={ 7, 9,11,13,15} | ||
+ | IndexDn_Ld={16, | ||
+ | IndexUp_Ld={17, | ||
+ | |||
+ | -- angular momentum operators on the d-shell | ||
+ | |||
+ | OppSx_3d | ||
+ | OppSy_3d | ||
+ | OppSz_3d | ||
+ | OppSsqr_3d =NewOperator(" | ||
+ | OppSplus_3d=NewOperator(" | ||
+ | OppSmin_3d =NewOperator(" | ||
+ | |||
+ | OppLx_3d | ||
+ | OppLy_3d | ||
+ | OppLz_3d | ||
+ | OppLsqr_3d =NewOperator(" | ||
+ | OppLplus_3d=NewOperator(" | ||
+ | OppLmin_3d =NewOperator(" | ||
+ | |||
+ | OppJx_3d | ||
+ | OppJy_3d | ||
+ | OppJz_3d | ||
+ | OppJsqr_3d =NewOperator(" | ||
+ | OppJplus_3d=NewOperator(" | ||
+ | OppJmin_3d =NewOperator(" | ||
+ | |||
+ | Oppldots_3d=NewOperator(" | ||
+ | |||
+ | -- Angular momentum operators on the Ligand shell | ||
+ | |||
+ | OppSx_Ld | ||
+ | OppSy_Ld | ||
+ | OppSz_Ld | ||
+ | OppSsqr_Ld =NewOperator(" | ||
+ | OppSplus_Ld=NewOperator(" | ||
+ | OppSmin_Ld =NewOperator(" | ||
+ | |||
+ | OppLx_Ld | ||
+ | OppLy_Ld | ||
+ | OppLz_Ld | ||
+ | OppLsqr_Ld =NewOperator(" | ||
+ | OppLplus_Ld=NewOperator(" | ||
+ | OppLmin_Ld =NewOperator(" | ||
+ | |||
+ | OppJx_Ld | ||
+ | OppJy_Ld | ||
+ | OppJz_Ld | ||
+ | OppJsqr_Ld =NewOperator(" | ||
+ | OppJplus_Ld=NewOperator(" | ||
+ | OppJmin_Ld =NewOperator(" | ||
+ | |||
+ | -- total angular momentum | ||
+ | OppSx = OppSx_3d + OppSx_Ld | ||
+ | OppSy = OppSy_3d + OppSy_Ld | ||
+ | OppSz = OppSz_3d + OppSz_Ld | ||
+ | OppSsqr = OppSx * OppSx + OppSy * OppSy + OppSz * OppSz | ||
+ | OppLx = OppLx_3d + OppLx_Ld | ||
+ | OppLy = OppLy_3d + OppLy_Ld | ||
+ | OppLz = OppLz_3d + OppLz_Ld | ||
+ | OppLsqr = OppLx * OppLx + OppLy * OppLy + OppLz * OppLz | ||
+ | OppJx = OppJx_3d + OppJx_Ld | ||
+ | OppJy = OppJy_3d + OppJy_Ld | ||
+ | OppJz = OppJz_3d + OppJz_Ld | ||
+ | OppJsqr = OppJx * OppJx + OppJy * OppJy + OppJz * OppJz | ||
+ | |||
+ | -- define the coulomb operator | ||
+ | -- we here define the part depending on F0 seperately from the part depending on F2 | ||
+ | -- when summing we can put in the numerical values of the slater integrals | ||
+ | |||
+ | OppF0_3d =NewOperator(" | ||
+ | OppF2_3d =NewOperator(" | ||
+ | OppF4_3d =NewOperator(" | ||
+ | |||
+ | -- define onsite energies - crystal field | ||
+ | -- Akm = {{k1, | ||
+ | |||
+ | Akm = PotentialExpandedOnClm(" | ||
+ | OpptenDq_3d = NewOperator(" | ||
+ | OpptenDq_Ld = NewOperator(" | ||
+ | |||
+ | Akm = PotentialExpandedOnClm(" | ||
+ | OppNeg_3d = NewOperator(" | ||
+ | OppNeg_Ld = NewOperator(" | ||
+ | Akm = PotentialExpandedOnClm(" | ||
+ | OppNt2g_3d = NewOperator(" | ||
+ | OppNt2g_Ld = NewOperator(" | ||
+ | |||
+ | OppNUp_2p = NewOperator(" | ||
+ | OppNDn_2p = NewOperator(" | ||
+ | OppN_2p = OppNUp_2p + OppNDn_2p | ||
+ | OppNUp_3d = NewOperator(" | ||
+ | OppNDn_3d = NewOperator(" | ||
+ | OppN_3d = OppNUp_3d + OppNDn_3d | ||
+ | OppNUp_Ld = NewOperator(" | ||
+ | OppNDn_Ld = NewOperator(" | ||
+ | OppN_Ld = OppNUp_Ld + OppNDn_Ld | ||
+ | |||
+ | -- define L-d interaction | ||
+ | |||
+ | Akm = PotentialExpandedOnClm(" | ||
+ | OppVeg | ||
+ | Akm = PotentialExpandedOnClm(" | ||
+ | OppVt2g = NewOperator(" | ||
+ | |||
+ | -- core valence interaction | ||
+ | |||
+ | Oppcldots= NewOperator(" | ||
+ | OppUpdF0 = NewOperator(" | ||
+ | OppUpdF2 = NewOperator(" | ||
+ | OppUpdG1 = NewOperator(" | ||
+ | OppUpdG3 = NewOperator(" | ||
+ | |||
+ | -- dipole transition | ||
+ | |||
+ | t=math.sqrt(1/ | ||
+ | |||
+ | Akm = {{1, | ||
+ | TXASx = NewOperator(" | ||
+ | Akm = {{1, | ||
+ | TXASy = NewOperator(" | ||
+ | Akm = {{1,0,1}} | ||
+ | TXASz = NewOperator(" | ||
+ | |||
+ | -- we now define rotation matrices that rotate the basis of (l lz s sz) to a basis of | ||
+ | -- (k tau s sz) for the d-shell or (j jz) for the p-shell. The function rotate calculates | ||
+ | -- R^* Opp R^T and the rotation matrix is thus equal to the eigen-functions of the | ||
+ | -- crystal-field operator and the spin-orbit coupling operator respectively. | ||
+ | |||
+ | -- the total matrix is a 16 by 16 matrix | ||
+ | |||
+ | t=sqrt(1/2) | ||
+ | u=I*sqrt(1/ | ||
+ | d=sqrt(1/3) | ||
+ | e=sqrt(2/3) | ||
+ | |||
+ | -- rotating the 2p states to a (j jz) basis | ||
+ | |||
+ | rotmatjjzp = {{ 0,-e, d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0,-d, e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, d, e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, e, d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}} | ||
+ | | ||
+ | -- rotating the 3d states to a (k tau s sz) basis | ||
+ | | ||
+ | rotmatKd | ||
+ | { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, u, 0, 0, 0, u, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, u, 0, 0, 0, u, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0,-t, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0,-t, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, u, 0, 0, 0, 0, 0, 0, 0,-u, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, u, 0, 0, 0, 0, 0, 0, 0,-u, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}} | ||
+ | | ||
+ | -- We can modify the rotation of the 2p orbitals such that we only | ||
+ | -- keep the j=1/2 sub-shell | ||
+ | |||
+ | rotmatjjzp12 = {{ 0,-e, d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0,-d, e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}} | ||
+ | | ||
+ | -- or modify it such that we only keep the j=3/2 sub-shell | ||
+ | | ||
+ | rotmatjjzp32 = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, d, e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, e, d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}} | ||
+ | | ||
+ | -- We can modify the rotation of the 3d orbitals such that we only keep | ||
+ | -- the orbitals belonging to the eg irreducible representation. | ||
+ | | ||
+ | rotmatKdeg | ||
+ | { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}} | ||
+ | | ||
+ | -- or such that we only keep the orbitals belonging to the t2g irreducible representation | ||
+ | | ||
+ | rotmatKdt2g | ||
+ | { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, u, 0, 0, 0, u, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, u, 0, 0, 0, u, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0,-t, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, t, 0, 0, 0,-t, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, u, 0, 0, 0, 0, 0, 0, 0,-u, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, u, 0, 0, 0, 0, 0, 0, 0,-u, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, | ||
+ | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}} | ||
+ | | ||
+ | -- The transition operator restricted to a subset of orbitals is then given as: | ||
+ | -- Tnew = R2^* . R1^* . Told . R1^T . R2^T | ||
+ | -- with R1 the restricted rotation matrix | ||
+ | -- and R2 the full rotation matrix conjugate transposed (R^+) | ||
+ | |||
+ | TXASxj12 = Chop(Rotate(Chop(Rotate(TXASx, | ||
+ | TXASyj12 = Chop(Rotate(Chop(Rotate(TXASy, | ||
+ | TXASzj12 = Chop(Rotate(Chop(Rotate(TXASz, | ||
+ | TXASxj32 = Chop(Rotate(Chop(Rotate(TXASx, | ||
+ | TXASyj32 = Chop(Rotate(Chop(Rotate(TXASy, | ||
+ | TXASzj32 = Chop(Rotate(Chop(Rotate(TXASz, | ||
+ | TXASxeg | ||
+ | TXASyeg | ||
+ | TXASzeg | ||
+ | TXASxt2g = Chop(Rotate(Chop(Rotate(TXASx, | ||
+ | TXASyt2g = Chop(Rotate(Chop(Rotate(TXASy, | ||
+ | TXASzt2g = Chop(Rotate(Chop(Rotate(TXASz, | ||
+ | |||
+ | -- The previous definitions allow us to calculate excitations into t2g, eg orbitals from | ||
+ | -- either j=1/2 or j=3/2 orbitals. In order to restrict the operator to specific configurations | ||
+ | -- we set the restrictions on the transition operator | ||
+ | |||
+ | TXASd8x = Clone(TXASx) | ||
+ | TXASd9x = Clone(TXASx) | ||
+ | TXASd8y = Clone(TXASy) | ||
+ | TXASd9y = Clone(TXASy) | ||
+ | TXASd8z = Clone(TXASz) | ||
+ | TXASd9z = Clone(TXASz) | ||
+ | TXASd8x.Restrictions={NF, | ||
+ | TXASd9x.Restrictions={NF, | ||
+ | TXASd8y.Restrictions={NF, | ||
+ | TXASd9y.Restrictions={NF, | ||
+ | TXASd8z.Restrictions={NF, | ||
+ | TXASd9z.Restrictions={NF, | ||
+ | |||
+ | |||
+ | -- We follow the energy definitions as introduced in the group of G.A. Sawatzky (Groningen) | ||
+ | -- J. Zaanen, G.A. Sawatzky, and J.W. Allen PRL 55, 418 (1985) | ||
+ | -- for parameters of specific materials see | ||
+ | -- A.E. Bockquet et al. PRB 55, 1161 (1996) | ||
+ | -- After some initial discussion the energies U and Delta refer to the center of a configuration | ||
+ | -- The L^10 d^n | ||
+ | -- The L^9 d^n+1 configuration has an energy Delta | ||
+ | -- The L^8 d^n+2 configuration has an energy 2*Delta+Udd | ||
+ | -- | ||
+ | -- If we relate this to the onsite energy of the L and d orbitals we find | ||
+ | -- 10 eL + n ed + n(n-1) | ||
+ | -- 9 eL + (n+1) ed + (n+1)n | ||
+ | -- 8 eL + (n+2) ed + (n+1)(n+2) U/2 == 2*Delta+U | ||
+ | -- 3 equations with 2 unknowns, but with interdependence yield: | ||
+ | -- ed = (10*Delta-nd*(19+nd)*U/ | ||
+ | -- eL = nd*((1+nd)*Udd/ | ||
+ | -- | ||
+ | -- For the final state we/they defined | ||
+ | -- The 2p^5 L^10 d^n+1 configuration has an energy 0 | ||
+ | -- The 2p^5 L^9 d^n+2 configuration has an energy Delta + Udd - Upd | ||
+ | -- The 2p^5 L^8 d^n+3 configuration has an energy 2*Delta + 3*Udd - 2*Upd | ||
+ | -- | ||
+ | -- If we relate this to the onsite energy of the p and d orbitals we find | ||
+ | -- 6 ep + 10 eL + n ed + n(n-1) | ||
+ | -- 6 ep + 9 eL + (n+1) ed + (n+1)n | ||
+ | -- 6 ep + 8 eL + (n+2) ed + (n+1)(n+2) Udd/2 + 6 (n+2) Upd == 2*Delta+Udd | ||
+ | -- 5 ep + 10 eL + (n+1) ed + (n+1)(n) | ||
+ | -- 5 ep + 9 eL + (n+2) ed + (n+2)(n+1) Udd/2 + 5 (n+2) Upd == Delta+Udd-Upd | ||
+ | -- 5 ep + 8 eL + (n+3) ed + (n+3)(n+2) Udd/2 + 5 (n+3) Upd == 2*Delta+3*Udd-2*Upd | ||
+ | -- 6 equations with 3 unknowns, but with interdependence yield: | ||
+ | -- epfinal = (10*Delta + (1+nd)*(nd*Udd/ | ||
+ | -- edfinal = (10*Delta - nd*(31+nd)*Udd/ | ||
+ | -- eLfinal = ((1+nd)*(nd*Udd/ | ||
+ | -- | ||
+ | -- | ||
+ | -- | ||
+ | -- note that ed-ep = Delta - nd * U and not Delta | ||
+ | -- note furthermore that ep and ed here are defined for the onsite energy if the system had | ||
+ | -- locally nd electrons in the d-shell. In DFT or Hartree Fock the d occupation is in the end not | ||
+ | -- nd and thus the onsite energy of the Kohn-Sham orbitals is not equal to ep and ed in model | ||
+ | -- calculations. | ||
+ | -- | ||
+ | -- note furthermore that ep and eL actually should be different for most systems. We happily ignore this fact | ||
+ | -- | ||
+ | -- We normally take U and Delta as experimentally determined parameters | ||
+ | |||
+ | -- number of electrons (formal valence) | ||
+ | nd = 8 | ||
+ | -- parameters from experiment (core level PES) | ||
+ | Udd | ||
+ | Upd | ||
+ | Delta | ||
+ | -- parameters obtained from DFT (PRB 85, 165113 (2012)) | ||
+ | F2dd = 11.14 | ||
+ | F4dd = 6.87 | ||
+ | F2pd = 6.67 | ||
+ | G1pd = 4.92 | ||
+ | G3pd = 2.80 | ||
+ | tenDq | ||
+ | tenDqL | ||
+ | Veg | ||
+ | Vt2g = 1.21 | ||
+ | zeta_3d = 0.081 | ||
+ | zeta_2p = 11.51 | ||
+ | Bz = 0.000001 | ||
+ | Hz = 0.120 | ||
+ | |||
+ | ed = (10*Delta-nd*(19+nd)*Udd/ | ||
+ | eL = nd*((1+nd)*Udd/ | ||
+ | |||
+ | epfinal = (10*Delta + (1+nd)*(nd*Udd/ | ||
+ | edfinal = (10*Delta - nd*(31+nd)*Udd/ | ||
+ | eLfinal = ((1+nd)*(nd*Udd/ | ||
+ | |||
+ | F0dd = Udd + (F2dd+F4dd) * 2/63 | ||
+ | F0pd = Upd + (1/15)*G1pd + (3/70)*G3pd | ||
+ | |||
+ | Hamiltonian = F0dd*OppF0_3d + F2dd*OppF2_3d + F4dd*OppF4_3d + zeta_3d*Oppldots_3d + Bz*(2*OppSz_3d + OppLz_3d) + Hz * OppSz_3d + tenDq*OpptenDq_3d + tenDqL*OpptenDq_Ld + Veg * OppVeg + Vt2g * OppVt2g + ed * OppN_3d + eL * OppN_Ld | ||
+ | | ||
+ | XASHamiltonian = F0dd*OppF0_3d + F2dd*OppF2_3d + F4dd*OppF4_3d + zeta_3d*Oppldots_3d + Bz*(2*OppSz_3d + OppLz_3d)+ Hz * OppSz_3d + tenDq*OpptenDq_3d + tenDqL*OpptenDq_Ld + Veg * OppVeg + Vt2g * OppVt2g + edfinal * OppN_3d + eLfinal * OppN_Ld + epfinal * OppN_2p + zeta_2p * Oppcldots + F0pd * OppUpdF0 + F2pd * OppUpdF2 + G1pd * OppUpdG1 + G3pd * OppUpdG3 | ||
+ | |||
+ | -- we now can create the lowest Npsi eigenstates: | ||
+ | Npsi=3 | ||
+ | -- in order to make sure we have a filling of 8 electrons we need to define some restrictions | ||
+ | StartRestrictions = {NF, NB, {" | ||
+ | |||
+ | psiList = Eigensystem(Hamiltonian, | ||
+ | oppList={Hamiltonian, | ||
+ | |||
+ | -- print of some expectation values | ||
+ | |||
+ | print(" | ||
+ | for i = 1,#psiList do | ||
+ | io.write(string.format(" | ||
+ | for j = 1,#oppList do | ||
+ | expectationvalue = Chop(psiList[i]*oppList[j]*psiList[i]) | ||
+ | io.write(string.format(" | ||
+ | end | ||
+ | io.write(" | ||
+ | end | ||
+ | |||
+ | -- calculating the spectra is simple and single line once all operators and wave-functions | ||
+ | -- are defined. | ||
+ | |||
+ | -- we here calculate the spectra for x polarized light and seperate the excitations into the t2g or eg sub-shell. | ||
+ | -- We also calculate the spectra separately coming form j=1/2 or j=3/2 orbitals. | ||
+ | |||
+ | XASSpectra = CreateSpectra(XASHamiltonian, | ||
+ | |||
+ | XASSpectra.Broaden(0.4, | ||
+ | |||
+ | -- in order to plot the spectra we write them to file in ASCII format | ||
+ | -- note that the calculated object, i.e. <psi | T^dag 1/ | ||
+ | -- is complex. Minus the imaginary part is the absorption. | ||
+ | XASSpectra.Print({{" | ||
+ | |||
+ | -- in order to plot we use gnuplot. You can use any program, but gnuplot is nice as it can | ||
+ | -- be called from within Quanty. We first define the gnuplot script as a string inside Quanty | ||
+ | gnuplotInput = [[ | ||
+ | set autoscale | ||
+ | set xtic auto | ||
+ | set ytic auto | ||
+ | set style line 1 lt 1 lw 1 lc rgb "# | ||
+ | set style line 2 lt 1 lw 1 lc rgb "# | ||
+ | set style line 3 lt 1 lw 1 lc rgb "# | ||
+ | |||
+ | set xlabel "E (eV)" font " | ||
+ | set ylabel " | ||
+ | |||
+ | set out " | ||
+ | set size 1.0, 1.0 | ||
+ | set terminal postscript portrait enhanced color " | ||
+ | |||
+ | set multiplot layout 5, 1 | ||
+ | |||
+ | plot " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | plot " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | plot " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | ]] | ||
+ | |||
+ | -- next we save this string to a file | ||
+ | file = io.open(" | ||
+ | file: | ||
+ | file: | ||
+ | |||
+ | -- and finally call gnuplot to execute the script | ||
+ | os.execute(" | ||
+ | -- as I like pdf to view and eps to include in the manuel I transform the format | ||
+ | os.execute(" | ||
+ | </ | ||
+ | ### | ||
+ | |||
+ | The resulting spectra are: | ||
+ | | {{ : | ||
+ | ^ $2p$ to $3d$ excitations. Top panel: Split according to excitations into the Ni $3d$ $e_g$ or $t_{2g}$ orbitals. Middle panel: Split according to excitations from the Ni $2p$ $j=1/2$ or $j=3/2$ orbital. Bottom panel: split according to excitations into $d^8$ or $d^9$ configurations. ^ | ||
+ | |||
+ | ### | ||
+ | The output of the script is: | ||
+ | <file Quanty_Output XAS_partial.out> | ||
+ | Start of BlockGroundState. Converge 3 states to an energy with relative variance smaller than 1.490116119384766E-06 | ||
+ | |||
+ | Start of BlockOperatorPsiSerialRestricted | ||
+ | Outer loop 1, Number of Determinants: | ||
+ | Start of BlockOperatorPsiSerialRestricted | ||
+ | Start of BlockGroundState. Converge 3 states to an energy with relative variance smaller than 1.490116119384766E-06 | ||
+ | |||
+ | Start of BlockOperatorPsiSerial | ||
+ | Outer loop 1, Number of Determinants: | ||
+ | Start of BlockOperatorPsiSerial | ||
+ | Outer loop 2, Number of Determinants: | ||
+ | Start of BlockOperatorPsiSerial | ||
+ | # < | ||
+ | 1 | ||
+ | 2 | ||
+ | 3 | ||
+ | Start of LanczosTriDiagonalizeRR | ||
+ | Start of LanczosTriDiagonalizeRR | ||
+ | Start of LanczosTriDiagonalizeRR | ||
+ | Start of LanczosTriDiagonalizeRR | ||
+ | Start of LanczosTriDiagonalizeRR | ||
+ | Start of LanczosTriDiagonalizeRR | ||
+ | Start of LanczosTriDiagonalizeRR | ||
+ | Spectra printed to file: XASSpec.dat | ||
+ | </ | ||
+ | ### | ||
+ | |||
+ | |||
+ | ===== Table of contents ===== | ||
+ | {{indexmenu> |