Effective mass?

Hi,
I’d like to determine the effective mass at the VBM and CBM in a high-throughput manner for a set of materials which satisfy a Materials Project query, ideally without having to run Boltztrap. Is there a way to do this in Pymatgen? If not, I’d appreciate any advice you have on the best way to script it myself.

Thanks

1 Like

There is a simple effective mass calculation in sumo. Otherwise, your best bet is to use BoltzTrap2 which has an interface in pymatgen.

1 Like

We also have a large contributed dataset of effective masses from available on MPContribs: https://portal.mpcontribs.org/carrier_transport/

This is also available via an API, but the MPContribs API rather than the main MP API.

Note MPContribs is in a ‘soft-release’ stage right now, we haven’t officially announced it yet but the data is available to use and publicly available.

Best,

Matt

Thanks. I’m having some problems with time-outs while trying to retrieve the band structures of certain materials. For example, 4 different polymorphs of elemental S, which all have Materials Project band structures:

import pymatgen
from pymatgen.ext.matproj import MPRester
with MPRester("") as m:
print(m.get_bandstructure_by_material_id(‘mp-557869’))
print(m.get_bandstructure_by_material_id(‘mp-555760’))
print(m.get_bandstructure_by_material_id(‘mp-561370’))
print(m.get_bandstructure_by_material_id(‘mp-555915’))

The first two polymorphs in the order above can be retrieved, but any attempt to retrieve the third or fourth times out with the following output:

(atomate_env) login2(1249)$ python mp_effmass.py
<pymatgen.electronic_structure.bandstructure.BandStructureSymmLine object at 0x2b978c9f44a8>
<pymatgen.electronic_structure.bandstructure.BandStructureSymmLine object at 0x2b978b46d6a0>
Traceback (most recent call last):
File “/work/04391/tg836903/stampede2/atomate/atomate_env/lib/python3.6/site-packages/pymatgen/ext/matproj.py”, line 162, in _make_request
.format(response.status_code))
pymatgen.ext.matproj.MPRestError: REST query returned with error status code 504

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “mp_effmass.py”, line 46, in
print(m.get_bandstructure_by_material_id(‘mp-561370’))
File “/work/04391/tg836903/stampede2/atomate/atomate_env/lib/python3.6/site-packages/pymatgen/ext/matproj.py”, line 603, in get_bandstructure_by_material_id
data = self.get_data(material_id, prop=prop)
File “/work/04391/tg836903/stampede2/atomate/atomate_env/lib/python3.6/site-packages/pymatgen/ext/matproj.py”, line 220, in get_data
return self._make_request(sub_url)
File “/work/04391/tg836903/stampede2/atomate/atomate_env/lib/python3.6/site-packages/pymatgen/ext/matproj.py”, line 167, in _make_request
raise MPRestError(msg)
pymatgen.ext.matproj.MPRestError: REST query returned with error status code 504. Content: b"

504 Gateway Time-out

\nThe server didn’t respond in time.\n\n\n"

This behavior seems to be reproducible - it doesn’t matter what order I ask in, mp-561370 and mp-555915 cannot be retrieved, and asking for the band structure of either one leads to a time-out. Any ideas?

Dear Sir/Madam
I am also looking to calculate effective mass using BoltzTrap or BoltzTrap2 code wiht paymtgen of any other tool. any of your help will be plus for me.
Regards
Rekha

Hello, do you have calculated the effective mass? Can you share your measure? I also want to obtain the effective mass for my work. But I have no a better method.

Hello,
I used effmass (https://pypi.org/project/effmass/), although I don’t think I still have the scripts which I used to interface with it.

1 Like

OK, thank you very much.

Just to add a couple more methods for calculating the effective mass:

Sumo

To calculate the band edge effective mass in sumo you need to run a band structure along a high-symmetry path and then use sumo-bandstats. The information on how to do this is:

  1. Generate the k-points along the high symmetry path: sumo-kgen — sumo 2.2.1 documentation

  2. Once you have done a DFT calculation using those k-points, you can extract the effective masses using: sumo-bandstats — sumo 2.2.1 documentation

amset

Alternatively, you can use amset which relies on Fourier interpolation of the band structure using BoltzTraP2. There are two options.

  1. Use amset eff-mass: This calculates the conductivity effective mass as defined here: https://www.nature.com/articles/s41524-017-0013-3

  2. Use amset plot band --stats vasprun.xml: This calculates the effective mass in the same way as sumo but using a band structure interpolated from a uniform calculation.

2 Likes

Thank you for the useful information. I would like to know whether the amset plot band --stats vasprun.xmlcan deal with the vasprun.xml file calculated by the HSE06+SOC method?

Hi @obaica, yes it can!

1 Like

Sorry for re-opening an old thread. I’ve been encountering some issues with the carrier transport database found at MPContribs.

First, on one PC, I get the following error:

Error during download generation formpcontribs-downloads-main:carrier_transport_tables_473094b30952d540e7b5db06b6ed571f:csv:1

I tried to download the dataset on a different PC, and I didn’t get the error. However, the zipped folder that is downloaded only contains 9,800 entrees out of the 47,737 stated on the website. Am I missing something?

Hi Danny,

thank you for reporting this. I’m working on a fix for this issue with the MPContribs download functionality. I will try to get it deployed next week and will keep you posted.

thanks,
Patrick

Thanks!