mirror of https://github.com/phonopy/phonopy.git
68 lines
2.8 KiB
ReStructuredText
68 lines
2.8 KiB
ReStructuredText
.. _wien2k_interface:
|
|
|
|
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 (:ref:`wien2k_mode`)::
|
|
|
|
% 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
|
|
http://www.wien2k.at/reg_user/unsupported/.
|
|
* 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.
|