Skip to content

A solver for the coupled and decoupled electron and phonon Boltzmann transport equations.

License

Notifications You must be signed in to change notification settings

bostonceltics20/elphbolt

 
 

Repository files navigation

./logo/logo.png

elphbolt + superconda

elphbolt (short for electron-phonon Boltzmann transport) is a modern Fortran (2018 standard) suite of transport codes. It provides a solver for both the coupled and decoupled electron and phonon Boltzmann transport equations (BTEs). You can read about the methodology and implementation here: https://www.nature.com/articles/s41524-022-00710-0. In addition, you get the superconda app for solving the phonon-mediated superconducting properties within the Eliashberg formalism.

Using ab initio electron-phonon and 3- and 4-phonon interactions and a fully wave vector and electron band/phonon branch resolved formulation of the BTEs, the elphbolt app gives you the

  • phonon and electronic thermal conductivities;
  • electronic conductivity;
  • phonon and electronic contributions to the thermopower; and
  • effect of the mutual electron-phonon drag on the transport coefficients listed above;
  • effective thermoelectric transport coefficients for nanostructures (nanowires, nanoribbons, and thin-films).

Using ab initio electron-phonon and a fully wave vector and electron band/phonon branch resolved, Eliashberg formulation of superconductivity, the superconda app gives you the

  • anisotropic and isotropic Eliashberg spectral function and
  • phonon-mediated superconducting transition temperature.

To date (May 7, 2024), elphbolt / superconda has been used in the following works:

material(s)physics probedpublication
MoS2, silicene, & AlNelectron drag enhancement of phonon thermal conductivity in 2D materialshttps://doi.org/10.48550/arXiv.2405.02257
Ti2OX2 (X = F, Cl) MOenethermoelectric performanceJ. Appl. Phys. 135, 125106
Si, BAs, LiF, & GaNnew models of phonon-isotope interaction and temperature dependent 3+4ph limited thermal conductivityPhys. Rev. B 109, 165201
Si nanowireseffect of nanostructuring on drag and thermoelectric figure of merit, ZTIntl. J. Heat & Mass Trans. 225, 125385
GaN3+4 phonons and thin-film scattering limited thermal conductivityPhys. Rev. B 108, 235313
GaN & AlNdragPhys. Rev. B 107, 245202
MgB2superconductivity enhancementPhys. Rev. B 107, 184518
BAsdragPhys. Rev. B 107, L081202
DiamonddragMat. Tod. Phys 27, 100740
Sidragnpj Comp. Mat. 8, 28

Stylistically, elphbolt is designed to be simple, small, fast, and extensible. It uses an object-based procedural style, which allows fast development, while resulting in a rather compact source (~ 10k lines of code, generated using David A. Wheeler’s SLOCCount). The symmetries of the crystal are fully exploited and the transport active Fermi window is used to allow the sampling of extremely fine wave vector meshes needed for accurate solutions of the BTEs and Eliashberg equations. Parallelism is achieved through modern Fortran’s intrinsic coarrays feature that is fully supported by recent versions of both the gcc and intel compilers.

elphbolt currently works with the Quantum Espresso (https://www.quantum-espresso.org/) suite and its core module EPW (https://epw-code.org/) for the phonon quantities and the Wannier space information, respectively. An interface with all-electron exciting (https://exciting-code.org/) code is currently under construction.

elphbolt is a “free as in freedom” code distributed under the GNU General Public License (GPL) version 3. You can read more about the philosophy of software freedom here: https://www.gnu.org/philosophy/free-sw.en.html.

elphbolt is for all of the transport physics community. Feel free to fork and contribute. Create a pull request to incorporate your changes to this project. Tailor it to your own liking/needs and please pay it forward in the spirit of free software and open science. Let me know of bugs, suggestions for improvement, feature requests, criticism, and praises. You may use the Discussions section of this repository for this purpose. There is also a discord server for informal discussions about theory, set up, usage, extensions, maintenance, possible collaborations, etc. You might find me hanging out there from time to time. I’d love to have a coffee with you and talk physics there in the office-hour voice channel.

Documentation

The source is heavily commented and can be auto-documented with FORD (https://github.com/cmacmackin/ford). For installation of FORD, consult https://forddocs.readthedocs.io/en/latest/. To generate the documentation and the call graphs (you need graphviz for the latter), say ford projectfile.md. Then read ./documentation/index.html with your browser.

Install on HPC systems with gcc

1. Get compiler

You will need a recent version of gcc that supports Fortran 2018 features. Here I show how you can build it with spack (https://spack.io/). I suggest building with nvptx since that will allow you to use gpu acceleration later on. If you do not care for gpus at the moment, leave out the +nvptx bit in the following command.

spack install [email protected]+nvptx

I like to add the <path to spack build of gcc>/bin directory to my system $PATH. Alternatively, you can follow spack’s own recommendations for using its packages.

2. Get MPI

You need an MPI implementation. It could be MPICH or OpenMPI. The first is preferred.

3. Get Fortran package manager (fpm [v>=0.7])

Follow the instructions here: https://fpm.fortran-lang.org/install/index.html#install to install fpm. I, personally, like to build from source, as described here: https://fpm.fortran-lang.org/install/index.html#building-from-source.

4. Get OpenCoarrays

OpenCoarrays (http://www.opencoarrays.org) is an implementation of the coarrays functionalities. Follow its installation guide to build it on your system. I personally like to use its install script where I pass my compiler and MPI relared flags explicitly. So something like the following should work

./install.sh --with-fortran <path to>/gfortran \
--with-cxx <path to>/g++ \
--with-c <path to>/gcc \ 
--with-mpi <path to mpich installation directory>

Carefully read the output on the screen and add the paths to caf and cafrun to your $PATH.

5. Build elphbolt

Standard (no gpu)

For a cpu-only build and test with Fortran Package Manager (https://fpm.fortran-lang.org/), first say

sh install_blas+lapack.sh

This will build blas and lapack using a local copy of https://github.com/gha3mi/forblas and https://github.com/gha3mi/forlapack. You need to do this just once. The libraries will be placed in $HOME/.local/lib/.

source fpm_config_caf.sh; fpm install
fpm test test_*
fpm test bte_regression --runner="sh test/3C-SiC/fpm_run_bte_caf.sh"

The elphbolt and superconda apps will be available in your $HOME/.local/bin directory. They should both be directly callable from your shell. If not, add the above directory to our path.

Modify the fpm manifest file, fpm.toml, to suit your system. I’d appreciate any feedback.

Experimental method (with gpu)

For a cpu+gpu build with OpenACC (https://www.openacc.org/), the only difference from the above is that you need to source a different file before the install:

source fpm_config_caf_openacc.sh; fpm install

Here I have assumed that you have already done blas and lapack building step. The testing commands are the same as before.

Examples

A full example for cubic silicon is provided. More examples will be added over time.

Workflow

This is a transport code. And it comes after doing some DFT, DFPT, and Wannier calculations. Users of the popular ShengBTE (https://bitbucket.org/sousaw/shengbte/src/master/) code will find that just one extra step (an EPW calculation) on top of the ShengBTE workflow is needed to obtain all the input files necessary for a coupled BTEs calculation with elphbolt. You can, however, calculate just a decoupled phonon or electron BTE, or Eliashberg equations if you so choose. For these, only a subset of the input files will be needed. For example, if you want to calculate just a decoupled electron BTE or Eliashberg equations, then you do not need to provide the third order force constants. Similarly, if you are interested in just a phonon BTE without the phonon-electron interactions, then the Wannier parameters are not required.

Following is the full set of input files:

Input file

The input file - input.nml - contains the information about the crystal and the various parameters of the calculation. A full description of all the input parameters is given in the next section. Also take a look at the input.nml file for the cubic silicon example.

Second order interatomic force constants

This comes out of the usual ph.x and q2r.x calculation from Quantum Espresso. This file is needed to calculate phonon quantities and must be named espresso.ifc2.

Third order interatomic force constants

This code supports the thirdorder.py, dense d3q, and the sparse d3q formats of the third order force constants file. For the d3q interface, the sparse format is strongly recommended. Check out https://bitbucket.org/sousaw/thirdorder/src/master and https://anharmonic.github.io/d3q/ to learn more.

If you seek a solution of the decoupled phonon BTE or the coupled electron-phonon BTEs, at least one of these files, named FORCE_CONSTANTS_3RD, mat3R, or mat3R.sparse for the three supported formats, respectively, must be provided.

4-phonon scattering rates

These are the 4-phonon scattering rates out of the code FourPhonon (https://github.com/FourPhonon/FourPhonon). You must pass these to elphbolt if you want to include 4-phonon scattering in the calculation. To turn on the 4-phonon functionality, look up the keys fourph and fourph_mesh_ref in the Namelist numerics below. Take special care when generating the 4-phonon scattering rates in the FourPhonon code for use in elphbolt. First off, you must choose the wave vector mesh in FourPhonon such that it scales to the phonon wave vector mesh (qmesh) of elphbolt by a non-zero integer. Secondly, you must pass the irreducible 4-phonon scattering rates data file to elphbolt as FourPhonon_BTE.w_4ph_T<temperature>. For example, for a $920$ K calculation, the file name should be FourPhonon_BTE.w_4ph_T0.920E+03. Additionally, you must prepend at the top of the file the total number of vectors in the irreducible Brillouin zone (IBZ) of the FourPhonon calculation. Thirdly, you must provide the file FourPhonon_BTE.qpoint_full. Prepend the total number of wave vectors in the full Brillouin zone (FBZ) of the FourPhonon calculation. Internally, elphbolt will interpolate the scattering rates calculated by FourPhonon on a coarse, say $10× 10× 10$, mesh on to a fine qmesh, say $60× 60× 60$ for a fourph_mesh_ref value of $6$. It is always a good idea to plot the interpolated fine mesh scattering rates, ph.W_rta_4ph, to compare against the coarse mesh ones from FourPhonon. It is also good to remember that this is a rather crude way to approximate the effect of the 4-phonon scattering because of the (in general tri-)linear interpolation method used and the fact that the corresponding 4-phonon in-scattering correction is not accounted for in the iterative solver.

Wannier space information

These are required if you want to solve a decoupled electron BTE, include phonon-electron interaction in the decoupled phonon BTE, Eliashberg equations for the phonon-mediated superconducting properties, or the coupled electron-phonon BTEs. You have the option of choosing between two external Wannier calculators.

epw

These include the files rcells_k, rcells_q, rcells_g, wsdeg_k, wsdeg_q, and wsdeg_g which must be printed out of an EPW calculation. We will also need the files epmatwp1 and epwdata.fmt, both of which are outputted by EPW after the Bloch -> Wannier calculation step. The first contains the Wannier space electron-phonon matrix elements and the second contains the Wannier space dynamical matrix and Hamiltonian. A couple of modified source files can be found in EPW/src/ directory which are needed to correctly print these quantities out during EPW’s Bloch -> Wannier calculation step. The user must recompile their EPW code following the replacement with these modified source codes. At this time, EPW v5.3.1 (shipped with Quantum Espresso v6.7MaX_Release) must be used for this purpose.

Note that elphbolt can only read the epwdata.fmt file only if the EPW calculation is performed with the flag lifc set to .false.. I thank Gui-Lin Zhu for pointing this out. In any case, I strongly recommend that the user generates the relevant quantites from elphbolt along high-symmetry paths and compares directly against EPW (see next section).

exciting

[I will list here the input files from exciting soon.]

High symmetry electron and phonon wave vector path and initial electron wave vector

These are required if you want to plot the electronic bands, phonon dispersions, and the electron-phonon matrix elements along high symmetry paths in the Brillouin zone.

You need to provide a wave vector path file named highsympath.txt (to be used as both the electron and phonon wave vectors) and an initial electron wave vector file named initialk.txt if you want the electron bands, phonon dispersions, and electron-phonon matrix elements calculated along the path. The first line of highsympath.txt must be an integer equaling the number of wave vectors in the path. This should be followed by the same number of rows of wave vectors expressed in crystal coordinates (fractions of the reciprocal lattice vectors). The initialk.txt file must simply contain one wave vector in crystal coordinates.

Bespoke screening for the isotropic Eliashberg spectral function

If needed (see flag use_external_eps below), the isotropic Eliashberg spectral function can be screened with a bespoke dielectric function. In this case, a file named eps_squared must be placed into the run directory. This will contain a single column of data, giving the modulus-square of the dielectric function at each point in the equidistant phonon energy mesh (see flag domega below).

Description of input.nml

For the elphbolt app, there are 5 Namelists in the input.nml file: allocations, crystal_info, electrons, numerics, and wannier. For the superconda app, there is an additional Namelist – superconductivity. Users of the ShengBTE code will find the format of this file familiar. Below the keys for each Namelist are described.

allocations

keyTypeDefaultDescription
numelementsInteger0Number of types of basis atoms.
numatomsInteger0Number of basis atoms.

crystal_info

keyTypeDefaultDescription
nameString“Crystal”Name of material.
elementsString array of size numelements‘X’Elements in the basis.
atomtypesInteger array of size numatoms0Integer tagging unique elements in the basis.
massesReal array of size numelements-1.0Masses of the basis atoms in amu. If masses are not provided, set VCA or DIB to .True..
VCALogical.False.Use isotopic mix for basis atom masses?
DIBLogical.False.Use dominant isotope mass for basis atom masses
lattvecs3 x 3 real array0.0Lattice vectors in Cartesian coordinates in units of nm. If twod is .True., the crystal must be positioned on the x-y plane and the third lattice vector must be of the form (0 0 layer thickness).
basis3 x numatoms real array0.0Atomic basis vectors in crystal coordinates (i.e. fraction of lattvecs).
polarLogical.False.Is the system polar?
born3 x 3 x numatoms rank-3 real tensor0.0Born effective charge tensor (from phonon calculation).
epsilon3 x 3 rank-2 real tensor0.0High-frequency dielectric tensor (from phonon calculation).
read_epsiloninfReal.False.Read high-frequency dielectric constant from input?
epsiloninfReal0.0High-frequency scalar dielectric constant. If read_epsiloninf is .True. (.False.), this is read from the input (set equal to the trace-average of epsilon). Currently this quantity is not used in any calculation.
epsilon0Real0.0Static scalar dielectric constant. Used for screening electron-charged impurity interaction, if included. Look up elchimp under the Namelist numerics. For the default value of epsilon0, the electron-charged interaction blows up.
TReal-1.0_dpCrystal temperature in K.
twodLogical.False.Is the system (quasi)-2-dimensional? See description of lattvecs also.
subs_massesReal array of size numelements0.0Masses of substitution atoms in amu. This is needed if phsubs is .True. See table of keys for Namelist numerics.
subs_concReal array of size numelements0.0Concentration of the substitutional atoms in cm-3 (or cm-2 if twod is .True.). This is needed if phsubs is .True. See table of keys for Namelist numerics.
bound_lengthReal1e12 mmCharacteristic sample length for boundary scattering. This is needed if phbound or elbound is .True. See table of keys for Namelist numerics.
specfacReal0.0Specularity factor for phonon-thin-film scattering

electrons

keyTypeDefaultDescription
spindegInteger2Spin degeneracy of the bands.
enrefReal-999999.99999Electron referenc energy in eV. This is the center of the transport active window. Also see description for fsthick. See table of keys for Namelist ‘numerics’.
chempotReal-999999.99999Chemical potential in eV.
metallicLogical.False.Is the system metallic?
numbandsInteger0Total number of electronic Wannier bands.
indlowbandInteger0Lowest transport band index.
indhighbandInteger0Highest transport band index.
indlowconductionInteger0Lowest conduction band index. For metallic .False., this or indhighvalence must be provided.
indhighvalenceInteger0Highest valence band index. For metallic .False., this or indlowconduction must be provided.
dopingtypeCharacter‘x’Type of doping (‘n’ or ‘p’). This is needed for runlevel 0 only. See table of keys for Namelist ‘numerics’.
scissorReal0.0Scissor operator for conduction bands in eV.
numconcInteger100Number of carrier concentration points. This is needed for runlevel 0 only. See table of keys for Namelist ‘numerics’.
conclistReal array of size numconc0.0List carrier concentrations in cm-3 (or cm-2 if twod is .True.). This is needed for runlevel 0 only. See table of keys for Namelist ‘numerics’.
numTInteger100Number of temperature points. This is needed for runlevel 0 only. See table of keys for Namelist ‘numerics’.
TlistReal array of size numT100List of temperatures in K. This is needed for runlevel 0 only. See table of keys for Namelist ‘numerics’.
ZnReal0.0Ionization number of donor impurities. This is needed only when elchimp is .True. and metallic is .False. See table of keys for Namelist ‘numerics’.
ZpReal0.0Ionization number of acceptor impurities. This is needed only when elchimp is .True. and metallic is .False. See table of keys for Namelist ‘numerics’.

numerics

keyTypeDefaultDescription
qmeshInteger array of size 31 1 1Phonon wave vector mesh (q).
mesh_refInteger1Electron wave vector mesh (k) refinement factor with respect to the phonon mesh.
fsthickReal0.0Fermi surface thickness in eV.
datadumpdirString”./”Runtime data dump directory.
read_gq2Logical.False.Read electron-phonon (irreducible wedge q) vertices from disk?
read_gk2Logical.False.Read electron-phonon (irreducible wedge k) vertices from disk?
read_VLogical.False.Read phonon-phonon (irreducible wedge q) vertices from disk?
read_WLogical.False.Read phonon-phonon (irreducible wedge q) transition probabilities from disk?
W_OTFLogical.True.Calculate phonon-phonon transition probabilities on-the-fly? This will prevent disk-dump.
tetrahedraLogical.False.Use the analytic tetrahedron method instead of the triangular method for 3d delta function evaluation?
fourphLogical.False.Include 4-ph scattering at the RTA level?
fourph_mesh_refInteger1Mesh refinement factor of elphbolt’s phonon wavectors with respect to external (FourPhonon code) 4-ph calculation.
pheLogical.False.Include phonon-electron interaction in phonon BTE?
Y_OTFLogical.True.Calculate phonon-electron transition probabilities on-the-fly? This will prevent disk-dump.
phisoLogical.False.Include phonon-isotope interaction in phonon BTE?
phiso_1b_theoryString‘DIB-1B’Choose between ‘Tamura’ (1st Born on top of virtual crystal approximation) or ‘DIB-1B’ (1st Born on top of dominant isotope background).
phsubsLogical.False.Include phonon-substitution interaction in phonon BTE? If .True., look up subs_masses and subs_conc under the Namelist crystal_info.
phboundLogical.False.Include phonon-boundary interaction in phonon BTE? If .True., look up bound_length under the Namelist crystal_info.
onlyphbteLogical.False.Calculate phonon BTE without electron drag?
elchimpLogical.False.Include electron-charged impurity scattering in electron BTE? If .True., look up epsilon0 under Namelist crystal_info and Zn and Zp under Namelist electrons.
elboundLogical.False.Include electron-boundary interaction in electron BTE? If .True., look up bound_length under the Namelist crystal_info.
onlyebteLogical.False.Calculate electron BTE without phonon drag?
dragLogical.True.Include electron and phonon drag term in the phonon and electron BTE, respectively.
maxiterIntger50Maximum number of iteration steps for the BTE(s).
conv_thresReal1e-4Relative convergence threshold for the BTE(s).
runlevelInteger1Control for the type of calculation. 0: Calculate table of chemical potentials for a given doping type, temperature range, and carrier concentrations. Look up dopingtype, numconc, conclist, numT, and Tlist under Namelist electrons. 1: Transport calculation(s). 2: Post-processing results to calculate the spectral transport coefficients. 3: Superconductivity calculation, look up keys of the Namelist superconductivity.
plot_along_pathLogical.False.Plot Wannier interpolated quantities along high symmetry wave vectors?
ph_en_minReal0.0Lower bound of equidistant phonon energy mesh in eV. Only needed for runlevel 2.
ph_en_maxReal1.0Upper bound of equidistant phonon energy mesh in eV. Only needed for runlevel 2.
ph_en_numInteger100Number of equidistant phonon energy mesh points. Only needed for runlevel 2.
el_en_minReal-10.0Lower bound of equidistant electron energy mesh in eV. Only needed for runlevel 2.
el_en_maxReal10.0Upper bound of equidistant electron energy mesh in eV. Only needed for runlevel 2.
el_en_numInteger100Number of equidistant electron energy mesh points. Only needed for runlevel 2.
ph_mfp_nptsInteger100Number of equidistant mean-free-path points for cumulative transport coefficients.
ph_abs_q_nptsInteger100Number of equidistant absolute wave vector points for cumulative transport coefficients.
use_Wannier_ifc2sLogical.False.Use 2nd order force constants from the Wannierized data?
solve_bulkLogical.True.Do you want to solve the BTE for the bulk-system, i.e. not using nanostructures algorithm.
solve_nanoLogical.False.Do you want to compute effective thermoelectric properties for highly symmetric nanostructure? See description of nano block.

wannier

keyTypeDefaultDescription
coarse_qmeshInteger array of size 30 0 0Coarse phonon wave vector mesh employed in the Wannier calculation. This must match the q-mesh in the Quantum Espresso second order force constants file.
Wannier_engine_nameString‘epw’Choose external code (‘epw’ or ‘exciting’) for Wannierized quantities.

superconductivity

keyTypeDefaultDescription
mustarReal0.0Dimensionless Coulomb pseudopotential parameter.
domegaReal0.0 eVEquidistant phonon energy mesh spacing.
matsubara_cutoffInteger0Matsubara energy cutoff as a factor of the highest phonon energy.
qp_cutoffInteger0Quasiparticle energy cutoff as factor of the highest phonon energy.
isotropicLogical.False.Use the isotropic (fast!) version of the Eliashberg theory?
use_external_epsLogical.False.Use user generated modulus-squared dielectric function to screen the Eliashberg spectral function. For now, only works for the isotropic theory.
TstartReal0.0 KStarting point of the temperature sweep.
TendReal0.0 KEnd point of the temperature sweep.
dTReal0.0 KTemperature difference used in temperature sweep.
print_aniso_gap_FSLogical.False.Print out the anisotropic gap function at the Fermi surface?

nano

keyTypeDefaultDescription
nsysInteger-1Number of nanostructures to tackle
tagCharacter(nsys)‘xx’Tags to choose the kind of nanostructures we are dealing with in each case (‘nw’: nanowire; ‘nr’: nanoribbon; ‘tf’: thin-film)
limitReal(nsys)-1Limit length of the nanostructures in nm (radius for nw, width for nr, and thickness for tf)
taxisReal(nsys,3)0 0 0Direction in which transport will be computed (for tf and nr it must be perpendicular to the normal vector)
naxisReal(nsys,3)0 0 0Vector defining the normal of the system for tf and nr (only fill for those cases)

Description of output files

The code produces a large amount of data. Here, we provide a description of the various types output files.

Below I(F)BZ = irreducible (full) Brillouin zone; RTA = relaxation time approximation; ch. imp. = charged impurities; bound = boundary; subs = substitution; numbands = number of electron bands; and numbranches = number of phonon branches.

Zero temperature data

File nameDirectoryUnitsDescription
*.reclattvecs./nm1Reciprocal lattice vectors.
el.fbz2ibz_map./noneFBZ to IBZ mappings.
el(ph).dos./eV-1Band resolved electronic (phononic) density of states. numbands (numbranches) columns of reals.
el(ph).ens_i(f)bz./eVI(F)BZ electronic (phononic) band energies. numbands (numbranches) columns of reals.
el.inwindow_states_ibz./noneIBZ electronic states (wave vector index, band index) within the transport active window. 2 columns of integers.
el(ph).vels_i(f)bz./Kms-1I(F)BZ electronic (phononic) band (branch) velocities. In each row, there are 3 (Cartesian direction) sets of numbands (numbranches) numbers.
el(ph).wavevecs_i(f)bz./crystalI(F)BZ electronic (phononic) wave vectors. For the electrons, these are only within the transport window.
el.ens_kpath./eVElectron energies along the given k-path.
ph.ens_qpath./eVPhonon energies along the given q-path.
gk2.istate*datadumpdir/g2/eV2Squared e-ph (1-phonon) vertices for every IBZ electron state. Binary.
gq2.istate*datadumpdir/g2/eV2Squared e-ph (1-phonon) vertices for every IBZ electron state. Binary.
Vm2.istate*datadumpdir/V2/eV2Å-6amu-3Squared ph-ph (3-phonon) vertices for every IBZ phonon state. Binary.
el.W_rta_elbound./THzIBZ RTA el-bound scattering rates. numbands columns of reals.
ph.W_rta_phiso(bound)[subs]./THzIBZ RTA ph-iso (bound) [subs] scattering rates. numbranches columns of reals.
gk_qpath./eVAbsolute value of the e-ph matrix elements (averaged over the degenerate bands and branches) for the given k-vector and q-path.
a2F.istate*datadumpdir/sc/noneAnisotropic Eliashberg spectral function for every IBZ state. Binary.
omegas./eVEquidistant phonon energy mesh.
a2F_iso./noneIsotropic Eliashberg spectral function on the equidistant phonon energy mesh.
a2F_iso_branch_resolved./nonePhonon branch resolved isotropic Eliashberg spectral function on the equidistant phonon energy mesh.
cum_lambda_iso_branch_resolved./nonePhonon branch resolved standard, isotropic electron-phonon coupling parameter on the equidistant phonon energy mesh.
quasiparticle_ens./eVEquidistant electronic quasiparticle energy mesh.

Finite temperature data

File nameDirectoryUnitsDescription
Xchimp.istate*datadumpdir/mu*/X/THzTransition probability for e-ch. imp. processes for every IBZ electron state. Binary.
Xminus[plus].istate*datadumpdir/mu*/X/THzTransition probability for e-ph (1-phonon) minus [plus] processes for every IBZ electron state. Binary.
Y.istate*datadumpdir/mu*/Y/THzTransition probability for ph-e (1-phonon) processes for every IBZ phonon state. Binary.
Wm[p].istate*datadumpdir/T*/W/THzTransition probability for ph-ph (3-phonon) minus [plus] processes for every IBZ phonon state. Binary.
el.W_rta_eph[chimp]./T*/THzIBZ RTA el-ph [ch. imp.] scattering rates. numbands columns of reals. Identically zero for bands outside the transport window.
ph.W_rta_3ph(4ph)[phe]./T*/THzIBZ RTA 3ph (4ph) [ph-e] scattering rates. numbranches columns of reals.
drag[nodrag]_el_sigma_*./T*/Ω-1m-1Band resolved (_<integer>) and total (_tot) charge conductivity tensor at every iteration step.
drag[nodrag]_el_alphabyT_*./T*/Am-1K-1Band resolved (_<integer>) and total (_tot) electronic Peltier(-ish) coefficient tensor at every iteration step.
drag[nodrag]_el_kappa0_*./T*/Wm-1K-1Band resolved (_<integer>) and total (_tot) electronic thermal conductivity (zero E-field) tensor at every iteration step.
drag[nodrag]_el_sigmaS_*./T*/Am-1K-1Band resolved (_<integer>) and total (_tot) electronic thermopower times conductivity tensor at every iteration step.
drag_ph_alphabyT_*./T*/Am-1K-1Branch resolved (_<integer>) and total (_tot) phonon Peltier(-ish) coefficient tensor at every iteration step.
drag[nodrag]_ph_kappa_*./T*/Wm-1K-1Branch resolved (_<integer>) and total (_tot) phonon thermal conductivity tensor at every iteration step.
RTA{nodrag}(partdcpl)[drag]_I0_*./T*/nmeVK-1Band resolved (_<integer>) and total (_tot) electronic response function to ∇ T-field in the RTA {dragless} (partially decoupled) [drag] theory.
RTA{nodrag}(partdcpl)[drag]_J0_*./T*/nmCBand resolved (_<integer>) and total (_tot) electronic response function to E-field in the RTA {dragless} (partially decoupled) [drag] theory.
RTA{nodrag}[drag]_F0_*./T*/nmeVK-1Branch resolved (_<integer>) and total (_tot) phononic response function to ∇ T-field in the RTA {dragless} [fully coupled] theory.
drag_G0_*./T*/nmCBranch resolved (_<integer>) and total (_tot) phononic response function to E-field in fully coupled theory.
iso_quasiparticle_DOS.T*./noneScaled quasiparticle density of states on the equidistant electronic quasiparticle energy mesh.
iso_quasiparticle_Delta.T*./eVIsotropic superconducting gap on the equidistant electronic quasiparticle energy mesh.
aniso_quasiparticle_Delta_FS.T./eVAnisotropic superconducting gap on the Fermi surface for each IBZ electronic state within the Fermi window. The first column gives the number of FBZ images of the IBZ point.

Nanostructure data

File nameDirectoryUnitsDescription
nano_info./-/nm/-/-/-/-/-/-Nanostructure information tag(i)/limit(i)/taxis(i,:)/naxis(i,:)
Sph./eV/Kms-1/Kms-1/Kms-1/-Nanostructure suppression factor for phonons in FBZ energy(i,ib)/vg(i,ib,:)/Sph(i,ib,:)
Sel./eV/Kms-1/Kms-1/Kms-1/-Nanostructure suppression factor for electrons in FBZ energy(i,ib)/vg(i,ib,:)/Sel(i,ib,:)
nano_drag[nodrag]_el_sigma_*./T*/Ω-1m-1Band resolved (_<integer>) and total (_tot) charge conductivity tensor at every iteration step.
nano_drag[nodrag]_el_alphabyT_*./T*/Am-1K-1Band resolved (_<integer>) and total (_tot) electronic Peltier(-ish) coefficient tensor at every iteration step.
nano_drag[nodrag]_el_kappa0_*./T*/Wm-1K-1Band resolved (_<integer>) and total (_tot) electronic thermal conductivity (zero E-field) tensor at every iteration step.
nano_drag[nodrag]_el_sigmaS_*./T*/Am-1K-1Band resolved (_<integer>) and total (_tot) electronic thermopower times conductivity tensor at every iteration step.
nano_drag_ph_alphabyT_*./T*/Am-1K-1Branch resolved (_<integer>) and total (_tot) phonon Peltier(-ish) coefficient tensor at every iteration step.
nano_drag[nodrag]_ph_kappa_*./T*/Wm-1K-1Branch resolved (_<integer>) and total (_tot) phonon thermal conductivity tensor at every iteration step.
nano_RTA{nodrag}(partdcpl)[drag]_I0_*./T*/nmeVK-1Band resolved (_<integer>) and total (_tot) electronic response function to ∇ T-field in the RTA {dragless} (partially decoupled) [drag] theory.
nano_RTA{nodrag}(partdcpl)[drag]_J0_*./T*/nmCBand resolved (_<integer>) and total (_tot) electronic response function to E-field in the RTA {dragless} (partially decoupled) [drag] theory.
nano_RTA{nodrag}[drag]_F0_*./T*/nmeVK-1Branch resolved (_<integer>) and total (_tot) phononic response function to ∇ T-field in the RTA {dragless} [fully coupled] theory.
nano_drag_G0_*./T*/nmCBranch resolved (_<integer>) and total (_tot) phononic response function to E-field in fully coupled theory.

Note: For the temperature dependent quantites each columnn refers to the respective nanostructure from input.

Postprocessing (runlevel 2)

File nameDirectoryUnitsDescription
RTA{nodrag}(partdcpl)[drag]_{([iterated_el])}_sigma_spectral_*./T*/Ω-1m-1eV-1Band resolved (_<integer>) and total (_tot) spectral charge conductivity tensor in the RTA {([iterated])} {dragless} (partially decoupled) [drag] theory.
RTA{nodrag}(partdcpl)[drag]_{([iterated_el])}_alphabyT_spectral_*./T*/Am-1K-1eV-1Band resolved (_<integer>) and total (_tot) spectral electronic Peltier(-ish) coefficient tensor in the RTA {([iterated])} {dragless} (partially decoupled) [drag] theory.
RTA{nodrag}(partdcpl)[drag]_{([iterated_el])}_kappa0_spectral_*./T*/Wm-1K-1eV-1Band resolved (_<integer>) and total (_tot) spectral electronic thermal conductivity (zero E-field) tensor in the RTA {([iterated])} {dragless} (partially decoupled) [drag] theory.
RTA{nodrag}(partdcpl)[drag]_{([iterated_el])}_sigmaS_spectral_*./T*/Am-1K-1eV-1Band resolved (_<integer>) and total (_tot) spectral electronic thermopower times conductivity tensor in the RTA {([iterated])} {dragless} (partially decoupled) [drag] theory.
drag_iterated_ph_alphabyT_spectral_*./T*/Am-1K-1eV-1Branch resolved (_<integer>) and total (_tot) spectral phonon Peltier(-ish) coefficient tensor in the iterated drag theory.
RTA{nodrag}[drag]_{[iterated_ph]}_kappa_spectral_*./T*/Wm-1K-1eV-1Branch resolved (_<integer>) and total (_tot) spectral phonon thermal conductivity tensor in the RTA {[iterated]} {dragless} [drag] theory.
el[ph].en_grid./eVUniform electron [phonon] energy mesh for spectral coefficient calculation.

About

A solver for the coupled and decoupled electron and phonon Boltzmann transport equations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Fortran 98.0%
  • Julia 1.1%
  • Other 0.9%