リファレンス
このページは主要コンポーネントの役割を人間向けに整理したものです。
クラス、メソッド、引数、型注釈、docstring の完全な一覧は packmol_util に自動生成されます。
AmorphousBuilder
構造生成全体をまとめる高レベル I/F です。
主な役割:
元素と組成比の保持
総原子数と組成比の整合
組成単位倍率の決定
質量密度または数密度からセルサイズを決定
Packmol template の登録
Packmol 入力生成
Packmol 実行
POSCAR 変換
通常の利用ではこのクラスを入口にします。
Packmol
Packmol の実行と、その周辺の数値処理を担当します。
主な役割:
原子量・平均原子量
質量密度と数密度の変換
原子数と数密度からセルサイズを計算
Packmol 実行
XYZ から POSCAR への変換
PackmolInp
Packmol 入力ファイルの構築を担当します。
構造 template、配置数、配置領域、packing radius などを Packmol の入力文法へ変換します。
model
Packmol に渡す構造 template と recipe を扱います。
単原子 template のほか、複数原子からなる構造ユニットの XYZ template を生成できます。
Config
設定ファイルから packmol_util の設定値を読み込むためのクラスです。
param
原子量など、密度・セルサイズ計算に利用する定数を保持します。
API Reference
この部分は手書きではありません。docs/build.sh が src/packmol_util を走査してビルド時に生成します。
公開 API の使用上の区別
コンポーネント |
主要 API |
役割 |
|---|---|---|
|
|
組成・密度・テンプレートから構造を生成 |
|
|
|
|
|
密度とセル長の計算 |
|
|
原子数と組成比 |
|
|
実行、変換、FNC 出力 |
|
|
XYZ テンプレート作成 |
|
|
配置レシピ |
|
|
正四面体 FNC |
|
|
元素ペア距離から配置半径を近似 |
|
|
YAML 設定の読込 |
AmorphousBuilder の引数
symbols と ratios は対応する元素と整数比です。total_atom_count は希望原子数、minimum_separation は Packmol の tolerance、mass_density は g/cm³、number_density は Å⁻³、packmol_bin は実行ファイル名またはパスです。密度を両方指定した場合、数密度が優先されます。add_template(xyz_file, number, packing_radii=None, fnc_pairs_in_template=None, fnc_distance_ranges=None, fnc_output_constraint_types=None) の number はテンプレートの複製個数であり、原子数ではありません。
PackmolInp の引数
PackmolInp(minimum_separation_distance, output_xyz, box_length, use_pbc=False) は立方体セルを使用します。add_structure(xyz_file, number, packing_radii_by_atom_symbol=None) の半径辞書は元素記号をキーとします。write(inp_file) はテンプレート内の元素記号を 1 始まりの Packmol atom index に変換し、必要に応じて atoms ... radius ... end atoms を出力します。
Config の読み込み
Config(yaml_path="settings.yaml") はインスタンス属性を、Config.load_yaml("settings.yaml") はクラス属性を YAML のキーで上書きします。存在しないキーは NO SUCH VAR: と表示されます。load_yaml() の引数省略時は環境変数 PACKMOL_UTIL_CONFIG_YAML を参照します。インスタンス生成時の yaml_path 省略は YAML を読み込みません。Config の初期値は Fe–Si–B 系の例示設定であり、AmorphousBuilder が自動的に参照するものではありません。
制約
Packmol.write_fnc_file() は type 1 から連続する拘束種を要求します。Packmol.xyz_to_poscar() は Packmol 入力内の最初の inside box 行から立方セルの長さを取得します。PackmolInp の pbc と inside box は同じセル長を使用します。入力ファイルを直接変更する場合、セル長の解釈との整合を保ってください。
付属スクリプト・サンプルのインストール
pip install packmol-util 後、任意の作業ディレクトリで次のコマンドを実行できます。
packmol_util install scripts
packmol_util install example
前者はリポジトリの scripts/ 以下、後者は example/ 以下のファイルを現在の作業ディレクトリにコピーします。下位ディレクトリ構成も保持します。たとえば example/Li3PO4/non_builder/make_Li3PO4.py は ./Li3PO4/non_builder/make_Li3PO4.py に配置されます。
既存の同名ファイルは既定で上書きせず、スキップします。上書きする場合のみ --force を指定してください。
packmol_util install scripts --force
packmol_util install example --force
コピー先はコマンド実行時のカレントディレクトリです。既存の無関係なファイルは削除しません。Packmol 本体のインストールとは別の機能です。