コンテンツにスキップ

事例1:低分子純物質(ベンゼン)

事例1:低分子純物質(ベンゼン)

Section titled “事例1:低分子純物質(ベンゼン)”

この事例では、低分子純物質の代表例としてベンゼンを取り上げます。 SMILESから分子オブジェクトを作成し、指定した密度でユニットセル内に詰め込み、構造緩和を行う基本的な流れを解説します。

  • 化合物: ベンゼン (Benzene)
  • 構成: 150分子(総原子数 1,800)
  • 初期設定密度: 0.80 g/cm³
Benzene Molecule
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.")
Benzene Unit Cell

実行時の標準出力には、最適化プロセスの進捗が表示されます。

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-Iter
Total Time: 14.335s (Avg: 14.335ms / step)
Final Energy: 18852.1265 kcal/mol
Final Fmax: 2.3571 kcal/mol/Å
Final FRMS: 0.2088 kcal/mol/Å
Min Distance: 1.0809 Å (Atoms 553 and 559)
--------------------------------------------------------------------------------

緩和後の Min Distance(最近接原子間距離)が 1.0 Å 以上 確保されていれば、局所的な「原子の衝突」が解消された、物理的に妥当な初期構造が得られたと言えます。

to_ase() メソッドを用いることで、ASEの Atoms オブジェクトへ変換し、外部のMDソフトや各種 Calculator と容易に連携できます。

atoms = system.to_ase()
# atoms.calc = SomeCalculator(...)