蛙の井戸見聞記 Pretty frog in a well who knows nothing of the great web ocean!

~~ 好奇心は猫をも殺す Curiosity Kills the Cat ~~ ♪欲しいモノ・食べたいモノ・ネットで集めた情報と日々の記録の倉庫♪ Logging my life... Since 2003.12  

Igor

[igor] Igor のProcedureでWaveを扱う場合、

Variable name_wave1 //使っているWAVEの名前
wave w1 = root:$name_wave //Waveを使う時の変数
Variable name_wave2 //使っているWAVEの名前
wave w2 = root:$name_wave //Waveを使う時の変数
Variable name_wave3 //使っているWAVEの名前
wave w3 = root:$name_wave //Waveを使う時の変数

などとして、Waveの変数を設定。
グラフを描く場合は下記のようにする。

variable nstart, nend
Display $w1 vs $w2 // 縦軸namewave1と横軸namewave2のグラフを描く
Display $w1[nstart,nend] vs $w2[nstart,nend] // 縦軸namewave1と横軸namewave2のグラフの一部を描く

特定のデータのピックアップには

variable p_val
FindLevels /D=w3 w1, p_val // namewave1のうちp_valを持つインデックスをリストアップしてnamewave3に代入
FindLevels /D=w3 /EDGE=1 w1, p_val // namewave1のうちp_valを持つインデックスのうち、w1の単調増加のところでクロスしたものをリストアップしてnamewave3に代入

などとできる。
特殊な関数でフィッティングしたい場合は下記。例は円の式。

Make/D/N=3/O W_coef // /D->倍精度、/N=n n個の要素、/O上書き
W_coef[0] = {0,0,0}//初期値
FuncFit/X=1 circle W_coef $name_wave1[nstart,nend] /X=name_wave2 /D
			
Function circle(FG_ParamWave, x) : FitFunc
	Wave FG_ParamWave
	Variable x
	Variable testa = FG_ParamWave[0]
	Variable testb = FG_ParamWave[1]
	Variable testr = FG_ParamWave[2]
	return sqrt(testr^2-(x-testa)^2)+testb
end

[paper]プレプリントサーバーのリスト

  • 物理・化学系
    • arXiv(物理系多分野)
    • ChemRxiv(化学)
    • ECSarXiv(電気化学)
    • TechRxiv(工学)
    • engrXiv(工学)
  • 生物系
    • bioRxiv (生物学)
    • AgriXiv (農学)
    • JMIR Preprints (医学)
    • medRxiv (医学)
    • Preprints with The Lancet (医学)
  • 地学系
    • PaleorXiv (古生物学)
    • MarXiv (海洋気候学)
    • EarthArXiv (地球科学)
    • ESSOAr (地球科学)

日本

  • 文系
    • RePEc (経済)
    • EdArXiv (教育)
    • APSA preprints(政治学

etc.

  • 多分野
    • Research Square(多分野)
    • SSRN (多分野)
    • SciiELO preprints (多分野)

etc.

Where

where コマンドが見つからなかったので

for i in `echo $PATH | sed -e 's/\:/ /g'`
 do
 find $i -name "$1" -print 
done

を whereとして保存、

chmod +x where

./where python

でPATHに設定された検索パス上にpythonが全部検索される。
恒久的に使えるようにするためには、whereファイルを適当なdirectoryに入れて、このdirectoryを検索パスに追加。

[python]ひな形。

import sys
import re
import numpy as np
import struct
import array
import math
#import matplotlib.pyplot as plt
#from decimal import Decimal, ROUND_HALF_UP

args = sys.argv
argc = len(args)
if argc < 2:
    print("This program is for.......")
    print("USAGE: python test.py test.txt ")
    sys.exit(0)
path = args[1]

with open(path) as f:
    for line in f:
        line = line.rstrip('\n')
        parts = line.split()


outpath = re.sub(r'\..*',"_result.txt",path)
with open(outpath, mode='w') as f:
 |<   

リンクローカルアドレス

リンクローカルアドレスについて。

  • APIPA automatic private IP addressing という仕組みで配分される「リンクローカルアドレス」は、169.254.0.0/16 ~169.254.255.255/16 の範囲のアドレスを使用。

(つまりネットマスクは255.255.0.0)

DFT続き

動かして理解する 第一原理電子状態計算:DFTパッケージによるチュートリアル
www.amazon.co.jp
をいろいろ読んでみた。

cif2cellを使えば、

cif2cell -p pwscf --pwscf-cartesian-latticevectors ***.cif

で、None.inと雛形が作れる。ただし、cifファイルは、VESTAで書き出したものが良い、らしい。

各種パラメータで、scfやfixedなどとしたinファイルで自己無撞着計算。

pw.x < scf.in > scf.out

cutoffやkを最適化。

その後、パラメータをnscfやtetrahedronなどとしたinファイルで細かく計算

pw.x < nscf.in > nscf.out

Density of Stateの表示のために、&dosのinファイルで

dos.x < dos.in >dos.out

できたファイルをプロットすれば良い。

partial DOSは、&projwfcのinファイルで

projwfc.x < pdos.in >pdos.out

と計算すると、大量にファイルが出現する。#とか()が入っているファイル名で、いらいらするがgnuplotあたりでプロットすればpDOSの図が得られる。

バンド図に必要なK点は、

cif2cell -f **.cif -p vasp --vasp-cartesian

でPOSCARができるので、上記文献に載っているgen_kpath.pyを用いて、

python3 gen_kpath.py

とすれば、KPONINTSができる。
gen_kpath.pyはpymatgenを使ったスクリプト。これを使わなくても、pymatgenのマニュアル読めばできる。
こんなのもある。https://www.materialscloud.org/work/tools/seekpath

バンド図表示のために, パラメータをbands, fixedなどとしたinファイルで

pw.x < band_nsfc.in > band_nsfc.out

&bandのinファイルで

band.x < bands.in > bands.out

plotband.inファイルを作成して

plotband.x < plotband.in


しかし、某物質で計算してみたら、d軌道が現れず、だいぶ苦戦したけどわかったのは、擬ポテンシャルが問題だったということ。かなり内側まで計算できるやつでないとダメだった・・・。オフィシャルサイトの擬ポテンシャルではダメそうなので、さてどうしよう。
PW91のウルトラソフト擬ポテンシャルで論文のDOS,pDOSを再現できた。
LobsterはPAWだけしか対応していないので、適切な擬ポテンシャルを作製・・・できるかな。。。。どこかに落ちてないかな、、、。