No variations in mobility - AMSET 2D materials

Dear developers and users,
Recently I started to use AMSET and trying to understand its functionality. I am trying to calculate the scattering rate and mobility for a 2D material. I generated wavefunction.h5 and deformation.h5 as per guidance from AMSET documentation. Below is the Run parameter setting.


  Run parameters:
    - scattering_type: ['ADP', 'PIE', 'POP']
    - doping: [-1.e+06 -1.e+07 -1.e+08 -1.e+09 -1.e+10 -1.e+11 -1.e+12 -1.e+13]
    - temperatures: [ 100.  200.  300.  400.  500.  600.  700.  800.  900. 1000.]
    - scissor: 0.0
    - bandgap: 2.75
    - soc: False
    - zero_weighted_kpoints: prefer
    - interpolation_factor: 30
    - wavefunction_coefficients: wavefunction.h5
    - use_projections: False
    - unity_overlap: False
    - free_carrier_screening: False
    - high_frequency_dielectric:
        [[  2.32   0.00   0.00]
         [  0.00   2.32   0.00]
         [  0.00   0.00   1.27]]
    - static_dielectric:
        [[  6.85   0.00   0.00]
         [  0.00   6.85   0.00]
         [  0.00   0.00   1.29]]
    - elastic_constant:
        [[   6.2    2.2   -0.1    0.0    0.0    0.0]
         [   2.2    6.2   -0.1    0.0   -0.0    0.0]
         [   0.1    0.1    0.2    0.0    0.0    0.0]
         [   0.0    0.0    0.0    2.0    0.0    0.0]
         [   0.0    0.0    0.0    0.0   -0.1    0.0]
         [   0.0    0.0    0.0    0.0    0.0   -0.1]]
    - deformation_potential: deformation.h5
    - piezoelectric_constant:
        [[ 0.0000  0.0000  0.0000  0.0141  0.0000  0.0009]
         [ 0.0141 -0.0141  0.0000  0.0000  0.0009  0.0000]
         [-0.0056 -0.0056 -0.0027  0.0000  0.0000  0.0000]]
    - defect_charge: 1
    - compensation_factor: 2
    - pop_frequency: 2.06
    - energy_cutoff: 1.5
    - fd_tol: 0.05
    - dos_estep: 0.01
    - symprec: 0.01
    - nworkers: -1
    - cache_wavefunction: True
    - calculate_mobility: True
    - separate_mobility: True
    - mobility_rates_only: False
    - file_format: json
    - write_input: False
    - write_mesh: True
    - print_log: True
    - write_log: True

Irrespective of doping and temperature, I get the same mobility as shown in the attached Fig. I am a bit confused here since the amset run completes with a success message and I was able to use all the functionality of the amset to plot.

I searched all posts since 2020, but I don’t see any report on such an issue. Hence I use the tag “bug-report”. But I am not sure if is it a bug or wrong settings in the YAML file or i set an unsuitable scattering mechanism.

For better understanding, I attached the amset.log and setting.yaml with this message.
Has anyone faced a similar issue?
Your comments are highly appreciated

amset.log (25.1 KB)
settings.yaml (1.7 KB)

Thank you

Best regards,
Muthu,
Researcher, Inst. of Exp. Physics,
TU Freiberg, Feriberg
Germany

Hi muthu,

The mobility remains unchanged with doping concentration, likely due to the extremely low doping level in your calculation. This results in negligible changes to the position of the Fermi level (please verify this by plotting the Fermi level as a function of doping concentration).

But it does seem odd that the scattering rate remains completely unchanged, maybe the material has a relatively flat band maxima?

The only factor that might change significantly is the IMP scattering rate, but this was not included in your calculation.

Best regards,
Zane

Hi @Zane
thank you for your interest and time on this issue. I agree that the doping level is low and no IMP is involved. so I did a separate calculation for this same material and the result is
(in terms of carrier concentration)

the same in terms of temperature

please note the variation on total mobility is remains almost the same. using conductivity results from Boltztrap I guess the material is n-type.

The result of the calculation using hole doping is

to see better only total values are given below (with --no-log-y)

still, I see almost no change. The band strucutre of this material is
Screenshot 2025-02-19 140857

The valence band is flat but in the conduction band, there is a clear presence of curvature.

further comments are welcome !!!

Best regards, Muthu

Hi muthu,

Are you suggesting that the conductivity at the CBM aligns better with experimental results than at the VBM?

Based on the diagrams, the carrier transport is dominated by POP scattering. If you do not turn on the free carrier screening, it typically remains insensitive to variations in carrier concentration.

Best regards,
Zane

thank you @Zane for your suggestions. finally, I see some variation. The strucutre I try is so far only a theoretical prediction. No experiment is available. again thanks for mentioning the free_carrier_screening option. setting it to true gives different results.

Moreover, recently opened other topics

I am just trying to control the number of bands involved in the whole calculation. Can you comment on it, if you faced such an issue

Thank you

Best regards, Muthu

Dear muthu,

I believe the issue occurs because the band index from wavefunction.h5 does not align with deformation.h5.

In rare cases, even when using the same cutoff energy to extract the deformation potential and overlap matrix, the band indices may still be mismatched.

From my experience, the most reliable approach is to first extract the overlap matrix using a reasonable cutoff energy and then use the corresponding band indices to generate the deformation.h5 file.

In your case:

When generating deformation.h5, try: amset deform -b 13:16

Best regards,
Zane

thank you @Zane for your quick response.
I tried in many different ways to control the bands. But still I get the same error.

  1. I created deformation.h5 with -b 13:16, -b 13:16 -e 200 and -e 200. If I do not use the -b option, things will go well with the automatically selected bands.
  2. With the amset wave, the energy cutoff remains 200 eV for any combination of -b, which is bit weird.

in your answer i see

> I believe the issue occurs because the band index from wavefunction.h5 does not align with deformation.h5.

Then, how to confirm that the bands index is taken in the correct order?
if amset defor read and amset wave mix the band order, then does the result calculated by amset is reliable?

thank you

Best regards, Muthu

Dear muthu,

The cutoff energy in the log is not the same as the cutoff energy used for searching the energy band.

It refers to the plane-wave cutoff for the coefficients used by pawpyseed to generate the coefficients.

This can be specified using the “-c” argument.

Best regards,
Zane