Phonon calculations: Pre-process

Overview

After finishing the Preparation before phonon calculations for a targeted unit cell, phonon computations are progressed by evaluating the dynamical matrix and its eigenvalue-eigenvector pairs.

To obtain the dynamical matrix elements of a targeted unit cell, atomic forces in response to a set of atomic displacements are required and the forces should be evaluated using supercell consisting of several unit cells.

In this pre-process execution, files of supercells with atomic displacements as well as a file of supercell without displacement are generated by reading the DFT structure file of a unit cell. DFT force calculations are subsequently required for the displaced supercells to evaluate phonon characteristics (Phonon calculations: Post-process). The required atomic displacements are automatically determined according to the statement of constraints on atom movements, which is supposed to be set by users within the DFT structure file.

Pre-process execution

As an example, let’s assume a relaxed unit cell file is POSCAR in VASP format. First, go to the folder where the POSCAR file resides and this folder will be referred to as Phonon root. Then, execute InterPhon pre-process by one of the following ways: 1. Command line and 2. Python interpreter. If done successfully, a file of supercell (SUPERCELL), files of displaced supercells (POSCAR-0*), and Pre-process record file (pre_process.yaml) will be generated.

1. Command line

To make (4×4×1) supercell and set periodic boundary conditions along the \(a_1\), \(a_2\) lattice directions and open boundary conditions along the \(a_3\) direction,

General long format:

$ interphon --dft_code ['vasp' or 'espresso' or 'aims'] --unitcell [DFT_unit_cell_file] --displacement 0.02 --enlargement "4 4 1" --periodicity "1 1 0"

General short format:

$ interphon -dft ['vasp' or 'espresso' or 'aims'] -c [DFT_unit_cell_file] -disp 0.02 -enlarge "4 4 1" -pbc "1 1 0"

Simple usage with the help of default setting of Option tags:

$ interphon -enlarge "4 4 1" -pbc "1 1 0"

2. Python interpreter

>>> from InterPhon.core import PreProcess
>>> user_args = {'dft_code': 'vasp', 'displacement': 0.02, 'enlargement': "4 4 1", 'periodicity': "1 1 0"}
>>> pre_process = PreProcess()
>>> pre_process.set_user_arg(user_args)
>>> pre_process.set_unit_cell(in_file='POSCAR', code_name=user_args.get('dft_code'))
>>> pre_process.set_super_cell(out_file='SUPERCELL', code_name=user_args.get('dft_code'))
>>> pre_process.write_displace_cell(out_file='POSCAR', code_name=user_args.get('dft_code'))