README
1================================================================================
2PlotXct code
3================================================================================
4
5 Version 2.0 (May, 2018)
6 To be announced.
7
8 Version 1.2 (Aug, 2016)
9 F. H. da Jornada, J. Deslippe, D. Vigil-Fowler, J. I. Mustafa, T. Rangel,
10 F. Bruneval, F. Liu, D. Y. Qiu, D. A. Strubbe, G. Samsonidze, J. Lischner.
11
12 Version 1.1 (June, 2014)
13 Version 1.0 (July, 2011)
14 Version 0.5 F. Ribeiro (2008), S. Ismail-Beigi
15 Version 0.2 M. L. Tiago (2002-2007)
16
17--------------------------------------------------------------------------------
18
19Description:
20
21PlotXct plots the exciton wavefunction in real space based on
22output of BSE/absorption (with full diagonalization).
23
24Reads files WFN_fi/WFNq_fi (from mean field) and eigenvectors (output
25from BSE/absorption code when using diagonalization, not Haydock) and
26plots selected exciton state in real space according to:
27
28 Psi(r,r`,s) = Sum_cvk A_svck * phi_sck(r) * exp(ik.r) * conjg( phi_svk(r`) * exp(i[k+q].r`)
29
30where r`, hole coordinate, is fixed at some point and r, electron coordinate,
31runs over a supercell of given size (typically, equivalent to the fine k-grid),
32with a real-space mesh defined by the FFT grid of the wavefunction files.
33A separate plot can be generated for each spin s.
34
35
36Output is written in format suitable for Data Explorer (DX).
37
38The input option 'restrict_kpoints' reduces the sum over k-points
39above to a sum over the ones that give most of the contribution
40to the norm of eigenvectors. This is handy if there are many k-points
41but only a few of them give sizable contribution.
42
43input: WFN_fi WFNq_fi wavefunction files
44 eigenvectors output from BSE/absorption code
45 plotxct.inp input parameters
46
47--------------------------------------------------------------------------------
48
491. Copy/edit plotxct.inp.
50
51 You'll need:
52 . index of the exciton state you want to plot
53 . hole position in lattice coordinates
54 . supercell dimensions (or k-grid)
55 . spin component you want to plot (if spin-polarized)
56
572. Run plotxct.x
58
59 The ASCII file 'xct.[state]_s[spin].a3Dr' will be created.
60
61 'a3Dr' means that the file is in ASCII and contains 3D data in 'r' real space.
62
63 The header of this file contains information on
64 . state index
65 . state energy in eV
66 . hole position in atomic units (a.u.)
67 . spin component plotted
68 . supercell lattice vectors in a.u.
69 . number of discretization points
70 followed by three columns of data corresponding to the complex values of the
71 electronic part of the excitonic wavefunction, and its magnitude squared.
72
73 The values are written with very low precision due to file-size concerns.
74
75
763. Convert to a format readable by the plotting utility of your choice.
77
78 Use the 'volume.py' utility:
79
80 Usage: volume.py imfn imff ivfn ivff ovfn ovff phas cplx [hole]
81
82 imfn = input matter file name
83 imff = input matter file format
84 (mat|paratec|vasp|espresso|siesta|tbpw|xyz|xsf)
85 ivfn = input volumetric file name
86 ivff = input volumetric file format (a3dr)
87 ovfn = output volumetric file name
88 ovff = output volumetric file format (cube|xsf)
89 phas = remove wavefunction phase (true|false)
90 cplx = complex wavefunction (re|im|abs|abs2)
91 hole = plot hole (true|false)
92
93 You can specify whether you want a .xsf (XCrysDen) or .cube (Gaussian Cube)
94 file format. You can remove or keep the arbitrary phase of the wavefunction
95 by setting parameter "phas" to true or false. You can plot the re, im, abs,
96 or abs2 part of the wavefunction.
97
98 You must specify a path to the input file (example: "../01-scf/input")
99 in one of the supported formats (DFT and others) so that the script can
100 obtain the atomic positions from the file.
101
102 You can choose whether to display or not the position of the hole by setting
103 parameter "hole" to true or false.
104
105 The resulting .xsf or .cube file can be viewed in XCrysDen or converted to
106 POV-Ray script format using Surface code (for more details on the latter
107 option, see Visual/README).
108
109 ****************
110 Example:
111
112 % ~/BerkeleyGW/Visual/volume.py ../01-scf/input paratec xct.000001_s1.a3Dr a3dr \
113 xct.000001.abs2.xsf xsf false abs2 false
114 % xcrysden --xsf xct.000001.abs2.xsf
115
116 ****************
117