事例1:低分子純物質(ベンゼン)
事例1:低分子純物質(ベンゼン)
Section titled “事例1:低分子純物質(ベンゼン)”この事例では、低分子純物質の代表例としてベンゼンを取り上げます。 SMILESから分子オブジェクトを作成し、指定した密度でユニットセル内に詰め込み、構造緩和を行う基本的な流れを解説します。
対象システム
Section titled “対象システム”- 化合物: ベンゼン (Benzene)
- 構成: 150分子(総原子数 1,800)
- 初期設定密度: 0.80 g/cm³
計算コード (run.py)
Section titled “計算コード (run.py)”import fbtk
# 1. SMILESから分子オブジェクトを作成benzene = fbtk.Molecule.from_smiles("c1ccccc1", name="benzene")
# 2. Builderの初期化builder = fbtk.Builder(density=0.80)
# 3. 分子をシステムに追加builder.add_molecule(benzene, count=150)
# 4. システムの構築system = builder.build()
# 5. 構造緩和(Pre-relaxation)の実行print("Starting relaxation for Benzene...")system.relax()
# 6. 結果の出力benzene.to_file("benzene.mol") # 分子単体system.to_file("benzene_cell.mol2") # 緩和後のユニットセルprint("Done.")
実行ログの確認
Section titled “実行ログの確認”実行時の標準出力には、最適化プロセスの進捗が表示されます。
Atoms: 1800 | Bonds: 1800-------------------------------------------------------------------------------- | Fmax | FRMS | Total E |Iter | (kcal/mol/Å) | (kcal/mol/Å) | (kcal/mol) | Status-------------------------------------------------------------------------------- 0 | 36968.7497 | 6300.0166 | 686143734596.2736 | 10 | 4785.6728 | 229.2529 | 156059.5598 | 20 | 2074.8591 | 129.3691 | 87049.2019 | ... 980 | 2.0817 | 0.1992 | 18859.4087 | 990 | 36.2483 | 1.3258 | 18848.6857 |--------------------------------------------------------------------------------=== Optimization Finished ===Reason: Max-IterTotal Time: 14.335s (Avg: 14.335ms / step)Final Energy: 18852.1265 kcal/molFinal Fmax: 2.3571 kcal/mol/ÅFinal FRMS: 0.2088 kcal/mol/ÅMin Distance: 1.0809 Å (Atoms 553 and 559)--------------------------------------------------------------------------------構造緩和の効果
Section titled “構造緩和の効果”緩和後の Min Distance(最近接原子間距離)が 1.0 Å 以上 確保されていれば、局所的な「原子の衝突」が解消された、物理的に妥当な初期構造が得られたと言えます。
ASEとの連携
Section titled “ASEとの連携”to_ase() メソッドを用いることで、ASEの Atoms オブジェクトへ変換し、外部のMDソフトや各種 Calculator と容易に連携できます。
atoms = system.to_ase()# atoms.calc = SomeCalculator(...)