Skip to main content

Package for simulating quantum mechanical k·p Hamiltonians

Project description

# semicon - k·p simulations made easy

Note: this is work in progress, comments and ideas are more than welcomed!

The goal of this package is to provide easy to use framwerok for performing k·p simulations.
There will be two main components of this framework: parameters and models.

This package is suppose to remove an overhead and a boiler plate that appears when doing the k·p simulations.
It is suppose to make things easier, therefore userfriendly interface is a priority.


# Models

Models are based on the k·p Kane Hamiltonian, symmetrized following Burt-Foreman approach.
Users should be able to choose which components (Zeeman, Dresselhaus, strain, ...) and which bands ('gamma_6c', 'gamma_8v', ...) shall be included.


# Parameters

Parameters bank should include most common semiconducting materials.
Helper functions should handle parameter renormalization based on included bands and way to avoid spurious solutions.


# Helper functions

Goal of this framework is to make k.p simulations easy.
However, building the actual Kwant system and peforming the simulation should be done by user and this library only provide helper tools that are specific to problems encountered in k.p simulations


# Requirements

* This package is suppose to work with latest stable release of Kwant.
* This package will require [SciPy 1.2](https://github.com/scipy/scipy/milestone/36) that is scheduled to be released in November 2018.
This is due to usage of [scipy.spatial.transform.Rotation](https://scipy.github.io/devdocs/generated/scipy.spatial.transform.Rotation.html#scipy.spatial.transform.Rotation) to find the rotation vector of a given rotation matrix.
* Because project is based on discretizer sympy is required, however, due to compatibility [issue](https://gitlab.kwant-project.org/kwant/kwant/issues/225) it must be in version lower than 1.2


# Installation
As this package is pure python standard python installation from sources with
```
python setup.py build
python setup.py install
```
should be working without problems.
The only non-trivial dependency, Kwant, that could cause problemS if not installed beforehand can be either obtained via ``conda`` or any other installation means explained on its [homepage](https://kwant-project.org/).

Direct installation from git is also possible (and favoured as long as conda
package is not out there):
```
pip install git+https://gitlab.kwant-project.org/semicon/semicon.git
```

Note that due to active development master branch may not be stable.
To install version that has been already used in research project use
```
pip install git+https://gitlab.kwant-project.org/semicon/semicon.git@v0.1.0
```


# Tips about developing inside docker container

One can easily use a [rafalskolasinski/science](https://github.com/RafalSkolasinski/science-docker)
Docker container for a development of this project.
Assuming that ``semicon`` folder is ``~/work/semicon`` do:
```
docker pull rafalskolasinski/science:semicon
docker run -d -p 8888:8888 --name semicon \
-v ~/work/semicon:/src -v ~/work/semicon/notebooks:/home/jovyan/work \
rafalskolasinski/science:semicon
```

This will mount source code in ``/src`` and project notebooks in ``~/work``
inside the containier. It will also start ``jupyter notebook`` server running
at ``localhost:8888``. You will need to read jupyter's server token with
``docker logs semicon`` to access the server.

You can now use ``docker exec semicon build`` and ``docker exec semicon test``
to build the package or run the tests respectively.

You can enter bash inside the container by running
```
docker exec -it semicon bash
```

Nicely formatted output of tests (colors):
```
docker exec -it semicon test -v
```


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

semicon-0.2.0.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

semicon-0.2.0-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file semicon-0.2.0.tar.gz.

File metadata

  • Download URL: semicon-0.2.0.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for semicon-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2e72b566634a005866c57d4b54dcf6b8b678ca94be526b198b715b643551c8ce
MD5 68ed72c47b8eb4d0dff522cc0dda283d
BLAKE2b-256 b9a00f7f36f059a69f66a0dae4b28b8a3f49404031e366100fd09dcb3c8fcb1b

See more details on using hashes here.

File details

Details for the file semicon-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: semicon-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 25.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for semicon-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5aff4855e3598e722eea8de3d96a6779f907777f3b941d4ade1c7b28eebff0ac
MD5 1daecd5d0fde17552319f97988012c5e
BLAKE2b-256 15858b9b0b50c4bb16bb92cfb50ffa7d9f6637b954fd471e6aff1b2785ea9e11

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page