I/O モジュール

Atomsへ変換する

log2atoms

from grrmpy.io import log2atoms

eqs_list = log2atoms("XXX_EQ_list.log",com="XXX.com",poscar="POSCAR") # GRRM-VASPで計算した場合
eqs_list = log2atoms("XXX_EQ_list.log",com="XXX.com") # クラスターモデルでGRRM計算した場合
# FrozenAtomsがない場合,読み込みたくない時はcomファイルは指定しなくて良い
grrmpy.io.read_listlog.log2atoms(logfile, com=None, poscar=None, constraints=[])[ソース]

logファイルからAtomsオブジェクトに変換する

Parameter:

logfile: str or Path

_list.logファイルパス.

com: str or Path
FrozenAtomsを追加する場合にcomファイルを指定.
その他comファイルの情報を確認したい時はgrrmpy.structure.comfile.COMを参照
poscar: str or Path

POSCARパスを設定した場合.セル情報を読み取りAtomsオブジェクトに適用する.

constraints: ase.constraints
与えたconstraintsは全てのAtomsに適用される.
複数のconstraintsを与えたい場合はリストで与える
戻り値

Atomsオブジェクト

戻り値の型

Atoms

read_connections

from grrmpy.io import read_connections
connections = read_connections("XXX_TS_list.log")
print(connections)# --> [[0,1],[5,4],[4,6],[30,2],["??",1]]
grrmpy.io.read_listlog.read_connections(logfile)[ソース]

logファイルからCONNECTIONSを取得する

Parameters:

logfile: string

TS or PT_list.logファイルパス

戻り値

CONNECTIONのリスト

戻り値の型

list of tuple

frozen2atoms

grrmpy.io.read_com.frozen2atoms(comfile, poscar=None)[ソース]

COMファイルのFrozenAtomsをAtomsオブジェクトに変換する

Parameters:

comfile: str or Path
comファイルパス.
poscar: str or Path
POSCARパスを設定した場合.セル情報を読み取りAtomsオブジェクトに適用する.
戻り値

FrozenAtomsのAtomsオブジェクト

戻り値の型

Atoms

read_traj

grrmpy.automate.auto_opt.AutoOpt で計算を行なった後,計算後の構造を一括でAtomsに変換する際に用いる.

grrmpy.io.read_traj.read_traj(folder, blank=True)[ソース]
フォルダ内のtrajファイルを検索し,Atomsのリストする.
trajファイル名には必ず数字が含まれている必要がある.
例えば,0.traj, 3.traj, 2.trajファイルが存在する場合, 0.traj, 2.traj, 3.trajの順でファイルの読み込みを行ない,
blank=Trueの場合,[Atoms,None,Atoms,Atoms]のように数字の存在しないファイルはNoneの要素になる.
blank=Flaseの場合,None要素は作成されない.
ファイル名には数字を含む必要があるが,例えばsample_1_1.trajの場合,始めの数字である"1"のみに注目しソートされる.
従って,blank=Trueの際にsample_1_1.traj, sample_1_2.trajの2つのファイルが存在するとき"1"のファイルが2つ存在すると判断されるためエラーとなる.
blank=Falseの場合このような問題は起きず,sample_1_1.traj, sample_1_2.trajの順で読み込まれる.

Parameters:

folder: str or Path

フォルダ名

戻り値

Atomsのリスト,元々のファイルパス

戻り値の型

tuple

iread_traj

grrmpy.io.read_traj.iread_traj(folder, blank=True)[ソース]

read_trajのimages版

list.logファイルをマージする.

class grrmpy.io.log.Log(eqfile=None, tsfile=None, ptfile=None)[ソース]

logファイルを与えた場合それをLogオブジェクトとして格納する.

Paramaters:

eqfile: str or Path
XXX_EQ_list.logファイルのパス.
tsfile: str or Path
XXX_EQ_list.logファイルのパス.
ptfile: str or Path
XXX_EQ_list.logファイルのパス.

サンプル

>>> log1 = log("XXX_EQ_list.log",ts="XXX_TS_list.log", pt="XXX_PT_list.log")
>>> log2 = log("YYY_EQ_list.log",ts="YYY_TS_list.log", pt="YYY_PT_list.log")
>>> marge_log = log1 + log2 # マージ
>>> marge_log.write_log("margedEQ.log", "margedTS.log", "margedPT.log")
write_log(eqfile='margedEQ.log', tsfile='margedTS.log', ptfile='margedPT.log')[ソース]

Logオブジェクトからlogファイルを書き出す.

Paramaters:

eqfile: str or Path
保存するXXX_EQ_list.logファイルのパス.
tsfile: str or Path
保存するXXX_EQ_list.logファイルのパス.
ptfile: str or Path
保存するXXX_EQ_list.logファイルのパス.

htmlに書き込む

write_html

  • NEBイメージのエネルギーダイアグラムを作成
    from grrmpy.io import write_html
    from ase.optimize import FIRE
    from ase.neb import NEB
    
    neb = NEB(images)
    opt = FIRE(neb,climb=True)
    opt.run(fmax=0.001)
    opt.attach(lambda:write_html("NEB.html",images),interval=10) # 10イタレーション毎に逐次書き込み
    write_html("NEB.html",images) # 書き込み
    
  • 振動のエネルギーダイアグラムを作成
    from grrmpy import pfp_calculator
    from ase.vibrations import Vibrations
    from ase.io import iread
    
    vib = Vibrations(ts)
    vib.run()
    vib.write_mode(n=0) # --> vib.0.trajが作成される
    vib_images = list(iread("vib.0.traj"))
    for image in vib_images
        image.calc = pfp_calculator()
    write_html("Vib.html",vib_images)
    
  • 追記モード
    from grrmpy.io import write_html
    from ase.optimize import FIRE
    from ase.neb import NEB
    
    write_html("NEB.html",images) # 計算前のNEBイメージを書き込み
    neb = NEB(images)
    opt = FIRE(neb,climb=True)
    opt.run(fmax=0.001)
    write_html("NEB.html",images,append=True) # 同一ファイル上にのNEBイメージを追記
    
grrmpy.io.html.write_html(html, obj, append=False, *args, **kwargs)[ソース]

htmlファイルとして保存する

Parameters:

html: string

保存ファイル名

obj: object
objの引数には次のオブジェクトを指定できる
- NEB
NEBのエネルギーダイアグラムを作成
- Vibrations
エネルギーダイアグラムと振動数表を作成
- trajファイル
エネルギーダイアグラムを作成

BaderChargeの読み込み

read_afc

grrmpy.io.read_acfdat.read_acf(file='ACF.dat') DataFrame[ソース]

ACF.datファイルの中身をDataFrameにして返す.

Parameters:

fileobj: Union[str, Path]

ACF.dataファイルパス

戻り値

ACF.datのデータフレーム

戻り値の型

np.DataFrame

grrmpy.io.read_acfdat.get_dader(atoms: Atoms, file='ACF.dat', displacement=0.0001) ndarray[ソース]
ACF.datファイルからBaderChargeを計算する.
BaderCharge = ZVAL - Charge(ACF.dat内に記載の)
で計算される.

Parameters:

atoms: Atoms

Atomsオブジェクト

file: Union[str, Path, DataFrame]

ACF.dataファイルパス, DataFrame.

displacement: float

原子の順番がACF.datとAtomsとで同じか検証するため.

戻り値

BaderChargeのリスト

戻り値の型

np.ndarray

VESTAのelement.iniやCSVファイルからclolorの辞書を作成する

grrmpy.io.read_elementsini.read_elementsini(elements_ini_path, rgba=False)[ソース]

構造をViewerで可視化する際の原子の色を規定する辞書を作成する.

Parameters:

elements_ini_path: Union[str, Path]
elements.ini(VESTAで使われるやつ)のパス
rgba: bool
Trueの場合, (r,g,b,a) のタプル,RGBは最大値が1で規格化される
Falseの場合, 0xから始めるHEXで与えられる
戻り値

元素名,hexカラーコードの辞書.{'H':'0xffffff'}

戻り値の型

dict

grrmpy.io.read_elementsini.read_csv(filename, rgba=False)[ソース]

原子の色を規定したcsvファイルを読み込みcolor_dictを返す

Parameters:

filename: str
csvファイル
rgba: bool
Trueの場合, (r,g,b,a) のタプル,RGBは最大値が1で規格化される
Falseの場合, 0xから始めるHEXで与えられる
戻り値

元素名,hexカラーコードの辞書.{'H':'0xffffff'}

戻り値の型

dict

高圧縮でシリアライズ化する

pickleのバイナリデータをbz2にさらに圧縮することでpythonオブジェクトを高い圧縮率でシリアライズ化する.

grrmpy.io.compressed_pickle.loads(comp)[ソース]
grrmpy.io.compressed_pickle.dumps(obj)[ソース]
grrmpy.io.compressed_pickle.load(fname)[ソース]

dumpで圧縮したbz2ファイルをpythonオブジェクトとして展開する

Parameters

fname:

入力ファイル名(bz2ファイル)

grrmpy.io.compressed_pickle.dump(obj, fname, level=9)[ソース]

pythonオブジェクトをbz2ファイルに圧縮しつつ,シリアライズ化する

Parameter:

obj: obj

Pythonオブジェクト

fname:

出力ファイル名