Integrated computational framework for electronic band structure reconstruction and parametrization
Project description
fuller
Integrated computational framework for electronic band structure reconstruction and parametrization, powered by probabilistic machine learning
Introduction
This Python package comprises a set of tools to reconstruct and parametrize the electronic band structure (EBS) from photoemission spectroscopy data. It implements the Markov Random Field model introduced in Xian & Stimper et al. (2020) in TensorFlow.
Methods of installation
The latest version of the package can be installed via pip
pip install --upgrade git+https://github.com/mpes-kit/fuller.git
Alternatively, download the repository and run
python setup.py install
Install directly from PyPI
pip install fuller
Requirements
Apart from the packages specified in the requirements.txt
file, tensorflow
is needed. Installation instructions can be found at the official webpage. The package works with the CPU only and GPU supported version of the framework. Currently, only version TensorFlow 1 (1.14 onwards) is supported, but we are working on porting it to TensorFlow 2.
Sample dataset
As a model system to demonstrate the effectiveness of the methodology we worked on 3D photoemission data of the semiconductor tungsten diselenide (WSe2). It resolve the momentum along the x- and y- axis (kx and ky) and the energy.
Reconstruction
All 14 valence band of WSe2 are visible in the dataset. The optimization was initialized by DFT calculation with HSE06 hybrid exchange-correlation functional. The results are shown in the figure below.
Documentation
Complete API documentation is provided here.
Preprocessing and Reconstruction
Class MrfRec
The MrfRec
class is of central importance for reconstruction as well as preprocessing the data. To reconstruct the EBS create a MrfRec
object and use its methods to perform the algorithms and plot the results. Here, we list a selection of the most important methods of the class. For further illustration on how to use the class check out the mpes_reconstruction_mrf.ipynb
notebook in the example folder.
__init__
def __init__(E, kx=None, ky=None, I=None, E0=None, eta=0.1, includeCurv=False, etaCurv=0.1):
...
E
: Energy as 1D numpy arraykx
: Momentum along x axis as 1D numpy array, ifNone
it is set to 0ky
: Momentum along y axis as 1D numpy array, ifNone
it is set to 0I
: Measured intensity wrt momentum (rows) and energy (columns), generated ifNone
E0
: Initial guess for band structure energy values, ifNone
the median ofE
is takeneta
: Standard deviation of neighbor interaction termincludeCurv
: Flag, if true curvature term is included during optimizationetaCurv
: Standard deviation of curvature term
iter_para
def iter_para(num_epoch=1, updateLogP=False, use_gpu=True, disable_tqdm=False, graph_reset=False):
...
Hereby, the parallel optimization of Markov Random Field model can be performed to reconstruct an electronic band.
num_epoch
: Number of epochs to performupdateLogP
: Flag, if true logP is updated every half epoch (requires more computations)use_gpu
: Flag, if true gpu is used for computations if availabledisable_tqdm
: Flag, it true no progress bar is shown during optimizationgraph_reset
: Flag, if true Tensorflow graph is reset after computation to reduce memory demand
normalizeI
def normalizeI(kernel_size=None, n_bins=128, clip_limit=0.01, use_gpu=True, threshold=1e-6):
...
This performs Multidimensional Contrast Limited Adaptive Histogram Equalization (MCLAHE), introduced in Stimper et al. 2019. The method is a wrapper for the TensorFlow implementation of the mclahe
function.
kernel_size
: Tuple of kernel sizes, 1/8 of dimension lengths of x ifNone
n_bins
: Number of bins to be used in the histogramclip_limit
: Relative intensity limit to be ignored in the histogram equalizationuse_gpu
: Flag, if true gpu is used for computations if availablethreshold
: Threshold below which intensity values are set to zero
Citation
If you are using this package within your own projects, please cite it as
R. P. Xian, V. Stimper, M. Zacharias, S. Dong, M. Dendzik, S. Beaulieu, B. Schölkopf, M. Wolf, L. Rettig, C. Carbogno, S. Bauer, and R. Ernstorfer, "A machine learning route between band mapping and band structure," arXiv:2005.10210, 2020.
Bibtex code
@article{Xian2020,
author={R. P. Xian and V. Stimper and M. Zacharias and S. Dong and M. Dendzik and S. Beaulieu and
B. Schölkopf and M. Wolf and L. Rettig and C. Carbogno and S. Bauer and R. Ernstorfer},
journal={arXiv:2005.10210},
title={A machine learning route between band mapping and band structure},
year={2020},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fuller-0.9.9.tar.gz
.
File metadata
- Download URL: fuller-0.9.9.tar.gz
- Upload date:
- Size: 12.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.8.0 tqdm/4.45.0 CPython/3.6.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1510030826a06492b216849f1a44d09bde2a34ff6f2da62645109f83eca5e7c |
|
MD5 | 9b19e2e58c25685a29b043af01ee5cd0 |
|
BLAKE2b-256 | cd1c78a92edc336214714862f662afa949a4838352f2cc43d14e2ee932b6270c |
File details
Details for the file fuller-0.9.9-py2.py3-none-any.whl
.
File metadata
- Download URL: fuller-0.9.9-py2.py3-none-any.whl
- Upload date:
- Size: 31.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.8.0 tqdm/4.45.0 CPython/3.6.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d13e3f7f75e5e2f4ec44117df7ef9a32306ec3db6310239c8e41c24f4a35e9e3 |
|
MD5 | 2147d5cdf070c899d3372e7e237786bd |
|
BLAKE2b-256 | f74cb26b1b6e4ed8039078fa759c176a91d3872f2de501ea858949f2989f6429 |