TRIQS / triqs_0.x

DEPRECATED -- This is the repository of the older versions of TRIQS
Other
11 stars 9 forks source link

What is the meaning of m and n in DOScorr(sp)_proj(i)_(m)_(n).dat? #131

Open saeidjalali opened 11 years ago

saeidjalali commented 11 years ago

Dear All,

Description of the partial DOSs are given as follows: DOScorr(sp)proj(i)(m)_(n).dat: Sames as above, but printed as orbitally resolved matrix in indices (m) and (n). For d orbitals, it gives separately the DOS for, e.g., dxy, dx2−y2, and so on.

I guess that the i index refers to the l-quntum number, i.e., 0 for s orbital, 1 for p orbital, an so on. But, it is not clear the definition of m and n indexes. For example, we expect to have 5=(2_2+1) partial DOSs for spin up d orbitals and 5=(2_2+1) partial DOSs for spin down d orbitals. So, totally 10 partial DOSs for d orbital. But, we ran LDA+DMFT for Ce and found 12 partial DOSs for d orbital. We cannot correspond the m and n symbols to the partial DOSs so that we can distinguish which one is dxy or which one is dx^2-y^2.

Would you define the i, n, and m indexes more clearly?

Best, S. Jalali

aichhorn commented 11 years ago

In fact, the routine does not only calculate the diagonal part of the density of states, but the full matrix, that is why we have indices m and n. To be precise, if you have 5 orbitals and are interested only in the diagonal part (the thing that you would normally call a DOS), then you look at the files _0_0.dat, _1_1.dat, _2_2.dat, _3_3.dat, and *_4_4.dat. The off-diagonal parts are often zero by symmetry, but in some cases it can be useful to look at this, that is why it is implemented. Be careful: The index i is not the quantum number l!!! It is just an index for an orbital shell. The range over which the indedx i runs depends on your inputfile case.indmftpr. In the lines where you define the correlated orbitals, you can put 0 (not included),1 (included), or 2 (included as correlated). As soon as you put 1 or 2, the atomic shell is included in the list of orbitals for which you can calculate the DOS. For instance, if you put 0 everywhere, except 2 for the f-shell in your Ce example, the you get only files like DOScorr(sp)proj0(m)_(n).dat, where i is 0! And i runs also over non-equivalent atoms! So if you have too independet Ce atoms in the unti cell, then you should get indices i=0 and i=1 (obvioulsy with the same content).

saeidjalali commented 11 years ago

Dear Markus, Thank you for your reply and explanation. Let me check whether I understand all of your comments as you mean or not. For fcc gamma-Ce case, we have only one nonequivalent atom. My Ce.indmftpr is as follows: 1 ! Nsort 1 ! Mult(Nsort) 3 ! lax complex 1 1 1 2 ! l included for each sort 0 0 0 0 ! l included for each sort 0 -.40 0.40 ! Energy window relative to E_f

snort is set to 1, since the number of non-equivalent atomic is one for fcc gamma-Ce. snort is set to 1, since the multiplicity of Ce in the case.struct is one for fcc gamma-Ce. l_max is set to 3, since we include only the s,p,d and f orbitals.

spherical harmonics is considered to be complex, as it should be in general. But, Ce crystalizes in cubic. So, I am not sure whether I can select cubic or not. Anyway, complex seems to be more general than cubic(?).

lsort(l): (lmax+1) integers to describe the “treatment” of each orbital: 0 means that the corresponding orbital is not included 1 means that the orbital is included but no projector P  lm,(k) will be calculated for it. 2 means that the orbital is included and a projector P  lm,(k) will be calculated for it.

nb_irep(l): (lmax+1) integers to describe the number of irreducible representation (irep) to consider for each orbital l. 0 means that the orbital is not correlated ; no projector P  lm,(k) will be calculated for it

I think, it is better to add spin-orbit for gamma-Ce, but here it is not included for simplicity.

I am laso not sure about the energy window. How should we estimate it? Let's get back to the discussion.

As far as I understand from your comment on i-index, it should be 0, 1, and 2, as I have included the correlated f-orbital. My generated DOSs are as follows: ./Ce/DOScorrdown_proj2_0_4.dat ./Ce/DOScorrup_proj3_0_0.dat ./Ce/DOScorrup_proj1_1_2.dat ./Ce/DOScorrup_proj1.dat ./Ce/DOScorrdown_proj3_0_1.dat ./Ce/DOScorrdown_proj3_0_2.dat ./Ce/DOScorrdown_proj2.dat ./Ce/DOScorrdown_proj3_2_2.dat ./Ce/DOScorrup_proj2_2_3.dat ./Ce/DOScorrdown_proj2_3_3.dat ./Ce/DOScorrup_proj3_4_4.dat ./Ce/DOScorrdown_proj3_1_5.dat ./Ce/DOScorrup_proj3_2_3.dat ./Ce/DOScorrdown_proj3_1_2.dat ./Ce/DOScorrup_proj3_1_1.dat ./Ce/DOScorrdown_proj1.dat ./Ce/DOScorrdown_proj3_3_5.dat ./Ce/DOScorrdown_proj3_4_6.dat ./Ce/DOScorrup.dat ./Ce/DOScorrup_proj3_2_5.dat ./Ce/DOScorrup_proj3_5_6.dat ./Ce/DOScorrdown_proj2_3_4.dat ./Ce/DOScorrup_proj2_0_4.dat ./Ce/DOScorrdown_proj2_0_2.dat ./Ce/DOScorrup_proj2_3_4.dat ./Ce/DOScorrdown_proj3_2_4.dat ./Ce/DOScorrdown_proj2_0_1.dat ./Ce/DOScorrup_proj3_1_6.dat ./Ce/DOScorrup_proj2_0_0.dat ./Ce/DOScorrdown_proj3_0_0.dat ./Ce/DOScorrup_proj3_6_6.dat ./Ce/DOScorrup_proj1_1_1.dat ./Ce/DOScorrdown_proj0_0_0.dat ./Ce/DOScorrup_proj2_1_2.dat ./Ce/DOScorrup_proj1_2_2.dat ./Ce/DOScorrup_proj2_3_3.dat ./Ce/DOScorrup_proj3_0_2.dat ./Ce/DOScorrup_proj1_0_2.dat ./Ce/DOScorrup_proj3_3_5.dat ./Ce/DOScorrup_proj3_2_4.dat ./Ce/DOScorrdown_proj3_2_6.dat ./Ce/DOScorrup_proj3_4_6.dat ./Ce/DOScorrup_proj2_4_4.dat ./Ce/DOScorrdown_proj3_1_4.dat ./Ce/DOScorrdown_proj3.dat ./Ce/DOScorrdown_proj3_5_5.dat ./Ce/DOScorrup_proj3_1_2.dat ./Ce/DOScorrdown_proj1_0_0.dat ./Ce/DOScorrup_proj2_0_3.dat ./Ce/DOScorrup_proj2_1_4.dat ./Ce/DOScorrdown_proj1_1_2.dat ./Ce/DOScorrdown_proj3_0_5.dat ./Ce/DOScorrdown_proj2_2_3.dat ./Ce/DOScorrdown_proj3_3_6.dat ./Ce/DOScorrup_proj1_0_1.dat ./Ce/DOScorrup_proj2_2_4.dat ./Ce/DOScorrup_proj3_3_4.dat ./Ce/DOScorrup_proj3_0_1.dat ./Ce/DOScorrdown_proj0.dat ./Ce/DOScorrup_proj3_0_4.dat ./Ce/DOScorrup_proj3_4_5.dat ./Ce/DOScorrdown_proj2_0_3.dat ./Ce/DOScorrdown_proj1_0_1.dat ./Ce/DOScorrdown_proj3_6_6.dat ./Ce/DOScorrup_proj2_0_1.dat ./Ce/DOScorrup_proj3_0_5.dat ./Ce/DOScorrup_proj3_5_5.dat ./Ce/DOScorrdown_proj3_1_1.dat ./Ce/DOScorrdown_proj2_2_4.dat ./Ce/DOScorrdown.dat ./Ce/DOScorrup_proj3_3_6.dat ./Ce/DOScorrup_proj3.dat ./Ce/DOScorrdown_proj2_4_4.dat ./Ce/DOScorrdown_proj3_2_5.dat ./Ce/DOScorrup_proj3_0_6.dat ./Ce/DOScorrup_proj2_0_2.dat ./Ce/DOScorrdown_proj2_1_2.dat ./Ce/DOScorrup_proj0_0_0.dat ./Ce/DOScorrdown_proj2_1_3.dat ./Ce/DOScorrdown_proj2_1_4.dat ./Ce/DOScorrup_proj2_2_2.dat ./Ce/DOScorrup_proj3_1_5.dat ./Ce/DOScorrdown_proj1_0_2.dat ./Ce/DOScorrup_proj2_1_3.dat ./Ce/DOScorrdown_proj3_5_6.dat ./Ce/DOScorrdown_proj3_1_3.dat ./Ce/DOScorrdown_proj3_4_4.dat ./Ce/DOScorrdown_proj3_2_3.dat ./Ce/DOScorrdown_proj1_1_1.dat ./Ce/DOScorrup_proj3_3_3.dat ./Ce/DOScorrdown_proj1_2_2.dat ./Ce/DOScorrup_proj1_0_0.dat ./Ce/DOScorrdown_proj3_3_4.dat ./Ce/DOScorrdown_proj3_3_3.dat ./Ce/DOScorrup_proj0.dat ./Ce/DOScorrup_proj2_1_1.dat ./Ce/DOScorrdown_proj3_4_5.dat ./Ce/DOScorrup_proj3_0_3.dat ./Ce/DOScorrup_proj3_1_3.dat ./Ce/DOScorrdown_proj3_0_6.dat ./Ce/DOScorrdown_proj2_1_1.dat ./Ce/DOScorrdown_proj2_2_2.dat ./Ce/DOScorrup_proj2.dat ./Ce/DOScorrup_proj3_2_2.dat ./Ce/DOScorrup_proj3_2_6.dat ./Ce/DOScorrdown_proj3_0_4.dat ./Ce/DOScorrdown_proj3_1_6.dat ./Ce/DOScorrdown_proj2_0_0.dat ./Ce/DOScorrdown_proj3_0_3.dat ./Ce/DOScorrup_proj3_1_4.dat

As far as I understand, only diagonal DOS's are the regular DOSs, for which m=n. _0_0.dat, _1_1.dat, _2_2.dat, _3_3.dat are my interested DOSs. As far as I know these are called TOTAL DOS. I need to have partial DOSs too. But, I cannot correspond them to the partial DOSs generated by WIEN2k. In WIEN2k, depending on the point group of the system, we have pz, pay, dx^2_y^2, and so on. These are standard and everybody are familiar with them.

Would you tell me how can I correspond the *.dat files to partial DOSs of WIEN2k?

But, as you see I have _4_4.dat. This is in the case that in my Ce.indmftpr I set l_max to 3! So, why is _4_4.dat also generated?

Best, Saeid.