PWscfの入力作成補助

Quantum ESPRESSO(PWscf)の入力ファイル作成支援に使えるソフトウエアとして、以下の3つがあげられます。


cif2cell


cif2cellCIFからecalj入力の作成
でCIFファイルからecaljの入力ファイルを作成するために利用しました。インストール方法はそちらのエントリに書いてあります。

cif2cellがインストールしてあれば、格子定数や原子位置が記入された入力ファイルの雛形を作成することが出来ます。
フォーマットは以下の通りです。
cif2cell -p プログラム -f CIFファイル -o PWscf入力ファイルの雛形


例えばシリコンのCIFファイル Si.cif の場合は、以下のようにします。

cif2cell -p pwscf -f Si.cif -o Si.in


他にも cif2cell -h とタイプすることによってヘルプを表示することが出来ます。

とはいえ、擬ポテンシャルの設定などの自明でないパラメータは一切出力されないため、追加の編集が必要になります。私は、追加の編集をPWguiで行いたいと考えたのですが、非自明なパラメータが一切出力されないため、そのまま PWgui で開くことが出来ないようです。

xtl2pw.py


他の入力支援用のPythonスクリプトがQuantum-ESPRESSOとVestaの連携QuantumESPRESSO_空間群入力で公開されています。

ダウンロードした後、適当にPATHの通ったディレクトリへ置いて実行権限を付けます。

wget http://www.misasa.okayama-u.ac.jp/~masami/xtl2pw.py
mv xtl2pw.py ~/bin/
chmod +x ~/bin/xtl2pw.py


wget http://www.misasa.okayama-u.ac.jp/~masami/pwout2xtl.py
mv pwout2xtl.py ~/bin/
chmod +x ~/bin/pwout2xtl.py


wget http://www.misasa.okayama-u.ac.jp/~masami/vesta2pw.py
mv vesta2pw.py ~/bin/
chmod +x ~/bin/vesta2pw.py


xtl2pw.py は cif2cell と異なり、色々なパラメータをとりあえず埋めてくれるため、直接 PWgui で開くことが出来ます。ただし変換するのは cif ファイルからではなく xtl ファイルからなので、 VESTA で xtl ファイルをあらかじめ出力しておく必要があります。
具体的には、以下の手順になると思います(シリコンの例)。

  1. VESTA で cif ファイルを xtl ファイルへ変換する。
    File → Export data → Fractional Coordinate (*.xtl) のファイル形式で保存
  2. xtl2pw.py Si.xtl scf 1
    2つ目の引数は scf, relax, vc-relax が選べる
    3つ目の引数は原子位置の制約
     0:制約を点けない
     1:制約をつける
  3. 出力された入力ファイル Si.in をpwgui で編集


Ubuntu への PWgui のインストール


PWguiのページから Self-contained standalone executables つまりコンパイル済みのバイナリをダウンロードします。
そのまえに iwidgets4 をインストールしておく必要があるかもしれません。

sudo apt-get update
sudo apt-get install iwidgets4
wget http://www-k3.ijs.si/kokalj/pwgui/download/pwgui-6.1-linux-x86_64.tgz
tar xzvf pwgui-6.1-linux-x86_64.tgz


必要に応じて pwgui を PATH に追加します。

Windows への PWgui のインストール


Linuxサーバー上で動作する PWgui の GUI を転送して Windows クライアントで動作させるのは重いので、Windows 上で PWgui が動作するとありがたいのですが、ネットで探してみても最新版の PWgui に関しては失敗報告しか見かけません。古いバージョンの2.1.3ならWindows版がPWgui の旧バージョンのダウンロードページから入手できますが、最新版は無いようです。

恐ろしく回りくどい方法ですが、現状では VirtualBox 上で Ubuntu を動かして、そこで PWgui を動かすのが一番マシかもしれません。

関連エントリ




参考URL




参考文献/使用機器





フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: Quantum_ESPRESSO PWscf VESTA PWgui cif2cell 

PWscfの擬ポテンシャル

AkaiKKR(machikaneyama)ecaljが全電子法を採用しているのに対して、Quantum ESPRESSO(PWscf)は擬ポテンシャル法を採用しています。そのためバンド計算を行うためには、入力ファイルとは別に擬ポテンシャルファイルを用意する必要があります。さらにカットオフエネルギーというパラメータを設定しなければいけません。今回のエントリでは、PWscfの擬ポテンシャルファイルに関する基礎知識について書きます。


同じ元素に対しても擬ポテンシャルファイルには色々な種類があるようです。

交換相関汎関数


AkaiKKRやecaljの場合と同様に、交換相関汎関数にどのタイプを使うかを選択できます。計算結果は、どの汎関数を利用するかによって変わってきます(参考: AkaiKKRでLDAとGGA その1, その2)。
どれを使うかのが一番よいのかは、ケースバイケースなのでしょう。とりあえず PBE から試すのが最近の流行なのでしょうか。

擬ポテンシャルファイルの種類


擬ポテンシャルファイルには、以下の3種類の分類があるようです。

  • ノルム保存型
  • ウルトラソフト
  • PAW(Projector Augmented-Wave)


それぞれに特徴があるので、目的によってどのタイプを使うのかを決めます。ただし擬ポテンシャルの種類によって選択できる元素の種類が限定されます。擬ポテンシャルファイルを自作することも可能らしいですが、そうでなければ計算したい化学組成についてどのタイプの擬ポテンシャルが使えるのかはよく確認しておく必要がありそうです。元素ごとに異なるタイプの擬ポテンシャルファイルを混在させることも可能ですが、出来れば避けたほうが良いだろうと思います。

PAWポテンシャルは、おそらく3つの中で最も新しい方法で、計算の高速さと正確さの両方を同時にあげることが出来るらしいです。ただし新しい手法なので(?)選べる元素の種類は少なそう(?)です。

ノルム保存型は3つの中ではおそらく最も古く、そのため選べる元素の種類も多そうです。

ウルトラソフト擬ポテンシャルは、ノルム保存型よりもカットオフエネルギーを小さく出来る、したがって計算速度を上げることが出来るメリットがあるようです。

カットオフエネルギー


カットオフエネルギーは、計算精度に関するパラメーターです。大きくするほど計算結果が正確になりますが、計算時間が掛かるようになります。したがって、必要充分な値を設定する必要があります。この値は擬ポテンシャルファイルの先頭部分に書いてあることが多いようです。以下は Siの擬ポテンシャルファイル の冒頭部分です。

Generated using "atomic" code by A. Dal Corso  v.5.0.2 svn rev. 9415
Author: ADC
Generation date: 11Sep2012
Pseudopotential type: PAW
Element: Si
Functional: SLA PW PBX PBC

Suggested minimum cutoff for wavefunctions: 38. Ry
Suggested minimum cutoff for charge density: 151. Ry
The Pseudo was generated with a Scalar-Relativistic Calculation
L component and cutoff radius for Local Potential: 2 2.0000


波動関数のカットオフエネルギーの最小値は 38 Ry で、電荷密度のカットオフエネルギーの最小値は 151 Ry であると書かれています。利用する全ての擬ポテンシャルファイルの中で、一番大きな値の 1.5 倍程度が目安な様です。


関連エントリ




参考URL




参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: Quantum_ESPRESSO PWscf 擬ポテンシャル 

PWscfのインストール

Quantum ESPRESSO(PWscf)は第一原理バンド計算パッケージです。AkaiKKR(machikaneyama)ecaljが全電子法を用いているのに対して、Quantum ESPRESSOは擬ポテンシャル法を用いています。擬ポテンシャル法は、計算速度が速いことが特徴です。計算が速いということは、全電子法では時間が掛かりすぎて現実的でないような計算、具体的には構造緩和や分子動力学が可能だということです。したがって Quantum ESPRESSO で緩和させた構造を入力ファイルとして ecalj のQSGW計算を行うといった連携も考えられます。

今回は ubuntu 16.04 に Quantum ESPRESSO をインストールしてみます。とはいえ Quantum ESPRESSO は極めてメジャーなソフトウエアなので、インストール方法を解説したページは容易に見つかります。私はquantum ESPRESSO tutorial2. quantum-ESPRESSOのインストールを参考にしました。

wget http://qe-forge.org/gf/download/frsrelease/247/1132/qe-6.2.1.tar.gz
tar xzvf qe-6.2.1.tar.gz
cd qe-6.2.1/
./configure
make all



Quantum ESPRESSO(PWscf)のウエブページを見ると、最新版はGitLabあるいはqe-forgeからソースコードをダウンロードするように書かれています。今回は wget を使って qe-6.2.tar.gz をダウンロードします。

wget http://qe-forge.org/gf/download/frsrelease/247/1132/qe-6.2.1.tar.gz


次にダウンロードされたファイルを展開します。

tar xzvf qe-6.2.1.tar.gz


ファイルが正しく展開された後は、アーカイブは削除してしまって構いません。どこかに保存しておいたほうがいいかもしれませんが。

rm qe-6.2.1.tar.gz


新しく作られたフォルダへ移動し、コンフィグを実行します。

cd qe-6.2.1/
./configure


configure: success と表示されれば成功です。Intel Fortran Compiler または gfortran がインストールされていれば、基本的には上手く行くはずですが・・・

いよいよ make します。単純に make とだけ端末でタイプすると make のオプションが表示されます。2. quantum-ESPRESSOのインストールでは make pw pp ph で充分と書かれているのですが、私はmake allとしてしまいました。

make all


途中でいくつか warning がでますが bin/ ディレクトリを見てみるとちゃんとバイナリファイルが出来ているようです。

関連エントリ




参考URL




参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: Quantum_ESPRESSO PWscf 

Kelvinの公式でSeebeck係数

AkaiKKR(machikaneyama)で計算された状態密度から Kelvin の公式を利用して、遷移金属のゼーベック係数を計算しました。
\begin{equation}
S = - \frac{1}{|e|}\frac{\mathrm{d}\mu}{\mathrm{d}T}
\end{equation}
ここで S はゼーベック係数、 e は電気素量、 μ は化学ポテンシャル、T は絶対温度です。結果はそこそこ良く実験値を再現しました。

Kelvin.png
Fig.1: Kelvinの公式で計算されたゼーベック係数(実線)と実験から得られた文献値(丸シンボル)。パラジウム(赤)、プラチナ(青)、タングステン(緑)、モリブデン(黒)。



ゼーベック係数


ゼーベック係数(熱電能)は、以下の式で表されます。

\begin{equation}
S = \frac{1}{eT}\frac{K_1}{K_0}
\end{equation}
ここでKn
\begin{equation}
K_n = \int_{-\infty}^{\infty}\sigma(\epsilon)(\epsilon - \mu)^{n} \left( - \frac{\mathrm{d}f}{\mathrm{d}\epsilon}\right) \mathrm{d}\epsilon
\end{equation}

この式の中の σ(ε) はエネルギーに依存する電気伝導度とでも呼ぶべきもので、これを具体的に計算するには、通常のバンド計算から得られる電子の群速度に加えて、電子がどのように散乱されるかを表す散乱時間も必要になります。これは不可能ではありませんが、結構大変です。

これに対して熱電材料の物質科学―熱力学・物性物理学・ナノ科学 (物質・材料テキストシリーズ)では、とても簡単な近似式として Kelvin の公式を示しています。
\begin{equation}
S = - \frac{1}{e}\frac{\mathrm{d}\mu}{\mathrm{d}T}
\end{equation}
Scilabで金属の化学ポテンシャルに書いたとおり、金属の状態密度さえ分かっていれば化学ポテンシャルは計算できるので、バンド計算的には、とても簡単な手法です。(というか、これで精度よくゼーベック係数が計算できるのなら、群速度とか散乱時間とか一体なんだったのという感じ)

計算手順


まずAkaiKKRで状態密度を計算しました。2500 K 程度なら化学ポテンシャルの大きさもたいしたこと無いはずなので ewidth を小さくして計算すべきですが、雑な計算ということで価電子を全て含むエネルギーとしました。

c------------------------------------------------------------
go data/Pt
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
fcc 7.41 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 0.9 sra mjw nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 4 200 0.023
c------------------------------------------------------------
c ntyp
1
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Pt 1 1 0.0 2
78 100
c------------------------------------------------------------
c natm
1
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Pt
c------------------------------------------------------------

c------------------------------------------------------------
dos data/Pt
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
fcc 7.41 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.2 sra mjw nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 20 200 0.023
c------------------------------------------------------------
c ntyp
1
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Pt 1 1 0.0 2
78 100
c------------------------------------------------------------
c natm
1
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Pt
c------------------------------------------------------------


Pt-DOS.png
Fig.2: プラチナの状態密度


次に計算された状態密度から、電子の数密度neを計算します。
\begin{equation}
n_e = \int_{-\infty}^{\infty}D(\epsilon)f(\epsilon, T)\mathrm{d}\epsilon
\end{equation}
ここでフェルミ分布関数は以下のようになります。
\begin{equation}
f(\epsilon, T) = \frac{1}{\exp \left(\frac{\epsilon - \mu(T)}{k_B T} \right) + 1}
\end{equation}

電子の数密度neは温度に関わらず一定なので、絶対零度 T = 0 (K) のときの電子数密度 ne0 をまず計算します。フェルミ分布関数はこのとき ε < εF で f(ε, 0) = 1, ε > εF で f(ε, 0) = 0 なので
\begin{equation}
n_{e0} = \int_{-\infty}^{0} D(\epsilon) \mathrm{d}\epsilon
\end{equation}
です。

あとは以下の条件を満たすように非線型方程式ソルバで、化学ポテンシャルμを求めます。
\begin{equation}
\int_{-\infty}^{\infty}D(\epsilon)f(\epsilon, T)\mathrm{d}\epsilon - n_{e0} = 0
\end{equation}

化学ポテンシャルが計算できたら、これを数値微分します。
\begin{equation}
\frac{\mathrm{d}\mu}{\mathrm{d}T} \sim \frac{\mu(T+\Delta T) - \mu(T - \Delta T)}{2\Delta T}
\end{equation}

clear;

// *** 物理定数 ***
// アボガドロ数 (/mol)
na = 6.0221413E23;
// 1 (Ry) = 2.179872E-18 (J)
eRy = 2.179872E-18; //(J)
// リュードベリ原子単位系でのボルツマン定数
// Boltzmann constant kB = 1.3806488E-23 (J/K)
kB = 1.3806488E-23 / eRy; // (Ry/K)
// 電気素量
chage = 1.60217662E-19;

// *** 状態密度の読み出し ***
X = fscanfMat("Kelvin-Pt-calc.txt");
Edat = X(:,1);
Ddat = 2 * X(:,2);

// *** 計算用 ***
// エネルギー
E = linspace(min(Edat), max(Edat), 10000);
// 温度
tstart = 10; tstep = 10; tend = 2500;
T = [tstart:tstep:tend];
// 状態密度
D = interp1(Edat, Ddat, E, "linear");

// *** フェルミ分布関数 ***
function fermi = fermi(mu, energy, temp)
fermi = 1 ./ (exp((energy - mu) ./ (kB * temp)) + 1)
endfunction

// *** フェルミ分布関数 ***
n = intsplin(E, (D .* fermi(0, E, 0)));
function y = f1(x, temp)
y = intsplin(E, D .* fermi(x, E, temp)) - n
endfunction

// *** 化学ポテンシャル ***
Snum = ones(T);
for i = 1:length(T) do
temp = 1.01 * T(i);
mu1 = fsolve(0, f1);
temp = 0.99 * T(i);
mu2 = fsolve(0, f1);
// 数値計算による電子比熱
Snum(i) = - eRy * (mu1 - mu2) / (0.02 * T(i)) / chage;
end

// 数値計算による電子比熱
plot(T, 1E6 * Snum, "-b");
Y = fscanfMat("Kelvin-Pt-lit.txt");
plot(Y(:,1), Y(:,2), ".b");

// *** グラフの装飾 ***
xlabel("Temperature (K)");
ylabel("Seebeck coefficient (uV/K)");
xgrid(color("gray"));


Sommerfeld展開


Scilabで金属の化学ポテンシャルでは Sommerfeld 展開から得られた化学ポテンシャルが以下のように書かれるとしています。
\begin{equation}
\mu = \epsilon_F - \frac{\pi^2}{6}k_B^2 \frac{D'(\epsilon_F)}{D(\epsilon_F)}T^2
\end{equation}
したがって、その温度微分は以下のようになります。
\begin{equation}
\frac{\mathrm{d}\mu}{\mathrm{d}T} = - \frac{\pi^2}{3}k_B^2 \frac{D'(\epsilon_F)}{D(\epsilon_F)}T
\end{equation}
状態密度が鋭く変化している(D'(εF)が大きい)ほど大きなゼーベック係数を持つことが分かります。

関連エントリ




参考URL




付録


このエントリで使用したファイルを添付します。ファイル名末尾の".txt"を削除して、"_"を"."に変更すれば使えるはずです。(参考:ねがてぃぶろぐの付録)


参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: AkaiKKR KKR ゼーベック係数 状態密度 分散関係 

AkaiKKRで窒化ガリウム

AkaiKKR(machikaneyama)ウルツ型結晶構造の窒化ガリウムGaNの計算を行いました。

hexGaN.png
Fig.1: ウルツ型構造の窒化ガリウムの状態密度


ウルツ型構造の結晶構造はFig.2のような六方晶です。このCIFはCrystallography Open Databaseからダウンロードすることが出来ます。

2018y04m17d_140952920.png
Fig.2: ウルツ型窒化ガリウムの結晶構造


AkaiKKRの入力ファイルは、以下のようになりました。原子位置(atomicx)はVESTAでAkaiKKRのための基本並進ベクトルの方法で出力したものを利用しました。

c----------------------GaN-----------------------------------
go data/GaN
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
hex 6.01 , 1.6245 , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.8 sra mjw nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 4 200 0.03
c------------------------------------------------------------
c ntyp
2
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Ga 1 1 0.0 2
31 100
N 1 1 0.0 2
7 100
c------------------------------------------------------------
c natm
4
c------------------------------------------------------------
c atmicx atmtyp
0.333333343a 0.666666687b 0.000000000c Ga
0.666666627a 0.333333313b 0.500000000c Ga
0.333333343a 0.666666687b 0.384999990c N
0.666666627a 0.333333313b 0.884999990c N
c------------------------------------------------------------


関連エントリ




参考URL




付録


このエントリで使用したファイルを添付します。ファイル名末尾の".txt"を削除して、"_"を"."に変更すれば使えるはずです。(参考:ねがてぃぶろぐの付録)


参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: AkaiKKR machikaneyama KKR 状態密度 

FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性CPAPICOPアンプecalj常微分方程式モンテカルロ解析状態密度トランジスタodeDOSインターフェース定電流スイッチング回路PDS5022半導体シェルスクリプト分散関係レベルシフト乱数HP6632AR6452A可変抵抗トランジスタ技術温度解析ブレッドボードI2C反強磁性確率論数値積分セミナーバンドギャップバンド構造偏微分方程式非線形方程式ソルバ熱設計絶縁ISO-I2Cカオス三端子レギュレータLM358GW近似マフィンティン半径A/DコンバータフォトカプラシュミットトリガLEDPC817C発振回路数値微分直流動作点解析サーボカレントミラーTL431アナログスイッチUSB74HC4053bzqltyVESTA補間電子負荷アセンブライジング模型BSch量子力学単振り子2ちゃんねるチョッパアンプLDA開発環境基本並進ベクトルFFT標準ロジックブラべ格子パラメトリック解析抵抗SMPMaxima失敗談ラプラス方程式繰り返し位相図スイッチト・キャパシタ熱伝導状態方程式キュリー温度gfortranコバルトTLP621不規則合金Quantum_ESPRESSO六方最密充填構造ランダムウォーク相対論ewidthスピン軌道相互作用FETQSGWVCAcygwinスレーターポーリング曲線GGA仮想結晶近似PWscfシュレディンガー方程式LM555ハーフメタル固有値問題NE555最小値ガイガー管QNAPUPS自動計測ダイヤモンドマントルTLP552格子比熱最適化MCU井戸型ポテンシャル最大値xcrysdenCIF条件分岐詰め回路フェルミ面差し込みグラフスーパーセルfsolveブラウン運動awk過渡解析起電力三角波第一原理計算FXA-7020ZRWriter509Ubuntuテスタ熱力学データロガーTLP521OpenMPubuntu平均場近似MAS830LトランスCK1026PIC16F785PGA2SC1815EAGLEノコギリ波負帰還安定性ナイキスト線図MBEOPA2277P-10フィルタCapSenseAACircuitLMC662文字列固定スピンモーメントFSMTeX結晶磁気異方性全エネルギーc/a合金multiplotgnuplot非線型方程式ソルバL10構造正規分布等高線ジバニャン方程式初期値interp1fcc面心立方構造ウィグナーザイツ胞半金属デバイ模型電荷密度重積分SIC二相共存磁気モーメント不純物問題PWgui擬ポテンシャルゼーベック係数ZnOウルツ鉱構造edeltquantumESPRESSOフォノンリジッドバンド模型スワップ領域BaO岩塩構造ルチル構造ヒストグラム確率論マテリアルデザインフラクタルマンデルブロ集合キーボードRealforceクーロン散乱三次元疎行列縮退化学反応関数フィッティング最小二乗法Excel直流解析PCTS-110TS-112日本語パラメータ・モデル等価回路モデルcif2cell入出力陰解法熱拡散方程式HiLAPW両対数グラフCrank-Nicolson法連立一次方程式specx.fifort境界条件片対数グラフグラフの分割円周率ヒストグラム不規則局所モーメントGimpシンボル軸ラベル凡例線種トラックボール

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ