クロスアビリティ Winmostarサポートチームです。
目次
- pymatgenとは
- pymatgenのインストール
- pymatgenの基本機能
pymatgenとは
pymatgenとは、材料解析のためのオープンソースのpythonライブラリであり、以下の特徴があげられます。
- 原子や分子の構造をPythonのクラスで柔軟に表現
- VASPやGaussianといった多くのフォーマットに対応
- 位相図の作成や拡散解析などが可能な強力な解析ツール
- 状態密度やバンド構造など、電子構造解析も可能
- 結晶学のオープンデータベースであるMaterials Project REST APIと連動
pymatgenのインストール
1 : Anacondaのインストール
AnacondaはPython本体とその他豊富なライブラリが一括で内蔵された便利なパッケージです。
ダウンロードサイトからPCに対応するインストーラをダウンロードし、インストールします。
ダウンロードサイト:https://www.anaconda.com/download/#windows
2 : pymatgenのインストール
- condaを利用してpymatgenをインストール
初めにAnacondaのコマンドプロンプトを立ち上げます。そこで以下のコマンドを入力し実行します。
conda install --channel matsci pymatgen
pymatgenは、Anaconda cloudというAnacodndaで利用できるパッケージなどが公開されているクラウド上のmatsciというチャンネルにあり、そこからインストールするという形になります。
無事にインストールが済むと、このような画面になります。
3 : 開発環境の構成・pymatgenの導入
-
PyCharmのインストール
pymatgen自体はAnacondaのコマンドプロンプトで扱うこともできますが、ここではPython IDEの一種であるPyCharmと連携させて扱いたいと思います。ダウンロードサイトからCommunityバージョンをダウンロードし、インストールします。
ダウンロードサイト:https://www.jetbrains.com/pycharm/download/#section=windows -
PyCharmとAnacondaの連携
インストール終了後、PyCharmを開くと以下のような画面が開きます。
右下のConfiguresからSettingsを選択すると以下の画面が開きます。
Project Interpreterを選択します。
表示された画面右上のProject InterpreterのバーをクリックしShow Allを選択すると以下の画面が開きます。
右上の+を押すと、
このような画面が開くので、New Environmentを選択します。
LocationでAnacondaを保存した場所を選択し、Base interpreterでpython.exeを選択しOKを押します。
内蔵されているパッケージの一覧が表示されたらOKを押します。
するとアップデートが開始されます。これでPyCharmとAnacondaが連携されたことになります。
さらにPyCharmにpymatgenを連携させます。改めてSettingsからProject Interpreterを選択し、右上の+をクリックします。
検索バーにpymatgenと打つと左の欄にpymatgenが現れるので、それを選択し左下のInstall Packageをクリックします。これで完了です。
最初の画面でCreate New Projectを選択し、Projectを始めましょう。
pymatgenの基本機能
- 元素クラス : Element class
Element classを利用することで元素に関する物性値を見ることができます。
import pymatgen as mg
si = mg.Element('Si')
print(si.atomic_mass)
print(si.melting_point)
このように簡単に元素に関する物性値を見ることができます。
- 組成クラス : Composition class
使い方はElement classとほとんど同じです。
import pymatgen as mg
fe2o3 = mg.Composition("Fe2O3")
print(fe2o3.formula)
print(fe2o3.weight)
print(fe2o3.total_electrons)
- 結晶構造クラス : Structure class
結晶格子に関するオブジェクトです。以下ではCsClの単位格子について考えます。
import pymatgen as mg
lattice = mg.Lattice.cubic(4.2)
structure = mg.Structure(lattice, ["Cs", "Cl"], [[0, 0, 0], [0.5, 0.5, 0.5]])
print(structure.volume)
print(structure[1])
- 3行目 : 格子定数$a=4.2$の立方格子を定義し、lattice変数に代入しています。
- 4行目 : 3行目で定義した格子と原子の座標情報を定義し、structure変数に代入しています。
[0, 0, 0], [0.5, 0.5, 0.5]はそれぞれCs原子とCl原子の分率座標を意味しています。 - 5行目 : 定義した単位格子の体積を表示しています。$ a^3 = 74.088$ と検算できますね。
- 6行目 : structure変数には配列としてアクセスできます。0番目にCsが、1番目にClが格納されています。
1番目の要素を表示すると、カーテシアン座標と元素記号を確認することができます。