Data for "Multiscale ensemble Monte Carlo of transport and gas sensing in monolayer MoS2"

Lado Filipovic, Institute for Microelectronics, TU Wien. Licence: CC-BY 4.0.

This record contains the simulation outputs behind every figure and table of the submitted manuscript and its supplementary notes S1 to S5, the input decks and drivers that produced them, and the inputs and raw outputs of the first-principles calculations from which the transport model takes its parameters. Version 1 of this record (submitted manuscript) contained the outputs of the single-valley transport model with calibrated deformation potentials; those files are kept here under emc/single_valley/ for comparison.

Software: ViennaEMC (https://github.com/ViennaTools/ViennaEMC, header-only C++17, the monolayer-MoS2 model of examples/singleLayerMoS2/), Quantum ESPRESSO 7.3.1 (pw.x, ph.x with the Allen-Heine-Cardona electron-phonon output, pp.x, projwfc.x), EPW 5.8, Wannier90 3.1, the Bader analysis program of Henkelman et al. (Linux binary, bader_lnx_64), Python 3 with numpy and matplotlib for the figures. Pseudopotentials: PseudoDojo nc-sr-04 PBE standard (Mo, S, N, O, H) and, for the PAW geometry of the K-Q study, the pslibrary PAW set.

emc/

Ensemble Monte Carlo outputs. Units are given in the file headers. Standard errors (SE) are the spread over independent random seeds divided by the square root of their number.

figure_data/ The files read by scripts/make_paper_figures.py and scripts/make_supp_figures.py (main-text figures 2 to 9, S2, S6 and S7):

  • mu_T_substrate_8seeds.txt: mobility versus temperature (150 to 400 K) for the suspended layer and on hBN, SiO2, HfO2, Al2O3 and CaF2 at n_s = 1e12 cm^-2, means and SE over 8 seeds (Fig. 2, Fig. 4a). mu_T_substrate.txt: the same means without SE.
  • emc_vfield_intrinsic_4seeds.txt: drift velocity versus field of the suspended layer, 4 seeds (Fig. 6a); emc_vfield.txt: the same without SE.
  • emc_device_vfield.txt: drift velocity versus field of the HfO2 device stack (screening at 1e13 cm^-2, N_it = 1e12 cm^-2), 4 seeds; input of the reduced device model.
  • emc_mu_vs_nimp.txt: mobility of the HfO2 stack versus charged-impurity density, 4 seeds.
  • emc_mu_vs_density_hfo2.txt: mobility of the HfO2 stack versus sheet density (Fig. 4b).
  • emc_sensitivity_300K.txt: the sensitivity variants of Table 6, 4 seeds each.
  • emc_sensor_response.txt: sensor transduction S = sigma0/sigma - 1 for NO2 and NH3 versus coverage at the 3e12 cm^-2 baseline, means and seed-paired SE over 8 seeds (Figs. 8, S7). emc_sensor_response_n0_1e12.txt: the same at the 1e12 cm^-2 baseline (the acceptor branch depletes the channel above coverage 0.4 and is not used).
  • emc_ambient_c1c2.txt: ambient (O2) conductivity model, coverage, density, mobility and conductivity versus O2 pressure (Fig. 7).
  • liu2014_gas.txt, late2013_gas.txt: digitised measured responses used in Figs. 8 and S7.

production_v31/ The complete outputs of the runs of the revised transport model (cluster array of 15 to 16 September 2026, model version 3.1: the version 3 model with the corrected deflection-angle sampler of the two-dimensional polar channel, see drivers/emcFroehlichInteractionSingleLayer.hpp; the outputs of the version 3 array of 12 September, which differ by 2 to 8 per cent in the mobilities, are not included): the files above in their original form, plus twovalley_vE.txt (velocity, valley occupation and per-valley velocities versus field, suspended and HfO2 stack, 4 seeds), muT_unscreened_eqk265.txt and muT_unscreened_eqk118.txt (mobility versus temperature with the polar coupling unscreened, Q valleys at 265 and at 118 meV, 8 seeds; the comparison series of Table S9 and Fig. S6), the density and substrate study (density_substrate_capstone.log) and the ambient model log (ambient_c1c2.log).

single_valley/ Outputs of the single-valley transport model: *_singlevalley.txt with the computed constant couplings (first revision) and *_calibrated_kernel.txt with the calibrated literature couplings (submitted version). Same file formats as figure_data/.

device_sweep/ Direct three-dimensional self-consistent device simulations (Fig. 5). jobs3d.txt lists the 17 bias points (name, V_g, V_ds, seed, simulated time, transient and averaging windows in ns); sw3d/<name>/ holds for each point the run log with the Ramo current and its block standard error, the summary file and the averaged sheet density and potential profiles along the channel; device_crosscheck_v31.txt is the comparison with the reduced model.

drivers/ The ViennaEMC drivers and parameter headers that produced the outputs: parameterTwoValley.hpp (transport model of the revised manuscript), parameterTwoValleyV2.hpp (the constant-coupling intermediate version), parameterKaasbjerg.hpp (single-valley transport model), parameterPilotto.hpp (two-valley parameter set used for the K-Q sweep of Note S1), parameterKernelSelect.hpp (compile-time switch), the two scattering classes added for the revision, the drivers of every run, the build script and the SLURM job scripts.

dfpt/

First-principles calculations. All with PBE, norm-conserving PseudoDojo pseudopotentials, 90 Ry cutoff (60 Ry for the adsorbates), a 12x12x1 mesh, the relaxed lattice constant 3.185 A and sulphur height 1.5625 A, in a cell of height 6.33 a.

couplings/ Electron-phonon matrix elements of the direct chain (ph.x, Allen-Heine-Cardona output) at explicit phonon wavevectors: runs/ahc_q<n>/ for the electron at K (n = 1 to 21; the wavevectors are listed in inputs/inputs_mos2/qlist_ahc.txt) and runs/ahc_q_q<n>/ for the electron at Q (n = 1 to 13, qlist_ahc_q.txt). Each directory contains the input files, the dynamical matrix (mos2a.dyn), the compressed phonon output and the matrix elements ahc_gkk_iq1.bin (complex128, Fortran order (nbnd, 4, 9), Ry/bohr, bands 14 to 17, electron at the nscf wavevector). ahc_couplings_output.txt and ahc_couplings_q_output.txt are the mode-resolved couplings produced by inputs/inputs_mos2/ahc_couplings.py; the first-order K-K' couplings come from ahc_firstorder.py --nearK. README.md documents the extraction and the tables of Supplementary Note S2, including the periodic-slab artefact of this chain at small wavevector.

epw/ The Wannier-interpolation chain: epw1.in, epw2.in (inputs), epw1.out.gz (coarse couplings, Wannierisation, interpolated couplings at k = K along Gamma-M, prtgkk block), mos2.wout, mos2_band.dat (Wannier bands), phband.freq (interpolated phonons), epw_gkk_analysis_output.txt (mode-resolved interpolated couplings, script epw_gkk_analysis.py), epw2.out (Boltzmann mobility, SERTA and IBTE, on 200x200 meshes at 1e12 cm^-2, the run of Table S9 and Fig. S6), inv_taucb.fmt (scattering rates per state and temperature of that run), IBTEvel_sup.fmt (weights, velocities and energies of its fine mesh), epw_mobility_200.txt (its SERTA mobility summed over all states), epw2_120.out and epw_mobility_120.txt (the earlier 120x120 run at 1e13 cm^-2), ph_stageA.out.gz (DFPT on the 12x12x1 mesh with the dielectric tensor and Born charges). Note: EPW's printed mobilities count only states above the Fermi level, which matters at 1e13 cm^-2 (degenerate) and not at 1e12 cm^-2; the mobility with all states is obtained from inv_taucb.fmt and IBTEvel_sup.fmt with inputs/inputs_mos2/epw_mobility_allstates.py.

kq_separation/ The K-Q valley separation study of Supplementary Note S1: runs/<case>/ with the band-structure calculations at fixed and relaxed geometries with and without spin-orbit coupling, klist.txt (wavevector list), kq_extract2.py (extraction of the separation, the masses and the splittings), emc/ (the two-valley EMC sweep versus the separation, 3 seeds), kq_literature.md (published values with sources).

adsorbates/ NO2, NH3 and O2 on the monolayer (Supplementary Note S3): <case>/ with the relaxation input and output, the Bader charges (ACF.dat) and the projwfc output for each of the clean cells (4x4 and 5x5), the isolated molecules and the adsorbed cases (three sites each, two 5x5 cells, three further NO2 starting orientations), ads_analysis_output.txt (adsorption energies and charge transfers, script ads_analysis.py), gen_ads.py (geometry generator), cases_ads.txt.

inputs/ The input templates, wavevector lists, extraction scripts and SLURM job scripts of all chains (inputs_mos2/, inputs_ads/, job_*.slurm).

scripts/

make_paper_figures.py (main-text figures), make_supp_figures.py (Figs. S1 to S6), device_crosscheck3d.py and device_direct_figure.py (reduced model against the direct device simulation, Fig. 5), paperstyle.py (plot style). They read the files of emc/figure_data/ and emc/device_sweep/ from their own directory.