ecaljで銅のフェルミ面

ecaljでは、ポスト処理としてフェルミ面の描画が可能です。より具体的に言うと、xcrysdenのbxsf形式でフェルミ面のデータファイルの出力が可能です。どちらかというとecaljでフェルミ面のデータを出力するよりもxcrysdenを使うほうが面倒なのですが、今回はそのあたりについて書きます。

Screenshot from 2017-09-22 193A253A51
Fig.1: 銅のフェルミ面



Ubuntuへのxcrysdenのインストール


Ubuntuへxcrysdenをインストールするのは簡単です。apt-getからインストールできます。

sudo apt-get install xcrysden


銅のフェルミ面の計算


ecaljでフェルミ面の計算をするのは極めて簡単で、通常のLDA計算を行った後、ポスト処理として job_fermisurfaceを実行します。今回はテスト計算ということで面心立方構造の銅のフェルミ面を描いて見ます。コントロールファイル ctrl.cu~/ecalj/MATERIAL/CuMLWF からコピーしてきました。LDA計算を含めて全部書くと以下のようになります。

cp ~/ecalj/MATERIAL/CuMLWF/ctrl.cu .
lmfa cu
mpirun -np 2 lmf-MPIK cu
job_fermisurface cu -np 2 10 10 10


最後の行がフェルミ面のデータを出力するポスト処理です。最後の 10 10 10 は計算するk点メッシュの分割数です。今回はテスト計算なので小さめの値にしていますが、実際にはもっと大きな数にしたほうがよいでしょう。
fermiup.bxsf というファイルが出来ているはずです。これがフェルミ面のデータが保存されたファイルです。

xcrysdenを用いたフェルミ面の描画


bxsf形式のファイルをxcrysdenで表示する前に注意点があります。それはUbuntuサーバー上で実行したxcrysdenをsshのX転送を使ってWindows上で表示しようとするとxcrysdenが落ちる点です。とりあえず私はクライアントマシンとしてWindows上のVirtualBoxにインストールしたUbuntuの上でxcrysdenを使うことにしました。

以下のコマンドでxcrysdenにフェルミ面のデータを読み込ませることが出来ます。

xcrysden --bxsf fermiup.bxsf


コマンドを打ち込むとxcrysdenのロゴとともに"Specify the Fermi Energy:"というダイアログが表示されます。値はあとから変更できるので、そのままOKをクリックします。

Screenshot from 2017-09-22 193A243A06

Screenshot from 2017-09-22 193A243A46
Fig.2-3: xcrysdenのロゴとフェルミエネルギー指定ダイアログ。値は気にせずOKをクリックする。


次にBARGraphとSelect bandsのウインドウが表示されます。BARGraphウインドウでは、1番から7番のバンドがどのエネルギー幅を持っているのかを示しています。水平な赤の破線で示されているのがフェルミエネルギー(E=0)です。フェルミエネルギーを横切っているバンドは6番だけです。従ってSelect bandsのBand number:6にだけチェックを入れてSelectedをクリックします。(フェルミエネルギーを横切るバンドが複数ある場合は、複数チェックを入れます。)

Screenshot from 2017-09-22 193A253A21

Screenshot from 2017-09-22 193A253A07
Fig.4-5: 1~7番の各バンドのエネルギー範囲と表示するバンドを選択するダイアログ。今回はフェルミエネルギーを横切っているのが6番だけなので6番だけを選択する。


するとフェルミ面が描画されます。Degree of Interpolationの値を大きくしてsubmitをクリックするとフェルミ面の表面が多少滑らかになります。

右下の薄ピンクの背景の部分に-0.026と書かれています。これが現在プロットされているフェルミエネルギーの値です。本来ゼロですが、若干ずれています。この値を変更することによって、フェルミエネルギー以外のエネルギーに対する波数空間での等エネルギー面をプロットすることが出来ます。

関連エントリ




参考URL




フィードバック



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

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


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


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

tag: ecalj フェルミ面 xcrysden 

AkaiKKRで銅と銅亜鉛合金のフェルミ面

AkaiKKR(Machikaneyama)を用いると状態密度やバンド構造が簡単に描画できます。いくつかの第一原理計算パッケージには、これらに加えてフェルミ面の描画機能があります。しかしながら、AkaiKKRにはおそらくその機能はありません。そこで力任せにBlochスペクトル関数を計算してCuとCu70Zn30のフェルミ面の断面図を作成しました。

その結果は金属電子論〈上〉で紹介されている実験結果をよく再現しました。


金属のフェルミ面


金属の電子構造の個性を表現するために「状態密度(DOS)」や「エネルギー分散(バンド構造)」などがよく図としてプロットされます。「エネルギー分散」は電子の持っている波数とエネルギーの関係をプロットしたもので「状態密度」はエネルギーとそのエネルギーを持つ電子の個数をプロットしたものです。これらは共に、電子の状態をエネルギーの関数として表現しています。

しかしながら、実際の金属の物性は、その多くがフェルミエネルギーの電子の性質だけで決まります。そこで、フェルミ準位だけに限って波数ベクトルを表示した「フェルミ面」も金属の電子状態を表現するために利用されます。

純金属のフェルミ面は、非常によく研究されており、その一覧はウエブ上のデータベースでも見ることができます。(参考: Fermi Surface ExplorerThe Fermi Surface Database)

Cu.jpg
Fig.1: 銅のフェルミ面


Fig.1に示したのはThe Fermi Surface Databaseから引用した銅のフェルミ面です。銅のフェルミ面は、ほとんど自由電子的な球に近い形状をしています。しかしながらブルリアンゾーンのL点の周囲でフェルミ面がブリルアンゾーンに接触しています。

AkaiKKRでフェルミ面の描画


AkaiKKR(Machikaneyama)には標準ではフェルミ面を描画する機能は、ありません(多分)。そもそも不規則合金では、純金属と異なり、フェルミ面という概念自体が必ずしも妥当なものではなくなります。これは電子のエネルギー分散(バンド構造)を考えた際に不規則合金では、各バンドがにじんでしまったことと同じです。(参考: 密度汎関数法の発展 -マテリアルデザインへの応用)

バンド分散に関しては、Blochスペクトル関数を各k点に対して計算したものをプロットすることで表現できました。
同様にして、力まかせに片っ端からBlochスペクトル関数を計算し、フェルミエネルギー(近く)のものだけプロットするという方法でフェルミ面の断面の描画を行う事を考えます。

今回は純金属であるCuと、不規則合金でありながら比較的きれいにフェルミ面の残るCu70Zn30合金のフェルミ面の断面を描いてみることにします。これらの金属のフェルミ面の断面に関する実験的結果は金属電子論〈上〉に紹介されています。

シェルスクリプト


詳しい説明は、別のエントリにで行いたいと思いますが、おおよそ次のような事を行うシェルスクリプトを作成します。

  1. 波数空間上のベクトルPA, PBを2辺とする平行四辺形を考える
  2. 2つのベクトルをそれぞれn分割、m分割した空間メッシュを作成する
  3. spc計算用の入力ファイルのテンプレートから上記のk点を加えた入力ファイルを作成しspecxを起動
  4. 計算結果のspcファイル群からGNUPLOTに適したdatファイルの作成


結果


CuのXΓX断面とKΓX断面を計算したものがFig.2-3です。

XGXCu.png
Fig.2: Cuのフェルミ面のXΓX断面

XGKCu.png
Fig.3: Cuのフェルミ面のKΓX断面


XΓX断面におけるフェルミ面は、自由電子的な真円に近い形状をしています。黒のラインで示したのが第一ブリルアンゾーンの境界で、図中に書き込んではありませんが、斜めになっている角がW点、斜面の真ん中がL点です。

KΓX断面におけるフェルミ面は、前述したとおり円形からひずみ、第一ブルリアンゾーンの境界に触れています。触れている中心がL点で斜めの部分の上の角がU点です。

同様にCu70Zn30の断面図をプロットしたのがFig.4-5です。

XGXCuZn.png
Fig.4: Cu70Zn30のフェルミ面のXΓX断面

XGKCuZn.png
Fig.5: Cu70Zn30のフェルミ面のKΓX断面


金属電子論〈上〉で解説されている通り、Znの合金化によって1原子あたりの平均価電子数e/aが増加します。この結果として、フェルミ面が大きくなっていることがわかります。このことはXΓX断面では円の半径が大きくなっていること、KΓX断面では第一ブリルアンゾーンに触れている領域が広がっていることとして表れています。

関連エントリ






参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR CPA フェルミ面 

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

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性OPアンプPICCPAecaljモンテカルロ解析常微分方程式odeトランジスタ状態密度DOSインターフェース定電流PDS5022スイッチング回路半導体シェルスクリプト乱数レベルシフト分散関係HP6632AI2C可変抵抗トランジスタ技術ブレッドボード温度解析R6452A反強磁性確率論バンドギャップセミナー数値積分熱設計非線形方程式ソルババンド構造絶縁偏微分方程式ISO-I2CLM358マフィンティン半径フォトカプラシュミットトリガカオスLED三端子レギュレータGW近似A/Dコンバータ発振回路PC817C直流動作点解析USBTL431数値微分アナログスイッチカレントミラー74HC4053サーボ量子力学単振り子チョッパアンプ補間2ちゃんねる開発環境bzqltyFFT電子負荷LDAイジング模型BSch基本並進ベクトルブラべ格子パラメトリック解析標準ロジックアセンブラ繰り返し六方最密充填構造SMPコバルトewidthFET仮想結晶近似QSGW不規則合金VCAMaximaGGA熱伝導cygwinスレーターポーリング曲線キュリー温度スイッチト・キャパシタ失敗談ランダムウォークgfortran抵抗相対論位相図スピン軌道相互作用VESTA状態方程式TLP621ラプラス方程式TLP552条件分岐NE555LM555TLP521マントル詰め回路MCUテスタFXA-7020ZR三角波過渡解析ガイガー管自動計測QNAPUPSWriter509ダイヤモンドデータロガー格子比熱熱力学起電力awkブラウン運動スーパーセルUbuntu差し込みグラフ第一原理計算フェルミ面fsolveCIFxcrysden最大値最小値ubuntu最適化平均場近似OpenMP井戸型ポテンシャル固有値問題シュレディンガー方程式TeX2SC1815結晶磁気異方性OPA2277フラクタルFSM固定スピンモーメントc/a非線型方程式ソルバgnuplot全エネルギーfcc初期値マンデルブロ集合縮退正規分布interp1ウィグナーザイツ胞L10構造multiplotフィルタ面心立方構造PGAハーフメタル二相共存ZnOウルツ鉱構造BaOSIC重積分磁気モーメント電荷密度化学反応クーロン散乱岩塩構造CapSenseノコギリ波デバイ模型キーボード半金属フォノンquantumESPRESSOルチル構造スワップ領域リジッドバンド模型edelt合金Realforce軸ラベルグラフの分割凡例線種シンボルMAS830LCK1026LMC662PIC16F785トランス関数フィッティングトラックボールPC等価回路モデルヒストグラムパラメータ・モデル不規則局所モーメント最小二乗法TS-112TS-110直流解析ExcelGimp円周率片対数グラフ両対数グラフspecx.f疎行列三次元ifort文字列不純物問題P-10等高線ジバニャン方程式ヒストグラム確率論マテリアルデザイン入出力境界条件陰解法AACircuit熱拡散方程式HiLAPWMBEEAGLE連立一次方程式ナイキスト線図負帰還安定性Crank-Nicolson法日本語

最新コメント
リンク

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