Examples¶
Silicon from first-principles¶
Here a short example of how to calculate the transport coefficients from a VASP output file (typically vasprun.xml) is presented.
Preparation¶
Start with the param.yml
,
bandparam.yml
located in the tests/13 directory.
In the same directory a sample vasprun.xml
file is
also provided.
Copy these files into an input directory in the directory where you want to execute T4ME.
The general parameters¶
Here follows a brief explanation of the general parameters
that need attention. They are already specified in the
sample param.yml
file so the user should not have to
change this for a test run. All other parameters should at
this point not need to be touched.
dispersion_interpolate: False
We do not want to interpolate the input at this step.
dispersion_velocities_numdiff: True
We need to calculate the group velocities of the electrons as this is not supplied by VASP by default.
transport_calc: True
Calculate the transport coefficients.
transport_method: "numerick"
Integrate numerically in k-space.
transport_integration_method: "trapz"
Used trapezoidal integration.
transport_chempot_min: -0.4
The minimum chemical potential to sample, in eV.
transport_chempot_max: 1.0
The maximum chemical potential to sample, in eV.
transport_chempot_samples: 20
How many samples do you want between transport_chempot_min
and transport_chempot_max
.
Computational time and storage may vary depending on
how this parameter is set.
transport_use_analytic_scattering: False
Use density-of-states models for the electron scattering.
dos_integrating_method: "trapz"
In order to calculate the scattering, it is necessary to calculate the density-of-states. Here this is done by using the trapezoidal integration with the delta function approximated by a Gaussian.
dos_smearing: 0.1
The smearing factor in eV used for the Gaussian approximation of the delta function. This needs to be sufficiently big in order for the density-of-states to converge, but also in order for the scattering data to have a smooth onset at the carrier energy. It is recommended that this, for calculations of scattering properties is not set below 0.1 eV.
temperature_min: 300
The minimum temperature in K.
temperature_max: 300
The maximum temperature in K.
temperature_steps: 1
The number of temperature steps between temperature_min
and temperature_max
.
e_fermi: True
Set the zero in energy to Fermi level supplied by the
first-principle code, here VASP. The transport_chempot_min
and transport_chempot_max
parameters are thus set with
reference to the shifted grid where the zero in energy is
usually at the top valence band.
read: vasp
Read data from VASP output files, here vasprun.xml
.
symprec: 1e-6
The symmetry cutoff used to detect symmetry. Should somewhat match with the value used in VASP. Passed along to Spglib to generate the irreducible to full Brillouin zone mapping.
onlytotalrate: True
Only store the total concatenated relaxation time arrays. Saves memory.
The band parameters¶
Here follows a brief explanation of the band parameters
that need attention. They are already specified in the
sample bandparam.yml
file so the user should not have
to change this for a test run. All other parameters should at
this point not need to be touched.
Band 1-:
Tells the reader that it should apply all consecutive parameters to all the bands in the supplied system.
select_scattering: [0,0,0,0,0,0,0,0,0,0,0,1]
Only use constant scattering.
tau0_c: 100
The value of the constant relaxation time in fs.
Execution¶
After all parameters have been set (should only be necessary to copy files as stated before) the transport coefficients can be calculated by executing
python t4me.py
During execution the file info.log
in the directory output
can be inspected in order to assess progress
and that everything works as expected.
Output¶
On completion the transport coefficients can be found in the output directory.