AkaiKKRteam / AkaiKKRPythonUtil

Python utilities for AkaiKKR
Other
5 stars 1 forks source link

次の版での変更 #14

Open nim-hrkn opened 1 year ago

nim-hrkn commented 1 year ago

class設計変更要件

問題点

objectへの作用とobjectの変更とを混同している。

対応予定

objectへの作用とobjectの変更クラスを分離する。 (pymatgenやaseはそうなっている。)

以下は別のオブジェクト

AkaiKKRの実行は以下になる。

nim-hrkn commented 11 months ago

pymatgenはsite occupancyを理解できる。 aseはsite occupancyを理解できない(ase=3.22.1) が,理解できるようにクラス継承を行うと計算が可能に見える。openmxクラスなどあるのでそこから作成が可能だろう。

nim-hrkn commented 11 months ago

ASEはOpenMXの例だと

from ase import Atoms
from ase.calculators.openmx import OpenMX

water = Atoms('H2O',
              positions=[(0, 0, 0), 
                         (0, 0.76, 0), 
                         (0, 0.58, 0.58)],
              calculator=OpenMX())

# OpenMXのパラメータを設定
water.calc.set(
    xc='LDA',
    dfixed=2.0,
    nosym=True,
    spin='collinear',
    dftgrid=1,
    workdir='path_to_your_working_directory',  # ここで実行ディレクトリを指定
    prefix='water_calculation'                 # このprefixを使用して入出力ファイル名が設定されます
)

# エネルギー計算を実行
energy = water.get_potential_energy()

print(f"Total Energy: {energy} eV")

と実行する。実行するrun()メソッドはある。計算されていなければget_potential_energy()が自動的にrun()を呼ぶ。