The PERTURBO code has many calculation modes (specified by the calc_mode variable). Each calculation mode implies different mandatory and optional input parameters. In order to simplify and systematize the input files for the user, we provide the generate_input.py
python script which generates the PERTURBO input files for different calculation modes.
To use the script, go to the utils directory of the PERTURBO code folder:
$ cd [ perturbo_path]/utils
Suppose, we would like to generate the input file for the calculation mode ephmat
. To do this, run:
$ ./generate_input.py --calc_mode ephmat
For a shorter version, one can specify -c
instead of --calc_mode
.
Then, the input file (called by default pert.in ) is generated:
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
calc_mode = 'ephmat'
prefix = 'prefix'
fklist = 'prefix.kpt'
fqlist = 'prefix.qpt'
! ***Optional parameters***
! band_min = 1
! band_max = 9999999
! phfreq_cutoff = 1.0
/
It contains a block of mandatory parameters for this calculation mode and a block of optional ones, which is commented. As one can see, this input file containes some typical values for the input parameters. The user should modify them for a given calculation.
Setting the variables is also possible using the scipt. For example, to set prefix
to 'si'
and band_min
to '10'
, run:
$ ./generate_input.py -c ephmat --prefix si --band_min 10
The values of these parameters were changed in the pert.in file. Note, that since we specified an optional parameter band_min
, it was uncommented in the input file.
To change the name of the input file, run the script with -i your_name.in
option. Setting the input parameter values from the scipt could be usefull in the case, when one needs to create automatically many different input files.
In order to generate the input files for the qe2pert.x
calcuation, select -c qe2pert
. Run the script with -h
to get the whole list of possible options.
To get a typical input file without running the script, select the calculation type here:
Select...
qe2pert
'bands'
'phdisp'
'ephmat'
'setup'
'imsigma'
'meanfp'
'trans'
'trans-pp'
'dynamics-run'
'dynamics-pp'
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& qe2pert
! ***Mandatory parameters***
l_qe2pert_prefix_end1_prefix_end2 = 'prefix'
l_qe2pert_outdir_end1_outdir_end2 = './tmp'
l_qe2pert_phdir_end1_phdir_end2 = 'phdir'
! coarse k grid (used to construct Wannier functions)
l_qe2pert_nk1_end1_nk1_end2 = 8
l_qe2pert_nk2_end1_nk2_end2 = 8
l_qe2pert_nk3_end1_nk3_end2 = 8
! number of wannier functions
l_qe2pert_num_wann_end1_num_wann_end2 = 1
! ***Optional parameters***
! l_qe2pert_dft_band_min_end1_dft_band_min_end2 = 1
! l_qe2pert_dft_band_max_end1_dft_band_max_end2 = 10000
! l_qe2pert_dis_win_min_end1_dis_win_min_end2 = -9999.0
! l_qe2pert_system_2d_end1_system_2d_end2 = .false.
! l_qe2pert_lwannier_end1_lwannier_end2 = .true.
! l_qe2pert_debug_end1_debug_end2 = .false.
! l_qe2pert_load_ephmat_end1_load_ephmat_end2 = .false.
! l_qe2pert_asr_end1_asr_end2 = 'crystal'
! l_qe2pert_polar_alpha_end1_polar_alpha_end2 = 1.0
! l_qe2pert_thickness_2d_end1_thickness_2d_end2 = 6.0 ! Å
! l_qe2pert_eig_corr_end1_eig_corr_end2 = ''
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'bands'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_fklist_end1_fklist_end2 = ''
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'phdisp'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_fqlist_end1_fqlist_end2 = ''
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'ephmat'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_fklist_end1_fklist_end2 = ''
l_pert_fqlist_end1_fqlist_end2 = ''
! ***Optional parameters***
! l_pert_band_min_end1_band_min_end2 = 1
! l_pert_band_max_end1_band_max_end2 = 9999999
! l_pert_phfreq_cutoff_end1_phfreq_cutoff_end2 = 1.0 ! meV
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'setup'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 1 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 2 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 3 ) = 1
l_pert_ftemper_end1_ftemper_end2 = ''
! ***Optional parameters***
! l_pert_band_min_end1_band_min_end2 = 1
! l_pert_band_max_end1_band_max_end2 = 9999999
! l_pert_boltz_emin_end1_boltz_emin_end2 = -9999.0 ! eV
! l_pert_boltz_emax_end1_boltz_emax_end2 = 9999.0 ! eV
! l_pert_find_efermi_end1_find_efermi_end2 = .false.
! l_pert_hole_end1_hole_end2 = .false.
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'imsigma'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_ftemper_end1_ftemper_end2 = ''
l_pert_fklist_end1_fklist_end2 = ''
! ***Optional parameters***
! l_pert_band_min_end1_band_min_end2 = 1
! l_pert_band_max_end1_band_max_end2 = 9999999
! l_pert_delta_smear_end1_delta_smear_end2 = 10.0 ! meV
! l_pert_phfreq_cutoff_end1_phfreq_cutoff_end2 = 1.0 ! meV
! l_pert_polar_split_end1_polar_split_end2 = ''
! l_pert_fqlist_end1_fqlist_end2 = ''
! l_pert_sampling_end1_sampling_end2 = 'uniform'
! l_pert_cauchy_scale_end1_cauchy_scale_end2 = 0.05
! l_pert_nsamples_end1_nsamples_end2 = 100000
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'meanfp'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_fklist_end1_fklist_end2 = ''
l_pert_ftemper_end1_ftemper_end2 = ''
! ***Optional parameters***
! l_pert_band_min_end1_band_min_end2 = 1
! l_pert_band_max_end1_band_max_end2 = 9999999
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'trans'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 1 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 2 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 3 ) = 1
l_pert_ftemper_end1_ftemper_end2 = ''
! ***Optional parameters***
! l_pert_boltz_qdim_end1_boltz_qdim_end2(1) = 0
! l_pert_boltz_qdim_end1_boltz_qdim_end2(2) = 0
! l_pert_boltz_qdim_end1_boltz_qdim_end2(3) = 0
! l_pert_band_min_end1_band_min_end2 = 1
! l_pert_band_max_end1_band_max_end2 = 9999999
! l_pert_boltz_emin_end1_boltz_emin_end2 = -9999.0 ! eV
! l_pert_boltz_emax_end1_boltz_emax_end2 = 9999.0 ! eV
! l_pert_delta_smear_end1_delta_smear_end2 = 10.0 ! meV
! l_pert_phfreq_cutoff_end1_phfreq_cutoff_end2 = 1.0 ! meV
! l_pert_boltz_nstep_end1_boltz_nstep_end2 = 0
! l_pert_boltz_de_end1_boltz_de_end2 = 1.0 ! meV
! l_pert_trans_thr_end1_trans_thr_end2 = 0.002
! l_pert_hole_end1_hole_end2 = .false.
! l_pert_load_scatter_eph_end1_load_scatter_eph_end2 = .false.
! l_pert_tmp_dir_end1_tmp_dir_end2 = '.'
! l_pert_full_ite_end1_full_ite_end2 = .true.
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'trans-pp'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 1 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 2 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 3 ) = 1
l_pert_ftemper_end1_ftemper_end2 = ''
! ***Optional parameters***
! l_pert_band_min_end1_band_min_end2 = 1
! l_pert_band_max_end1_band_max_end2 = 9999999
! l_pert_boltz_emin_end1_boltz_emin_end2 = -9999.0 ! eV
! l_pert_boltz_emax_end1_boltz_emax_end2 = 9999.0 ! eV
! l_pert_boltz_de_end1_boltz_de_end2 = 1.0 ! meV
! l_pert_hole_end1_hole_end2 = .false.
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'dynamics-run'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 1 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 2 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 3 ) = 1
l_pert_ftemper_end1_ftemper_end2 = ''
l_pert_boltz_nstep_end1_boltz_nstep_end2 = 0
l_pert_output_nstep_end1_output_nstep_end2 = 1
l_pert_time_step_end1_time_step_end2 = 1.0 ! fs
l_pert_boltz_init_dist_end1_boltz_init_dist_end2 = ''
! ***Optional parameters***
! l_pert_solver_end1_solver_end2 = 'rk4'
! l_pert_boltz_init_e0_end1_boltz_init_e0_end2 = -9999.0 ! eV
! l_pert_boltz_init_smear_end1_boltz_init_smear_end2 = 20.0 ! meV
! l_pert_delta_smear_end1_delta_smear_end2 = 10.0 ! meV
! l_pert_phfreq_cutoff_end1_phfreq_cutoff_end2 = 1.0 ! meV
! l_pert_boltz_qdim_end1_boltz_qdim_end2(1) = 0
! l_pert_boltz_qdim_end1_boltz_qdim_end2(2) = 0
! l_pert_boltz_qdim_end1_boltz_qdim_end2(3) = 0
! l_pert_hole_end1_hole_end2 = .false.
! l_pert_band_min_end1_band_min_end2 = 1
! l_pert_band_max_end1_band_max_end2 = 9999999
! l_pert_boltz_emin_end1_boltz_emin_end2 = -9999.0 ! eV
! l_pert_boltz_emax_end1_boltz_emax_end2 = 9999.0 ! eV
! l_pert_load_scatter_eph_end1_load_scatter_eph_end2 = .false.
! l_pert_tmp_dir_end1_tmp_dir_end2 = '.'
! l_pert_boltz_efield_end1_boltz_efield_end2(1) = 0.0
! l_pert_boltz_efield_end1_boltz_efield_end2(2) = 0.0
! l_pert_boltz_efield_end1_boltz_efield_end2(3) = 0.0
! l_pert_boltz_norm_dist_end1_boltz_norm_dist_end2 = .false.
! l_pert_boltz_acc_thr_end1_boltz_acc_thr_end2 = 0.0 ! cm/s2
! l_pert_boltz_nstep_min_end1_boltz_nstep_min_end2 = 1
! l_pert_ph_mode_exclude_ranges_end1_ph_mode_exclude_ranges_end2 = -1
/
Input File:
(click on a parameter to get its description)
! This input file for PERTURBO was generated by generate_input.py script
& perturbo
! ***Mandatory parameters***
l_pert_calc_mode_end1_calc_mode_end2 = 'dynamics-pp'
l_pert_prefix_end1_prefix_end2 = ''
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 1 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 2 ) = 1
l_pert_boltz_kdim_end1_boltz_kdim_end2 ( 3 ) = 1
l_pert_ftemper_end1_ftemper_end2 = ''
! ***Optional parameters***
! l_pert_hole_end1_hole_end2 = .false.
! l_pert_boltz_de_end1_boltz_de_end2 = 1.0 ! meV
! l_pert_band_min_end1_band_min_end2 = 1
! l_pert_band_max_end1_band_max_end2 = 9999999
! l_pert_boltz_emin_end1_boltz_emin_end2 = -9999.0 ! eV
! l_pert_boltz_emax_end1_boltz_emax_end2 = 9999.0 ! eV
! l_pert_boltz_efield_end1_boltz_efield_end2(1) = 0.0
! l_pert_boltz_efield_end1_boltz_efield_end2(2) = 0.0
! l_pert_boltz_efield_end1_boltz_efield_end2(3) = 0.0
/