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.
■
[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: |<
リンクローカルアドレス
■
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だけしか対応していないので、適切な擬ポテンシャルを作製・・・できるかな。。。。どこかに落ちてないかな、、、。