MateriApps
物質科学シミュレーションのポータルサイト

現在アプリ掲載数307件

お問合せ / アプリ掲載依頼
    • JP
    • EN
  • MateriApps について
  • レビュー募集
もっと詳しく探す
  • NEWS / 講習会・イベント
  • アプリ一覧
  • アプリ詳細検索
  • キーワード解説
  • レビュー
  • 事例
  • アプリコンシェルジュ
  • インストールしないでアプリを
    試せる「MateriApps LIVE!」

    詳細はこちら
  • MateriApps について
  • レビュー募集
  • プライバシーポリシー
  • お問合せ / アプリ掲載依頼
  • アプリ一覧
  • Kwant

Kwant

  • 公開度:3 ★★★
  • ドキュメント充実度:3 ★★★

量子伝導特性の計算を行うオープンソースのPythonパッケージ。タイトバインディング模型で記述される系のコンダクタンスや電流ノイズ、状態密度などを高速で計算することができる。系の形状を柔軟かつ容易に記述することができ、強磁性状態や超伝導状態、トポロジカル物質やグラフェンなどの取り扱いも可能。

Kwantの実行例(MateriApps LIVE!)
Last Update:2021/12/09
あなたはすでに投票済みです!

はじめに

Kwantは散乱理論に基づく輸送特性評価を行うソフトウェアである。Pythonを利用し、可読性・柔軟性に優れている。メゾスコピック系の様々な対象(量子細線、量子ポイントコンタクト、量子ドット、超伝導金属界面など)の透過係数やコンダクタンスを簡単に評価することができる。ここでは、MateriApps LIVE!上でのKwantのインストール方法、および、マニュアルの最初に記述されている例(量子細線のコンダクタンス)を実行するまでの手順を紹介する。インストール方法は環境によらずほとんど同じであるので、他のOS環境でも同様に試すことができるであろう。

Kwantのインストール方法

1.Pythonのパッケージ管理ソフトであるAnacondaもしくはMinicondaを利用するインストール方法が推奨されている(他の方法でもインストール可能)。ここではMinicondaを使おう。
https://conda.io/miniconda.html
MateriApps LIVE!のWebブラウザから上記のURLにアクセスし、Python3・L64-bit・Linux版のインストーラ(Miniconda3-latest-Linux-x86_64.sh)をダウンロードする。

2.Minicondaのインストーラを実行する。MateriApps LIVE!上で端末(LXTerminalなど)を立ち上げ、以下のコマンドを実行する。
cd Downloads
bash Miniconda3-latest-Linux-x86_64.sh
最初にライセンスに同意するかどうか聞かれるので、yesとタイプしてリターンを押す。次にインストールするディレクトリを聞かれるので、リターン(デフォルトを選択)を押す。最後に.bashrcの設定をするかどうか聞かれるのでyesとする。その設定を有効化する(次回ログイン時以降は不要)。
cd ..
source .bashrc

3.Minicondaを用いて、kwant, matplotlibをインストールする。
conda install -c conda-forge kwant
conda install matplotlib

4.以下のスクリプトをカット・ペーストして、kwanttest.pyのファイルを作る。(例えば、端末のコマンドラインからemacsを起動し、ブラウザで下記のスクリプトを選択してコピーし、emacs上でペーストする。)

import kwant
from matplotlib import pyplot

syst = kwant.Builder()
a = 1
lat = kwant.lattice.square(a)

t = 1.0
W = 10
L = 30

for i in range(L):
    for j in range(W):
        syst[lat(i,j)] = 4*t
        if j>0:
            syst[lat(i,j),lat(i,j-1)] = -t
        if i>0:
            syst[lat(i,j),lat(i-1,j)] = -t

sym_left_lead = kwant.TranslationalSymmetry((-a, 0))
left_lead = kwant.Builder(sym_left_lead)
for j in range(W):
    left_lead[lat(0, j)] = 4 * t
    if j > 0:
        left_lead[lat(0, j), lat(0, j - 1)] = -t
    left_lead[lat(1, j), lat(0, j)] = -t

syst.attach_lead(left_lead)

sym_right_lead = kwant.TranslationalSymmetry((a, 0))
right_lead = kwant.Builder(sym_right_lead)
for j in range(W):
    right_lead[lat(0, j)] = 4 * t
    if j > 0:
        right_lead[lat(0, j), lat(0, j - 1)] = -t
    right_lead[lat(1, j), lat(0, j)] = -t
syst.attach_lead(right_lead)

syst = syst.finalized()

energies = []
data = []
for ie in range(100):
    energy = ie * 0.01
    smatrix = kwant.smatrix(syst, energy)
    energies.append(energy) 
    data.append(smatrix.transmission(1, 0))

pyplot.figure()
pyplot.plot(energies, data)
pyplot.xlabel("energy [t]")
pyplot.ylabel("conductance [e^2/h]")
pyplot.show()

5.スクリプトを実行する。量子細線のコンダクタンスの化学ポテンシャル依存性がグラフとして描画される。幅方向の量子化準位に化学ポテンシャルが到達すると、コンダクタンスがe^2/hだけジャンプすることがわかる。この現象はコンダクタンスの量子化と呼ばれる。
python kwanttest.py

おわりに

上記のスクリプトの記述している内容や、より進んだ計算については、Kwantのドキュメントを参考にしてください。
https://kwant-project.org/doc/

04 / 06

  • 01基本情報
  • 02事例・論文
  • 03講習会
  • 04レビュー
  • 05開発者の声
  • 06このアプリ情報に
    ついてのお問い合わせ
TOP

MateriApps
物質科学シミュレーションのポータルサイト

  • NEWS / 講習会・イベント
  • アプリ一覧
  • アプリ詳細検索
  • キーワード解説
  • 事例
  • アプリコンシェルジュ
  • プライバシーポリシー
お問合せ / アプリ掲載依頼
  • 東京大学 物性研究所 The Institute for Solid State Physics
  • 東京大学 The University of Tokyo
  • CDMSI
  • CCMS

© MateriApps, 2013-2023. All rights reserved.