In this example, how to visualize the wave functions is described by taking benzene as an example.
A benzene molecule is placed in a cubic box with the cell edge of 15 Angstrom (28.3459032 Bohr). Cutoff energies of 36 Ry (GMAX=6) and 400 Ry (GMAXP=20) are used for the wave functions and the augmentation charge, respectively. Only the Gamma point was used for Brillouin zone sampling. pot.C_pbe6TM and pot.H_lda1 were used.
0 0 0 0 0 0 : i_ctrl(1:6) (dummy) 6.00 20.00 2 12 12 : GMAX GMAXP NTYP NATM NATM2 25 0 : num_space_group type_bravis_lattice 28.3459032 28.3459032 28.3459032 90.000 90.000 90.000 : a b c alpha beta gamma 1 1 1 1 1 1 : K_mesh 1 0 : NCORD NINV -0.000000000000 2.647599670938 0.000002633351 1 1 1 -2.292860266586 1.323707013877 0.000002742992 1 1 1 -2.292860266586 -1.323707013877 0.000002742992 1 1 1 0.000000000000 -2.647599670938 0.000002633351 1 1 1 2.292860266586 -1.323707013877 0.000002742992 1 1 1 2.292860266586 1.323707013877 0.000002742992 1 1 1 0.000000000000 4.717073171214 -0.000006057411 1 1 2 -4.085276621440 2.358661303430 0.000001383774 1 1 2 -4.085276621440 -2.358661303430 0.000001383774 1 1 2 0.000000000000 -4.717073171214 -0.000006057411 1 1 2 4.085276621440 -2.358661303430 0.000001383774 1 1 2 4.085276621440 2.358661303430 0.000001383774 1 1 2 6.00 0.15 28.29 3 1 0.00 : type iatomn alfa amion iloc ivan zeta1 1.00 0.15 28.29 3 1 0.00 : type iatomn alfa amion iloc ivan zeta1 0 0 0 0 0 : icond inipos inivel ininos iniacc 0 1 : ipre ipri 300 300 0 28000.00 0 : nmd1 nmd2 last_iter cpumax ifstop 6 1 : way_mix mimx_what 0 8 0.80 : iter_start KBXMIX MIX_ALPHA 0.60 0.50 0.60 0.70 1.00 : dtim1 dtim2 dtim3 dtim4 dtim 500.00 4 1 0.10D-08 : dtio imdalg iexpl edelta 0.0010 0.50D-03 0 : width forccr istress ggapbe 1 : xctype kspin 1.00 : destm 102 : nbztyp 4 4 4 : (dummy) 4 4 4 : (dummy) 18 : keg 1 : nextst 0 : (dummy) 2 : imsd 0 : evaluate_eko_diff 0 : npdosao 0 0.00 : sm_n dopping
Once converged charge density and wave functions are obtained, we are ready to calculate the wave functions in real space. We use FFT to transform the wave functions in reciprocal space to those in real space (this is why I name "wfnfft," where "wfn" stands for the wave function)
0 0 0 0 0 0 : i_ctrl(1:6) (dummy) 6.00 20.00 2 12 12 : GMAX GMAXP NTYP NATM NATM2 25 0 : num_space_group type_bravis_lattice 28.3459032 28.3459032 28.3459032 90.000 90.000 90.000 : a b c alpha beta gamma 1 1 1 1 1 1 : K_mesh 1 0 : NCORD NINV -0.000000000000 2.647599670938 0.000002633351 1 1 1 -2.292860266586 1.323707013877 0.000002742992 1 1 1 -2.292860266586 -1.323707013877 0.000002742992 1 1 1 0.000000000000 -2.647599670938 0.000002633351 1 1 1 2.292860266586 -1.323707013877 0.000002742992 1 1 1 2.292860266586 1.323707013877 0.000002742992 1 1 1 0.000000000000 4.717073171214 -0.000006057411 1 1 2 -4.085276621440 2.358661303430 0.000001383774 1 1 2 -4.085276621440 -2.358661303430 0.000001383774 1 1 2 0.000000000000 -4.717073171214 -0.000006057411 1 1 2 4.085276621440 -2.358661303430 0.000001383774 1 1 2 4.085276621440 2.358661303430 0.000001383774 1 1 2 6.00 0.15 28.29 3 1 0.00 : type iatomn alfa amion iloc ivan zeta1 1.00 0.15 28.29 3 1 0.00 : type iatomn alfa amion iloc ivan zeta1 15 0 0 0 0 : icond inipos inivel ininos iniacc 0 1 : ipre ipri 300 300 0 28000.00 0 : nmd1 nmd2 last_iter cpumax ifstop 6 1 : way_mix mimx_what 0 8 0.80 : iter_start KBXMIX MIX_ALPHA 0.60 0.50 0.60 0.70 1.00 : dtim1 dtim2 dtim3 dtim4 dtim 500.00 4 1 0.10D-08 : dtio imdalg iexpl edelta 0.0010 0.50D-03 0 : width forccr istress ggapbe 1 : xctype kspin 1.00 : destm 102 : nbztyp 4 4 4 : (dummy) 4 4 4 : (dummy) 18 : keg 1 : nextst 0 : (dummy) 2 : imsd 0 : evaluate_eko_diff 0 : npdosao 0 0.00 : sm_n dopping &PLOT IK 1 IBAND_S 9 IBAND_E 18 &ENDHere to tell the wave functions to be plotted, we need to specify the k-point index (IK), starting band index (IBAND_S), and ending band index (IBAND_E) in the &PLOT block. By running this we obtain the following cube files for this example
nfwfn_kpt0001_band0009.cube nfwfn_kpt0001_band0010.cube nfwfn_kpt0001_band0011.cube nfwfn_kpt0001_band0012.cube nfwfn_kpt0001_band0013.cube nfwfn_kpt0001_band0014.cube nfwfn_kpt0001_band0015.cube nfwfn_kpt0001_band0016.cube nfwfn_kpt0001_band0017.cube nfwfn_kpt0001_band0018.cubeNote that the cube files generated by STATE are visualized by XCrySDen, but not by VESTA, possibly because the orgin of the volumeric data is shifted in STATE. Here let us use the utlitiy called mocube2moxsf (mocube2denxsf) to convert the cube file to XSF file. For example, to convert nfwfn_kpt0001_band0015.cube to the data in the XSF format, run the following (do NOT forget "-vesta" option"!)
mocube2moxsf -vesta nfwfn_kpt0001_band0015.cube band0015and we get
band0015_re.xsf band0015_im.xsfthe former being the real part of the wave function, the latter, imaginary part. If you want to get the charge density corresponding to the specific state, type, for instance,
mocube2dexsf -vesta nfwfn_kpt0001_band0015.cube band0015and get band0015.xsf. How to use mocube2moxsf and mocube2denxsf can be found by typing
mocube2moxsf -h