TRIQS / dft_tools

Interface to DFT codes
https://triqs.github.io/dft_tools
Other
40 stars 39 forks source link

Inequivalent Shells in Wannier 90 #80

Closed alexandrub53 closed 7 years ago

alexandrub53 commented 7 years ago

I am trying to run a spin-polarized calculation using Quantum Espresso + Wannier90 + TRIQS. I ran a 4 atom (two Ni site) non-spin polarized dft calculation, then used wannier 90 using the following projections: begin projections Ni1:d Ni2:d end projections

to get 10 bands, 5 for each Nickel. My input file for the wannier90 converter as documented looks like:

0 5 5 5 16.0 2 0 0 2 5 0 0 1 0 2 5 0 0

However, since the two Ni sites are treated as equivalent I can't give them a separate initial magnetization. I tried to make them inequivalent by writing something like:

0 5 5 5 16.0 1 0 0 2 5 0 0 0 0 0 2 5 0 0

but in that case, the last 5 bands are treated as uncorrelated. Is there some way to treat the two impurities as separate or symmetry breaking to obtain AFM order?

mzingl commented 7 years ago

Hi, I do not know if or how this works with quantum espresso, but I can tell you how it is done with wien2k. The key is that the atoms need to be inequivalent already on the DFT input level. In Wien2k this is achieved by naming the two atoms differently in the case.struct file. Additionally one has to make sure that Wien2k does not undo this in the initialization and indeed treats the atoms as inequivalent. Hope this helps, Manuel

HugoStrand commented 7 years ago

Hey @alexandrub53 and @mzingl ,

Looking at the Wannier90converter this seems not to be supported. However there is an old wannier branch in this dft_tools repository where the Wannier90 converter class is seemingly much more advanced, see:

https://github.com/TRIQS/dft_tools/blob/wannier/python/converters/wannier90_converter.py

The last commit to dft_tools/wannier was made in 2015. Does anyone know what is the status of this? Is the more developed Wannier90 interface to be merged in dft_tools/master? Or is it an old thing that has been left lying around?

Best regards, Hugo

mzingl commented 7 years ago

Hi, in my suggestion it would be a non-spin-polarized DFT calculation, where you have 2 inequivalent correlated atoms. I had a quick look at the code on the master and the doc, and I would say that this should also work with the wannier90 converter.

Not supported is the possibility to make equivalent atoms inequivalent on the dfttools level.

Best, Manuel

HugoStrand commented 7 years ago

Dear @mzingl ,

@alexandrub53 tried this out and followed the Wannier90Converter tutorial, https://triqs.ipht.cnrs.fr/applications/dft_tools/guide/conversion.html#wannier90-converter having two correlated sites. I.e. a non-spin-polarized super cell calculation with two Ni in the unit-cell. Then for the input to the Wannier converter he put two correlated orbitals by having an input file along the lines:

0 8 8 8
8.0
2
0  0  2  3  0  0
1  0  2  3  0  0

However the resulting sumkdft only has one correlated set of orbitals corresponding to a single Ni atom, and seems to assume that the two sites are equivalent. Which is also what is stated in the documentation.

So seemingly the Wannier90Converter seems not to support multiple inequivalent correlated sets of orbitals. Is this correct?

Best regards, Hugo

alexandrub53 commented 7 years ago

@mzingl how would it work to make the dfttools load the two inequivalent atoms as inequivalent in my example? As I mentioned, I have 10 bands so they are inequivalent from DFT, and unless I ask for two equivalent sites, the second site seems to be treated as uncorrelated. if it helps, the output for wannier90 is probably the same as in VASP for example.

mzingl commented 7 years ago

Dear @alexandrub53, @HugoStrand, thank you for clearing up what you mean exactly.

I tried this now myself. I used the wannier90 converter for an hr.dat file with 10 wf stemming from the d-shells of two inequivalent atoms. What is essential is to assign a different "sort" to the atoms (second number in the last two lines!):

0 8 8 8 10.0 2 0 0 2 5 0 0 1 1 2 5 0 0

Please try this, and tell me if it works. Best, Manuel

alexandrub53 commented 7 years ago

Dear @mzingl and @HugoStrand

This works, thank you so much! I'll test it a bit more before closing the issue. Alex

edererc commented 7 years ago

Dear all, just a few words of clarification. The wannier90 converter certainly supports the use of several inequivalent shells. One has to define them exactly as suggested by @mzingl using the "sort" parameter. Whether they are treated as equivalent or not on the DFT level is irrelevant (as long as one doesn't declare two shells as equivalent that are actually not equivalent by symmetry; in this case the converter should give an error message). In fact, as far as I know, wannier90 doesn't know anything about which atoms are equivalent or not, since it doesn't use any symmetry operations and generally works with the full k-point grid. Best, Claude.

alexandrub53 commented 7 years ago

Thank you for the clarification @edererc !

One more question related to this topic of wannier90 & documentation, I see that: "proj_mat_all are not used, so there are no projectors onto the uncorrelated orbitals for now.". Do I understand correctly that this means that I can't plot projected density of states for example on the uncorrelated orbitals, but the p-orbitals are included explicitly in the calculation i.e. I can do a p-d model if I have p-orbitals?

phibeck commented 7 years ago

Dear @alexandrub53,

assuming that you are speaking about the dos and not the spectral function, you are right that you cannot plot the dos (using the function dos_wannier_basis as described in https://triqs.ipht.cnrs.fr/1.4/applications/dft_tools/guide/analysis.html#dos-wannier) projected on the uncorrelated orbitals unless you take the total dos including the p-orbitals and subtract the correlated orbitals. If you are particularly interested in the dos of the uncorrelated states I'd, thus, recommend to use Wannier90 directly. In a p-d model as you described the p-orbitals are then included "implicitly" insofar as the impurity solver solves for the d-orbitals only while the p-orbitals enter in the dmft self-consistency. I hope that answers your question.

Best, Sophie

alexandrub53 commented 7 years ago

Thank you @phibeck, that answers my question!