⚛️

ブラウザだけで量子化学計算ができるWebアプリ「GANSU Lite」を公開しました

に公開

ブラウザを開くだけで量子化学計算

ブラウザだけで動く量子化学計算Webアプリ「GANSU Lite」を公開しました。Hartree–Fock、DFT、MP2/CCSD、構造最適化、振動解析までひととおり実装しています。環境構築をせずに量子化学計算を触りたいときに使える軽量パッケージです。

🔗 デモ:

https://yasuaki-ito.github.io/GANSU-Lite/

GANSU Liteのメイン画面(H₂O分子をRHF/STO-3Gで計算)

GANSU Liteのメイン画面。左で分子を編集、右で理論・基底・SCF設定を指定して「Run Calculation」で計算開始。

インストールもサーバーも要りません。入力した分子座標はどこにもアップロードされず、計算はすべてブラウザ内で走ります。用意されたサンプル分子を選んで理論と基底を決めるだけで、手元で計算が動き出します(自分で作った座標を貼り付けることもできます)。

GANSU Liteとは?

GANSU Liteは、量子化学計算をブラウザ内で実行するWebアプリです。HF、DFT、Post-HF(MP2/MP3/CCSD)、励起状態計算(CIS/ADC(2))、構造最適化、振動解析といった主要な計算を、ローカルで動かします。

技術スタックは次のとおりです。

  • TypeScript + Vite(フレームワークなし)
  • Rust → WebAssembly(SIMD対応版を自動切り替え)で数値カーネルを実装
  • Three.js で分子の3D可視化
  • 計算は Web Worker 内で実行され、UIがフリーズしない

積分ルーチンはMcMurchie–Davidson / Obara–Saika / Rys多項式を角運動量に応じて使い分け、8重対称性とSchwarzスクリーニングも実装しています。

宣伝

量子化学計算の本を執筆しました。GANSU Liteで動作確認しながらゼロから量子化学計算のしくみを学ぶことができる本です。
https://zenn.dev/comp_lab/articles/1a4825cb61c33a

8つのページで量子化学を体験

GANSU Liteは目的別に8つのページを用意しています。

1. 計算

汎用の計算ページです。XYZ座標を貼り付ける(または .xyz ファイルをドラッグ&ドロップする)か、プリセットのサンプル分子から選ぶだけで始められます。

サンプルは大きく2系統(Molecules / Atoms)に分けてあります。

  • Molecules(27種類): H₂・N₂・O₂・CO₂・H₂O・NH₃・CH₄ といった定番分子に加え、イオン種(NH₄⁺・H₃O⁺・OH⁻・CN⁻・BH₄⁻・NO⁺・HeH⁺)、有機分子(エチレン、ホルムアルデヒド、エタノール、アセトン、ピリジン、ベンゼン、アラニン、ナフタレン、ビタミンCなど)まで
  • Atoms(18種類): H〜Ar の単原子。スピン多重度は元素ごとに自動解決(基底状態)

あとは理論・基底・電荷・スピン多重度を選ぶだけで計算が始まります。「何を入れればいいか分からない」でつまずかずに済みます。

  • 理論: HF / DFT(RHF / UHF / ROHF、RKS / UKS / ROKS)
  • 基底: STO-3G, 3-21G, 6-31G, cc-pVDZ
  • Post-HF: MP2 / MP3 / CCSD
  • 励起状態(singlet/triplet): CIS、ADC(2)
  • 微分: 解析的核勾配、振動数(RHF)
  • SCF加速: DIIS / ADIIS / EDIIS / Damping / Level-shifting
  • 初期推定: Core / GWH / SAD
  • RI-J / RI-K: pure DFTで自動有効化
  • 出力: 軌道エネルギー、Mulliken/Löwdin電荷、Wiberg結合次数、双極子、⟨S²⟩、エネルギー分解、Moldenエクスポート

入力分子のリアルタイム3Dプレビュー、ステップごとのタイミング表示、バックエンドバッジ(SIMD / WASM / JS)も付いています。

計算で得た分子軌道はボタン一つで MOrbVis に渡せます。MOrbVisは同じ作者が作っているブラウザ分子軌道ビューアで、受け取った分子軌道係数からWebGPU加速で3D等値面を描画します。

MOrbVisで表示したH₂OのLUMO+1

GANSU Liteで計算したH₂Oの分子軌道(LUMO+1)をMOrbVisで表示した例。等値面の値・グリッド密度・カラー・断面図までGUIで調整でき、Cube/STL出力にも対応しています。

2. PESスキャン

1次元のポテンシャルエネルギー曲面スキャン。H₂・LiH・HF・CO・N₂・F₂などのプリセットに加え、周期表ピッカーで任意のH–X二原子分子を指定できます。H₂Oの結合角スキャンやエタンの二面角スキャンも用意しました。

H₂のRHF/UHFでの結合解離曲線

H₂の結合解離曲線をRHF(青)とUHF(赤)で比較。RHFは解離極限で発散するのに対し、UHFはスピン分極によって正しく解離するようすが見えます。

3. 構造最適化

最急降下、共役勾配(FR/PR/HS/DY)、準ニュートン(BFGS/DFP/SR1)、GDIIS を選べるジオメトリオプティマイザです。ステップをスライダーでスクラブでき、各原子の勾配ベクトルを対数スケールの矢印で3D表示します。

H₂Oの構造最適化

H₂OをBFGSで構造最適化した結果。上部の収束グラフ(エネルギー / 最大フォース)と、各原子の勾配ベクトルを可視化した3D表示、下部には初期・最終座標が並びます。

4. 振動解析

調和振動数、IRスペクトル、熱力学量(ZPE、エンタルピー H、ギブス自由エネルギー G、エントロピー S、Cv)を一括計算します。基底関数の数に応じて数値ヘシアンと解析的ヘシアンを自動で切り替えます(nbasis ≥ 20 で解析的ヘシアン)。

H₂Oの振動解析

H₂OのIRスペクトルと熱力学量(STO-3G)。3つの振動モード(対称/逆対称伸縮・変角)のIRピークと、ZPE・エンタルピー・ギブス自由エネルギー・エントロピーまでまとめて出力されます。

5. Walsh図

H–X–H結合角に対する軌道エネルギーの変化をプロットします。「なぜH₂Oは曲がっていてBeH₂は直線なのか?」を軌道レベルで体感できます。

BeH₂のWalsh図

BeH₂のWalsh図(STO-3G)。下段の全エネルギーが180°で最小になっており、BeH₂が直線型で安定であることが軌道エネルギーの変化から読み取れます。

6. 精度比較

同じ分子に対して HF + MP2 + MP3 + CCSD + SVWN + BLYP + PBE + B3LYP を一気に回し、エネルギー梯子と ΔE バーチャートで並べます。専用のWeb Worker上で動くのでキャンセル可能です。

精度比較画面

H₂について各理論のエネルギーを一括比較。上段がエネルギー梯子、下段がHFからの相関エネルギー寄与(mEh)のバーチャート。手法ごとの精度と計算時間が並べて比較できます。

7. 電荷マップ

Mulliken / Löwdin の原子電荷と双極子モーメントを3D分子上に可視化します。青+/赤−のカラースケールと、双極子モーメント矢印を重ね描きします。

H₂Oの電荷マップ

H₂OのMulliken電荷を3D可視化。酸素に負電荷(赤)、水素に正電荷(青)が乗り、黄色い矢印が双極子モーメントの向きと大きさを表します。右下のバーチャートで原子ごとの電荷を並べて比較できます。

8. 基底関数

同じ分子を STO-3G → STO-6G → 3-21G → 6-31G → 6-31G(d,p) → cc-pVDZ と基底を大きくしていって、全エネルギーが完全基底限界にどう近づくかを可視化します。

基底関数系の収束

H₂Oの全エネルギーを6つの基底で計算した結果。STO-3G → cc-pVDZ と基底を拡張するにつれてエネルギーが単調に低下し、完全基底限界(破線)に近づくようすが観察できます。各基底の計算時間も並記されます。

WebAssembly + SIMDで高速化

量子化学計算のボトルネックは2電子積分(ERI)とFock行列の構築、そしてMP2/CCSDなどの相関計算に集中します。いずれも内側のループが深く、素のJavaScriptで書くと実用的な速度が出ません。

GANSU LiteではこれらのホットパスをRustで実装し、WebAssemblyにコンパイルしています。数値計算はすべてWASM側で走り、JS側はオーケストレーションと可視化だけを担当します。

また、WebAssemblyの 128bit SIMD(f64x2)対応版バイナリを別ビルドしてあり、ブラウザが対応していればページロード時に自動で切り替わります。倍精度浮動小数を2要素ずつまとめて処理することで、ERIやMP2のテンソル縮約のような演算は1命令あたり2倍のスループットで回ります。

SCFループ自体はWeb Worker内で走らせているので、計算中もUIスレッドはブロックされません。3D分子ビューや設定パネルは計算中でも操作できます。

計算中は進捗ポップアップが出て、右上のバッジで現在動いているバックエンドが確認できます。

計算中の進捗ポップアップ

計算中のポップアップ。右上のSIMD / WASM / JSバッジが現在アクティブなバックエンド(この例ではSIMD)をハイライトし、Setup → Integrals → SCF Loop → Properties の各ステップごとに所要時間が記録されていきます。Web Worker内で実行されているので、Cancelボタンでいつでも中断できます。

まとめ

  • GANSU Lite は、ブラウザだけで動く量子化学計算Webアプリです
  • HF / DFT / MP2 / MP3 / CCSD / CIS / ADC(2) / 構造最適化 / 振動解析まで、主要な計算がローカルで走ります
  • ホットパスは Rust → WebAssembly(SIMD)でネイティブに近い速度が出ます
  • 量子化学の教育・学習、デモ、小分子の手軽な試算向けです

量子化学を学び始めた学生の方や、授業・セミナーで使える教材を探している方、少し触ってみたい方は、デモサイトから試してみてください。


関連プロジェクト

GPU(CUDA)で動く量子化学計算パッケージ GANSU も同じ作者が開発しています。大規模な計算や研究用途にはGANSU本体、量子化学の教育・学習やブラウザでの気軽な試算にはGANSU Lite、という使い分けを想定しています。

分子軌道を3D等値面で可視化するブラウザアプリ MOrbVis も同じ作者が開発しています。GANSU Liteで計算した分子軌道をMolden形式でそのまま受け渡せるようになっています。

https://github.com/Yasuaki-Ito/GANSU
https://zenn.dev/comp_lab/articles/29e73268f402b6
https://zenn.dev/comp_lab/articles/fcea581da8833c
https://zenn.dev/comp_lab/articles/413b26f39b840d

GANSU Liteを用いた量子化学計算の本を執筆しました。
https://zenn.dev/comp_lab/articles/1a4825cb61c33a

広島大学コンピューティングラボ

Discussion