一点资料,大家参考(WIEN2k-FAQ)
Cohesive energies
Problem: The cohesive energy of compounds with heavier elements is positive.
Analysis:
Lstart is a fully relativistic atomic code and thus provides a better (and thus lower) total energy than the LAPW calculations, which have only a scalar relativistic basis (even when SO is added a posteriori).
Fix:
Starting for second-row elements (this depends a little on the required accuracy) you must calculate the atomic energy not with LSTART, but with LAPW. Create a FCC box with lattice constants of about 30 bohr and your atom at (0,0,0). Use identical RMT, RKMAX, but only 1 k-point and spinpolarization (for non-closed shell atoms).
Some atoms (with partly occupied orbitals or in particular transition metal atoms, where the occupation flips between a 4s and 3d states) may be difficult to converge. Use a broadening method (e.g. TEMP 0.005) to get equal partial occupations and thus a stable solution.
WIEN2k-FAQ: Explanations on EFGs (EFG switch in case.in2)
Problem: The switch EFG in case.in2 produces an output, which can be used to analyse the different contributions to the EFG. However, it is not documented and not easy to understand.
WIEN2k-FAQ: Setup of antiferromagnetic calculations?
Setup of antiferromagnetic calculations requires some tricks which will be described below:
1. You need to construct a unit cell which allows for the desired AF ordering. E.g. for bcc Cr you have to put "P" lattice and 2 NON-equivalent atoms at (0,0,0) and (0.5,0.5,0.5). In order to make nn working properly, you should also specify different labels in the "name(3:10)"-field for the two AF-atoms (Eg. "Cr1" and "Cr2").
2. Run init_lapw. nn and/or sgroup determines equivalent atoms. Accept eventually the new struct_nn file (You may have to use the same procedure as described in faq:supercells).
3. Edit case.inst and flip the spin of the second AF atom. This means you must invert the spin-up and dn occupation of this atom. Atoms which carry no spin (e.g. an O between two AF metal atoms) should be made non-spinpolarized by setting equal numbers of up and dn-electrons.
For AFM NiO case.inst looks like:
4. Ni
5. Ar 3 5
6. 3, 2,2.0 N
7. 3, 2,2.0 N
8. 3,-3,3.0 N
9. 3,-3,1.0 N
10. 4,-1,1.0 N
11. 4,-1,1.0 N
12. Ni
13. Ar 3 5
14. 3, 2,2.0 N
15. 3, 2,2.0 N
16. 3,-3,1.0 N <=== spin flipped
17. 3,-3,3.0 N <=== spin flipped
18. 4,-1,1.0 N
19. 4,-1,1.0 N
20. O
21. He 3 5
22. 2,-1,1.0 N
23. 2,-1,1.0 N
24. 2, 1,1.0 N
25. 2, 1,1.0 N
26. 2,-2,1.0 N <=== equal occup for up/dn
27. 2,-2,1.0 N <=== equal occup for up/dn
28. **** End of Input
29. **** End of Input
30. Continue with init_lapw (rerunning lstart)
31. You may try to select "AFM-calculations", generate "case.inclmcopy" and use "runafm_lapw". For simplest use of "afminput" you should provide the nonmagnetic (or ferromagnetic) supergroup in "case.struct_supergroup". Please read the usersguide for more details. (help_lapw and search for AFM).
Since these programs are quite new and little tested, I recommend to check the final results of "runafm_lapw" by
32. "runsp_lapw". If the charge distance (grep :DIS case.scf) remains small and the magnetic moments do not change, runafm_lapw was successful, otherwise continue with runsp_lapw until convergence.
WIEN2k-FAQ: DOS is calculated only up to a certain (low) energy
For some cases, the standard inputs provide a DOS only for energies close to EF, but not for higher energies, even when you specify a large E-range in case.int. The reason for that is, that the DOS is truncated at the lowest energy of the last fully available band in order to avoid plotting of an incomplete DOS. The solution is:
1. Edit case.in1 and increase the energy range: Increase E-max from 1.5 to a larger value (e.g. 2.5 or more).
2. Rerun "x lapw1" (lapw1c) and "x lapw2 -qtl" (lapw2c). This produces a case.qtl file with more bands.
3. Rerun tetra.
WIEN2k-FAQ: The SCF cycle fails after a few iterations
In cases with larger unit cells and various atoms with more or less localized electronic states it can happen, that the scf cycle fails in the second (or after a few more) iteration. Possible error messages include:
1. QTL-B value .gt. XXX in LAPW2
2. Could not find E-TOP/E-Bottom in LAPW1
Usually in such cases the mixing factor in MIXER was too large and too large charge fluctuations occured (You may see this using 'grep :DIS case.scf' or 'grep :NTOxx case.scf'). In such a case
1. remove the broyden and the scf files (rm *.broy* case.scf)
2. generate a new starting density (x dstart (-c/-up/-dn))
3. reduce the mixing parameter from 0.4 to e.g. 0.1 in case.inm (sometimes even 0.01 and/or a change to PRATT-mixing for some iterations may be necessary. Note: final convergence should always be reached using BROYD-mixing)
4. and restart the scf cycle (run_lapw or runsp_lapw).
Another possibility is that EF got quite large (usually this happens for heavy elements (actinides); check using grep :FER case.scf). Then the default E-parameters (0.30 Ry) in case.in1 are no longer a good choice because some LO-energies could be in the same range, which results in ghostbands.
Check in case.scf1 whether or not a "searched" energy and a fixed one got too close like:
OVERALL ENERGY PARAMETER IS 0.3000
E( 1)= 0.3000
E( 1)= 0.2875 E(BOTTOM)= 0.395 E(TOP)= 0.180
In such cases increase the default 0.30 to something close to EF, or fix the energy parameters without search (case.in1).
WIEN2k-FAQ: Charged cells
"Charged" cells will most likely require the construction of supercells, (see the faq on creating supercells) and this hole discussion targets charged impurities, vacancies,....
• Setup your supercell, put impurities, vacancies,.. (all with neutral atoms!)
• Run a standard initialization (init_lapw) with NEUTRAL atoms. Don't fiddle around with case.inst (positively charged atoms may work (and one can neglect the warnings "NUMBER OF ELECTRONS NE IZ "), but most negative ions are unstable in DFT and will not work.
• run_lapw (again for neutral atoms !) . Save the results using "save_lapw case_neutral"
• Edit case.in2: In the second line you see the number of electrons NE. Add or remove an electron to get the desired charged state.
• Edit case.inm: The first line must read:
• BROYD 1.0 YES (when you added an electron at step 4 or
• BROYD -1.0 YES (when you removed an electron at step 4
The position of "YES" is important!!! When reading characters in Fortran one must use a fixed format (or put characters into quotes).
• run_lapw
• I NEVER run init_lapw again!!! Usually init_lapw should be run only ONCE in a directory, because any changes which would require rerunning init_lapw (symmetry changes,....) should be done in a fresh "case"
WIEN2k-FAQ: Construction of supercells
For most (simple) supercells you can start with the regular case.struct file and use "supercell" to generate the supercell-struct file.
However, when you construct supercells, it is usually NOT possible just to double the cells and leave all atoms at their ideal and equivalent positions. This would lead to large multiplicities (e.g. in big supercells even more than 48 atoms could be "equivalent" and of course there is NO SPACEGROUP corresponding to this type of cell, since they all can be reduced by translation symmetry.
So during setup, you have at lest to:
• displace (at least one) atoms, or
• change one of the atoms to a different type (usually you do supercells for impurities,... so put the impurity into the cell), or
• set at least for one atom-name a special label (A label means an name like "Cr1", "Cr2" or "O 4", where in the 3rd position is a number. This indicates to WIEN2k that these atoms should be non-equivalent.).
Then run init_lapw
• nn and sgroup determine which atoms are still equivalent (if nn does not agree with sgroup in the first place, you may have to "label" non-equivalent atoms (see above). If you now rerun nn, you may get another (better) list of non-equivalent positions.
• symmetry: determines proper symmetry operations and rot.matrices,...
• Check if your case.inst file is still valid (when the number of non-equivalent atoms has changed, probably not). Generate a proper case.inst file (either using "instgen_lapw" or "Structgen of W2web") and rerun init_lapw.
Note, that WIEN always preserves symmetry. So when you want to allow certain relaxations around an impurity, it might be necessary to displace some atoms by hand to break the high symmetry and allow such relaxations.
WIEN2k-FAQ: Positive Fermi energy: What does it mean ?
Eigenvalues, core states, linearization energies, the Fermi energy,... are given in Rydberg units in wien2k, and are relative to a zero-point that is defined as the average of the potential in the interstitial region. This is an arbitrary choice (one half of this average, or 2.6128 times this average would have been good as well). Therefore, it might happen that for some compounds (solids) your Fermi energy (:FER) is positive, while for others (surfaces or molecules with lots of vacuum) it is negative. This has no physical meaning, and it is also not an indication of a possible error, it is just due to the choice of the zero-point.
Why is there a need to make such a choice? For a free atom, the choice of zero is arbitrary as well, but if one makes the usual convention that the potential at infinity is zero, then negative and positive energies indicate bound and unbound states, respectively. This is intuitively appealing. But for solids, there is nothing special about infinity: the solid is everywhere, also at infinity. Therefore, another convention has to be made, like the one explained above.
Please note, the TOTAL-Energy does NOT depend on this choice!!!)
Cohesive energies
Problem: The cohesive energy of compounds with heavier elements is positive.
Analysis:
Lstart is a fully relativistic atomic code and thus provides a better (and thus lower) total energy than the LAPW calculations, which have only a scalar relativistic basis (even when SO is added a posteriori).
Fix:
Starting for second-row elements (this depends a little on the required accuracy) you must calculate the atomic energy not with LSTART, but with LAPW. Create a FCC box with lattice constants of about 30 bohr and your atom at (0,0,0). Use identical RMT, RKMAX, but only 1 k-point and spinpolarization (for non-closed shell atoms).
Some atoms (with partly occupied orbitals or in particular transition metal atoms, where the occupation flips between a 4s and 3d states) may be difficult to converge. Use a broadening method (e.g. TEMP 0.005) to get equal partial occupations and thus a stable solution.
WIEN2k-FAQ: Explanations on EFGs (EFG switch in case.in2)
Problem: The switch EFG in case.in2 produces an output, which can be used to analyse the different contributions to the EFG. However, it is not documented and not easy to understand.
WIEN2k-FAQ: Setup of antiferromagnetic calculations?
Setup of antiferromagnetic calculations requires some tricks which will be described below:
1. You need to construct a unit cell which allows for the desired AF ordering. E.g. for bcc Cr you have to put "P" lattice and 2 NON-equivalent atoms at (0,0,0) and (0.5,0.5,0.5). In order to make nn working properly, you should also specify different labels in the "name(3:10)"-field for the two AF-atoms (Eg. "Cr1" and "Cr2").
2. Run init_lapw. nn and/or sgroup determines equivalent atoms. Accept eventually the new struct_nn file (You may have to use the same procedure as described in faq:supercells).
3. Edit case.inst and flip the spin of the second AF atom. This means you must invert the spin-up and dn occupation of this atom. Atoms which carry no spin (e.g. an O between two AF metal atoms) should be made non-spinpolarized by setting equal numbers of up and dn-electrons.
For AFM NiO case.inst looks like:
4. Ni
5. Ar 3 5
6. 3, 2,2.0 N
7. 3, 2,2.0 N
8. 3,-3,3.0 N
9. 3,-3,1.0 N
10. 4,-1,1.0 N
11. 4,-1,1.0 N
12. Ni
13. Ar 3 5
14. 3, 2,2.0 N
15. 3, 2,2.0 N
16. 3,-3,1.0 N <=== spin flipped
17. 3,-3,3.0 N <=== spin flipped
18. 4,-1,1.0 N
19. 4,-1,1.0 N
20. O
21. He 3 5
22. 2,-1,1.0 N
23. 2,-1,1.0 N
24. 2, 1,1.0 N
25. 2, 1,1.0 N
26. 2,-2,1.0 N <=== equal occup for up/dn
27. 2,-2,1.0 N <=== equal occup for up/dn
28. **** End of Input
29. **** End of Input
30. Continue with init_lapw (rerunning lstart)
31. You may try to select "AFM-calculations", generate "case.inclmcopy" and use "runafm_lapw". For simplest use of "afminput" you should provide the nonmagnetic (or ferromagnetic) supergroup in "case.struct_supergroup". Please read the usersguide for more details. (help_lapw and search for AFM).
Since these programs are quite new and little tested, I recommend to check the final results of "runafm_lapw" by
32. "runsp_lapw". If the charge distance (grep :DIS case.scf) remains small and the magnetic moments do not change, runafm_lapw was successful, otherwise continue with runsp_lapw until convergence.
WIEN2k-FAQ: DOS is calculated only up to a certain (low) energy
For some cases, the standard inputs provide a DOS only for energies close to EF, but not for higher energies, even when you specify a large E-range in case.int. The reason for that is, that the DOS is truncated at the lowest energy of the last fully available band in order to avoid plotting of an incomplete DOS. The solution is:
1. Edit case.in1 and increase the energy range: Increase E-max from 1.5 to a larger value (e.g. 2.5 or more).
2. Rerun "x lapw1" (lapw1c) and "x lapw2 -qtl" (lapw2c). This produces a case.qtl file with more bands.
3. Rerun tetra.
WIEN2k-FAQ: The SCF cycle fails after a few iterations
In cases with larger unit cells and various atoms with more or less localized electronic states it can happen, that the scf cycle fails in the second (or after a few more) iteration. Possible error messages include:
1. QTL-B value .gt. XXX in LAPW2
2. Could not find E-TOP/E-Bottom in LAPW1
Usually in such cases the mixing factor in MIXER was too large and too large charge fluctuations occured (You may see this using 'grep :DIS case.scf' or 'grep :NTOxx case.scf'). In such a case
1. remove the broyden and the scf files (rm *.broy* case.scf)
2. generate a new starting density (x dstart (-c/-up/-dn))
3. reduce the mixing parameter from 0.4 to e.g. 0.1 in case.inm (sometimes even 0.01 and/or a change to PRATT-mixing for some iterations may be necessary. Note: final convergence should always be reached using BROYD-mixing)
4. and restart the scf cycle (run_lapw or runsp_lapw).
Another possibility is that EF got quite large (usually this happens for heavy elements (actinides); check using grep :FER case.scf). Then the default E-parameters (0.30 Ry) in case.in1 are no longer a good choice because some LO-energies could be in the same range, which results in ghostbands.
Check in case.scf1 whether or not a "searched" energy and a fixed one got too close like:
OVERALL ENERGY PARAMETER IS 0.3000
E( 1)= 0.3000
E( 1)= 0.2875 E(BOTTOM)= 0.395 E(TOP)= 0.180
In such cases increase the default 0.30 to something close to EF, or fix the energy parameters without search (case.in1).
WIEN2k-FAQ: Charged cells
"Charged" cells will most likely require the construction of supercells, (see the faq on creating supercells) and this hole discussion targets charged impurities, vacancies,....
• Setup your supercell, put impurities, vacancies,.. (all with neutral atoms!)
• Run a standard initialization (init_lapw) with NEUTRAL atoms. Don't fiddle around with case.inst (positively charged atoms may work (and one can neglect the warnings "NUMBER OF ELECTRONS NE IZ "), but most negative ions are unstable in DFT and will not work.
• run_lapw (again for neutral atoms !) . Save the results using "save_lapw case_neutral"
• Edit case.in2: In the second line you see the number of electrons NE. Add or remove an electron to get the desired charged state.
• Edit case.inm: The first line must read:
• BROYD 1.0 YES (when you added an electron at step 4 or
• BROYD -1.0 YES (when you removed an electron at step 4
The position of "YES" is important!!! When reading characters in Fortran one must use a fixed format (or put characters into quotes).
• run_lapw
• I NEVER run init_lapw again!!! Usually init_lapw should be run only ONCE in a directory, because any changes which would require rerunning init_lapw (symmetry changes,....) should be done in a fresh "case"
WIEN2k-FAQ: Construction of supercells
For most (simple) supercells you can start with the regular case.struct file and use "supercell" to generate the supercell-struct file.
However, when you construct supercells, it is usually NOT possible just to double the cells and leave all atoms at their ideal and equivalent positions. This would lead to large multiplicities (e.g. in big supercells even more than 48 atoms could be "equivalent" and of course there is NO SPACEGROUP corresponding to this type of cell, since they all can be reduced by translation symmetry.
So during setup, you have at lest to:
• displace (at least one) atoms, or
• change one of the atoms to a different type (usually you do supercells for impurities,... so put the impurity into the cell), or
• set at least for one atom-name a special label (A label means an name like "Cr1", "Cr2" or "O 4", where in the 3rd position is a number. This indicates to WIEN2k that these atoms should be non-equivalent.).
Then run init_lapw
• nn and sgroup determine which atoms are still equivalent (if nn does not agree with sgroup in the first place, you may have to "label" non-equivalent atoms (see above). If you now rerun nn, you may get another (better) list of non-equivalent positions.
• symmetry: determines proper symmetry operations and rot.matrices,...
• Check if your case.inst file is still valid (when the number of non-equivalent atoms has changed, probably not). Generate a proper case.inst file (either using "instgen_lapw" or "Structgen of W2web") and rerun init_lapw.
Note, that WIEN always preserves symmetry. So when you want to allow certain relaxations around an impurity, it might be necessary to displace some atoms by hand to break the high symmetry and allow such relaxations.
WIEN2k-FAQ: Positive Fermi energy: What does it mean ?
Eigenvalues, core states, linearization energies, the Fermi energy,... are given in Rydberg units in wien2k, and are relative to a zero-point that is defined as the average of the potential in the interstitial region. This is an arbitrary choice (one half of this average, or 2.6128 times this average would have been good as well). Therefore, it might happen that for some compounds (solids) your Fermi energy (:FER) is positive, while for others (surfaces or molecules with lots of vacuum) it is negative. This has no physical meaning, and it is also not an indication of a possible error, it is just due to the choice of the zero-point.
Why is there a need to make such a choice? For a free atom, the choice of zero is arbitrary as well, but if one makes the usual convention that the potential at infinity is zero, then negative and positive energies indicate bound and unbound states, respectively. This is intuitively appealing. But for solids, there is nothing special about infinity: the solid is everywhere, also at infinity. Therefore, another convention has to be made, like the one explained above.
Please note, the TOTAL-Energy does NOT depend on this choice!!!)