AkaiKKRの.infoファイルとspmain.f

AkaiKKR(machikaneyama)は、計算結果のうち重要な情報をdataディレクトリの.infoファイルに保存してあります。AkaiKKRの.infoファイルから情報を取り出すでは tail や sed, awk を使って .info ファイルから必要な情報だけを切り出す方法を書きました。

それ以降少し気になっていたのですが、アウトプットファイルに記録された(標準出力に出る)全エネルギーの値に比べて .info ファイルに書きだされる全エネルギーは、小数点以下の数値が一桁少ないのです。
そこでソースコードを眺めてみると source/spmain.f の最後に .info ファイルへの書き込みを行っている場所を見つけました。最後の方(1032行目ぐらい)に以下の記述があります。
c-------- a dependence of te and the moment are given
write(25,'(1x,f12.4,f20.7,f10.5)')a,te,stotal

このなかのf20.7がどうやら全エネルギーを表しているようで、これをf20.8などに変更すれば小数点以下8桁まで .info ファイルに書き込まれるようになります。他にも c/a を表示したり色々なことができそうな感触をコメントアウトされている場所から読み取ることができます。

関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama 

ecaljでGaAsとスピン軌道相互作用

AkaiKKRで鉛の相対論計算で書いた通りスピン軌道相互作用の有無で結晶のバンド構造は変化します。ecaljのマニュアルにはGaAsを例として、スピン軌道相互作用を含まない計算を行った後から摂動としてスピン軌道相互作用の効果を取り込む方法が書かれているので、今回はこれを実行しました。

001_20150927033607760.png

Fig.1: GaAsのバンド構造(GW近似, スピン軌道相互作用あり)

002_20150927033607397.png

Fig.2: GaAsのバンド構造(GW近似, スピン軌道相互作用なし)


計算の手順


まず通常の手順でLDA計算やGW近似計算を行います。(参考: ecaljの実行手順(LDA計算), ecaljの実行手順(GW近似))

次に新しくディレクトリを作成し、そこへ以下の2つ(GW近似計算場合は4つ)のファイルをコピーします。
  • ctrl.gaas
  • rst.gaas
  • (sigm.gaas)
  • (QGpsi)

更に、コピーした ctrl.gaas のパラメータを下記のように変更します。
  • nspin=2
  • so=1
  • Q=band

該当箇所は以下のようになります。
% const pwemax=3 nk1=4 nk2=4 nk3=4 nit=30  gmax=12  nspin=2 metal=3 so=1 xcfun=1 ssig=1.0

Q=band # (this is quit switch if you like to add)

Q=bandはデフォルトでコメントアウトされているので、コメントアウトを外します。

この状態で再び lmf を実行します。
lmf gaas

その後、通常通り job_band を実行すれば、スピン軌道相互作用を含むバンド図を描くことができます。

スピン軌道相互作用とバンド構造


AkaiKKRで鉛の相対論計算で書いた通り、相対論の効果によりバンドの縮退が解けます。

003_20150927033607045.png

Fig.3: GaAsのバンド構造(LDA, スピン軌道相互作用あり)

004_20150927033606869.png

Fig.4: GaAsのバンド構造(LDA, スピン軌道相互作用なし)


関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj スピン軌道相互作用 相対論 半導体 GW近似 

ecaljで反強磁性NiO

ecaljで強磁性鉄のスピン分極計算では、ecaljのマニュアルに従って、スピン分極計算の例として強磁性の体心立方構造(bcc)鉄の計算を行いました。
今回は、反強磁性の計算例として、やはりマニュアル通り、NiOの計算を行いました。

001_20150927023611089.png

Fig.1: 反強磁性NiOのバンド構造



反強磁性半導体NiO


ecaljで強磁性鉄のスピン分極計算では、金属強磁性体のbcc鉄の計算を行いました。今回はecaljを用いて反強磁性半導体であるNiOの計算を行います。
とはいえbcc鉄のときと同様に行う事は結晶構造ファイル ctrls.nio に初期モーメントを反強磁性になるように与えることと制御ファイルにnspin=2を設定することだけです。

結晶構造ファイル ctrls.nio (初期スピンモーメントの指定)


(前回もそうでしたが)結晶構造ファイルは~/ecalj/MATERIALS/にあるものをそのまま使います。もし存在しないようならMATERIALSディレクトリでjob_marerials.pyのスクリプトを(--noexecオプション付きで)実行するとファイルが作成されると思います。
#id  = NiO
# NOTE set MMOM. (it will be included in this...)
%const bohr=0.529177 a=7.88
STRUC ALAT={a} PLAT= 0.5 0.5 1.0 0.5 1.0 0.5 1.0 0.5 0.5
SITE ATOM=Niup POS= .0 .0 .0
ATOM=Nidn POS= 1.0 1.0 1.0
ATOM=O POS= .5 .5 .5
ATOM=O POS= 1.5 1.5 1.5
SPEC
ATOM=Niup Z=28 MMOM=0 0 1.2 0
ATOM=Nidn Z=28 MMOM=0 0 -1.2 0
ATOM=O Z=8 MMOM=0 0 0 0

ecaljで強磁性鉄のスピン分極計算で書いた通り、スピン分極を含む計算を行うときには、初期スピンモーメントを与えておく必要があります。反強磁性にするために重要な点は、アップスピンとダウンスピンのニッケルに符号が逆の初期モーメントを与えておくことです。

SITE で定義する ATOM はサイト名です。これまでは単純に原子の名前を付けてきましたが、同じ原子でもサイトが異なれば、別の名前を付ける必要があります(だと思います)。今回は同じニッケルでもNiupとNidnの2種類が存在します。これらが何の原子であるかを指定するために SPEC にて 原子番号 Z=28 が指定されています。酸素に関しても SPEC で指定されていますが、結晶の中でどれか一つでも SPEC を書いたなら(今回はNiupとNidn)、すべての原子について SPEC に原子番号やスピンモーメントを指定しなければなりません(だったと思います)。

制御ファイル ctrl.nio (スピン分極計算の設定)


ecaljで強磁性鉄のスピン分極計算のときと同様です。
ctrlgenM1.py nio --nspin=2
cp ctrlgenM1.ctrl.nio ctrl.nio


002_20150927023610043.png

Fig.2: 反強磁性NiOの状態密度


関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj 反強磁性 半導体 

ecaljで強磁性鉄のスピン分極計算

ecaljでは、デフォルトではスピン分極を考慮しない(非磁性の)計算となっています。スピン分極を含む計算を行う場合、デフォルトの手続きに加えて、以下のことを行う必要があります。
  1. 結晶構造ファイル ctrls.fe にスピンモーメントの初期値を記入する
  2. 制御ファイル ctrl.fe に nspin=2 を設定する



001_20150927005941da8.png

Fig.1: 鉄のバンド構造



体心立方構造(bcc)の強磁性鉄


第一原理計算を行う際にスピン分極を考慮しない計算は、スピン分極を考慮する計算よりも計算時間を短くできます。そこでシリコンや銅といった非磁性であることが予想できる物質の計算を行う場合は、スピン分極を考慮しない計算の方が有利です。
このためecaljのデフォルトの設定では、スピン分極を考慮しないようになっているようです。これに対して体心立方構造(bcc)の鉄などは強磁性体なのでスピン分極を考慮した計算を行う必要があります。

結晶構造ファイル ctrls.fe (初期スピンモーメントの指定)


初期のスピンモーメントを2μBとした体心立方構造(bcc)鉄の結晶構造ファイルは以下のようになります。

#id  = Fe
%const bohr=0.529177 a=2.8665/bohr
STRUC ALAT={a}
PLAT=-.5 .5 .5
.5 -.5 .5
.5 .5 -.5
SITE ATOM=Fe POS= 0 0 0
SPEC ATOM=Fe Z=26 MMOM=0,0,2,0


これまでの入力ファイルに加えて SPEC の行が追加されています。
ATOM は SITE で定義したサイト名です。それに続く Z は原子番号です。スピンモーメントを指定する場合、原子番号は省略することはできません(だったと思います)。

MMOM がスピンモーメントで左から順にs,p,d,f状態です。
鉄の強磁性は主にd電子に起因するのでd電子の値を実験から得られている全磁気モーメント(2.2μB)に近い値としておきます。あくまで初期モーメントなので、固定スピンモーメント計算ではないのですが、リーズナブルな値を与えておく方が良いと思います。(参考: AkaiKKRで固定スピンモーメント計算)

制御ファイル ctrl.fe (スピン分極計算の設定)


次にスピン分極を計算するための制御ファイル ctrl.fe を作成します。制御ファイルの作成にはecaljの実行手順(LDA計算)の通り ctrlgenM1.py を使います。ここで追加のオプションとして --nspin=2 を指定すればスピン分極計算用の制御ファイルが作成されます。
ctrlgenM1.py fe --nspin=2
cp ctrlgenM1.ctrl.fe ctrl.fe

後は通常通りにLDA計算を行います。

制御ファイルのオプション(k点数の変更など)


ctrlgenM1.py にオプションを追加する方法は、他の用途にも使えます。例えば、状態密度計算のためにk点の数を増やすことを考えます。
ctrlgenM1.py fe --nspin=2 --nk1=8
cp ctrlgenM1.ctrl.fe ctrl.fe



002_20150927005941a99.png

Fig.2: 鉄の状態密度


他にも交換ポテンシャルの種類やスピン軌道相互作用の有無などが指定できるようです。--helpオプションを付けて実行するとデフォルトの設定が表示されます。
ctrlgenM1.py --help

以下のようにデフォルトの設定などが表示されました。
ctrlgenM1.py. tkotani and h.kino aug_2013 version :
---------------
Purpose:
Generate a template of ctrl file names as ctrlgenM1.ctrl.{ext}."
Before you run lmfa, you have to copy ctrlgenM1.ctrl.{ext} to ctrl.{ext} and edit it.
Usage : ctrlgenM1 {extension of ctrl file} [option]
[options] = INPUT arguments in the followings.
Your given options (also defaults when not specified) are shown at the begining of console output.
Example:
After you write ctrls.si, run
>ctrlgenM1.py si --nk1=8 --nk2=8 --nk3=8 --tratio=1.0 --xcfun=vwn


=== INPUT options (shown values are default) ===
--help given
--showatomlist Not exist
--nspin=1
--so=0
--nk1=4 Division for BZ integral along a-axis
--nk2=4 (if not give, nk2=nk1) along b-axis
--nk3=4 (if not give, nk3=nk1) along c-axis
--xcfun=vwn !(bh,vwn,pbe)
+++ Followings are for experts to change +++
--tratio=0.97 (for MT radius: we use touching MT radius \times this ratio. lmf --getwsr is called.
if negative, we use use defalut MT radius in ctrlgenM1.py)
--systype=bulk !(bulk,molecule)
--insulator Not exist !not set this if you are not expert. (do not set for --systype=molecule)
--fsmom=0.0 ! (only for FSMOM mode. --systype=molecule automatically set this)
--ssig=1.0 ! ScaledSigma(experimental =1.0 is the standard QSGW

--- end of help ---


関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj 強磁性 状態密度 DOS 

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

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

最新コメント
リンク

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