An example which uses the ModeMap*
scripts and the 1D Schroödinger solver to analyse the two principal imaginary modes in the high-temperature Cmcm phase of SnSe.
The optimised (athermal) structure of Cmcm SnSe and the Phonopy FORCE_SETS
calculation obtained from a harmonic phonon calculation on the conventional cell are contained in the root directory.
These are sufficient to run the calculations in this example, but those wishing to reproduce the complete calculation can find further technical details in Ref. 1 and raw data in this repository.
Sample input and output files are stored in the 2D directory. The example is run as follows:
-
Generate a sequence of modulated structures:
python ModeMap.py -c POSCAR.vasp --dim="6 1 6" --map_2d --mode_1="0 0 0 1" --mode_2="0 0 0 2" --q_range="-7.5 7.5 0.5" --supercell="1 1 1"
Information about the structures is written to
ModeMap.csv
, and the structures (in VASPPOSCAR
format) are archived toModeMap.tar.gz
. -
Perform single-point energy calculation on the displaced structures (961 in total). Example
INCAR
andKPOINTS
files are provided for this (INCAR.SinglePoint
andKPOINTS.SinglePoint
, respectively), and users will also need the Sn_d and Se PAW PBE potentials (both dated 06-Sep-2000) from the VASP database. Once the calculations have been completed, extract the total energies to a CSV-format file (seeExtractTotalEnergies.py
for an example script). The required format is illustrated inExtractTotalEnergies.csv
. -
Post process the output:
python ModeMap_PostProcess.py --map_2d
The 2D potential map is written to
ModeMap_PostProcess_2DMap.csv
, and the potentials along the Q1 = 0 and Q2 = 0 slices of the sufrace are written toModeMap_PostProcess_1DProfiles.csv
.
Plotting the surface obtained in #3 should yield a result similar to the following:
These instructions apply to the example files in both the Mode1-HighResolution and Mode2-HighResolution directories.
-
Generate a sequence of modulated structures:
For mode 1:
python ModeMap.py -c POSCAR.vasp --dim="6 1 6" --mode="0 0 0 1" --q_range="-10.0 10.0 0.25" --supercell="1 1 1"
For mode 2:python ModeMap.py -c POSCAR.vasp --dim="6 1 6" --mode="0 0 0 2" --q_range="-12.5 12.5 0.25" --supercell="1 1 1"
-
Run the single-point total-energy calculations and collect the output (see #2 in the 2D example above).
-
Post process the output:
python ModeMap_PostProcess.py
For 1D maps, the result is written to
ModeMap_PostProcess.csv
. -
Fit the calculated potential-surface maps to polynomial functions:
For mode 1:
python ModeMap_PolyFit.py --degree=20 --plot_x="-4 4" --plot_y="-6 6"
For mode 2:python ModeMap_PolyFit.py --degree=20 --plot_x="-6 6" --plot_y="-15 15"
You should obtain plots similar to the following:
-
Use the fitted polynomial coefficients with the 1D Schrödinger solver code to compute the energy levels of the anharmonic potentials, and to calculate an effective (renormalised) harmonic frequency as a function of temperature.
This can be done using the
LoopTemperatures.sh
script included in the code directory (modify theRun()
function with the location of your compiled binary):./LoopTemperatures.sh
The renormalised frequencies are written to
t-vs-omega.dat
, and you should obtain a result similar to the following:
- J. M. Skelton, L. A. Burton, S. C. Parker, A. Walsh, C.-E. Kim, A. Soon, J. Buckeridge, A. A. Sokol, C. R. A. Catlow, A. Togo and I. Tanaka, "Anharmonicity in the High-Temperature Cmcm Phase of SnSe: Soft Modes and Three-Phonon Interactions", Physical Review Letters 117, 075502 (2016), DOI: 10.1103/PhysRevLett.117.075502