It is currently Tue Jun 25, 2019 11:07 pm

Tell a friend!

 Page 1 of 1 [ 7 posts ]
 Print view Previous topic | Next topic
Possibility to calculate mobility for 2d materials using EPW
Author Message

Joined: Thu Jul 26, 2018 1:45 am
Posts: 9
University: University of Tokyo
Possibility to calculate mobility for 2d materials using EPW
Dear all,

I have been trying to use EPW to calculate mobility for 2d MoO3 for a long time. I saw that EPW could not calculate mobility for 2d materials and if wanted to do it, had to treat it as 3d, put more k points along the vacuum direction. So I used 8*8*2 mesh. But it always failed in the restart section.

Output file with the following information.
" Fermi Surface thickness = 10.000000 eV
This is computed with respect to the fine Fermi level -4.732800 eV
Only states between -14.732800 eV and 5.267200 eV will be included

Progression iq (fine) = 50/ 1024
Progression iq (fine) = 100/ 1024
Progression iq (fine) = 150/ 1024
Progression iq (fine) = 200/ 1024
Progression iq (fine) = 250/ 1024
Progression iq (fine) = 300/ 1024
Progression iq (fine) = 350/ 1024
Progression iq (fine) = 400/ 1024
Progression iq (fine) = 450/ 1024
Progression iq (fine) = 500/ 1024
Progression iq (fine) = 550/ 1024
Progression iq (fine) = 600/ 1024
Progression iq (fine) = 650/ 1024
Progression iq (fine) = 700/ 1024
Progression iq (fine) = 750/ 1024
Progression iq (fine) = 800/ 1024
Progression iq (fine) = 850/ 1024
Progression iq (fine) = 900/ 1024
Progression iq (fine) = 950/ 1024
Progression iq (fine) = 1000/ 1024
Creation of a restart point"

Then it could not continue the calculation and killed.
I wonder if there are any successful calculation for 2d materials. If putting more k-points along the vacuum direction and treating it as 3d, it must be okay. Or just maybe work it. And I also want to know the reason why epw couldn't calculate mobility for 2d materials.

If anyone could answer my questions, I would appreciate very much, since I have been confused for a long time.

Best wishes,
Chou

Thu Nov 15, 2018 6:28 am

Joined: Wed Jan 13, 2016 7:25 pm
Posts: 569
University: Oxford
Re: Possibility to calculate mobility for 2d materials using
Hello Chou,

Indeed it should be possible to do mobility in 2d materials by treating them as 3D.

In your case it seems there is a crash when the code try to write data to file (at the restart point).

Most likely if you change the input parameter "restart_freq=500" it will crash at 500 q-point.

Best wishes,
Samuel

_________________
Dr. Samuel Poncé
Department of Materials
University of Oxford
Oxford OX1 3PH, UK

Mon Nov 19, 2018 5:33 pm

Joined: Thu Jul 26, 2018 1:45 am
Posts: 9
University: University of Tokyo
Re: Possibility to calculate mobility for 2d materials using
Hello Samuel，

Here is my input file.

scf.in

&CONTROL
calculation='scf'
restart_mode='from_scratch'
outdir='./'
pseudo_dir='/home/k0116/k011622/pseudo'
prefix= 'MoO3'
etot_conv_thr=1.0D-09
forc_conv_thr=1.0D-09
wf_collect=.true.
tstress=.true.
tprnfor=.true.
/
&SYSTEM
ibrav=8
celldm(1)=6.954407601
celldm(2)=1.069190824
celldm(3)=7.625614123
nat=8
ntyp=2
ecutwfc=90.0
nbnd =60
nspin=1
/
&ELECTRONS
conv_thr=1.0e-09
mixing_beta=0.4
/
ATOMIC_SPECIES
Mo 95.94 Mo_ONCV_PBE-1.0.upf
O 15.999 O_ONCV_PBE-1.0.upf
ATOMIC_POSITIONS crystal
Mo 0.750000000 0.571487762 -0.054029957
Mo 0.250000000 0.428512280 0.054029957
O 0.250000000 0.497852060 -0.03412717
O 0.750000000 0.502148112 0.034127155
O 0.750000000 0.015453203 -0.046343122
O 0.250000000 0.984546858 0.046343102
O 0.750000000 0.531000473 -0.113557105
O 0.250000000 0.468999251 0.113557105
K_POINTS automatic
8 8 2 0 0 0

nscf.in

&CONTROL
calculation='nscf'
restart_mode='from_scratch'
outdir='./'
pseudo_dir='/home/k0116/k011622/pseudo'
prefix= 'MoO3'
etot_conv_thr=1.0D-09
forc_conv_thr=1.0D-09
wf_collect=.true.
tstress=.true.
tprnfor=.true.
/
&SYSTEM
ibrav=8
celldm(1)=6.954407601
celldm(2)=1.069190824
celldm(3)=7.625614123
nat=8
ntyp=2
ecutwfc=90.0
nbnd =60
nspin=1
nr1=50
nr2=54
nr3=380
/
&ELECTRONS
conv_thr=1.0e-09
mixing_beta=0.4
/
ATOMIC_SPECIES
Mo 95.94 Mo_ONCV_PBE-1.0.upf
O 15.999 O_ONCV_PBE-1.0.upf
ATOMIC_POSITIONS crystal
Mo 0.750000000 0.571487762 -0.054029957
Mo 0.250000000 0.428512280 0.054029957
O 0.250000000 0.497852060 -0.03412717
O 0.750000000 0.502148112 0.034127155
O 0.750000000 0.015453203 -0.046343122
O 0.250000000 0.984546858 0.046343102
O 0.750000000 0.531000473 -0.113557105
O 0.250000000 0.468999251 0.113557105
K_POINTS crystal
128
0.0 0.0 0.0 0.0078125
0.0 0.0 0.5 0.0078125
0.0 0.125 0.0 0.0078125
0.0 0.125 0.5 0.0078125
0.0 0.25 0.0 0.0078125
0.0 0.25 0.5 0.0078125
0.0 0.375 0.0 0.0078125
0.0 0.375 0.5 0.0078125
0.0 0.5 0.0 0.0078125
0.0 0.5 0.5 0.0078125
0.0 0.625 0.0 0.0078125
0.0 0.625 0.5 0.0078125
0.0 0.75 0.0 0.0078125
0.0 0.75 0.5 0.0078125
0.0 0.875 0.0 0.0078125
0.0 0.875 0.5 0.0078125
0.125 0.0 0.0 0.0078125
0.125 0.0 0.5 0.0078125
0.125 0.125 0.0 0.0078125
0.125 0.125 0.5 0.0078125
0.125 0.25 0.0 0.0078125
0.125 0.25 0.5 0.0078125
0.125 0.375 0.0 0.0078125
0.125 0.375 0.5 0.0078125
0.125 0.5 0.0 0.0078125
0.125 0.5 0.5 0.0078125
0.125 0.625 0.0 0.0078125
0.125 0.625 0.5 0.0078125
0.125 0.75 0.0 0.0078125
0.125 0.75 0.5 0.0078125
0.125 0.875 0.0 0.0078125
0.125 0.875 0.5 0.0078125
0.25 0.0 0.0 0.0078125
0.25 0.0 0.5 0.0078125
0.25 0.125 0.0 0.0078125
0.25 0.125 0.5 0.0078125
0.25 0.25 0.0 0.0078125
0.25 0.25 0.5 0.0078125
...

epw.in
--
&inputepw
prefix= 'MoO3'
amass(1)= 95.94
amass(2)= 15.999
outdir='./'
iverbosity =0
elph = .true.
epbwrite = .true.
lpolar = .true.
epwwrite = .true.
nbndsub = 28
nbndskip = 14

lifc = .true.
asr_typ = simple

!wannier control tags
wannierize = .true.
num_iter = 1000
iprint = 2
dis_win_min= -11.73
dis_win_max= 4.775
dis_froz_min = -11.73
dis_froz_max = -0.165

proj(1) = 'Mo:d'
proj(2) = 'O:p'

wdata(1) = 'bands_plot = .true.'
wdata(2) = 'begin kpoint_path'
wdata(3) = 'G 0.000 0.000 0.000 X 0.500 0.000 0.000'
wdata(4) = 'X 0.500 0.000 0.000 S 0.500 0.500 0.000'
wdata(5) = 'S 0.500 0.500 0.000 Y 0.000 0.500 0.000'
wdata(6) = 'Y 0.000 0.500 0.000 G 0.000 0.000 0.000'
wdata(7) ='end kpoint_path'
wdata(8) ='bands_plot_format = gnuplot'
wdata(9) ='dis_num_iter = 1000 ' !set maximum iteration number
wdata(10) = 'guiding_centres = .true.'
wdata(11) = 'num_print_cycles = 10'
wdata(12) = 'dis_mix_ratio = 1.0'
!wdata(13) = 'use_ws_distance = T'

!epc calculation control tags
elecselfen = .false.
phonselfen = .false.
a2f = .false.
fsthick = 10.0 ! eV
eptemp = 100 ! K
degaussw = 0.01 ! eV
fermi_energy = -4.7328 !K valence top
dvscf_dir = '/home/k0116/k011622/MoO3/2d/ph/phonon3/save'

mp_mesh_k =.true.
band_plot = .true
!Wannier fine mesh
filkf = '/home/k0116/k011622/MoO3/2d/mesh/path1.dat'
!nkf1 = 80 !replace by appropriate number
!nkf2 = 80 !replace by appropriate number
!nkf3 = 1 !replace by appropriate number
!if you want to calculate on specific path, please use
filqf = '/home/k0116/k011622/MoO3/2d/mesh/path1.dat'
!nqf1 = 120 !replace by appropriate number
!nqf2 = 120 !replace by appropriate number
!nqf3 = 1 !replace by appropriate number

!original mesh
nk1 =8
nk2 =8
nk3 =2
nq1 =8
nq2 =8
nq3 =2
/
50 cartesian
0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
0.000000000000000E+00 0.000000000000000E+00 -0.655684895583589E-01
0.000000000000000E+00 0.116910842474645E+00 0.000000000000000E+00
0.000000000000000E+00 0.116910842474645E+00 -0.655684895583589E-01
0.000000000000000E+00 0.233821684949290E+00 0.000000000000000E+00
0.000000000000000E+00 0.233821684949290E+00 -0.655684895583589E-01
0.000000000000000E+00 0.350732527423935E+00 0.000000000000000E+00
0.000000000000000E+00 0.350732527423935E+00 -0.655684895583589E-01
0.000000000000000E+00 -0.467643369898580E+00 0.000000000000000E+00
0.000000000000000E+00 -0.467643369898580E+00 -0.655684895583589E-01
0.125000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
0.125000000000000E+00 0.000000000000000E+00 -0.655684895583589E-01
0.125000000000000E+00 0.116910842474645E+00 0.000000000000000E+00
0.125000000000000E+00 0.116910842474645E+00 -0.655684895583589E-01
0.125000000000000E+00 0.233821684949290E+00 0.000000000000000E+00
0.125000000000000E+00 0.233821684949290E+00 -0.655684895583589E-01
0.125000000000000E+00 0.350732527423935E+00 0.000000000000000E+00
0.125000000000000E+00 0.350732527423935E+00 -0.655684895583589E-01
0.125000000000000E+00 -0.467643369898580E+00 0.000000000000000E+00
0.125000000000000E+00 -0.467643369898580E+00 -0.655684895583589E-01
0.250000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
0.250000000000000E+00 0.000000000000000E+00 -0.655684895583589E-01
0.250000000000000E+00 0.116910842474645E+00 0.000000000000000E+00
0.250000000000000E+00 0.116910842474645E+00 -0.655684895583589E-01
0.250000000000000E+00 0.233821684949290E+00 0.000000000000000E+00
0.250000000000000E+00 0.233821684949290E+00 -0.655684895583589E-01
0.250000000000000E+00 0.350732527423935E+00 0.000000000000000E+00
0.250000000000000E+00 0.350732527423935E+00 -0.655684895583589E-01
0.250000000000000E+00 -0.467643369898580E+00 0.000000000000000E+00
0.250000000000000E+00 -0.467643369898580E+00 -0.655684895583589E-01
0.375000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
0.375000000000000E+00 0.000000000000000E+00 -0.655684895583589E-01
0.375000000000000E+00 0.116910842474645E+00 0.000000000000000E+00
0.375000000000000E+00 0.116910842474645E+00 -0.655684895583589E-01
0.375000000000000E+00 0.233821684949290E+00 0.000000000000000E+00
0.375000000000000E+00 0.233821684949290E+00 -0.655684895583589E-01
0.375000000000000E+00 0.350732527423935E+00 0.000000000000000E+00
0.375000000000000E+00 0.350732527423935E+00 -0.655684895583589E-01
0.375000000000000E+00 -0.467643369898580E+00 0.000000000000000E+00
0.375000000000000E+00 -0.467643369898580E+00 -0.655684895583589E-01
-0.500000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
-0.500000000000000E+00 0.000000000000000E+00 -0.655684895583589E-01
-0.500000000000000E+00 0.116910842474645E+00 0.000000000000000E+00
-0.500000000000000E+00 0.116910842474645E+00 -0.655684895583589E-01
-0.500000000000000E+00 0.233821684949290E+00 0.000000000000000E+00
-0.500000000000000E+00 0.233821684949290E+00 -0.655684895583589E-01
-0.500000000000000E+00 0.350732527423935E+00 0.000000000000000E+00
-0.500000000000000E+00 0.350732527423935E+00 -0.655684895583589E-01
-0.500000000000000E+00 -0.467643369898580E+00 0.000000000000000E+00
-0.500000000000000E+00 -0.467643369898580E+00 -0.655684895583589E-01

epw2.in
--
&inputepw
prefix= 'MoO3'
amass(1)= 95.94
amass(2)= 15.999
outdir='./'
iverbosity =0
elph = .true.
epbwrite = .false.
lpolar = .true.
epwwrite = .false.
nbndsub = 28
nbndskip = 14

restart = .true.
restart_freq= 1024
kmaps = .true.

lifc = .true.
asr_typ = simple

!wannier control tags
wannierize = .false.
num_iter = 1000
iprint = 2
dis_win_min= -11.73
dis_win_max= 4.775
dis_froz_min = -11.73
dis_froz_max = -0.165

proj(1) = 'Mo:d'
proj(2) = 'O:p'

wdata(1) = 'bands_plot = .true.'
wdata(2) = 'begin kpoint_path'
wdata(3) = 'G 0.000 0.000 0.000 X 0.500 0.000 0.000'
wdata(4) = 'X 0.500 0.000 0.000 S 0.500 0.500 0.000'
wdata(5) = 'S 0.500 0.500 0.000 Y 0.000 0.500 0.000'
wdata(6) = 'Y 0.000 0.500 0.000 G 0.000 0.000 0.000'
wdata(7) ='end kpoint_path'
wdata(8) ='bands_plot_format = gnuplot'
wdata(9) ='dis_num_iter = 1000 ' !set maximum iteration number
wdata(10) = 'guiding_centres = .true.'
wdata(11) = 'num_print_cycles = 10'
wdata(12) = 'dis_mix_ratio = 1.0'
!wdata(13)= 'use_ws_distance = T'

!mobility
scattering = .true.
scattering_serta = .true.
int_mob = .true.
carrier = .true.
ncarrier = 1E13
scissor = 0.1
nstemp = 5
tempsmin = 100
tempsmax = 500

!epc calculation control tags
elecselfen = .false.
phonselfen = .false.
a2f = .false.
fsthick = 10.0 ! eV
eptemp = 100 ! K
degaussw = 0.01 ! eV
fermi_energy = -4.7328 !K valence top
dvscf_dir = '/home/k0116/k011622/MoO3/2d/ph/phonon3/save'

mp_mesh_k =.true.
!band_plot = .true
!Wannier fine mesh
!filkf = '/home/k0116/k011622/MoO3/2d/mesh/path1.dat'
nkf1 = 16 !replace by appropriate number
nkf2 = 16 !replace by appropriate number
nkf3 = 4 !replace by appropriate number
!if you want to calculate on specific path, please use
!filqf = '/home/k0116/k011622/MoO3/2d/mesh/path1.dat'
nqf1 = 16 !replace by appropriate number
nqf2 = 16 !replace by appropriate number

nqf3 = 4 !replace by appropriate number

!original mesh
nk1 =8
nk2 =8
nk3 =2
nq1 =8
nq2 =8
nq3 =2
/
50 cartesian
0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
0.000000000000000E+00 0.000000000000000E+00 -0.655684895583589E-01
0.000000000000000E+00 0.116910842474645E+00 0.000000000000000E+00
0.000000000000000E+00 0.116910842474645E+00 -0.655684895583589E-01
0.000000000000000E+00 0.233821684949290E+00 0.000000000000000E+00
0.000000000000000E+00 0.233821684949290E+00 -0.655684895583589E-01
0.000000000000000E+00 0.350732527423935E+00 0.000000000000000E+00
0.000000000000000E+00 0.350732527423935E+00 -0.655684895583589E-01
0.000000000000000E+00 -0.467643369898580E+00 0.000000000000000E+00
0.000000000000000E+00 -0.467643369898580E+00 -0.655684895583589E-01
0.125000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
0.125000000000000E+00 0.000000000000000E+00 -0.655684895583589E-01
0.125000000000000E+00 0.116910842474645E+00 0.000000000000000E+00
0.125000000000000E+00 0.116910842474645E+00 -0.655684895583589E-01
0.125000000000000E+00 0.233821684949290E+00 0.000000000000000E+00
0.125000000000000E+00 0.233821684949290E+00 -0.655684895583589E-01
0.125000000000000E+00 0.350732527423935E+00 0.000000000000000E+00
..

For output file, I think scf.out , nscf.out and epw.out are all normal. And epw2.out just like I showed, suddenly killed itself.
If you can help with it, I will appreciate it very much.

Best wishes,
Chou

Wed Nov 21, 2018 8:55 am

Joined: Wed Jan 13, 2016 7:25 pm
Posts: 569
University: Oxford
Re: Possibility to calculate mobility for 2d materials using
Dear CHOU,

I do not see anything wrong in your input I think.

You can try:
- mp_mesh_k =.false. (disable k-point symmetry), much slower
- run with 1 cpu interactively with restart_freq= 2, this way it will crash very quickly. Hopefully the code will tell you at which line exactly it crashed.
- try using the most recent development version of EPW (from gitlab).

Best wishes,
Samuel

_________________
Dr. Samuel Poncé
Department of Materials
University of Oxford
Oxford OX1 3PH, UK

Thu Nov 22, 2018 10:40 am

Joined: Thu Jul 26, 2018 1:45 am
Posts: 9
University: University of Tokyo
Re: Possibility to calculate mobility for 2d materials using
Dear Samuel,

Thank you very much for your ideas.
I have solved the problem and got the mobility successfully with defaulting the mp_mesh_k.

Best wishes,
CHOU

Thu Dec 06, 2018 9:31 am

Joined: Thu Jul 26, 2018 1:45 am
Posts: 9
University: University of Tokyo
Re: Possibility to calculate mobility for 2d materials using
Dear Samuel,

Although I calculated the mobility of 2d materials, but the mobility in the z axis was very large, which is not true for the real situation. Is it okay if I just pick up the mobility in x-axis and y-axis to analyze the materials and ignore the z-axis' mobility?
Or I change the codes in transport.f90
CALL rdiagh(3,Sigma_m(:,:,itemp),3,sigma_eig,sigma_vect)
to
CALL rdiagh(2,Sigma_m(:,:,itemp),2,sigma_eig,sigma_vect),
to only include the xy part for calculation, is it true for 2d materials?

Best wishes,
Chou

Thu Jan 10, 2019 9:36 am

Joined: Wed Jan 13, 2016 7:25 pm
Posts: 569
University: Oxford
Re: Possibility to calculate mobility for 2d materials using
I would recommand not to use diagonalization at all (i.e. do not call CALL rdiagh).
However in that case you should also print off diagonal elements to make sure that they are small.

Best wishes,
Samuel

_________________
Dr. Samuel Poncé
Department of Materials
University of Oxford
Oxford OX1 3PH, UK

Thu Feb 14, 2019 2:22 pm
Display posts from previous:  Sort by
 Page 1 of 1 [ 7 posts ]

#### Who is online

Users browsing this forum: No registered users and 3 guests

 You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forum

Search for:
 Jump to:  Select a forum ------------------ General discussion Theory    Electron-phonon    Superconductivity Compilation Running the code