Wien2k & phonopy calculation


Wien2k & phonopy calculation#

How to run#

The Wien2k-phonopy calculation works as follows:

  1. Read a Wien2k struct file with the P lattice format and create supercells with the Wien2k struct format of P lattice using --wien2k option (--wien2k):

    % phonopy --wien2k -d --dim="2 2 2" -c case.struct

    In this example, 2x2x2 supercells are created. case.structS and case.structS-xxx (xxx are numbers) are the perfect supercell and the supercells with displacements, respectively. Perhaps these are renamed to case-xxx.struct and stored in case-xxx directories, then to be calculated using Wien2k.

  2. Calculate forces on atoms in the supercells with displacements. It is necessary to use case.struct_nn file when running init_lapw. Note that case.struct_sgroup file can’t be used with phonopy. In the Wien2k calculations, the force convergence option of -fc has to be specified to obtain total forces. A first attempt of the force convergence criterion may be 0.1 (mRy/a.u.). It is recommended to try more strict convergence criteria with saving one by one using save_lapw.

  3. Create FORCE_SETS

    • Use scf2forces that is found at

    • Or try experimetal support of -f option:

      % phonopy --wien2k -f case-001.scf case-002.scf ...

      where case-xxx.scf are the Wien2k results for the supercells. case-xxx.scf has to contain FGLxxx lines with total forces. When calculating supercells, the number of non-equivalent atoms determined by nn has to match with the number of non-equivalent atoms determined by phonopy. The former is found to watch case-xxx.struct after nn (it is supposed that case-xxx.struct created by nn is used to calculate forces), and the later is displayed in the step 1. An example is found in example/NaCl-wien2k.

      The above procedure with -f option may fail. In this case, Wien2k calculations of case-xxx.scf with P1 symmetry may be used for phonopy testing purpose though it computationally demands a lot. If phonopy finds that case-xxx.scf are calculated with P1 symmetry, phonopy handles this as a special case. An example is found in example/NaCl-wien2k-P1.

  4. Run post-process of phonopy with the Wien2k unit cell struct file used in the step 1:

    % phonopy --wien2k -c case.struct --dim="2 2 2" [other-OPTIONS] [setting-file]

Phonopy can read only the P lattice format. Therefore you have to convert your struct file to that with the P lattice format. This may be done using supercell script in the Wien2k package by making 1x1x1 supercell.