====== Transition dipole moment calculation exclude local field ====== Transition dipole moment calculaton in CsPbI3. There are four steps, the first step is “**SCF**” calculation, the second is “**NONSCF**” calculation, the third is “**DOS**” calculation, and the fourth step is to process the data with TDM.x tool. ===== First Step: “SCF” calculation ===== ==== Input files ==== atom.config 5 LATTICE 6.39011884 0.00000000 0.00000000 0.00000000 6.39011884 0.00000000 0.00000000 0.00000000 6.39011884 POSITION 55 0.50000000 0.50000000 0.50000000 1 1 1 82 0.00000000 0.00000000 0.00000000 1 1 1 53 0.00000000 0.00000000 0.50000000 1 1 1 53 0.50000000 0.00000000 0.00000000 1 1 1 53 0.00000000 0.50000000 0.00000000 1 1 1 etot.input 4 1 JOB = SCF IN.PSP1 = Cs.SG15.PBE.UPF IN.PSP2 = Pb-d.SG15.PBE.UPF IN.PSP3 = I.SG15.PBE.UPF IN.ATOM = atom.config CONVERGENCE = difficult Ecut = 50 Ecut2 = 100 MP_N123 = 5 5 5 0 0 0 Cs.SG15.PBE.UPF, Pb-d.SG15.PBE.UPF, I.SG15.PBE.UPF ==== Calculations ==== - You can submit PWmat tasks in different ways: mpirun -np 4 PWmat | tee output Run the command directly #!/bin/bash #PBS -N SCF #PBS -l nodes=1:ppn=4 #PBS -q batch #PBS -l walltime=100:00:00 ulimit -s unlimited cd $PBS_O_WORKDIR mpirun -np 4 PWmat | tee output Submit the task with a pbs script ===== Second Step: “NONSCF” calculation ===== ==== Input files ==== atom.config 5 LATTICE 6.39011884 0.00000000 0.00000000 0.00000000 6.39011884 0.00000000 0.00000000 0.00000000 6.39011884 POSITION 55 0.50000000 0.50000000 0.50000000 1 1 1 82 0.00000000 0.00000000 0.00000000 1 1 1 53 0.00000000 0.00000000 0.50000000 1 1 1 53 0.50000000 0.00000000 0.00000000 1 1 1 53 0.00000000 0.50000000 0.00000000 1 1 1 etot.input 4 1 JOB = NONSCF IN.PSP1 = Cs.SG15.PBE.UPF IN.PSP2 = Pb-d.SG15.PBE.UPF IN.PSP3 = I.SG15.PBE.UPF IN.ATOM = atom.config Ecut = 50 Ecut2 = 100 IN.VR = T IN.KPT = T - How to get IN.VR and IN.KPT, please refer to the example [[./Bandsctructure|Bandstructure calculation]]. - The file gen.kpt: BAND # COMMENT line 20 # number of k-points between X and R 0.000 0.500 0.000 X # reciprocal coordinates; label 'X' for X point 0.500 0.500 0.500 R 20 0.500 0.500 0.500 R 0.500 0.500 0.000 M 20 0.500 0.500 0.000 M 0.000 0.000 0.000 G 20 0.000 0.000 0.000 G 0.500 0.500 0.500 R Cs.SG15.PBE.SOC.UPF, Pb-d.SG15.PBE.SOC.UPF, I.SG15.PBE.UPF ==== Calculations ==== - You can submit PWmat tasks in different ways: mpirun -np 4 PWmat | tee output Run the command directly #!/bin/bash #PBS -N SCF #PBS -l nodes=1:ppn=4 #PBS -q batch #PBS -l walltime=100:00:00 ulimit -s unlimited cd $PBS_O_WORKDIR mpirun -np 4 PWmat | tee output Submit the task with a pbs script ===== Third Step: “DOS” calculation ===== ==== Input files ==== atom.config 5 LATTICE 6.39011884 0.00000000 0.00000000 0.00000000 6.39011884 0.00000000 0.00000000 0.00000000 6.39011884 POSITION 55 0.50000000 0.50000000 0.50000000 1 1 1 82 0.00000000 0.00000000 0.00000000 1 1 1 53 0.00000000 0.00000000 0.50000000 1 1 1 53 0.50000000 0.00000000 0.00000000 1 1 1 53 0.00000000 0.50000000 0.00000000 1 1 1 etot.input 4 1 JOB = DOS IN.PSP1 = Cs.SG15.PBE.UPF IN.PSP2 = Pb-d.SG15.PBE.UPF IN.PSP3 = I.SG15.PBE.UPF IN.ATOM = atom.config Ecut = 50 Ecut2 = 100 Ecutp = 100 IN.WG = T IN.KPT = T - Read IN.WG from previous NONSCF calculation OUT.WG. - You also need copy OUT.EIGEN and OUT.FERMI from previous NONSCF calculation. - IN.KPT is the same as previous NONSCF calculation. Cs.SG15.PBE.SOC.UPF, Pb-d.SG15.PBE.SOC.UPF, I.SG15.PBE.UPF ==== Calculations ==== - You can submit PWmat tasks in different ways: mpirun -np 4 PWmat | tee output Run the command directly #!/bin/bash #PBS -N SCF #PBS -l nodes=1:ppn=4 #PBS -q batch #PBS -l walltime=100:00:00 ulimit -s unlimited cd $PBS_O_WORKDIR mpirun -np 4 PWmat | tee output Submit the task with a pbs script ===== Fourth Step: run TDM.x ===== ==== Input files ==== TDM.input 0 #flag: possible values 0, 1. 0: no nonlocal potential; 1: nonlocal potential is taken into account 37 38 #i,j: TDM between j and j state. - flag 0: TDM.x will read TDM.input, OUT.WG, OUT.EIGEN and OUT.GKK. - flag 1: TDM.x will read TDM.input and OUT.momentK._ (_ represents multiple files) - After run TDM.x, you will get transition_moment file: ikpt X-component Y-component Z-component Total(e^2*bohr^2) X-real X-imag Y-real Y-imag Z-real Z-imag 1 0.7198E-11 0.2949E+02 0.4606E-11 0.2949E+02 -0.1739E-05 0.2043E-05 0.1961E+01 0.5064E+01 -0.6900E-06 0.2032E-05 2 0.6357E-12 0.2951E+02 0.3241E-11 0.2951E+02 -0.5834E-06 0.5435E-06 0.2084E+01 -0.5017E+01 0.6696E-06 0.1671E-05 3 0.1115E-10 0.2962E+02 0.4501E-11 0.2962E+02 0.2978E-05 -0.1510E-05 -0.5258E+01 -0.1404E+01 0.9306E-06 -0.1907E-05 ... ... ... 83 0.1498E+02 0.1315E+01 0.7419E+01 0.2371E+02 0.5129E+00 -0.3836E+01 -0.1307E+00 0.1139E+01 -0.3821E+00 0.2697E+01 84 0.2322E+02 0.5479E+01 0.7938E+01 0.3663E+02 0.3863E+01 0.2879E+01 -0.2275E+01 -0.5526E+00 -0.1589E+01 -0.2327E+01 85 0.3655E+02 0.4251E+01 0.2792E+01 0.4359E+02 -0.5741E+01 -0.1895E+01 0.1737E+01 0.1111E+01 0.4033E+00 0.1622E+01