XAS $M_{4,5}$ partial excitations
asked by BODRY TEGOMO CHIOGO (2021/09/21 18:20)
Dear Quanty developpers,I was inspired by the tutorial for the calculation of partial excitation at the $L_{2,3}$ edge of NiO for writing a script for XAS at the $M_{4,5}$ edge of cerium with configuration-interaction. I would like to look at excitations into the $f^0$, $f^1$ and $f^2$ configurations but there is some problems.
Here are the restrictiions I used
T4f3dx = ConjugateTranspose(T3d4fx) T4f3dy = ConjugateTranspose(T3d4fy) T4f3dz = ConjugateTranspose(T3d4fz) T4f3dl = ConjugateTranspose(T3d4fl) T4f3dr = ConjugateTranspose(T3d4fr) TXASf0x = Clone(T3d4fx) TXASf1x = Clone(T3d4fx) TXASf2x = Clone(T3d4fx) TXASf0y = Clone(T3d4fy) TXASf1y = Clone(T3d4fy) TXASf2y = Clone(T3d4fy) TXASf0z = Clone(T3d4fz) TXASf1z = Clone(T3d4fz) TXASf2z = Clone(T3d4fz) TXASf0x.Restrictions = {NF,NB,{"0000000000 11111111111111 00000000000000",1,1}} TXASf1x.Restrictions = {NF,NB,{"0000000000 11111111111111 00000000000000",2,2}} TXASf2x.Restrictions = {NF,NB,{"0000000000 11111111111111 00000000000000",3,3}} TXASf0y.Restrictions = {NF,NB,{"0000000000 11111111111111 00000000000000",1,1}} TXASf1y.Restrictions = {NF,NB,{"0000000000 11111111111111 00000000000000",2,2}} TXASf2y.Restrictions = {NF,NB,{"0000000000 11111111111111 00000000000000",3,3}} TXASf0z.Restrictions = {NF,NB,{"0000000000 11111111111111 00000000000000",1,1}} TXASf1z.Restrictions = {NF,NB,{"0000000000 11111111111111 00000000000000",2,2}} TXASf2z.Restrictions = {NF,NB,{"0000000000 11111111111111 00000000000000",3,3}}
All these these transitions operators give the same spectrum instead of partial excitations into the $f^0$, $f^1$ and $f^2$ configurations as I expected. I do not understand where is the mistake.
thank you for your help
Bodry
A note further important information to know is that the spectrum is calculated with restrictions set in the following way
NConfigurations = 3 CalculationRestrictions = {NF, NB, {'0000000000 00000000000000 11111111111111', 14 - (NConfigurations - 1), 14}} XAS_spectrum = CreateSpectra(H_f,{TXASf0z,TXASf1z,TXASf2z,T3d4fz},psiList,{{"Emin",-20},{"Emax",30},{"NE",3500},{"Gamma",0.1},{'restrictions', CalculationRestrictions}})
Answers
Dear Bodry,
As discussed by e-mail, but here as an answer to document also for others. If you include restrictions in your calculation there are two ways you can do this, either by adding them to operators, or by giving the restrictions as parameters to the functions that calculate the eigenstates or the spectra.
These two methods can not be used simultaneously and one method will override the other.
The input that gets what you want is:
Some background information: Originally I implemented the restrictions as properties of operators. This however leads to problems, such as how to deal with two operators that one sums with different restrictions. As there is (I did not find) a good solution to this question the current code does not inherent restrictions if one acts on an operator to the result. As such, using restrictions as a property of operators is extremely dangerous coding. (easy to make errors that are hard to find). To make this better we added the restrictions to the functions. The call
is similar to the call
with the difference that the later changes the original operators and the former does not.
Best wishes, Maurits