mirror of https://github.com/phonopy/phonopy.git
Update document
This commit is contained in:
parent
737a1c62ef
commit
d6f42e438f
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
|
@ -16,6 +16,9 @@ Si
|
|||
``FORCE_SETS`` file creation for VASP
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
For the other calculators such as pwscf, abinit, etc, the way to
|
||||
create ``FORCE_SETS`` is found following :ref:`calculator_interfaces`.
|
||||
|
||||
::
|
||||
|
||||
% phonopy -f vasprun.xml
|
||||
|
|
|
@ -215,35 +215,6 @@ This file is used with the ``--nac`` option or ``NAC`` tag.
|
|||
|
||||
The formula implemented is refered to :ref:`non_analytical_term_correction_theory`.
|
||||
|
||||
.. ``--nac_old`` option
|
||||
.. ~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. When using the ``--nac_old`` option, a damping function is multiplied
|
||||
.. with the non-analytical term to obtain the dynamical matrix at
|
||||
.. geneneral **q**-points (:ref:`reference_NAC`), which is written
|
||||
.. by,
|
||||
|
||||
.. .. math::
|
||||
|
||||
.. D_{\alpha\beta}(jj',\mathbf{q}) =
|
||||
.. D_{\alpha\beta}^{\mathrm{N}}(jj',\mathbf{q}) + \frac{4\pi}{\sqrt{m_j m_j}\Omega_0}
|
||||
.. \frac{[\sum_{\gamma}q_{\gamma}Z^{*}_{j,\gamma\alpha}][\sum_{\gamma'}q_{\gamma'}Z^{*}_{j',\gamma'\beta}]}
|
||||
.. {\sum_{\alpha\beta}q_{\alpha}\epsilon_{\alpha\beta}^{\infty}
|
||||
.. q_{\beta}} \times \exp(-\frac{|\mathbf{q}|^2}{\sigma^2}) \times
|
||||
.. \mathrm{unit\ conversion\ factor}.
|
||||
|
||||
.. This equation is directly implemented. Therefore unit conversion of
|
||||
.. the non-analytical term is necessary. The variables are implemented
|
||||
.. that :math:`m` (mass) is in the amu, :math:`\Omega` (volume of
|
||||
.. primitive cell) is determined in the input structure file, and
|
||||
.. :math:`Z` (Born effective charge) and :math:`\epsilon` (dielectric
|
||||
.. constant) are determined in the ``BORN`` file. In
|
||||
.. :math:`\exp(-|\mathbf{q}|^2/\sigma^2)`, :math:`\sigma` is the
|
||||
.. parameter, and :math:`\mathbf{q}` is the wave vector in reduced
|
||||
.. reciprocal coordinate without :math:`2\pi`. The
|
||||
.. reciprocal primitive vectors are calculated by
|
||||
.. :math:`[\mathbf{a}^*\,\mathbf{b}^*\,\mathbf{c}^*]=[\mathbf{a}\,\mathbf{b}\,\mathbf{c}]^{-T}`.
|
||||
|
||||
Format
|
||||
~~~~~~
|
||||
|
||||
|
|
|
@ -6,9 +6,12 @@ VASP & phonopy calculation
|
|||
Pre-process
|
||||
~~~~~~~~~~~~
|
||||
|
||||
The input stureture of ``POSCAR`` is supposed to be :ref:`this<example_POSCAR1>`.
|
||||
The input stureture of ``POSCAR`` (:ref:`this <example_POSCAR1>`) is
|
||||
used as an example here. Most files are found at `SiO2-HP example <https://github.com/atztogo/phonopy/tree/master/example/SiO2-HP/>`_.
|
||||
|
||||
In the pre-process, supercell structures with (or without) displacements are created from a unit cell fully consiering crystal symmetry.
|
||||
In the pre-process, supercell structures with (or without)
|
||||
displacements are created from a unit cell fully consiering crystal
|
||||
symmetry.
|
||||
|
||||
To obtain supercells (:math:`2\times 2\times 3`) with displacements,
|
||||
run phonopy::
|
||||
|
@ -43,7 +46,6 @@ In the case of VASP, the calculations for the finite displacement method can be
|
|||
ISMEAR = 0; SIGMA = 0.01
|
||||
IALGO = 38
|
||||
LREAL = .FALSE.
|
||||
ADDGRID = .TRUE.
|
||||
LWAVE = .FALSE.
|
||||
LCHARG = .FALSE.
|
||||
|
||||
|
@ -115,14 +117,77 @@ In either case, by setting the ``-s`` option, the plot is going to be saved in t
|
|||
format. If you don't need to plot DOS, the (partial) DOS
|
||||
is just calculated using the ``--dos`` option.
|
||||
|
||||
Non-analytical term correction (Optional)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
To activate non-analytical term correction, :ref:`born_file` is
|
||||
required. This file contains the information of Born effective charge
|
||||
and dielectric constant. These physical values are also obtained from
|
||||
the first-principles calculations, e.g., by using VASP, pwscf, etc. In
|
||||
the case of VASP, an example of ``INCAR`` will be as shown below::
|
||||
|
||||
PREC = Accurate
|
||||
IBRION = -1
|
||||
NELMIN = 5
|
||||
ENCUT = 500
|
||||
EDIFF = 1.000000e-08
|
||||
ISMEAR = 0
|
||||
SIGMA = 1.000000e-02
|
||||
IALGO = 38
|
||||
LREAL = .FALSE.
|
||||
LWAVE = .FALSE.
|
||||
LCHARG = .FALSE.
|
||||
LEPSILON = .TRUE.
|
||||
|
||||
In addition, it is recommended to increase the number of k-points to
|
||||
be sampled. Twice the number for each axis may be a choice. After
|
||||
running this VASP calculation, ``BORN`` file has to be created
|
||||
following the ``BORN`` format (:ref:`born_file`). However for VASP, an
|
||||
auxiliary tool is prepared, which is ``outcar-born``. There is an
|
||||
option ``--pa`` for this command to set a transformation matrix from
|
||||
supercell or unit cell with centring to the primitive cell. Since this
|
||||
rutile-type SiO2 has the primitive lattice, it is unnecessary to set
|
||||
this option. Running ``outcar-born`` in the directory containing
|
||||
``OUTCAR`` of this VASP calculation::
|
||||
|
||||
% outcar-born
|
||||
# epsilon and Z* of atoms 1 3
|
||||
3.2605670 0.0000000 0.0000000 0.0000000 3.2605670 0.0000000 0.0000000 0.0000000 3.4421330
|
||||
3.7558600 0.3020100 0.0000000 0.3020100 3.7558600 0.0000000 0.0000000 0.0000000 3.9965200
|
||||
-1.8783900 -0.5270900 0.0000000 -0.5270900 -1.8783900 0.0000000 0.0000100 0.0000100 -1.9987900
|
||||
|
||||
To employ symmetry constraints, ``--st`` option may used as follows::
|
||||
|
||||
% outcar-born --st
|
||||
# epsilon and Z* of atoms 1 3
|
||||
3.2605670 0.0000000 0.0000000 0.0000000 3.2605670 0.0000000 0.0000000 0.0000000 3.4421330
|
||||
3.7561900 0.3020100 0.0000000 0.3020100 3.7561900 0.0000000 0.0000000 0.0000000 3.9968733
|
||||
-1.8780950 -0.5270900 0.0000000 -0.5270900 -1.8780950 0.0000000 0.0000000 0.0000000 -1.9984367
|
||||
|
||||
The values are slightly modified by symmetry, but we can see the
|
||||
original values obtained directly from VASP was already very good.
|
||||
|
||||
To put ``BORN`` file in the current directly, and running phonopy with
|
||||
``--nac`` option, non-analytical term correction is activated, such as::
|
||||
|
||||
% phonopy -p --nac band.conf
|
||||
|
||||
Please watch the example of NaCl with and without ``--nac`` option shown in
|
||||
:ref:`examples_link`.
|
||||
|
||||
.. _details_of_procedure:
|
||||
|
||||
Details
|
||||
--------
|
||||
Some more details
|
||||
------------------
|
||||
|
||||
The structure file names are different in different force calculators,
|
||||
see :ref:`calculator_interfaces`. To notify this, (*) is put
|
||||
after the structure file name. By refering
|
||||
:ref:`calculator_interfaces`, please read the file name according to
|
||||
those for the other calculators.
|
||||
|
||||
Following files are required in your working directory.
|
||||
|
||||
- ``POSCAR``, and ``FORCE_SETS`` or ``FORCE_CONSTANTS``
|
||||
- ``POSCAR`` (*), and ``FORCE_SETS`` or ``FORCE_CONSTANTS``
|
||||
- ``disp.yaml`` is required to create ``FORCE_SETS``.
|
||||
|
||||
In the case of finite difference approach, there are three steps.
|
||||
|
@ -131,25 +196,21 @@ In the case of finite difference approach, there are three steps.
|
|||
supercell contains one atomic displacement. It is done by using
|
||||
``-d`` option with ``--dim`` option that specifies supercell
|
||||
dimension. The files of supercells with atomic displacements like
|
||||
as ``POSCAR-001``, ``POSCAR-002``, ..., are created in current
|
||||
directory (the file format and names are different in :ref:`WIEN2k
|
||||
mode <wien2k_mode>`.) by running phonopy. The files ``disp.yaml``
|
||||
and ``SPOSCAR`` are also created. The file ``SPOSCAR`` is the
|
||||
perfect supercell that contains no atomic displacement. This file
|
||||
is not usually used.
|
||||
as ``POSCAR-001``, ``POSCAR-002``, ..., (*) are created in current
|
||||
directory by running phonopy. The files ``disp.yaml`` and
|
||||
``SPOSCAR`` are also created. The file ``SPOSCAR`` is the perfect
|
||||
supercell that contains no atomic displacement. This file is not
|
||||
usually used.
|
||||
|
||||
2. Calculate forces on atoms of the supercells with atomic
|
||||
displacements. Currently phonopy has :ref:`VASP
|
||||
<vasp_force_sets_option>` and :ref:`WIEN2k <wien2k_interface>`
|
||||
interfaces to create ``FORCE_SETS``. After obtaining forces on
|
||||
atoms that calculated by some calculator (it's out of phonopy), the
|
||||
forces are summarized in ``FORCE_SETS`` file following the
|
||||
:ref:`format <file_forces>`.
|
||||
displacements. After obtaining forces on atoms that calculated by
|
||||
some calculator (it's out of phonopy), the forces are summarized in
|
||||
``FORCE_SETS`` file following the :ref:`format <file_forces>`.
|
||||
|
||||
3. Calculate phonon related properties. See :ref:`analyze_phonon`.
|
||||
|
||||
If you already have force constants, the first and second steps can be
|
||||
omitted. However your force constants have to be converted to the
|
||||
:ref:`format <file_force_constants>` that phonopy can read. The
|
||||
:ref:`format <file_force_constants>` that phonopy can read. The
|
||||
:ref:`VASP interface <vasp_force_constants>` to convert force
|
||||
constants is prepared in phonopy.
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
Pwscf & phonopy calculation
|
||||
=========================================
|
||||
|
||||
Quantum espresso package itself has a set of the phonon calculation
|
||||
system. But the document here explains how to calculate phonons using
|
||||
phonopy, i.e., using the finite displacement and supercell approach.
|
||||
|
||||
Supported Pwscf tags
|
||||
---------------------------
|
||||
|
||||
|
@ -123,3 +127,92 @@ NaCl example found in ``example/NaCl-pwscf`` directory.
|
|||
:ref:`setting_tags` and :ref:`command_options`, respectively, and
|
||||
for examples, see :ref:`examples_link`.
|
||||
|
||||
Non-analytical term correction (Optional)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To activate non-analytical term correction, :ref:`born_file` is
|
||||
required. This file contains the information of Born effective charge
|
||||
and dielectric constant. These physical values are also obtained from
|
||||
the pwscf (``pw.x``) & phonon (``ph.x``) codes in quantum-espresso
|
||||
package. There are two steps. The first step is usual self-consistent
|
||||
field (SCF) calculation
|
||||
by and the second step is running its response function calculations
|
||||
under DFPT.
|
||||
|
||||
For the SCF calculation, the input file ``NaCl.in`` looks like::
|
||||
|
||||
&control
|
||||
calculation = 'scf'
|
||||
tprnfor = .true.
|
||||
tstress = .true.
|
||||
pseudo_dir = '/home/togo/espresso/pseudo/'
|
||||
/
|
||||
&system
|
||||
ibrav = 0
|
||||
nat = 8
|
||||
ntyp = 2
|
||||
ecutwfc = 70.0
|
||||
/
|
||||
&electrons
|
||||
diagonalization = 'david'
|
||||
conv_thr = 1.0d-9
|
||||
/
|
||||
ATOMIC_SPECIES
|
||||
Na 22.98976928 Na.pbe-spn-kjpaw_psl.0.2.UPF
|
||||
Cl 35.453 Cl.pbe-n-kjpaw_psl.0.1.UPF
|
||||
ATOMIC_POSITIONS crystal
|
||||
Na 0.0000000000000000 0.0000000000000000 0.0000000000000000
|
||||
Na 0.0000000000000000 0.5000000000000000 0.5000000000000000
|
||||
Na 0.5000000000000000 0.0000000000000000 0.5000000000000000
|
||||
Na 0.5000000000000000 0.5000000000000000 0.0000000000000000
|
||||
Cl 0.5000000000000000 0.5000000000000000 0.5000000000000000
|
||||
Cl 0.5000000000000000 0.0000000000000000 0.0000000000000000
|
||||
Cl 0.0000000000000000 0.5000000000000000 0.0000000000000000
|
||||
Cl 0.0000000000000000 0.0000000000000000 0.5000000000000000
|
||||
CELL_PARAMETERS angstrom
|
||||
5.6903014761756712 0 0
|
||||
0 5.6903014761756712 0
|
||||
0 0 5.6903014761756712
|
||||
K_POINTS automatic
|
||||
8 8 8 1 1 1
|
||||
|
||||
where more the k-point mesh numbers are specified. This may be exectued as::
|
||||
|
||||
mpirun ~/espresso/bin/pw.x -i NaCl.in |& tee NaCl.out
|
||||
|
||||
Many files whose names stating with ``pwscf`` should be created. These
|
||||
are used for the next calculation. The input file for the response
|
||||
function calculations, ``NaCl.ph.in``, is
|
||||
created as follows::
|
||||
|
||||
&inputph
|
||||
tr2_ph = 1.0d-14,
|
||||
epsil = .true.
|
||||
/
|
||||
0 0 0
|
||||
|
||||
Similary ``ph.x`` is executed::
|
||||
|
||||
% mpirun ~/espresso/bin/ph.x -i NaCl.ph.in |& tee NaCl.ph.out
|
||||
|
||||
Finally the Born effective charges and dielectric constant are
|
||||
obtained in the output file ``NaCl.ph.out``. The ``BORN`` file has to
|
||||
be created manually following the ``BORN`` format
|
||||
(:ref:`born_file`). The ``BORN`` file for this NaCl calculation would
|
||||
be something like below::
|
||||
|
||||
default value
|
||||
2.472958201 0 0 0 2.472958201 0 0 0 2.472958201
|
||||
1.105385 0 0 0 1.105385 0 0 0 1.105385
|
||||
-1.105385 0 0 0 -1.105385 0 0 0 -1.105385
|
||||
|
||||
Once this is made, the non-analytical term correction is included
|
||||
just adding the ``--nac`` options as follows::
|
||||
|
||||
% phonopy --pwscf -c NaCl.in -p band.conf
|
||||
|
||||
|
||||
|pwscf-band-nac|
|
||||
|
||||
.. |pwscf-band-nac| image:: NaCl-pwscf-band-NAC.png
|
||||
:width: 50%
|
||||
|
|
Loading…
Reference in New Issue