||| |
The invocation of thirdorder_espresso.py requires two files:
1) an input file of the unit cell with converged structural parameters.
&CONTROL
calculation='scf',
prefix='gaas',
restart_mode='from_scratch',
tstress = .true.,
tprnfor = .true.,
/
&SYSTEM
ibrav=0,
nat=2,
ntyp=2,
ecutwfc=48
ecutrho=384
/
&ELECTRONS
conv_thr=1.d-12,
/
ATOMIC_SPECIES
Ga 69.723 Ga.pbe-dnl-kjpaw_psl.1.0.0.UPF
As 74.92160 As.pbe-dn-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS crystal
Ga 0.00 0.00 0.00
As 0.25 0.25 0.25
K_POINTS automatic
11 11 11 0 0 0
CELL_PARAMETERS angstrom
0.000000000 2.857507756 2.857507756
2.857507756 0.000000000 2.857507756
2.857507756 2.857507756 0.000000000
2) a template input file for the supercell calculations. The template file is a normal QE input file with some wildcards.
&CONTROL
calculation='scf',
prefix='gaas',
tstress = .true.,
tprnfor = .true.,
outdir = './'
/
&SYSTEM
ibrav=0,
nat=##NATOMS##,
ntyp=2,
ecutwfc=48
ecutrho=384
/
&ELECTRONS
conv_thr=1.d-12,
/
ATOMIC_SPECIES
As 74.92160 As.pbe-dn-kjpaw_psl.1.0.0.UPF
Ga 69.723 Ga.pbe-dnl-kjpaw_psl.1.0.0.UPF
##COORDINATES##
K_POINTS gamma
##CELL##
Tips:
1. thirdorder_espresso.py supports the following QE input conventions for structural parameters:
1) ibrav = 0 together with CELL_PARAMETERS (alat | bohr | angstrom)
2) ibrav != 0 together with celldm(1)-celldm(6)
2. For ATOMIC_POSITIONS, all QE units are supported (alat | bohr | angstrom | crystal). Simple algebraic expressions for the positions are supported in similar fashion to QE. Please note that ibrav = 11..14 have not been tested so far with thirdorder_espresso.py (please report if you run these cases successfully or run into problems). Cases ibrav = -5, -9, -12, -13, and 91 are not currently implemented (but those structures can be defined via ibrav = 0 instead)
3. Please note that if Gamma-point k-sampling is used for the supercells, it is computationally much more efficient to apply "K_POINTS gamma" instead of "K_POINTS automatic" with the mesh set to "1 1 1 0 0 0". SCF convergence criterion conv_thr should be set to a tight value and parameters tstress and tprnfor are required so that thirdorder can extract the forces from the output file.
Thirdorder uses no other configuration files, and requires seven mandatory command-line arguments to create the supercell inputs with the "sow" operation. The first argument must be either "sow" or "reap", and chooses the operation to be performed (displacement generation or IFC matrix reconstruction). The next three must be positive integers, and specify the dimensions of the supercell to be created. Finally, the "cutoff" parameter decides on a force cutoff distance. Interactions between atoms spaced further than this parameter are neglected. If cutoff is a positive real number, it is interpreted as a distance in nm; on the other hand, if it is a negative integer -n, the maximum distance among n-th neighbors in the supercell is automatically determined and the cutoff distance is set accordingly.
thirdorder_espresso.py unitcell.in sow na nb nc cutoff[nm/-integer] supercell_template.in
thirdorder_espresso.py GaAs.in sow 4 4 4 -3 GaAs_sc.in
The command creates a file called BASE.GaAs_sc.in with the undisplaced supercell coordinates and 144 files with names following the pattern DISP.GaAs_sc.in.NNN The DISP files should be executed with QE. This step is completely system-dependent, but some practical suggestions can be extracted from the VASP example above.
After all the jobs have finished successfully, we only need to feed all the output files in the right order to thirdorder_espresso.py, this time in reap mode (now using only six arguments, the supercell argument is not used here):
find . -name 'DISP.GaAs_sc.in*out' | sort -n | thirdorder_espresso.py GaAs.in reap 4 4 4 -3
If everything goes according to plan, a FORCE_CONSTANTS_3RD file will be created at the end of this run. Naturally, it is important to choose the same parameters for the sow and reap steps.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 21:15
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社